diff --git a/.editorconfig b/.editorconfig index 3e44d1a2811..370c3f9dee6 100644 --- a/.editorconfig +++ b/.editorconfig @@ -72,7 +72,7 @@ csharp_style_expression_bodied_constructors = false:suggestion #csharp_style_expression_bodied_indexers = true:silent #csharp_style_expression_bodied_lambdas = true:silent #csharp_style_expression_bodied_local_functions = false:silent -csharp_style_expression_bodied_methods = false:suggestion +csharp_style_expression_bodied_methods = true:suggestion #csharp_style_expression_bodied_operators = false:silent csharp_style_expression_bodied_properties = true:suggestion diff --git a/.envrc b/.envrc index 7fd05db3e5e..d2ab6182d8b 100644 --- a/.envrc +++ b/.envrc @@ -1,4 +1,4 @@ -if ! has nix_direnv_version || ! nix_direnv_version 3.0.4; then - source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/3.0.4/direnvrc" "sha256-DzlYZ33mWF/Gs8DDeyjr8mnVmQGx7ASYqA5WlxwvBG4=" +if ! has nix_direnv_version || ! nix_direnv_version 3.0.6; then + source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/3.0.6/direnvrc" "sha256-RYcUJaRMf8oF5LznDrlCXbkOQrywm0HDv1VjYGaJGdM=" fi -use flake +use nix diff --git a/Content.Client/Access/UI/AccessOverriderWindow.xaml.cs b/Content.Client/Access/UI/AccessOverriderWindow.xaml.cs index 6025c3b551f..b5c480ff71b 100644 --- a/Content.Client/Access/UI/AccessOverriderWindow.xaml.cs +++ b/Content.Client/Access/UI/AccessOverriderWindow.xaml.cs @@ -32,7 +32,7 @@ public AccessOverriderWindow(AccessOverriderBoundUserInterface owner, IPrototype { if (!prototypeManager.TryIndex(access, out var accessLevel)) { - logMill.Error($"Unable to find accesslevel for {access}"); + logMill.Error($"Unable to find access level for {access}"); continue; } @@ -66,11 +66,11 @@ public void UpdateState(AccessOverriderBoundUserInterfaceState state) if (state.MissingPrivilegesList != null && state.MissingPrivilegesList.Any()) { - List missingPrivileges = new List(); + var missingPrivileges = new List(); foreach (string tag in state.MissingPrivilegesList) { - string privilege = Loc.GetString(_prototypeManager.Index(tag)?.Name ?? "generic-unknown"); + var privilege = Loc.GetString(_prototypeManager.Index(tag)?.Name ?? "generic-unknown"); missingPrivileges.Add(privilege); } @@ -83,20 +83,20 @@ public void UpdateState(AccessOverriderBoundUserInterfaceState state) foreach (var (accessName, button) in _accessButtons) { button.Disabled = !interfaceEnabled; - if (interfaceEnabled) - { - button.Pressed = state.TargetAccessReaderIdAccessList?.Contains(accessName) ?? false; - button.Disabled = (!state.AllowedModifyAccessList?.Contains(accessName)) ?? true; - } + if (!interfaceEnabled) + return; + + button.Pressed = state.TargetAccessReaderIdAccessList?.Contains>(accessName) ?? false; + button.Disabled = (!state.AllowedModifyAccessList?.Contains>(accessName)) ?? true; } } - private void SubmitData() - { + private void SubmitData() => _owner.SubmitData( - // Iterate over the buttons dictionary, filter by `Pressed`, only get key from the key/value pair - _accessButtons.Where(x => x.Value.Pressed).Select(x => new ProtoId(x.Key)).ToList()); - } + _accessButtons.Where(x => x.Value.Pressed) + .Select(x => new ProtoId(x.Key)) + .ToList() + ); } } diff --git a/Content.Client/Administration/UI/Bwoink/BwoinkWindow.xaml.cs b/Content.Client/Administration/UI/Bwoink/BwoinkWindow.xaml.cs index f8d06f758f4..6f6c1c8f6e8 100644 --- a/Content.Client/Administration/UI/Bwoink/BwoinkWindow.xaml.cs +++ b/Content.Client/Administration/UI/Bwoink/BwoinkWindow.xaml.cs @@ -16,18 +16,25 @@ public BwoinkWindow() Bwoink.ChannelSelector.OnSelectionChanged += sel => { - if (sel is not null) + if (sel is null) { - Title = $"{sel.CharacterName} / {sel.Username}"; + Title = Loc.GetString("bwoink-none-selected"); + return; + } + + Title = $"{sel.CharacterName} / {sel.Username}"; - if (sel.OverallPlaytime != null) - { - Title += $" | {Loc.GetString("generic-playtime-title")}: {sel.PlaytimeString}"; - } + if (sel.OverallPlaytime != null) + { + Title += $" | {Loc.GetString("generic-playtime-title")}: {sel.PlaytimeString}"; } }; - OnOpen += () => Bwoink.PopulateList(); + OnOpen += () => + { + Bwoink.ChannelSelector.StopFiltering(); + Bwoink.PopulateList(); + }; } } } diff --git a/Content.Client/Administration/UI/CustomControls/PlayerListControl.xaml.cs b/Content.Client/Administration/UI/CustomControls/PlayerListControl.xaml.cs index fdf935d7c04..b09cd727ef8 100644 --- a/Content.Client/Administration/UI/CustomControls/PlayerListControl.xaml.cs +++ b/Content.Client/Administration/UI/CustomControls/PlayerListControl.xaml.cs @@ -4,147 +4,155 @@ using Content.Client.Verbs.UI; using Content.Shared.Administration; using Robust.Client.AutoGenerated; +using Robust.Client.GameObjects; using Robust.Client.Graphics; using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.XAML; using Robust.Shared.Input; +using Robust.Shared.Utility; -namespace Content.Client.Administration.UI.CustomControls +namespace Content.Client.Administration.UI.CustomControls; + +[GenerateTypedNameReferences] +public sealed partial class PlayerListControl : BoxContainer { - [GenerateTypedNameReferences] - public sealed partial class PlayerListControl : BoxContainer - { - private readonly AdminSystem _adminSystem; + private readonly AdminSystem _adminSystem; - private List _playerList = new(); - private readonly List _sortedPlayerList = new(); + private readonly IEntityManager _entManager; + private readonly IUserInterfaceManager _uiManager; + + private PlayerInfo? _selectedPlayer; - public event Action? OnSelectionChanged; - public IReadOnlyList PlayerInfo => _playerList; + private List _playerList = new(); + private readonly List _sortedPlayerList = new(); - public Func? OverrideText; - public Comparison? Comparison; + public Comparison? Comparison; + public Func? OverrideText; - private IEntityManager _entManager; - private IUserInterfaceManager _uiManager; + public PlayerListControl() + { + _entManager = IoCManager.Resolve(); + _uiManager = IoCManager.Resolve(); + _adminSystem = _entManager.System(); + RobustXamlLoader.Load(this); + // Fill the Option data + PlayerListContainer.ItemPressed += PlayerListItemPressed; + PlayerListContainer.ItemKeyBindDown += PlayerListItemKeyBindDown; + PlayerListContainer.GenerateItem += GenerateButton; + PlayerListContainer.NoItemSelected += PlayerListNoItemSelected; + PopulateList(_adminSystem.PlayerList); + FilterLineEdit.OnTextChanged += _ => FilterList(); + _adminSystem.PlayerListChanged += PopulateList; + BackgroundPanel.PanelOverride = new StyleBoxFlat { BackgroundColor = new Color(32, 32, 40) }; + } - private PlayerInfo? _selectedPlayer; + public IReadOnlyList PlayerInfo => _playerList; - public PlayerListControl() - { - _entManager = IoCManager.Resolve(); - _uiManager = IoCManager.Resolve(); - _adminSystem = _entManager.System(); - RobustXamlLoader.Load(this); - // Fill the Option data - PlayerListContainer.ItemPressed += PlayerListItemPressed; - PlayerListContainer.ItemKeyBindDown += PlayerListItemKeyBindDown; - PlayerListContainer.GenerateItem += GenerateButton; - PopulateList(_adminSystem.PlayerList); - FilterLineEdit.OnTextChanged += _ => FilterList(); - _adminSystem.PlayerListChanged += PopulateList; - BackgroundPanel.PanelOverride = new StyleBoxFlat {BackgroundColor = new Color(32, 32, 40)}; - } + public event Action? OnSelectionChanged; - private void PlayerListItemPressed(BaseButton.ButtonEventArgs? args, ListData? data) - { - if (args == null || data is not PlayerListData {Info: var selectedPlayer}) - return; + private void PlayerListNoItemSelected() + { + _selectedPlayer = null; + OnSelectionChanged?.Invoke(null); + } - if (selectedPlayer == _selectedPlayer) - return; + private void PlayerListItemPressed(BaseButton.ButtonEventArgs? args, ListData? data) + { + if (args == null || data is not PlayerListData { Info: var selectedPlayer }) + return; - if (args.Event.Function != EngineKeyFunctions.UIClick) - return; + if (selectedPlayer == _selectedPlayer) + return; - OnSelectionChanged?.Invoke(selectedPlayer); - _selectedPlayer = selectedPlayer; + if (args.Event.Function != EngineKeyFunctions.UIClick) + return; - // update label text. Only required if there is some override (e.g. unread bwoink count). - if (OverrideText != null && args.Button.Children.FirstOrDefault()?.Children?.FirstOrDefault() is Label label) - label.Text = GetText(selectedPlayer); - } + OnSelectionChanged?.Invoke(selectedPlayer); + _selectedPlayer = selectedPlayer; - private void PlayerListItemKeyBindDown(GUIBoundKeyEventArgs? args, ListData? data) - { - if (args == null || data is not PlayerListData { Info: var selectedPlayer }) - return; + // update label text. Only required if there is some override (e.g. unread bwoink count). + if (OverrideText != null && args.Button.Children.FirstOrDefault()?.Children?.FirstOrDefault() is Label label) + label.Text = GetText(selectedPlayer); + } - if (args.Function != EngineKeyFunctions.UIRightClick || selectedPlayer.NetEntity == null) - return; + private void PlayerListItemKeyBindDown(GUIBoundKeyEventArgs? args, ListData? data) + { + if (args == null || data is not PlayerListData { Info: var selectedPlayer }) + return; - _uiManager.GetUIController().OpenVerbMenu(selectedPlayer.NetEntity.Value, true); - args.Handle(); - } + if (args.Function != EngineKeyFunctions.UIRightClick || selectedPlayer.NetEntity == null) + return; - public void StopFiltering() - { - FilterLineEdit.Text = string.Empty; - } + _uiManager.GetUIController().OpenVerbMenu(selectedPlayer.NetEntity.Value, true); + args.Handle(); + } - private void FilterList() + public void StopFiltering() + { + FilterLineEdit.Text = string.Empty; + } + + private void FilterList() + { + _sortedPlayerList.Clear(); + foreach (var info in _playerList) { - _sortedPlayerList.Clear(); - foreach (var info in _playerList) - { - var displayName = $"{info.CharacterName} ({info.Username})"; - if (info.IdentityName != info.CharacterName) - displayName += $" [{info.IdentityName}]"; - if (!string.IsNullOrEmpty(FilterLineEdit.Text) - && !displayName.ToLowerInvariant().Contains(FilterLineEdit.Text.Trim().ToLowerInvariant())) - continue; - _sortedPlayerList.Add(info); - } - - if (Comparison != null) - _sortedPlayerList.Sort((a, b) => Comparison(a, b)); - - PlayerListContainer.PopulateList(_sortedPlayerList.Select(info => new PlayerListData(info)).ToList()); - if (_selectedPlayer != null) - PlayerListContainer.Select(new PlayerListData(_selectedPlayer)); + var displayName = $"{info.CharacterName} ({info.Username})"; + if (info.IdentityName != info.CharacterName) + displayName += $" [{info.IdentityName}]"; + if (!string.IsNullOrEmpty(FilterLineEdit.Text) + && !displayName.ToLowerInvariant().Contains(FilterLineEdit.Text.Trim().ToLowerInvariant())) + continue; + _sortedPlayerList.Add(info); } - public void PopulateList(IReadOnlyList? players = null) - { - players ??= _adminSystem.PlayerList; + if (Comparison != null) + _sortedPlayerList.Sort((a, b) => Comparison(a, b)); - _playerList = players.ToList(); - if (_selectedPlayer != null && !_playerList.Contains(_selectedPlayer)) - _selectedPlayer = null; + // Ensure pinned players are always at the top + _sortedPlayerList.Sort((a, b) => a.IsPinned != b.IsPinned && a.IsPinned ? -1 : 1); - FilterList(); - } + PlayerListContainer.PopulateList(_sortedPlayerList.Select(info => new PlayerListData(info)).ToList()); + if (_selectedPlayer != null) + PlayerListContainer.Select(new PlayerListData(_selectedPlayer)); + } - private string GetText(PlayerInfo info) - { - var text = $"{info.CharacterName} ({info.Username})"; - if (OverrideText != null) - text = OverrideText.Invoke(info, text); - return text; - } + public void PopulateList(IReadOnlyList? players = null) + { + players ??= _adminSystem.PlayerList; - private void GenerateButton(ListData data, ListContainerButton button) - { - if (data is not PlayerListData { Info: var info }) - return; - - button.AddChild(new BoxContainer - { - Orientation = LayoutOrientation.Vertical, - Children = - { - new Label - { - ClipText = true, - Text = GetText(info) - } - } - }); - - button.AddStyleClass(ListContainer.StyleClassListContainerButton); - } + _playerList = players.ToList(); + if (_selectedPlayer != null && !_playerList.Contains(_selectedPlayer)) + _selectedPlayer = null; + + FilterList(); } - public record PlayerListData(PlayerInfo Info) : ListData; + + private string GetText(PlayerInfo info) + { + var text = $"{info.CharacterName} ({info.Username})"; + if (OverrideText != null) + text = OverrideText.Invoke(info, text); + return text; + } + + private void GenerateButton(ListData data, ListContainerButton button) + { + if (data is not PlayerListData { Info: var info }) + return; + + var entry = new PlayerListEntry(); + entry.Setup(info, OverrideText); + entry.OnPinStatusChanged += _ => + { + FilterList(); + }; + + button.AddChild(entry); + button.AddStyleClass(ListContainer.StyleClassListContainerButton); + } } + +public record PlayerListData(PlayerInfo Info) : ListData; diff --git a/Content.Client/Administration/UI/CustomControls/PlayerListEntry.xaml b/Content.Client/Administration/UI/CustomControls/PlayerListEntry.xaml new file mode 100644 index 00000000000..af13ccc0e09 --- /dev/null +++ b/Content.Client/Administration/UI/CustomControls/PlayerListEntry.xaml @@ -0,0 +1,6 @@ + + diff --git a/Content.Client/Administration/UI/CustomControls/PlayerListEntry.xaml.cs b/Content.Client/Administration/UI/CustomControls/PlayerListEntry.xaml.cs new file mode 100644 index 00000000000..cd6a56ea71e --- /dev/null +++ b/Content.Client/Administration/UI/CustomControls/PlayerListEntry.xaml.cs @@ -0,0 +1,58 @@ +using Content.Client.Stylesheets; +using Content.Shared.Administration; +using Robust.Client.AutoGenerated; +using Robust.Client.GameObjects; +using Robust.Client.UserInterface.Controls; +using Robust.Client.UserInterface.XAML; +using Robust.Shared.Utility; + +namespace Content.Client.Administration.UI.CustomControls; + +[GenerateTypedNameReferences] +public sealed partial class PlayerListEntry : BoxContainer +{ + public PlayerListEntry() + { + RobustXamlLoader.Load(this); + } + + public event Action? OnPinStatusChanged; + + public void Setup(PlayerInfo info, Func? overrideText) + { + Update(info, overrideText); + PlayerEntryPinButton.OnPressed += HandlePinButtonPressed(info); + } + + private Action HandlePinButtonPressed(PlayerInfo info) + { + return args => + { + info.IsPinned = !info.IsPinned; + UpdatePinButtonTexture(info.IsPinned); + OnPinStatusChanged?.Invoke(info); + }; + } + + private void Update(PlayerInfo info, Func? overrideText) + { + PlayerEntryLabel.Text = overrideText?.Invoke(info, $"{info.CharacterName} ({info.Username})") ?? + $"{info.CharacterName} ({info.Username})"; + + UpdatePinButtonTexture(info.IsPinned); + } + + private void UpdatePinButtonTexture(bool isPinned) + { + if (isPinned) + { + PlayerEntryPinButton?.RemoveStyleClass(StyleNano.StyleClassPinButtonUnpinned); + PlayerEntryPinButton?.AddStyleClass(StyleNano.StyleClassPinButtonPinned); + } + else + { + PlayerEntryPinButton?.RemoveStyleClass(StyleNano.StyleClassPinButtonPinned); + PlayerEntryPinButton?.AddStyleClass(StyleNano.StyleClassPinButtonUnpinned); + } + } +} diff --git a/Content.Client/Administration/UI/Tabs/PlayerTab/PlayerTab.xaml b/Content.Client/Administration/UI/Tabs/PlayerTab/PlayerTab.xaml index 3071bf8358b..25a96df1d37 100644 --- a/Content.Client/Administration/UI/Tabs/PlayerTab/PlayerTab.xaml +++ b/Content.Client/Administration/UI/Tabs/PlayerTab/PlayerTab.xaml @@ -1,21 +1,19 @@  + xmlns:cc="clr-namespace:Content.Client.Administration.UI.CustomControls" + xmlns:co="clr-namespace:Content.Client.UserInterface.Controls"> - + \ No newline at end of file diff --git a/Content.Client/Xenonids/UI/XenoChoiceControl.xaml.cs b/Content.Client/Xenonids/UI/XenoChoiceControl.xaml.cs new file mode 100644 index 00000000000..ae451fffe01 --- /dev/null +++ b/Content.Client/Xenonids/UI/XenoChoiceControl.xaml.cs @@ -0,0 +1,26 @@ +using Robust.Client.AutoGenerated; +using Robust.Client.Graphics; +using Robust.Client.UserInterface; +using Robust.Client.UserInterface.XAML; +using Robust.Shared.Utility; + +namespace Content.Client.Xenonids.UI; + +[GenerateTypedNameReferences] +[Virtual] +public partial class XenoChoiceControl : Control +{ + public XenoChoiceControl() => RobustXamlLoader.Load(this); + + public void Set(string name, Texture? texture) + { + NameLabel.SetMessage(name); + Texture.Texture = texture; + } + + public void Set(FormattedMessage msg, Texture? texture) + { + NameLabel.SetMessage(msg); + Texture.Texture = texture; + } +} diff --git a/Content.IntegrationTests/PoolManager.Cvars.cs b/Content.IntegrationTests/PoolManager.Cvars.cs index 5acd9d502c1..8d65dd69ed6 100644 --- a/Content.IntegrationTests/PoolManager.Cvars.cs +++ b/Content.IntegrationTests/PoolManager.Cvars.cs @@ -35,7 +35,9 @@ private static readonly (string cvar, string value)[] TestCvars = (CCVars.ConfigPresetDevelopment.Name, "false"), (CCVars.AdminLogsEnabled.Name, "false"), (CCVars.AutosaveEnabled.Name, "false"), - (CVars.NetBufferSize.Name, "0") + (CVars.NetBufferSize.Name, "0"), + (CCVars.InteractionRateLimitCount.Name, "9999999"), + (CCVars.InteractionRateLimitPeriod.Name, "0.1"), }; public static async Task SetupCVars(RobustIntegrationTest.IntegrationInstance instance, PoolSettings settings) diff --git a/Content.IntegrationTests/Tests/Actions/ActionPvsDetachTest.cs b/Content.IntegrationTests/Tests/Actions/ActionPvsDetachTest.cs index 420a90a50bd..45addff00bf 100644 --- a/Content.IntegrationTests/Tests/Actions/ActionPvsDetachTest.cs +++ b/Content.IntegrationTests/Tests/Actions/ActionPvsDetachTest.cs @@ -32,11 +32,14 @@ public async Task TestActionDetach() // PVS-detach action entities // We do this by just giving them the ghost layer var visSys = server.System(); - var enumerator = server.Transform(ent).ChildEnumerator; - while (enumerator.MoveNext(out var child)) + server.Post(() => { - visSys.AddLayer(child, (int) VisibilityFlags.Ghost); - } + var enumerator = server.Transform(ent).ChildEnumerator; + while (enumerator.MoveNext(out var child)) + { + visSys.AddLayer(child, (int) VisibilityFlags.Ghost); + } + }); await pair.RunTicksSync(5); // Client's actions have left been detached / are out of view, but action comp state has not changed @@ -44,11 +47,14 @@ public async Task TestActionDetach() Assert.That(cSys.GetActions(cEnt).Count(), Is.EqualTo(initActions)); // Re-enter PVS view - enumerator = server.Transform(ent).ChildEnumerator; - while (enumerator.MoveNext(out var child)) + server.Post(() => { - visSys.RemoveLayer(child, (int) VisibilityFlags.Ghost); - } + var enumerator = server.Transform(ent).ChildEnumerator; + while (enumerator.MoveNext(out var child)) + { + visSys.RemoveLayer(child, (int) VisibilityFlags.Ghost); + } + }); await pair.RunTicksSync(5); Assert.That(sys.GetActions(ent).Count(), Is.EqualTo(initActions)); Assert.That(cSys.GetActions(cEnt).Count(), Is.EqualTo(initActions)); diff --git a/Content.IntegrationTests/Tests/Actions/ActionsAddedTest.cs b/Content.IntegrationTests/Tests/Actions/ActionsAddedTest.cs index 32b15252261..c232e823132 100644 --- a/Content.IntegrationTests/Tests/Actions/ActionsAddedTest.cs +++ b/Content.IntegrationTests/Tests/Actions/ActionsAddedTest.cs @@ -18,7 +18,7 @@ public sealed class ActionsAddedTest [Test] public async Task TestCombatActionsAdded() { - await using var pair = await PoolManager.GetServerClient(new PoolSettings { Connected = true, DummyTicker = false}); + await using var pair = await PoolManager.GetServerClient(new PoolSettings { Connected = true, DummyTicker = false }); var server = pair.Server; var client = pair.Client; var sEntMan = server.ResolveDependency(); diff --git a/Content.IntegrationTests/Tests/Body/GibTest.cs b/Content.IntegrationTests/Tests/Body/GibTest.cs index c0032a85244..4627c79f64d 100644 --- a/Content.IntegrationTests/Tests/Body/GibTest.cs +++ b/Content.IntegrationTests/Tests/Body/GibTest.cs @@ -5,7 +5,7 @@ namespace Content.IntegrationTests.Tests.Body; [TestFixture] -public sealed class GibTest +public sealed class GibTest { [Test] public async Task TestGib() diff --git a/Content.IntegrationTests/Tests/Body/LegTest.cs b/Content.IntegrationTests/Tests/Body/LegTest.cs index e86966f8f54..7b49bbe84a3 100644 --- a/Content.IntegrationTests/Tests/Body/LegTest.cs +++ b/Content.IntegrationTests/Tests/Body/LegTest.cs @@ -5,7 +5,6 @@ using Content.Shared.Rotation; using Robust.Shared.GameObjects; using Robust.Shared.Map; -using Robust.Shared.Maths; namespace Content.IntegrationTests.Tests.Body { @@ -40,13 +39,14 @@ public async Task RemoveLegsFallTest() var appearanceSystem = entityManager.System(); var xformSystem = entityManager.System(); + var map = await pair.CreateTestMap(); + await server.WaitAssertion(() => { - var mapId = mapManager.CreateMap(); BodyComponent body = null; human = entityManager.SpawnEntity("HumanBodyAndAppearanceDummy", - new MapCoordinates(Vector2.Zero, mapId)); + new MapCoordinates(Vector2.Zero, map.MapId)); Assert.Multiple(() => { @@ -61,7 +61,7 @@ await server.WaitAssertion(() => foreach (var leg in legs) { - xformSystem.DetachParentToNull(leg.Id, entityManager.GetComponent(leg.Id)); + xformSystem.DetachEntity(leg.Id, entityManager.GetComponent(leg.Id)); } }); diff --git a/Content.IntegrationTests/Tests/Body/LungTest.cs b/Content.IntegrationTests/Tests/Body/LungTest.cs index dce3741c98d..9b5ee431f1f 100644 --- a/Content.IntegrationTests/Tests/Body/LungTest.cs +++ b/Content.IntegrationTests/Tests/Body/LungTest.cs @@ -60,8 +60,8 @@ public async Task AirConsistencyTest() var mapManager = server.ResolveDependency(); var entityManager = server.ResolveDependency(); var mapLoader = entityManager.System(); + var mapSys = entityManager.System(); - MapId mapId; EntityUid? grid = null; BodyComponent body = default; RespiratorComponent resp = default; @@ -73,7 +73,7 @@ public async Task AirConsistencyTest() await server.WaitPost(() => { - mapId = mapManager.CreateMap(); + mapSys.CreateMap(out var mapId); Assert.That(mapLoader.TryLoad(mapId, testMapName, out var roots)); var query = entityManager.GetEntityQuery(); @@ -142,8 +142,8 @@ public async Task NoSuffocationTest() var entityManager = server.ResolveDependency(); var cfg = server.ResolveDependency(); var mapLoader = entityManager.System(); + var mapSys = entityManager.System(); - MapId mapId; EntityUid? grid = null; RespiratorComponent respirator = null; EntityUid human = default; @@ -152,7 +152,7 @@ public async Task NoSuffocationTest() await server.WaitPost(() => { - mapId = mapManager.CreateMap(); + mapSys.CreateMap(out var mapId); Assert.That(mapLoader.TryLoad(mapId, testMapName, out var ents), Is.True); var query = entityManager.GetEntityQuery(); diff --git a/Content.IntegrationTests/Tests/Body/SaveLoadReparentTest.cs b/Content.IntegrationTests/Tests/Body/SaveLoadReparentTest.cs index 670ce1a474d..01482ba8ee2 100644 --- a/Content.IntegrationTests/Tests/Body/SaveLoadReparentTest.cs +++ b/Content.IntegrationTests/Tests/Body/SaveLoadReparentTest.cs @@ -33,10 +33,11 @@ public async Task Test() var mapLoader = entities.System(); var bodySystem = entities.System(); var containerSystem = entities.System(); + var mapSys = entities.System(); await server.WaitAssertion(() => { - var mapId = maps.CreateMap(); + mapSys.CreateMap(out var mapId); maps.CreateGrid(mapId); var human = entities.SpawnEntity("HumanBodyDummy", new MapCoordinates(0, 0, mapId)); @@ -115,7 +116,7 @@ await server.WaitAssertion(() => mapLoader.SaveMap(mapId, mapPath); maps.DeleteMap(mapId); - mapId = maps.CreateMap(); + mapSys.CreateMap(out mapId); Assert.That(mapLoader.TryLoad(mapId, mapPath, out _), Is.True); var query = EnumerateQueryEnumerator( diff --git a/Content.IntegrationTests/Tests/Buckle/BuckleDragTest.cs b/Content.IntegrationTests/Tests/Buckle/BuckleDragTest.cs new file mode 100644 index 00000000000..19e8aba1824 --- /dev/null +++ b/Content.IntegrationTests/Tests/Buckle/BuckleDragTest.cs @@ -0,0 +1,60 @@ +using Content.IntegrationTests.Tests.Interaction; +using Content.Shared.Buckle; +using Content.Shared.Buckle.Components; +using Content.Shared.Input; +using Content.Shared.Movement.Pulling.Components; + +namespace Content.IntegrationTests.Tests.Buckle; + +public sealed class BuckleDragTest : InteractionTest +{ + // Check that dragging a buckled player unbuckles them. + [Test] + public async Task BucklePullTest() + { + var urist = await SpawnTarget("MobHuman"); + var sUrist = ToServer(urist); + await SpawnTarget("Chair"); + + var buckle = Comp(urist); + var strap = Comp(Target); + var puller = Comp(Player); + var pullable = Comp(urist); + +#pragma warning disable RA0002 + buckle.Delay = TimeSpan.Zero; +#pragma warning restore RA0002 + + // Initially not buckled to the chair and not pulling anything + Assert.That(buckle.Buckled, Is.False); + Assert.That(buckle.BuckledTo, Is.Null); + Assert.That(strap.BuckledEntities, Is.Empty); + Assert.That(puller.Pulling, Is.Null); + Assert.That(pullable.Puller, Is.Null); + Assert.That(pullable.BeingPulled, Is.False); + + // Strap the human to the chair + await Server.WaitAssertion(() => + { + Assert.That(Server.System().TryBuckle(sUrist, SPlayer, STarget.Value)); + }); + + await RunTicks(5); + Assert.That(buckle.Buckled, Is.True); + Assert.That(buckle.BuckledTo, Is.EqualTo(STarget)); + Assert.That(strap.BuckledEntities, Is.EquivalentTo(new[] { sUrist })); + Assert.That(puller.Pulling, Is.Null); + Assert.That(pullable.Puller, Is.Null); + Assert.That(pullable.BeingPulled, Is.False); + + // Start pulling, and thus unbuckle them + await PressKey(ContentKeyFunctions.TryPullObject, cursorEntity: urist); + await RunTicks(5); + Assert.That(buckle.Buckled, Is.False); + Assert.That(buckle.BuckledTo, Is.Null); + Assert.That(strap.BuckledEntities, Is.Empty); + Assert.That(puller.Pulling, Is.EqualTo(sUrist)); + Assert.That(pullable.Puller, Is.EqualTo(SPlayer)); + Assert.That(pullable.BeingPulled, Is.True); + } +} diff --git a/Content.IntegrationTests/Tests/Buckle/BuckleTest.Interact.cs b/Content.IntegrationTests/Tests/Buckle/BuckleTest.Interact.cs new file mode 100644 index 00000000000..d9cce764ab7 --- /dev/null +++ b/Content.IntegrationTests/Tests/Buckle/BuckleTest.Interact.cs @@ -0,0 +1,108 @@ +using Content.Shared.Buckle; +using Content.Shared.Buckle.Components; +using Content.Shared.Interaction; +using Robust.Server.GameObjects; +using Robust.Shared.GameObjects; +using Robust.Shared.Map; + +namespace Content.IntegrationTests.Tests.Buckle; + +public sealed partial class BuckleTest +{ + [Test] + public async Task BuckleInteractUnbuckleOther() + { + await using var pair = await PoolManager.GetServerClient(); + var server = pair.Server; + + var entMan = server.ResolveDependency(); + var buckleSystem = entMan.System(); + + EntityUid user = default; + EntityUid victim = default; + EntityUid chair = default; + BuckleComponent buckle = null; + StrapComponent strap = null; + + await server.WaitAssertion(() => + { + user = entMan.SpawnEntity(BuckleDummyId, MapCoordinates.Nullspace); + victim = entMan.SpawnEntity(BuckleDummyId, MapCoordinates.Nullspace); + chair = entMan.SpawnEntity(StrapDummyId, MapCoordinates.Nullspace); + + Assert.That(entMan.TryGetComponent(victim, out buckle)); + Assert.That(entMan.TryGetComponent(chair, out strap)); + +#pragma warning disable RA0002 + buckle.Delay = TimeSpan.Zero; +#pragma warning restore RA0002 + + // Buckle victim to chair + Assert.That(buckleSystem.TryBuckle(victim, user, chair, buckle)); + Assert.Multiple(() => + { + Assert.That(buckle.BuckledTo, Is.EqualTo(chair), "Victim did not get buckled to the chair."); + Assert.That(buckle.Buckled, "Victim is not buckled."); + Assert.That(strap.BuckledEntities, Does.Contain(victim), "Chair does not have victim buckled to it."); + }); + + // InteractHand with chair to unbuckle victim + entMan.EventBus.RaiseLocalEvent(chair, new InteractHandEvent(user, chair)); + Assert.Multiple(() => + { + Assert.That(buckle.BuckledTo, Is.Null); + Assert.That(buckle.Buckled, Is.False); + Assert.That(strap.BuckledEntities, Does.Not.Contain(victim)); + }); + }); + + await pair.CleanReturnAsync(); + } + + [Test] + public async Task BuckleInteractBuckleUnbuckleSelf() + { + await using var pair = await PoolManager.GetServerClient(); + var server = pair.Server; + + var entMan = server.ResolveDependency(); + + EntityUid user = default; + EntityUid chair = default; + BuckleComponent buckle = null; + StrapComponent strap = null; + + await server.WaitAssertion(() => + { + user = entMan.SpawnEntity(BuckleDummyId, MapCoordinates.Nullspace); + chair = entMan.SpawnEntity(StrapDummyId, MapCoordinates.Nullspace); + + Assert.That(entMan.TryGetComponent(user, out buckle)); + Assert.That(entMan.TryGetComponent(chair, out strap)); + +#pragma warning disable RA0002 + buckle.Delay = TimeSpan.Zero; +#pragma warning restore RA0002 + + // Buckle user to chair + entMan.EventBus.RaiseLocalEvent(chair, new InteractHandEvent(user, chair)); + Assert.Multiple(() => + { + Assert.That(buckle.BuckledTo, Is.EqualTo(chair), "Victim did not get buckled to the chair."); + Assert.That(buckle.Buckled, "Victim is not buckled."); + Assert.That(strap.BuckledEntities, Does.Contain(user), "Chair does not have victim buckled to it."); + }); + + // InteractHand with chair to unbuckle + entMan.EventBus.RaiseLocalEvent(chair, new InteractHandEvent(user, chair)); + Assert.Multiple(() => + { + Assert.That(buckle.BuckledTo, Is.Null); + Assert.That(buckle.Buckled, Is.False); + Assert.That(strap.BuckledEntities, Does.Not.Contain(user)); + }); + }); + + await pair.CleanReturnAsync(); + } +} diff --git a/Content.IntegrationTests/Tests/Buckle/BuckleTest.cs b/Content.IntegrationTests/Tests/Buckle/BuckleTest.cs index 7c700d9fb8a..1b31fe38c28 100644 --- a/Content.IntegrationTests/Tests/Buckle/BuckleTest.cs +++ b/Content.IntegrationTests/Tests/Buckle/BuckleTest.cs @@ -15,7 +15,7 @@ namespace Content.IntegrationTests.Tests.Buckle [TestFixture] [TestOf(typeof(BuckleComponent))] [TestOf(typeof(StrapComponent))] - public sealed class BuckleTest + public sealed partial class BuckleTest { private const string BuckleDummyId = "BuckleDummy"; private const string StrapDummyId = "StrapDummy"; @@ -29,6 +29,7 @@ public sealed class BuckleTest components: - type: Buckle - type: Hands + - type: ComplexInteraction - type: InputMover - type: Body prototype: Human @@ -90,7 +91,6 @@ await server.WaitAssertion(() => { Assert.That(strap, Is.Not.Null); Assert.That(strap.BuckledEntities, Is.Empty); - Assert.That(strap.OccupiedSize, Is.Zero); }); // Side effects of buckling @@ -110,8 +110,6 @@ await server.WaitAssertion(() => // Side effects of buckling for the strap Assert.That(strap.BuckledEntities, Does.Contain(human)); - Assert.That(strap.OccupiedSize, Is.EqualTo(buckle.Size)); - Assert.That(strap.OccupiedSize, Is.Positive); }); #pragma warning disable NUnit2045 // Interdependent asserts. @@ -121,7 +119,7 @@ await server.WaitAssertion(() => // Trying to unbuckle too quickly fails Assert.That(buckleSystem.TryUnbuckle(human, human, buckleComp: buckle), Is.False); Assert.That(buckle.Buckled); - Assert.That(buckleSystem.ToggleBuckle(human, human, chair, buckle: buckle), Is.False); + Assert.That(buckleSystem.TryUnbuckle(human, human), Is.False); Assert.That(buckle.Buckled); #pragma warning restore NUnit2045 }); @@ -148,7 +146,6 @@ await server.WaitAssertion(() => // Unbuckle, strap Assert.That(strap.BuckledEntities, Is.Empty); - Assert.That(strap.OccupiedSize, Is.Zero); }); #pragma warning disable NUnit2045 // Interdependent asserts. @@ -159,9 +156,9 @@ await server.WaitAssertion(() => // On cooldown Assert.That(buckleSystem.TryUnbuckle(human, human, buckleComp: buckle), Is.False); Assert.That(buckle.Buckled); - Assert.That(buckleSystem.ToggleBuckle(human, human, chair, buckle: buckle), Is.False); + Assert.That(buckleSystem.TryUnbuckle(human, human), Is.False); Assert.That(buckle.Buckled); - Assert.That(buckleSystem.ToggleBuckle(human, human, chair, buckle: buckle), Is.False); + Assert.That(buckleSystem.TryUnbuckle(human, human), Is.False); Assert.That(buckle.Buckled); #pragma warning restore NUnit2045 }); @@ -188,7 +185,6 @@ await server.WaitAssertion(() => #pragma warning disable NUnit2045 // Interdependent asserts. Assert.That(buckleSystem.TryBuckle(human, human, chair, buckleComp: buckle), Is.False); Assert.That(buckleSystem.TryUnbuckle(human, human, buckleComp: buckle), Is.False); - Assert.That(buckleSystem.ToggleBuckle(human, human, chair, buckle: buckle), Is.False); #pragma warning restore NUnit2045 // Move near the chair @@ -201,12 +197,10 @@ await server.WaitAssertion(() => Assert.That(buckle.Buckled); Assert.That(buckleSystem.TryUnbuckle(human, human, buckleComp: buckle), Is.False); Assert.That(buckle.Buckled); - Assert.That(buckleSystem.ToggleBuckle(human, human, chair, buckle: buckle), Is.False); - Assert.That(buckle.Buckled); #pragma warning restore NUnit2045 // Force unbuckle - Assert.That(buckleSystem.TryUnbuckle(human, human, true, buckleComp: buckle)); + buckleSystem.Unbuckle(human, human); Assert.Multiple(() => { Assert.That(buckle.Buckled, Is.False); @@ -310,7 +304,7 @@ await server.WaitAssertion(() => // Break our guy's kneecaps foreach (var leg in legs) { - xformSystem.DetachParentToNull(leg.Id, entityManager.GetComponent(leg.Id)); + entityManager.DeleteEntity(leg.Id); } }); @@ -327,7 +321,8 @@ await server.WaitAssertion(() => Assert.That(hand.HeldEntity, Is.Null); } - buckleSystem.TryUnbuckle(human, human, true, buckleComp: buckle); + buckleSystem.Unbuckle(human, human); + Assert.That(buckle.Buckled, Is.False); }); await pair.CleanReturnAsync(); diff --git a/Content.IntegrationTests/Tests/CargoTest.cs b/Content.IntegrationTests/Tests/CargoTest.cs index 09f179cf4f5..99160df3c66 100644 --- a/Content.IntegrationTests/Tests/CargoTest.cs +++ b/Content.IntegrationTests/Tests/CargoTest.cs @@ -14,11 +14,11 @@ namespace Content.IntegrationTests.Tests; [TestFixture] public sealed class CargoTest { - public static HashSet> Ignored = new () - { + private static readonly HashSet> Ignored = + [ // This is ignored because it is explicitly intended to be able to sell for more than it costs. new("FunCrateGambling") - }; + ]; [Test] public async Task NoCargoOrderArbitrage() @@ -174,13 +174,16 @@ public async Task StackPrice() { await using var pair = await PoolManager.GetServerClient(); var server = pair.Server; - var entManager = server.ResolveDependency(); - var priceSystem = entManager.System(); - var ent = entManager.SpawnEntity("StackEnt", MapCoordinates.Nullspace); - var price = priceSystem.GetPrice(ent); - Assert.That(price, Is.EqualTo(100.0)); + await server.WaitAssertion(() => + { + var priceSystem = entManager.System(); + + var ent = entManager.SpawnEntity("StackEnt", MapCoordinates.Nullspace); + var price = priceSystem.GetPrice(ent); + Assert.That(price, Is.EqualTo(100.0)); + }); await pair.CleanReturnAsync(); } diff --git a/Content.IntegrationTests/Tests/Chemistry/DispenserTest.cs b/Content.IntegrationTests/Tests/Chemistry/DispenserTest.cs index a5449308be4..52b7e555a9d 100644 --- a/Content.IntegrationTests/Tests/Chemistry/DispenserTest.cs +++ b/Content.IntegrationTests/Tests/Chemistry/DispenserTest.cs @@ -18,7 +18,7 @@ public async Task InsertEjectBuiTest() ToggleNeedPower(); // Insert beaker - await Interact("Beaker"); + await InteractUsing("Beaker"); Assert.That(Hands.ActiveHandEntity, Is.Null); // Open BUI diff --git a/Content.IntegrationTests/Tests/Chemistry/FixedPoint2SerializationTest.cs b/Content.IntegrationTests/Tests/Chemistry/FixedPoint2SerializationTest.cs index 8e3b89bff11..0e3f89c2825 100644 --- a/Content.IntegrationTests/Tests/Chemistry/FixedPoint2SerializationTest.cs +++ b/Content.IntegrationTests/Tests/Chemistry/FixedPoint2SerializationTest.cs @@ -9,10 +9,10 @@ namespace Content.IntegrationTests.Tests.Chemistry { public sealed class FixedPoint2SerializationTest : SerializationTest { - protected override Assembly[] Assemblies => new[] - { + protected override Assembly[] Assemblies => + [ typeof(FixedPoint2SerializationTest).Assembly - }; + ]; [Test] public void DeserializeNullTest() @@ -53,6 +53,6 @@ public void DeserializeNullDefinitionTest() [DataDefinition] public sealed partial class FixedPoint2TestDefinition { - [DataField("unit")] public FixedPoint2? Unit { get; set; } = FixedPoint2.New(5); + [DataField] public FixedPoint2? Unit { get; set; } = FixedPoint2.New(5); } } diff --git a/Content.IntegrationTests/Tests/Chemistry/SolutionRoundingTest.cs b/Content.IntegrationTests/Tests/Chemistry/SolutionRoundingTest.cs index 4d19a96d9e7..89d33186a27 100644 --- a/Content.IntegrationTests/Tests/Chemistry/SolutionRoundingTest.cs +++ b/Content.IntegrationTests/Tests/Chemistry/SolutionRoundingTest.cs @@ -1,5 +1,5 @@ -using Content.Server.Chemistry.Containers.EntitySystems; using Content.Shared.Chemistry.Components; +using Content.Shared.Chemistry.EntitySystems; using Content.Shared.Chemistry.Reaction; using Content.Shared.Chemistry.Reagent; using Content.Shared.FixedPoint; @@ -76,7 +76,7 @@ public async Task Test() await server.WaitPost(() => { - var system = server.System(); + var system = server.System(); var beaker = server.EntMan.SpawnEntity("SolutionRoundingTestContainer", testMap.GridCoords); system.TryGetSolution(beaker, "beaker", out var newSolutionEnt, out var newSolution); diff --git a/Content.IntegrationTests/Tests/Chemistry/SolutionSystemTests.cs b/Content.IntegrationTests/Tests/Chemistry/SolutionSystemTests.cs index d96a035b2dc..6b71dd08be0 100644 --- a/Content.IntegrationTests/Tests/Chemistry/SolutionSystemTests.cs +++ b/Content.IntegrationTests/Tests/Chemistry/SolutionSystemTests.cs @@ -1,5 +1,5 @@ -using Content.Server.Chemistry.Containers.EntitySystems; using Content.Shared.Chemistry.Components; +using Content.Shared.Chemistry.EntitySystems; using Content.Shared.FixedPoint; using Robust.Shared.GameObjects; using Robust.Shared.Prototypes; @@ -11,7 +11,7 @@ namespace Content.IntegrationTests.Tests.Chemistry; // To ensure volume(A) + volume(B) = volume(A+B) // reactions can change this assumption [TestFixture] -[TestOf(typeof(SolutionContainerSystem))] +[TestOf(typeof(SharedSolutionContainerSystem))] public sealed class SolutionSystemTests { [TestPrototypes] @@ -51,7 +51,7 @@ public async Task TryAddTwoNonReactiveReagent() var entityManager = server.ResolveDependency(); var protoMan = server.ResolveDependency(); - var containerSystem = entityManager.System(); + var containerSystem = entityManager.System(); var testMap = await pair.CreateTestMap(); var coordinates = testMap.GridCoords; @@ -97,7 +97,7 @@ public async Task TryAddTooMuchNonReactiveReagent() var entityManager = server.ResolveDependency(); var protoMan = server.ResolveDependency(); - var containerSystem = entityManager.System(); + var containerSystem = entityManager.System(); var coordinates = testMap.GridCoords; EntityUid beaker; @@ -141,7 +141,7 @@ public async Task TryMixAndOverflowTooMuchReagent() var entityManager = server.ResolveDependency(); var protoMan = server.ResolveDependency(); var testMap = await pair.CreateTestMap(); - var containerSystem = entityManager.System(); + var containerSystem = entityManager.System(); var coordinates = testMap.GridCoords; EntityUid beaker; @@ -194,7 +194,7 @@ public async Task TryMixAndOverflowTooBigOverflow() var entityManager = server.ResolveDependency(); var protoMan = server.ResolveDependency(); - var containerSystem = entityManager.System(); + var containerSystem = entityManager.System(); var testMap = await pair.CreateTestMap(); var coordinates = testMap.GridCoords; diff --git a/Content.IntegrationTests/Tests/Chemistry/TryAllReactionsTest.cs b/Content.IntegrationTests/Tests/Chemistry/TryAllReactionsTest.cs index ddfe7b3481e..3664cda922a 100644 --- a/Content.IntegrationTests/Tests/Chemistry/TryAllReactionsTest.cs +++ b/Content.IntegrationTests/Tests/Chemistry/TryAllReactionsTest.cs @@ -1,4 +1,3 @@ -using Content.Server.Chemistry.Containers.EntitySystems; using Content.Shared.Chemistry.Reaction; using Content.Shared.Chemistry.Components; using Robust.Shared.GameObjects; @@ -6,6 +5,7 @@ using Robust.Shared.Prototypes; using Robust.Shared.Utility; using System.Linq; +using Content.Shared.Chemistry.EntitySystems; namespace Content.IntegrationTests.Tests.Chemistry { @@ -34,7 +34,7 @@ public async Task TryAllTest() var prototypeManager = server.ResolveDependency(); var testMap = await pair.CreateTestMap(); var coordinates = testMap.GridCoords; - var solutionContainerSystem = entityManager.System(); + var solutionContainerSystem = entityManager.System(); foreach (var reactionPrototype in prototypeManager.EnumeratePrototypes()) { diff --git a/Content.IntegrationTests/Tests/ClickableTest.cs b/Content.IntegrationTests/Tests/ClickableTest.cs index 76085381852..59836509081 100644 --- a/Content.IntegrationTests/Tests/ClickableTest.cs +++ b/Content.IntegrationTests/Tests/ClickableTest.cs @@ -52,7 +52,6 @@ public async Task Test(string prototype, float clickPosX, float clickPosY, var serverEntManager = server.ResolveDependency(); var eyeManager = client.ResolveDependency(); var spriteQuery = clientEntManager.GetEntityQuery(); - var xformQuery = clientEntManager.GetEntityQuery(); var eye = client.ResolveDependency().CurrentEye; var testMap = await pair.CreateTestMap(); @@ -80,9 +79,8 @@ await client.WaitPost(() => eyeManager.CurrentEye.Rotation = 0; var pos = clientEntManager.System().GetWorldPosition(clientEnt); - var clickable = clientEntManager.GetComponent(clientEnt); - hit = clickable.CheckClick(sprite, xformQuery.GetComponent(clientEnt), xformQuery, new Vector2(clickPosX, clickPosY) + pos, eye, out _, out _, out _); + hit = clientEntManager.System().CheckClick((clientEnt, null, sprite, null), new Vector2(clickPosX, clickPosY) + pos, eye, out _, out _, out _); }); await server.WaitPost(() => diff --git a/Content.IntegrationTests/Tests/Climbing/ClimbingTest.cs b/Content.IntegrationTests/Tests/Climbing/ClimbingTest.cs index d8d3086520e..2db0a9acd3d 100644 --- a/Content.IntegrationTests/Tests/Climbing/ClimbingTest.cs +++ b/Content.IntegrationTests/Tests/Climbing/ClimbingTest.cs @@ -1,5 +1,6 @@ #nullable enable using Content.IntegrationTests.Tests.Interaction; +using Content.IntegrationTests.Tests.Movement; using Robust.Shared.Maths; using ClimbingComponent = Content.Shared.Climbing.Components.ClimbingComponent; using ClimbSystem = Content.Shared.Climbing.Systems.ClimbSystem; diff --git a/Content.IntegrationTests/Tests/Commands/PardonCommand.cs b/Content.IntegrationTests/Tests/Commands/PardonCommand.cs index b3a66e3211c..4db9eabf5c6 100644 --- a/Content.IntegrationTests/Tests/Commands/PardonCommand.cs +++ b/Content.IntegrationTests/Tests/Commands/PardonCommand.cs @@ -28,7 +28,7 @@ public async Task PardonTest() Assert.That(netMan.IsConnected); - Assert.That(sPlayerManager.Sessions.Count(), Is.EqualTo(1)); + Assert.That(sPlayerManager.Sessions, Has.Length.EqualTo(1)); // No bans on record Assert.Multiple(async () => { @@ -50,7 +50,7 @@ public async Task PardonTest() var banReason = "test"; - Assert.That(sPlayerManager.Sessions.Count(), Is.EqualTo(1)); + Assert.That(sPlayerManager.Sessions, Has.Length.EqualTo(1)); // Ban the client for 24 hours await server.WaitPost(() => sConsole.ExecuteCommand($"ban {clientSession.Name} {banReason} 1440")); @@ -63,7 +63,7 @@ public async Task PardonTest() }); await pair.RunTicksSync(5); - Assert.That(sPlayerManager.Sessions.Count(), Is.EqualTo(0)); + Assert.That(sPlayerManager.Sessions, Has.Length.EqualTo(0)); Assert.That(!netMan.IsConnected); // Try to pardon a ban that does not exist @@ -143,11 +143,11 @@ public async Task PardonTest() }); // Reconnect client. Slightly faster than dirtying the pair. - Assert.That(sPlayerManager.Sessions.Count(), Is.EqualTo(0)); + Assert.That(sPlayerManager.Sessions, Is.Empty); client.SetConnectTarget(server); await client.WaitPost(() => netMan.ClientConnect(null!, 0, null!)); await pair.RunTicksSync(5); - Assert.That(sPlayerManager.Sessions.Count(), Is.EqualTo(1)); + Assert.That(sPlayerManager.Sessions, Has.Length.EqualTo(1)); await pair.CleanReturnAsync(); } diff --git a/Content.IntegrationTests/Tests/Commands/RejuvenateTest.cs b/Content.IntegrationTests/Tests/Commands/RejuvenateTest.cs index 2fda3ad58e6..cfc80073066 100644 --- a/Content.IntegrationTests/Tests/Commands/RejuvenateTest.cs +++ b/Content.IntegrationTests/Tests/Commands/RejuvenateTest.cs @@ -37,9 +37,9 @@ public async Task RejuvenateDeadTest() var server = pair.Server; var entManager = server.ResolveDependency(); var prototypeManager = server.ResolveDependency(); - var mobStateSystem = entManager.EntitySysManager.GetEntitySystem(); - var damSystem = entManager.EntitySysManager.GetEntitySystem(); - var rejuvenateSystem = entManager.EntitySysManager.GetEntitySystem(); + var mobStateSystem = entManager.System(); + var damSystem = entManager.System(); + var rejuvenateSystem = entManager.System(); await server.WaitAssertion(() => { diff --git a/Content.IntegrationTests/Tests/Commands/RestartRoundTest.cs b/Content.IntegrationTests/Tests/Commands/RestartRoundTest.cs index 74d014b7724..b94cd7807cf 100644 --- a/Content.IntegrationTests/Tests/Commands/RestartRoundTest.cs +++ b/Content.IntegrationTests/Tests/Commands/RestartRoundTest.cs @@ -25,7 +25,7 @@ public async Task RestartRoundAfterStart(bool lobbyEnabled) var configManager = server.ResolveDependency(); var entityManager = server.ResolveDependency(); - var gameTicker = entityManager.EntitySysManager.GetEntitySystem(); + var gameTicker = entityManager.System(); await pair.RunTicksSync(5); diff --git a/Content.IntegrationTests/Tests/Construction/Interaction/ComputerContruction.cs b/Content.IntegrationTests/Tests/Construction/Interaction/ComputerContruction.cs index 5412469ac5d..8af5edaf316 100644 --- a/Content.IntegrationTests/Tests/Construction/Interaction/ComputerContruction.cs +++ b/Content.IntegrationTests/Tests/Construction/Interaction/ComputerContruction.cs @@ -16,10 +16,8 @@ public async Task ConstructComputer() await StartConstruction(Computer); // Initial interaction (ghost turns into real entity) - await Interact(Steel, 5); - ClientAssertPrototype(ComputerFrame, ClientTarget); - Target = CTestSystem.Ghosts[ClientTarget!.Value.GetHashCode()]; - ClientTarget = null; + await InteractUsing(Steel, 5); + ClientAssertPrototype(ComputerFrame, Target); // Perform construction steps await Interact( @@ -41,7 +39,7 @@ public async Task DeconstructComputer() await StartDeconstruction(ComputerId); // Initial interaction turns id computer into generic computer - await Interact(Screw); + await InteractUsing(Screw); AssertPrototype(ComputerFrame); // Perform deconstruction steps @@ -71,7 +69,7 @@ public async Task ChangeComputer() await SpawnTarget(ComputerId); // Initial interaction turns id computer into generic computer - await Interact(Screw); + await InteractUsing(Screw); AssertPrototype(ComputerFrame); // Perform partial deconstruction steps diff --git a/Content.IntegrationTests/Tests/Construction/Interaction/CraftingTests.cs b/Content.IntegrationTests/Tests/Construction/Interaction/CraftingTests.cs index 76911eba5f7..74d0e924217 100644 --- a/Content.IntegrationTests/Tests/Construction/Interaction/CraftingTests.cs +++ b/Content.IntegrationTests/Tests/Construction/Interaction/CraftingTests.cs @@ -59,11 +59,6 @@ public async Task CraftSpear() await AssertEntityLookup((Rod, 2), (Cable, 7), (ShardGlass, 2), (Spear, 1)); } - // The following is wrapped in an if DEBUG. This is because of cursed state handling bugs. Tests don't (de)serialize - // net messages and just copy objects by reference. This means that the server will directly modify cached server - // states on the client's end. Crude fix at the moment is to used modified state handling while in debug mode - // Otherwise, this test cannot work. -#if DEBUG /// /// Cancel crafting a complex recipe. /// @@ -93,28 +88,22 @@ public async Task CancelCraft() await RunTicks(1); // DoAfter is in progress. Entity not spawned, stacks have been split and someingredients are in a container. - Assert.Multiple(async () => - { - Assert.That(ActiveDoAfters.Count(), Is.EqualTo(1)); - Assert.That(sys.IsEntityInContainer(shard), Is.True); - Assert.That(sys.IsEntityInContainer(rods), Is.False); - Assert.That(sys.IsEntityInContainer(wires), Is.False); - Assert.That(rodStack, Has.Count.EqualTo(8)); - Assert.That(wireStack, Has.Count.EqualTo(7)); + Assert.That(ActiveDoAfters.Count(), Is.EqualTo(1)); + Assert.That(sys.IsEntityInContainer(shard), Is.True); + Assert.That(sys.IsEntityInContainer(rods), Is.False); + Assert.That(sys.IsEntityInContainer(wires), Is.False); + Assert.That(rodStack, Has.Count.EqualTo(8)); + Assert.That(wireStack, Has.Count.EqualTo(7)); - await FindEntity(Spear, shouldSucceed: false); - }); + await FindEntity(Spear, shouldSucceed: false); // Cancel the DoAfter. Should drop ingredients to the floor. await CancelDoAfters(); - Assert.Multiple(async () => - { - Assert.That(sys.IsEntityInContainer(rods), Is.False); - Assert.That(sys.IsEntityInContainer(wires), Is.False); - Assert.That(sys.IsEntityInContainer(shard), Is.False); - await FindEntity(Spear, shouldSucceed: false); - await AssertEntityLookup((Rod, 10), (Cable, 10), (ShardGlass, 1)); - }); + Assert.That(sys.IsEntityInContainer(rods), Is.False); + Assert.That(sys.IsEntityInContainer(wires), Is.False); + Assert.That(sys.IsEntityInContainer(shard), Is.False); + await FindEntity(Spear, shouldSucceed: false); + await AssertEntityLookup((Rod, 10), (Cable, 10), (ShardGlass, 1)); // Re-attempt the do-after #pragma warning disable CS4014 // Legacy construction code uses DoAfterAwait. See above. @@ -123,24 +112,17 @@ public async Task CancelCraft() await RunTicks(1); // DoAfter is in progress. Entity not spawned, ingredients are in a container. - Assert.Multiple(async () => - { - Assert.That(ActiveDoAfters.Count(), Is.EqualTo(1)); - Assert.That(sys.IsEntityInContainer(shard), Is.True); - await FindEntity(Spear, shouldSucceed: false); - }); + Assert.That(ActiveDoAfters.Count(), Is.EqualTo(1)); + Assert.That(sys.IsEntityInContainer(shard), Is.True); + await FindEntity(Spear, shouldSucceed: false); // Finish the DoAfter await AwaitDoAfters(); // Spear has been crafted. Rods and wires are no longer contained. Glass has been consumed. - Assert.Multiple(async () => - { - await FindEntity(Spear); - Assert.That(sys.IsEntityInContainer(rods), Is.False); - Assert.That(sys.IsEntityInContainer(wires), Is.False); - Assert.That(SEntMan.Deleted(shard)); - }); + await FindEntity(Spear); + Assert.That(sys.IsEntityInContainer(rods), Is.False); + Assert.That(sys.IsEntityInContainer(wires), Is.False); + Assert.That(SEntMan.Deleted(shard)); } -#endif } diff --git a/Content.IntegrationTests/Tests/Construction/Interaction/GrilleWindowConstruction.cs b/Content.IntegrationTests/Tests/Construction/Interaction/GrilleWindowConstruction.cs index 0de39d27577..ef6a7b09ae3 100644 --- a/Content.IntegrationTests/Tests/Construction/Interaction/GrilleWindowConstruction.cs +++ b/Content.IntegrationTests/Tests/Construction/Interaction/GrilleWindowConstruction.cs @@ -17,17 +17,14 @@ public async Task WindowOnGrille() { // Construct Grille await StartConstruction(Grille); - await Interact(Rod, 10); - ClientAssertPrototype(Grille, ClientTarget); - - Target = CTestSystem.Ghosts[ClientTarget!.Value.GetHashCode()]; + await InteractUsing(Rod, 10); + ClientAssertPrototype(Grille, Target); var grille = Target; // Construct Window await StartConstruction(Window); - await Interact(Glass, 10); - ClientAssertPrototype(Window, ClientTarget); - Target = CTestSystem.Ghosts[ClientTarget!.Value.GetHashCode()]; + await InteractUsing(Glass, 10); + ClientAssertPrototype(Window, Target); // Deconstruct Window await Interact(Screw, Wrench); @@ -35,7 +32,7 @@ public async Task WindowOnGrille() // Deconstruct Grille Target = grille; - await Interact(Cut); + await InteractUsing(Cut); AssertDeleted(); } diff --git a/Content.IntegrationTests/Tests/Construction/Interaction/MachineConstruction.cs b/Content.IntegrationTests/Tests/Construction/Interaction/MachineConstruction.cs index cd95a85f205..98db51b4078 100644 --- a/Content.IntegrationTests/Tests/Construction/Interaction/MachineConstruction.cs +++ b/Content.IntegrationTests/Tests/Construction/Interaction/MachineConstruction.cs @@ -14,9 +14,8 @@ public sealed class MachineConstruction : InteractionTest public async Task ConstructProtolathe() { await StartConstruction(MachineFrame); - await Interact(Steel, 5); - ClientAssertPrototype(Unfinished, ClientTarget); - Target = CTestSystem.Ghosts[ClientTarget!.Value.GetHashCode()]; + await InteractUsing(Steel, 5); + ClientAssertPrototype(Unfinished, Target); await Interact(Wrench, Cable); AssertPrototype(MachineFrame); await Interact(ProtolatheBoard, Bin1, Bin1, Manipulator1, Manipulator1, Beaker, Beaker, Screw); @@ -51,7 +50,7 @@ public async Task ChangeMachine() AssertPrototype(MachineFrame); // Change it into an autolathe - await Interact("AutolatheMachineCircuitboard"); + await InteractUsing("AutolatheMachineCircuitboard"); AssertPrototype(MachineFrame); await Interact(Bin1, Bin1, Bin1, Manipulator1, Glass, Screw); AssertPrototype("Autolathe"); diff --git a/Content.IntegrationTests/Tests/Construction/Interaction/PanelScrewing.cs b/Content.IntegrationTests/Tests/Construction/Interaction/PanelScrewing.cs index b6d960e2882..636d58bf96f 100644 --- a/Content.IntegrationTests/Tests/Construction/Interaction/PanelScrewing.cs +++ b/Content.IntegrationTests/Tests/Construction/Interaction/PanelScrewing.cs @@ -19,21 +19,21 @@ public async Task WiresPanelScrewing(string prototype) // Open & close panel Assert.That(comp.Open, Is.False); - await Interact(Screw); + await InteractUsing(Screw); Assert.That(comp.Open, Is.True); - await Interact(Screw); + await InteractUsing(Screw); Assert.That(comp.Open, Is.False); // Interrupted DoAfters - await Interact(Screw, awaitDoAfters: false); + await InteractUsing(Screw, awaitDoAfters: false); await CancelDoAfters(); Assert.That(comp.Open, Is.False); - await Interact(Screw); + await InteractUsing(Screw); Assert.That(comp.Open, Is.True); - await Interact(Screw, awaitDoAfters: false); + await InteractUsing(Screw, awaitDoAfters: false); await CancelDoAfters(); Assert.That(comp.Open, Is.True); - await Interact(Screw); + await InteractUsing(Screw); Assert.That(comp.Open, Is.False); } } diff --git a/Content.IntegrationTests/Tests/Construction/Interaction/PlaceableDeconstruction.cs b/Content.IntegrationTests/Tests/Construction/Interaction/PlaceableDeconstruction.cs index bc0cb9bcef3..783c14c0682 100644 --- a/Content.IntegrationTests/Tests/Construction/Interaction/PlaceableDeconstruction.cs +++ b/Content.IntegrationTests/Tests/Construction/Interaction/PlaceableDeconstruction.cs @@ -13,9 +13,9 @@ public async Task DeconstructTable() { await StartDeconstruction("Table"); Assert.That(Comp().IsPlaceable); - await Interact(Wrench); + await InteractUsing(Wrench); AssertPrototype("TableFrame"); - await Interact(Wrench); + await InteractUsing(Wrench); AssertDeleted(); await AssertEntityLookup((Steel, 1), (Rod, 2)); } diff --git a/Content.IntegrationTests/Tests/Construction/Interaction/WallConstruction.cs b/Content.IntegrationTests/Tests/Construction/Interaction/WallConstruction.cs index 67a2f8025dc..292bf0c55ab 100644 --- a/Content.IntegrationTests/Tests/Construction/Interaction/WallConstruction.cs +++ b/Content.IntegrationTests/Tests/Construction/Interaction/WallConstruction.cs @@ -12,11 +12,10 @@ public sealed class WallConstruction : InteractionTest public async Task ConstructWall() { await StartConstruction(Wall); - await Interact(Steel, 2); + await InteractUsing(Steel, 2); Assert.That(Hands.ActiveHandEntity, Is.Null); - ClientAssertPrototype(Girder, ClientTarget); - Target = CTestSystem.Ghosts[ClientTarget!.Value.GetHashCode()]; - await Interact(Steel, 2); + ClientAssertPrototype(Girder, Target); + await InteractUsing(Steel, 2); Assert.That(Hands.ActiveHandEntity, Is.Null); AssertPrototype(WallSolid); } @@ -25,7 +24,7 @@ public async Task ConstructWall() public async Task DeconstructWall() { await StartDeconstruction(WallSolid); - await Interact(Weld); + await InteractUsing(Weld); AssertPrototype(Girder); await Interact(Wrench, Screw); AssertDeleted(); diff --git a/Content.IntegrationTests/Tests/Construction/Interaction/WindowConstruction.cs b/Content.IntegrationTests/Tests/Construction/Interaction/WindowConstruction.cs index 46bb892ed99..2ece6b3e397 100644 --- a/Content.IntegrationTests/Tests/Construction/Interaction/WindowConstruction.cs +++ b/Content.IntegrationTests/Tests/Construction/Interaction/WindowConstruction.cs @@ -11,8 +11,8 @@ public sealed class WindowConstruction : InteractionTest public async Task ConstructWindow() { await StartConstruction(Window); - await Interact(Glass, 5); - ClientAssertPrototype(Window, ClientTarget); + await InteractUsing(Glass, 5); + ClientAssertPrototype(Window, Target); } [Test] @@ -28,8 +28,8 @@ public async Task DeconstructWindow() public async Task ConstructReinforcedWindow() { await StartConstruction(RWindow); - await Interact(RGlass, 5); - ClientAssertPrototype(RWindow, ClientTarget); + await InteractUsing(RGlass, 5); + ClientAssertPrototype(RWindow, Target); } [Test] diff --git a/Content.IntegrationTests/Tests/Construction/Interaction/WindowRepair.cs b/Content.IntegrationTests/Tests/Construction/Interaction/WindowRepair.cs index abd4bc265b3..6eea519af3b 100644 --- a/Content.IntegrationTests/Tests/Construction/Interaction/WindowRepair.cs +++ b/Content.IntegrationTests/Tests/Construction/Interaction/WindowRepair.cs @@ -24,7 +24,7 @@ public async Task RepairReinforcedWindow() Assert.That(comp.Damage.GetTotal(), Is.GreaterThan(FixedPoint2.Zero)); // Repair the entity - await Interact(Weld); + await InteractUsing(Weld); Assert.That(comp.Damage.GetTotal(), Is.EqualTo(FixedPoint2.Zero)); // Validate that we can still deconstruct the entity (i.e., that welding deconstruction is not blocked). diff --git a/Content.IntegrationTests/Tests/ContainerOcclusionTest.cs b/Content.IntegrationTests/Tests/ContainerOcclusionTest.cs index c61a70faf0b..c907f6bb1f3 100644 --- a/Content.IntegrationTests/Tests/ContainerOcclusionTest.cs +++ b/Content.IntegrationTests/Tests/ContainerOcclusionTest.cs @@ -43,11 +43,11 @@ public async Task TestA() EntityUid dummy = default; var mapManager = server.ResolveDependency(); - var mapId = mapManager.CreateMap(); + var map = await pair.CreateTestMap(); await server.WaitPost(() => { - var pos = new MapCoordinates(Vector2.Zero, mapId); + var pos = new MapCoordinates(Vector2.Zero, map.MapId); var entStorage = serverEntManager.EntitySysManager.GetEntitySystem(); var container = serverEntManager.SpawnEntity("ContainerOcclusionA", pos); dummy = serverEntManager.SpawnEntity("ContainerOcclusionDummy", pos); @@ -85,11 +85,12 @@ public async Task TestB() EntityUid dummy = default; var mapManager = server.ResolveDependency(); - var mapId = mapManager.CreateMap(); + + var map = await pair.CreateTestMap(); await server.WaitPost(() => { - var pos = new MapCoordinates(Vector2.Zero, mapId); + var pos = new MapCoordinates(Vector2.Zero, map.MapId); var entStorage = serverEntManager.EntitySysManager.GetEntitySystem(); var container = serverEntManager.SpawnEntity("ContainerOcclusionB", pos); dummy = serverEntManager.SpawnEntity("ContainerOcclusionDummy", pos); @@ -99,10 +100,12 @@ await server.WaitPost(() => await pair.RunTicksSync(5); - var clientEnt = clientEntManager.GetEntity(serverEntManager.GetNetEntity(dummy)); + EntityUid clientEnt = default!; await client.WaitAssertion(() => { + clientEnt = clientEntManager.GetEntity(serverEntManager.GetNetEntity(dummy)); + var sprite = clientEntManager.GetComponent(clientEnt); var light = clientEntManager.GetComponent(clientEnt); Assert.Multiple(() => @@ -127,11 +130,12 @@ public async Task TestAb() EntityUid dummy = default; var mapManager = server.ResolveDependency(); - var mapId = mapManager.CreateMap(); + + var map = await pair.CreateTestMap(); await server.WaitPost(() => { - var pos = new MapCoordinates(Vector2.Zero, mapId); + var pos = new MapCoordinates(Vector2.Zero, map.MapId); var entStorage = serverEntManager.EntitySysManager.GetEntitySystem(); var containerA = serverEntManager.SpawnEntity("ContainerOcclusionA", pos); var containerB = serverEntManager.SpawnEntity("ContainerOcclusionB", pos); diff --git a/Content.IntegrationTests/Tests/Damageable/DamageSpecifierTest.cs b/Content.IntegrationTests/Tests/Damageable/DamageSpecifierTest.cs index 41d17ddedae..bd5cac05dd1 100644 --- a/Content.IntegrationTests/Tests/Damageable/DamageSpecifierTest.cs +++ b/Content.IntegrationTests/Tests/Damageable/DamageSpecifierTest.cs @@ -14,39 +14,39 @@ public void TestDamageSpecifierOperations() // Test basic math operations. // I've already nearly broken these once. When editing the operators. - DamageSpecifier input1 = new() { DamageDict = _input1 }; - DamageSpecifier input2 = new() { DamageDict = _input2 }; - DamageSpecifier output1 = new() { DamageDict = _output1 }; - DamageSpecifier output2 = new() { DamageDict = _output2 }; - DamageSpecifier output3 = new() { DamageDict = _output3 }; - DamageSpecifier output4 = new() { DamageDict = _output4 }; - DamageSpecifier output5 = new() { DamageDict = _output5 }; + DamageSpecifier input1 = new() { DamageDict = Input1 }; + DamageSpecifier input2 = new() { DamageDict = Input2 }; + DamageSpecifier output1 = new() { DamageDict = Output1 }; + DamageSpecifier output2 = new() { DamageDict = Output2 }; + DamageSpecifier output3 = new() { DamageDict = Output3 }; + DamageSpecifier output4 = new() { DamageDict = Output4 }; + DamageSpecifier output5 = new() { DamageDict = Output5 }; Assert.Multiple(() => { - Assert.That((-input1).Equals(output1)); - Assert.That((input1 / 2).Equals(output2)); - Assert.That((input1 * 2).Equals(output3)); + Assert.That(-input1, Is.EqualTo(output1)); + Assert.That(input1 / 2, Is.EqualTo(output2)); + Assert.That(input1 * 2, Is.EqualTo(output3)); }); - var difference = (input1 - input2); - Assert.That(difference.Equals(output4)); + var difference = input1 - input2; + Assert.That(difference, Is.EqualTo(output4)); - var difference2 = (-input2) + input1; - Assert.That(difference.Equals(difference2)); + var difference2 = -input2 + input1; + Assert.That(difference, Is.EqualTo(difference2)); difference.Clamp(-0.25f, 0.25f); - Assert.That(difference.Equals(output5)); + Assert.That(difference, Is.EqualTo(output5)); } - static Dictionary _input1 = new() + private static readonly Dictionary Input1 = new() { { "A", 1.5f }, { "B", 2 }, { "C", 3 } }; - static Dictionary _input2 = new() + private static readonly Dictionary Input2 = new() { { "A", 1 }, { "B", 2 }, @@ -54,28 +54,28 @@ public void TestDamageSpecifierOperations() { "D", 0.05f } }; - static Dictionary _output1 = new() + private static readonly Dictionary Output1 = new() { { "A", -1.5f }, { "B", -2 }, { "C", -3 } }; - static Dictionary _output2 = new() + private static readonly Dictionary Output2 = new() { { "A", 0.75f }, { "B", 1 }, { "C", 1.5 } }; - static Dictionary _output3 = new() + private static readonly Dictionary Output3 = new() { { "A", 3f }, { "B", 4 }, { "C", 6 } }; - static Dictionary _output4 = new() + private static readonly Dictionary Output4 = new() { { "A", 0.5f }, { "B", 0 }, @@ -83,7 +83,7 @@ public void TestDamageSpecifierOperations() { "D", -0.05f } }; - static Dictionary _output5 = new() + private static readonly Dictionary Output5 = new() { { "A", 0.25f }, { "B", 0 }, diff --git a/Content.IntegrationTests/Tests/Damageable/DamageableTest.cs b/Content.IntegrationTests/Tests/Damageable/DamageableTest.cs index c40b8ed286f..69069fc82fe 100644 --- a/Content.IntegrationTests/Tests/Damageable/DamageableTest.cs +++ b/Content.IntegrationTests/Tests/Damageable/DamageableTest.cs @@ -107,10 +107,11 @@ public async Task TestDamageableComponents() FixedPoint2 typeDamage; + var map = await pair.CreateTestMap(); + await server.WaitPost(() => { - var map = sMapManager.CreateMap(); - var coordinates = new MapCoordinates(0, 0, map); + var coordinates = map.MapCoords; sDamageableEntity = sEntityManager.SpawnEntity("TestDamageableEntityId", coordinates); sDamageableComponent = sEntityManager.GetComponent(sDamageableEntity); diff --git a/Content.IntegrationTests/Tests/DeltaV/ShipyardTest.cs b/Content.IntegrationTests/Tests/DeltaV/ShipyardTest.cs new file mode 100644 index 00000000000..706ba306017 --- /dev/null +++ b/Content.IntegrationTests/Tests/DeltaV/ShipyardTest.cs @@ -0,0 +1,90 @@ +using Content.Server.Cargo.Systems; +using Content.Server.Shipyard; +using Content.Server.Shuttles.Components; +using Content.Shared.Shipyard.Prototypes; +using Robust.Shared.GameObjects; +using Robust.Shared.Prototypes; + +namespace Content.IntegrationTests.Tests.DeltaV; + +[TestFixture] +[TestOf(typeof(ShipyardSystem))] +public sealed class ShipyardTest +{ + [Test] + public async Task NoShipyardArbitrage() + { + await using var pair = await PoolManager.GetServerClient(); + var server = pair.Server; + + var entities = server.ResolveDependency(); + var proto = server.ResolveDependency(); + var shipyard = entities.System(); + var pricing = entities.System(); + + await server.WaitAssertion(() => + { + Assert.Multiple(() => + { + foreach (var vessel in proto.EnumeratePrototypes()) + { + var shuttle = shipyard.TryCreateShuttle(vessel.Path.ToString()); + Assert.That(shuttle, Is.Not.Null, $"Failed to spawn shuttle {vessel.ID}!"); + + var value = pricing.AppraiseGrid(shuttle.Value); + Assert.That(value, Is.AtMost(vessel.Price), $"Found arbitrage on shuttle {vessel.ID}! Price is {vessel.Price} but value is {value}!"); + entities.DeleteEntity(shuttle); + } + }); + }); + + await pair.CleanReturnAsync(); + } + + [Test] + public async Task AllShuttlesValid() + { + await using var pair = await PoolManager.GetServerClient(); + var server = pair.Server; + + var entities = server.ResolveDependency(); + var proto = server.ResolveDependency(); + var shipyard = entities.System(); + + await server.WaitAssertion(() => + { + Assert.Multiple(() => + { + foreach (var vessel in proto.EnumeratePrototypes()) + { + var shuttle = shipyard.TryCreateShuttle(vessel.Path.ToString()); + Assert.That(shuttle, Is.Not.Null, $"Failed to spawn shuttle {vessel.ID}!"); + + var console = FindComponent(entities, shuttle.Value); + Assert.That(console, Is.True, $"Shuttle {vessel.ID} had no shuttle console!"); + + var dock = FindComponent(entities, shuttle.Value); + Assert.That(dock, Is.True, $"Shuttle {vessel.ID} had no shuttle dock!"); + + entities.DeleteEntity(shuttle); + } + }); + }); + + await pair.CleanReturnAsync(); + } + + private bool FindComponent(IEntityManager entities, EntityUid shuttle) where T: Component + { + var query = entities.EntityQueryEnumerator(); + while (query.MoveNext(out _, out var xform)) + { + if (xform.ParentUid != shuttle) + continue; + + return true; + } + + return false; + } +} diff --git a/Content.IntegrationTests/Tests/Destructible/DestructibleDestructionTest.cs b/Content.IntegrationTests/Tests/Destructible/DestructibleDestructionTest.cs index e14a8264678..a50238d8f50 100644 --- a/Content.IntegrationTests/Tests/Destructible/DestructibleDestructionTest.cs +++ b/Content.IntegrationTests/Tests/Destructible/DestructibleDestructionTest.cs @@ -3,6 +3,7 @@ using Content.Server.Destructible.Thresholds.Behaviors; using Content.Shared.Damage; using Content.Shared.Damage.Prototypes; +using Content.Shared.Destructible.Thresholds; using Robust.Shared.GameObjects; using Robust.Shared.Prototypes; using static Content.IntegrationTests.Tests.Destructible.DestructibleTestPrototypes; diff --git a/Content.IntegrationTests/Tests/DoAfter/DoAfterCancellationTests.cs b/Content.IntegrationTests/Tests/DoAfter/DoAfterCancellationTests.cs index 0ebd17d8879..1aaf4a5184c 100644 --- a/Content.IntegrationTests/Tests/DoAfter/DoAfterCancellationTests.cs +++ b/Content.IntegrationTests/Tests/DoAfter/DoAfterCancellationTests.cs @@ -16,31 +16,31 @@ public sealed class DoAfterCancellationTests : InteractionTest public async Task CancelWallDeconstruct() { await StartDeconstruction(WallConstruction.WallSolid); - await Interact(Weld, awaitDoAfters: false); + await InteractUsing(Weld, awaitDoAfters: false); // Failed do-after has no effect await CancelDoAfters(); AssertPrototype(WallConstruction.WallSolid); // Second attempt works fine - await Interact(Weld); + await InteractUsing(Weld); AssertPrototype(WallConstruction.Girder); // Repeat for wrenching interaction AssertAnchored(); - await Interact(Wrench, awaitDoAfters: false); + await InteractUsing(Wrench, awaitDoAfters: false); await CancelDoAfters(); AssertAnchored(); AssertPrototype(WallConstruction.Girder); - await Interact(Wrench); + await InteractUsing(Wrench); AssertAnchored(false); // Repeat for screwdriver interaction. AssertExists(); - await Interact(Screw, awaitDoAfters: false); + await InteractUsing(Screw, awaitDoAfters: false); await CancelDoAfters(); AssertExists(); - await Interact(Screw); + await InteractUsing(Screw); AssertDeleted(); } @@ -48,17 +48,16 @@ public async Task CancelWallDeconstruct() public async Task CancelWallConstruct() { await StartConstruction(WallConstruction.Wall); - await Interact(Steel, 5, awaitDoAfters: false); + await InteractUsing(Steel, 5, awaitDoAfters: false); await CancelDoAfters(); - await Interact(Steel, 5); - ClientAssertPrototype(WallConstruction.Girder, ClientTarget); - Target = CTestSystem.Ghosts[ClientTarget!.Value.GetHashCode()]; - await Interact(Steel, 5, awaitDoAfters: false); + await InteractUsing(Steel, 5); + ClientAssertPrototype(WallConstruction.Girder, Target); + await InteractUsing(Steel, 5, awaitDoAfters: false); await CancelDoAfters(); AssertPrototype(WallConstruction.Girder); - await Interact(Steel, 5); + await InteractUsing(Steel, 5); AssertPrototype(WallConstruction.WallSolid); } @@ -66,11 +65,11 @@ public async Task CancelWallConstruct() public async Task CancelTilePry() { await SetTile(Floor); - await Interact(Pry, awaitDoAfters: false); + await InteractUsing(Pry, awaitDoAfters: false); await CancelDoAfters(); await AssertTile(Floor); - await Interact(Pry); + await InteractUsing(Pry); await AssertTile(Plating); } @@ -78,7 +77,7 @@ public async Task CancelTilePry() public async Task CancelRepeatedTilePry() { await SetTile(Floor); - await Interact(Pry, awaitDoAfters: false); + await InteractUsing(Pry, awaitDoAfters: false); await RunTicks(1); Assert.That(ActiveDoAfters.Count(), Is.EqualTo(1)); await AssertTile(Floor); @@ -89,7 +88,7 @@ public async Task CancelRepeatedTilePry() await AssertTile(Floor); // Third do after will work fine - await Interact(Pry); + await InteractUsing(Pry); Assert.That(ActiveDoAfters.Count(), Is.EqualTo(0)); await AssertTile(Plating); } @@ -102,7 +101,7 @@ public async Task CancelRepeatedWeld() Assert.That(comp.IsWelded, Is.False); - await Interact(Weld, awaitDoAfters: false); + await InteractUsing(Weld, awaitDoAfters: false); await RunTicks(1); Assert.Multiple(() => { @@ -120,7 +119,7 @@ public async Task CancelRepeatedWeld() }); // Third do after will work fine - await Interact(Weld); + await InteractUsing(Weld); Assert.Multiple(() => { Assert.That(ActiveDoAfters.Count(), Is.EqualTo(0)); @@ -128,7 +127,7 @@ public async Task CancelRepeatedWeld() }); // Repeat test for un-welding - await Interact(Weld, awaitDoAfters: false); + await InteractUsing(Weld, awaitDoAfters: false); await RunTicks(1); Assert.Multiple(() => { @@ -141,7 +140,7 @@ public async Task CancelRepeatedWeld() Assert.That(ActiveDoAfters.Count(), Is.EqualTo(0)); Assert.That(comp.IsWelded, Is.True); }); - await Interact(Weld); + await InteractUsing(Weld); Assert.Multiple(() => { Assert.That(ActiveDoAfters.Count(), Is.EqualTo(0)); diff --git a/Content.IntegrationTests/Tests/Doors/AirlockTest.cs b/Content.IntegrationTests/Tests/Doors/AirlockTest.cs index 9f31231091f..fb77bf18d83 100644 --- a/Content.IntegrationTests/Tests/Doors/AirlockTest.cs +++ b/Content.IntegrationTests/Tests/Doors/AirlockTest.cs @@ -123,24 +123,24 @@ public async Task AirlockBlockTest() var xformSystem = entityManager.System(); PhysicsComponent physBody = null; - EntityUid AirlockPhysicsDummy = default; + EntityUid airlockPhysicsDummy = default; EntityUid airlock = default; DoorComponent doorComponent = null; - var AirlockPhysicsDummyStartingX = -1; + var airlockPhysicsDummyStartingX = -1; + + var map = await pair.CreateTestMap(); await server.WaitAssertion(() => { - var mapId = mapManager.CreateMap(); - - var humanCoordinates = new MapCoordinates(new Vector2(AirlockPhysicsDummyStartingX, 0), mapId); - AirlockPhysicsDummy = entityManager.SpawnEntity("AirlockPhysicsDummy", humanCoordinates); + var humanCoordinates = new MapCoordinates(new Vector2(airlockPhysicsDummyStartingX, 0), map.MapId); + airlockPhysicsDummy = entityManager.SpawnEntity("AirlockPhysicsDummy", humanCoordinates); - airlock = entityManager.SpawnEntity("AirlockDummy", new MapCoordinates(new Vector2(0, 0), mapId)); + airlock = entityManager.SpawnEntity("AirlockDummy", new MapCoordinates(new Vector2(0, 0), map.MapId)); Assert.Multiple(() => { - Assert.That(entityManager.TryGetComponent(AirlockPhysicsDummy, out physBody), Is.True); + Assert.That(entityManager.TryGetComponent(airlockPhysicsDummy, out physBody), Is.True); Assert.That(entityManager.TryGetComponent(airlock, out doorComponent), Is.True); }); Assert.That(doorComponent.State, Is.EqualTo(DoorState.Closed)); @@ -152,7 +152,7 @@ await server.WaitAssertion(() => await server.WaitAssertion(() => Assert.That(physBody, Is.Not.EqualTo(null))); await server.WaitPost(() => { - physicsSystem.SetLinearVelocity(AirlockPhysicsDummy, new Vector2(0.5f, 0f), body: physBody); + physicsSystem.SetLinearVelocity(airlockPhysicsDummy, new Vector2(0.5f, 0f), body: physBody); }); for (var i = 0; i < 240; i += 10) @@ -176,7 +176,7 @@ await server.WaitPost(() => // Blocked by the airlock await server.WaitAssertion(() => { - Assert.That(Math.Abs(xformSystem.GetWorldPosition(AirlockPhysicsDummy).X - 1), Is.GreaterThan(0.01f)); + Assert.That(Math.Abs(xformSystem.GetWorldPosition(airlockPhysicsDummy).X - 1), Is.GreaterThan(0.01f)); }); await pair.CleanReturnAsync(); } diff --git a/Content.IntegrationTests/Tests/DummyIconTest.cs b/Content.IntegrationTests/Tests/DummyIconTest.cs index a11191a51ea..df2d28a2ea2 100644 --- a/Content.IntegrationTests/Tests/DummyIconTest.cs +++ b/Content.IntegrationTests/Tests/DummyIconTest.cs @@ -21,7 +21,7 @@ await client.WaitAssertion(() => { foreach (var proto in prototypeManager.EnumeratePrototypes()) { - if (proto.NoSpawn || proto.Abstract || pair.IsTestPrototype(proto) || !proto.Components.ContainsKey("Sprite")) + if (proto.HideSpawnMenu || proto.Abstract || pair.IsTestPrototype(proto) || !proto.Components.ContainsKey("Sprite")) continue; Assert.DoesNotThrow(() => diff --git a/Content.IntegrationTests/Tests/EncryptionKeys/RemoveEncryptionKeys.cs b/Content.IntegrationTests/Tests/EncryptionKeys/RemoveEncryptionKeys.cs index 9e3dbd8863e..f5e8c22242e 100644 --- a/Content.IntegrationTests/Tests/EncryptionKeys/RemoveEncryptionKeys.cs +++ b/Content.IntegrationTests/Tests/EncryptionKeys/RemoveEncryptionKeys.cs @@ -22,7 +22,7 @@ public async Task HeadsetKeys() }); // Remove the key - await Interact(Screw); + await InteractUsing(Screw); Assert.Multiple(() => { Assert.That(comp.KeyContainer.ContainedEntities, Has.Count.EqualTo(0)); @@ -34,7 +34,7 @@ public async Task HeadsetKeys() await AssertEntityLookup(("EncryptionKeyCommon", 1)); // Re-insert a key. - await Interact("EncryptionKeyCentCom"); + await InteractUsing("EncryptionKeyCentCom"); Assert.Multiple(() => { Assert.That(comp.KeyContainer.ContainedEntities, Has.Count.EqualTo(1)); @@ -59,7 +59,7 @@ public async Task CommsServerKeys() }); // cannot remove keys without opening panel - await Interact(Pry); + await InteractUsing(Pry); Assert.Multiple(() => { Assert.That(comp.KeyContainer.ContainedEntities, Has.Count.GreaterThan(0)); @@ -68,7 +68,7 @@ public async Task CommsServerKeys() }); // Open panel - await Interact(Screw); + await InteractUsing(Screw); Assert.Multiple(() => { Assert.That(panel.Open, Is.True); @@ -79,7 +79,7 @@ public async Task CommsServerKeys() }); // Now remove the keys - await Interact(Pry); + await InteractUsing(Pry); Assert.Multiple(() => { Assert.That(comp.KeyContainer.ContainedEntities, Has.Count.EqualTo(0)); @@ -87,7 +87,7 @@ public async Task CommsServerKeys() }); // Reinsert a key - await Interact("EncryptionKeyCentCom"); + await InteractUsing("EncryptionKeyCentCom"); Assert.Multiple(() => { Assert.That(comp.KeyContainer.ContainedEntities, Has.Count.EqualTo(1)); @@ -97,7 +97,7 @@ public async Task CommsServerKeys() }); // Remove it again - await Interact(Pry); + await InteractUsing(Pry); Assert.Multiple(() => { Assert.That(comp.KeyContainer.ContainedEntities, Has.Count.EqualTo(0)); @@ -106,7 +106,7 @@ public async Task CommsServerKeys() // Prying again will start deconstructing the machine. AssertPrototype("TelecomServerFilled"); - await Interact(Pry); + await InteractUsing(Pry); AssertPrototype("MachineFrame"); } } diff --git a/Content.IntegrationTests/Tests/EntityTest.cs b/Content.IntegrationTests/Tests/EntityTest.cs index 926374cf050..56645660673 100644 --- a/Content.IntegrationTests/Tests/EntityTest.cs +++ b/Content.IntegrationTests/Tests/EntityTest.cs @@ -1,15 +1,11 @@ using System.Collections.Generic; using System.Linq; using System.Numerics; -using Content.Server.Humanoid.Components; -using Content.Shared.Coordinates; -using Content.Shared.Prototypes; using Robust.Shared; using Robust.Shared.Configuration; using Robust.Shared.GameObjects; using Robust.Shared.Log; using Robust.Shared.Map; -using Robust.Shared.Map.Components; using Robust.Shared.Maths; using Robust.Shared.Prototypes; @@ -47,7 +43,7 @@ await server.WaitPost(() => foreach (var protoId in protoIds) { - var mapId = mapManager.CreateMap(); + mapSystem.CreateMap(out var mapId); var grid = mapManager.CreateGridEntity(mapId); // TODO: Fix this better in engine. mapSystem.SetTile(grid.Owner, grid.Comp, Vector2i.Zero, new Tile(1)); @@ -155,6 +151,7 @@ public async Task SpawnAndDirtyAllEntities() var prototypeMan = server.ResolveDependency(); var mapManager = server.ResolveDependency(); var sEntMan = server.ResolveDependency(); + var mapSys = server.System(); Assert.That(cfg.GetCVar(CVars.NetPVS), Is.False); @@ -170,7 +167,7 @@ await server.WaitPost(() => { foreach (var protoId in protoIds) { - var mapId = mapManager.CreateMap(); + mapSys.CreateMap(out var mapId); var grid = mapManager.CreateGridEntity(mapId); var ent = sEntMan.SpawnEntity(protoId, new EntityCoordinates(grid.Owner, 0.5f, 0.5f)); foreach (var (_, component) in sEntMan.GetNetComponents(ent)) @@ -227,6 +224,7 @@ public async Task SpawnAndDeleteEntityCountTest() var settings = new PoolSettings { Connected = true, Dirty = true }; await using var pair = await PoolManager.GetServerClient(settings); var mapManager = pair.Server.ResolveDependency(); + var mapSys = pair.Server.System(); var server = pair.Server; var client = pair.Client; @@ -256,7 +254,7 @@ public async Task SpawnAndDeleteEntityCountTest() await server.WaitPost(() => { - mapId = mapManager.CreateMap(); + mapSys.CreateMap(out mapId); }); var coords = new MapCoordinates(Vector2.Zero, mapId); diff --git a/Content.IntegrationTests/Tests/Fluids/FluidSpillTest.cs b/Content.IntegrationTests/Tests/Fluids/FluidSpillTest.cs index 6e88d6928e6..d6f9bf35986 100644 --- a/Content.IntegrationTests/Tests/Fluids/FluidSpillTest.cs +++ b/Content.IntegrationTests/Tests/Fluids/FluidSpillTest.cs @@ -16,14 +16,15 @@ namespace Content.IntegrationTests.Tests.Fluids; [TestOf(typeof(SpreaderSystem))] public sealed class FluidSpill { - private static PuddleComponent? GetPuddle(IEntityManager entityManager, MapGridComponent mapGrid, Vector2i pos) + private static PuddleComponent? GetPuddle(IEntityManager entityManager, Entity mapGrid, Vector2i pos) { return GetPuddleEntity(entityManager, mapGrid, pos)?.Comp; } - private static Entity? GetPuddleEntity(IEntityManager entityManager, MapGridComponent mapGrid, Vector2i pos) + private static Entity? GetPuddleEntity(IEntityManager entityManager, Entity mapGrid, Vector2i pos) { - foreach (var uid in mapGrid.GetAnchoredEntities(pos)) + var mapSys = entityManager.System(); + foreach (var uid in mapSys.GetAnchoredEntities(mapGrid, mapGrid.Comp, pos)) { if (entityManager.TryGetComponent(uid, out PuddleComponent? puddleComponent)) return (uid, puddleComponent); @@ -39,9 +40,9 @@ public async Task SpillCorner() var server = pair.Server; var mapManager = server.ResolveDependency(); var entityManager = server.ResolveDependency(); - var puddleSystem = server.ResolveDependency().GetEntitySystem(); + var puddleSystem = server.System(); + var mapSystem = server.System(); var gameTiming = server.ResolveDependency(); - MapId mapId; EntityUid gridId = default; /* @@ -52,7 +53,7 @@ . . . */ await server.WaitPost(() => { - mapId = mapManager.CreateMap(); + mapSystem.CreateMap(out var mapId); var grid = mapManager.CreateGridEntity(mapId); gridId = grid.Owner; @@ -60,12 +61,12 @@ await server.WaitPost(() => { for (var y = 0; y < 3; y++) { - grid.Comp.SetTile(new Vector2i(x, y), new Tile(1)); + mapSystem.SetTile(grid, new Vector2i(x, y), new Tile(1)); } } - entityManager.SpawnEntity("WallReinforced", grid.Comp.GridTileToLocal(new Vector2i(0, 1))); - entityManager.SpawnEntity("WallReinforced", grid.Comp.GridTileToLocal(new Vector2i(1, 0))); + entityManager.SpawnEntity("WallReinforced", mapSystem.GridTileToLocal(grid, grid.Comp, new Vector2i(0, 1))); + entityManager.SpawnEntity("WallReinforced", mapSystem.GridTileToLocal(grid, grid.Comp, new Vector2i(1, 0))); }); @@ -74,10 +75,10 @@ await server.WaitAssertion(() => { var grid = entityManager.GetComponent(gridId); var solution = new Solution("Blood", FixedPoint2.New(100)); - var tileRef = grid.GetTileRef(puddleOrigin); + var tileRef = mapSystem.GetTileRef(gridId, grid, puddleOrigin); #pragma warning disable NUnit2045 // Interdependent tests Assert.That(puddleSystem.TrySpillAt(tileRef, solution, out _), Is.True); - Assert.That(GetPuddle(entityManager, grid, puddleOrigin), Is.Not.Null); + Assert.That(GetPuddle(entityManager, (gridId, grid), puddleOrigin), Is.Not.Null); #pragma warning restore NUnit2045 }); @@ -87,7 +88,7 @@ await server.WaitAssertion(() => await server.WaitAssertion(() => { var grid = entityManager.GetComponent(gridId); - var puddle = GetPuddleEntity(entityManager, grid, puddleOrigin); + var puddle = GetPuddleEntity(entityManager, (gridId, grid), puddleOrigin); #pragma warning disable NUnit2045 // Interdependent tests Assert.That(puddle, Is.Not.Null); @@ -104,7 +105,7 @@ await server.WaitAssertion(() => } var newPos = new Vector2i(x, y); - var sidePuddle = GetPuddle(entityManager, grid, newPos); + var sidePuddle = GetPuddle(entityManager, (gridId, grid), newPos); Assert.That(sidePuddle, Is.Null); } } diff --git a/Content.IntegrationTests/Tests/Fluids/PuddleTest.cs b/Content.IntegrationTests/Tests/Fluids/PuddleTest.cs index a9069892dff..ee2d0cb1f7a 100644 --- a/Content.IntegrationTests/Tests/Fluids/PuddleTest.cs +++ b/Content.IntegrationTests/Tests/Fluids/PuddleTest.cs @@ -5,7 +5,6 @@ using Content.Shared.Fluids.Components; using Robust.Shared.GameObjects; using Robust.Shared.Map; -using Robust.Shared.Map.Components; namespace Content.IntegrationTests.Tests.Fluids { @@ -21,8 +20,7 @@ public async Task TilePuddleTest() var testMap = await pair.CreateTestMap(); - var entitySystemManager = server.ResolveDependency(); - var spillSystem = entitySystemManager.GetEntitySystem(); + var spillSystem = server.System(); await server.WaitAssertion(() => { @@ -46,17 +44,19 @@ public async Task SpaceNoPuddleTest() var server = pair.Server; var testMap = await pair.CreateTestMap(); - var grid = testMap.Grid.Comp; + var grid = testMap.Grid; var entitySystemManager = server.ResolveDependency(); - var spillSystem = entitySystemManager.GetEntitySystem(); + var spillSystem = server.System(); + var mapSystem = server.System(); // Remove all tiles await server.WaitPost(() => { - foreach (var tile in grid.GetAllTiles()) + var tiles = mapSystem.GetAllTiles(grid.Owner, grid.Comp); + foreach (var tile in tiles) { - grid.SetTile(tile.GridIndices, Tile.Empty); + mapSystem.SetTile(grid, tile.GridIndices, Tile.Empty); } }); diff --git a/Content.IntegrationTests/Tests/FollowerSystemTest.cs b/Content.IntegrationTests/Tests/FollowerSystemTest.cs index 4d308c6d911..f4447426c77 100644 --- a/Content.IntegrationTests/Tests/FollowerSystemTest.cs +++ b/Content.IntegrationTests/Tests/FollowerSystemTest.cs @@ -22,6 +22,7 @@ public async Task FollowerMapDeleteTest() var mapMan = server.ResolveDependency(); var sysMan = server.ResolveDependency(); var logMan = server.ResolveDependency(); + var mapSys = server.System(); var logger = logMan.RootSawmill; await server.WaitPost(() => @@ -29,7 +30,7 @@ await server.WaitPost(() => var followerSystem = sysMan.GetEntitySystem(); // Create a map to spawn the observers on. - var map = mapMan.CreateMap(); + mapSys.CreateMap(out var map); // Spawn an observer to be followed. var followed = entMan.SpawnEntity(GameTicker.ObserverPrototypeName, new MapCoordinates(0, 0, map)); @@ -41,7 +42,7 @@ await server.WaitPost(() => followerSystem.StartFollowingEntity(follower, followed); - entMan.DeleteEntity(mapMan.GetMapEntityId(map)); + entMan.DeleteEntity(mapSys.GetMap(map)); }); await pair.CleanReturnAsync(); } diff --git a/Content.IntegrationTests/Tests/GameObjects/Components/ActionBlocking/HandCuffTest.cs b/Content.IntegrationTests/Tests/GameObjects/Components/ActionBlocking/HandCuffTest.cs index c6a8e618cc1..2570e2246a6 100644 --- a/Content.IntegrationTests/Tests/GameObjects/Components/ActionBlocking/HandCuffTest.cs +++ b/Content.IntegrationTests/Tests/GameObjects/Components/ActionBlocking/HandCuffTest.cs @@ -1,5 +1,4 @@ #nullable enable -using System.Numerics; using Content.Server.Cuffs; using Content.Shared.Body.Components; using Content.Shared.Cuffs.Components; @@ -7,7 +6,6 @@ using Robust.Server.Console; using Robust.Shared.GameObjects; using Robust.Shared.Map; -using Robust.Shared.Maths; namespace Content.IntegrationTests.Tests.GameObjects.Components.ActionBlocking { @@ -24,6 +22,7 @@ public sealed class HandCuffTest components: - type: Cuffable - type: Hands + - type: ComplexInteraction - type: Body prototype: Human @@ -51,10 +50,11 @@ public async Task Test() var mapManager = server.ResolveDependency(); var host = server.ResolveDependency(); + var map = await pair.CreateTestMap(); + await server.WaitAssertion(() => { - var mapId = mapManager.CreateMap(); - var coordinates = new MapCoordinates(Vector2.Zero, mapId); + var coordinates = map.MapCoords; var cuffableSys = entityManager.System(); var xformSys = entityManager.System(); diff --git a/Content.IntegrationTests/Tests/GameObjects/Components/Mobs/AlertsComponentTests.cs b/Content.IntegrationTests/Tests/GameObjects/Components/Mobs/AlertsComponentTests.cs index b0aceacc03d..ee2ddb2790c 100644 --- a/Content.IntegrationTests/Tests/GameObjects/Components/Mobs/AlertsComponentTests.cs +++ b/Content.IntegrationTests/Tests/GameObjects/Components/Mobs/AlertsComponentTests.cs @@ -5,7 +5,6 @@ using Robust.Client.UserInterface; using Robust.Server.Player; using Robust.Shared.GameObjects; -using Robust.Shared.IoC; namespace Content.IntegrationTests.Tests.GameObjects.Components.Mobs { @@ -45,8 +44,8 @@ await server.WaitAssertion(() => Assert.That(alerts, Is.Not.Null); var alertCount = alerts.Count; - alertsSystem.ShowAlert(playerUid, AlertType.Debug1); - alertsSystem.ShowAlert(playerUid, AlertType.Debug2); + alertsSystem.ShowAlert(playerUid, "Debug1"); + alertsSystem.ShowAlert(playerUid, "Debug2"); Assert.That(alerts, Has.Count.EqualTo(alertCount + 2)); }); @@ -89,14 +88,14 @@ static AlertsUI FindAlertsUI(Control control) // We should be seeing 2 alerts - the 2 debug alerts, in a specific order. Assert.That(clientAlertsUI.AlertContainer.ChildCount, Is.GreaterThanOrEqualTo(2)); var alertControls = clientAlertsUI.AlertContainer.Children.Select(c => (AlertControl) c); - var alertIDs = alertControls.Select(ac => ac.Alert.AlertType).ToArray(); - var expectedIDs = new[] { AlertType.Debug1, AlertType.Debug2 }; + var alertIDs = alertControls.Select(ac => ac.Alert.ID).ToArray(); + var expectedIDs = new[] { "Debug1", "Debug2" }; Assert.That(alertIDs, Is.SupersetOf(expectedIDs)); }); await server.WaitAssertion(() => { - alertsSystem.ClearAlert(playerUid, AlertType.Debug1); + alertsSystem.ClearAlert(playerUid, "Debug1"); }); await pair.RunTicksSync(5); @@ -106,8 +105,8 @@ await client.WaitAssertion(() => // We should be seeing 1 alert now because one was cleared Assert.That(clientAlertsUI.AlertContainer.ChildCount, Is.GreaterThanOrEqualTo(1)); var alertControls = clientAlertsUI.AlertContainer.Children.Select(c => (AlertControl) c); - var alertIDs = alertControls.Select(ac => ac.Alert.AlertType).ToArray(); - var expectedIDs = new[] { AlertType.Debug2 }; + var alertIDs = alertControls.Select(ac => ac.Alert.ID).ToArray(); + var expectedIDs = new[] { "Debug2" }; Assert.That(alertIDs, Is.SupersetOf(expectedIDs)); }); diff --git a/Content.IntegrationTests/Tests/GameRules/AntagPreferenceTest.cs b/Content.IntegrationTests/Tests/GameRules/AntagPreferenceTest.cs index 662ea3b9747..889c7868d7c 100644 --- a/Content.IntegrationTests/Tests/GameRules/AntagPreferenceTest.cs +++ b/Content.IntegrationTests/Tests/GameRules/AntagPreferenceTest.cs @@ -47,7 +47,7 @@ public async Task TestLobbyPlayersValid() Assert.That(sys.IsEntityValid(client.AttachedEntity, def), Is.True); // By default, traitor/antag preferences are disabled, so the pool should be empty. - var sessions = new List{pair.Player!}; + var sessions = new List { pair.Player! }; var pool = sys.GetPlayerPool(rule, sessions, def); Assert.That(pool.Count, Is.EqualTo(0)); diff --git a/Content.IntegrationTests/Tests/GameRules/FailAndStartPresetTest.cs b/Content.IntegrationTests/Tests/GameRules/FailAndStartPresetTest.cs index d0e0255ae77..b0039144c9c 100644 --- a/Content.IntegrationTests/Tests/GameRules/FailAndStartPresetTest.cs +++ b/Content.IntegrationTests/Tests/GameRules/FailAndStartPresetTest.cs @@ -1,6 +1,6 @@ -// #nullable enable +// #nullable enable // using Content.Server.GameTicking; -// using Content.Server.GameTicking.Components; +// using Content.Shared.GameTicking.Components; // using Content.Server.GameTicking.Presets; // using Content.Shared.CCVar; // using Content.Shared.GameTicking; @@ -36,7 +36,7 @@ // - type: entity // id: TestRule // parent: BaseGameRule -// noSpawn: true +// categories: [ HideSpawnMenu ] // components: // - type: GameRule // minPlayers: 0 @@ -45,7 +45,7 @@ // - type: entity // id: TestRuleTenPlayers // parent: BaseGameRule -// noSpawn: true +// categories: [ HideSpawnMenu ] // components: // - type: GameRule // minPlayers: 10 @@ -110,14 +110,14 @@ // player = pair.Player!.AttachedEntity!.Value; // Assert.That(entMan.EntityExists(player)); -// ticker.SetGamePreset((GamePresetPrototype?)null); -// server.CfgMan.SetCVar(CCVars.GridFill, false); -// server.CfgMan.SetCVar(CCVars.GameLobbyFallbackEnabled, true); -// server.CfgMan.SetCVar(CCVars.GameLobbyDefaultPreset, "secret"); -// server.System().Run = false; -// await pair.CleanReturnAsync(); -// } -// } +// ticker.SetGamePreset((GamePresetPrototype?) null); +// server.CfgMan.SetCVar(CCVars.GridFill, false); +// server.CfgMan.SetCVar(CCVars.GameLobbyFallbackEnabled, true); +// server.CfgMan.SetCVar(CCVars.GameLobbyDefaultPreset, "secret"); +// server.System().Run = false; +// await pair.CleanReturnAsync(); +// } +//} // public sealed class TestRuleSystem : EntitySystem // { diff --git a/Content.IntegrationTests/Tests/GameRules/RuleMaxTimeRestartTest.cs b/Content.IntegrationTests/Tests/GameRules/RuleMaxTimeRestartTest.cs index 20a157e33e8..611b038309b 100644 --- a/Content.IntegrationTests/Tests/GameRules/RuleMaxTimeRestartTest.cs +++ b/Content.IntegrationTests/Tests/GameRules/RuleMaxTimeRestartTest.cs @@ -1,9 +1,9 @@ using Content.Server.GameTicking; using Content.Server.GameTicking.Commands; -using Content.Server.GameTicking.Components; using Content.Server.GameTicking.Rules; using Content.Server.GameTicking.Rules.Components; using Content.Shared.CCVar; +using Content.Shared.GameTicking.Components; using Robust.Shared.Configuration; using Robust.Shared.GameObjects; using Robust.Shared.Timing; @@ -27,8 +27,12 @@ public async Task RestartTest() var sGameTicker = server.ResolveDependency().GetEntitySystem(); var sGameTiming = server.ResolveDependency(); - sGameTicker.StartGameRule("MaxTimeRestart", out var ruleEntity); - Assert.That(entityManager.TryGetComponent(ruleEntity, out var maxTime)); + MaxTimeRestartRuleComponent maxTime = null; + await server.WaitPost(() => + { + sGameTicker.StartGameRule("MaxTimeRestart", out var ruleEntity); + Assert.That(entityManager.TryGetComponent(ruleEntity, out maxTime)); + }); Assert.That(server.EntMan.Count(), Is.EqualTo(1)); Assert.That(server.EntMan.Count(), Is.EqualTo(1)); diff --git a/Content.IntegrationTests/Tests/Gravity/WeightlessStatusTests.cs b/Content.IntegrationTests/Tests/Gravity/WeightlessStatusTests.cs index 0ad198d6ef2..74641126aee 100644 --- a/Content.IntegrationTests/Tests/Gravity/WeightlessStatusTests.cs +++ b/Content.IntegrationTests/Tests/Gravity/WeightlessStatusTests.cs @@ -1,5 +1,6 @@ using Content.Server.Gravity; using Content.Shared.Alert; +using Content.Shared.Gravity; using Robust.Shared.GameObjects; namespace Content.IntegrationTests.Tests.Gravity @@ -38,6 +39,7 @@ public async Task WeightlessStatusTest() var entityManager = server.ResolveDependency(); var alertsSystem = server.ResolveDependency().GetEntitySystem(); + var weightlessAlert = SharedGravitySystem.WeightlessAlert; EntityUid human = default; @@ -56,7 +58,7 @@ await server.WaitAssertion(() => await server.WaitAssertion(() => { // No gravity without a gravity generator - Assert.That(alertsSystem.IsShowingAlert(human, AlertType.Weightless)); + Assert.That(alertsSystem.IsShowingAlert(human, weightlessAlert)); generatorUid = entityManager.SpawnEntity("WeightlessGravityGeneratorDummy", entityManager.GetComponent(human).Coordinates); }); @@ -66,7 +68,7 @@ await server.WaitAssertion(() => await server.WaitAssertion(() => { - Assert.That(alertsSystem.IsShowingAlert(human, AlertType.Weightless), Is.False); + Assert.That(alertsSystem.IsShowingAlert(human, weightlessAlert), Is.False); // This should kill gravity entityManager.DeleteEntity(generatorUid); @@ -76,7 +78,7 @@ await server.WaitAssertion(() => await server.WaitAssertion(() => { - Assert.That(alertsSystem.IsShowingAlert(human, AlertType.Weightless)); + Assert.That(alertsSystem.IsShowingAlert(human, weightlessAlert)); }); await pair.RunTicksSync(10); diff --git a/Content.IntegrationTests/Tests/GravityGridTest.cs b/Content.IntegrationTests/Tests/GravityGridTest.cs index 7f817e8a1e0..64f7a6d0820 100644 --- a/Content.IntegrationTests/Tests/GravityGridTest.cs +++ b/Content.IntegrationTests/Tests/GravityGridTest.cs @@ -34,29 +34,25 @@ public async Task Test() var testMap = await pair.CreateTestMap(); - EntityUid generator = default; - var entityMan = server.ResolveDependency(); - var mapMan = server.ResolveDependency(); + var entityMan = server.EntMan; + var mapMan = server.MapMan; var mapSys = entityMan.System(); - MapGridComponent grid1 = null; - MapGridComponent grid2 = null; - EntityUid grid1Entity = default!; - EntityUid grid2Entity = default!; + EntityUid generator = default; + Entity grid1 = default; + Entity grid2 = default; // Create grids await server.WaitAssertion(() => { var mapId = testMap.MapId; - grid1 = mapMan.CreateGrid(mapId); - grid2 = mapMan.CreateGrid(mapId); - grid1Entity = grid1.Owner; - grid2Entity = grid2.Owner; + grid1 = mapMan.CreateGridEntity(mapId); + grid2 = mapMan.CreateGridEntity(mapId); - mapSys.SetTile(grid1Entity, grid1, Vector2i.Zero, new Tile(1)); - mapSys.SetTile(grid2Entity, grid2, Vector2i.Zero, new Tile(1)); + mapSys.SetTile(grid1, grid1, Vector2i.Zero, new Tile(1)); + mapSys.SetTile(grid2, grid2, Vector2i.Zero, new Tile(1)); - generator = entityMan.SpawnEntity("GridGravityGeneratorDummy", new EntityCoordinates(grid1Entity, 0.5f, 0.5f)); + generator = entityMan.SpawnEntity("GridGravityGeneratorDummy", new EntityCoordinates(grid1, 0.5f, 0.5f)); Assert.Multiple(() => { Assert.That(entityMan.HasComponent(generator)); @@ -77,8 +73,8 @@ await server.WaitAssertion(() => Assert.Multiple(() => { Assert.That(generatorComponent.GravityActive, Is.True); - Assert.That(!entityMan.GetComponent(grid1Entity).EnabledVV); - Assert.That(entityMan.GetComponent(grid2Entity).EnabledVV); + Assert.That(!entityMan.GetComponent(grid1).EnabledVV); + Assert.That(entityMan.GetComponent(grid2).EnabledVV); }); // Re-enable needs power so it turns off again. @@ -95,7 +91,7 @@ await server.WaitAssertion(() => Assert.Multiple(() => { Assert.That(generatorComponent.GravityActive, Is.False); - Assert.That(entityMan.GetComponent(grid2Entity).EnabledVV, Is.False); + Assert.That(entityMan.GetComponent(grid2).EnabledVV, Is.False); }); }); diff --git a/Content.IntegrationTests/Tests/Interaction/Click/InteractionSystemTests.cs b/Content.IntegrationTests/Tests/Interaction/Click/InteractionSystemTests.cs index 4415eddf376..6ac40e92a1e 100644 --- a/Content.IntegrationTests/Tests/Interaction/Click/InteractionSystemTests.cs +++ b/Content.IntegrationTests/Tests/Interaction/Click/InteractionSystemTests.cs @@ -4,6 +4,7 @@ using Content.Shared.Hands.Components; using Content.Shared.Hands.EntitySystems; using Content.Shared.Interaction; +using Content.Shared.Interaction.Components; using Content.Shared.Item; using Robust.Shared.Containers; using Robust.Shared.GameObjects; @@ -47,13 +48,9 @@ public async Task InteractionTest() var sysMan = server.ResolveDependency(); var handSys = sysMan.GetEntitySystem(); - var mapId = MapId.Nullspace; - var coords = MapCoordinates.Nullspace; - await server.WaitAssertion(() => - { - mapId = mapManager.CreateMap(); - coords = new MapCoordinates(Vector2.Zero, mapId); - }); + var map = await pair.CreateTestMap(); + var mapId = map.MapId; + var coords = map.MapCoords; await server.WaitIdleAsync(); EntityUid user = default; @@ -64,6 +61,7 @@ await server.WaitAssertion(() => { user = sEntities.SpawnEntity(null, coords); sEntities.EnsureComponent(user); + sEntities.EnsureComponent(user); handSys.AddHand(user, "hand", HandLocation.Left); target = sEntities.SpawnEntity(null, coords); item = sEntities.SpawnEntity(null, coords); @@ -117,13 +115,9 @@ public async Task InteractionObstructionTest() var sysMan = server.ResolveDependency(); var handSys = sysMan.GetEntitySystem(); - var mapId = MapId.Nullspace; - var coords = MapCoordinates.Nullspace; - await server.WaitAssertion(() => - { - mapId = mapManager.CreateMap(); - coords = new MapCoordinates(Vector2.Zero, mapId); - }); + var map = await pair.CreateTestMap(); + var mapId = map.MapId; + var coords = map.MapCoords; await server.WaitIdleAsync(); EntityUid user = default; @@ -188,13 +182,9 @@ public async Task InteractionInRangeTest() var sysMan = server.ResolveDependency(); var handSys = sysMan.GetEntitySystem(); - var mapId = MapId.Nullspace; - var coords = MapCoordinates.Nullspace; - await server.WaitAssertion(() => - { - mapId = mapManager.CreateMap(); - coords = new MapCoordinates(Vector2.Zero, mapId); - }); + var map = await pair.CreateTestMap(); + var mapId = map.MapId; + var coords = map.MapCoords; await server.WaitIdleAsync(); EntityUid user = default; @@ -205,6 +195,7 @@ await server.WaitAssertion(() => { user = sEntities.SpawnEntity(null, coords); sEntities.EnsureComponent(user); + sEntities.EnsureComponent(user); handSys.AddHand(user, "hand", HandLocation.Left); target = sEntities.SpawnEntity(null, new MapCoordinates(new Vector2(SharedInteractionSystem.InteractionRange - 0.1f, 0), mapId)); item = sEntities.SpawnEntity(null, coords); @@ -258,13 +249,9 @@ public async Task InteractionOutOfRangeTest() var sysMan = server.ResolveDependency(); var handSys = sysMan.GetEntitySystem(); - var mapId = MapId.Nullspace; - var coords = MapCoordinates.Nullspace; - await server.WaitAssertion(() => - { - mapId = mapManager.CreateMap(); - coords = new MapCoordinates(Vector2.Zero, mapId); - }); + var map = await pair.CreateTestMap(); + var mapId = map.MapId; + var coords = map.MapCoords; await server.WaitIdleAsync(); EntityUid user = default; @@ -328,13 +315,9 @@ public async Task InsideContainerInteractionBlockTest() var handSys = sysMan.GetEntitySystem(); var conSystem = sysMan.GetEntitySystem(); - var mapId = MapId.Nullspace; - var coords = MapCoordinates.Nullspace; - await server.WaitAssertion(() => - { - mapId = mapManager.CreateMap(); - coords = new MapCoordinates(Vector2.Zero, mapId); - }); + var map = await pair.CreateTestMap(); + var mapId = map.MapId; + var coords = map.MapCoords; await server.WaitIdleAsync(); EntityUid user = default; @@ -347,6 +330,7 @@ await server.WaitAssertion(() => { user = sEntities.SpawnEntity(null, coords); sEntities.EnsureComponent(user); + sEntities.EnsureComponent(user); handSys.AddHand(user, "hand", HandLocation.Left); target = sEntities.SpawnEntity(null, coords); item = sEntities.SpawnEntity(null, coords); diff --git a/Content.IntegrationTests/Tests/Interaction/InRangeUnobstructed.cs b/Content.IntegrationTests/Tests/Interaction/InRangeUnobstructed.cs index b8828763a23..e5ac0f785aa 100644 --- a/Content.IntegrationTests/Tests/Interaction/InRangeUnobstructed.cs +++ b/Content.IntegrationTests/Tests/Interaction/InRangeUnobstructed.cs @@ -37,10 +37,11 @@ public async Task EntityEntityTest() EntityUid other = default; MapCoordinates mapCoordinates = default; + var map = await pair.CreateTestMap(); + await server.WaitAssertion(() => { - var mapId = mapManager.CreateMap(); - var coordinates = new MapCoordinates(Vector2.Zero, mapId); + var coordinates = map.MapCoords; origin = sEntities.SpawnEntity(HumanId, coordinates); other = sEntities.SpawnEntity(HumanId, coordinates); diff --git a/Content.IntegrationTests/Tests/Interaction/InteractionTest.EntitySpecifier.cs b/Content.IntegrationTests/Tests/Interaction/InteractionTest.EntitySpecifier.cs index 37dca721373..194bc54fba6 100644 --- a/Content.IntegrationTests/Tests/Interaction/InteractionTest.EntitySpecifier.cs +++ b/Content.IntegrationTests/Tests/Interaction/InteractionTest.EntitySpecifier.cs @@ -33,7 +33,7 @@ protected sealed class EntitySpecifier public int Quantity; /// - /// If true, a check has been performed to see if the prototype ia an entity prototype with a stack component, + /// If true, a check has been performed to see if the prototype is an entity prototype with a stack component, /// in which case the specifier was converted into a stack-specifier /// public bool Converted; @@ -100,7 +100,7 @@ await Server.WaitPost(() => if (!ProtoMan.TryIndex(spec.Prototype, out var entProto)) { - Assert.Fail($"Unkown prototype: {spec.Prototype}"); + Assert.Fail($"Unknown prototype: {spec.Prototype}"); return default; } @@ -114,13 +114,13 @@ await Server.WaitPost(() => return await SpawnEntity((stack.StackTypeId, spec.Quantity), coords); Assert.That(spec.Quantity, Is.EqualTo(1), "SpawnEntity only supports returning a singular entity"); - await Server.WaitPost(() => uid = SEntMan.SpawnEntity(spec.Prototype, coords)); + await Server.WaitPost(() => uid = SEntMan.SpawnAtPosition(spec.Prototype, coords)); return uid; } /// /// Convert an entity-uid to a matching entity specifier. Useful when doing entity lookups & checking that the - /// right quantity of entities/materials werre produced. Returns null if passed an entity with a null prototype. + /// right quantity of entities/materials were produced. Returns null if passed an entity with a null prototype. /// protected EntitySpecifier? ToEntitySpecifier(EntityUid uid) { diff --git a/Content.IntegrationTests/Tests/Interaction/InteractionTest.Helpers.cs b/Content.IntegrationTests/Tests/Interaction/InteractionTest.Helpers.cs index 19ca83a9715..a19b62cd70a 100644 --- a/Content.IntegrationTests/Tests/Interaction/InteractionTest.Helpers.cs +++ b/Content.IntegrationTests/Tests/Interaction/InteractionTest.Helpers.cs @@ -14,6 +14,7 @@ using Content.Shared.Gravity; using Content.Shared.Item; using Robust.Client.UserInterface; +using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.CustomControls; using Robust.Shared.GameObjects; using Robust.Shared.Input; @@ -44,8 +45,9 @@ await Client.WaitPost(() => return; var comp = CEntMan.GetComponent(clientTarget!.Value); - ClientTarget = clientTarget; - ConstructionGhostId = comp.Owner.Id; + Target = CEntMan.GetNetEntity(clientTarget.Value); + Assert.That(Target.Value.IsClientSide()); + ConstructionGhostId = clientTarget.Value.GetHashCode(); }); await RunTicks(1); @@ -82,18 +84,21 @@ protected async Task CraftItem(string prototype, bool shouldSucceed = true) /// /// Spawn an entity entity and set it as the target. /// - [MemberNotNull(nameof(Target))] - protected async Task SpawnTarget(string prototype) + [MemberNotNull(nameof(Target), nameof(STarget), nameof(CTarget))] +#pragma warning disable CS8774 // Member must have a non-null value when exiting. + protected async Task SpawnTarget(string prototype) { Target = NetEntity.Invalid; await Server.WaitPost(() => { - Target = SEntMan.GetNetEntity(SEntMan.SpawnEntity(prototype, SEntMan.GetCoordinates(TargetCoords))); + Target = SEntMan.GetNetEntity(SEntMan.SpawnAtPosition(prototype, SEntMan.GetCoordinates(TargetCoords))); }); await RunTicks(5); AssertPrototype(prototype); + return Target!.Value; } +#pragma warning restore CS8774 // Member must have a non-null value when exiting. /// /// Spawn an entity in preparation for deconstruction @@ -129,21 +134,20 @@ await Server.WaitPost(() => /// /// Place an entity prototype into the players hand. Deletes any currently held entity. /// - /// - /// Automatically enables welders. - /// - protected async Task PlaceInHands(string id, int quantity = 1, bool enableWelder = true) + /// The entity or stack prototype to spawn and place into the users hand + /// The number of entities to spawn. If the prototype is a stack, this sets the stack count. + /// Whether or not to automatically enable any toggleable items + protected async Task PlaceInHands(string id, int quantity = 1, bool enableToggleable = true) { - return await PlaceInHands((id, quantity), enableWelder); + return await PlaceInHands((id, quantity), enableToggleable); } /// /// Place an entity prototype into the players hand. Deletes any currently held entity. /// - /// - /// Automatically enables welders. - /// - protected async Task PlaceInHands(EntitySpecifier entity, bool enableWelder = true) + /// The entity type & quantity to spawn and place into the users hand + /// Whether or not to automatically enable any toggleable items + protected async Task PlaceInHands(EntitySpecifier entity, bool enableToggleable = true) { if (Hands.ActiveHand == null) { @@ -165,7 +169,7 @@ await Server.WaitPost(() => Assert.That(HandSys.TryPickup(playerEnt, item, Hands.ActiveHand, false, false, Hands)); // turn on welders - if (enableWelder && SEntMan.TryGetComponent(item, out itemToggle) && !itemToggle.Activated) + if (enableToggleable && SEntMan.TryGetComponent(item, out itemToggle) && !itemToggle.Activated) { Assert.That(ItemToggleSys.TryActivate(item, playerEnt, itemToggle: itemToggle)); } @@ -173,7 +177,7 @@ await Server.WaitPost(() => await RunTicks(1); Assert.That(Hands.ActiveHandEntity, Is.EqualTo(item)); - if (enableWelder && itemToggle != null) + if (enableToggleable && itemToggle != null) Assert.That(itemToggle.Activated); return SEntMan.GetNetEntity(item); @@ -254,21 +258,20 @@ await Server.WaitPost(() => /// /// Place an entity prototype into the players hand and interact with the given entity (or target position) /// - /// - /// Empty strings imply empty hands. - /// - protected async Task Interact(string id, int quantity = 1, bool shouldSucceed = true, bool awaitDoAfters = true) + /// The entity or stack prototype to spawn and place into the users hand + /// The number of entities to spawn. If the prototype is a stack, this sets the stack count. + /// Whether or not to wait for any do-afters to complete + protected async Task InteractUsing(string id, int quantity = 1, bool awaitDoAfters = true) { - await Interact((id, quantity), shouldSucceed, awaitDoAfters); + await InteractUsing((id, quantity), awaitDoAfters); } /// - /// Place an entity prototype into the players hand and interact with the given entity (or target position) + /// Place an entity prototype into the players hand and interact with the given entity (or target position). /// - /// - /// Empty strings imply empty hands. - /// - protected async Task Interact(EntitySpecifier entity, bool shouldSucceed = true, bool awaitDoAfters = true) + /// The entity type & quantity to spawn and place into the users hand + /// Whether or not to wait for any do-afters to complete + protected async Task InteractUsing(EntitySpecifier entity, bool awaitDoAfters = true) { // For every interaction, we will also examine the entity, just in case this breaks something, somehow. // (e.g., servers attempt to assemble construction examine hints). @@ -278,38 +281,80 @@ protected async Task Interact(EntitySpecifier entity, bool shouldSucceed = true, } await PlaceInHands(entity); - await Interact(shouldSucceed, awaitDoAfters); + await Interact(awaitDoAfters); } /// /// Interact with an entity using the currently held entity. /// - protected async Task Interact(bool shouldSucceed = true, bool awaitDoAfters = true) + /// Whether or not to wait for any do-afters to complete + protected async Task Interact(bool awaitDoAfters = true) { - var clientTarget = ClientTarget; - - if ((clientTarget?.IsValid() != true || CEntMan.Deleted(clientTarget)) && (Target == null || Target.Value.IsValid())) + if (Target == null || !Target.Value.IsClientSide()) { - await Server.WaitPost(() => InteractSys.UserInteraction(SEntMan.GetEntity(Player), SEntMan.GetCoordinates(TargetCoords), SEntMan.GetEntity(Target))); - await RunTicks(1); + await Interact(Target, TargetCoords, awaitDoAfters); + return; } - else - { - // The entity is client-side, so attempt to start construction - var clientEnt = ClientTarget ?? CEntMan.GetEntity(Target); - await Client.WaitPost(() => CConSys.TryStartConstruction(clientEnt!.Value)); - await RunTicks(5); - } + // The target is a client-side entity, so we will just attempt to start construction under the assumption that + // it is a construction ghost. + + await Client.WaitPost(() => CConSys.TryStartConstruction(CTarget!.Value)); + await RunTicks(5); + + if (awaitDoAfters) + await AwaitDoAfters(); + + await CheckTargetChange(); + } + + /// + protected async Task Interact(NetEntity? target, NetCoordinates coordinates, bool awaitDoAfters = true) + { + Assert.That(SEntMan.TryGetEntity(target, out var sTarget) || target == null); + var coords = SEntMan.GetCoordinates(coordinates); + Assert.That(coords.IsValid(SEntMan)); + await Interact(sTarget, coords, awaitDoAfters); + } + + /// + /// Interact with an entity using the currently held entity. + /// + protected async Task Interact(EntityUid? target, EntityCoordinates coordinates, bool awaitDoAfters = true) + { + Assert.That(SEntMan.TryGetEntity(Player, out var player)); + + await Server.WaitPost(() => InteractSys.UserInteraction(player!.Value, coordinates, target)); + await RunTicks(1); if (awaitDoAfters) - await AwaitDoAfters(shouldSucceed); + await AwaitDoAfters(); - await CheckTargetChange(shouldSucceed && awaitDoAfters); + await CheckTargetChange(); } /// - /// Variant of that performs several interactions using different entities. + /// Activate an entity. + /// + protected async Task Activate(NetEntity? target = null, bool awaitDoAfters = true) + { + target ??= Target; + Assert.That(target, Is.Not.Null); + Assert.That(SEntMan.TryGetEntity(target!.Value, out var sTarget)); + Assert.That(SEntMan.TryGetEntity(Player, out var player)); + + await Server.WaitPost(() => InteractSys.InteractionActivate(player!.Value, sTarget!.Value)); + await RunTicks(1); + + if (awaitDoAfters) + await AwaitDoAfters(); + + await CheckTargetChange(); + } + + /// + /// Variant of that performs several interactions using different entities. + /// Useful for quickly finishing multiple construction steps. /// /// /// Empty strings imply empty hands. @@ -318,7 +363,7 @@ protected async Task Interact(params EntitySpecifier[] specifiers) { foreach (var spec in specifiers) { - await Interact(spec); + await InteractUsing(spec); } } @@ -338,7 +383,7 @@ protected async Task ThrowItem(NetCoordinates? target = null, float minDis /// /// Wait for any currently active DoAfters to finish. /// - protected async Task AwaitDoAfters(bool shouldSucceed = true, int maxExpected = 1) + protected async Task AwaitDoAfters(int maxExpected = 1) { if (!ActiveDoAfters.Any()) return; @@ -353,13 +398,12 @@ protected async Task AwaitDoAfters(bool shouldSucceed = true, int maxExpected = await RunTicks(10); } - if (!shouldSucceed) - return; - foreach (var doAfter in doAfters) { Assert.That(!doAfter.Cancelled); } + + await RunTicks(5); } /// @@ -398,39 +442,28 @@ await Server.WaitPost(() => /// Check if the test's target entity has changed. E.g., construction interactions will swap out entities while /// a structure is being built. /// - protected async Task CheckTargetChange(bool shouldSucceed) + protected async Task CheckTargetChange() { if (Target == null) return; - var target = Target.Value; + var originalTarget = Target.Value; await RunTicks(5); - if (ClientTarget != null && CEntMan.IsClientSide(ClientTarget.Value)) + if (Target.Value.IsClientSide() && CTestSystem.Ghosts.TryGetValue(ConstructionGhostId, out var newWeh)) { - Assert.That(CEntMan.Deleted(ClientTarget.Value), Is.EqualTo(shouldSucceed), - $"Construction ghost was {(shouldSucceed ? "not deleted" : "deleted")}."); - - if (shouldSucceed) - { - Assert.That(CTestSystem.Ghosts.TryGetValue(ConstructionGhostId, out var newWeh), - $"Failed to get construction entity from ghost Id"); - - await Client.WaitPost(() => CLogger.Debug($"Construction ghost {ConstructionGhostId} became entity {newWeh}")); - Target = newWeh; - } + CLogger.Debug($"Construction ghost {ConstructionGhostId} became entity {newWeh}"); + Target = newWeh; } if (STestSystem.EntChanges.TryGetValue(Target.Value, out var newServerWeh)) { - await Server.WaitPost( - () => SLogger.Debug($"Construction entity {Target.Value} changed to {newServerWeh}")); - + SLogger.Debug($"Construction entity {Target.Value} changed to {newServerWeh}"); Target = newServerWeh; } - if (Target != target) - await CheckTargetChange(shouldSucceed); + if (Target != originalTarget) + await CheckTargetChange(); } #region Asserts @@ -444,16 +477,10 @@ protected void ClientAssertPrototype(string? prototype, NetEntity? target = null return; } - var meta = SEntMan.GetComponent(SEntMan.GetEntity(target.Value)); + var meta = CEntMan.GetComponent(CEntMan.GetEntity(target.Value)); Assert.That(meta.EntityPrototype?.ID, Is.EqualTo(prototype)); } - protected void ClientAssertPrototype(string? prototype, EntityUid? target) - { - var netEnt = CTestSystem.Ghosts[target.GetHashCode()]; - AssertPrototype(prototype, netEnt); - } - protected void AssertPrototype(string? prototype, NetEntity? target = null) { target ??= Target; @@ -544,11 +571,11 @@ protected async Task AssertTile(string? proto, NetCoordinates? coords = null) var tile = Tile.Empty; var serverCoords = SEntMan.GetCoordinates(coords ?? TargetCoords); - var pos = serverCoords.ToMap(SEntMan, Transform); + var pos = Transform.ToMapCoordinates(serverCoords); await Server.WaitPost(() => { - if (MapMan.TryFindGridAt(pos, out _, out var grid)) - tile = grid.GetTileRef(serverCoords).Tile; + if (MapMan.TryFindGridAt(pos, out var gridUid, out var grid)) + tile = MapSystem.GetTileRef(gridUid, grid, serverCoords).Tile; }); Assert.That(tile.TypeId, Is.EqualTo(targetTile.TypeId)); @@ -699,6 +726,8 @@ protected async Task FindEntity( protected IEnumerable ActiveDoAfters => DoAfters.DoAfters.Values.Where(x => !x.Cancelled && !x.Completed); + #region Component + /// /// Convenience method to get components on the target. Returns SERVER-SIDE components. /// @@ -708,39 +737,61 @@ protected T Comp(NetEntity? target = null) where T : IComponent if (target == null) Assert.Fail("No target specified"); - return SEntMan.GetComponent(SEntMan.GetEntity(target!.Value)); + return SEntMan.GetComponent(ToServer(target!.Value)); } + /// + protected bool TryComp(NetEntity? target, [NotNullWhen(true)] out T? comp) where T : IComponent + { + return SEntMan.TryGetComponent(ToServer(target), out comp); + } + + /// + protected bool TryComp([NotNullWhen(true)] out T? comp) where T : IComponent + { + return SEntMan.TryGetComponent(STarget, out comp); + } + + #endregion + /// /// Set the tile at the target position to some prototype. /// - protected async Task SetTile(string? proto, NetCoordinates? coords = null, MapGridComponent? grid = null) + protected async Task SetTile(string? proto, NetCoordinates? coords = null, Entity? grid = null) { var tile = proto == null ? Tile.Empty : new Tile(TileMan[proto].TileId); - var pos = SEntMan.GetCoordinates(coords ?? TargetCoords).ToMap(SEntMan, Transform); + var pos = Transform.ToMapCoordinates(SEntMan.GetCoordinates(coords ?? TargetCoords)); + EntityUid gridUid; + MapGridComponent? gridComp; await Server.WaitPost(() => { - if (grid != null || MapMan.TryFindGridAt(pos, out var gridUid, out grid)) + if (grid is { } gridEnt) + { + MapSystem.SetTile(gridEnt, SEntMan.GetCoordinates(coords ?? TargetCoords), tile); + return; + } + else if (MapMan.TryFindGridAt(pos, out var gUid, out var gComp)) { - grid.SetTile(SEntMan.GetCoordinates(coords ?? TargetCoords), tile); + MapSystem.SetTile(gUid, gComp, SEntMan.GetCoordinates(coords ?? TargetCoords), tile); return; } if (proto == null) return; - var gridEnt = MapMan.CreateGridEntity(MapData.MapId); + gridEnt = MapMan.CreateGridEntity(MapData.MapId); grid = gridEnt; gridUid = gridEnt; + gridComp = gridEnt.Comp; var gridXform = SEntMan.GetComponent(gridUid); Transform.SetWorldPosition(gridXform, pos.Position); - grid.SetTile(SEntMan.GetCoordinates(coords ?? TargetCoords), tile); + MapSystem.SetTile((gridUid, gridComp), SEntMan.GetCoordinates(coords ?? TargetCoords), tile); - if (!MapMan.TryFindGridAt(pos, out _, out grid)) + if (!MapMan.TryFindGridAt(pos, out _, out _)) Assert.Fail("Failed to create grid?"); }); await AssertTile(proto, coords); @@ -833,23 +884,70 @@ protected bool TryGetBui(Enum key, [NotNullWhen(true)] out BoundUserInterface? b return true; } + protected bool IsUiOpen(Enum key) + { + if (!TryComp(Player, out UserInterfaceUserComponent? user)) + return false; + + foreach (var keys in user.OpenInterfaces.Values) + { + if (keys.Contains(key)) + return true; + } + + return false; + } + #endregion #region UI /// - /// Presses and releases a button on some client-side window. Will fail if the button cannot be found. + /// Attempts to find, and then presses and releases a control on some client-side window. + /// Will fail if the control cannot be found. /// - protected async Task ClickControl(string name) where TWindow : BaseWindow + protected async Task ClickControl(string name, BoundKeyFunction? function = null) + where TWindow : BaseWindow + where TControl : Control { - await ClickControl(GetControl(name)); + var window = GetWindow(); + var control = GetControlFromField(name, window); + await ClickControl(control, function); } /// - /// Simulates a click and release at the center of some UI Constrol. + /// Attempts to find, and then presses and releases a control on some client-side widget. + /// Will fail if the control cannot be found. /// - protected async Task ClickControl(Control control) + protected async Task ClickWidgetControl(string name, BoundKeyFunction? function = null) + where TWidget : UIWidget, new() + where TControl : Control { + var widget = GetWidget(); + var control = GetControlFromField(name, widget); + await ClickControl(control, function); + } + + /// + protected async Task ClickControl(string name, BoundKeyFunction? function = null) + where TWindow : BaseWindow + { + await ClickControl(name, function); + } + + /// + protected async Task ClickWidgetControl(string name, BoundKeyFunction? function = null) + where TWidget : UIWidget, new() + { + await ClickWidgetControl(name, function); + } + + /// + /// Simulates a click and release at the center of some UI control. + /// + protected async Task ClickControl(Control control, BoundKeyFunction? function = null) + { + function ??= EngineKeyFunctions.UIClick; var screenCoords = new ScreenCoordinates( control.GlobalPixelPosition + control.PixelSize / 2, control.Window?.Id ?? default); @@ -858,7 +956,7 @@ protected async Task ClickControl(Control control) var relativePixelPos = screenCoords.Position - control.GlobalPixelPosition; var args = new GUIBoundKeyEventArgs( - EngineKeyFunctions.UIClick, + function.Value, BoundKeyState.Down, screenCoords, default, @@ -869,7 +967,7 @@ protected async Task ClickControl(Control control) await RunTicks(1); args = new GUIBoundKeyEventArgs( - EngineKeyFunctions.UIClick, + function.Value, BoundKeyState.Up, screenCoords, default, @@ -881,31 +979,26 @@ protected async Task ClickControl(Control control) } /// - /// Attempts to find a control on some client-side window. Will fail if the control cannot be found. + /// Attempt to retrieve a control by looking for a field on some other control. /// - protected TControl GetControl(string name) - where TWindow : BaseWindow + /// + /// Will fail if the control cannot be found. + /// + protected TControl GetControlFromField(string name, Control parent) where TControl : Control - { - var control = GetControl(name); - Assert.That(control.GetType().IsAssignableTo(typeof(TControl))); - return (TControl) control; - } - - protected Control GetControl(string name) where TWindow : BaseWindow { const BindingFlags flags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic; - var field = typeof(TWindow).GetField(name, flags); - var prop = typeof(TWindow).GetProperty(name, flags); + var parentType = parent.GetType(); + var field = parentType.GetField(name, flags); + var prop = parentType.GetProperty(name, flags); if (field == null && prop == null) { - Assert.Fail($"Window {typeof(TWindow).Name} does not have a field or property named {name}"); + Assert.Fail($"Window {parentType.Name} does not have a field or property named {name}"); return default!; } - var window = GetWindow(); - var fieldOrProp = field?.GetValue(window) ?? prop?.GetValue(window); + var fieldOrProp = field?.GetValue(parent) ?? prop?.GetValue(parent); if (fieldOrProp is not Control control) { @@ -913,7 +1006,59 @@ protected Control GetControl(string name) where TWindow : BaseWindow return default!; } - return control; + Assert.That(control.GetType().IsAssignableTo(typeof(TControl))); + return (TControl) control; + } + + /// + /// Attempt to retrieve a control that matches some predicate by iterating through a control's children. + /// + /// + /// Will fail if the control cannot be found. + /// + protected TControl GetControlFromChildren(Func predicate, Control parent, bool recursive = true) + where TControl : Control + { + if (TryGetControlFromChildren(predicate, parent, out var control, recursive)) + return control; + + Assert.Fail($"Failed to find a {nameof(TControl)} that satisfies the predicate in {parent.Name}"); + return default!; + } + + /// + /// Attempt to retrieve a control of a given type by iterating through a control's children. + /// + protected TControl GetControlFromChildren(Control parent, bool recursive = false) + where TControl : Control + { + return GetControlFromChildren(static _ => true, parent, recursive); + } + + /// + /// Attempt to retrieve a control that matches some predicate by iterating through a control's children. + /// + protected bool TryGetControlFromChildren( + Func predicate, + Control parent, + [NotNullWhen(true)] out TControl? control, + bool recursive = true) + where TControl : Control + { + foreach (var ctrl in parent.Children) + { + if (ctrl is TControl cast && predicate(cast)) + { + control = cast; + return true; + } + + if (recursive && TryGetControlFromChildren(predicate, ctrl, out control)) + return true; + } + + control = null; + return false; } /// @@ -944,7 +1089,6 @@ protected bool TryFindWindow([NotNullWhen(true)] out TWindow? window) w return window != null; } - /// /// Attempts to find a currently open client-side window. /// @@ -962,6 +1106,34 @@ protected bool TryFindWindow(Type type, [NotNullWhen(true)] out BaseWindow? wind return window != null; } + + /// + /// Attempts to find client-side UI widget. + /// + protected UIWidget GetWidget() + where TWidget : UIWidget, new() + { + if (TryFindWidget(out TWidget? widget)) + return widget; + + Assert.Fail($"Could not find a {typeof(TWidget).Name} widget"); + return default!; + } + + /// + /// Attempts to find client-side UI widget. + /// + private bool TryFindWidget([NotNullWhen(true)] out TWidget? uiWidget) + where TWidget : UIWidget, new() + { + uiWidget = null; + var screen = UiMan.ActiveScreen; + if (screen == null) + return false; + + return screen.TryGetWidget(out uiWidget); + } + #endregion #region Power @@ -1009,14 +1181,17 @@ await Server.WaitPost(() => #region Inputs + + /// /// Make the client press and then release a key. This assumes the key is currently released. + /// This will default to using the entity and coordinates. /// protected async Task PressKey( BoundKeyFunction key, int ticks = 1, NetCoordinates? coordinates = null, - NetEntity cursorEntity = default) + NetEntity? cursorEntity = null) { await SetKey(key, BoundKeyState.Down, coordinates, cursorEntity); await RunTicks(ticks); @@ -1025,15 +1200,17 @@ protected async Task PressKey( } /// - /// Make the client press or release a key + /// Make the client press or release a key. + /// This will default to using the entity and coordinates. /// protected async Task SetKey( BoundKeyFunction key, BoundKeyState state, NetCoordinates? coordinates = null, - NetEntity cursorEntity = default) + NetEntity? cursorEntity = null) { var coords = coordinates ?? TargetCoords; + var target = cursorEntity ?? Target ?? default; ScreenCoordinates screen = default; var funcId = InputManager.NetworkBindMap.KeyFunctionID(key); @@ -1042,7 +1219,7 @@ protected async Task SetKey( State = state, Coordinates = CEntMan.GetCoordinates(coords), ScreenCoordinates = screen, - Uid = CEntMan.GetEntity(cursorEntity), + Uid = CEntMan.GetEntity(target), }; await Client.WaitPost(() => InputSystem.HandleInputCommand(ClientSession, key, message)); diff --git a/Content.IntegrationTests/Tests/Interaction/InteractionTest.cs b/Content.IntegrationTests/Tests/Interaction/InteractionTest.cs index 42f64b344cd..457d3e31920 100644 --- a/Content.IntegrationTests/Tests/Interaction/InteractionTest.cs +++ b/Content.IntegrationTests/Tests/Interaction/InteractionTest.cs @@ -3,6 +3,7 @@ using System.Numerics; using Content.Client.Construction; using Content.Client.Examine; +using Content.Client.Gameplay; using Content.IntegrationTests.Pair; using Content.Server.Body.Systems; using Content.Server.Hands.Systems; @@ -24,6 +25,7 @@ using Robust.Shared.Timing; using Robust.UnitTesting; using Content.Shared.Item.ItemToggle; +using Robust.Client.State; namespace Content.IntegrationTests.Tests.Interaction; @@ -64,15 +66,12 @@ public abstract partial class InteractionTest /// The player entity that performs all these interactions. Defaults to an admin-observer with 1 hand. /// protected NetEntity Player; - - protected EntityUid SPlayer => ToServer(Player); - protected EntityUid CPlayer => ToClient(Player); + protected EntityUid SPlayer; + protected EntityUid CPlayer; protected ICommonSession ClientSession = default!; protected ICommonSession ServerSession = default!; - public EntityUid? ClientTarget; - /// /// The current target entity. This is the default entity for various helper functions. /// @@ -84,6 +83,7 @@ public abstract partial class InteractionTest protected NetEntity? Target; protected EntityUid? STarget => ToServer(Target); + protected EntityUid? CTarget => ToClient(Target); /// @@ -107,7 +107,9 @@ public abstract partial class InteractionTest protected SharedItemToggleSystem ItemToggleSys = default!; protected InteractionTestSystem STestSystem = default!; protected SharedTransformSystem Transform = default!; + protected SharedMapSystem MapSystem = default!; protected ISawmill SLogger = default!; + protected SharedUserInterfaceSystem SUiSys = default!; // CLIENT dependencies protected IEntityManager CEntMan = default!; @@ -119,6 +121,7 @@ public abstract partial class InteractionTest protected ExamineSystem ExamineSys = default!; protected InteractionTestSystem CTestSystem = default!; protected ISawmill CLogger = default!; + protected SharedUserInterfaceSystem CUiSys = default!; // player components protected HandsComponent Hands = default!; @@ -126,7 +129,6 @@ public abstract partial class InteractionTest public float TickPeriod => (float) STiming.TickPeriod.TotalSeconds; - // Simple mob that has one hand and can perform misc interactions. [TestPrototypes] private const string TestPrototypes = @" @@ -137,8 +139,11 @@ public abstract partial class InteractionTest prototype: Aghost - type: DoAfter - type: Hands + - type: ComplexInteraction - type: MindContainer - type: Stripping + - type: Puller + - type: Physics - type: Tag tags: - CanPilot @@ -148,7 +153,7 @@ public abstract partial class InteractionTest [SetUp] public virtual async Task Setup() { - Pair = await PoolManager.GetServerClient(new PoolSettings { Connected = true, Dirty = true}); + Pair = await PoolManager.GetServerClient(new PoolSettings { Connected = true, Dirty = true }); // server dependencies SEntMan = Server.ResolveDependency(); @@ -163,10 +168,12 @@ public virtual async Task Setup() ItemToggleSys = SEntMan.System(); DoAfterSys = SEntMan.System(); Transform = SEntMan.System(); + MapSystem = SEntMan.System(); SConstruction = SEntMan.System(); STestSystem = SEntMan.System(); Stack = SEntMan.System(); SLogger = Server.ResolveDependency().RootSawmill; + SUiSys = Client.System(); // client dependencies CEntMan = Client.ResolveDependency(); @@ -178,12 +185,14 @@ public virtual async Task Setup() CConSys = CEntMan.System(); ExamineSys = CEntMan.System(); CLogger = Client.ResolveDependency().RootSawmill; + CUiSys = Client.System(); // Setup map. await Pair.CreateTestMap(); - PlayerCoords = SEntMan.GetNetCoordinates(MapData.GridCoords.Offset(new Vector2(0.5f, 0.5f)).WithEntityId(MapData.MapUid, Transform, SEntMan)); - TargetCoords = SEntMan.GetNetCoordinates(MapData.GridCoords.Offset(new Vector2(1.5f, 0.5f)).WithEntityId(MapData.MapUid, Transform, SEntMan)); - await SetTile(Plating, grid: MapData.Grid.Comp); + + PlayerCoords = SEntMan.GetNetCoordinates(Transform.WithEntityId(MapData.GridCoords.Offset(new Vector2(0.5f, 0.5f)), MapData.MapUid)); + TargetCoords = SEntMan.GetNetCoordinates(Transform.WithEntityId(MapData.GridCoords.Offset(new Vector2(1.5f, 0.5f)), MapData.MapUid)); + await SetTile(Plating, grid: MapData.Grid); // Get player data var sPlayerMan = Server.ResolveDependency(); @@ -202,16 +211,17 @@ await Server.WaitPost(() => SEntMan.System().WipeMind(ServerSession.ContentData()?.Mind); old = cPlayerMan.LocalEntity; - Player = SEntMan.GetNetEntity(SEntMan.SpawnEntity(PlayerPrototype, SEntMan.GetCoordinates(PlayerCoords))); - var serverPlayerEnt = SEntMan.GetEntity(Player); - Server.PlayerMan.SetAttachedEntity(ServerSession, serverPlayerEnt); - Hands = SEntMan.GetComponent(serverPlayerEnt); - DoAfters = SEntMan.GetComponent(serverPlayerEnt); + SPlayer = SEntMan.SpawnEntity(PlayerPrototype, SEntMan.GetCoordinates(PlayerCoords)); + Player = SEntMan.GetNetEntity(SPlayer); + Server.PlayerMan.SetAttachedEntity(ServerSession, SPlayer); + Hands = SEntMan.GetComponent(SPlayer); + DoAfters = SEntMan.GetComponent(SPlayer); }); // Check player got attached. await RunTicks(5); - Assert.That(CEntMan.GetNetEntity(cPlayerMan.LocalEntity), Is.EqualTo(Player)); + CPlayer = ToClient(Player); + Assert.That(cPlayerMan.LocalEntity, Is.EqualTo(CPlayer)); // Delete old player entity. await Server.WaitPost(() => @@ -234,6 +244,10 @@ await Server.WaitPost(() => } }); + // Change UI state to in-game. + var state = Client.ResolveDependency(); + await Client.WaitPost(() => state.RequestStateChange()); + // Final player asserts/checks. await Pair.ReallyBeIdle(5); Assert.Multiple(() => @@ -251,7 +265,8 @@ public async Task TearDownInternal() await TearDown(); } - protected virtual async Task TearDown() + protected virtual Task TearDown() { + return Task.CompletedTask; } } diff --git a/Content.IntegrationTests/Tests/Linter/StaticFieldValidationTest.cs b/Content.IntegrationTests/Tests/Linter/StaticFieldValidationTest.cs index 30724b50a6d..0632fe1347c 100644 --- a/Content.IntegrationTests/Tests/Linter/StaticFieldValidationTest.cs +++ b/Content.IntegrationTests/Tests/Linter/StaticFieldValidationTest.cs @@ -26,26 +26,26 @@ public async Task TestStaticFieldValidation() protos.Add(kind, ids); } - Assert.That(protoMan.ValidateStaticFields(typeof(StringValid), protos).Count, Is.Zero); - Assert.That(protoMan.ValidateStaticFields(typeof(StringArrayValid), protos).Count, Is.Zero); - Assert.That(protoMan.ValidateStaticFields(typeof(EntProtoIdValid), protos).Count, Is.Zero); - Assert.That(protoMan.ValidateStaticFields(typeof(EntProtoIdArrayValid), protos).Count, Is.Zero); - Assert.That(protoMan.ValidateStaticFields(typeof(ProtoIdTestValid), protos).Count, Is.Zero); - Assert.That(protoMan.ValidateStaticFields(typeof(ProtoIdArrayValid), protos).Count, Is.Zero); - Assert.That(protoMan.ValidateStaticFields(typeof(ProtoIdListValid), protos).Count, Is.Zero); - Assert.That(protoMan.ValidateStaticFields(typeof(ProtoIdSetValid), protos).Count, Is.Zero); - Assert.That(protoMan.ValidateStaticFields(typeof(PrivateProtoIdArrayValid), protos).Count, Is.Zero); - - Assert.That(protoMan.ValidateStaticFields(typeof(StringInvalid), protos).Count, Is.EqualTo(1)); - Assert.That(protoMan.ValidateStaticFields(typeof(StringArrayInvalid), protos).Count, Is.EqualTo(2)); - Assert.That(protoMan.ValidateStaticFields(typeof(EntProtoIdInvalid), protos).Count, Is.EqualTo(1)); - Assert.That(protoMan.ValidateStaticFields(typeof(EntProtoIdArrayInvalid), protos).Count, Is.EqualTo(2)); - Assert.That(protoMan.ValidateStaticFields(typeof(ProtoIdTestInvalid), protos).Count, Is.EqualTo(1)); - Assert.That(protoMan.ValidateStaticFields(typeof(ProtoIdArrayInvalid), protos).Count, Is.EqualTo(2)); - Assert.That(protoMan.ValidateStaticFields(typeof(ProtoIdListInvalid), protos).Count, Is.EqualTo(2)); - Assert.That(protoMan.ValidateStaticFields(typeof(ProtoIdSetInvalid), protos).Count, Is.EqualTo(2)); - Assert.That(protoMan.ValidateStaticFields(typeof(PrivateProtoIdArrayInvalid), protos).Count, Is.EqualTo(2)); - + Assert.That(protoMan.ValidateStaticFields(typeof(StringValid), protos), Is.Empty); + Assert.That(protoMan.ValidateStaticFields(typeof(StringArrayValid), protos), Is.Empty); + Assert.That(protoMan.ValidateStaticFields(typeof(EntProtoIdValid), protos), Is.Empty); + Assert.That(protoMan.ValidateStaticFields(typeof(EntProtoIdArrayValid), protos), Is.Empty); + Assert.That(protoMan.ValidateStaticFields(typeof(ProtoIdTestValid), protos), Is.Empty); + Assert.That(protoMan.ValidateStaticFields(typeof(ProtoIdArrayValid), protos), Is.Empty); + Assert.That(protoMan.ValidateStaticFields(typeof(ProtoIdListValid), protos), Is.Empty); + Assert.That(protoMan.ValidateStaticFields(typeof(ProtoIdSetValid), protos), Is.Empty); + Assert.That(protoMan.ValidateStaticFields(typeof(PrivateProtoIdArrayValid), protos), Is.Empty); + + Assert.That(protoMan.ValidateStaticFields(typeof(StringInvalid), protos), Has.Count.EqualTo(1)); + Assert.That(protoMan.ValidateStaticFields(typeof(StringArrayInvalid), protos), Has.Count.EqualTo(2)); + Assert.That(protoMan.ValidateStaticFields(typeof(EntProtoIdInvalid), protos), Has.Count.EqualTo(1)); + Assert.That(protoMan.ValidateStaticFields(typeof(EntProtoIdArrayInvalid), protos), Has.Count.EqualTo(2)); + Assert.That(protoMan.ValidateStaticFields(typeof(ProtoIdTestInvalid), protos), Has.Count.EqualTo(1)); + Assert.That(protoMan.ValidateStaticFields(typeof(ProtoIdArrayInvalid), protos), Has.Count.EqualTo(2)); + Assert.That(protoMan.ValidateStaticFields(typeof(ProtoIdListInvalid), protos), Has.Count.EqualTo(2)); + Assert.That(protoMan.ValidateStaticFields(typeof(ProtoIdSetInvalid), protos), Has.Count.EqualTo(2)); + Assert.That(protoMan.ValidateStaticFields(typeof(PrivateProtoIdArrayInvalid), protos), Has.Count.EqualTo(2)); + await pair.CleanReturnAsync(); } @@ -58,93 +58,111 @@ public async Task TestStaticFieldValidation() id: StaticFieldTestTag "; - [Reflect(false)] private sealed class StringValid + [Reflect(false)] + private sealed class StringValid { [ValidatePrototypeId] public static string Tag = "StaticFieldTestTag"; } - [Reflect(false)] private sealed class StringInvalid + [Reflect(false)] + private sealed class StringInvalid { [ValidatePrototypeId] public static string Tag = string.Empty; } - [Reflect(false)] private sealed class StringArrayValid + [Reflect(false)] + private sealed class StringArrayValid { - [ValidatePrototypeId] public static string[] Tag = {"StaticFieldTestTag", "StaticFieldTestTag"}; + [ValidatePrototypeId] public static string[] Tag = ["StaticFieldTestTag", "StaticFieldTestTag"]; } - [Reflect(false)] private sealed class StringArrayInvalid + [Reflect(false)] + private sealed class StringArrayInvalid { - [ValidatePrototypeId] public static string[] Tag = {string.Empty, "StaticFieldTestTag", string.Empty}; + [ValidatePrototypeId] public static string[] Tag = [string.Empty, "StaticFieldTestTag", string.Empty]; } - [Reflect(false)] private sealed class EntProtoIdValid + [Reflect(false)] + private sealed class EntProtoIdValid { public static EntProtoId Tag = "StaticFieldTestEnt"; } - [Reflect(false)] private sealed class EntProtoIdInvalid + [Reflect(false)] + private sealed class EntProtoIdInvalid { public static EntProtoId Tag = string.Empty; } - [Reflect(false)] private sealed class EntProtoIdArrayValid + [Reflect(false)] + private sealed class EntProtoIdArrayValid { - public static EntProtoId[] Tag = {"StaticFieldTestEnt", "StaticFieldTestEnt"}; + public static EntProtoId[] Tag = ["StaticFieldTestEnt", "StaticFieldTestEnt"]; } - [Reflect(false)] private sealed class EntProtoIdArrayInvalid + [Reflect(false)] + private sealed class EntProtoIdArrayInvalid { - public static EntProtoId[] Tag = {string.Empty, "StaticFieldTestEnt", string.Empty}; + public static EntProtoId[] Tag = [string.Empty, "StaticFieldTestEnt", string.Empty]; } - [Reflect(false)] private sealed class ProtoIdTestValid + [Reflect(false)] + private sealed class ProtoIdTestValid { public static ProtoId Tag = "StaticFieldTestTag"; } - [Reflect(false)] private sealed class ProtoIdTestInvalid + [Reflect(false)] + private sealed class ProtoIdTestInvalid { public static ProtoId Tag = string.Empty; } - [Reflect(false)] private sealed class ProtoIdArrayValid + [Reflect(false)] + private sealed class ProtoIdArrayValid { - public static ProtoId[] Tag = {"StaticFieldTestTag", "StaticFieldTestTag"}; + public static ProtoId[] Tag = ["StaticFieldTestTag", "StaticFieldTestTag"]; } - [Reflect(false)] private sealed class ProtoIdArrayInvalid + [Reflect(false)] + private sealed class ProtoIdArrayInvalid { - public static ProtoId[] Tag = {string.Empty, "StaticFieldTestTag", string.Empty}; + public static ProtoId[] Tag = [string.Empty, "StaticFieldTestTag", string.Empty]; } - [Reflect(false)] private sealed class ProtoIdListValid + [Reflect(false)] + private sealed class ProtoIdListValid { - public static List> Tag = new() {"StaticFieldTestTag", "StaticFieldTestTag"}; + public static List> Tag = ["StaticFieldTestTag", "StaticFieldTestTag"]; } - [Reflect(false)] private sealed class ProtoIdListInvalid + [Reflect(false)] + private sealed class ProtoIdListInvalid { - public static List> Tag = new() {string.Empty, "StaticFieldTestTag", string.Empty}; + public static List> Tag = [string.Empty, "StaticFieldTestTag", string.Empty]; } - [Reflect(false)] private sealed class ProtoIdSetValid + [Reflect(false)] + private sealed class ProtoIdSetValid { - public static HashSet> Tag = new() {"StaticFieldTestTag", "StaticFieldTestTag"}; + public static HashSet> Tag = ["StaticFieldTestTag", "StaticFieldTestTag"]; } - [Reflect(false)] private sealed class ProtoIdSetInvalid + [Reflect(false)] + private sealed class ProtoIdSetInvalid { - public static HashSet> Tag = new() {string.Empty, "StaticFieldTestTag", string.Empty, " "}; + public static HashSet> Tag = [string.Empty, "StaticFieldTestTag", string.Empty, " "]; } - [Reflect(false)] private sealed class PrivateProtoIdArrayValid + [Reflect(false)] + private sealed class PrivateProtoIdArrayValid { - private static ProtoId[] Tag = {"StaticFieldTestTag", "StaticFieldTestTag"}; + private static readonly ProtoId[] Tag = ["StaticFieldTestTag", "StaticFieldTestTag"]; } - [Reflect(false)] private sealed class PrivateProtoIdArrayInvalid + [Reflect(false)] + private sealed class PrivateProtoIdArrayInvalid { - private static ProtoId[] Tag = {string.Empty, "StaticFieldTestTag", string.Empty}; + private static readonly ProtoId[] Tag = [string.Empty, "StaticFieldTestTag", string.Empty]; } } diff --git a/Content.IntegrationTests/Tests/MachineBoardTest.cs b/Content.IntegrationTests/Tests/MachineBoardTest.cs index bd3a72f4c1d..097f38af420 100644 --- a/Content.IntegrationTests/Tests/MachineBoardTest.cs +++ b/Content.IntegrationTests/Tests/MachineBoardTest.cs @@ -2,6 +2,7 @@ using System.Linq; using Content.Server.Construction.Components; using Content.Shared.Construction.Components; +using Robust.Shared.GameObjects; using Robust.Shared.Prototypes; namespace Content.IntegrationTests.Tests; @@ -35,6 +36,7 @@ public async Task TestMachineBoardHasValidMachine() var server = pair.Server; var protoMan = server.ResolveDependency(); + var compFact = server.ResolveDependency(); await server.WaitAssertion(() => { @@ -43,7 +45,7 @@ await server.WaitAssertion(() => .Where(p => !pair.IsTestPrototype(p)) .Where(p => !_ignoredPrototypes.Contains(p.ID))) { - if (!p.TryGetComponent(out var mbc)) + if (!p.TryGetComponent(out var mbc, compFact)) continue; var mId = mbc.Prototype; @@ -52,7 +54,7 @@ await server.WaitAssertion(() => Assert.That(mId, Is.Not.Null, $"Machine board {p.ID} does not have a corresponding machine."); Assert.That(protoMan.TryIndex(mId, out var mProto), $"Machine board {p.ID}'s corresponding machine has an invalid prototype."); - Assert.That(mProto.TryGetComponent(out var mComp), + Assert.That(mProto.TryGetComponent(out var mComp, compFact), $"Machine board {p.ID}'s corresponding machine {mId} does not have MachineComponent"); Assert.That(mComp.BoardPrototype, Is.EqualTo(p.ID), $"Machine {mId}'s BoardPrototype is not equal to it's corresponding machine board, {p.ID}"); @@ -74,6 +76,7 @@ public async Task TestComputerBoardHasValidComputer() var server = pair.Server; var protoMan = server.ResolveDependency(); + var compFact = server.ResolveDependency(); await server.WaitAssertion(() => { @@ -82,7 +85,7 @@ await server.WaitAssertion(() => .Where(p => !pair.IsTestPrototype(p)) .Where(p => !_ignoredPrototypes.Contains(p.ID))) { - if (!p.TryGetComponent(out var cbc)) + if (!p.TryGetComponent(out var cbc, compFact)) continue; var cId = cbc.Prototype; @@ -91,7 +94,7 @@ await server.WaitAssertion(() => Assert.That(cId, Is.Not.Null, $"Computer board \"{p.ID}\" does not have a corresponding computer."); Assert.That(protoMan.TryIndex(cId, out var cProto), $"Computer board \"{p.ID}\"'s corresponding computer has an invalid prototype."); - Assert.That(cProto.TryGetComponent(out var cComp), + Assert.That(cProto.TryGetComponent(out var cComp, compFact), $"Computer board {p.ID}'s corresponding computer \"{cId}\" does not have ComputerComponent"); Assert.That(cComp.BoardPrototype, Is.EqualTo(p.ID), $"Computer \"{cId}\"'s BoardPrototype is not equal to it's corresponding computer board, \"{p.ID}\""); diff --git a/Content.IntegrationTests/Tests/Mapping/MappingTests.cs b/Content.IntegrationTests/Tests/Mapping/MappingTests.cs index 287e30eb8b1..be8bad229b4 100644 --- a/Content.IntegrationTests/Tests/Mapping/MappingTests.cs +++ b/Content.IntegrationTests/Tests/Mapping/MappingTests.cs @@ -13,7 +13,7 @@ public sealed class MappingTests [Test] public async Task MappingTest() { - await using var pair = await PoolManager.GetServerClient(new PoolSettings {Dirty = true, Connected = true, DummyTicker = false}); + await using var pair = await PoolManager.GetServerClient(new PoolSettings { Dirty = true, Connected = true, DummyTicker = false }); var server = pair.Server; var entMan = server.EntMan; diff --git a/Content.IntegrationTests/Tests/MaterialArbitrageTest.cs b/Content.IntegrationTests/Tests/MaterialArbitrageTest.cs index 7f9c02fc13b..12b395f86d3 100644 --- a/Content.IntegrationTests/Tests/MaterialArbitrageTest.cs +++ b/Content.IntegrationTests/Tests/MaterialArbitrageTest.cs @@ -38,15 +38,16 @@ public async Task NoMaterialArbitrage() await server.WaitIdleAsync(); var entManager = server.ResolveDependency(); - var sysManager = server.ResolveDependency(); var mapManager = server.ResolveDependency(); - Assert.That(mapManager.IsMapInitialized(testMap.MapId)); - var protoManager = server.ResolveDependency(); - var pricing = sysManager.GetEntitySystem(); - var stackSys = sysManager.GetEntitySystem(); + + var pricing = entManager.System(); + var stackSys = entManager.System(); + var mapSystem = server.System(); var compFact = server.ResolveDependency(); + Assert.That(mapSystem.IsInitialized(testMap.MapId)); + var constructionName = compFact.GetComponentName(typeof(ConstructionComponent)); var compositionName = compFact.GetComponentName(typeof(PhysicalCompositionComponent)); var materialName = compFact.GetComponentName(typeof(MaterialComponent)); @@ -66,7 +67,7 @@ public async Task NoMaterialArbitrage() Dictionary constructionRecipes = new(); foreach (var proto in protoManager.EnumeratePrototypes()) { - if (proto.NoSpawn || proto.Abstract || pair.IsTestPrototype(proto)) + if (proto.HideSpawnMenu || proto.Abstract || pair.IsTestPrototype(proto)) continue; if (!proto.Components.TryGetValue(constructionName, out var destructible)) @@ -126,7 +127,7 @@ public async Task NoMaterialArbitrage() // Here we get the set of entities/materials spawned when destroying an entity. foreach (var proto in protoManager.EnumeratePrototypes()) { - if (proto.NoSpawn || proto.Abstract || pair.IsTestPrototype(proto)) + if (proto.HideSpawnMenu || proto.Abstract || pair.IsTestPrototype(proto)) continue; if (!proto.Components.TryGetValue(destructibleName, out var destructible)) @@ -297,7 +298,7 @@ public async Task NoMaterialArbitrage() Dictionary physicalCompositions = new(); foreach (var proto in protoManager.EnumeratePrototypes()) { - if (proto.NoSpawn || proto.Abstract || pair.IsTestPrototype(proto)) + if (proto.HideSpawnMenu || proto.Abstract || pair.IsTestPrototype(proto)) continue; if (!proto.Components.TryGetValue(compositionName, out var composition)) diff --git a/Content.IntegrationTests/Tests/Minds/GhostTests.cs b/Content.IntegrationTests/Tests/Minds/GhostTests.cs index ad9d53a70db..3a860267e55 100644 --- a/Content.IntegrationTests/Tests/Minds/GhostTests.cs +++ b/Content.IntegrationTests/Tests/Minds/GhostTests.cs @@ -14,7 +14,7 @@ namespace Content.IntegrationTests.Tests.Minds; [TestFixture] public sealed class GhostTests { - struct GhostTestData + private struct GhostTestData { public IEntityManager SEntMan; public Robust.Server.Player.IPlayerManager SPlayerMan; @@ -23,10 +23,10 @@ struct GhostTestData public TestPair Pair = default!; - public TestMapData MapData => Pair.TestMap!; + public readonly TestMapData MapData => Pair.TestMap!; - public RobustIntegrationTest.ServerIntegrationInstance Server => Pair.Server; - public RobustIntegrationTest.ClientIntegrationInstance Client => Pair.Client; + public readonly RobustIntegrationTest.ServerIntegrationInstance Server => Pair.Server; + public readonly RobustIntegrationTest.ClientIntegrationInstance Client => Pair.Client; /// /// Initial player coordinates. Note that this does not necessarily correspond to the position of the @@ -47,15 +47,16 @@ public GhostTestData() private async Task SetupData() { - var data = new GhostTestData(); - - // Client is needed to create a session for the ghost system. Creating a dummy session was too difficult. - data.Pair = await PoolManager.GetServerClient(new PoolSettings + var data = new GhostTestData { - DummyTicker = false, - Connected = true, - Dirty = true - }); + // Client is needed to create a session for the ghost system. Creating a dummy session was too difficult. + Pair = await PoolManager.GetServerClient(new PoolSettings + { + DummyTicker = false, + Connected = true, + Dirty = true + }) + }; data.SEntMan = data.Pair.Server.ResolveDependency(); data.SPlayerMan = data.Pair.Server.ResolveDependency(); @@ -64,7 +65,8 @@ private async Task SetupData() // Setup map. await data.Pair.CreateTestMap(); - data.PlayerCoords = data.SEntMan.GetNetCoordinates(data.MapData.GridCoords.Offset(new Vector2(0.5f, 0.5f)).WithEntityId(data.MapData.MapUid, data.STransformSys, data.SEntMan)); + var test = data.MapData.GridCoords.Offset(new Vector2(0.5f, 0.5f)); + data.PlayerCoords = data.SEntMan.GetNetCoordinates(data.STransformSys.WithEntityId(data.MapData.GridCoords.Offset(new Vector2(0.5f, 0.5f)), data.MapData.MapUid)); if (data.Client.Session == null) Assert.Fail("No player"); @@ -156,4 +158,20 @@ public async Task TestGridGhostOnQueueDelete() await data.Pair.CleanReturnAsync(); } + [Test] + public async Task TestGhostGridNotTerminating() + { + var data = await SetupData(); + + Assert.DoesNotThrowAsync(async () => + { + // Delete the grid + await data.Server.WaitPost(() => data.SEntMan.DeleteEntity(data.MapData.Grid.Owner)); + }); + + await data.Pair.RunTicksSync(5); + + await data.Pair.CleanReturnAsync(); + } + } diff --git a/Content.IntegrationTests/Tests/Minds/MindTests.Helpers.cs b/Content.IntegrationTests/Tests/Minds/MindTests.Helpers.cs index 428380631d7..b12c90e16e2 100644 --- a/Content.IntegrationTests/Tests/Minds/MindTests.Helpers.cs +++ b/Content.IntegrationTests/Tests/Minds/MindTests.Helpers.cs @@ -169,7 +169,7 @@ private static async Task Connect(Pair.TestPair pair, string username) { var netManager = pair.Client.ResolveDependency(); var playerMan = pair.Server.ResolveDependency(); - Assert.That(!playerMan.Sessions.Any()); + Assert.That(playerMan.Sessions, Is.Empty); await Task.WhenAll(pair.Client.WaitIdleAsync(), pair.Client.WaitIdleAsync()); pair.Client.SetConnectTarget(pair.Server); diff --git a/Content.IntegrationTests/Tests/Movement/BuckleMovementTest.cs b/Content.IntegrationTests/Tests/Movement/BuckleMovementTest.cs new file mode 100644 index 00000000000..3119ee55924 --- /dev/null +++ b/Content.IntegrationTests/Tests/Movement/BuckleMovementTest.cs @@ -0,0 +1,63 @@ +using Content.Shared.Alert; +using Content.Shared.Buckle.Components; +using Robust.Shared.Maths; + +namespace Content.IntegrationTests.Tests.Movement; + +public sealed class BuckleMovementTest : MovementTest +{ + // Check that interacting with a chair straps you to it and prevents movement. + [Test] + public async Task ChairTest() + { + await SpawnTarget("Chair"); + + var cAlert = Client.System(); + var sAlert = Server.System(); + var buckle = Comp(Player); + var strap = Comp(Target); + +#pragma warning disable RA0002 + buckle.Delay = TimeSpan.Zero; +#pragma warning restore RA0002 + + // Initially not buckled to the chair, and standing off to the side + Assert.That(Delta(), Is.InRange(0.9f, 1.1f)); + Assert.That(buckle.Buckled, Is.False); + Assert.That(buckle.BuckledTo, Is.Null); + Assert.That(strap.BuckledEntities, Is.Empty); + Assert.That(cAlert.IsShowingAlert(CPlayer, strap.BuckledAlertType), Is.False); + Assert.That(sAlert.IsShowingAlert(SPlayer, strap.BuckledAlertType), Is.False); + + // Interact results in being buckled to the chair + await Interact(); + Assert.That(Delta(), Is.InRange(-0.01f, 0.01f)); + Assert.That(buckle.Buckled, Is.True); + Assert.That(buckle.BuckledTo, Is.EqualTo(STarget)); + Assert.That(strap.BuckledEntities, Is.EquivalentTo(new[] { SPlayer })); + Assert.That(cAlert.IsShowingAlert(CPlayer, strap.BuckledAlertType), Is.True); + Assert.That(sAlert.IsShowingAlert(SPlayer, strap.BuckledAlertType), Is.True); + + // Attempting to walk away does nothing + await Move(DirectionFlag.East, 1); + Assert.That(Delta(), Is.InRange(-0.01f, 0.01f)); + Assert.That(buckle.Buckled, Is.True); + Assert.That(buckle.BuckledTo, Is.EqualTo(STarget)); + Assert.That(strap.BuckledEntities, Is.EquivalentTo(new[] { SPlayer })); + Assert.That(cAlert.IsShowingAlert(CPlayer, strap.BuckledAlertType), Is.True); + Assert.That(sAlert.IsShowingAlert(SPlayer, strap.BuckledAlertType), Is.True); + + // Interacting again will unbuckle the player + await Interact(); + Assert.That(Delta(), Is.InRange(-0.5f, 0.5f)); + Assert.That(buckle.Buckled, Is.False); + Assert.That(buckle.BuckledTo, Is.Null); + Assert.That(strap.BuckledEntities, Is.Empty); + Assert.That(cAlert.IsShowingAlert(CPlayer, strap.BuckledAlertType), Is.False); + Assert.That(sAlert.IsShowingAlert(SPlayer, strap.BuckledAlertType), Is.False); + + // And now they can move away + await Move(DirectionFlag.SouthEast, 1); + Assert.That(Delta(), Is.LessThan(-1)); + } +} diff --git a/Content.IntegrationTests/Tests/Interaction/MovementTest.cs b/Content.IntegrationTests/Tests/Movement/MovementTest.cs similarity index 93% rename from Content.IntegrationTests/Tests/Interaction/MovementTest.cs rename to Content.IntegrationTests/Tests/Movement/MovementTest.cs index dc5aec92cfc..eba92530388 100644 --- a/Content.IntegrationTests/Tests/Interaction/MovementTest.cs +++ b/Content.IntegrationTests/Tests/Movement/MovementTest.cs @@ -1,8 +1,9 @@ #nullable enable using System.Numerics; +using Content.IntegrationTests.Tests.Interaction; using Robust.Shared.GameObjects; -namespace Content.IntegrationTests.Tests.Interaction; +namespace Content.IntegrationTests.Tests.Movement; /// /// This is a variation of that sets up the player with a normal human entity and a simple @@ -31,7 +32,7 @@ public override async Task Setup() for (var i = -Tiles; i <= Tiles; i++) { - await SetTile(Plating, SEntMan.GetNetCoordinates(pCoords.Offset(new Vector2(i, 0))), MapData.Grid.Comp); + await SetTile(Plating, SEntMan.GetNetCoordinates(pCoords.Offset(new Vector2(i, 0))), MapData.Grid); } AssertGridCount(1); diff --git a/Content.IntegrationTests/Tests/Movement/PullingTest.cs b/Content.IntegrationTests/Tests/Movement/PullingTest.cs new file mode 100644 index 00000000000..d96c4ea0e56 --- /dev/null +++ b/Content.IntegrationTests/Tests/Movement/PullingTest.cs @@ -0,0 +1,73 @@ +#nullable enable +using Content.Shared.Alert; +using Content.Shared.Input; +using Content.Shared.Movement.Pulling.Components; +using Robust.Shared.Maths; + +namespace Content.IntegrationTests.Tests.Movement; + +public sealed class PullingTest : MovementTest +{ + protected override int Tiles => 4; + + [Test] + public async Task PullTest() + { + var cAlert = Client.System(); + var sAlert = Server.System(); + await SpawnTarget("MobHuman"); + + var puller = Comp(Player); + var pullable = Comp(Target); + + // Player is initially to the left of the target and not pulling anything + Assert.That(Delta(), Is.InRange(0.9f, 1.1f)); + Assert.That(puller.Pulling, Is.Null); + Assert.That(pullable.Puller, Is.Null); + Assert.That(pullable.BeingPulled, Is.False); + Assert.That(cAlert.IsShowingAlert(CPlayer, puller.PullingAlert), Is.False); + Assert.That(sAlert.IsShowingAlert(SPlayer, puller.PullingAlert), Is.False); + + // Start pulling + await PressKey(ContentKeyFunctions.TryPullObject); + await RunTicks(5); + Assert.That(puller.Pulling, Is.EqualTo(STarget)); + Assert.That(pullable.Puller, Is.EqualTo(SPlayer)); + Assert.That(pullable.BeingPulled, Is.True); + Assert.That(cAlert.IsShowingAlert(CPlayer, puller.PullingAlert), Is.True); + Assert.That(sAlert.IsShowingAlert(SPlayer, puller.PullingAlert), Is.True); + + // Move to the left and check that the target moves with the player and is still being pulled. + await Move(DirectionFlag.West, 1); + Assert.That(Delta(), Is.InRange(0.9f, 1.3f)); + Assert.That(puller.Pulling, Is.EqualTo(STarget)); + Assert.That(pullable.Puller, Is.EqualTo(SPlayer)); + Assert.That(pullable.BeingPulled, Is.True); + Assert.That(cAlert.IsShowingAlert(CPlayer, puller.PullingAlert), Is.True); + Assert.That(sAlert.IsShowingAlert(SPlayer, puller.PullingAlert), Is.True); + + // Move in the other direction + await Move(DirectionFlag.East, 2); + Assert.That(Delta(), Is.InRange(-1.3f, -0.9f)); + Assert.That(puller.Pulling, Is.EqualTo(STarget)); + Assert.That(pullable.Puller, Is.EqualTo(SPlayer)); + Assert.That(pullable.BeingPulled, Is.True); + Assert.That(cAlert.IsShowingAlert(CPlayer, puller.PullingAlert), Is.True); + Assert.That(sAlert.IsShowingAlert(SPlayer, puller.PullingAlert), Is.True); + + // Stop pulling + await PressKey(ContentKeyFunctions.ReleasePulledObject); + await RunTicks(5); + Assert.That(Delta(), Is.InRange(-1.3f, -0.9f)); + Assert.That(puller.Pulling, Is.Null); + Assert.That(pullable.Puller, Is.Null); + Assert.That(pullable.BeingPulled, Is.False); + Assert.That(cAlert.IsShowingAlert(CPlayer, puller.PullingAlert), Is.False); + Assert.That(sAlert.IsShowingAlert(SPlayer, puller.PullingAlert), Is.False); + + // Move back to the left and ensure the target is no longer following us. + await Move(DirectionFlag.West, 2); + Assert.That(Delta(), Is.GreaterThan(2f)); + } +} + diff --git a/Content.IntegrationTests/Tests/Slipping/SlippingTest.cs b/Content.IntegrationTests/Tests/Movement/SlippingTest.cs similarity index 92% rename from Content.IntegrationTests/Tests/Slipping/SlippingTest.cs rename to Content.IntegrationTests/Tests/Movement/SlippingTest.cs index 28da7a94658..9ac84a0a586 100644 --- a/Content.IntegrationTests/Tests/Slipping/SlippingTest.cs +++ b/Content.IntegrationTests/Tests/Movement/SlippingTest.cs @@ -11,7 +11,7 @@ using Robust.Shared.IoC; using Robust.Shared.Maths; -namespace Content.IntegrationTests.Tests.Slipping; +namespace Content.IntegrationTests.Tests.Movement; public sealed class SlippingTest : MovementTest { @@ -41,18 +41,14 @@ public async Task BananaSlipTest() // Assert.That(modifier, Is.EqualTo(1), "Player is not moving at full speed."); // Yeeting this pointless Assert because it's not actually important. // Player is to the left of the banana peel and has not slipped. -#pragma warning disable NUnit2045 Assert.That(Delta(), Is.GreaterThan(0.5f)); Assert.That(sys.Slipped, Does.Not.Contain(SEntMan.GetEntity(Player))); -#pragma warning restore NUnit2045 // Walking over the banana slowly does not trigger a slip. await SetKey(EngineKeyFunctions.Walk, sprintWalks ? BoundKeyState.Up : BoundKeyState.Down); await Move(DirectionFlag.East, 1f); -#pragma warning disable NUnit2045 Assert.That(Delta(), Is.LessThan(0.5f)); Assert.That(sys.Slipped, Does.Not.Contain(SEntMan.GetEntity(Player))); -#pragma warning restore NUnit2045 AssertComp(false, Player); // Moving at normal speeds does trigger a slip. diff --git a/Content.IntegrationTests/Tests/Networking/PvsCommandTest.cs b/Content.IntegrationTests/Tests/Networking/PvsCommandTest.cs index 4783d21a053..b3955698489 100644 --- a/Content.IntegrationTests/Tests/Networking/PvsCommandTest.cs +++ b/Content.IntegrationTests/Tests/Networking/PvsCommandTest.cs @@ -7,12 +7,12 @@ namespace Content.IntegrationTests.Tests.Networking; [TestFixture] public sealed class PvsCommandTest { - public static EntProtoId TestEnt = "MobHuman"; + private static readonly EntProtoId TestEnt = "MobHuman"; [Test] public async Task TestPvsCommands() { - await using var pair = await PoolManager.GetServerClient(new PoolSettings { Connected = true, DummyTicker = false}); + await using var pair = await PoolManager.GetServerClient(new PoolSettings { Connected = true, DummyTicker = false }); var (server, client) = pair; await pair.RunTicksSync(5); diff --git a/Content.IntegrationTests/Tests/Networking/SimplePredictReconcileTest.cs b/Content.IntegrationTests/Tests/Networking/SimplePredictReconcileTest.cs index 52d464fa41e..29f2573c2d9 100644 --- a/Content.IntegrationTests/Tests/Networking/SimplePredictReconcileTest.cs +++ b/Content.IntegrationTests/Tests/Networking/SimplePredictReconcileTest.cs @@ -51,11 +51,12 @@ public async Task Test() PredictionTestComponent clientComponent = default!; var serverSystem = sEntityManager.System(); var clientSystem = cEntityManager.System(); + var sMapSys = sEntityManager.System(); await server.WaitPost(() => { // Spawn dummy component entity. - var map = sMapManager.CreateMap(); + sMapSys.CreateMap(out var map); serverEnt = sEntityManager.SpawnEntity(null, new MapCoordinates(new Vector2(0, 0), map)); serverComponent = sEntityManager.AddComponent(serverEnt); }); @@ -67,7 +68,7 @@ await server.WaitPost(() => Assert.That(sGameTiming.TickTimingAdjustment, Is.EqualTo(0)); // Check client buffer is full - Assert.That(cGameStateManager.CurrentBufferSize, Is.EqualTo(cGameStateManager.TargetBufferSize)); + Assert.That(cGameStateManager.GetApplicableStateCount(), Is.EqualTo(cGameStateManager.TargetBufferSize)); Assert.That(cGameStateManager.TargetBufferSize, Is.EqualTo(2)); // This isn't required anymore, but the test had this for the sake of "technical things", and I cbf shifting @@ -99,7 +100,7 @@ await client.WaitPost(() => // Client last ran tick 15 meaning it's ahead of the last server tick it processed (12) Assert.That(cGameTiming.CurTick, Is.EqualTo(expected)); - Assert.That(cGameTiming.LastProcessedTick, Is.EqualTo(new GameTick((uint)(baseTick - cGameStateManager.TargetBufferSize)))); + Assert.That(cGameTiming.LastProcessedTick, Is.EqualTo(new GameTick((uint) (baseTick - cGameStateManager.TargetBufferSize)))); }); // *** I am using block scopes to visually distinguish these sections of the test to make it more readable. @@ -264,7 +265,7 @@ await client.WaitPost(() => // Assert timing is still correct. Assert.That(sGameTiming.CurTick, Is.EqualTo(new GameTick(baseTick + 8))); Assert.That(cGameTiming.CurTick, Is.EqualTo(new GameTick(baseTick + 8 + delta))); - Assert.That(cGameTiming.LastProcessedTick, Is.EqualTo(new GameTick((uint)(baseTick + 8 - cGameStateManager.TargetBufferSize)))); + Assert.That(cGameTiming.LastProcessedTick, Is.EqualTo(new GameTick((uint) (baseTick + 8 - cGameStateManager.TargetBufferSize)))); }); { diff --git a/Content.IntegrationTests/Tests/Payload/ModularGrenadeTests.cs b/Content.IntegrationTests/Tests/Payload/ModularGrenadeTests.cs index 70179fdec1a..4db79373d38 100644 --- a/Content.IntegrationTests/Tests/Payload/ModularGrenadeTests.cs +++ b/Content.IntegrationTests/Tests/Payload/ModularGrenadeTests.cs @@ -22,32 +22,32 @@ public async Task AssembleAndDetonateGrenade() Target = SEntMan.GetNetEntity(await FindEntity("ModularGrenade")); await Drop(); - await Interact(Cable); + await InteractUsing(Cable); // Insert & remove trigger AssertComp(false); - await Interact(Trigger); + await InteractUsing(Trigger); AssertComp(); await FindEntity(Trigger, LookupFlags.Uncontained, shouldSucceed: false); - await Interact(Pry); + await InteractUsing(Pry); AssertComp(false); // Trigger was dropped to floor, not deleted. await FindEntity(Trigger, LookupFlags.Uncontained); // Re-insert - await Interact(Trigger); + await InteractUsing(Trigger); AssertComp(); // Insert & remove payload. - await Interact(Payload); + await InteractUsing(Payload); await FindEntity(Payload, LookupFlags.Uncontained, shouldSucceed: false); - await Interact(Pry); + await InteractUsing(Pry); var ent = await FindEntity(Payload, LookupFlags.Uncontained); await Delete(ent); // successfully insert a second time - await Interact(Payload); + await InteractUsing(Payload); ent = await FindEntity(Payload); var sys = SEntMan.System(); Assert.That(sys.IsEntityInContainer(ent)); diff --git a/Content.IntegrationTests/Tests/PostMapInitTest.cs b/Content.IntegrationTests/Tests/PostMapInitTest.cs index 05f603408b3..bc3fedbd954 100644 --- a/Content.IntegrationTests/Tests/PostMapInitTest.cs +++ b/Content.IntegrationTests/Tests/PostMapInitTest.cs @@ -16,6 +16,7 @@ using Robust.Shared.Map; using Robust.Shared.Map.Components; using Robust.Shared.Prototypes; +using FastAccessors; using Robust.Shared.Utility; using YamlDotNet.RepresentationModel; @@ -63,7 +64,8 @@ public sealed class PostMapInitTest "Lighthouse", //DeltaV "Submarine", //DeltaV "Gax", - "Rad" + "Rad", + "Europa" }; /// @@ -77,13 +79,14 @@ public async Task GridsLoadableTest(string mapFile) var entManager = server.ResolveDependency(); var mapLoader = entManager.System(); + var mapSystem = entManager.System(); var mapManager = server.ResolveDependency(); var cfg = server.ResolveDependency(); Assert.That(cfg.GetCVar(CCVars.GridFill), Is.False); await server.WaitPost(() => { - var mapId = mapManager.CreateMap(); + mapSystem.CreateMap(out var mapId); try { #pragma warning disable NUnit2045 @@ -164,6 +167,7 @@ public async Task GameMapsLoadableTest(string mapProto) var mapManager = server.ResolveDependency(); var entManager = server.ResolveDependency(); var mapLoader = entManager.System(); + var mapSystem = entManager.System(); var protoManager = server.ResolveDependency(); var ticker = entManager.EntitySysManager.GetEntitySystem(); var shuttleSystem = entManager.EntitySysManager.GetEntitySystem(); @@ -173,7 +177,7 @@ public async Task GameMapsLoadableTest(string mapProto) await server.WaitPost(() => { - var mapId = mapManager.CreateMap(); + mapSystem.CreateMap(out var mapId); try { ticker.LoadGameMap(protoManager.Index(mapProto), mapId, null); @@ -183,7 +187,7 @@ await server.WaitPost(() => throw new Exception($"Failed to load map {mapProto}", ex); } - var shuttleMap = mapManager.CreateMap(); + mapSystem.CreateMap(out var shuttleMap); var largest = 0f; EntityUid? targetGrid = null; var memberQuery = entManager.GetEntityQuery(); @@ -242,24 +246,17 @@ await server.WaitPost(() => Assert.That(lateSpawns, Is.GreaterThan(0), $"Found no latejoin spawn points on {mapProto}"); } + var comp = entManager.GetComponent(station); + var jobs = new HashSet(comp.SetupAvailableJobs.Keys); + // Test all availableJobs have spawnPoints // This is done inside gamemap test because loading the map takes ages and we already have it. - var jobList = entManager.GetComponent(station).RoundStartJobList - .Where(x => x.Value != 0) - .Select(x => x.Key); var spawnPoints = entManager.EntityQuery() - .Where(spawnpoint => spawnpoint.SpawnType == SpawnPointType.Job) - .Select(spawnpoint => spawnpoint.Job.ID) - .Distinct(); - List missingSpawnPoints = new(); - foreach (var spawnpoint in jobList.Except(spawnPoints)) - { - if (protoManager.Index(spawnpoint).SetPreference) - missingSpawnPoints.Add(spawnpoint); - } + .Where(x => x.SpawnType == SpawnPointType.Job) + .Select(x => x.Job!.ID); - Assert.That(missingSpawnPoints, Has.Count.EqualTo(0), - $"There is no spawnpoint for {string.Join(", ", missingSpawnPoints)} on {mapProto}."); + jobs.ExceptWith(spawnPoints); + Assert.That(jobs, Is.Empty, $"There is no spawnpoints for {string.Join(", ", jobs)} on {mapProto}."); } try @@ -332,6 +329,7 @@ public async Task NonGameMapsLoadableTest() var resourceManager = server.ResolveDependency(); var protoManager = server.ResolveDependency(); var cfg = server.ResolveDependency(); + var mapSystem = server.System(); Assert.That(cfg.GetCVar(CCVars.GridFill), Is.False); var gameMaps = protoManager.EnumeratePrototypes().Select(o => o.MapPath).ToHashSet(); @@ -362,7 +360,7 @@ await server.WaitPost(() => { foreach (var mapName in mapNames) { - var mapId = mapManager.CreateMap(); + mapSystem.CreateMap(out var mapId); try { Assert.That(mapLoader.TryLoad(mapId, mapName, out _)); diff --git a/Content.IntegrationTests/Tests/Power/PowerTest.cs b/Content.IntegrationTests/Tests/Power/PowerTest.cs index a94e94489c0..55bb42f8ced 100644 --- a/Content.IntegrationTests/Tests/Power/PowerTest.cs +++ b/Content.IntegrationTests/Tests/Power/PowerTest.cs @@ -166,6 +166,7 @@ public async Task TestSimpleSurplus() var server = pair.Server; var mapManager = server.ResolveDependency(); var entityManager = server.ResolveDependency(); + var mapSys = entityManager.System(); const float loadPower = 200; PowerSupplierComponent supplier = default!; PowerConsumerComponent consumer1 = default!; @@ -173,21 +174,19 @@ public async Task TestSimpleSurplus() await server.WaitAssertion(() => { - var map = mapManager.CreateMap(); - var grid = mapManager.CreateGrid(map); - - var gridOwner = grid.Owner; + var map = mapSys.CreateMap(out var mapId); + var grid = mapManager.CreateGridEntity(mapId); // Power only works when anchored for (var i = 0; i < 3; i++) { - grid.SetTile(new Vector2i(0, i), new Tile(1)); - entityManager.SpawnEntity("CableHV", gridOwner.ToCoordinates(0, i)); + mapSys.SetTile(grid, new Vector2i(0, i), new Tile(1)); + entityManager.SpawnEntity("CableHV", grid.Owner.ToCoordinates(0, i)); } - var generatorEnt = entityManager.SpawnEntity("GeneratorDummy", gridOwner.ToCoordinates()); - var consumerEnt1 = entityManager.SpawnEntity("ConsumerDummy", gridOwner.ToCoordinates(0, 1)); - var consumerEnt2 = entityManager.SpawnEntity("ConsumerDummy", gridOwner.ToCoordinates(0, 2)); + var generatorEnt = entityManager.SpawnEntity("GeneratorDummy", grid.Owner.ToCoordinates()); + var consumerEnt1 = entityManager.SpawnEntity("ConsumerDummy", grid.Owner.ToCoordinates(0, 1)); + var consumerEnt2 = entityManager.SpawnEntity("ConsumerDummy", grid.Owner.ToCoordinates(0, 2)); supplier = entityManager.GetComponent(generatorEnt); consumer1 = entityManager.GetComponent(consumerEnt1); @@ -229,6 +228,7 @@ public async Task TestSimpleDeficit() var server = pair.Server; var mapManager = server.ResolveDependency(); var entityManager = server.ResolveDependency(); + var mapSys = entityManager.System(); const float loadPower = 200; PowerSupplierComponent supplier = default!; PowerConsumerComponent consumer1 = default!; @@ -236,21 +236,19 @@ public async Task TestSimpleDeficit() await server.WaitAssertion(() => { - var map = mapManager.CreateMap(); - var grid = mapManager.CreateGrid(map); - - var gridOwner = grid.Owner; + var map = mapSys.CreateMap(out var mapId); + var grid = mapManager.CreateGridEntity(mapId); // Power only works when anchored for (var i = 0; i < 3; i++) { - grid.SetTile(new Vector2i(0, i), new Tile(1)); - entityManager.SpawnEntity("CableHV", gridOwner.ToCoordinates(0, i)); + mapSys.SetTile(grid, new Vector2i(0, i), new Tile(1)); + entityManager.SpawnEntity("CableHV", grid.Owner.ToCoordinates(0, i)); } - var generatorEnt = entityManager.SpawnEntity("GeneratorDummy", gridOwner.ToCoordinates()); - var consumerEnt1 = entityManager.SpawnEntity("ConsumerDummy", gridOwner.ToCoordinates(0, 1)); - var consumerEnt2 = entityManager.SpawnEntity("ConsumerDummy", gridOwner.ToCoordinates(0, 2)); + var generatorEnt = entityManager.SpawnEntity("GeneratorDummy", grid.Owner.ToCoordinates()); + var consumerEnt1 = entityManager.SpawnEntity("ConsumerDummy", grid.Owner.ToCoordinates(0, 1)); + var consumerEnt2 = entityManager.SpawnEntity("ConsumerDummy", grid.Owner.ToCoordinates(0, 2)); supplier = entityManager.GetComponent(generatorEnt); consumer1 = entityManager.GetComponent(consumerEnt1); @@ -288,25 +286,25 @@ public async Task TestSupplyRamp() var server = pair.Server; var mapManager = server.ResolveDependency(); var entityManager = server.ResolveDependency(); + var mapSys = entityManager.System(); var gameTiming = server.ResolveDependency(); PowerSupplierComponent supplier = default!; PowerConsumerComponent consumer = default!; await server.WaitAssertion(() => { - var map = mapManager.CreateMap(); - var grid = mapManager.CreateGrid(map); - var gridOwner = grid.Owner; + var map = mapSys.CreateMap(out var mapId); + var grid = mapManager.CreateGridEntity(mapId); // Power only works when anchored for (var i = 0; i < 3; i++) { - grid.SetTile(new Vector2i(0, i), new Tile(1)); - entityManager.SpawnEntity("CableHV", gridOwner.ToCoordinates(0, i)); + mapSys.SetTile(grid, new Vector2i(0, i), new Tile(1)); + entityManager.SpawnEntity("CableHV", grid.Owner.ToCoordinates(0, i)); } - var generatorEnt = entityManager.SpawnEntity("GeneratorDummy", gridOwner.ToCoordinates()); - var consumerEnt = entityManager.SpawnEntity("ConsumerDummy", gridOwner.ToCoordinates(0, 2)); + var generatorEnt = entityManager.SpawnEntity("GeneratorDummy", grid.Owner.ToCoordinates()); + var consumerEnt = entityManager.SpawnEntity("ConsumerDummy", grid.Owner.ToCoordinates(0, 2)); supplier = entityManager.GetComponent(generatorEnt); consumer = entityManager.GetComponent(consumerEnt); @@ -378,6 +376,7 @@ public async Task TestBatteryRamp() var entityManager = server.ResolveDependency(); var gameTiming = server.ResolveDependency(); var batterySys = entityManager.System(); + var mapSys = entityManager.System(); const float startingCharge = 100_000; PowerNetworkBatteryComponent netBattery = default!; @@ -386,19 +385,18 @@ public async Task TestBatteryRamp() await server.WaitAssertion(() => { - var map = mapManager.CreateMap(); - var grid = mapManager.CreateGrid(map); - var gridOwner = grid.Owner; + var map = mapSys.CreateMap(out var mapId); + var grid = mapManager.CreateGridEntity(mapId); // Power only works when anchored for (var i = 0; i < 3; i++) { - grid.SetTile(new Vector2i(0, i), new Tile(1)); - entityManager.SpawnEntity("CableHV", gridOwner.ToCoordinates(0, i)); + mapSys.SetTile(grid, new Vector2i(0, i), new Tile(1)); + entityManager.SpawnEntity("CableHV", grid.Owner.ToCoordinates(0, i)); } - var generatorEnt = entityManager.SpawnEntity("DischargingBatteryDummy", gridOwner.ToCoordinates()); - var consumerEnt = entityManager.SpawnEntity("ConsumerDummy", gridOwner.ToCoordinates(0, 2)); + var generatorEnt = entityManager.SpawnEntity("DischargingBatteryDummy", grid.Owner.ToCoordinates()); + var consumerEnt = entityManager.SpawnEntity("ConsumerDummy", grid.Owner.ToCoordinates(0, 2)); netBattery = entityManager.GetComponent(generatorEnt); battery = entityManager.GetComponent(generatorEnt); @@ -479,6 +477,7 @@ public async Task TestNoDemandRampdown() var mapManager = server.ResolveDependency(); var entityManager = server.ResolveDependency(); var batterySys = entityManager.System(); + var mapSys = entityManager.System(); PowerSupplierComponent supplier = default!; PowerNetworkBatteryComponent netBattery = default!; BatteryComponent battery = default!; @@ -490,20 +489,19 @@ public async Task TestNoDemandRampdown() await server.WaitAssertion(() => { - var map = mapManager.CreateMap(); - var grid = mapManager.CreateGrid(map); - var gridOwner = grid.Owner; + var map = mapSys.CreateMap(out var mapId); + var grid = mapManager.CreateGridEntity(mapId); // Power only works when anchored for (var i = 0; i < 3; i++) { - grid.SetTile(new Vector2i(0, i), new Tile(1)); - entityManager.SpawnEntity("CableHV", gridOwner.ToCoordinates(0, i)); + mapSys.SetTile(grid, new Vector2i(0, i), new Tile(1)); + entityManager.SpawnEntity("CableHV", grid.Owner.ToCoordinates(0, i)); } - var generatorEnt = entityManager.SpawnEntity("GeneratorDummy", gridOwner.ToCoordinates()); - var consumerEnt = entityManager.SpawnEntity("ConsumerDummy", gridOwner.ToCoordinates(0, 1)); - var batteryEnt = entityManager.SpawnEntity("DischargingBatteryDummy", gridOwner.ToCoordinates(0, 2)); + var generatorEnt = entityManager.SpawnEntity("GeneratorDummy", grid.Owner.ToCoordinates()); + var consumerEnt = entityManager.SpawnEntity("ConsumerDummy", grid.Owner.ToCoordinates(0, 1)); + var batteryEnt = entityManager.SpawnEntity("DischargingBatteryDummy", grid.Owner.ToCoordinates(0, 2)); netBattery = entityManager.GetComponent(batteryEnt); battery = entityManager.GetComponent(batteryEnt); supplier = entityManager.GetComponent(generatorEnt); @@ -577,24 +575,24 @@ public async Task TestSimpleBatteryChargeDeficit() var gameTiming = server.ResolveDependency(); var entityManager = server.ResolveDependency(); var batterySys = entityManager.System(); + var mapSys = entityManager.System(); PowerSupplierComponent supplier = default!; BatteryComponent battery = default!; await server.WaitAssertion(() => { - var map = mapManager.CreateMap(); - var grid = mapManager.CreateGrid(map); - var gridOwner = grid.Owner; + var map = mapSys.CreateMap(out var mapId); + var grid = mapManager.CreateGridEntity(mapId); // Power only works when anchored for (var i = 0; i < 3; i++) { - grid.SetTile(new Vector2i(0, i), new Tile(1)); - entityManager.SpawnEntity("CableHV", gridOwner.ToCoordinates(0, i)); + mapSys.SetTile(grid, new Vector2i(0, i), new Tile(1)); + entityManager.SpawnEntity("CableHV", grid.Owner.ToCoordinates(0, i)); } - var generatorEnt = entityManager.SpawnEntity("GeneratorDummy", gridOwner.ToCoordinates()); - var batteryEnt = entityManager.SpawnEntity("ChargingBatteryDummy", gridOwner.ToCoordinates(0, 2)); + var generatorEnt = entityManager.SpawnEntity("GeneratorDummy", grid.Owner.ToCoordinates()); + var batteryEnt = entityManager.SpawnEntity("ChargingBatteryDummy", grid.Owner.ToCoordinates(0, 2)); supplier = entityManager.GetComponent(generatorEnt); var netBattery = entityManager.GetComponent(batteryEnt); @@ -634,6 +632,7 @@ public async Task TestFullBattery() var entityManager = server.ResolveDependency(); var gameTiming = server.ResolveDependency(); var batterySys = entityManager.System(); + var mapSys = entityManager.System(); PowerConsumerComponent consumer = default!; PowerSupplierComponent supplier = default!; PowerNetworkBatteryComponent netBattery = default!; @@ -641,23 +640,22 @@ public async Task TestFullBattery() await server.WaitAssertion(() => { - var map = mapManager.CreateMap(); - var grid = mapManager.CreateGrid(map); - var gridOwner = grid.Owner; + var map = mapSys.CreateMap(out var mapId); + var grid = mapManager.CreateGridEntity(mapId); // Power only works when anchored for (var i = 0; i < 4; i++) { - grid.SetTile(new Vector2i(0, i), new Tile(1)); - entityManager.SpawnEntity("CableHV", gridOwner.ToCoordinates(0, i)); + mapSys.SetTile(grid, new Vector2i(0, i), new Tile(1)); + entityManager.SpawnEntity("CableHV", grid.Owner.ToCoordinates(0, i)); } - var terminal = entityManager.SpawnEntity("CableTerminal", gridOwner.ToCoordinates(0, 1)); + var terminal = entityManager.SpawnEntity("CableTerminal", grid.Owner.ToCoordinates(0, 1)); entityManager.GetComponent(terminal).LocalRotation = Angle.FromDegrees(180); - var batteryEnt = entityManager.SpawnEntity("FullBatteryDummy", gridOwner.ToCoordinates(0, 2)); - var supplyEnt = entityManager.SpawnEntity("GeneratorDummy", gridOwner.ToCoordinates(0, 0)); - var consumerEnt = entityManager.SpawnEntity("ConsumerDummy", gridOwner.ToCoordinates(0, 3)); + var batteryEnt = entityManager.SpawnEntity("FullBatteryDummy", grid.Owner.ToCoordinates(0, 2)); + var supplyEnt = entityManager.SpawnEntity("GeneratorDummy", grid.Owner.ToCoordinates(0, 0)); + var consumerEnt = entityManager.SpawnEntity("ConsumerDummy", grid.Owner.ToCoordinates(0, 3)); consumer = entityManager.GetComponent(consumerEnt); supplier = entityManager.GetComponent(supplyEnt); @@ -712,6 +710,7 @@ public async Task TestFullBatteryEfficiencyPassThrough() var entityManager = server.ResolveDependency(); var gameTiming = server.ResolveDependency(); var batterySys = entityManager.System(); + var mapSys = entityManager.System(); PowerConsumerComponent consumer = default!; PowerSupplierComponent supplier = default!; PowerNetworkBatteryComponent netBattery = default!; @@ -719,23 +718,22 @@ public async Task TestFullBatteryEfficiencyPassThrough() await server.WaitAssertion(() => { - var map = mapManager.CreateMap(); - var grid = mapManager.CreateGrid(map); - var gridOwner = grid.Owner; + var map = mapSys.CreateMap(out var mapId); + var grid = mapManager.CreateGridEntity(mapId); // Power only works when anchored for (var i = 0; i < 4; i++) { - grid.SetTile(new Vector2i(0, i), new Tile(1)); - entityManager.SpawnEntity("CableHV", gridOwner.ToCoordinates(0, i)); + mapSys.SetTile(grid, new Vector2i(0, i), new Tile(1)); + entityManager.SpawnEntity("CableHV", grid.Owner.ToCoordinates(0, i)); } - var terminal = entityManager.SpawnEntity("CableTerminal", gridOwner.ToCoordinates(0, 1)); + var terminal = entityManager.SpawnEntity("CableTerminal", grid.Owner.ToCoordinates(0, 1)); entityManager.GetComponent(terminal).LocalRotation = Angle.FromDegrees(180); - var batteryEnt = entityManager.SpawnEntity("FullBatteryDummy", gridOwner.ToCoordinates(0, 2)); - var supplyEnt = entityManager.SpawnEntity("GeneratorDummy", gridOwner.ToCoordinates(0, 0)); - var consumerEnt = entityManager.SpawnEntity("ConsumerDummy", gridOwner.ToCoordinates(0, 3)); + var batteryEnt = entityManager.SpawnEntity("FullBatteryDummy", grid.Owner.ToCoordinates(0, 2)); + var supplyEnt = entityManager.SpawnEntity("GeneratorDummy", grid.Owner.ToCoordinates(0, 0)); + var consumerEnt = entityManager.SpawnEntity("ConsumerDummy", grid.Owner.ToCoordinates(0, 3)); consumer = entityManager.GetComponent(consumerEnt); supplier = entityManager.GetComponent(supplyEnt); @@ -789,15 +787,15 @@ public async Task TestFullBatteryEfficiencyDemandPassThrough() var mapManager = server.ResolveDependency(); var entityManager = server.ResolveDependency(); var batterySys = entityManager.System(); + var mapSys = entityManager.System(); PowerConsumerComponent consumer1 = default!; PowerConsumerComponent consumer2 = default!; PowerSupplierComponent supplier = default!; await server.WaitAssertion(() => { - var map = mapManager.CreateMap(); - var grid = mapManager.CreateGrid(map); - var gridOwner = grid.Owner; + var map = mapSys.CreateMap(out var mapId); + var grid = mapManager.CreateGridEntity(mapId); // Map layout here is // C - consumer @@ -810,19 +808,19 @@ await server.WaitAssertion(() => // Power only works when anchored for (var i = 0; i < 5; i++) { - grid.SetTile(new Vector2i(0, i), new Tile(1)); - entityManager.SpawnEntity("CableHV", gridOwner.ToCoordinates(0, i)); + mapSys.SetTile(grid, new Vector2i(0, i), new Tile(1)); + entityManager.SpawnEntity("CableHV", grid.Owner.ToCoordinates(0, i)); } - entityManager.SpawnEntity("CableTerminal", gridOwner.ToCoordinates(0, 2)); - var terminal = entityManager.SpawnEntity("CableTerminal", gridOwner.ToCoordinates(0, 2)); + entityManager.SpawnEntity("CableTerminal", grid.Owner.ToCoordinates(0, 2)); + var terminal = entityManager.SpawnEntity("CableTerminal", grid.Owner.ToCoordinates(0, 2)); entityManager.GetComponent(terminal).LocalRotation = Angle.FromDegrees(180); - var batteryEnt1 = entityManager.SpawnEntity("FullBatteryDummy", gridOwner.ToCoordinates(0, 1)); - var batteryEnt2 = entityManager.SpawnEntity("FullBatteryDummy", gridOwner.ToCoordinates(0, 3)); - var supplyEnt = entityManager.SpawnEntity("GeneratorDummy", gridOwner.ToCoordinates(0, 2)); - var consumerEnt1 = entityManager.SpawnEntity("ConsumerDummy", gridOwner.ToCoordinates(0, 0)); - var consumerEnt2 = entityManager.SpawnEntity("ConsumerDummy", gridOwner.ToCoordinates(0, 4)); + var batteryEnt1 = entityManager.SpawnEntity("FullBatteryDummy", grid.Owner.ToCoordinates(0, 1)); + var batteryEnt2 = entityManager.SpawnEntity("FullBatteryDummy", grid.Owner.ToCoordinates(0, 3)); + var supplyEnt = entityManager.SpawnEntity("GeneratorDummy", grid.Owner.ToCoordinates(0, 2)); + var consumerEnt1 = entityManager.SpawnEntity("ConsumerDummy", grid.Owner.ToCoordinates(0, 0)); + var consumerEnt2 = entityManager.SpawnEntity("ConsumerDummy", grid.Owner.ToCoordinates(0, 4)); consumer1 = entityManager.GetComponent(consumerEnt1); consumer2 = entityManager.GetComponent(consumerEnt2); @@ -887,6 +885,7 @@ public async Task TestSupplyPrioritized() var entityManager = server.ResolveDependency(); var gameTiming = server.ResolveDependency(); var batterySys = entityManager.System(); + var mapSys = entityManager.System(); PowerConsumerComponent consumer = default!; PowerSupplierComponent supplier1 = default!; PowerSupplierComponent supplier2 = default!; @@ -897,9 +896,8 @@ public async Task TestSupplyPrioritized() await server.WaitAssertion(() => { - var map = mapManager.CreateMap(); - var grid = mapManager.CreateGrid(map); - var gridOwner = grid.Owner; + var map = mapSys.CreateMap(out var mapId); + var grid = mapManager.CreateGridEntity(mapId); // Layout is two generators, two batteries, and one load. As to why two: because previously this test // would fail ONLY if there were more than two batteries present, because each of them tries to supply @@ -911,17 +909,17 @@ await server.WaitAssertion(() => // Place cables for (var i = -2; i <= 2; i++) { - grid.SetTile(new Vector2i(0, i), new Tile(1)); - entityManager.SpawnEntity("CableHV", gridOwner.ToCoordinates(0, i)); + mapSys.SetTile(grid, new Vector2i(0, i), new Tile(1)); + entityManager.SpawnEntity("CableHV", grid.Owner.ToCoordinates(0, i)); } - var batteryEnt1 = entityManager.SpawnEntity("FullBatteryDummy", gridOwner.ToCoordinates(0, 2)); - var batteryEnt2 = entityManager.SpawnEntity("FullBatteryDummy", gridOwner.ToCoordinates(0, -2)); + var batteryEnt1 = entityManager.SpawnEntity("FullBatteryDummy", grid.Owner.ToCoordinates(0, 2)); + var batteryEnt2 = entityManager.SpawnEntity("FullBatteryDummy", grid.Owner.ToCoordinates(0, -2)); - var supplyEnt1 = entityManager.SpawnEntity("GeneratorDummy", gridOwner.ToCoordinates(0, 1)); - var supplyEnt2 = entityManager.SpawnEntity("GeneratorDummy", gridOwner.ToCoordinates(0, -1)); + var supplyEnt1 = entityManager.SpawnEntity("GeneratorDummy", grid.Owner.ToCoordinates(0, 1)); + var supplyEnt2 = entityManager.SpawnEntity("GeneratorDummy", grid.Owner.ToCoordinates(0, -1)); - var consumerEnt = entityManager.SpawnEntity("ConsumerDummy", gridOwner.ToCoordinates(0, 0)); + var consumerEnt = entityManager.SpawnEntity("ConsumerDummy", grid.Owner.ToCoordinates(0, 0)); consumer = entityManager.GetComponent(consumerEnt); supplier1 = entityManager.GetComponent(supplyEnt1); @@ -985,15 +983,15 @@ public async Task TestBatteriesProportional() var mapManager = server.ResolveDependency(); var entityManager = server.ResolveDependency(); var batterySys = entityManager.System(); + var mapSys = entityManager.System(); PowerConsumerComponent consumer1 = default!; PowerConsumerComponent consumer2 = default!; PowerSupplierComponent supplier = default!; await server.WaitAssertion(() => { - var map = mapManager.CreateMap(); - var grid = mapManager.CreateGrid(map); - var gridOwner = grid.Owner; + var map = mapSys.CreateMap(out var mapId); + var grid = mapManager.CreateGridEntity(mapId); // Map layout here is // C - consumer @@ -1006,19 +1004,19 @@ await server.WaitAssertion(() => // Power only works when anchored for (var i = 0; i < 5; i++) { - grid.SetTile(new Vector2i(0, i), new Tile(1)); - entityManager.SpawnEntity("CableHV", gridOwner.ToCoordinates(0, i)); + mapSys.SetTile(grid, new Vector2i(0, i), new Tile(1)); + entityManager.SpawnEntity("CableHV", grid.Owner.ToCoordinates(0, i)); } - entityManager.SpawnEntity("CableTerminal", gridOwner.ToCoordinates(0, 2)); - var terminal = entityManager.SpawnEntity("CableTerminal", gridOwner.ToCoordinates(0, 2)); + entityManager.SpawnEntity("CableTerminal", grid.Owner.ToCoordinates(0, 2)); + var terminal = entityManager.SpawnEntity("CableTerminal", grid.Owner.ToCoordinates(0, 2)); entityManager.GetComponent(terminal).LocalRotation = Angle.FromDegrees(180); - var batteryEnt1 = entityManager.SpawnEntity("FullBatteryDummy", gridOwner.ToCoordinates(0, 1)); - var batteryEnt2 = entityManager.SpawnEntity("FullBatteryDummy", gridOwner.ToCoordinates(0, 3)); - var supplyEnt = entityManager.SpawnEntity("GeneratorDummy", gridOwner.ToCoordinates(0, 2)); - var consumerEnt1 = entityManager.SpawnEntity("ConsumerDummy", gridOwner.ToCoordinates(0, 0)); - var consumerEnt2 = entityManager.SpawnEntity("ConsumerDummy", gridOwner.ToCoordinates(0, 4)); + var batteryEnt1 = entityManager.SpawnEntity("FullBatteryDummy", grid.Owner.ToCoordinates(0, 1)); + var batteryEnt2 = entityManager.SpawnEntity("FullBatteryDummy", grid.Owner.ToCoordinates(0, 3)); + var supplyEnt = entityManager.SpawnEntity("GeneratorDummy", grid.Owner.ToCoordinates(0, 2)); + var consumerEnt1 = entityManager.SpawnEntity("ConsumerDummy", grid.Owner.ToCoordinates(0, 0)); + var consumerEnt2 = entityManager.SpawnEntity("ConsumerDummy", grid.Owner.ToCoordinates(0, 4)); consumer1 = entityManager.GetComponent(consumerEnt1); consumer2 = entityManager.GetComponent(consumerEnt2); @@ -1073,29 +1071,29 @@ public async Task TestBatteryEngineCut() var mapManager = server.ResolveDependency(); var entityManager = server.ResolveDependency(); var batterySys = entityManager.System(); + var mapSys = entityManager.System(); PowerConsumerComponent consumer = default!; PowerSupplierComponent supplier = default!; PowerNetworkBatteryComponent netBattery = default!; await server.WaitPost(() => { - var map = mapManager.CreateMap(); - var grid = mapManager.CreateGrid(map); - var gridOwner = grid.Owner; + var map = mapSys.CreateMap(out var mapId); + var grid = mapManager.CreateGridEntity(mapId); // Power only works when anchored for (var i = 0; i < 4; i++) { - grid.SetTile(new Vector2i(0, i), new Tile(1)); - entityManager.SpawnEntity("CableHV", gridOwner.ToCoordinates(0, i)); + mapSys.SetTile(grid, new Vector2i(0, i), new Tile(1)); + entityManager.SpawnEntity("CableHV", grid.Owner.ToCoordinates(0, i)); } - var terminal = entityManager.SpawnEntity("CableTerminal", gridOwner.ToCoordinates(0, 1)); + var terminal = entityManager.SpawnEntity("CableTerminal", grid.Owner.ToCoordinates(0, 1)); entityManager.GetComponent(terminal).LocalRotation = Angle.FromDegrees(180); - var batteryEnt = entityManager.SpawnEntity("FullBatteryDummy", gridOwner.ToCoordinates(0, 2)); - var supplyEnt = entityManager.SpawnEntity("GeneratorDummy", gridOwner.ToCoordinates(0, 0)); - var consumerEnt = entityManager.SpawnEntity("ConsumerDummy", gridOwner.ToCoordinates(0, 3)); + var batteryEnt = entityManager.SpawnEntity("FullBatteryDummy", grid.Owner.ToCoordinates(0, 2)); + var supplyEnt = entityManager.SpawnEntity("GeneratorDummy", grid.Owner.ToCoordinates(0, 0)); + var consumerEnt = entityManager.SpawnEntity("ConsumerDummy", grid.Owner.ToCoordinates(0, 3)); consumer = entityManager.GetComponent(consumerEnt); supplier = entityManager.GetComponent(supplyEnt); @@ -1158,6 +1156,7 @@ public async Task TestTerminalNodeGroups() var mapManager = server.ResolveDependency(); var entityManager = server.ResolveDependency(); var nodeContainer = entityManager.System(); + var mapSys = entityManager.System(); CableNode leftNode = default!; CableNode rightNode = default!; Node batteryInput = default!; @@ -1165,25 +1164,24 @@ public async Task TestTerminalNodeGroups() await server.WaitAssertion(() => { - var map = mapManager.CreateMap(); - var grid = mapManager.CreateGrid(map); - var gridOwner = grid.Owner; + var map = mapSys.CreateMap(out var mapId); + var grid = mapManager.CreateGridEntity(mapId); // Power only works when anchored for (var i = 0; i < 4; i++) { - grid.SetTile(new Vector2i(0, i), new Tile(1)); + mapSys.SetTile(grid, new Vector2i(0, i), new Tile(1)); } - var leftEnt = entityManager.SpawnEntity("CableHV", gridOwner.ToCoordinates(0, 0)); - entityManager.SpawnEntity("CableHV", gridOwner.ToCoordinates(0, 1)); - entityManager.SpawnEntity("CableHV", gridOwner.ToCoordinates(0, 2)); - var rightEnt = entityManager.SpawnEntity("CableHV", gridOwner.ToCoordinates(0, 3)); + var leftEnt = entityManager.SpawnEntity("CableHV", grid.Owner.ToCoordinates(0, 0)); + entityManager.SpawnEntity("CableHV", grid.Owner.ToCoordinates(0, 1)); + entityManager.SpawnEntity("CableHV", grid.Owner.ToCoordinates(0, 2)); + var rightEnt = entityManager.SpawnEntity("CableHV", grid.Owner.ToCoordinates(0, 3)); - var terminal = entityManager.SpawnEntity("CableTerminal", gridOwner.ToCoordinates(0, 1)); + var terminal = entityManager.SpawnEntity("CableTerminal", grid.Owner.ToCoordinates(0, 1)); entityManager.GetComponent(terminal).LocalRotation = Angle.FromDegrees(180); - var battery = entityManager.SpawnEntity("FullBatteryDummy", gridOwner.ToCoordinates(0, 2)); + var battery = entityManager.SpawnEntity("FullBatteryDummy", grid.Owner.ToCoordinates(0, 2)); var batteryNodeContainer = entityManager.GetComponent(battery); if (nodeContainer.TryGetNode(entityManager.GetComponent(leftEnt), @@ -1224,29 +1222,29 @@ public async Task ApcChargingTest() var mapManager = server.ResolveDependency(); var entityManager = server.ResolveDependency(); var batterySys = entityManager.System(); + var mapSys = entityManager.System(); PowerNetworkBatteryComponent substationNetBattery = default!; BatteryComponent apcBattery = default!; await server.WaitAssertion(() => { - var map = mapManager.CreateMap(); - var grid = mapManager.CreateGrid(map); - var gridOwner = grid.Owner; + var map = mapSys.CreateMap(out var mapId); + var grid = mapManager.CreateGridEntity(mapId); // Power only works when anchored for (var i = 0; i < 3; i++) { - grid.SetTile(new Vector2i(0, i), new Tile(1)); + mapSys.SetTile(grid, new Vector2i(0, i), new Tile(1)); } - entityManager.SpawnEntity("CableHV", gridOwner.ToCoordinates(0, 0)); - entityManager.SpawnEntity("CableHV", gridOwner.ToCoordinates(0, 1)); - entityManager.SpawnEntity("CableMV", gridOwner.ToCoordinates(0, 1)); - entityManager.SpawnEntity("CableMV", gridOwner.ToCoordinates(0, 2)); + entityManager.SpawnEntity("CableHV", grid.Owner.ToCoordinates(0, 0)); + entityManager.SpawnEntity("CableHV", grid.Owner.ToCoordinates(0, 1)); + entityManager.SpawnEntity("CableMV", grid.Owner.ToCoordinates(0, 1)); + entityManager.SpawnEntity("CableMV", grid.Owner.ToCoordinates(0, 2)); - var generatorEnt = entityManager.SpawnEntity("GeneratorDummy", gridOwner.ToCoordinates(0, 0)); - var substationEnt = entityManager.SpawnEntity("SubstationDummy", gridOwner.ToCoordinates(0, 1)); - var apcEnt = entityManager.SpawnEntity("ApcDummy", gridOwner.ToCoordinates(0, 2)); + var generatorEnt = entityManager.SpawnEntity("GeneratorDummy", grid.Owner.ToCoordinates(0, 0)); + var substationEnt = entityManager.SpawnEntity("SubstationDummy", grid.Owner.ToCoordinates(0, 1)); + var apcEnt = entityManager.SpawnEntity("ApcDummy", grid.Owner.ToCoordinates(0, 2)); var generatorSupplier = entityManager.GetComponent(generatorEnt); substationNetBattery = entityManager.GetComponent(substationEnt); @@ -1281,33 +1279,33 @@ public async Task ApcNetTest() var entityManager = server.ResolveDependency(); var batterySys = entityManager.System(); var extensionCableSystem = entityManager.System(); + var mapSys = entityManager.System(); PowerNetworkBatteryComponent apcNetBattery = default!; ApcPowerReceiverComponent receiver = default!; ApcPowerReceiverComponent unpoweredReceiver = default!; await server.WaitAssertion(() => { - var map = mapManager.CreateMap(); - var grid = mapManager.CreateGrid(map); - var gridOwner = grid.Owner; + var map = mapSys.CreateMap(out var mapId); + var grid = mapManager.CreateGridEntity(mapId); const int range = 5; // Power only works when anchored for (var i = 0; i < range; i++) { - grid.SetTile(new Vector2i(0, i), new Tile(1)); + mapSys.SetTile(grid, new Vector2i(0, i), new Tile(1)); } - var apcEnt = entityManager.SpawnEntity("ApcDummy", gridOwner.ToCoordinates(0, 0)); - var apcExtensionEnt = entityManager.SpawnEntity("CableApcExtension", gridOwner.ToCoordinates(0, 0)); + var apcEnt = entityManager.SpawnEntity("ApcDummy", grid.Owner.ToCoordinates(0, 0)); + var apcExtensionEnt = entityManager.SpawnEntity("CableApcExtension", grid.Owner.ToCoordinates(0, 0)); // Create a powered receiver in range (range is 0 indexed) - var powerReceiverEnt = entityManager.SpawnEntity("ApcPowerReceiverDummy", gridOwner.ToCoordinates(0, range - 1)); + var powerReceiverEnt = entityManager.SpawnEntity("ApcPowerReceiverDummy", grid.Owner.ToCoordinates(0, range - 1)); receiver = entityManager.GetComponent(powerReceiverEnt); // Create an unpowered receiver outside range - var unpoweredReceiverEnt = entityManager.SpawnEntity("ApcPowerReceiverDummy", gridOwner.ToCoordinates(0, range)); + var unpoweredReceiverEnt = entityManager.SpawnEntity("ApcPowerReceiverDummy", grid.Owner.ToCoordinates(0, range)); unpoweredReceiver = entityManager.GetComponent(unpoweredReceiverEnt); var battery = entityManager.GetComponent(apcEnt); diff --git a/Content.IntegrationTests/Tests/PrototypeSaveTest.cs b/Content.IntegrationTests/Tests/PrototypeSaveTest.cs index 9e26fa5eaa2..1ef34365ea3 100644 --- a/Content.IntegrationTests/Tests/PrototypeSaveTest.cs +++ b/Content.IntegrationTests/Tests/PrototypeSaveTest.cs @@ -40,6 +40,7 @@ public async Task UninitializedSaveTest() var prototypeMan = server.ResolveDependency(); var seriMan = server.ResolveDependency(); var compFact = server.ResolveDependency(); + var mapSystem = server.System(); var prototypes = new List(); EntityUid uid; @@ -77,7 +78,7 @@ public async Task UninitializedSaveTest() await server.WaitAssertion(() => { - Assert.That(!mapManager.IsMapInitialized(mapId)); + Assert.That(!mapSystem.IsInitialized(mapId)); var testLocation = grid.Owner.ToCoordinates(); Assert.Multiple(() => @@ -184,7 +185,7 @@ public DataNode Write(ISerializationManager serializationManager, EntityUid valu IDependencyCollection dependencies, bool alwaysWrite = false, ISerializationContext? context = null) { - if (WritingComponent != "Transform" && (Prototype?.NoSpawn == false)) + if (WritingComponent != "Transform" && Prototype?.HideSpawnMenu == false) { // Maybe this will be necessary in the future, but at the moment it just indicates that there is some // issue, like a non-nullable entityUid data-field. If a component MUST have an entity uid to work with, diff --git a/Content.IntegrationTests/Tests/Puller/PullerTest.cs b/Content.IntegrationTests/Tests/Puller/PullerTest.cs index 87d174f7272..a4fde86dbfb 100644 --- a/Content.IntegrationTests/Tests/Puller/PullerTest.cs +++ b/Content.IntegrationTests/Tests/Puller/PullerTest.cs @@ -29,7 +29,7 @@ await server.WaitAssertion(() => { foreach (var proto in protoManager.EnumeratePrototypes()) { - if (!proto.TryGetComponent(out PullerComponent? puller)) + if (!proto.TryGetComponent(out PullerComponent? puller, compFactory)) continue; if (!puller.NeedsHands) diff --git a/Content.IntegrationTests/Tests/ResearchTest.cs b/Content.IntegrationTests/Tests/ResearchTest.cs index ee319daa436..7ae29a79ffd 100644 --- a/Content.IntegrationTests/Tests/ResearchTest.cs +++ b/Content.IntegrationTests/Tests/ResearchTest.cs @@ -2,6 +2,7 @@ using System.Linq; using Content.Shared.Lathe; using Content.Shared.Research.Prototypes; +using Robust.Shared.GameObjects; using Robust.Shared.Prototypes; namespace Content.IntegrationTests.Tests; @@ -52,6 +53,7 @@ public async Task AllTechPrintableTest() var server = pair.Server; var protoManager = server.ResolveDependency(); + var compFact = server.ResolveDependency(); await server.WaitAssertion(() => { @@ -65,7 +67,7 @@ await server.WaitAssertion(() => if (pair.IsTestPrototype(proto)) continue; - if (!proto.TryGetComponent(out var lathe)) + if (!proto.TryGetComponent(out var lathe, compFact)) continue; allLathes.Add(lathe); } diff --git a/Content.IntegrationTests/Tests/SalvageTest.cs b/Content.IntegrationTests/Tests/SalvageTest.cs index 9d75428beb7..5dfba82308f 100644 --- a/Content.IntegrationTests/Tests/SalvageTest.cs +++ b/Content.IntegrationTests/Tests/SalvageTest.cs @@ -1,5 +1,4 @@ using System.Linq; -using Content.Server.Salvage; using Content.Shared.CCVar; using Content.Shared.Salvage; using Robust.Server.GameObjects; @@ -28,6 +27,7 @@ public async Task AllSalvageMapsLoadableTest() var mapManager = server.ResolveDependency(); var prototypeManager = server.ResolveDependency(); var cfg = server.ResolveDependency(); + var mapSystem = entManager.System(); Assert.That(cfg.GetCVar(CCVars.GridFill), Is.False); await server.WaitPost(() => @@ -36,7 +36,7 @@ await server.WaitPost(() => { var mapFile = salvage.MapPath; - var mapId = mapManager.CreateMap(); + mapSystem.CreateMap(out var mapId); try { Assert.That(mapLoader.TryLoad(mapId, mapFile.ToString(), out var roots)); diff --git a/Content.IntegrationTests/Tests/SaveLoadMapTest.cs b/Content.IntegrationTests/Tests/SaveLoadMapTest.cs index db2109ca599..213da5d7862 100644 --- a/Content.IntegrationTests/Tests/SaveLoadMapTest.cs +++ b/Content.IntegrationTests/Tests/SaveLoadMapTest.cs @@ -23,6 +23,7 @@ public async Task SaveLoadMultiGridMap() var mapManager = server.ResolveDependency(); var sEntities = server.ResolveDependency(); var mapLoader = sEntities.System(); + var mapSystem = sEntities.System(); var xformSystem = sEntities.EntitySysManager.GetEntitySystem(); var resManager = server.ResolveDependency(); var cfg = server.ResolveDependency(); @@ -33,19 +34,17 @@ await server.WaitAssertion(() => var dir = new ResPath(mapPath).Directory; resManager.UserData.CreateDir(dir); - var mapId = mapManager.CreateMap(); + mapSystem.CreateMap(out var mapId); { - var mapGrid = mapManager.CreateGrid(mapId); - var mapGridEnt = mapGrid.Owner; - xformSystem.SetWorldPosition(mapGridEnt, new Vector2(10, 10)); - mapGrid.SetTile(new Vector2i(0, 0), new Tile(1, (TileRenderFlag) 1, 255)); + var mapGrid = mapManager.CreateGridEntity(mapId); + xformSystem.SetWorldPosition(mapGrid, new Vector2(10, 10)); + mapSystem.SetTile(mapGrid, new Vector2i(0, 0), new Tile(1, (TileRenderFlag) 1, 255)); } { - var mapGrid = mapManager.CreateGrid(mapId); - var mapGridEnt = mapGrid.Owner; - xformSystem.SetWorldPosition(mapGridEnt, new Vector2(-8, -8)); - mapGrid.SetTile(new Vector2i(0, 0), new Tile(2, (TileRenderFlag) 1, 254)); + var mapGrid = mapManager.CreateGridEntity(mapId); + xformSystem.SetWorldPosition(mapGrid, new Vector2(-8, -8)); + mapSystem.SetTile(mapGrid, new Vector2i(0, 0), new Tile(2, (TileRenderFlag) 1, 254)); } Assert.Multiple(() => mapLoader.SaveMap(mapId, mapPath)); @@ -74,7 +73,7 @@ await server.WaitAssertion(() => Assert.Multiple(() => { Assert.That(xformSystem.GetWorldPosition(gridXform), Is.EqualTo(new Vector2(10, 10))); - Assert.That(mapGrid.GetTileRef(new Vector2i(0, 0)).Tile, Is.EqualTo(new Tile(1, (TileRenderFlag) 1, 255))); + Assert.That(mapSystem.GetTileRef(gridUid, mapGrid, new Vector2i(0, 0)).Tile, Is.EqualTo(new Tile(1, (TileRenderFlag) 1, 255))); }); } { @@ -88,7 +87,7 @@ await server.WaitAssertion(() => Assert.Multiple(() => { Assert.That(xformSystem.GetWorldPosition(gridXform), Is.EqualTo(new Vector2(-8, -8))); - Assert.That(mapGrid.GetTileRef(new Vector2i(0, 0)).Tile, Is.EqualTo(new Tile(2, (TileRenderFlag) 1, 254))); + Assert.That(mapSystem.GetTileRef(gridUid, mapGrid, new Vector2i(0, 0)).Tile, Is.EqualTo(new Tile(2, (TileRenderFlag) 1, 254))); }); } }); diff --git a/Content.IntegrationTests/Tests/SaveLoadSaveTest.cs b/Content.IntegrationTests/Tests/SaveLoadSaveTest.cs index 01c03aace71..af60db55322 100644 --- a/Content.IntegrationTests/Tests/SaveLoadSaveTest.cs +++ b/Content.IntegrationTests/Tests/SaveLoadSaveTest.cs @@ -25,17 +25,18 @@ public async Task SaveLoadSave() var server = pair.Server; var entManager = server.ResolveDependency(); var mapLoader = entManager.System(); + var mapSystem = entManager.System(); var mapManager = server.ResolveDependency(); var cfg = server.ResolveDependency(); Assert.That(cfg.GetCVar(CCVars.GridFill), Is.False); await server.WaitPost(() => { - var mapId0 = mapManager.CreateMap(); + mapSystem.CreateMap(out var mapId0); // TODO: Properly find the "main" station grid. - var grid0 = mapManager.CreateGrid(mapId0); + var grid0 = mapManager.CreateGridEntity(mapId0); mapLoader.Save(grid0.Owner, "save load save 1.yml"); - var mapId1 = mapManager.CreateMap(); + mapSystem.CreateMap(out var mapId1); EntityUid grid1 = default!; #pragma warning disable NUnit2045 Assert.That(mapLoader.TryLoad(mapId1, "save load save 1.yml", out var roots, new MapLoadOptions() { LoadMap = false }), $"Failed to load test map {TestMap}"); @@ -101,6 +102,7 @@ public async Task LoadSaveTicksSavePebble() var server = pair.Server; var mapLoader = server.ResolveDependency().GetEntitySystem(); var mapManager = server.ResolveDependency(); + var mapSystem = server.System(); MapId mapId = default; var cfg = server.ResolveDependency(); @@ -109,8 +111,7 @@ public async Task LoadSaveTicksSavePebble() // Load pebble.yml as uninitialized map, and save it to ensure it's up to date. server.Post(() => { - mapId = mapManager.CreateMap(); - mapManager.AddUninitializedMap(mapId); + mapSystem.CreateMap(out mapId, runMapInit: false); mapManager.SetMapPaused(mapId, true); Assert.That(mapLoader.TryLoad(mapId, TestMap, out _), $"Failed to load test map {TestMap}"); mapLoader.SaveMap(mapId, "load save ticks save 1.yml"); @@ -182,7 +183,8 @@ public async Task LoadTickLoadPebble() await using var pair = await PoolManager.GetServerClient(); var server = pair.Server; - var mapLoader = server.ResolveDependency().GetEntitySystem(); + var mapLoader = server.System(); + var mapSystem = server.System(); var mapManager = server.ResolveDependency(); var userData = server.ResolveDependency().UserData; var cfg = server.ResolveDependency(); @@ -197,8 +199,7 @@ public async Task LoadTickLoadPebble() // Load & save the first map server.Post(() => { - mapId = mapManager.CreateMap(); - mapManager.AddUninitializedMap(mapId); + mapSystem.CreateMap(out mapId, runMapInit: false); mapManager.SetMapPaused(mapId, true); Assert.That(mapLoader.TryLoad(mapId, TestMap, out _), $"Failed to load test map {TestMap}"); mapLoader.SaveMap(mapId, fileA); @@ -217,8 +218,7 @@ public async Task LoadTickLoadPebble() server.Post(() => { mapManager.DeleteMap(mapId); - mapManager.CreateMap(mapId); - mapManager.AddUninitializedMap(mapId); + mapSystem.CreateMap(out mapId, runMapInit: false); mapManager.SetMapPaused(mapId, true); Assert.That(mapLoader.TryLoad(mapId, TestMap, out _), $"Failed to load test map {TestMap}"); mapLoader.SaveMap(mapId, fileB); diff --git a/Content.IntegrationTests/Tests/Serialization/SerializationTest.cs b/Content.IntegrationTests/Tests/Serialization/SerializationTest.cs index 052ea997c0d..339420362c1 100644 --- a/Content.IntegrationTests/Tests/Serialization/SerializationTest.cs +++ b/Content.IntegrationTests/Tests/Serialization/SerializationTest.cs @@ -24,7 +24,7 @@ public async Task SerializeGenericEnums() Enum value = TestEnum.Bb; - var node = seriMan.WriteValue(value, notNullableOverride:true); + var node = seriMan.WriteValue(value, notNullableOverride: true); var valueNode = node as ValueDataNode; Assert.That(valueNode, Is.Not.Null); @@ -34,22 +34,22 @@ public async Task SerializeGenericEnums() var errors = seriMan.ValidateNode(valueNode).GetErrors(); Assert.That(errors.Any(), Is.False); - var deserialized = seriMan.Read(node, notNullableOverride:true); + var deserialized = seriMan.Read(node, notNullableOverride: true); Assert.That(deserialized, Is.EqualTo(value)); // Repeat test with enums in a data definitions. var data = new TestData { Value = TestEnum.Cc, - Sequence = new() {TestEnum.Dd, TestEnum.Aa} + Sequence = [TestEnum.Dd, TestEnum.Aa] }; - node = seriMan.WriteValue(data, notNullableOverride:true); + node = seriMan.WriteValue(data, notNullableOverride: true); errors = seriMan.ValidateNode(node).GetErrors(); Assert.That(errors.Any(), Is.False); - var deserializedData = seriMan.Read(node, notNullableOverride:false); + var deserializedData = seriMan.Read(node, notNullableOverride: false); Assert.That(deserializedData.Value, Is.EqualTo(data.Value)); Assert.That(deserializedData.Sequence.Count, Is.EqualTo(data.Sequence.Count)); @@ -60,7 +60,7 @@ public async Task SerializeGenericEnums() Enum genericValue = TestEnum.Bb; TestEnum typedValue = TestEnum.Bb; - var genericNode = seriMan.WriteValue(genericValue, notNullableOverride:true); + var genericNode = seriMan.WriteValue(genericValue, notNullableOverride: true); var typedNode = seriMan.WriteValue(typedValue); Assert.That(seriMan.ValidateNode(genericNode).GetErrors().Any(), Is.False); @@ -76,7 +76,7 @@ private enum TestEnum : byte { Aa, Bb, Cc, Dd } [DataDefinition] private sealed partial class TestData { - [DataField("value")] public Enum Value = default!; - [DataField("sequence")] public List Sequence = default!; + [DataField] public Enum Value = default!; + [DataField] public List Sequence = default!; } } diff --git a/Content.IntegrationTests/Tests/Shitmed/Body/SpeciesBUiTest.cs b/Content.IntegrationTests/Tests/Shitmed/Body/SpeciesBUiTest.cs new file mode 100644 index 00000000000..4bacd491fb9 --- /dev/null +++ b/Content.IntegrationTests/Tests/Shitmed/Body/SpeciesBUiTest.cs @@ -0,0 +1,63 @@ +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using Content.Shared.Humanoid.Prototypes; +using Robust.Shared.GameObjects; +using Robust.Shared.Prototypes; + +namespace Content.IntegrationTests.Tests.Shitmed.Body; + +[TestFixture] +public sealed class SpeciesBUiTest +{ + [TestPrototypes] + private const string Prototypes = @" +- type: entity + name: BaseMobSpeciesTest + id: BaseMobSpeciesTest + parent: BaseMobSpecies +"; + + private Dictionary GetInterfaces(UserInterfaceComponent comp) => + (Dictionary) + typeof(UserInterfaceComponent).GetField("Interfaces", BindingFlags.NonPublic | BindingFlags.Instance)! + .GetValue(comp); + + [Test] + public async Task AllSpeciesHaveBaseBUiTest() + { + await using var pair = await PoolManager.GetServerClient(new PoolSettings + { + Dirty = true, + Connected = false + }); + + var server = pair.Server; + var proto = server.ResolveDependency(); + var factoryComp = server.ResolveDependency(); + + await server.WaitAssertion(() => + { + var bUiSys = server.System(); + + Assert.That(proto.TryIndex("BaseMobSpeciesTest", out var baseEnt), Is.True); + Assert.That(baseEnt, Is.Not.Null); + Assert.That(baseEnt.TryGetComponent(out var bUiBase, factoryComp), Is.True); + Assert.That(bUiBase, Is.Not.Null); + var baseKeys = GetInterfaces(bUiBase).Keys.ToArray(); + + foreach (var species in proto.EnumeratePrototypes()) + { + var ent = proto.Index(species.Prototype); + Assert.That(ent.TryGetComponent(out var bUi, factoryComp), Is.True); + Assert.That(bUi, Is.Not.Null); + var states = GetInterfaces(bUiBase); + foreach (var key in baseKeys) + { + Assert.That(states.ContainsKey(key), Is.True, $"Species {species.ID} has not UserInterface of type enum.{key.GetType().Name}"); + } + } + }); + await pair.CleanReturnAsync(); + } +} diff --git a/Content.IntegrationTests/Tests/Shuttle/DockTest.cs b/Content.IntegrationTests/Tests/Shuttle/DockTest.cs index a1aa462a697..d91d18793e5 100644 --- a/Content.IntegrationTests/Tests/Shuttle/DockTest.cs +++ b/Content.IntegrationTests/Tests/Shuttle/DockTest.cs @@ -97,13 +97,14 @@ public async Task TestPlanetDock() var entManager = server.ResolveDependency(); var dockingSystem = entManager.System(); var mapSystem = entManager.System(); + MapGridComponent mapGrid = default!; - var mapGrid = entManager.AddComponent(map.MapUid); var shuttle = EntityUid.Invalid; // Spawn shuttle and affirm no valid docks. await server.WaitAssertion(() => { + mapGrid = entManager.AddComponent(map.MapUid); entManager.DeleteEntity(map.Grid); Assert.That(entManager.System().TryLoad(otherMap.MapId, "/Maps/Shuttles/emergency.yml", out var rootUids)); shuttle = rootUids[0]; @@ -125,4 +126,4 @@ await server.WaitAssertion(() => await pair.CleanReturnAsync(); } -} +} \ No newline at end of file diff --git a/Content.IntegrationTests/Tests/ShuttleTest.cs b/Content.IntegrationTests/Tests/ShuttleTest.cs index fb786373a5a..da5b82d91e7 100644 --- a/Content.IntegrationTests/Tests/ShuttleTest.cs +++ b/Content.IntegrationTests/Tests/ShuttleTest.cs @@ -2,7 +2,6 @@ using Content.Server.Shuttles.Components; using Robust.Shared.GameObjects; using Robust.Shared.Map; -using Robust.Shared.Maths; using Robust.Shared.Physics; using Robust.Shared.Physics.Components; using Robust.Shared.Physics.Systems; @@ -23,33 +22,33 @@ public async Task Test() var entManager = server.ResolveDependency(); var physicsSystem = entManager.System(); - EntityUid gridEnt = default; PhysicsComponent gridPhys = null; + var map = await pair.CreateTestMap(); + await server.WaitAssertion(() => { - var mapId = mapMan.CreateMap(); - var grid = mapMan.CreateGridEntity(mapId); - gridEnt = grid.Owner; + var mapId = map.MapId; + var grid = map.Grid; Assert.Multiple(() => { - Assert.That(entManager.HasComponent(gridEnt)); - Assert.That(entManager.TryGetComponent(gridEnt, out gridPhys)); + Assert.That(entManager.HasComponent(grid)); + Assert.That(entManager.TryGetComponent(grid, out gridPhys)); }); Assert.Multiple(() => { Assert.That(gridPhys.BodyType, Is.EqualTo(BodyType.Dynamic)); - Assert.That(entManager.GetComponent(gridEnt).LocalPosition, Is.EqualTo(Vector2.Zero)); + Assert.That(entManager.GetComponent(grid).LocalPosition, Is.EqualTo(Vector2.Zero)); }); - physicsSystem.ApplyLinearImpulse(gridEnt, Vector2.One, body: gridPhys); + physicsSystem.ApplyLinearImpulse(grid, Vector2.One, body: gridPhys); }); await server.WaitRunTicks(1); await server.WaitAssertion(() => { - Assert.That(entManager.GetComponent(gridEnt).LocalPosition, Is.Not.EqualTo(Vector2.Zero)); + Assert.That(entManager.GetComponent(map.Grid).LocalPosition, Is.Not.EqualTo(Vector2.Zero)); }); await pair.CleanReturnAsync(); } diff --git a/Content.IntegrationTests/Tests/Sprite/ItemSpriteTest.cs b/Content.IntegrationTests/Tests/Sprite/ItemSpriteTest.cs index 1762c4213c4..bf75188f029 100644 --- a/Content.IntegrationTests/Tests/Sprite/ItemSpriteTest.cs +++ b/Content.IntegrationTests/Tests/Sprite/ItemSpriteTest.cs @@ -19,12 +19,12 @@ namespace Content.IntegrationTests.Tests.Sprite; /// - Shouldn't have an item component /// - Is missing the required sprite information. /// If none of the abveo are true, it might need to be added to the list of ignored components, see -/// +/// /// [TestFixture] public sealed class PrototypeSaveTest { - private static HashSet _ignored = new() + private static readonly HashSet Ignored = new() { // The only prototypes that should get ignored are those that REQUIRE setup to get a sprite. At that point it is // the responsibility of the spawner to ensure that a valid sprite is set. @@ -34,13 +34,13 @@ public sealed class PrototypeSaveTest [Test] public async Task AllItemsHaveSpritesTest() { - var settings = new PoolSettings() {Connected = true}; // client needs to be in-game + var settings = new PoolSettings() { Connected = true }; // client needs to be in-game await using var pair = await PoolManager.GetServerClient(settings); - List badPrototypes = new(); + List badPrototypes = []; await pair.Client.WaitPost(() => { - foreach (var proto in pair.GetPrototypesWithComponent(_ignored)) + foreach (var proto in pair.GetPrototypesWithComponent(Ignored)) { var dummy = pair.Client.EntMan.Spawn(proto.ID); pair.Client.EntMan.RunMapInit(dummy, pair.Client.MetaData(dummy)); diff --git a/Content.IntegrationTests/Tests/Minds/JobTests.cs b/Content.IntegrationTests/Tests/Station/JobTests.cs similarity index 100% rename from Content.IntegrationTests/Tests/Minds/JobTests.cs rename to Content.IntegrationTests/Tests/Station/JobTests.cs diff --git a/Content.IntegrationTests/Tests/Storage/StorageInteractionTest.cs b/Content.IntegrationTests/Tests/Storage/StorageInteractionTest.cs new file mode 100644 index 00000000000..34402dd5e62 --- /dev/null +++ b/Content.IntegrationTests/Tests/Storage/StorageInteractionTest.cs @@ -0,0 +1,75 @@ +using Content.Client.UserInterface.Systems.Hotbar.Widgets; +using Content.Client.UserInterface.Systems.Storage.Controls; +using Content.IntegrationTests.Tests.Interaction; +using Content.Shared.Input; +using Content.Shared.PDA; +using Content.Shared.Storage; +using Robust.Client.UserInterface; +using Robust.Shared.Containers; +using Robust.Shared.GameObjects; + +namespace Content.IntegrationTests.Tests.Storage; + +public sealed class StorageInteractionTest : InteractionTest +{ + /// + /// Check that players can interact with items in storage if the storage UI is open + /// + [Test] + public async Task UiInteractTest() + { + var sys = Server.System(); + + await SpawnTarget("ClothingBackpack"); + var backpack = ToServer(Target); + + // Initially no BUI is open. + Assert.That(IsUiOpen(StorageComponent.StorageUiKey.Key), Is.False); + Assert.That(IsUiOpen(PdaUiKey.Key), Is.False); + + // Activating the backpack opens the UI + await Activate(); + Assert.That(IsUiOpen(StorageComponent.StorageUiKey.Key), Is.True); + Assert.That(IsUiOpen(PdaUiKey.Key), Is.False); + + // Pick up a PDA + var pda = await PlaceInHands("PassengerPDA"); + var sPda = ToServer(pda); + Assert.That(sys.IsEntityInContainer(sPda), Is.True); + Assert.That(sys.TryGetContainingContainer((sPda, null), out var container)); + Assert.That(container!.Owner, Is.EqualTo(SPlayer)); + + // Insert the PDA into the backpack + await Interact(); + Assert.That(sys.TryGetContainingContainer((sPda, null), out container)); + Assert.That(container!.Owner, Is.EqualTo(backpack)); + + // Use "e" / ActivateInWorld to open the PDA UI while it is still in the backpack. + var ctrl = GetStorageControl(pda); + await ClickControl(ctrl, ContentKeyFunctions.ActivateItemInWorld); + await RunTicks(10); + Assert.That(IsUiOpen(StorageComponent.StorageUiKey.Key), Is.True); + Assert.That(IsUiOpen(PdaUiKey.Key), Is.True); + + // Click on the pda to pick it up and remove it from the backpack. + await ClickControl(ctrl, ContentKeyFunctions.MoveStoredItem); + await RunTicks(10); + Assert.That(sys.TryGetContainingContainer((sPda, null), out container)); + Assert.That(container!.Owner, Is.EqualTo(SPlayer)); + + // UIs should still be open + Assert.That(IsUiOpen(StorageComponent.StorageUiKey.Key), Is.True); + Assert.That(IsUiOpen(PdaUiKey.Key), Is.True); + } + + /// + /// Retrieve the control that corresponds to the given entity in the currently open storage UI. + /// + private ItemGridPiece GetStorageControl(NetEntity target) + { + var uid = ToClient(target); + var hotbar = GetWidget(); + var storageContainer = GetControlFromField(nameof(HotbarGui.StorageContainer), hotbar); + return GetControlFromChildren(c => c.Entity == uid, storageContainer); + } +} diff --git a/Content.IntegrationTests/Tests/Tag/TagTest.cs b/Content.IntegrationTests/Tests/Tag/TagTest.cs index ed3c484b435..cbcdd1c6c62 100644 --- a/Content.IntegrationTests/Tests/Tag/TagTest.cs +++ b/Content.IntegrationTests/Tests/Tag/TagTest.cs @@ -130,9 +130,9 @@ await server.WaitAssertion(() => Assert.Multiple(() => { // Cannot add the starting tag again - Assert.That(tagSystem.AddTag(sTagComponent, StartingTag), Is.False); - Assert.That(tagSystem.AddTags(sTagComponent, StartingTag, StartingTag), Is.False); - Assert.That(tagSystem.AddTags(sTagComponent, new List { StartingTag, StartingTag }), Is.False); + Assert.That(tagSystem.AddTag(sTagDummy, sTagComponent, StartingTag), Is.False); + Assert.That(tagSystem.AddTags(sTagDummy, sTagComponent, StartingTag, StartingTag), Is.False); + Assert.That(tagSystem.AddTags(sTagDummy, sTagComponent, new List { StartingTag, StartingTag }), Is.False); // Has the starting tag Assert.That(tagSystem.HasTag(sTagComponent, StartingTag), Is.True); @@ -157,22 +157,22 @@ await server.WaitAssertion(() => Assert.That(tagSystem.HasAllTags(sTagComponent, new List { StartingTag, AddedTag }), Is.False); // Cannot remove a tag that does not exist - Assert.That(tagSystem.RemoveTag(sTagComponent, AddedTag), Is.False); - Assert.That(tagSystem.RemoveTags(sTagComponent, AddedTag, AddedTag), Is.False); - Assert.That(tagSystem.RemoveTags(sTagComponent, new List { AddedTag, AddedTag }), Is.False); + Assert.That(tagSystem.RemoveTag(sTagDummy, sTagComponent, AddedTag), Is.False); + Assert.That(tagSystem.RemoveTags(sTagDummy, sTagComponent, AddedTag, AddedTag), Is.False); + Assert.That(tagSystem.RemoveTags(sTagDummy, sTagComponent, new List { AddedTag, AddedTag }), Is.False); }); // Can add the new tag - Assert.That(tagSystem.AddTag(sTagComponent, AddedTag), Is.True); + Assert.That(tagSystem.AddTag(sTagDummy, sTagComponent, AddedTag), Is.True); Assert.Multiple(() => { // Cannot add it twice - Assert.That(tagSystem.AddTag(sTagComponent, AddedTag), Is.False); + Assert.That(tagSystem.AddTag(sTagDummy, sTagComponent, AddedTag), Is.False); // Cannot add existing tags - Assert.That(tagSystem.AddTags(sTagComponent, StartingTag, AddedTag), Is.False); - Assert.That(tagSystem.AddTags(sTagComponent, new List { StartingTag, AddedTag }), Is.False); + Assert.That(tagSystem.AddTags(sTagDummy, sTagComponent, StartingTag, AddedTag), Is.False); + Assert.That(tagSystem.AddTags(sTagDummy, sTagComponent, new List { StartingTag, AddedTag }), Is.False); // Now has two tags Assert.That(sTagComponent.Tags, Has.Count.EqualTo(2)); @@ -191,16 +191,16 @@ await server.WaitAssertion(() => Assert.Multiple(() => { // Remove the existing starting tag - Assert.That(tagSystem.RemoveTag(sTagComponent, StartingTag), Is.True); + Assert.That(tagSystem.RemoveTag(sTagDummy, sTagComponent, StartingTag), Is.True); // Remove the existing added tag - Assert.That(tagSystem.RemoveTags(sTagComponent, AddedTag, AddedTag), Is.True); + Assert.That(tagSystem.RemoveTags(sTagDummy, sTagComponent, AddedTag, AddedTag), Is.True); }); Assert.Multiple(() => { // No tags left to remove - Assert.That(tagSystem.RemoveTags(sTagComponent, new List { StartingTag, AddedTag }), Is.False); + Assert.That(tagSystem.RemoveTags(sTagDummy, sTagComponent, new List { StartingTag, AddedTag }), Is.False); // No tags left in the component Assert.That(sTagComponent.Tags, Is.Empty); diff --git a/Content.IntegrationTests/Tests/Tiles/TileConstructionTests.cs b/Content.IntegrationTests/Tests/Tiles/TileConstructionTests.cs index 083e817d697..6ea8b6882ad 100644 --- a/Content.IntegrationTests/Tests/Tiles/TileConstructionTests.cs +++ b/Content.IntegrationTests/Tests/Tiles/TileConstructionTests.cs @@ -15,10 +15,10 @@ public async Task PlaceThenCutLattice() await AssertTile(Plating, PlayerCoords); AssertGridCount(1); await SetTile(null); - await Interact(Rod); + await InteractUsing(Rod); await AssertTile(Lattice); Assert.That(Hands.ActiveHandEntity, Is.Null); - await Interact(Cut); + await InteractUsing(Cut); await AssertTile(null); await AssertEntityLookup((Rod, 1)); AssertGridCount(1); @@ -43,14 +43,14 @@ public async Task CutThenPlaceLatticeNewGrid() // Place Lattice var oldPos = TargetCoords; TargetCoords = SEntMan.GetNetCoordinates(new EntityCoordinates(MapData.MapUid, 1, 0)); - await Interact(Rod); + await InteractUsing(Rod); TargetCoords = oldPos; await AssertTile(Lattice); AssertGridCount(1); // Cut lattice Assert.That(Hands.ActiveHandEntity, Is.Null); - await Interact(Cut); + await InteractUsing(Cut); await AssertTile(null); AssertGridCount(0); @@ -76,25 +76,25 @@ public async Task FloorConstructDeconstruct() // Space -> Lattice var oldPos = TargetCoords; TargetCoords = SEntMan.GetNetCoordinates(new EntityCoordinates(MapData.MapUid, 1, 0)); - await Interact(Rod); + await InteractUsing(Rod); TargetCoords = oldPos; await AssertTile(Lattice); AssertGridCount(1); // Lattice -> Plating - await Interact(Steel); + await InteractUsing(Steel); Assert.That(Hands.ActiveHandEntity, Is.Null); await AssertTile(Plating); AssertGridCount(1); // Plating -> Tile - await Interact(FloorItem); + await InteractUsing(FloorItem); Assert.That(Hands.ActiveHandEntity, Is.Null); await AssertTile(Floor); AssertGridCount(1); // Tile -> Plating - await Interact(Pry); + await InteractUsing(Pry); await AssertTile(Plating); AssertGridCount(1); diff --git a/Content.IntegrationTests/Tests/Toolshed/ToolshedTest.cs b/Content.IntegrationTests/Tests/Toolshed/ToolshedTest.cs index dd68ff1ccf1..7de81fb3dc2 100644 --- a/Content.IntegrationTests/Tests/Toolshed/ToolshedTest.cs +++ b/Content.IntegrationTests/Tests/Toolshed/ToolshedTest.cs @@ -36,16 +36,18 @@ public async Task TearDownInternal() await TearDown(); } - protected virtual async Task TearDown() + protected virtual Task TearDown() { Assert.That(_expectedErrors, Is.Empty); ClearErrors(); + + return Task.CompletedTask; } [SetUp] public virtual async Task Setup() { - Pair = await PoolManager.GetServerClient(new PoolSettings {Connected = Connected}); + Pair = await PoolManager.GetServerClient(new PoolSettings { Connected = Connected }); Server = Pair.Server; if (Connected) @@ -142,7 +144,7 @@ public void ReportError(IConError err) ); } - done: + done: _errors.Add(err); } diff --git a/Content.IntegrationTests/Tests/VendingMachineRestockTest.cs b/Content.IntegrationTests/Tests/VendingMachineRestockTest.cs index 99481db70e7..e067a27854f 100644 --- a/Content.IntegrationTests/Tests/VendingMachineRestockTest.cs +++ b/Content.IntegrationTests/Tests/VendingMachineRestockTest.cs @@ -27,6 +27,7 @@ public sealed class VendingMachineRestockTest : EntitySystem id: HumanVendingDummy components: - type: Hands + - type: ComplexInteraction - type: Body prototype: Human @@ -110,6 +111,7 @@ public async Task TestAllRestocksAreAvailableToBuy() await server.WaitIdleAsync(); var prototypeManager = server.ResolveDependency(); + var compFact = server.ResolveDependency(); await server.WaitAssertion(() => { @@ -132,7 +134,7 @@ await server.WaitAssertion(() => // Collect all the prototypes with StorageFills referencing those entities. foreach (var proto in prototypeManager.EnumeratePrototypes()) { - if (!proto.TryGetComponent(out var storage)) + if (!proto.TryGetComponent(out var storage, compFact)) continue; List restockStore = new(); diff --git a/Content.IntegrationTests/Tests/Weldable/WeldableTests.cs b/Content.IntegrationTests/Tests/Weldable/WeldableTests.cs index 6227f3dee1b..e7eadeda0a4 100644 --- a/Content.IntegrationTests/Tests/Weldable/WeldableTests.cs +++ b/Content.IntegrationTests/Tests/Weldable/WeldableTests.cs @@ -18,7 +18,7 @@ public async Task WeldLocker() Assert.That(comp.IsWelded, Is.False); - await Interact(Weld); + await InteractUsing(Weld); Assert.That(comp.IsWelded, Is.True); AssertPrototype(Locker); // Prototype did not change. } diff --git a/Content.Server.Database/Content.Server.Database.csproj b/Content.Server.Database/Content.Server.Database.csproj index d98d0642db0..a1f8a4ee645 100644 --- a/Content.Server.Database/Content.Server.Database.csproj +++ b/Content.Server.Database/Content.Server.Database.csproj @@ -26,6 +26,7 @@ + diff --git a/Content.Server.Database/Migrations/Postgres/20240606065731_RemoveLastReadRules.Designer.cs b/Content.Server.Database/Migrations/Postgres/20240606065731_RemoveLastReadRules.Designer.cs new file mode 100644 index 00000000000..222fe126d99 --- /dev/null +++ b/Content.Server.Database/Migrations/Postgres/20240606065731_RemoveLastReadRules.Designer.cs @@ -0,0 +1,1909 @@ +// +using System; +using System.Net; +using System.Text.Json; +using Content.Server.Database; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; +using NpgsqlTypes; + +#nullable disable + +namespace Content.Server.Database.Migrations.Postgres +{ + [DbContext(typeof(PostgresServerDbContext))] + [Migration("20240606065731_RemoveLastReadRules")] + partial class RemoveLastReadRules + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.0") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); + + modelBuilder.Entity("Content.Server.Database.Admin", b => + { + b.Property("UserId") + .ValueGeneratedOnAdd() + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.Property("AdminRankId") + .HasColumnType("integer") + .HasColumnName("admin_rank_id"); + + b.Property("Title") + .HasColumnType("text") + .HasColumnName("title"); + + b.HasKey("UserId") + .HasName("PK_admin"); + + b.HasIndex("AdminRankId") + .HasDatabaseName("IX_admin_admin_rank_id"); + + b.ToTable("admin", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminFlag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("admin_flag_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AdminId") + .HasColumnType("uuid") + .HasColumnName("admin_id"); + + b.Property("Flag") + .IsRequired() + .HasColumnType("text") + .HasColumnName("flag"); + + b.Property("Negative") + .HasColumnType("boolean") + .HasColumnName("negative"); + + b.HasKey("Id") + .HasName("PK_admin_flag"); + + b.HasIndex("AdminId") + .HasDatabaseName("IX_admin_flag_admin_id"); + + b.HasIndex("Flag", "AdminId") + .IsUnique(); + + b.ToTable("admin_flag", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLog", b => + { + b.Property("RoundId") + .HasColumnType("integer") + .HasColumnName("round_id"); + + b.Property("Id") + .HasColumnType("integer") + .HasColumnName("admin_log_id"); + + b.Property("Date") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.Property("Impact") + .HasColumnType("smallint") + .HasColumnName("impact"); + + b.Property("Json") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("json"); + + b.Property("Message") + .IsRequired() + .HasColumnType("text") + .HasColumnName("message"); + + b.Property("Type") + .HasColumnType("integer") + .HasColumnName("type"); + + b.HasKey("RoundId", "Id") + .HasName("PK_admin_log"); + + b.HasIndex("Date"); + + b.HasIndex("Message") + .HasAnnotation("Npgsql:TsVectorConfig", "english"); + + NpgsqlIndexBuilderExtensions.HasMethod(b.HasIndex("Message"), "GIN"); + + b.HasIndex("Type") + .HasDatabaseName("IX_admin_log_type"); + + b.ToTable("admin_log", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLogPlayer", b => + { + b.Property("RoundId") + .HasColumnType("integer") + .HasColumnName("round_id"); + + b.Property("LogId") + .HasColumnType("integer") + .HasColumnName("log_id"); + + b.Property("PlayerUserId") + .HasColumnType("uuid") + .HasColumnName("player_user_id"); + + b.HasKey("RoundId", "LogId", "PlayerUserId") + .HasName("PK_admin_log_player"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_admin_log_player_player_user_id"); + + b.ToTable("admin_log_player", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminMessage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("admin_messages_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("CreatedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("created_at"); + + b.Property("CreatedById") + .HasColumnType("uuid") + .HasColumnName("created_by_id"); + + b.Property("Deleted") + .HasColumnType("boolean") + .HasColumnName("deleted"); + + b.Property("DeletedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("deleted_at"); + + b.Property("DeletedById") + .HasColumnType("uuid") + .HasColumnName("deleted_by_id"); + + b.Property("Dismissed") + .HasColumnType("boolean") + .HasColumnName("dismissed"); + + b.Property("ExpirationTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("expiration_time"); + + b.Property("LastEditedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("uuid") + .HasColumnName("last_edited_by_id"); + + b.Property("Message") + .IsRequired() + .HasMaxLength(4096) + .HasColumnType("character varying(4096)") + .HasColumnName("message"); + + b.Property("PlayerUserId") + .HasColumnType("uuid") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("interval") + .HasColumnName("playtime_at_note"); + + b.Property("RoundId") + .HasColumnType("integer") + .HasColumnName("round_id"); + + b.Property("Seen") + .HasColumnType("boolean") + .HasColumnName("seen"); + + b.HasKey("Id") + .HasName("PK_admin_messages"); + + b.HasIndex("CreatedById"); + + b.HasIndex("DeletedById"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_admin_messages_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_admin_messages_round_id"); + + b.ToTable("admin_messages", null, t => + { + t.HasCheckConstraint("NotDismissedAndSeen", "NOT dismissed OR seen"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.AdminNote", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("admin_notes_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("CreatedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("created_at"); + + b.Property("CreatedById") + .HasColumnType("uuid") + .HasColumnName("created_by_id"); + + b.Property("Deleted") + .HasColumnType("boolean") + .HasColumnName("deleted"); + + b.Property("DeletedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("deleted_at"); + + b.Property("DeletedById") + .HasColumnType("uuid") + .HasColumnName("deleted_by_id"); + + b.Property("ExpirationTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("expiration_time"); + + b.Property("LastEditedAt") + .IsRequired() + .HasColumnType("timestamp with time zone") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("uuid") + .HasColumnName("last_edited_by_id"); + + b.Property("Message") + .IsRequired() + .HasMaxLength(4096) + .HasColumnType("character varying(4096)") + .HasColumnName("message"); + + b.Property("PlayerUserId") + .HasColumnType("uuid") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("interval") + .HasColumnName("playtime_at_note"); + + b.Property("RoundId") + .HasColumnType("integer") + .HasColumnName("round_id"); + + b.Property("Secret") + .HasColumnType("boolean") + .HasColumnName("secret"); + + b.Property("Severity") + .HasColumnType("integer") + .HasColumnName("severity"); + + b.HasKey("Id") + .HasName("PK_admin_notes"); + + b.HasIndex("CreatedById"); + + b.HasIndex("DeletedById"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_admin_notes_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_admin_notes_round_id"); + + b.ToTable("admin_notes", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminRank", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("admin_rank_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name"); + + b.HasKey("Id") + .HasName("PK_admin_rank"); + + b.ToTable("admin_rank", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminRankFlag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("admin_rank_flag_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AdminRankId") + .HasColumnType("integer") + .HasColumnName("admin_rank_id"); + + b.Property("Flag") + .IsRequired() + .HasColumnType("text") + .HasColumnName("flag"); + + b.HasKey("Id") + .HasName("PK_admin_rank_flag"); + + b.HasIndex("AdminRankId"); + + b.HasIndex("Flag", "AdminRankId") + .IsUnique(); + + b.ToTable("admin_rank_flag", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminWatchlist", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("admin_watchlists_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("CreatedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("created_at"); + + b.Property("CreatedById") + .HasColumnType("uuid") + .HasColumnName("created_by_id"); + + b.Property("Deleted") + .HasColumnType("boolean") + .HasColumnName("deleted"); + + b.Property("DeletedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("deleted_at"); + + b.Property("DeletedById") + .HasColumnType("uuid") + .HasColumnName("deleted_by_id"); + + b.Property("ExpirationTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("expiration_time"); + + b.Property("LastEditedAt") + .IsRequired() + .HasColumnType("timestamp with time zone") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("uuid") + .HasColumnName("last_edited_by_id"); + + b.Property("Message") + .IsRequired() + .HasMaxLength(4096) + .HasColumnType("character varying(4096)") + .HasColumnName("message"); + + b.Property("PlayerUserId") + .HasColumnType("uuid") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("interval") + .HasColumnName("playtime_at_note"); + + b.Property("RoundId") + .HasColumnType("integer") + .HasColumnName("round_id"); + + b.HasKey("Id") + .HasName("PK_admin_watchlists"); + + b.HasIndex("CreatedById"); + + b.HasIndex("DeletedById"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_admin_watchlists_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_admin_watchlists_round_id"); + + b.ToTable("admin_watchlists", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Antag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("antag_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AntagName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("antag_name"); + + b.Property("ProfileId") + .HasColumnType("integer") + .HasColumnName("profile_id"); + + b.HasKey("Id") + .HasName("PK_antag"); + + b.HasIndex("ProfileId", "AntagName") + .IsUnique(); + + b.ToTable("antag", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AssignedUserId", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("assigned_user_id_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("UserId") + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.Property("UserName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("user_name"); + + b.HasKey("Id") + .HasName("PK_assigned_user_id"); + + b.HasIndex("UserId") + .IsUnique(); + + b.HasIndex("UserName") + .IsUnique(); + + b.ToTable("assigned_user_id", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ConnectionLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("connection_log_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Address") + .IsRequired() + .HasColumnType("inet") + .HasColumnName("address"); + + b.Property("Denied") + .HasColumnType("smallint") + .HasColumnName("denied"); + + b.Property("HWId") + .HasColumnType("bytea") + .HasColumnName("hwid"); + + b.Property("ServerId") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasDefaultValue(0) + .HasColumnName("server_id"); + + b.Property("Time") + .HasColumnType("timestamp with time zone") + .HasColumnName("time"); + + b.Property("UserId") + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.Property("UserName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("user_name"); + + b.HasKey("Id") + .HasName("PK_connection_log"); + + b.HasIndex("ServerId") + .HasDatabaseName("IX_connection_log_server_id"); + + b.HasIndex("UserId"); + + b.ToTable("connection_log", null, t => + { + t.HasCheckConstraint("AddressNotIPv6MappedIPv4", "NOT inet '::ffff:0.0.0.0/96' >>= address"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.Job", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("job_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("JobName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("job_name"); + + b.Property("Priority") + .HasColumnType("integer") + .HasColumnName("priority"); + + b.Property("ProfileId") + .HasColumnType("integer") + .HasColumnName("profile_id"); + + b.HasKey("Id") + .HasName("PK_job"); + + b.HasIndex("ProfileId"); + + b.HasIndex("ProfileId", "JobName") + .IsUnique(); + + b.HasIndex(new[] { "ProfileId" }, "IX_job_one_high_priority") + .IsUnique() + .HasFilter("priority = 3"); + + b.ToTable("job", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.PlayTime", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("play_time_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("PlayerId") + .HasColumnType("uuid") + .HasColumnName("player_id"); + + b.Property("TimeSpent") + .HasColumnType("interval") + .HasColumnName("time_spent"); + + b.Property("Tracker") + .IsRequired() + .HasColumnType("text") + .HasColumnName("tracker"); + + b.HasKey("Id") + .HasName("PK_play_time"); + + b.HasIndex("PlayerId", "Tracker") + .IsUnique(); + + b.ToTable("play_time", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Player", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("player_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("FirstSeenTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("first_seen_time"); + + b.Property("LastSeenAddress") + .IsRequired() + .HasColumnType("inet") + .HasColumnName("last_seen_address"); + + b.Property("LastSeenHWId") + .HasColumnType("bytea") + .HasColumnName("last_seen_hwid"); + + b.Property("LastSeenTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("last_seen_time"); + + b.Property("LastSeenUserName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("last_seen_user_name"); + + b.Property("UserId") + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.HasKey("Id") + .HasName("PK_player"); + + b.HasAlternateKey("UserId") + .HasName("ak_player_user_id"); + + b.HasIndex("LastSeenUserName"); + + b.HasIndex("UserId") + .IsUnique(); + + b.ToTable("player", null, t => + { + t.HasCheckConstraint("LastSeenAddressNotIPv6MappedIPv4", "NOT inet '::ffff:0.0.0.0/96' >>= last_seen_address"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.Preference", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("preference_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AdminOOCColor") + .IsRequired() + .HasColumnType("text") + .HasColumnName("admin_ooc_color"); + + b.Property("SelectedCharacterSlot") + .HasColumnType("integer") + .HasColumnName("selected_character_slot"); + + b.Property("UserId") + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.HasKey("Id") + .HasName("PK_preference"); + + b.HasIndex("UserId") + .IsUnique(); + + b.ToTable("preference", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Profile", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("profile_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Age") + .HasColumnType("integer") + .HasColumnName("age"); + + b.Property("CharacterName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("char_name"); + + b.Property("EyeColor") + .IsRequired() + .HasColumnType("text") + .HasColumnName("eye_color"); + + b.Property("FacialHairColor") + .IsRequired() + .HasColumnType("text") + .HasColumnName("facial_hair_color"); + + b.Property("FacialHairName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("facial_hair_name"); + + b.Property("FlavorText") + .IsRequired() + .HasColumnType("text") + .HasColumnName("flavor_text"); + + b.Property("Gender") + .IsRequired() + .HasColumnType("text") + .HasColumnName("gender"); + + b.Property("HairColor") + .IsRequired() + .HasColumnType("text") + .HasColumnName("hair_color"); + + b.Property("HairName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("hair_name"); + + b.Property("Markings") + .HasColumnType("jsonb") + .HasColumnName("markings"); + + b.Property("PreferenceId") + .HasColumnType("integer") + .HasColumnName("preference_id"); + + b.Property("PreferenceUnavailable") + .HasColumnType("integer") + .HasColumnName("pref_unavailable"); + + b.Property("Sex") + .IsRequired() + .HasColumnType("text") + .HasColumnName("sex"); + + b.Property("SkinColor") + .IsRequired() + .HasColumnType("text") + .HasColumnName("skin_color"); + + b.Property("Slot") + .HasColumnType("integer") + .HasColumnName("slot"); + + b.Property("SpawnPriority") + .HasColumnType("integer") + .HasColumnName("spawn_priority"); + + b.Property("Species") + .IsRequired() + .HasColumnType("text") + .HasColumnName("species"); + + b.HasKey("Id") + .HasName("PK_profile"); + + b.HasIndex("PreferenceId") + .HasDatabaseName("IX_profile_preference_id"); + + b.HasIndex("Slot", "PreferenceId") + .IsUnique(); + + b.ToTable("profile", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ProfileLoadout", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("profile_loadout_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("LoadoutName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("loadout_name"); + + b.Property("ProfileLoadoutGroupId") + .HasColumnType("integer") + .HasColumnName("profile_loadout_group_id"); + + b.HasKey("Id") + .HasName("PK_profile_loadout"); + + b.HasIndex("ProfileLoadoutGroupId"); + + b.ToTable("profile_loadout", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ProfileLoadoutGroup", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("profile_loadout_group_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("GroupName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("group_name"); + + b.Property("ProfileRoleLoadoutId") + .HasColumnType("integer") + .HasColumnName("profile_role_loadout_id"); + + b.HasKey("Id") + .HasName("PK_profile_loadout_group"); + + b.HasIndex("ProfileRoleLoadoutId"); + + b.ToTable("profile_loadout_group", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ProfileRoleLoadout", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("profile_role_loadout_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("ProfileId") + .HasColumnType("integer") + .HasColumnName("profile_id"); + + b.Property("RoleName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("role_name"); + + b.HasKey("Id") + .HasName("PK_profile_role_loadout"); + + b.HasIndex("ProfileId"); + + b.ToTable("profile_role_loadout", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.RoleWhitelist", b => + { + b.Property("PlayerUserId") + .HasColumnType("uuid") + .HasColumnName("player_user_id"); + + b.Property("RoleId") + .HasColumnType("text") + .HasColumnName("role_id"); + + b.HasKey("PlayerUserId", "RoleId") + .HasName("PK_role_whitelists"); + + b.ToTable("role_whitelists", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Round", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("round_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("ServerId") + .HasColumnType("integer") + .HasColumnName("server_id"); + + b.Property("StartDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("start_date"); + + b.HasKey("Id") + .HasName("PK_round"); + + b.HasIndex("ServerId") + .HasDatabaseName("IX_round_server_id"); + + b.HasIndex("StartDate"); + + b.ToTable("round", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Server", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("server_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name"); + + b.HasKey("Id") + .HasName("PK_server"); + + b.ToTable("server", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBan", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("server_ban_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Address") + .HasColumnType("inet") + .HasColumnName("address"); + + b.Property("AutoDelete") + .HasColumnType("boolean") + .HasColumnName("auto_delete"); + + b.Property("BanTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("ban_time"); + + b.Property("BanningAdmin") + .HasColumnType("uuid") + .HasColumnName("banning_admin"); + + b.Property("ExemptFlags") + .HasColumnType("integer") + .HasColumnName("exempt_flags"); + + b.Property("ExpirationTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("expiration_time"); + + b.Property("HWId") + .HasColumnType("bytea") + .HasColumnName("hwid"); + + b.Property("Hidden") + .HasColumnType("boolean") + .HasColumnName("hidden"); + + b.Property("LastEditedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("uuid") + .HasColumnName("last_edited_by_id"); + + b.Property("PlayerUserId") + .HasColumnType("uuid") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("interval") + .HasColumnName("playtime_at_note"); + + b.Property("Reason") + .IsRequired() + .HasColumnType("text") + .HasColumnName("reason"); + + b.Property("RoundId") + .HasColumnType("integer") + .HasColumnName("round_id"); + + b.Property("Severity") + .HasColumnType("integer") + .HasColumnName("severity"); + + b.HasKey("Id") + .HasName("PK_server_ban"); + + b.HasIndex("Address"); + + b.HasIndex("BanningAdmin"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_server_ban_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_server_ban_round_id"); + + b.ToTable("server_ban", null, t => + { + t.HasCheckConstraint("AddressNotIPv6MappedIPv4", "NOT inet '::ffff:0.0.0.0/96' >>= address"); + + t.HasCheckConstraint("HaveEitherAddressOrUserIdOrHWId", "address IS NOT NULL OR player_user_id IS NOT NULL OR hwid IS NOT NULL"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBanExemption", b => + { + b.Property("UserId") + .ValueGeneratedOnAdd() + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.Property("Flags") + .HasColumnType("integer") + .HasColumnName("flags"); + + b.HasKey("UserId") + .HasName("PK_server_ban_exemption"); + + b.ToTable("server_ban_exemption", null, t => + { + t.HasCheckConstraint("FlagsNotZero", "flags != 0"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBanHit", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("server_ban_hit_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("BanId") + .HasColumnType("integer") + .HasColumnName("ban_id"); + + b.Property("ConnectionId") + .HasColumnType("integer") + .HasColumnName("connection_id"); + + b.HasKey("Id") + .HasName("PK_server_ban_hit"); + + b.HasIndex("BanId") + .HasDatabaseName("IX_server_ban_hit_ban_id"); + + b.HasIndex("ConnectionId") + .HasDatabaseName("IX_server_ban_hit_connection_id"); + + b.ToTable("server_ban_hit", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleBan", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("server_role_ban_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Address") + .HasColumnType("inet") + .HasColumnName("address"); + + b.Property("BanTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("ban_time"); + + b.Property("BanningAdmin") + .HasColumnType("uuid") + .HasColumnName("banning_admin"); + + b.Property("ExpirationTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("expiration_time"); + + b.Property("HWId") + .HasColumnType("bytea") + .HasColumnName("hwid"); + + b.Property("Hidden") + .HasColumnType("boolean") + .HasColumnName("hidden"); + + b.Property("LastEditedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("uuid") + .HasColumnName("last_edited_by_id"); + + b.Property("PlayerUserId") + .HasColumnType("uuid") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("interval") + .HasColumnName("playtime_at_note"); + + b.Property("Reason") + .IsRequired() + .HasColumnType("text") + .HasColumnName("reason"); + + b.Property("RoleId") + .IsRequired() + .HasColumnType("text") + .HasColumnName("role_id"); + + b.Property("RoundId") + .HasColumnType("integer") + .HasColumnName("round_id"); + + b.Property("Severity") + .HasColumnType("integer") + .HasColumnName("severity"); + + b.HasKey("Id") + .HasName("PK_server_role_ban"); + + b.HasIndex("Address"); + + b.HasIndex("BanningAdmin"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_server_role_ban_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_server_role_ban_round_id"); + + b.ToTable("server_role_ban", null, t => + { + t.HasCheckConstraint("AddressNotIPv6MappedIPv4", "NOT inet '::ffff:0.0.0.0/96' >>= address"); + + t.HasCheckConstraint("HaveEitherAddressOrUserIdOrHWId", "address IS NOT NULL OR player_user_id IS NOT NULL OR hwid IS NOT NULL"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleUnban", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("role_unban_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("BanId") + .HasColumnType("integer") + .HasColumnName("ban_id"); + + b.Property("UnbanTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("unban_time"); + + b.Property("UnbanningAdmin") + .HasColumnType("uuid") + .HasColumnName("unbanning_admin"); + + b.HasKey("Id") + .HasName("PK_server_role_unban"); + + b.HasIndex("BanId") + .IsUnique(); + + b.ToTable("server_role_unban", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ServerUnban", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("unban_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("BanId") + .HasColumnType("integer") + .HasColumnName("ban_id"); + + b.Property("UnbanTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("unban_time"); + + b.Property("UnbanningAdmin") + .HasColumnType("uuid") + .HasColumnName("unbanning_admin"); + + b.HasKey("Id") + .HasName("PK_server_unban"); + + b.HasIndex("BanId") + .IsUnique(); + + b.ToTable("server_unban", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Trait", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("trait_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("ProfileId") + .HasColumnType("integer") + .HasColumnName("profile_id"); + + b.Property("TraitName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("trait_name"); + + b.HasKey("Id") + .HasName("PK_trait"); + + b.HasIndex("ProfileId", "TraitName") + .IsUnique(); + + b.ToTable("trait", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.UploadedResourceLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("uploaded_resource_log_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Data") + .IsRequired() + .HasColumnType("bytea") + .HasColumnName("data"); + + b.Property("Date") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.Property("Path") + .IsRequired() + .HasColumnType("text") + .HasColumnName("path"); + + b.Property("UserId") + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.HasKey("Id") + .HasName("PK_uploaded_resource_log"); + + b.ToTable("uploaded_resource_log", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Whitelist", b => + { + b.Property("UserId") + .ValueGeneratedOnAdd() + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.HasKey("UserId") + .HasName("PK_whitelist"); + + b.ToTable("whitelist", (string)null); + }); + + modelBuilder.Entity("PlayerRound", b => + { + b.Property("PlayersId") + .HasColumnType("integer") + .HasColumnName("players_id"); + + b.Property("RoundsId") + .HasColumnType("integer") + .HasColumnName("rounds_id"); + + b.HasKey("PlayersId", "RoundsId") + .HasName("PK_player_round"); + + b.HasIndex("RoundsId") + .HasDatabaseName("IX_player_round_rounds_id"); + + b.ToTable("player_round", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Admin", b => + { + b.HasOne("Content.Server.Database.AdminRank", "AdminRank") + .WithMany("Admins") + .HasForeignKey("AdminRankId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_admin_rank_admin_rank_id"); + + b.Navigation("AdminRank"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminFlag", b => + { + b.HasOne("Content.Server.Database.Admin", "Admin") + .WithMany("Flags") + .HasForeignKey("AdminId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_flag_admin_admin_id"); + + b.Navigation("Admin"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLog", b => + { + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany("AdminLogs") + .HasForeignKey("RoundId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_log_round_round_id"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLogPlayer", b => + { + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("AdminLogs") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_log_player_player_player_user_id"); + + b.HasOne("Content.Server.Database.AdminLog", "Log") + .WithMany("Players") + .HasForeignKey("RoundId", "LogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_log_player_admin_log_round_id_log_id"); + + b.Navigation("Log"); + + b.Navigation("Player"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminMessage", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminMessagesCreated") + .HasForeignKey("CreatedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_messages_player_created_by_id"); + + b.HasOne("Content.Server.Database.Player", "DeletedBy") + .WithMany("AdminMessagesDeleted") + .HasForeignKey("DeletedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_messages_player_deleted_by_id"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminMessagesLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_messages_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("AdminMessagesReceived") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_admin_messages_player_player_user_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_admin_messages_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("DeletedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Player"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminNote", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminNotesCreated") + .HasForeignKey("CreatedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_notes_player_created_by_id"); + + b.HasOne("Content.Server.Database.Player", "DeletedBy") + .WithMany("AdminNotesDeleted") + .HasForeignKey("DeletedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_notes_player_deleted_by_id"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminNotesLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_notes_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("AdminNotesReceived") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_admin_notes_player_player_user_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_admin_notes_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("DeletedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Player"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminRankFlag", b => + { + b.HasOne("Content.Server.Database.AdminRank", "Rank") + .WithMany("Flags") + .HasForeignKey("AdminRankId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_rank_flag_admin_rank_admin_rank_id"); + + b.Navigation("Rank"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminWatchlist", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminWatchlistsCreated") + .HasForeignKey("CreatedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_watchlists_player_created_by_id"); + + b.HasOne("Content.Server.Database.Player", "DeletedBy") + .WithMany("AdminWatchlistsDeleted") + .HasForeignKey("DeletedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_watchlists_player_deleted_by_id"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminWatchlistsLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_watchlists_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("AdminWatchlistsReceived") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_admin_watchlists_player_player_user_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_admin_watchlists_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("DeletedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Player"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.Antag", b => + { + b.HasOne("Content.Server.Database.Profile", "Profile") + .WithMany("Antags") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_antag_profile_profile_id"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("Content.Server.Database.ConnectionLog", b => + { + b.HasOne("Content.Server.Database.Server", "Server") + .WithMany("ConnectionLogs") + .HasForeignKey("ServerId") + .OnDelete(DeleteBehavior.SetNull) + .IsRequired() + .HasConstraintName("FK_connection_log_server_server_id"); + + b.Navigation("Server"); + }); + + modelBuilder.Entity("Content.Server.Database.Job", b => + { + b.HasOne("Content.Server.Database.Profile", "Profile") + .WithMany("Jobs") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_job_profile_profile_id"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("Content.Server.Database.Profile", b => + { + b.HasOne("Content.Server.Database.Preference", "Preference") + .WithMany("Profiles") + .HasForeignKey("PreferenceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_profile_preference_preference_id"); + + b.Navigation("Preference"); + }); + + modelBuilder.Entity("Content.Server.Database.ProfileLoadout", b => + { + b.HasOne("Content.Server.Database.ProfileLoadoutGroup", "ProfileLoadoutGroup") + .WithMany("Loadouts") + .HasForeignKey("ProfileLoadoutGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_profile_loadout_profile_loadout_group_profile_loadout_group~"); + + b.Navigation("ProfileLoadoutGroup"); + }); + + modelBuilder.Entity("Content.Server.Database.ProfileLoadoutGroup", b => + { + b.HasOne("Content.Server.Database.ProfileRoleLoadout", "ProfileRoleLoadout") + .WithMany("Groups") + .HasForeignKey("ProfileRoleLoadoutId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_profile_loadout_group_profile_role_loadout_profile_role_loa~"); + + b.Navigation("ProfileRoleLoadout"); + }); + + modelBuilder.Entity("Content.Server.Database.ProfileRoleLoadout", b => + { + b.HasOne("Content.Server.Database.Profile", "Profile") + .WithMany("Loadouts") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_profile_role_loadout_profile_profile_id"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("Content.Server.Database.RoleWhitelist", b => + { + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("JobWhitelists") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_role_whitelists_player_player_user_id"); + + b.Navigation("Player"); + }); + + modelBuilder.Entity("Content.Server.Database.Round", b => + { + b.HasOne("Content.Server.Database.Server", "Server") + .WithMany("Rounds") + .HasForeignKey("ServerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_round_server_server_id"); + + b.Navigation("Server"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBan", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminServerBansCreated") + .HasForeignKey("BanningAdmin") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_server_ban_player_banning_admin"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminServerBansLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_server_ban_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_server_ban_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBanHit", b => + { + b.HasOne("Content.Server.Database.ServerBan", "Ban") + .WithMany("BanHits") + .HasForeignKey("BanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_server_ban_hit_server_ban_ban_id"); + + b.HasOne("Content.Server.Database.ConnectionLog", "Connection") + .WithMany("BanHits") + .HasForeignKey("ConnectionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_server_ban_hit_connection_log_connection_id"); + + b.Navigation("Ban"); + + b.Navigation("Connection"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleBan", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminServerRoleBansCreated") + .HasForeignKey("BanningAdmin") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_server_role_ban_player_banning_admin"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminServerRoleBansLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_server_role_ban_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_server_role_ban_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleUnban", b => + { + b.HasOne("Content.Server.Database.ServerRoleBan", "Ban") + .WithOne("Unban") + .HasForeignKey("Content.Server.Database.ServerRoleUnban", "BanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_server_role_unban_server_role_ban_ban_id"); + + b.Navigation("Ban"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerUnban", b => + { + b.HasOne("Content.Server.Database.ServerBan", "Ban") + .WithOne("Unban") + .HasForeignKey("Content.Server.Database.ServerUnban", "BanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_server_unban_server_ban_ban_id"); + + b.Navigation("Ban"); + }); + + modelBuilder.Entity("Content.Server.Database.Trait", b => + { + b.HasOne("Content.Server.Database.Profile", "Profile") + .WithMany("Traits") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_trait_profile_profile_id"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("PlayerRound", b => + { + b.HasOne("Content.Server.Database.Player", null) + .WithMany() + .HasForeignKey("PlayersId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_player_round_player_players_id"); + + b.HasOne("Content.Server.Database.Round", null) + .WithMany() + .HasForeignKey("RoundsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_player_round_round_rounds_id"); + }); + + modelBuilder.Entity("Content.Server.Database.Admin", b => + { + b.Navigation("Flags"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLog", b => + { + b.Navigation("Players"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminRank", b => + { + b.Navigation("Admins"); + + b.Navigation("Flags"); + }); + + modelBuilder.Entity("Content.Server.Database.ConnectionLog", b => + { + b.Navigation("BanHits"); + }); + + modelBuilder.Entity("Content.Server.Database.Player", b => + { + b.Navigation("AdminLogs"); + + b.Navigation("AdminMessagesCreated"); + + b.Navigation("AdminMessagesDeleted"); + + b.Navigation("AdminMessagesLastEdited"); + + b.Navigation("AdminMessagesReceived"); + + b.Navigation("AdminNotesCreated"); + + b.Navigation("AdminNotesDeleted"); + + b.Navigation("AdminNotesLastEdited"); + + b.Navigation("AdminNotesReceived"); + + b.Navigation("AdminServerBansCreated"); + + b.Navigation("AdminServerBansLastEdited"); + + b.Navigation("AdminServerRoleBansCreated"); + + b.Navigation("AdminServerRoleBansLastEdited"); + + b.Navigation("AdminWatchlistsCreated"); + + b.Navigation("AdminWatchlistsDeleted"); + + b.Navigation("AdminWatchlistsLastEdited"); + + b.Navigation("AdminWatchlistsReceived"); + + b.Navigation("JobWhitelists"); + }); + + modelBuilder.Entity("Content.Server.Database.Preference", b => + { + b.Navigation("Profiles"); + }); + + modelBuilder.Entity("Content.Server.Database.Profile", b => + { + b.Navigation("Antags"); + + b.Navigation("Jobs"); + + b.Navigation("Loadouts"); + + b.Navigation("Traits"); + }); + + modelBuilder.Entity("Content.Server.Database.ProfileLoadoutGroup", b => + { + b.Navigation("Loadouts"); + }); + + modelBuilder.Entity("Content.Server.Database.ProfileRoleLoadout", b => + { + b.Navigation("Groups"); + }); + + modelBuilder.Entity("Content.Server.Database.Round", b => + { + b.Navigation("AdminLogs"); + }); + + modelBuilder.Entity("Content.Server.Database.Server", b => + { + b.Navigation("ConnectionLogs"); + + b.Navigation("Rounds"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBan", b => + { + b.Navigation("BanHits"); + + b.Navigation("Unban"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleBan", b => + { + b.Navigation("Unban"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Content.Server.Database/Migrations/Postgres/20240606065731_RemoveLastReadRules.cs b/Content.Server.Database/Migrations/Postgres/20240606065731_RemoveLastReadRules.cs new file mode 100644 index 00000000000..1982197f62e --- /dev/null +++ b/Content.Server.Database/Migrations/Postgres/20240606065731_RemoveLastReadRules.cs @@ -0,0 +1,29 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Content.Server.Database.Migrations.Postgres +{ + /// + public partial class RemoveLastReadRules : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "last_read_rules", + table: "player"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "last_read_rules", + table: "player", + type: "timestamp with time zone", + nullable: true); + } + } +} diff --git a/Content.Server.Database/Migrations/Postgres/20241029025707_CustomLoadoutNameDescriptionColor.Designer.cs b/Content.Server.Database/Migrations/Postgres/20241029025707_CustomLoadoutNameDescriptionColor.Designer.cs new file mode 100644 index 00000000000..80aac02c1ec --- /dev/null +++ b/Content.Server.Database/Migrations/Postgres/20241029025707_CustomLoadoutNameDescriptionColor.Designer.cs @@ -0,0 +1,1908 @@ +// +using System; +using System.Net; +using System.Text.Json; +using Content.Server.Database; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; +using NpgsqlTypes; + +#nullable disable + +namespace Content.Server.Database.Migrations.Postgres +{ + [DbContext(typeof(PostgresServerDbContext))] + [Migration("20241029025707_CustomLoadoutNameDescriptionColor")] + partial class CustomLoadoutNameDescriptionColor + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.0") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); + + modelBuilder.Entity("Content.Server.Database.Admin", b => + { + b.Property("UserId") + .ValueGeneratedOnAdd() + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.Property("AdminRankId") + .HasColumnType("integer") + .HasColumnName("admin_rank_id"); + + b.Property("Title") + .HasColumnType("text") + .HasColumnName("title"); + + b.HasKey("UserId") + .HasName("PK_admin"); + + b.HasIndex("AdminRankId") + .HasDatabaseName("IX_admin_admin_rank_id"); + + b.ToTable("admin", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminFlag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("admin_flag_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AdminId") + .HasColumnType("uuid") + .HasColumnName("admin_id"); + + b.Property("Flag") + .IsRequired() + .HasColumnType("text") + .HasColumnName("flag"); + + b.Property("Negative") + .HasColumnType("boolean") + .HasColumnName("negative"); + + b.HasKey("Id") + .HasName("PK_admin_flag"); + + b.HasIndex("AdminId") + .HasDatabaseName("IX_admin_flag_admin_id"); + + b.HasIndex("Flag", "AdminId") + .IsUnique(); + + b.ToTable("admin_flag", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLog", b => + { + b.Property("RoundId") + .HasColumnType("integer") + .HasColumnName("round_id"); + + b.Property("Id") + .HasColumnType("integer") + .HasColumnName("admin_log_id"); + + b.Property("Date") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.Property("Impact") + .HasColumnType("smallint") + .HasColumnName("impact"); + + b.Property("Json") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("json"); + + b.Property("Message") + .IsRequired() + .HasColumnType("text") + .HasColumnName("message"); + + b.Property("Type") + .HasColumnType("integer") + .HasColumnName("type"); + + b.HasKey("RoundId", "Id") + .HasName("PK_admin_log"); + + b.HasIndex("Date"); + + b.HasIndex("Message") + .HasAnnotation("Npgsql:TsVectorConfig", "english"); + + NpgsqlIndexBuilderExtensions.HasMethod(b.HasIndex("Message"), "GIN"); + + b.HasIndex("Type") + .HasDatabaseName("IX_admin_log_type"); + + b.ToTable("admin_log", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLogPlayer", b => + { + b.Property("RoundId") + .HasColumnType("integer") + .HasColumnName("round_id"); + + b.Property("LogId") + .HasColumnType("integer") + .HasColumnName("log_id"); + + b.Property("PlayerUserId") + .HasColumnType("uuid") + .HasColumnName("player_user_id"); + + b.HasKey("RoundId", "LogId", "PlayerUserId") + .HasName("PK_admin_log_player"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_admin_log_player_player_user_id"); + + b.ToTable("admin_log_player", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminMessage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("admin_messages_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("CreatedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("created_at"); + + b.Property("CreatedById") + .HasColumnType("uuid") + .HasColumnName("created_by_id"); + + b.Property("Deleted") + .HasColumnType("boolean") + .HasColumnName("deleted"); + + b.Property("DeletedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("deleted_at"); + + b.Property("DeletedById") + .HasColumnType("uuid") + .HasColumnName("deleted_by_id"); + + b.Property("Dismissed") + .HasColumnType("boolean") + .HasColumnName("dismissed"); + + b.Property("ExpirationTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("expiration_time"); + + b.Property("LastEditedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("uuid") + .HasColumnName("last_edited_by_id"); + + b.Property("Message") + .IsRequired() + .HasMaxLength(4096) + .HasColumnType("character varying(4096)") + .HasColumnName("message"); + + b.Property("PlayerUserId") + .HasColumnType("uuid") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("interval") + .HasColumnName("playtime_at_note"); + + b.Property("RoundId") + .HasColumnType("integer") + .HasColumnName("round_id"); + + b.Property("Seen") + .HasColumnType("boolean") + .HasColumnName("seen"); + + b.HasKey("Id") + .HasName("PK_admin_messages"); + + b.HasIndex("CreatedById"); + + b.HasIndex("DeletedById"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_admin_messages_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_admin_messages_round_id"); + + b.ToTable("admin_messages", null, t => + { + t.HasCheckConstraint("NotDismissedAndSeen", "NOT dismissed OR seen"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.AdminNote", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("admin_notes_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("CreatedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("created_at"); + + b.Property("CreatedById") + .HasColumnType("uuid") + .HasColumnName("created_by_id"); + + b.Property("Deleted") + .HasColumnType("boolean") + .HasColumnName("deleted"); + + b.Property("DeletedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("deleted_at"); + + b.Property("DeletedById") + .HasColumnType("uuid") + .HasColumnName("deleted_by_id"); + + b.Property("ExpirationTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("expiration_time"); + + b.Property("LastEditedAt") + .IsRequired() + .HasColumnType("timestamp with time zone") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("uuid") + .HasColumnName("last_edited_by_id"); + + b.Property("Message") + .IsRequired() + .HasMaxLength(4096) + .HasColumnType("character varying(4096)") + .HasColumnName("message"); + + b.Property("PlayerUserId") + .HasColumnType("uuid") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("interval") + .HasColumnName("playtime_at_note"); + + b.Property("RoundId") + .HasColumnType("integer") + .HasColumnName("round_id"); + + b.Property("Secret") + .HasColumnType("boolean") + .HasColumnName("secret"); + + b.Property("Severity") + .HasColumnType("integer") + .HasColumnName("severity"); + + b.HasKey("Id") + .HasName("PK_admin_notes"); + + b.HasIndex("CreatedById"); + + b.HasIndex("DeletedById"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_admin_notes_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_admin_notes_round_id"); + + b.ToTable("admin_notes", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminRank", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("admin_rank_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name"); + + b.HasKey("Id") + .HasName("PK_admin_rank"); + + b.ToTable("admin_rank", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminRankFlag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("admin_rank_flag_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AdminRankId") + .HasColumnType("integer") + .HasColumnName("admin_rank_id"); + + b.Property("Flag") + .IsRequired() + .HasColumnType("text") + .HasColumnName("flag"); + + b.HasKey("Id") + .HasName("PK_admin_rank_flag"); + + b.HasIndex("AdminRankId"); + + b.HasIndex("Flag", "AdminRankId") + .IsUnique(); + + b.ToTable("admin_rank_flag", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminWatchlist", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("admin_watchlists_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("CreatedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("created_at"); + + b.Property("CreatedById") + .HasColumnType("uuid") + .HasColumnName("created_by_id"); + + b.Property("Deleted") + .HasColumnType("boolean") + .HasColumnName("deleted"); + + b.Property("DeletedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("deleted_at"); + + b.Property("DeletedById") + .HasColumnType("uuid") + .HasColumnName("deleted_by_id"); + + b.Property("ExpirationTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("expiration_time"); + + b.Property("LastEditedAt") + .IsRequired() + .HasColumnType("timestamp with time zone") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("uuid") + .HasColumnName("last_edited_by_id"); + + b.Property("Message") + .IsRequired() + .HasMaxLength(4096) + .HasColumnType("character varying(4096)") + .HasColumnName("message"); + + b.Property("PlayerUserId") + .HasColumnType("uuid") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("interval") + .HasColumnName("playtime_at_note"); + + b.Property("RoundId") + .HasColumnType("integer") + .HasColumnName("round_id"); + + b.HasKey("Id") + .HasName("PK_admin_watchlists"); + + b.HasIndex("CreatedById"); + + b.HasIndex("DeletedById"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_admin_watchlists_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_admin_watchlists_round_id"); + + b.ToTable("admin_watchlists", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Antag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("antag_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AntagName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("antag_name"); + + b.Property("ProfileId") + .HasColumnType("integer") + .HasColumnName("profile_id"); + + b.HasKey("Id") + .HasName("PK_antag"); + + b.HasIndex("ProfileId", "AntagName") + .IsUnique(); + + b.ToTable("antag", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AssignedUserId", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("assigned_user_id_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("UserId") + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.Property("UserName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("user_name"); + + b.HasKey("Id") + .HasName("PK_assigned_user_id"); + + b.HasIndex("UserId") + .IsUnique(); + + b.HasIndex("UserName") + .IsUnique(); + + b.ToTable("assigned_user_id", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.BanTemplate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("ban_template_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AutoDelete") + .HasColumnType("boolean") + .HasColumnName("auto_delete"); + + b.Property("ExemptFlags") + .HasColumnType("integer") + .HasColumnName("exempt_flags"); + + b.Property("Hidden") + .HasColumnType("boolean") + .HasColumnName("hidden"); + + b.Property("Length") + .HasColumnType("interval") + .HasColumnName("length"); + + b.Property("Reason") + .IsRequired() + .HasColumnType("text") + .HasColumnName("reason"); + + b.Property("Severity") + .HasColumnType("integer") + .HasColumnName("severity"); + + b.Property("Title") + .IsRequired() + .HasColumnType("text") + .HasColumnName("title"); + + b.HasKey("Id") + .HasName("PK_ban_template"); + + b.ToTable("ban_template", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ConnectionLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("connection_log_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Address") + .IsRequired() + .HasColumnType("inet") + .HasColumnName("address"); + + b.Property("Denied") + .HasColumnType("smallint") + .HasColumnName("denied"); + + b.Property("HWId") + .HasColumnType("bytea") + .HasColumnName("hwid"); + + b.Property("ServerId") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasDefaultValue(0) + .HasColumnName("server_id"); + + b.Property("Time") + .HasColumnType("timestamp with time zone") + .HasColumnName("time"); + + b.Property("UserId") + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.Property("UserName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("user_name"); + + b.HasKey("Id") + .HasName("PK_connection_log"); + + b.HasIndex("ServerId") + .HasDatabaseName("IX_connection_log_server_id"); + + b.HasIndex("UserId"); + + b.ToTable("connection_log", null, t => + { + t.HasCheckConstraint("AddressNotIPv6MappedIPv4", "NOT inet '::ffff:0.0.0.0/96' >>= address"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.Job", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("job_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("JobName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("job_name"); + + b.Property("Priority") + .HasColumnType("integer") + .HasColumnName("priority"); + + b.Property("ProfileId") + .HasColumnType("integer") + .HasColumnName("profile_id"); + + b.HasKey("Id") + .HasName("PK_job"); + + b.HasIndex("ProfileId"); + + b.HasIndex("ProfileId", "JobName") + .IsUnique(); + + b.HasIndex(new[] { "ProfileId" }, "IX_job_one_high_priority") + .IsUnique() + .HasFilter("priority = 3"); + + b.ToTable("job", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Loadout", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("loadout_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("CustomColorTint") + .HasColumnType("text") + .HasColumnName("custom_color_tint"); + + b.Property("CustomDescription") + .HasColumnType("text") + .HasColumnName("custom_description"); + + b.Property("CustomName") + .HasColumnType("text") + .HasColumnName("custom_name"); + + b.Property("LoadoutName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("loadout_name"); + + b.Property("ProfileId") + .HasColumnType("integer") + .HasColumnName("profile_id"); + + b.HasKey("Id") + .HasName("PK_loadout"); + + b.HasIndex("ProfileId", "LoadoutName") + .IsUnique(); + + b.ToTable("loadout", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.PlayTime", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("play_time_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("PlayerId") + .HasColumnType("uuid") + .HasColumnName("player_id"); + + b.Property("TimeSpent") + .HasColumnType("interval") + .HasColumnName("time_spent"); + + b.Property("Tracker") + .IsRequired() + .HasColumnType("text") + .HasColumnName("tracker"); + + b.HasKey("Id") + .HasName("PK_play_time"); + + b.HasIndex("PlayerId", "Tracker") + .IsUnique(); + + b.ToTable("play_time", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Player", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("player_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("FirstSeenTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("first_seen_time"); + + b.Property("LastReadRules") + .HasColumnType("timestamp with time zone") + .HasColumnName("last_read_rules"); + + b.Property("LastSeenAddress") + .IsRequired() + .HasColumnType("inet") + .HasColumnName("last_seen_address"); + + b.Property("LastSeenHWId") + .HasColumnType("bytea") + .HasColumnName("last_seen_hwid"); + + b.Property("LastSeenTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("last_seen_time"); + + b.Property("LastSeenUserName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("last_seen_user_name"); + + b.Property("UserId") + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.HasKey("Id") + .HasName("PK_player"); + + b.HasAlternateKey("UserId") + .HasName("ak_player_user_id"); + + b.HasIndex("LastSeenUserName"); + + b.HasIndex("UserId") + .IsUnique(); + + b.ToTable("player", null, t => + { + t.HasCheckConstraint("LastSeenAddressNotIPv6MappedIPv4", "NOT inet '::ffff:0.0.0.0/96' >>= last_seen_address"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.Preference", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("preference_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AdminOOCColor") + .IsRequired() + .HasColumnType("text") + .HasColumnName("admin_ooc_color"); + + b.Property("SelectedCharacterSlot") + .HasColumnType("integer") + .HasColumnName("selected_character_slot"); + + b.Property("UserId") + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.HasKey("Id") + .HasName("PK_preference"); + + b.HasIndex("UserId") + .IsUnique(); + + b.ToTable("preference", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Profile", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("profile_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Age") + .HasColumnType("integer") + .HasColumnName("age"); + + b.Property("Backpack") + .IsRequired() + .HasColumnType("text") + .HasColumnName("backpack"); + + b.Property("CharacterName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("char_name"); + + b.Property("Clothing") + .IsRequired() + .HasColumnType("text") + .HasColumnName("clothing"); + + b.Property("CustomSpecieName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("custom_specie_name"); + + b.Property("EyeColor") + .IsRequired() + .HasColumnType("text") + .HasColumnName("eye_color"); + + b.Property("FacialHairColor") + .IsRequired() + .HasColumnType("text") + .HasColumnName("facial_hair_color"); + + b.Property("FacialHairName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("facial_hair_name"); + + b.Property("FlavorText") + .IsRequired() + .HasColumnType("text") + .HasColumnName("flavor_text"); + + b.Property("Gender") + .IsRequired() + .HasColumnType("text") + .HasColumnName("gender"); + + b.Property("HairColor") + .IsRequired() + .HasColumnType("text") + .HasColumnName("hair_color"); + + b.Property("HairName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("hair_name"); + + b.Property("Height") + .HasColumnType("real") + .HasColumnName("height"); + + b.Property("Markings") + .HasColumnType("jsonb") + .HasColumnName("markings"); + + b.Property("PreferenceId") + .HasColumnType("integer") + .HasColumnName("preference_id"); + + b.Property("PreferenceUnavailable") + .HasColumnType("integer") + .HasColumnName("pref_unavailable"); + + b.Property("Sex") + .IsRequired() + .HasColumnType("text") + .HasColumnName("sex"); + + b.Property("SkinColor") + .IsRequired() + .HasColumnType("text") + .HasColumnName("skin_color"); + + b.Property("Slot") + .HasColumnType("integer") + .HasColumnName("slot"); + + b.Property("SpawnPriority") + .HasColumnType("integer") + .HasColumnName("spawn_priority"); + + b.Property("Species") + .IsRequired() + .HasColumnType("text") + .HasColumnName("species"); + + b.Property("Width") + .HasColumnType("real") + .HasColumnName("width"); + + b.HasKey("Id") + .HasName("PK_profile"); + + b.HasIndex("PreferenceId") + .HasDatabaseName("IX_profile_preference_id"); + + b.HasIndex("Slot", "PreferenceId") + .IsUnique(); + + b.ToTable("profile", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.RoleWhitelist", b => + { + b.Property("PlayerUserId") + .HasColumnType("uuid") + .HasColumnName("player_user_id"); + + b.Property("RoleId") + .HasColumnType("text") + .HasColumnName("role_id"); + + b.HasKey("PlayerUserId", "RoleId") + .HasName("PK_role_whitelists"); + + b.ToTable("role_whitelists", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Round", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("round_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("ServerId") + .HasColumnType("integer") + .HasColumnName("server_id"); + + b.Property("StartDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("start_date"); + + b.HasKey("Id") + .HasName("PK_round"); + + b.HasIndex("ServerId") + .HasDatabaseName("IX_round_server_id"); + + b.HasIndex("StartDate"); + + b.ToTable("round", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Server", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("server_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name"); + + b.HasKey("Id") + .HasName("PK_server"); + + b.ToTable("server", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBan", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("server_ban_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Address") + .HasColumnType("inet") + .HasColumnName("address"); + + b.Property("AutoDelete") + .HasColumnType("boolean") + .HasColumnName("auto_delete"); + + b.Property("BanTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("ban_time"); + + b.Property("BanningAdmin") + .HasColumnType("uuid") + .HasColumnName("banning_admin"); + + b.Property("ExemptFlags") + .HasColumnType("integer") + .HasColumnName("exempt_flags"); + + b.Property("ExpirationTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("expiration_time"); + + b.Property("HWId") + .HasColumnType("bytea") + .HasColumnName("hwid"); + + b.Property("Hidden") + .HasColumnType("boolean") + .HasColumnName("hidden"); + + b.Property("LastEditedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("uuid") + .HasColumnName("last_edited_by_id"); + + b.Property("PlayerUserId") + .HasColumnType("uuid") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("interval") + .HasColumnName("playtime_at_note"); + + b.Property("Reason") + .IsRequired() + .HasColumnType("text") + .HasColumnName("reason"); + + b.Property("RoundId") + .HasColumnType("integer") + .HasColumnName("round_id"); + + b.Property("Severity") + .HasColumnType("integer") + .HasColumnName("severity"); + + b.HasKey("Id") + .HasName("PK_server_ban"); + + b.HasIndex("Address"); + + b.HasIndex("BanningAdmin"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_server_ban_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_server_ban_round_id"); + + b.ToTable("server_ban", null, t => + { + t.HasCheckConstraint("AddressNotIPv6MappedIPv4", "NOT inet '::ffff:0.0.0.0/96' >>= address"); + + t.HasCheckConstraint("HaveEitherAddressOrUserIdOrHWId", "address IS NOT NULL OR player_user_id IS NOT NULL OR hwid IS NOT NULL"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBanExemption", b => + { + b.Property("UserId") + .ValueGeneratedOnAdd() + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.Property("Flags") + .HasColumnType("integer") + .HasColumnName("flags"); + + b.HasKey("UserId") + .HasName("PK_server_ban_exemption"); + + b.ToTable("server_ban_exemption", null, t => + { + t.HasCheckConstraint("FlagsNotZero", "flags != 0"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBanHit", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("server_ban_hit_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("BanId") + .HasColumnType("integer") + .HasColumnName("ban_id"); + + b.Property("ConnectionId") + .HasColumnType("integer") + .HasColumnName("connection_id"); + + b.HasKey("Id") + .HasName("PK_server_ban_hit"); + + b.HasIndex("BanId") + .HasDatabaseName("IX_server_ban_hit_ban_id"); + + b.HasIndex("ConnectionId") + .HasDatabaseName("IX_server_ban_hit_connection_id"); + + b.ToTable("server_ban_hit", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleBan", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("server_role_ban_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Address") + .HasColumnType("inet") + .HasColumnName("address"); + + b.Property("BanTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("ban_time"); + + b.Property("BanningAdmin") + .HasColumnType("uuid") + .HasColumnName("banning_admin"); + + b.Property("ExpirationTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("expiration_time"); + + b.Property("HWId") + .HasColumnType("bytea") + .HasColumnName("hwid"); + + b.Property("Hidden") + .HasColumnType("boolean") + .HasColumnName("hidden"); + + b.Property("LastEditedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("uuid") + .HasColumnName("last_edited_by_id"); + + b.Property("PlayerUserId") + .HasColumnType("uuid") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("interval") + .HasColumnName("playtime_at_note"); + + b.Property("Reason") + .IsRequired() + .HasColumnType("text") + .HasColumnName("reason"); + + b.Property("RoleId") + .IsRequired() + .HasColumnType("text") + .HasColumnName("role_id"); + + b.Property("RoundId") + .HasColumnType("integer") + .HasColumnName("round_id"); + + b.Property("Severity") + .HasColumnType("integer") + .HasColumnName("severity"); + + b.HasKey("Id") + .HasName("PK_server_role_ban"); + + b.HasIndex("Address"); + + b.HasIndex("BanningAdmin"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_server_role_ban_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_server_role_ban_round_id"); + + b.ToTable("server_role_ban", null, t => + { + t.HasCheckConstraint("AddressNotIPv6MappedIPv4", "NOT inet '::ffff:0.0.0.0/96' >>= address"); + + t.HasCheckConstraint("HaveEitherAddressOrUserIdOrHWId", "address IS NOT NULL OR player_user_id IS NOT NULL OR hwid IS NOT NULL"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleUnban", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("role_unban_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("BanId") + .HasColumnType("integer") + .HasColumnName("ban_id"); + + b.Property("UnbanTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("unban_time"); + + b.Property("UnbanningAdmin") + .HasColumnType("uuid") + .HasColumnName("unbanning_admin"); + + b.HasKey("Id") + .HasName("PK_server_role_unban"); + + b.HasIndex("BanId") + .IsUnique(); + + b.ToTable("server_role_unban", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ServerUnban", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("unban_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("BanId") + .HasColumnType("integer") + .HasColumnName("ban_id"); + + b.Property("UnbanTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("unban_time"); + + b.Property("UnbanningAdmin") + .HasColumnType("uuid") + .HasColumnName("unbanning_admin"); + + b.HasKey("Id") + .HasName("PK_server_unban"); + + b.HasIndex("BanId") + .IsUnique(); + + b.ToTable("server_unban", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Trait", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("trait_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("ProfileId") + .HasColumnType("integer") + .HasColumnName("profile_id"); + + b.Property("TraitName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("trait_name"); + + b.HasKey("Id") + .HasName("PK_trait"); + + b.HasIndex("ProfileId", "TraitName") + .IsUnique(); + + b.ToTable("trait", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.UploadedResourceLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("uploaded_resource_log_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Data") + .IsRequired() + .HasColumnType("bytea") + .HasColumnName("data"); + + b.Property("Date") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.Property("Path") + .IsRequired() + .HasColumnType("text") + .HasColumnName("path"); + + b.Property("UserId") + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.HasKey("Id") + .HasName("PK_uploaded_resource_log"); + + b.ToTable("uploaded_resource_log", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Whitelist", b => + { + b.Property("UserId") + .ValueGeneratedOnAdd() + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.HasKey("UserId") + .HasName("PK_whitelist"); + + b.ToTable("whitelist", (string)null); + }); + + modelBuilder.Entity("PlayerRound", b => + { + b.Property("PlayersId") + .HasColumnType("integer") + .HasColumnName("players_id"); + + b.Property("RoundsId") + .HasColumnType("integer") + .HasColumnName("rounds_id"); + + b.HasKey("PlayersId", "RoundsId") + .HasName("PK_player_round"); + + b.HasIndex("RoundsId") + .HasDatabaseName("IX_player_round_rounds_id"); + + b.ToTable("player_round", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Admin", b => + { + b.HasOne("Content.Server.Database.AdminRank", "AdminRank") + .WithMany("Admins") + .HasForeignKey("AdminRankId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_admin_rank_admin_rank_id"); + + b.Navigation("AdminRank"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminFlag", b => + { + b.HasOne("Content.Server.Database.Admin", "Admin") + .WithMany("Flags") + .HasForeignKey("AdminId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_flag_admin_admin_id"); + + b.Navigation("Admin"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLog", b => + { + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany("AdminLogs") + .HasForeignKey("RoundId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_log_round_round_id"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLogPlayer", b => + { + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("AdminLogs") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_log_player_player_player_user_id"); + + b.HasOne("Content.Server.Database.AdminLog", "Log") + .WithMany("Players") + .HasForeignKey("RoundId", "LogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_log_player_admin_log_round_id_log_id"); + + b.Navigation("Log"); + + b.Navigation("Player"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminMessage", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminMessagesCreated") + .HasForeignKey("CreatedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_messages_player_created_by_id"); + + b.HasOne("Content.Server.Database.Player", "DeletedBy") + .WithMany("AdminMessagesDeleted") + .HasForeignKey("DeletedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_messages_player_deleted_by_id"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminMessagesLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_messages_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("AdminMessagesReceived") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_admin_messages_player_player_user_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_admin_messages_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("DeletedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Player"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminNote", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminNotesCreated") + .HasForeignKey("CreatedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_notes_player_created_by_id"); + + b.HasOne("Content.Server.Database.Player", "DeletedBy") + .WithMany("AdminNotesDeleted") + .HasForeignKey("DeletedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_notes_player_deleted_by_id"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminNotesLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_notes_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("AdminNotesReceived") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_admin_notes_player_player_user_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_admin_notes_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("DeletedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Player"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminRankFlag", b => + { + b.HasOne("Content.Server.Database.AdminRank", "Rank") + .WithMany("Flags") + .HasForeignKey("AdminRankId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_rank_flag_admin_rank_admin_rank_id"); + + b.Navigation("Rank"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminWatchlist", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminWatchlistsCreated") + .HasForeignKey("CreatedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_watchlists_player_created_by_id"); + + b.HasOne("Content.Server.Database.Player", "DeletedBy") + .WithMany("AdminWatchlistsDeleted") + .HasForeignKey("DeletedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_watchlists_player_deleted_by_id"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminWatchlistsLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_watchlists_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("AdminWatchlistsReceived") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_admin_watchlists_player_player_user_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_admin_watchlists_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("DeletedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Player"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.Antag", b => + { + b.HasOne("Content.Server.Database.Profile", "Profile") + .WithMany("Antags") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_antag_profile_profile_id"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("Content.Server.Database.ConnectionLog", b => + { + b.HasOne("Content.Server.Database.Server", "Server") + .WithMany("ConnectionLogs") + .HasForeignKey("ServerId") + .OnDelete(DeleteBehavior.SetNull) + .IsRequired() + .HasConstraintName("FK_connection_log_server_server_id"); + + b.Navigation("Server"); + }); + + modelBuilder.Entity("Content.Server.Database.Job", b => + { + b.HasOne("Content.Server.Database.Profile", "Profile") + .WithMany("Jobs") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_job_profile_profile_id"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("Content.Server.Database.Loadout", b => + { + b.HasOne("Content.Server.Database.Profile", "Profile") + .WithMany("Loadouts") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_loadout_profile_profile_id"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("Content.Server.Database.Profile", b => + { + b.HasOne("Content.Server.Database.Preference", "Preference") + .WithMany("Profiles") + .HasForeignKey("PreferenceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_profile_preference_preference_id"); + + b.Navigation("Preference"); + }); + + modelBuilder.Entity("Content.Server.Database.RoleWhitelist", b => + { + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("JobWhitelists") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_role_whitelists_player_player_user_id"); + + b.Navigation("Player"); + }); + + modelBuilder.Entity("Content.Server.Database.Round", b => + { + b.HasOne("Content.Server.Database.Server", "Server") + .WithMany("Rounds") + .HasForeignKey("ServerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_round_server_server_id"); + + b.Navigation("Server"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBan", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminServerBansCreated") + .HasForeignKey("BanningAdmin") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_server_ban_player_banning_admin"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminServerBansLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_server_ban_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_server_ban_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBanHit", b => + { + b.HasOne("Content.Server.Database.ServerBan", "Ban") + .WithMany("BanHits") + .HasForeignKey("BanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_server_ban_hit_server_ban_ban_id"); + + b.HasOne("Content.Server.Database.ConnectionLog", "Connection") + .WithMany("BanHits") + .HasForeignKey("ConnectionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_server_ban_hit_connection_log_connection_id"); + + b.Navigation("Ban"); + + b.Navigation("Connection"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleBan", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminServerRoleBansCreated") + .HasForeignKey("BanningAdmin") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_server_role_ban_player_banning_admin"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminServerRoleBansLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_server_role_ban_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_server_role_ban_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleUnban", b => + { + b.HasOne("Content.Server.Database.ServerRoleBan", "Ban") + .WithOne("Unban") + .HasForeignKey("Content.Server.Database.ServerRoleUnban", "BanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_server_role_unban_server_role_ban_ban_id"); + + b.Navigation("Ban"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerUnban", b => + { + b.HasOne("Content.Server.Database.ServerBan", "Ban") + .WithOne("Unban") + .HasForeignKey("Content.Server.Database.ServerUnban", "BanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_server_unban_server_ban_ban_id"); + + b.Navigation("Ban"); + }); + + modelBuilder.Entity("Content.Server.Database.Trait", b => + { + b.HasOne("Content.Server.Database.Profile", "Profile") + .WithMany("Traits") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_trait_profile_profile_id"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("PlayerRound", b => + { + b.HasOne("Content.Server.Database.Player", null) + .WithMany() + .HasForeignKey("PlayersId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_player_round_player_players_id"); + + b.HasOne("Content.Server.Database.Round", null) + .WithMany() + .HasForeignKey("RoundsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_player_round_round_rounds_id"); + }); + + modelBuilder.Entity("Content.Server.Database.Admin", b => + { + b.Navigation("Flags"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLog", b => + { + b.Navigation("Players"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminRank", b => + { + b.Navigation("Admins"); + + b.Navigation("Flags"); + }); + + modelBuilder.Entity("Content.Server.Database.ConnectionLog", b => + { + b.Navigation("BanHits"); + }); + + modelBuilder.Entity("Content.Server.Database.Player", b => + { + b.Navigation("AdminLogs"); + + b.Navigation("AdminMessagesCreated"); + + b.Navigation("AdminMessagesDeleted"); + + b.Navigation("AdminMessagesLastEdited"); + + b.Navigation("AdminMessagesReceived"); + + b.Navigation("AdminNotesCreated"); + + b.Navigation("AdminNotesDeleted"); + + b.Navigation("AdminNotesLastEdited"); + + b.Navigation("AdminNotesReceived"); + + b.Navigation("AdminServerBansCreated"); + + b.Navigation("AdminServerBansLastEdited"); + + b.Navigation("AdminServerRoleBansCreated"); + + b.Navigation("AdminServerRoleBansLastEdited"); + + b.Navigation("AdminWatchlistsCreated"); + + b.Navigation("AdminWatchlistsDeleted"); + + b.Navigation("AdminWatchlistsLastEdited"); + + b.Navigation("AdminWatchlistsReceived"); + + b.Navigation("JobWhitelists"); + }); + + modelBuilder.Entity("Content.Server.Database.Preference", b => + { + b.Navigation("Profiles"); + }); + + modelBuilder.Entity("Content.Server.Database.Profile", b => + { + b.Navigation("Antags"); + + b.Navigation("Jobs"); + + b.Navigation("Loadouts"); + + b.Navigation("Traits"); + }); + + modelBuilder.Entity("Content.Server.Database.Round", b => + { + b.Navigation("AdminLogs"); + }); + + modelBuilder.Entity("Content.Server.Database.Server", b => + { + b.Navigation("ConnectionLogs"); + + b.Navigation("Rounds"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBan", b => + { + b.Navigation("BanHits"); + + b.Navigation("Unban"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleBan", b => + { + b.Navigation("Unban"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Content.Server.Database/Migrations/Postgres/20241029025707_CustomLoadoutNameDescriptionColor.cs b/Content.Server.Database/Migrations/Postgres/20241029025707_CustomLoadoutNameDescriptionColor.cs new file mode 100644 index 00000000000..3b77dba49be --- /dev/null +++ b/Content.Server.Database/Migrations/Postgres/20241029025707_CustomLoadoutNameDescriptionColor.cs @@ -0,0 +1,48 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Content.Server.Database.Migrations.Postgres +{ + /// + public partial class CustomLoadoutNameDescriptionColor : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "custom_color_tint", + table: "loadout", + type: "text", + nullable: true); + + migrationBuilder.AddColumn( + name: "custom_description", + table: "loadout", + type: "text", + nullable: true); + + migrationBuilder.AddColumn( + name: "custom_name", + table: "loadout", + type: "text", + nullable: true); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "custom_color_tint", + table: "loadout"); + + migrationBuilder.DropColumn( + name: "custom_description", + table: "loadout"); + + migrationBuilder.DropColumn( + name: "custom_name", + table: "loadout"); + } + } +} diff --git a/Content.Server.Database/Migrations/Postgres/20241106073335_CustomLoadoutHeirlooms.Designer.cs b/Content.Server.Database/Migrations/Postgres/20241106073335_CustomLoadoutHeirlooms.Designer.cs new file mode 100644 index 00000000000..6ee3e907ad6 --- /dev/null +++ b/Content.Server.Database/Migrations/Postgres/20241106073335_CustomLoadoutHeirlooms.Designer.cs @@ -0,0 +1,1912 @@ +// +using System; +using System.Net; +using System.Text.Json; +using Content.Server.Database; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; +using NpgsqlTypes; + +#nullable disable + +namespace Content.Server.Database.Migrations.Postgres +{ + [DbContext(typeof(PostgresServerDbContext))] + [Migration("20241106073335_CustomLoadoutHeirlooms")] + partial class CustomLoadoutHeirlooms + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.0") + .HasAnnotation("Relational:MaxIdentifierLength", 63); + + NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); + + modelBuilder.Entity("Content.Server.Database.Admin", b => + { + b.Property("UserId") + .ValueGeneratedOnAdd() + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.Property("AdminRankId") + .HasColumnType("integer") + .HasColumnName("admin_rank_id"); + + b.Property("Title") + .HasColumnType("text") + .HasColumnName("title"); + + b.HasKey("UserId") + .HasName("PK_admin"); + + b.HasIndex("AdminRankId") + .HasDatabaseName("IX_admin_admin_rank_id"); + + b.ToTable("admin", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminFlag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("admin_flag_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AdminId") + .HasColumnType("uuid") + .HasColumnName("admin_id"); + + b.Property("Flag") + .IsRequired() + .HasColumnType("text") + .HasColumnName("flag"); + + b.Property("Negative") + .HasColumnType("boolean") + .HasColumnName("negative"); + + b.HasKey("Id") + .HasName("PK_admin_flag"); + + b.HasIndex("AdminId") + .HasDatabaseName("IX_admin_flag_admin_id"); + + b.HasIndex("Flag", "AdminId") + .IsUnique(); + + b.ToTable("admin_flag", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLog", b => + { + b.Property("RoundId") + .HasColumnType("integer") + .HasColumnName("round_id"); + + b.Property("Id") + .HasColumnType("integer") + .HasColumnName("admin_log_id"); + + b.Property("Date") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.Property("Impact") + .HasColumnType("smallint") + .HasColumnName("impact"); + + b.Property("Json") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("json"); + + b.Property("Message") + .IsRequired() + .HasColumnType("text") + .HasColumnName("message"); + + b.Property("Type") + .HasColumnType("integer") + .HasColumnName("type"); + + b.HasKey("RoundId", "Id") + .HasName("PK_admin_log"); + + b.HasIndex("Date"); + + b.HasIndex("Message") + .HasAnnotation("Npgsql:TsVectorConfig", "english"); + + NpgsqlIndexBuilderExtensions.HasMethod(b.HasIndex("Message"), "GIN"); + + b.HasIndex("Type") + .HasDatabaseName("IX_admin_log_type"); + + b.ToTable("admin_log", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLogPlayer", b => + { + b.Property("RoundId") + .HasColumnType("integer") + .HasColumnName("round_id"); + + b.Property("LogId") + .HasColumnType("integer") + .HasColumnName("log_id"); + + b.Property("PlayerUserId") + .HasColumnType("uuid") + .HasColumnName("player_user_id"); + + b.HasKey("RoundId", "LogId", "PlayerUserId") + .HasName("PK_admin_log_player"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_admin_log_player_player_user_id"); + + b.ToTable("admin_log_player", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminMessage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("admin_messages_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("CreatedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("created_at"); + + b.Property("CreatedById") + .HasColumnType("uuid") + .HasColumnName("created_by_id"); + + b.Property("Deleted") + .HasColumnType("boolean") + .HasColumnName("deleted"); + + b.Property("DeletedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("deleted_at"); + + b.Property("DeletedById") + .HasColumnType("uuid") + .HasColumnName("deleted_by_id"); + + b.Property("Dismissed") + .HasColumnType("boolean") + .HasColumnName("dismissed"); + + b.Property("ExpirationTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("expiration_time"); + + b.Property("LastEditedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("uuid") + .HasColumnName("last_edited_by_id"); + + b.Property("Message") + .IsRequired() + .HasMaxLength(4096) + .HasColumnType("character varying(4096)") + .HasColumnName("message"); + + b.Property("PlayerUserId") + .HasColumnType("uuid") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("interval") + .HasColumnName("playtime_at_note"); + + b.Property("RoundId") + .HasColumnType("integer") + .HasColumnName("round_id"); + + b.Property("Seen") + .HasColumnType("boolean") + .HasColumnName("seen"); + + b.HasKey("Id") + .HasName("PK_admin_messages"); + + b.HasIndex("CreatedById"); + + b.HasIndex("DeletedById"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_admin_messages_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_admin_messages_round_id"); + + b.ToTable("admin_messages", null, t => + { + t.HasCheckConstraint("NotDismissedAndSeen", "NOT dismissed OR seen"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.AdminNote", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("admin_notes_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("CreatedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("created_at"); + + b.Property("CreatedById") + .HasColumnType("uuid") + .HasColumnName("created_by_id"); + + b.Property("Deleted") + .HasColumnType("boolean") + .HasColumnName("deleted"); + + b.Property("DeletedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("deleted_at"); + + b.Property("DeletedById") + .HasColumnType("uuid") + .HasColumnName("deleted_by_id"); + + b.Property("ExpirationTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("expiration_time"); + + b.Property("LastEditedAt") + .IsRequired() + .HasColumnType("timestamp with time zone") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("uuid") + .HasColumnName("last_edited_by_id"); + + b.Property("Message") + .IsRequired() + .HasMaxLength(4096) + .HasColumnType("character varying(4096)") + .HasColumnName("message"); + + b.Property("PlayerUserId") + .HasColumnType("uuid") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("interval") + .HasColumnName("playtime_at_note"); + + b.Property("RoundId") + .HasColumnType("integer") + .HasColumnName("round_id"); + + b.Property("Secret") + .HasColumnType("boolean") + .HasColumnName("secret"); + + b.Property("Severity") + .HasColumnType("integer") + .HasColumnName("severity"); + + b.HasKey("Id") + .HasName("PK_admin_notes"); + + b.HasIndex("CreatedById"); + + b.HasIndex("DeletedById"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_admin_notes_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_admin_notes_round_id"); + + b.ToTable("admin_notes", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminRank", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("admin_rank_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name"); + + b.HasKey("Id") + .HasName("PK_admin_rank"); + + b.ToTable("admin_rank", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminRankFlag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("admin_rank_flag_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AdminRankId") + .HasColumnType("integer") + .HasColumnName("admin_rank_id"); + + b.Property("Flag") + .IsRequired() + .HasColumnType("text") + .HasColumnName("flag"); + + b.HasKey("Id") + .HasName("PK_admin_rank_flag"); + + b.HasIndex("AdminRankId"); + + b.HasIndex("Flag", "AdminRankId") + .IsUnique(); + + b.ToTable("admin_rank_flag", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminWatchlist", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("admin_watchlists_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("CreatedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("created_at"); + + b.Property("CreatedById") + .HasColumnType("uuid") + .HasColumnName("created_by_id"); + + b.Property("Deleted") + .HasColumnType("boolean") + .HasColumnName("deleted"); + + b.Property("DeletedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("deleted_at"); + + b.Property("DeletedById") + .HasColumnType("uuid") + .HasColumnName("deleted_by_id"); + + b.Property("ExpirationTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("expiration_time"); + + b.Property("LastEditedAt") + .IsRequired() + .HasColumnType("timestamp with time zone") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("uuid") + .HasColumnName("last_edited_by_id"); + + b.Property("Message") + .IsRequired() + .HasMaxLength(4096) + .HasColumnType("character varying(4096)") + .HasColumnName("message"); + + b.Property("PlayerUserId") + .HasColumnType("uuid") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("interval") + .HasColumnName("playtime_at_note"); + + b.Property("RoundId") + .HasColumnType("integer") + .HasColumnName("round_id"); + + b.HasKey("Id") + .HasName("PK_admin_watchlists"); + + b.HasIndex("CreatedById"); + + b.HasIndex("DeletedById"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_admin_watchlists_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_admin_watchlists_round_id"); + + b.ToTable("admin_watchlists", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Antag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("antag_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AntagName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("antag_name"); + + b.Property("ProfileId") + .HasColumnType("integer") + .HasColumnName("profile_id"); + + b.HasKey("Id") + .HasName("PK_antag"); + + b.HasIndex("ProfileId", "AntagName") + .IsUnique(); + + b.ToTable("antag", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AssignedUserId", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("assigned_user_id_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("UserId") + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.Property("UserName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("user_name"); + + b.HasKey("Id") + .HasName("PK_assigned_user_id"); + + b.HasIndex("UserId") + .IsUnique(); + + b.HasIndex("UserName") + .IsUnique(); + + b.ToTable("assigned_user_id", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.BanTemplate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("ban_template_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AutoDelete") + .HasColumnType("boolean") + .HasColumnName("auto_delete"); + + b.Property("ExemptFlags") + .HasColumnType("integer") + .HasColumnName("exempt_flags"); + + b.Property("Hidden") + .HasColumnType("boolean") + .HasColumnName("hidden"); + + b.Property("Length") + .HasColumnType("interval") + .HasColumnName("length"); + + b.Property("Reason") + .IsRequired() + .HasColumnType("text") + .HasColumnName("reason"); + + b.Property("Severity") + .HasColumnType("integer") + .HasColumnName("severity"); + + b.Property("Title") + .IsRequired() + .HasColumnType("text") + .HasColumnName("title"); + + b.HasKey("Id") + .HasName("PK_ban_template"); + + b.ToTable("ban_template", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ConnectionLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("connection_log_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Address") + .IsRequired() + .HasColumnType("inet") + .HasColumnName("address"); + + b.Property("Denied") + .HasColumnType("smallint") + .HasColumnName("denied"); + + b.Property("HWId") + .HasColumnType("bytea") + .HasColumnName("hwid"); + + b.Property("ServerId") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasDefaultValue(0) + .HasColumnName("server_id"); + + b.Property("Time") + .HasColumnType("timestamp with time zone") + .HasColumnName("time"); + + b.Property("UserId") + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.Property("UserName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("user_name"); + + b.HasKey("Id") + .HasName("PK_connection_log"); + + b.HasIndex("ServerId") + .HasDatabaseName("IX_connection_log_server_id"); + + b.HasIndex("UserId"); + + b.ToTable("connection_log", null, t => + { + t.HasCheckConstraint("AddressNotIPv6MappedIPv4", "NOT inet '::ffff:0.0.0.0/96' >>= address"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.Job", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("job_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("JobName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("job_name"); + + b.Property("Priority") + .HasColumnType("integer") + .HasColumnName("priority"); + + b.Property("ProfileId") + .HasColumnType("integer") + .HasColumnName("profile_id"); + + b.HasKey("Id") + .HasName("PK_job"); + + b.HasIndex("ProfileId"); + + b.HasIndex("ProfileId", "JobName") + .IsUnique(); + + b.HasIndex(new[] { "ProfileId" }, "IX_job_one_high_priority") + .IsUnique() + .HasFilter("priority = 3"); + + b.ToTable("job", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Loadout", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("loadout_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("CustomColorTint") + .HasColumnType("text") + .HasColumnName("custom_color_tint"); + + b.Property("CustomDescription") + .HasColumnType("text") + .HasColumnName("custom_description"); + + b.Property("CustomHeirloom") + .HasColumnType("boolean") + .HasColumnName("custom_heirloom"); + + b.Property("CustomName") + .HasColumnType("text") + .HasColumnName("custom_name"); + + b.Property("LoadoutName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("loadout_name"); + + b.Property("ProfileId") + .HasColumnType("integer") + .HasColumnName("profile_id"); + + b.HasKey("Id") + .HasName("PK_loadout"); + + b.HasIndex("ProfileId", "LoadoutName") + .IsUnique(); + + b.ToTable("loadout", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.PlayTime", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("play_time_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("PlayerId") + .HasColumnType("uuid") + .HasColumnName("player_id"); + + b.Property("TimeSpent") + .HasColumnType("interval") + .HasColumnName("time_spent"); + + b.Property("Tracker") + .IsRequired() + .HasColumnType("text") + .HasColumnName("tracker"); + + b.HasKey("Id") + .HasName("PK_play_time"); + + b.HasIndex("PlayerId", "Tracker") + .IsUnique(); + + b.ToTable("play_time", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Player", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("player_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("FirstSeenTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("first_seen_time"); + + b.Property("LastReadRules") + .HasColumnType("timestamp with time zone") + .HasColumnName("last_read_rules"); + + b.Property("LastSeenAddress") + .IsRequired() + .HasColumnType("inet") + .HasColumnName("last_seen_address"); + + b.Property("LastSeenHWId") + .HasColumnType("bytea") + .HasColumnName("last_seen_hwid"); + + b.Property("LastSeenTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("last_seen_time"); + + b.Property("LastSeenUserName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("last_seen_user_name"); + + b.Property("UserId") + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.HasKey("Id") + .HasName("PK_player"); + + b.HasAlternateKey("UserId") + .HasName("ak_player_user_id"); + + b.HasIndex("LastSeenUserName"); + + b.HasIndex("UserId") + .IsUnique(); + + b.ToTable("player", null, t => + { + t.HasCheckConstraint("LastSeenAddressNotIPv6MappedIPv4", "NOT inet '::ffff:0.0.0.0/96' >>= last_seen_address"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.Preference", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("preference_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("AdminOOCColor") + .IsRequired() + .HasColumnType("text") + .HasColumnName("admin_ooc_color"); + + b.Property("SelectedCharacterSlot") + .HasColumnType("integer") + .HasColumnName("selected_character_slot"); + + b.Property("UserId") + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.HasKey("Id") + .HasName("PK_preference"); + + b.HasIndex("UserId") + .IsUnique(); + + b.ToTable("preference", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Profile", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("profile_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Age") + .HasColumnType("integer") + .HasColumnName("age"); + + b.Property("Backpack") + .IsRequired() + .HasColumnType("text") + .HasColumnName("backpack"); + + b.Property("CharacterName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("char_name"); + + b.Property("Clothing") + .IsRequired() + .HasColumnType("text") + .HasColumnName("clothing"); + + b.Property("CustomSpecieName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("custom_specie_name"); + + b.Property("EyeColor") + .IsRequired() + .HasColumnType("text") + .HasColumnName("eye_color"); + + b.Property("FacialHairColor") + .IsRequired() + .HasColumnType("text") + .HasColumnName("facial_hair_color"); + + b.Property("FacialHairName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("facial_hair_name"); + + b.Property("FlavorText") + .IsRequired() + .HasColumnType("text") + .HasColumnName("flavor_text"); + + b.Property("Gender") + .IsRequired() + .HasColumnType("text") + .HasColumnName("gender"); + + b.Property("HairColor") + .IsRequired() + .HasColumnType("text") + .HasColumnName("hair_color"); + + b.Property("HairName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("hair_name"); + + b.Property("Height") + .HasColumnType("real") + .HasColumnName("height"); + + b.Property("Markings") + .HasColumnType("jsonb") + .HasColumnName("markings"); + + b.Property("PreferenceId") + .HasColumnType("integer") + .HasColumnName("preference_id"); + + b.Property("PreferenceUnavailable") + .HasColumnType("integer") + .HasColumnName("pref_unavailable"); + + b.Property("Sex") + .IsRequired() + .HasColumnType("text") + .HasColumnName("sex"); + + b.Property("SkinColor") + .IsRequired() + .HasColumnType("text") + .HasColumnName("skin_color"); + + b.Property("Slot") + .HasColumnType("integer") + .HasColumnName("slot"); + + b.Property("SpawnPriority") + .HasColumnType("integer") + .HasColumnName("spawn_priority"); + + b.Property("Species") + .IsRequired() + .HasColumnType("text") + .HasColumnName("species"); + + b.Property("Width") + .HasColumnType("real") + .HasColumnName("width"); + + b.HasKey("Id") + .HasName("PK_profile"); + + b.HasIndex("PreferenceId") + .HasDatabaseName("IX_profile_preference_id"); + + b.HasIndex("Slot", "PreferenceId") + .IsUnique(); + + b.ToTable("profile", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.RoleWhitelist", b => + { + b.Property("PlayerUserId") + .HasColumnType("uuid") + .HasColumnName("player_user_id"); + + b.Property("RoleId") + .HasColumnType("text") + .HasColumnName("role_id"); + + b.HasKey("PlayerUserId", "RoleId") + .HasName("PK_role_whitelists"); + + b.ToTable("role_whitelists", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Round", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("round_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("ServerId") + .HasColumnType("integer") + .HasColumnName("server_id"); + + b.Property("StartDate") + .HasColumnType("timestamp with time zone") + .HasColumnName("start_date"); + + b.HasKey("Id") + .HasName("PK_round"); + + b.HasIndex("ServerId") + .HasDatabaseName("IX_round_server_id"); + + b.HasIndex("StartDate"); + + b.ToTable("round", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Server", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("server_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Name") + .IsRequired() + .HasColumnType("text") + .HasColumnName("name"); + + b.HasKey("Id") + .HasName("PK_server"); + + b.ToTable("server", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBan", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("server_ban_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Address") + .HasColumnType("inet") + .HasColumnName("address"); + + b.Property("AutoDelete") + .HasColumnType("boolean") + .HasColumnName("auto_delete"); + + b.Property("BanTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("ban_time"); + + b.Property("BanningAdmin") + .HasColumnType("uuid") + .HasColumnName("banning_admin"); + + b.Property("ExemptFlags") + .HasColumnType("integer") + .HasColumnName("exempt_flags"); + + b.Property("ExpirationTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("expiration_time"); + + b.Property("HWId") + .HasColumnType("bytea") + .HasColumnName("hwid"); + + b.Property("Hidden") + .HasColumnType("boolean") + .HasColumnName("hidden"); + + b.Property("LastEditedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("uuid") + .HasColumnName("last_edited_by_id"); + + b.Property("PlayerUserId") + .HasColumnType("uuid") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("interval") + .HasColumnName("playtime_at_note"); + + b.Property("Reason") + .IsRequired() + .HasColumnType("text") + .HasColumnName("reason"); + + b.Property("RoundId") + .HasColumnType("integer") + .HasColumnName("round_id"); + + b.Property("Severity") + .HasColumnType("integer") + .HasColumnName("severity"); + + b.HasKey("Id") + .HasName("PK_server_ban"); + + b.HasIndex("Address"); + + b.HasIndex("BanningAdmin"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_server_ban_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_server_ban_round_id"); + + b.ToTable("server_ban", null, t => + { + t.HasCheckConstraint("AddressNotIPv6MappedIPv4", "NOT inet '::ffff:0.0.0.0/96' >>= address"); + + t.HasCheckConstraint("HaveEitherAddressOrUserIdOrHWId", "address IS NOT NULL OR player_user_id IS NOT NULL OR hwid IS NOT NULL"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBanExemption", b => + { + b.Property("UserId") + .ValueGeneratedOnAdd() + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.Property("Flags") + .HasColumnType("integer") + .HasColumnName("flags"); + + b.HasKey("UserId") + .HasName("PK_server_ban_exemption"); + + b.ToTable("server_ban_exemption", null, t => + { + t.HasCheckConstraint("FlagsNotZero", "flags != 0"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBanHit", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("server_ban_hit_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("BanId") + .HasColumnType("integer") + .HasColumnName("ban_id"); + + b.Property("ConnectionId") + .HasColumnType("integer") + .HasColumnName("connection_id"); + + b.HasKey("Id") + .HasName("PK_server_ban_hit"); + + b.HasIndex("BanId") + .HasDatabaseName("IX_server_ban_hit_ban_id"); + + b.HasIndex("ConnectionId") + .HasDatabaseName("IX_server_ban_hit_connection_id"); + + b.ToTable("server_ban_hit", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleBan", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("server_role_ban_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Address") + .HasColumnType("inet") + .HasColumnName("address"); + + b.Property("BanTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("ban_time"); + + b.Property("BanningAdmin") + .HasColumnType("uuid") + .HasColumnName("banning_admin"); + + b.Property("ExpirationTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("expiration_time"); + + b.Property("HWId") + .HasColumnType("bytea") + .HasColumnName("hwid"); + + b.Property("Hidden") + .HasColumnType("boolean") + .HasColumnName("hidden"); + + b.Property("LastEditedAt") + .HasColumnType("timestamp with time zone") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("uuid") + .HasColumnName("last_edited_by_id"); + + b.Property("PlayerUserId") + .HasColumnType("uuid") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("interval") + .HasColumnName("playtime_at_note"); + + b.Property("Reason") + .IsRequired() + .HasColumnType("text") + .HasColumnName("reason"); + + b.Property("RoleId") + .IsRequired() + .HasColumnType("text") + .HasColumnName("role_id"); + + b.Property("RoundId") + .HasColumnType("integer") + .HasColumnName("round_id"); + + b.Property("Severity") + .HasColumnType("integer") + .HasColumnName("severity"); + + b.HasKey("Id") + .HasName("PK_server_role_ban"); + + b.HasIndex("Address"); + + b.HasIndex("BanningAdmin"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_server_role_ban_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_server_role_ban_round_id"); + + b.ToTable("server_role_ban", null, t => + { + t.HasCheckConstraint("AddressNotIPv6MappedIPv4", "NOT inet '::ffff:0.0.0.0/96' >>= address"); + + t.HasCheckConstraint("HaveEitherAddressOrUserIdOrHWId", "address IS NOT NULL OR player_user_id IS NOT NULL OR hwid IS NOT NULL"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleUnban", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("role_unban_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("BanId") + .HasColumnType("integer") + .HasColumnName("ban_id"); + + b.Property("UnbanTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("unban_time"); + + b.Property("UnbanningAdmin") + .HasColumnType("uuid") + .HasColumnName("unbanning_admin"); + + b.HasKey("Id") + .HasName("PK_server_role_unban"); + + b.HasIndex("BanId") + .IsUnique(); + + b.ToTable("server_role_unban", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ServerUnban", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("unban_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("BanId") + .HasColumnType("integer") + .HasColumnName("ban_id"); + + b.Property("UnbanTime") + .HasColumnType("timestamp with time zone") + .HasColumnName("unban_time"); + + b.Property("UnbanningAdmin") + .HasColumnType("uuid") + .HasColumnName("unbanning_admin"); + + b.HasKey("Id") + .HasName("PK_server_unban"); + + b.HasIndex("BanId") + .IsUnique(); + + b.ToTable("server_unban", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Trait", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("trait_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("ProfileId") + .HasColumnType("integer") + .HasColumnName("profile_id"); + + b.Property("TraitName") + .IsRequired() + .HasColumnType("text") + .HasColumnName("trait_name"); + + b.HasKey("Id") + .HasName("PK_trait"); + + b.HasIndex("ProfileId", "TraitName") + .IsUnique(); + + b.ToTable("trait", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.UploadedResourceLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("integer") + .HasColumnName("uploaded_resource_log_id"); + + NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + + b.Property("Data") + .IsRequired() + .HasColumnType("bytea") + .HasColumnName("data"); + + b.Property("Date") + .HasColumnType("timestamp with time zone") + .HasColumnName("date"); + + b.Property("Path") + .IsRequired() + .HasColumnType("text") + .HasColumnName("path"); + + b.Property("UserId") + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.HasKey("Id") + .HasName("PK_uploaded_resource_log"); + + b.ToTable("uploaded_resource_log", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Whitelist", b => + { + b.Property("UserId") + .ValueGeneratedOnAdd() + .HasColumnType("uuid") + .HasColumnName("user_id"); + + b.HasKey("UserId") + .HasName("PK_whitelist"); + + b.ToTable("whitelist", (string)null); + }); + + modelBuilder.Entity("PlayerRound", b => + { + b.Property("PlayersId") + .HasColumnType("integer") + .HasColumnName("players_id"); + + b.Property("RoundsId") + .HasColumnType("integer") + .HasColumnName("rounds_id"); + + b.HasKey("PlayersId", "RoundsId") + .HasName("PK_player_round"); + + b.HasIndex("RoundsId") + .HasDatabaseName("IX_player_round_rounds_id"); + + b.ToTable("player_round", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Admin", b => + { + b.HasOne("Content.Server.Database.AdminRank", "AdminRank") + .WithMany("Admins") + .HasForeignKey("AdminRankId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_admin_rank_admin_rank_id"); + + b.Navigation("AdminRank"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminFlag", b => + { + b.HasOne("Content.Server.Database.Admin", "Admin") + .WithMany("Flags") + .HasForeignKey("AdminId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_flag_admin_admin_id"); + + b.Navigation("Admin"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLog", b => + { + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany("AdminLogs") + .HasForeignKey("RoundId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_log_round_round_id"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLogPlayer", b => + { + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("AdminLogs") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_log_player_player_player_user_id"); + + b.HasOne("Content.Server.Database.AdminLog", "Log") + .WithMany("Players") + .HasForeignKey("RoundId", "LogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_log_player_admin_log_round_id_log_id"); + + b.Navigation("Log"); + + b.Navigation("Player"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminMessage", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminMessagesCreated") + .HasForeignKey("CreatedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_messages_player_created_by_id"); + + b.HasOne("Content.Server.Database.Player", "DeletedBy") + .WithMany("AdminMessagesDeleted") + .HasForeignKey("DeletedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_messages_player_deleted_by_id"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminMessagesLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_messages_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("AdminMessagesReceived") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_admin_messages_player_player_user_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_admin_messages_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("DeletedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Player"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminNote", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminNotesCreated") + .HasForeignKey("CreatedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_notes_player_created_by_id"); + + b.HasOne("Content.Server.Database.Player", "DeletedBy") + .WithMany("AdminNotesDeleted") + .HasForeignKey("DeletedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_notes_player_deleted_by_id"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminNotesLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_notes_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("AdminNotesReceived") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_admin_notes_player_player_user_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_admin_notes_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("DeletedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Player"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminRankFlag", b => + { + b.HasOne("Content.Server.Database.AdminRank", "Rank") + .WithMany("Flags") + .HasForeignKey("AdminRankId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_rank_flag_admin_rank_admin_rank_id"); + + b.Navigation("Rank"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminWatchlist", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminWatchlistsCreated") + .HasForeignKey("CreatedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_watchlists_player_created_by_id"); + + b.HasOne("Content.Server.Database.Player", "DeletedBy") + .WithMany("AdminWatchlistsDeleted") + .HasForeignKey("DeletedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_watchlists_player_deleted_by_id"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminWatchlistsLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_watchlists_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("AdminWatchlistsReceived") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_admin_watchlists_player_player_user_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_admin_watchlists_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("DeletedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Player"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.Antag", b => + { + b.HasOne("Content.Server.Database.Profile", "Profile") + .WithMany("Antags") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_antag_profile_profile_id"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("Content.Server.Database.ConnectionLog", b => + { + b.HasOne("Content.Server.Database.Server", "Server") + .WithMany("ConnectionLogs") + .HasForeignKey("ServerId") + .OnDelete(DeleteBehavior.SetNull) + .IsRequired() + .HasConstraintName("FK_connection_log_server_server_id"); + + b.Navigation("Server"); + }); + + modelBuilder.Entity("Content.Server.Database.Job", b => + { + b.HasOne("Content.Server.Database.Profile", "Profile") + .WithMany("Jobs") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_job_profile_profile_id"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("Content.Server.Database.Loadout", b => + { + b.HasOne("Content.Server.Database.Profile", "Profile") + .WithMany("Loadouts") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_loadout_profile_profile_id"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("Content.Server.Database.Profile", b => + { + b.HasOne("Content.Server.Database.Preference", "Preference") + .WithMany("Profiles") + .HasForeignKey("PreferenceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_profile_preference_preference_id"); + + b.Navigation("Preference"); + }); + + modelBuilder.Entity("Content.Server.Database.RoleWhitelist", b => + { + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("JobWhitelists") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_role_whitelists_player_player_user_id"); + + b.Navigation("Player"); + }); + + modelBuilder.Entity("Content.Server.Database.Round", b => + { + b.HasOne("Content.Server.Database.Server", "Server") + .WithMany("Rounds") + .HasForeignKey("ServerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_round_server_server_id"); + + b.Navigation("Server"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBan", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminServerBansCreated") + .HasForeignKey("BanningAdmin") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_server_ban_player_banning_admin"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminServerBansLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_server_ban_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_server_ban_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBanHit", b => + { + b.HasOne("Content.Server.Database.ServerBan", "Ban") + .WithMany("BanHits") + .HasForeignKey("BanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_server_ban_hit_server_ban_ban_id"); + + b.HasOne("Content.Server.Database.ConnectionLog", "Connection") + .WithMany("BanHits") + .HasForeignKey("ConnectionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_server_ban_hit_connection_log_connection_id"); + + b.Navigation("Ban"); + + b.Navigation("Connection"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleBan", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminServerRoleBansCreated") + .HasForeignKey("BanningAdmin") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_server_role_ban_player_banning_admin"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminServerRoleBansLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_server_role_ban_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_server_role_ban_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleUnban", b => + { + b.HasOne("Content.Server.Database.ServerRoleBan", "Ban") + .WithOne("Unban") + .HasForeignKey("Content.Server.Database.ServerRoleUnban", "BanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_server_role_unban_server_role_ban_ban_id"); + + b.Navigation("Ban"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerUnban", b => + { + b.HasOne("Content.Server.Database.ServerBan", "Ban") + .WithOne("Unban") + .HasForeignKey("Content.Server.Database.ServerUnban", "BanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_server_unban_server_ban_ban_id"); + + b.Navigation("Ban"); + }); + + modelBuilder.Entity("Content.Server.Database.Trait", b => + { + b.HasOne("Content.Server.Database.Profile", "Profile") + .WithMany("Traits") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_trait_profile_profile_id"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("PlayerRound", b => + { + b.HasOne("Content.Server.Database.Player", null) + .WithMany() + .HasForeignKey("PlayersId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_player_round_player_players_id"); + + b.HasOne("Content.Server.Database.Round", null) + .WithMany() + .HasForeignKey("RoundsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_player_round_round_rounds_id"); + }); + + modelBuilder.Entity("Content.Server.Database.Admin", b => + { + b.Navigation("Flags"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLog", b => + { + b.Navigation("Players"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminRank", b => + { + b.Navigation("Admins"); + + b.Navigation("Flags"); + }); + + modelBuilder.Entity("Content.Server.Database.ConnectionLog", b => + { + b.Navigation("BanHits"); + }); + + modelBuilder.Entity("Content.Server.Database.Player", b => + { + b.Navigation("AdminLogs"); + + b.Navigation("AdminMessagesCreated"); + + b.Navigation("AdminMessagesDeleted"); + + b.Navigation("AdminMessagesLastEdited"); + + b.Navigation("AdminMessagesReceived"); + + b.Navigation("AdminNotesCreated"); + + b.Navigation("AdminNotesDeleted"); + + b.Navigation("AdminNotesLastEdited"); + + b.Navigation("AdminNotesReceived"); + + b.Navigation("AdminServerBansCreated"); + + b.Navigation("AdminServerBansLastEdited"); + + b.Navigation("AdminServerRoleBansCreated"); + + b.Navigation("AdminServerRoleBansLastEdited"); + + b.Navigation("AdminWatchlistsCreated"); + + b.Navigation("AdminWatchlistsDeleted"); + + b.Navigation("AdminWatchlistsLastEdited"); + + b.Navigation("AdminWatchlistsReceived"); + + b.Navigation("JobWhitelists"); + }); + + modelBuilder.Entity("Content.Server.Database.Preference", b => + { + b.Navigation("Profiles"); + }); + + modelBuilder.Entity("Content.Server.Database.Profile", b => + { + b.Navigation("Antags"); + + b.Navigation("Jobs"); + + b.Navigation("Loadouts"); + + b.Navigation("Traits"); + }); + + modelBuilder.Entity("Content.Server.Database.Round", b => + { + b.Navigation("AdminLogs"); + }); + + modelBuilder.Entity("Content.Server.Database.Server", b => + { + b.Navigation("ConnectionLogs"); + + b.Navigation("Rounds"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBan", b => + { + b.Navigation("BanHits"); + + b.Navigation("Unban"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleBan", b => + { + b.Navigation("Unban"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Content.Server.Database/Migrations/Postgres/20241106073335_CustomLoadoutHeirlooms.cs b/Content.Server.Database/Migrations/Postgres/20241106073335_CustomLoadoutHeirlooms.cs new file mode 100644 index 00000000000..1cc7e96bd05 --- /dev/null +++ b/Content.Server.Database/Migrations/Postgres/20241106073335_CustomLoadoutHeirlooms.cs @@ -0,0 +1,28 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Content.Server.Database.Migrations.Postgres +{ + /// + public partial class CustomLoadoutHeirlooms : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "custom_heirloom", + table: "loadout", + type: "boolean", + nullable: true); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "custom_heirloom", + table: "loadout"); + } + } +} diff --git a/Content.Server.Database/Migrations/Postgres/PostgresServerDbContextModelSnapshot.cs b/Content.Server.Database/Migrations/Postgres/PostgresServerDbContextModelSnapshot.cs index 0282063649b..5d6971a7a6c 100644 --- a/Content.Server.Database/Migrations/Postgres/PostgresServerDbContextModelSnapshot.cs +++ b/Content.Server.Database/Migrations/Postgres/PostgresServerDbContextModelSnapshot.cs @@ -658,6 +658,22 @@ protected override void BuildModel(ModelBuilder modelBuilder) NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); + b.Property("CustomColorTint") + .HasColumnType("text") + .HasColumnName("custom_color_tint"); + + b.Property("CustomDescription") + .HasColumnType("text") + .HasColumnName("custom_description"); + + b.Property("CustomHeirloom") + .HasColumnType("boolean") + .HasColumnName("custom_heirloom"); + + b.Property("CustomName") + .HasColumnType("text") + .HasColumnName("custom_name"); + b.Property("LoadoutName") .IsRequired() .HasColumnType("text") @@ -720,10 +736,6 @@ protected override void BuildModel(ModelBuilder modelBuilder) .HasColumnType("timestamp with time zone") .HasColumnName("first_seen_time"); - b.Property("LastReadRules") - .HasColumnType("timestamp with time zone") - .HasColumnName("last_read_rules"); - b.Property("LastSeenAddress") .IsRequired() .HasColumnType("inet") diff --git a/Content.Server.Database/Migrations/Sqlite/20240606065717_RemoveLastReadRules.Designer.cs b/Content.Server.Database/Migrations/Sqlite/20240606065717_RemoveLastReadRules.Designer.cs new file mode 100644 index 00000000000..fceb831f00e --- /dev/null +++ b/Content.Server.Database/Migrations/Sqlite/20240606065717_RemoveLastReadRules.Designer.cs @@ -0,0 +1,1834 @@ +// +using System; +using Content.Server.Database; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace Content.Server.Database.Migrations.Sqlite +{ + [DbContext(typeof(SqliteServerDbContext))] + [Migration("20240606065717_RemoveLastReadRules")] + partial class RemoveLastReadRules + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder.HasAnnotation("ProductVersion", "8.0.0"); + + modelBuilder.Entity("Content.Server.Database.Admin", b => + { + b.Property("UserId") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT") + .HasColumnName("user_id"); + + b.Property("AdminRankId") + .HasColumnType("INTEGER") + .HasColumnName("admin_rank_id"); + + b.Property("Title") + .HasColumnType("TEXT") + .HasColumnName("title"); + + b.HasKey("UserId") + .HasName("PK_admin"); + + b.HasIndex("AdminRankId") + .HasDatabaseName("IX_admin_admin_rank_id"); + + b.ToTable("admin", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminFlag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("admin_flag_id"); + + b.Property("AdminId") + .HasColumnType("TEXT") + .HasColumnName("admin_id"); + + b.Property("Flag") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("flag"); + + b.Property("Negative") + .HasColumnType("INTEGER") + .HasColumnName("negative"); + + b.HasKey("Id") + .HasName("PK_admin_flag"); + + b.HasIndex("AdminId") + .HasDatabaseName("IX_admin_flag_admin_id"); + + b.HasIndex("Flag", "AdminId") + .IsUnique(); + + b.ToTable("admin_flag", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLog", b => + { + b.Property("RoundId") + .HasColumnType("INTEGER") + .HasColumnName("round_id"); + + b.Property("Id") + .HasColumnType("INTEGER") + .HasColumnName("admin_log_id"); + + b.Property("Date") + .HasColumnType("TEXT") + .HasColumnName("date"); + + b.Property("Impact") + .HasColumnType("INTEGER") + .HasColumnName("impact"); + + b.Property("Json") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("json"); + + b.Property("Message") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("message"); + + b.Property("Type") + .HasColumnType("INTEGER") + .HasColumnName("type"); + + b.HasKey("RoundId", "Id") + .HasName("PK_admin_log"); + + b.HasIndex("Date"); + + b.HasIndex("Type") + .HasDatabaseName("IX_admin_log_type"); + + b.ToTable("admin_log", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLogPlayer", b => + { + b.Property("RoundId") + .HasColumnType("INTEGER") + .HasColumnName("round_id"); + + b.Property("LogId") + .HasColumnType("INTEGER") + .HasColumnName("log_id"); + + b.Property("PlayerUserId") + .HasColumnType("TEXT") + .HasColumnName("player_user_id"); + + b.HasKey("RoundId", "LogId", "PlayerUserId") + .HasName("PK_admin_log_player"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_admin_log_player_player_user_id"); + + b.ToTable("admin_log_player", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminMessage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("admin_messages_id"); + + b.Property("CreatedAt") + .HasColumnType("TEXT") + .HasColumnName("created_at"); + + b.Property("CreatedById") + .HasColumnType("TEXT") + .HasColumnName("created_by_id"); + + b.Property("Deleted") + .HasColumnType("INTEGER") + .HasColumnName("deleted"); + + b.Property("DeletedAt") + .HasColumnType("TEXT") + .HasColumnName("deleted_at"); + + b.Property("DeletedById") + .HasColumnType("TEXT") + .HasColumnName("deleted_by_id"); + + b.Property("Dismissed") + .HasColumnType("INTEGER") + .HasColumnName("dismissed"); + + b.Property("ExpirationTime") + .HasColumnType("TEXT") + .HasColumnName("expiration_time"); + + b.Property("LastEditedAt") + .HasColumnType("TEXT") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("TEXT") + .HasColumnName("last_edited_by_id"); + + b.Property("Message") + .IsRequired() + .HasMaxLength(4096) + .HasColumnType("TEXT") + .HasColumnName("message"); + + b.Property("PlayerUserId") + .HasColumnType("TEXT") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("TEXT") + .HasColumnName("playtime_at_note"); + + b.Property("RoundId") + .HasColumnType("INTEGER") + .HasColumnName("round_id"); + + b.Property("Seen") + .HasColumnType("INTEGER") + .HasColumnName("seen"); + + b.HasKey("Id") + .HasName("PK_admin_messages"); + + b.HasIndex("CreatedById"); + + b.HasIndex("DeletedById"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_admin_messages_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_admin_messages_round_id"); + + b.ToTable("admin_messages", null, t => + { + t.HasCheckConstraint("NotDismissedAndSeen", "NOT dismissed OR seen"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.AdminNote", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("admin_notes_id"); + + b.Property("CreatedAt") + .HasColumnType("TEXT") + .HasColumnName("created_at"); + + b.Property("CreatedById") + .HasColumnType("TEXT") + .HasColumnName("created_by_id"); + + b.Property("Deleted") + .HasColumnType("INTEGER") + .HasColumnName("deleted"); + + b.Property("DeletedAt") + .HasColumnType("TEXT") + .HasColumnName("deleted_at"); + + b.Property("DeletedById") + .HasColumnType("TEXT") + .HasColumnName("deleted_by_id"); + + b.Property("ExpirationTime") + .HasColumnType("TEXT") + .HasColumnName("expiration_time"); + + b.Property("LastEditedAt") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("TEXT") + .HasColumnName("last_edited_by_id"); + + b.Property("Message") + .IsRequired() + .HasMaxLength(4096) + .HasColumnType("TEXT") + .HasColumnName("message"); + + b.Property("PlayerUserId") + .HasColumnType("TEXT") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("TEXT") + .HasColumnName("playtime_at_note"); + + b.Property("RoundId") + .HasColumnType("INTEGER") + .HasColumnName("round_id"); + + b.Property("Secret") + .HasColumnType("INTEGER") + .HasColumnName("secret"); + + b.Property("Severity") + .HasColumnType("INTEGER") + .HasColumnName("severity"); + + b.HasKey("Id") + .HasName("PK_admin_notes"); + + b.HasIndex("CreatedById"); + + b.HasIndex("DeletedById"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_admin_notes_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_admin_notes_round_id"); + + b.ToTable("admin_notes", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminRank", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("admin_rank_id"); + + b.Property("Name") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("name"); + + b.HasKey("Id") + .HasName("PK_admin_rank"); + + b.ToTable("admin_rank", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminRankFlag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("admin_rank_flag_id"); + + b.Property("AdminRankId") + .HasColumnType("INTEGER") + .HasColumnName("admin_rank_id"); + + b.Property("Flag") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("flag"); + + b.HasKey("Id") + .HasName("PK_admin_rank_flag"); + + b.HasIndex("AdminRankId"); + + b.HasIndex("Flag", "AdminRankId") + .IsUnique(); + + b.ToTable("admin_rank_flag", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminWatchlist", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("admin_watchlists_id"); + + b.Property("CreatedAt") + .HasColumnType("TEXT") + .HasColumnName("created_at"); + + b.Property("CreatedById") + .HasColumnType("TEXT") + .HasColumnName("created_by_id"); + + b.Property("Deleted") + .HasColumnType("INTEGER") + .HasColumnName("deleted"); + + b.Property("DeletedAt") + .HasColumnType("TEXT") + .HasColumnName("deleted_at"); + + b.Property("DeletedById") + .HasColumnType("TEXT") + .HasColumnName("deleted_by_id"); + + b.Property("ExpirationTime") + .HasColumnType("TEXT") + .HasColumnName("expiration_time"); + + b.Property("LastEditedAt") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("TEXT") + .HasColumnName("last_edited_by_id"); + + b.Property("Message") + .IsRequired() + .HasMaxLength(4096) + .HasColumnType("TEXT") + .HasColumnName("message"); + + b.Property("PlayerUserId") + .HasColumnType("TEXT") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("TEXT") + .HasColumnName("playtime_at_note"); + + b.Property("RoundId") + .HasColumnType("INTEGER") + .HasColumnName("round_id"); + + b.HasKey("Id") + .HasName("PK_admin_watchlists"); + + b.HasIndex("CreatedById"); + + b.HasIndex("DeletedById"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_admin_watchlists_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_admin_watchlists_round_id"); + + b.ToTable("admin_watchlists", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Antag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("antag_id"); + + b.Property("AntagName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("antag_name"); + + b.Property("ProfileId") + .HasColumnType("INTEGER") + .HasColumnName("profile_id"); + + b.HasKey("Id") + .HasName("PK_antag"); + + b.HasIndex("ProfileId", "AntagName") + .IsUnique(); + + b.ToTable("antag", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AssignedUserId", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("assigned_user_id_id"); + + b.Property("UserId") + .HasColumnType("TEXT") + .HasColumnName("user_id"); + + b.Property("UserName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("user_name"); + + b.HasKey("Id") + .HasName("PK_assigned_user_id"); + + b.HasIndex("UserId") + .IsUnique(); + + b.HasIndex("UserName") + .IsUnique(); + + b.ToTable("assigned_user_id", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ConnectionLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("connection_log_id"); + + b.Property("Address") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("address"); + + b.Property("Denied") + .HasColumnType("INTEGER") + .HasColumnName("denied"); + + b.Property("HWId") + .HasColumnType("BLOB") + .HasColumnName("hwid"); + + b.Property("ServerId") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(0) + .HasColumnName("server_id"); + + b.Property("Time") + .HasColumnType("TEXT") + .HasColumnName("time"); + + b.Property("UserId") + .HasColumnType("TEXT") + .HasColumnName("user_id"); + + b.Property("UserName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("user_name"); + + b.HasKey("Id") + .HasName("PK_connection_log"); + + b.HasIndex("ServerId") + .HasDatabaseName("IX_connection_log_server_id"); + + b.HasIndex("UserId"); + + b.ToTable("connection_log", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Job", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("job_id"); + + b.Property("JobName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("job_name"); + + b.Property("Priority") + .HasColumnType("INTEGER") + .HasColumnName("priority"); + + b.Property("ProfileId") + .HasColumnType("INTEGER") + .HasColumnName("profile_id"); + + b.HasKey("Id") + .HasName("PK_job"); + + b.HasIndex("ProfileId"); + + b.HasIndex("ProfileId", "JobName") + .IsUnique(); + + b.HasIndex(new[] { "ProfileId" }, "IX_job_one_high_priority") + .IsUnique() + .HasFilter("priority = 3"); + + b.ToTable("job", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.PlayTime", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("play_time_id"); + + b.Property("PlayerId") + .HasColumnType("TEXT") + .HasColumnName("player_id"); + + b.Property("TimeSpent") + .HasColumnType("TEXT") + .HasColumnName("time_spent"); + + b.Property("Tracker") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("tracker"); + + b.HasKey("Id") + .HasName("PK_play_time"); + + b.HasIndex("PlayerId", "Tracker") + .IsUnique(); + + b.ToTable("play_time", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Player", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("player_id"); + + b.Property("FirstSeenTime") + .HasColumnType("TEXT") + .HasColumnName("first_seen_time"); + + b.Property("LastSeenAddress") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("last_seen_address"); + + b.Property("LastSeenHWId") + .HasColumnType("BLOB") + .HasColumnName("last_seen_hwid"); + + b.Property("LastSeenTime") + .HasColumnType("TEXT") + .HasColumnName("last_seen_time"); + + b.Property("LastSeenUserName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("last_seen_user_name"); + + b.Property("UserId") + .HasColumnType("TEXT") + .HasColumnName("user_id"); + + b.HasKey("Id") + .HasName("PK_player"); + + b.HasAlternateKey("UserId") + .HasName("ak_player_user_id"); + + b.HasIndex("LastSeenUserName"); + + b.HasIndex("UserId") + .IsUnique(); + + b.ToTable("player", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Preference", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("preference_id"); + + b.Property("AdminOOCColor") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("admin_ooc_color"); + + b.Property("SelectedCharacterSlot") + .HasColumnType("INTEGER") + .HasColumnName("selected_character_slot"); + + b.Property("UserId") + .HasColumnType("TEXT") + .HasColumnName("user_id"); + + b.HasKey("Id") + .HasName("PK_preference"); + + b.HasIndex("UserId") + .IsUnique(); + + b.ToTable("preference", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Profile", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("profile_id"); + + b.Property("Age") + .HasColumnType("INTEGER") + .HasColumnName("age"); + + b.Property("CharacterName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("char_name"); + + b.Property("EyeColor") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("eye_color"); + + b.Property("FacialHairColor") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("facial_hair_color"); + + b.Property("FacialHairName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("facial_hair_name"); + + b.Property("FlavorText") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("flavor_text"); + + b.Property("Gender") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("gender"); + + b.Property("HairColor") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("hair_color"); + + b.Property("HairName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("hair_name"); + + b.Property("Markings") + .HasColumnType("jsonb") + .HasColumnName("markings"); + + b.Property("PreferenceId") + .HasColumnType("INTEGER") + .HasColumnName("preference_id"); + + b.Property("PreferenceUnavailable") + .HasColumnType("INTEGER") + .HasColumnName("pref_unavailable"); + + b.Property("Sex") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("sex"); + + b.Property("SkinColor") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("skin_color"); + + b.Property("Slot") + .HasColumnType("INTEGER") + .HasColumnName("slot"); + + b.Property("SpawnPriority") + .HasColumnType("INTEGER") + .HasColumnName("spawn_priority"); + + b.Property("Species") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("species"); + + b.HasKey("Id") + .HasName("PK_profile"); + + b.HasIndex("PreferenceId") + .HasDatabaseName("IX_profile_preference_id"); + + b.HasIndex("Slot", "PreferenceId") + .IsUnique(); + + b.ToTable("profile", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ProfileLoadout", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("profile_loadout_id"); + + b.Property("LoadoutName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("loadout_name"); + + b.Property("ProfileLoadoutGroupId") + .HasColumnType("INTEGER") + .HasColumnName("profile_loadout_group_id"); + + b.HasKey("Id") + .HasName("PK_profile_loadout"); + + b.HasIndex("ProfileLoadoutGroupId"); + + b.ToTable("profile_loadout", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ProfileLoadoutGroup", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("profile_loadout_group_id"); + + b.Property("GroupName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("group_name"); + + b.Property("ProfileRoleLoadoutId") + .HasColumnType("INTEGER") + .HasColumnName("profile_role_loadout_id"); + + b.HasKey("Id") + .HasName("PK_profile_loadout_group"); + + b.HasIndex("ProfileRoleLoadoutId"); + + b.ToTable("profile_loadout_group", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ProfileRoleLoadout", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("profile_role_loadout_id"); + + b.Property("ProfileId") + .HasColumnType("INTEGER") + .HasColumnName("profile_id"); + + b.Property("RoleName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("role_name"); + + b.HasKey("Id") + .HasName("PK_profile_role_loadout"); + + b.HasIndex("ProfileId"); + + b.ToTable("profile_role_loadout", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.RoleWhitelist", b => + { + b.Property("PlayerUserId") + .HasColumnType("TEXT") + .HasColumnName("player_user_id"); + + b.Property("RoleId") + .HasColumnType("TEXT") + .HasColumnName("role_id"); + + b.HasKey("PlayerUserId", "RoleId") + .HasName("PK_role_whitelists"); + + b.ToTable("role_whitelists", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Round", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("round_id"); + + b.Property("ServerId") + .HasColumnType("INTEGER") + .HasColumnName("server_id"); + + b.Property("StartDate") + .HasColumnType("TEXT") + .HasColumnName("start_date"); + + b.HasKey("Id") + .HasName("PK_round"); + + b.HasIndex("ServerId") + .HasDatabaseName("IX_round_server_id"); + + b.HasIndex("StartDate"); + + b.ToTable("round", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Server", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("server_id"); + + b.Property("Name") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("name"); + + b.HasKey("Id") + .HasName("PK_server"); + + b.ToTable("server", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBan", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("server_ban_id"); + + b.Property("Address") + .HasColumnType("TEXT") + .HasColumnName("address"); + + b.Property("AutoDelete") + .HasColumnType("INTEGER") + .HasColumnName("auto_delete"); + + b.Property("BanTime") + .HasColumnType("TEXT") + .HasColumnName("ban_time"); + + b.Property("BanningAdmin") + .HasColumnType("TEXT") + .HasColumnName("banning_admin"); + + b.Property("ExemptFlags") + .HasColumnType("INTEGER") + .HasColumnName("exempt_flags"); + + b.Property("ExpirationTime") + .HasColumnType("TEXT") + .HasColumnName("expiration_time"); + + b.Property("HWId") + .HasColumnType("BLOB") + .HasColumnName("hwid"); + + b.Property("Hidden") + .HasColumnType("INTEGER") + .HasColumnName("hidden"); + + b.Property("LastEditedAt") + .HasColumnType("TEXT") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("TEXT") + .HasColumnName("last_edited_by_id"); + + b.Property("PlayerUserId") + .HasColumnType("TEXT") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("TEXT") + .HasColumnName("playtime_at_note"); + + b.Property("Reason") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("reason"); + + b.Property("RoundId") + .HasColumnType("INTEGER") + .HasColumnName("round_id"); + + b.Property("Severity") + .HasColumnType("INTEGER") + .HasColumnName("severity"); + + b.HasKey("Id") + .HasName("PK_server_ban"); + + b.HasIndex("Address"); + + b.HasIndex("BanningAdmin"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_server_ban_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_server_ban_round_id"); + + b.ToTable("server_ban", null, t => + { + t.HasCheckConstraint("HaveEitherAddressOrUserIdOrHWId", "address IS NOT NULL OR player_user_id IS NOT NULL OR hwid IS NOT NULL"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBanExemption", b => + { + b.Property("UserId") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT") + .HasColumnName("user_id"); + + b.Property("Flags") + .HasColumnType("INTEGER") + .HasColumnName("flags"); + + b.HasKey("UserId") + .HasName("PK_server_ban_exemption"); + + b.ToTable("server_ban_exemption", null, t => + { + t.HasCheckConstraint("FlagsNotZero", "flags != 0"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBanHit", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("server_ban_hit_id"); + + b.Property("BanId") + .HasColumnType("INTEGER") + .HasColumnName("ban_id"); + + b.Property("ConnectionId") + .HasColumnType("INTEGER") + .HasColumnName("connection_id"); + + b.HasKey("Id") + .HasName("PK_server_ban_hit"); + + b.HasIndex("BanId") + .HasDatabaseName("IX_server_ban_hit_ban_id"); + + b.HasIndex("ConnectionId") + .HasDatabaseName("IX_server_ban_hit_connection_id"); + + b.ToTable("server_ban_hit", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleBan", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("server_role_ban_id"); + + b.Property("Address") + .HasColumnType("TEXT") + .HasColumnName("address"); + + b.Property("BanTime") + .HasColumnType("TEXT") + .HasColumnName("ban_time"); + + b.Property("BanningAdmin") + .HasColumnType("TEXT") + .HasColumnName("banning_admin"); + + b.Property("ExpirationTime") + .HasColumnType("TEXT") + .HasColumnName("expiration_time"); + + b.Property("HWId") + .HasColumnType("BLOB") + .HasColumnName("hwid"); + + b.Property("Hidden") + .HasColumnType("INTEGER") + .HasColumnName("hidden"); + + b.Property("LastEditedAt") + .HasColumnType("TEXT") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("TEXT") + .HasColumnName("last_edited_by_id"); + + b.Property("PlayerUserId") + .HasColumnType("TEXT") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("TEXT") + .HasColumnName("playtime_at_note"); + + b.Property("Reason") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("reason"); + + b.Property("RoleId") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("role_id"); + + b.Property("RoundId") + .HasColumnType("INTEGER") + .HasColumnName("round_id"); + + b.Property("Severity") + .HasColumnType("INTEGER") + .HasColumnName("severity"); + + b.HasKey("Id") + .HasName("PK_server_role_ban"); + + b.HasIndex("Address"); + + b.HasIndex("BanningAdmin"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_server_role_ban_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_server_role_ban_round_id"); + + b.ToTable("server_role_ban", null, t => + { + t.HasCheckConstraint("HaveEitherAddressOrUserIdOrHWId", "address IS NOT NULL OR player_user_id IS NOT NULL OR hwid IS NOT NULL"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleUnban", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("role_unban_id"); + + b.Property("BanId") + .HasColumnType("INTEGER") + .HasColumnName("ban_id"); + + b.Property("UnbanTime") + .HasColumnType("TEXT") + .HasColumnName("unban_time"); + + b.Property("UnbanningAdmin") + .HasColumnType("TEXT") + .HasColumnName("unbanning_admin"); + + b.HasKey("Id") + .HasName("PK_server_role_unban"); + + b.HasIndex("BanId") + .IsUnique(); + + b.ToTable("server_role_unban", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ServerUnban", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("unban_id"); + + b.Property("BanId") + .HasColumnType("INTEGER") + .HasColumnName("ban_id"); + + b.Property("UnbanTime") + .HasColumnType("TEXT") + .HasColumnName("unban_time"); + + b.Property("UnbanningAdmin") + .HasColumnType("TEXT") + .HasColumnName("unbanning_admin"); + + b.HasKey("Id") + .HasName("PK_server_unban"); + + b.HasIndex("BanId") + .IsUnique(); + + b.ToTable("server_unban", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Trait", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("trait_id"); + + b.Property("ProfileId") + .HasColumnType("INTEGER") + .HasColumnName("profile_id"); + + b.Property("TraitName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("trait_name"); + + b.HasKey("Id") + .HasName("PK_trait"); + + b.HasIndex("ProfileId", "TraitName") + .IsUnique(); + + b.ToTable("trait", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.UploadedResourceLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("uploaded_resource_log_id"); + + b.Property("Data") + .IsRequired() + .HasColumnType("BLOB") + .HasColumnName("data"); + + b.Property("Date") + .HasColumnType("TEXT") + .HasColumnName("date"); + + b.Property("Path") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("path"); + + b.Property("UserId") + .HasColumnType("TEXT") + .HasColumnName("user_id"); + + b.HasKey("Id") + .HasName("PK_uploaded_resource_log"); + + b.ToTable("uploaded_resource_log", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Whitelist", b => + { + b.Property("UserId") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT") + .HasColumnName("user_id"); + + b.HasKey("UserId") + .HasName("PK_whitelist"); + + b.ToTable("whitelist", (string)null); + }); + + modelBuilder.Entity("PlayerRound", b => + { + b.Property("PlayersId") + .HasColumnType("INTEGER") + .HasColumnName("players_id"); + + b.Property("RoundsId") + .HasColumnType("INTEGER") + .HasColumnName("rounds_id"); + + b.HasKey("PlayersId", "RoundsId") + .HasName("PK_player_round"); + + b.HasIndex("RoundsId") + .HasDatabaseName("IX_player_round_rounds_id"); + + b.ToTable("player_round", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Admin", b => + { + b.HasOne("Content.Server.Database.AdminRank", "AdminRank") + .WithMany("Admins") + .HasForeignKey("AdminRankId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_admin_rank_admin_rank_id"); + + b.Navigation("AdminRank"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminFlag", b => + { + b.HasOne("Content.Server.Database.Admin", "Admin") + .WithMany("Flags") + .HasForeignKey("AdminId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_flag_admin_admin_id"); + + b.Navigation("Admin"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLog", b => + { + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany("AdminLogs") + .HasForeignKey("RoundId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_log_round_round_id"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLogPlayer", b => + { + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("AdminLogs") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_log_player_player_player_user_id"); + + b.HasOne("Content.Server.Database.AdminLog", "Log") + .WithMany("Players") + .HasForeignKey("RoundId", "LogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_log_player_admin_log_round_id_log_id"); + + b.Navigation("Log"); + + b.Navigation("Player"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminMessage", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminMessagesCreated") + .HasForeignKey("CreatedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_messages_player_created_by_id"); + + b.HasOne("Content.Server.Database.Player", "DeletedBy") + .WithMany("AdminMessagesDeleted") + .HasForeignKey("DeletedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_messages_player_deleted_by_id"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminMessagesLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_messages_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("AdminMessagesReceived") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_admin_messages_player_player_user_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_admin_messages_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("DeletedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Player"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminNote", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminNotesCreated") + .HasForeignKey("CreatedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_notes_player_created_by_id"); + + b.HasOne("Content.Server.Database.Player", "DeletedBy") + .WithMany("AdminNotesDeleted") + .HasForeignKey("DeletedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_notes_player_deleted_by_id"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminNotesLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_notes_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("AdminNotesReceived") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_admin_notes_player_player_user_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_admin_notes_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("DeletedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Player"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminRankFlag", b => + { + b.HasOne("Content.Server.Database.AdminRank", "Rank") + .WithMany("Flags") + .HasForeignKey("AdminRankId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_rank_flag_admin_rank_admin_rank_id"); + + b.Navigation("Rank"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminWatchlist", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminWatchlistsCreated") + .HasForeignKey("CreatedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_watchlists_player_created_by_id"); + + b.HasOne("Content.Server.Database.Player", "DeletedBy") + .WithMany("AdminWatchlistsDeleted") + .HasForeignKey("DeletedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_watchlists_player_deleted_by_id"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminWatchlistsLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_watchlists_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("AdminWatchlistsReceived") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_admin_watchlists_player_player_user_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_admin_watchlists_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("DeletedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Player"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.Antag", b => + { + b.HasOne("Content.Server.Database.Profile", "Profile") + .WithMany("Antags") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_antag_profile_profile_id"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("Content.Server.Database.ConnectionLog", b => + { + b.HasOne("Content.Server.Database.Server", "Server") + .WithMany("ConnectionLogs") + .HasForeignKey("ServerId") + .OnDelete(DeleteBehavior.SetNull) + .IsRequired() + .HasConstraintName("FK_connection_log_server_server_id"); + + b.Navigation("Server"); + }); + + modelBuilder.Entity("Content.Server.Database.Job", b => + { + b.HasOne("Content.Server.Database.Profile", "Profile") + .WithMany("Jobs") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_job_profile_profile_id"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("Content.Server.Database.Profile", b => + { + b.HasOne("Content.Server.Database.Preference", "Preference") + .WithMany("Profiles") + .HasForeignKey("PreferenceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_profile_preference_preference_id"); + + b.Navigation("Preference"); + }); + + modelBuilder.Entity("Content.Server.Database.ProfileLoadout", b => + { + b.HasOne("Content.Server.Database.ProfileLoadoutGroup", "ProfileLoadoutGroup") + .WithMany("Loadouts") + .HasForeignKey("ProfileLoadoutGroupId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_profile_loadout_profile_loadout_group_profile_loadout_group_id"); + + b.Navigation("ProfileLoadoutGroup"); + }); + + modelBuilder.Entity("Content.Server.Database.ProfileLoadoutGroup", b => + { + b.HasOne("Content.Server.Database.ProfileRoleLoadout", "ProfileRoleLoadout") + .WithMany("Groups") + .HasForeignKey("ProfileRoleLoadoutId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_profile_loadout_group_profile_role_loadout_profile_role_loadout_id"); + + b.Navigation("ProfileRoleLoadout"); + }); + + modelBuilder.Entity("Content.Server.Database.ProfileRoleLoadout", b => + { + b.HasOne("Content.Server.Database.Profile", "Profile") + .WithMany("Loadouts") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_profile_role_loadout_profile_profile_id"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("Content.Server.Database.RoleWhitelist", b => + { + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("JobWhitelists") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_role_whitelists_player_player_user_id"); + + b.Navigation("Player"); + }); + + modelBuilder.Entity("Content.Server.Database.Round", b => + { + b.HasOne("Content.Server.Database.Server", "Server") + .WithMany("Rounds") + .HasForeignKey("ServerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_round_server_server_id"); + + b.Navigation("Server"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBan", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminServerBansCreated") + .HasForeignKey("BanningAdmin") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_server_ban_player_banning_admin"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminServerBansLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_server_ban_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_server_ban_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBanHit", b => + { + b.HasOne("Content.Server.Database.ServerBan", "Ban") + .WithMany("BanHits") + .HasForeignKey("BanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_server_ban_hit_server_ban_ban_id"); + + b.HasOne("Content.Server.Database.ConnectionLog", "Connection") + .WithMany("BanHits") + .HasForeignKey("ConnectionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_server_ban_hit_connection_log_connection_id"); + + b.Navigation("Ban"); + + b.Navigation("Connection"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleBan", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminServerRoleBansCreated") + .HasForeignKey("BanningAdmin") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_server_role_ban_player_banning_admin"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminServerRoleBansLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_server_role_ban_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_server_role_ban_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleUnban", b => + { + b.HasOne("Content.Server.Database.ServerRoleBan", "Ban") + .WithOne("Unban") + .HasForeignKey("Content.Server.Database.ServerRoleUnban", "BanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_server_role_unban_server_role_ban_ban_id"); + + b.Navigation("Ban"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerUnban", b => + { + b.HasOne("Content.Server.Database.ServerBan", "Ban") + .WithOne("Unban") + .HasForeignKey("Content.Server.Database.ServerUnban", "BanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_server_unban_server_ban_ban_id"); + + b.Navigation("Ban"); + }); + + modelBuilder.Entity("Content.Server.Database.Trait", b => + { + b.HasOne("Content.Server.Database.Profile", "Profile") + .WithMany("Traits") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_trait_profile_profile_id"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("PlayerRound", b => + { + b.HasOne("Content.Server.Database.Player", null) + .WithMany() + .HasForeignKey("PlayersId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_player_round_player_players_id"); + + b.HasOne("Content.Server.Database.Round", null) + .WithMany() + .HasForeignKey("RoundsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_player_round_round_rounds_id"); + }); + + modelBuilder.Entity("Content.Server.Database.Admin", b => + { + b.Navigation("Flags"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLog", b => + { + b.Navigation("Players"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminRank", b => + { + b.Navigation("Admins"); + + b.Navigation("Flags"); + }); + + modelBuilder.Entity("Content.Server.Database.ConnectionLog", b => + { + b.Navigation("BanHits"); + }); + + modelBuilder.Entity("Content.Server.Database.Player", b => + { + b.Navigation("AdminLogs"); + + b.Navigation("AdminMessagesCreated"); + + b.Navigation("AdminMessagesDeleted"); + + b.Navigation("AdminMessagesLastEdited"); + + b.Navigation("AdminMessagesReceived"); + + b.Navigation("AdminNotesCreated"); + + b.Navigation("AdminNotesDeleted"); + + b.Navigation("AdminNotesLastEdited"); + + b.Navigation("AdminNotesReceived"); + + b.Navigation("AdminServerBansCreated"); + + b.Navigation("AdminServerBansLastEdited"); + + b.Navigation("AdminServerRoleBansCreated"); + + b.Navigation("AdminServerRoleBansLastEdited"); + + b.Navigation("AdminWatchlistsCreated"); + + b.Navigation("AdminWatchlistsDeleted"); + + b.Navigation("AdminWatchlistsLastEdited"); + + b.Navigation("AdminWatchlistsReceived"); + + b.Navigation("JobWhitelists"); + }); + + modelBuilder.Entity("Content.Server.Database.Preference", b => + { + b.Navigation("Profiles"); + }); + + modelBuilder.Entity("Content.Server.Database.Profile", b => + { + b.Navigation("Antags"); + + b.Navigation("Jobs"); + + b.Navigation("Loadouts"); + + b.Navigation("Traits"); + }); + + modelBuilder.Entity("Content.Server.Database.ProfileLoadoutGroup", b => + { + b.Navigation("Loadouts"); + }); + + modelBuilder.Entity("Content.Server.Database.ProfileRoleLoadout", b => + { + b.Navigation("Groups"); + }); + + modelBuilder.Entity("Content.Server.Database.Round", b => + { + b.Navigation("AdminLogs"); + }); + + modelBuilder.Entity("Content.Server.Database.Server", b => + { + b.Navigation("ConnectionLogs"); + + b.Navigation("Rounds"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBan", b => + { + b.Navigation("BanHits"); + + b.Navigation("Unban"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleBan", b => + { + b.Navigation("Unban"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Content.Server.Database/Migrations/Sqlite/20240606065717_RemoveLastReadRules.cs b/Content.Server.Database/Migrations/Sqlite/20240606065717_RemoveLastReadRules.cs new file mode 100644 index 00000000000..7f98fc2410e --- /dev/null +++ b/Content.Server.Database/Migrations/Sqlite/20240606065717_RemoveLastReadRules.cs @@ -0,0 +1,29 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Content.Server.Database.Migrations.Sqlite +{ + /// + public partial class RemoveLastReadRules : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "last_read_rules", + table: "player"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "last_read_rules", + table: "player", + type: "TEXT", + nullable: true); + } + } +} diff --git a/Content.Server.Database/Migrations/Sqlite/20241029025658_CustomLoadoutNameDescriptionColor.Designer.cs b/Content.Server.Database/Migrations/Sqlite/20241029025658_CustomLoadoutNameDescriptionColor.Designer.cs new file mode 100644 index 00000000000..d9f2b2dd511 --- /dev/null +++ b/Content.Server.Database/Migrations/Sqlite/20241029025658_CustomLoadoutNameDescriptionColor.Designer.cs @@ -0,0 +1,1835 @@ +// +using System; +using Content.Server.Database; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace Content.Server.Database.Migrations.Sqlite +{ + [DbContext(typeof(SqliteServerDbContext))] + [Migration("20241029025658_CustomLoadoutNameDescriptionColor")] + partial class CustomLoadoutNameDescriptionColor + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder.HasAnnotation("ProductVersion", "8.0.0"); + + modelBuilder.Entity("Content.Server.Database.Admin", b => + { + b.Property("UserId") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT") + .HasColumnName("user_id"); + + b.Property("AdminRankId") + .HasColumnType("INTEGER") + .HasColumnName("admin_rank_id"); + + b.Property("Title") + .HasColumnType("TEXT") + .HasColumnName("title"); + + b.HasKey("UserId") + .HasName("PK_admin"); + + b.HasIndex("AdminRankId") + .HasDatabaseName("IX_admin_admin_rank_id"); + + b.ToTable("admin", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminFlag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("admin_flag_id"); + + b.Property("AdminId") + .HasColumnType("TEXT") + .HasColumnName("admin_id"); + + b.Property("Flag") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("flag"); + + b.Property("Negative") + .HasColumnType("INTEGER") + .HasColumnName("negative"); + + b.HasKey("Id") + .HasName("PK_admin_flag"); + + b.HasIndex("AdminId") + .HasDatabaseName("IX_admin_flag_admin_id"); + + b.HasIndex("Flag", "AdminId") + .IsUnique(); + + b.ToTable("admin_flag", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLog", b => + { + b.Property("RoundId") + .HasColumnType("INTEGER") + .HasColumnName("round_id"); + + b.Property("Id") + .HasColumnType("INTEGER") + .HasColumnName("admin_log_id"); + + b.Property("Date") + .HasColumnType("TEXT") + .HasColumnName("date"); + + b.Property("Impact") + .HasColumnType("INTEGER") + .HasColumnName("impact"); + + b.Property("Json") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("json"); + + b.Property("Message") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("message"); + + b.Property("Type") + .HasColumnType("INTEGER") + .HasColumnName("type"); + + b.HasKey("RoundId", "Id") + .HasName("PK_admin_log"); + + b.HasIndex("Date"); + + b.HasIndex("Type") + .HasDatabaseName("IX_admin_log_type"); + + b.ToTable("admin_log", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLogPlayer", b => + { + b.Property("RoundId") + .HasColumnType("INTEGER") + .HasColumnName("round_id"); + + b.Property("LogId") + .HasColumnType("INTEGER") + .HasColumnName("log_id"); + + b.Property("PlayerUserId") + .HasColumnType("TEXT") + .HasColumnName("player_user_id"); + + b.HasKey("RoundId", "LogId", "PlayerUserId") + .HasName("PK_admin_log_player"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_admin_log_player_player_user_id"); + + b.ToTable("admin_log_player", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminMessage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("admin_messages_id"); + + b.Property("CreatedAt") + .HasColumnType("TEXT") + .HasColumnName("created_at"); + + b.Property("CreatedById") + .HasColumnType("TEXT") + .HasColumnName("created_by_id"); + + b.Property("Deleted") + .HasColumnType("INTEGER") + .HasColumnName("deleted"); + + b.Property("DeletedAt") + .HasColumnType("TEXT") + .HasColumnName("deleted_at"); + + b.Property("DeletedById") + .HasColumnType("TEXT") + .HasColumnName("deleted_by_id"); + + b.Property("Dismissed") + .HasColumnType("INTEGER") + .HasColumnName("dismissed"); + + b.Property("ExpirationTime") + .HasColumnType("TEXT") + .HasColumnName("expiration_time"); + + b.Property("LastEditedAt") + .HasColumnType("TEXT") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("TEXT") + .HasColumnName("last_edited_by_id"); + + b.Property("Message") + .IsRequired() + .HasMaxLength(4096) + .HasColumnType("TEXT") + .HasColumnName("message"); + + b.Property("PlayerUserId") + .HasColumnType("TEXT") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("TEXT") + .HasColumnName("playtime_at_note"); + + b.Property("RoundId") + .HasColumnType("INTEGER") + .HasColumnName("round_id"); + + b.Property("Seen") + .HasColumnType("INTEGER") + .HasColumnName("seen"); + + b.HasKey("Id") + .HasName("PK_admin_messages"); + + b.HasIndex("CreatedById"); + + b.HasIndex("DeletedById"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_admin_messages_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_admin_messages_round_id"); + + b.ToTable("admin_messages", null, t => + { + t.HasCheckConstraint("NotDismissedAndSeen", "NOT dismissed OR seen"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.AdminNote", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("admin_notes_id"); + + b.Property("CreatedAt") + .HasColumnType("TEXT") + .HasColumnName("created_at"); + + b.Property("CreatedById") + .HasColumnType("TEXT") + .HasColumnName("created_by_id"); + + b.Property("Deleted") + .HasColumnType("INTEGER") + .HasColumnName("deleted"); + + b.Property("DeletedAt") + .HasColumnType("TEXT") + .HasColumnName("deleted_at"); + + b.Property("DeletedById") + .HasColumnType("TEXT") + .HasColumnName("deleted_by_id"); + + b.Property("ExpirationTime") + .HasColumnType("TEXT") + .HasColumnName("expiration_time"); + + b.Property("LastEditedAt") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("TEXT") + .HasColumnName("last_edited_by_id"); + + b.Property("Message") + .IsRequired() + .HasMaxLength(4096) + .HasColumnType("TEXT") + .HasColumnName("message"); + + b.Property("PlayerUserId") + .HasColumnType("TEXT") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("TEXT") + .HasColumnName("playtime_at_note"); + + b.Property("RoundId") + .HasColumnType("INTEGER") + .HasColumnName("round_id"); + + b.Property("Secret") + .HasColumnType("INTEGER") + .HasColumnName("secret"); + + b.Property("Severity") + .HasColumnType("INTEGER") + .HasColumnName("severity"); + + b.HasKey("Id") + .HasName("PK_admin_notes"); + + b.HasIndex("CreatedById"); + + b.HasIndex("DeletedById"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_admin_notes_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_admin_notes_round_id"); + + b.ToTable("admin_notes", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminRank", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("admin_rank_id"); + + b.Property("Name") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("name"); + + b.HasKey("Id") + .HasName("PK_admin_rank"); + + b.ToTable("admin_rank", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminRankFlag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("admin_rank_flag_id"); + + b.Property("AdminRankId") + .HasColumnType("INTEGER") + .HasColumnName("admin_rank_id"); + + b.Property("Flag") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("flag"); + + b.HasKey("Id") + .HasName("PK_admin_rank_flag"); + + b.HasIndex("AdminRankId"); + + b.HasIndex("Flag", "AdminRankId") + .IsUnique(); + + b.ToTable("admin_rank_flag", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminWatchlist", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("admin_watchlists_id"); + + b.Property("CreatedAt") + .HasColumnType("TEXT") + .HasColumnName("created_at"); + + b.Property("CreatedById") + .HasColumnType("TEXT") + .HasColumnName("created_by_id"); + + b.Property("Deleted") + .HasColumnType("INTEGER") + .HasColumnName("deleted"); + + b.Property("DeletedAt") + .HasColumnType("TEXT") + .HasColumnName("deleted_at"); + + b.Property("DeletedById") + .HasColumnType("TEXT") + .HasColumnName("deleted_by_id"); + + b.Property("ExpirationTime") + .HasColumnType("TEXT") + .HasColumnName("expiration_time"); + + b.Property("LastEditedAt") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("TEXT") + .HasColumnName("last_edited_by_id"); + + b.Property("Message") + .IsRequired() + .HasMaxLength(4096) + .HasColumnType("TEXT") + .HasColumnName("message"); + + b.Property("PlayerUserId") + .HasColumnType("TEXT") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("TEXT") + .HasColumnName("playtime_at_note"); + + b.Property("RoundId") + .HasColumnType("INTEGER") + .HasColumnName("round_id"); + + b.HasKey("Id") + .HasName("PK_admin_watchlists"); + + b.HasIndex("CreatedById"); + + b.HasIndex("DeletedById"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_admin_watchlists_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_admin_watchlists_round_id"); + + b.ToTable("admin_watchlists", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Antag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("antag_id"); + + b.Property("AntagName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("antag_name"); + + b.Property("ProfileId") + .HasColumnType("INTEGER") + .HasColumnName("profile_id"); + + b.HasKey("Id") + .HasName("PK_antag"); + + b.HasIndex("ProfileId", "AntagName") + .IsUnique(); + + b.ToTable("antag", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AssignedUserId", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("assigned_user_id_id"); + + b.Property("UserId") + .HasColumnType("TEXT") + .HasColumnName("user_id"); + + b.Property("UserName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("user_name"); + + b.HasKey("Id") + .HasName("PK_assigned_user_id"); + + b.HasIndex("UserId") + .IsUnique(); + + b.HasIndex("UserName") + .IsUnique(); + + b.ToTable("assigned_user_id", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.BanTemplate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("ban_template_id"); + + b.Property("AutoDelete") + .HasColumnType("INTEGER") + .HasColumnName("auto_delete"); + + b.Property("ExemptFlags") + .HasColumnType("INTEGER") + .HasColumnName("exempt_flags"); + + b.Property("Hidden") + .HasColumnType("INTEGER") + .HasColumnName("hidden"); + + b.Property("Length") + .HasColumnType("TEXT") + .HasColumnName("length"); + + b.Property("Reason") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("reason"); + + b.Property("Severity") + .HasColumnType("INTEGER") + .HasColumnName("severity"); + + b.Property("Title") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("title"); + + b.HasKey("Id") + .HasName("PK_ban_template"); + + b.ToTable("ban_template", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ConnectionLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("connection_log_id"); + + b.Property("Address") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("address"); + + b.Property("Denied") + .HasColumnType("INTEGER") + .HasColumnName("denied"); + + b.Property("HWId") + .HasColumnType("BLOB") + .HasColumnName("hwid"); + + b.Property("ServerId") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(0) + .HasColumnName("server_id"); + + b.Property("Time") + .HasColumnType("TEXT") + .HasColumnName("time"); + + b.Property("UserId") + .HasColumnType("TEXT") + .HasColumnName("user_id"); + + b.Property("UserName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("user_name"); + + b.HasKey("Id") + .HasName("PK_connection_log"); + + b.HasIndex("ServerId") + .HasDatabaseName("IX_connection_log_server_id"); + + b.HasIndex("UserId"); + + b.ToTable("connection_log", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Job", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("job_id"); + + b.Property("JobName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("job_name"); + + b.Property("Priority") + .HasColumnType("INTEGER") + .HasColumnName("priority"); + + b.Property("ProfileId") + .HasColumnType("INTEGER") + .HasColumnName("profile_id"); + + b.HasKey("Id") + .HasName("PK_job"); + + b.HasIndex("ProfileId"); + + b.HasIndex("ProfileId", "JobName") + .IsUnique(); + + b.HasIndex(new[] { "ProfileId" }, "IX_job_one_high_priority") + .IsUnique() + .HasFilter("priority = 3"); + + b.ToTable("job", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Loadout", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("loadout_id"); + + b.Property("CustomColorTint") + .HasColumnType("TEXT") + .HasColumnName("custom_color_tint"); + + b.Property("CustomDescription") + .HasColumnType("TEXT") + .HasColumnName("custom_description"); + + b.Property("CustomName") + .HasColumnType("TEXT") + .HasColumnName("custom_name"); + + b.Property("LoadoutName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("loadout_name"); + + b.Property("ProfileId") + .HasColumnType("INTEGER") + .HasColumnName("profile_id"); + + b.HasKey("Id") + .HasName("PK_loadout"); + + b.HasIndex("ProfileId", "LoadoutName") + .IsUnique(); + + b.ToTable("loadout", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.PlayTime", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("play_time_id"); + + b.Property("PlayerId") + .HasColumnType("TEXT") + .HasColumnName("player_id"); + + b.Property("TimeSpent") + .HasColumnType("TEXT") + .HasColumnName("time_spent"); + + b.Property("Tracker") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("tracker"); + + b.HasKey("Id") + .HasName("PK_play_time"); + + b.HasIndex("PlayerId", "Tracker") + .IsUnique(); + + b.ToTable("play_time", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Player", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("player_id"); + + b.Property("FirstSeenTime") + .HasColumnType("TEXT") + .HasColumnName("first_seen_time"); + + b.Property("LastReadRules") + .HasColumnType("TEXT") + .HasColumnName("last_read_rules"); + + b.Property("LastSeenAddress") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("last_seen_address"); + + b.Property("LastSeenHWId") + .HasColumnType("BLOB") + .HasColumnName("last_seen_hwid"); + + b.Property("LastSeenTime") + .HasColumnType("TEXT") + .HasColumnName("last_seen_time"); + + b.Property("LastSeenUserName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("last_seen_user_name"); + + b.Property("UserId") + .HasColumnType("TEXT") + .HasColumnName("user_id"); + + b.HasKey("Id") + .HasName("PK_player"); + + b.HasAlternateKey("UserId") + .HasName("ak_player_user_id"); + + b.HasIndex("LastSeenUserName"); + + b.HasIndex("UserId") + .IsUnique(); + + b.ToTable("player", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Preference", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("preference_id"); + + b.Property("AdminOOCColor") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("admin_ooc_color"); + + b.Property("SelectedCharacterSlot") + .HasColumnType("INTEGER") + .HasColumnName("selected_character_slot"); + + b.Property("UserId") + .HasColumnType("TEXT") + .HasColumnName("user_id"); + + b.HasKey("Id") + .HasName("PK_preference"); + + b.HasIndex("UserId") + .IsUnique(); + + b.ToTable("preference", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Profile", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("profile_id"); + + b.Property("Age") + .HasColumnType("INTEGER") + .HasColumnName("age"); + + b.Property("Backpack") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("backpack"); + + b.Property("CharacterName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("char_name"); + + b.Property("Clothing") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("clothing"); + + b.Property("CustomSpecieName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("custom_specie_name"); + + b.Property("EyeColor") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("eye_color"); + + b.Property("FacialHairColor") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("facial_hair_color"); + + b.Property("FacialHairName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("facial_hair_name"); + + b.Property("FlavorText") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("flavor_text"); + + b.Property("Gender") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("gender"); + + b.Property("HairColor") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("hair_color"); + + b.Property("HairName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("hair_name"); + + b.Property("Height") + .HasColumnType("REAL") + .HasColumnName("height"); + + b.Property("Markings") + .HasColumnType("jsonb") + .HasColumnName("markings"); + + b.Property("PreferenceId") + .HasColumnType("INTEGER") + .HasColumnName("preference_id"); + + b.Property("PreferenceUnavailable") + .HasColumnType("INTEGER") + .HasColumnName("pref_unavailable"); + + b.Property("Sex") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("sex"); + + b.Property("SkinColor") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("skin_color"); + + b.Property("Slot") + .HasColumnType("INTEGER") + .HasColumnName("slot"); + + b.Property("SpawnPriority") + .HasColumnType("INTEGER") + .HasColumnName("spawn_priority"); + + b.Property("Species") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("species"); + + b.Property("Width") + .HasColumnType("REAL") + .HasColumnName("width"); + + b.HasKey("Id") + .HasName("PK_profile"); + + b.HasIndex("PreferenceId") + .HasDatabaseName("IX_profile_preference_id"); + + b.HasIndex("Slot", "PreferenceId") + .IsUnique(); + + b.ToTable("profile", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.RoleWhitelist", b => + { + b.Property("PlayerUserId") + .HasColumnType("TEXT") + .HasColumnName("player_user_id"); + + b.Property("RoleId") + .HasColumnType("TEXT") + .HasColumnName("role_id"); + + b.HasKey("PlayerUserId", "RoleId") + .HasName("PK_role_whitelists"); + + b.ToTable("role_whitelists", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Round", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("round_id"); + + b.Property("ServerId") + .HasColumnType("INTEGER") + .HasColumnName("server_id"); + + b.Property("StartDate") + .HasColumnType("TEXT") + .HasColumnName("start_date"); + + b.HasKey("Id") + .HasName("PK_round"); + + b.HasIndex("ServerId") + .HasDatabaseName("IX_round_server_id"); + + b.HasIndex("StartDate"); + + b.ToTable("round", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Server", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("server_id"); + + b.Property("Name") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("name"); + + b.HasKey("Id") + .HasName("PK_server"); + + b.ToTable("server", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBan", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("server_ban_id"); + + b.Property("Address") + .HasColumnType("TEXT") + .HasColumnName("address"); + + b.Property("AutoDelete") + .HasColumnType("INTEGER") + .HasColumnName("auto_delete"); + + b.Property("BanTime") + .HasColumnType("TEXT") + .HasColumnName("ban_time"); + + b.Property("BanningAdmin") + .HasColumnType("TEXT") + .HasColumnName("banning_admin"); + + b.Property("ExemptFlags") + .HasColumnType("INTEGER") + .HasColumnName("exempt_flags"); + + b.Property("ExpirationTime") + .HasColumnType("TEXT") + .HasColumnName("expiration_time"); + + b.Property("HWId") + .HasColumnType("BLOB") + .HasColumnName("hwid"); + + b.Property("Hidden") + .HasColumnType("INTEGER") + .HasColumnName("hidden"); + + b.Property("LastEditedAt") + .HasColumnType("TEXT") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("TEXT") + .HasColumnName("last_edited_by_id"); + + b.Property("PlayerUserId") + .HasColumnType("TEXT") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("TEXT") + .HasColumnName("playtime_at_note"); + + b.Property("Reason") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("reason"); + + b.Property("RoundId") + .HasColumnType("INTEGER") + .HasColumnName("round_id"); + + b.Property("Severity") + .HasColumnType("INTEGER") + .HasColumnName("severity"); + + b.HasKey("Id") + .HasName("PK_server_ban"); + + b.HasIndex("Address"); + + b.HasIndex("BanningAdmin"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_server_ban_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_server_ban_round_id"); + + b.ToTable("server_ban", null, t => + { + t.HasCheckConstraint("HaveEitherAddressOrUserIdOrHWId", "address IS NOT NULL OR player_user_id IS NOT NULL OR hwid IS NOT NULL"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBanExemption", b => + { + b.Property("UserId") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT") + .HasColumnName("user_id"); + + b.Property("Flags") + .HasColumnType("INTEGER") + .HasColumnName("flags"); + + b.HasKey("UserId") + .HasName("PK_server_ban_exemption"); + + b.ToTable("server_ban_exemption", null, t => + { + t.HasCheckConstraint("FlagsNotZero", "flags != 0"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBanHit", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("server_ban_hit_id"); + + b.Property("BanId") + .HasColumnType("INTEGER") + .HasColumnName("ban_id"); + + b.Property("ConnectionId") + .HasColumnType("INTEGER") + .HasColumnName("connection_id"); + + b.HasKey("Id") + .HasName("PK_server_ban_hit"); + + b.HasIndex("BanId") + .HasDatabaseName("IX_server_ban_hit_ban_id"); + + b.HasIndex("ConnectionId") + .HasDatabaseName("IX_server_ban_hit_connection_id"); + + b.ToTable("server_ban_hit", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleBan", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("server_role_ban_id"); + + b.Property("Address") + .HasColumnType("TEXT") + .HasColumnName("address"); + + b.Property("BanTime") + .HasColumnType("TEXT") + .HasColumnName("ban_time"); + + b.Property("BanningAdmin") + .HasColumnType("TEXT") + .HasColumnName("banning_admin"); + + b.Property("ExpirationTime") + .HasColumnType("TEXT") + .HasColumnName("expiration_time"); + + b.Property("HWId") + .HasColumnType("BLOB") + .HasColumnName("hwid"); + + b.Property("Hidden") + .HasColumnType("INTEGER") + .HasColumnName("hidden"); + + b.Property("LastEditedAt") + .HasColumnType("TEXT") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("TEXT") + .HasColumnName("last_edited_by_id"); + + b.Property("PlayerUserId") + .HasColumnType("TEXT") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("TEXT") + .HasColumnName("playtime_at_note"); + + b.Property("Reason") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("reason"); + + b.Property("RoleId") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("role_id"); + + b.Property("RoundId") + .HasColumnType("INTEGER") + .HasColumnName("round_id"); + + b.Property("Severity") + .HasColumnType("INTEGER") + .HasColumnName("severity"); + + b.HasKey("Id") + .HasName("PK_server_role_ban"); + + b.HasIndex("Address"); + + b.HasIndex("BanningAdmin"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_server_role_ban_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_server_role_ban_round_id"); + + b.ToTable("server_role_ban", null, t => + { + t.HasCheckConstraint("HaveEitherAddressOrUserIdOrHWId", "address IS NOT NULL OR player_user_id IS NOT NULL OR hwid IS NOT NULL"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleUnban", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("role_unban_id"); + + b.Property("BanId") + .HasColumnType("INTEGER") + .HasColumnName("ban_id"); + + b.Property("UnbanTime") + .HasColumnType("TEXT") + .HasColumnName("unban_time"); + + b.Property("UnbanningAdmin") + .HasColumnType("TEXT") + .HasColumnName("unbanning_admin"); + + b.HasKey("Id") + .HasName("PK_server_role_unban"); + + b.HasIndex("BanId") + .IsUnique(); + + b.ToTable("server_role_unban", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ServerUnban", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("unban_id"); + + b.Property("BanId") + .HasColumnType("INTEGER") + .HasColumnName("ban_id"); + + b.Property("UnbanTime") + .HasColumnType("TEXT") + .HasColumnName("unban_time"); + + b.Property("UnbanningAdmin") + .HasColumnType("TEXT") + .HasColumnName("unbanning_admin"); + + b.HasKey("Id") + .HasName("PK_server_unban"); + + b.HasIndex("BanId") + .IsUnique(); + + b.ToTable("server_unban", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Trait", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("trait_id"); + + b.Property("ProfileId") + .HasColumnType("INTEGER") + .HasColumnName("profile_id"); + + b.Property("TraitName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("trait_name"); + + b.HasKey("Id") + .HasName("PK_trait"); + + b.HasIndex("ProfileId", "TraitName") + .IsUnique(); + + b.ToTable("trait", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.UploadedResourceLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("uploaded_resource_log_id"); + + b.Property("Data") + .IsRequired() + .HasColumnType("BLOB") + .HasColumnName("data"); + + b.Property("Date") + .HasColumnType("TEXT") + .HasColumnName("date"); + + b.Property("Path") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("path"); + + b.Property("UserId") + .HasColumnType("TEXT") + .HasColumnName("user_id"); + + b.HasKey("Id") + .HasName("PK_uploaded_resource_log"); + + b.ToTable("uploaded_resource_log", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Whitelist", b => + { + b.Property("UserId") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT") + .HasColumnName("user_id"); + + b.HasKey("UserId") + .HasName("PK_whitelist"); + + b.ToTable("whitelist", (string)null); + }); + + modelBuilder.Entity("PlayerRound", b => + { + b.Property("PlayersId") + .HasColumnType("INTEGER") + .HasColumnName("players_id"); + + b.Property("RoundsId") + .HasColumnType("INTEGER") + .HasColumnName("rounds_id"); + + b.HasKey("PlayersId", "RoundsId") + .HasName("PK_player_round"); + + b.HasIndex("RoundsId") + .HasDatabaseName("IX_player_round_rounds_id"); + + b.ToTable("player_round", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Admin", b => + { + b.HasOne("Content.Server.Database.AdminRank", "AdminRank") + .WithMany("Admins") + .HasForeignKey("AdminRankId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_admin_rank_admin_rank_id"); + + b.Navigation("AdminRank"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminFlag", b => + { + b.HasOne("Content.Server.Database.Admin", "Admin") + .WithMany("Flags") + .HasForeignKey("AdminId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_flag_admin_admin_id"); + + b.Navigation("Admin"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLog", b => + { + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany("AdminLogs") + .HasForeignKey("RoundId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_log_round_round_id"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLogPlayer", b => + { + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("AdminLogs") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_log_player_player_player_user_id"); + + b.HasOne("Content.Server.Database.AdminLog", "Log") + .WithMany("Players") + .HasForeignKey("RoundId", "LogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_log_player_admin_log_round_id_log_id"); + + b.Navigation("Log"); + + b.Navigation("Player"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminMessage", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminMessagesCreated") + .HasForeignKey("CreatedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_messages_player_created_by_id"); + + b.HasOne("Content.Server.Database.Player", "DeletedBy") + .WithMany("AdminMessagesDeleted") + .HasForeignKey("DeletedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_messages_player_deleted_by_id"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminMessagesLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_messages_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("AdminMessagesReceived") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_admin_messages_player_player_user_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_admin_messages_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("DeletedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Player"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminNote", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminNotesCreated") + .HasForeignKey("CreatedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_notes_player_created_by_id"); + + b.HasOne("Content.Server.Database.Player", "DeletedBy") + .WithMany("AdminNotesDeleted") + .HasForeignKey("DeletedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_notes_player_deleted_by_id"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminNotesLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_notes_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("AdminNotesReceived") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_admin_notes_player_player_user_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_admin_notes_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("DeletedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Player"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminRankFlag", b => + { + b.HasOne("Content.Server.Database.AdminRank", "Rank") + .WithMany("Flags") + .HasForeignKey("AdminRankId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_rank_flag_admin_rank_admin_rank_id"); + + b.Navigation("Rank"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminWatchlist", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminWatchlistsCreated") + .HasForeignKey("CreatedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_watchlists_player_created_by_id"); + + b.HasOne("Content.Server.Database.Player", "DeletedBy") + .WithMany("AdminWatchlistsDeleted") + .HasForeignKey("DeletedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_watchlists_player_deleted_by_id"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminWatchlistsLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_watchlists_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("AdminWatchlistsReceived") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_admin_watchlists_player_player_user_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_admin_watchlists_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("DeletedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Player"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.Antag", b => + { + b.HasOne("Content.Server.Database.Profile", "Profile") + .WithMany("Antags") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_antag_profile_profile_id"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("Content.Server.Database.ConnectionLog", b => + { + b.HasOne("Content.Server.Database.Server", "Server") + .WithMany("ConnectionLogs") + .HasForeignKey("ServerId") + .OnDelete(DeleteBehavior.SetNull) + .IsRequired() + .HasConstraintName("FK_connection_log_server_server_id"); + + b.Navigation("Server"); + }); + + modelBuilder.Entity("Content.Server.Database.Job", b => + { + b.HasOne("Content.Server.Database.Profile", "Profile") + .WithMany("Jobs") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_job_profile_profile_id"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("Content.Server.Database.Loadout", b => + { + b.HasOne("Content.Server.Database.Profile", "Profile") + .WithMany("Loadouts") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_loadout_profile_profile_id"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("Content.Server.Database.Profile", b => + { + b.HasOne("Content.Server.Database.Preference", "Preference") + .WithMany("Profiles") + .HasForeignKey("PreferenceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_profile_preference_preference_id"); + + b.Navigation("Preference"); + }); + + modelBuilder.Entity("Content.Server.Database.RoleWhitelist", b => + { + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("JobWhitelists") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_role_whitelists_player_player_user_id"); + + b.Navigation("Player"); + }); + + modelBuilder.Entity("Content.Server.Database.Round", b => + { + b.HasOne("Content.Server.Database.Server", "Server") + .WithMany("Rounds") + .HasForeignKey("ServerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_round_server_server_id"); + + b.Navigation("Server"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBan", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminServerBansCreated") + .HasForeignKey("BanningAdmin") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_server_ban_player_banning_admin"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminServerBansLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_server_ban_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_server_ban_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBanHit", b => + { + b.HasOne("Content.Server.Database.ServerBan", "Ban") + .WithMany("BanHits") + .HasForeignKey("BanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_server_ban_hit_server_ban_ban_id"); + + b.HasOne("Content.Server.Database.ConnectionLog", "Connection") + .WithMany("BanHits") + .HasForeignKey("ConnectionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_server_ban_hit_connection_log_connection_id"); + + b.Navigation("Ban"); + + b.Navigation("Connection"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleBan", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminServerRoleBansCreated") + .HasForeignKey("BanningAdmin") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_server_role_ban_player_banning_admin"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminServerRoleBansLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_server_role_ban_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_server_role_ban_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleUnban", b => + { + b.HasOne("Content.Server.Database.ServerRoleBan", "Ban") + .WithOne("Unban") + .HasForeignKey("Content.Server.Database.ServerRoleUnban", "BanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_server_role_unban_server_role_ban_ban_id"); + + b.Navigation("Ban"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerUnban", b => + { + b.HasOne("Content.Server.Database.ServerBan", "Ban") + .WithOne("Unban") + .HasForeignKey("Content.Server.Database.ServerUnban", "BanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_server_unban_server_ban_ban_id"); + + b.Navigation("Ban"); + }); + + modelBuilder.Entity("Content.Server.Database.Trait", b => + { + b.HasOne("Content.Server.Database.Profile", "Profile") + .WithMany("Traits") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_trait_profile_profile_id"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("PlayerRound", b => + { + b.HasOne("Content.Server.Database.Player", null) + .WithMany() + .HasForeignKey("PlayersId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_player_round_player_players_id"); + + b.HasOne("Content.Server.Database.Round", null) + .WithMany() + .HasForeignKey("RoundsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_player_round_round_rounds_id"); + }); + + modelBuilder.Entity("Content.Server.Database.Admin", b => + { + b.Navigation("Flags"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLog", b => + { + b.Navigation("Players"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminRank", b => + { + b.Navigation("Admins"); + + b.Navigation("Flags"); + }); + + modelBuilder.Entity("Content.Server.Database.ConnectionLog", b => + { + b.Navigation("BanHits"); + }); + + modelBuilder.Entity("Content.Server.Database.Player", b => + { + b.Navigation("AdminLogs"); + + b.Navigation("AdminMessagesCreated"); + + b.Navigation("AdminMessagesDeleted"); + + b.Navigation("AdminMessagesLastEdited"); + + b.Navigation("AdminMessagesReceived"); + + b.Navigation("AdminNotesCreated"); + + b.Navigation("AdminNotesDeleted"); + + b.Navigation("AdminNotesLastEdited"); + + b.Navigation("AdminNotesReceived"); + + b.Navigation("AdminServerBansCreated"); + + b.Navigation("AdminServerBansLastEdited"); + + b.Navigation("AdminServerRoleBansCreated"); + + b.Navigation("AdminServerRoleBansLastEdited"); + + b.Navigation("AdminWatchlistsCreated"); + + b.Navigation("AdminWatchlistsDeleted"); + + b.Navigation("AdminWatchlistsLastEdited"); + + b.Navigation("AdminWatchlistsReceived"); + + b.Navigation("JobWhitelists"); + }); + + modelBuilder.Entity("Content.Server.Database.Preference", b => + { + b.Navigation("Profiles"); + }); + + modelBuilder.Entity("Content.Server.Database.Profile", b => + { + b.Navigation("Antags"); + + b.Navigation("Jobs"); + + b.Navigation("Loadouts"); + + b.Navigation("Traits"); + }); + + modelBuilder.Entity("Content.Server.Database.Round", b => + { + b.Navigation("AdminLogs"); + }); + + modelBuilder.Entity("Content.Server.Database.Server", b => + { + b.Navigation("ConnectionLogs"); + + b.Navigation("Rounds"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBan", b => + { + b.Navigation("BanHits"); + + b.Navigation("Unban"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleBan", b => + { + b.Navigation("Unban"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Content.Server.Database/Migrations/Sqlite/20241029025658_CustomLoadoutNameDescriptionColor.cs b/Content.Server.Database/Migrations/Sqlite/20241029025658_CustomLoadoutNameDescriptionColor.cs new file mode 100644 index 00000000000..3f983b3483b --- /dev/null +++ b/Content.Server.Database/Migrations/Sqlite/20241029025658_CustomLoadoutNameDescriptionColor.cs @@ -0,0 +1,48 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Content.Server.Database.Migrations.Sqlite +{ + /// + public partial class CustomLoadoutNameDescriptionColor : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "custom_color_tint", + table: "loadout", + type: "TEXT", + nullable: true); + + migrationBuilder.AddColumn( + name: "custom_description", + table: "loadout", + type: "TEXT", + nullable: true); + + migrationBuilder.AddColumn( + name: "custom_name", + table: "loadout", + type: "TEXT", + nullable: true); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "custom_color_tint", + table: "loadout"); + + migrationBuilder.DropColumn( + name: "custom_description", + table: "loadout"); + + migrationBuilder.DropColumn( + name: "custom_name", + table: "loadout"); + } + } +} diff --git a/Content.Server.Database/Migrations/Sqlite/20241106073327_CustomLoadoutHeirlooms.Designer.cs b/Content.Server.Database/Migrations/Sqlite/20241106073327_CustomLoadoutHeirlooms.Designer.cs new file mode 100644 index 00000000000..6db54c9477c --- /dev/null +++ b/Content.Server.Database/Migrations/Sqlite/20241106073327_CustomLoadoutHeirlooms.Designer.cs @@ -0,0 +1,1839 @@ +// +using System; +using Content.Server.Database; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace Content.Server.Database.Migrations.Sqlite +{ + [DbContext(typeof(SqliteServerDbContext))] + [Migration("20241106073327_CustomLoadoutHeirlooms")] + partial class CustomLoadoutHeirlooms + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder.HasAnnotation("ProductVersion", "8.0.0"); + + modelBuilder.Entity("Content.Server.Database.Admin", b => + { + b.Property("UserId") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT") + .HasColumnName("user_id"); + + b.Property("AdminRankId") + .HasColumnType("INTEGER") + .HasColumnName("admin_rank_id"); + + b.Property("Title") + .HasColumnType("TEXT") + .HasColumnName("title"); + + b.HasKey("UserId") + .HasName("PK_admin"); + + b.HasIndex("AdminRankId") + .HasDatabaseName("IX_admin_admin_rank_id"); + + b.ToTable("admin", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminFlag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("admin_flag_id"); + + b.Property("AdminId") + .HasColumnType("TEXT") + .HasColumnName("admin_id"); + + b.Property("Flag") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("flag"); + + b.Property("Negative") + .HasColumnType("INTEGER") + .HasColumnName("negative"); + + b.HasKey("Id") + .HasName("PK_admin_flag"); + + b.HasIndex("AdminId") + .HasDatabaseName("IX_admin_flag_admin_id"); + + b.HasIndex("Flag", "AdminId") + .IsUnique(); + + b.ToTable("admin_flag", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLog", b => + { + b.Property("RoundId") + .HasColumnType("INTEGER") + .HasColumnName("round_id"); + + b.Property("Id") + .HasColumnType("INTEGER") + .HasColumnName("admin_log_id"); + + b.Property("Date") + .HasColumnType("TEXT") + .HasColumnName("date"); + + b.Property("Impact") + .HasColumnType("INTEGER") + .HasColumnName("impact"); + + b.Property("Json") + .IsRequired() + .HasColumnType("jsonb") + .HasColumnName("json"); + + b.Property("Message") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("message"); + + b.Property("Type") + .HasColumnType("INTEGER") + .HasColumnName("type"); + + b.HasKey("RoundId", "Id") + .HasName("PK_admin_log"); + + b.HasIndex("Date"); + + b.HasIndex("Type") + .HasDatabaseName("IX_admin_log_type"); + + b.ToTable("admin_log", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLogPlayer", b => + { + b.Property("RoundId") + .HasColumnType("INTEGER") + .HasColumnName("round_id"); + + b.Property("LogId") + .HasColumnType("INTEGER") + .HasColumnName("log_id"); + + b.Property("PlayerUserId") + .HasColumnType("TEXT") + .HasColumnName("player_user_id"); + + b.HasKey("RoundId", "LogId", "PlayerUserId") + .HasName("PK_admin_log_player"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_admin_log_player_player_user_id"); + + b.ToTable("admin_log_player", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminMessage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("admin_messages_id"); + + b.Property("CreatedAt") + .HasColumnType("TEXT") + .HasColumnName("created_at"); + + b.Property("CreatedById") + .HasColumnType("TEXT") + .HasColumnName("created_by_id"); + + b.Property("Deleted") + .HasColumnType("INTEGER") + .HasColumnName("deleted"); + + b.Property("DeletedAt") + .HasColumnType("TEXT") + .HasColumnName("deleted_at"); + + b.Property("DeletedById") + .HasColumnType("TEXT") + .HasColumnName("deleted_by_id"); + + b.Property("Dismissed") + .HasColumnType("INTEGER") + .HasColumnName("dismissed"); + + b.Property("ExpirationTime") + .HasColumnType("TEXT") + .HasColumnName("expiration_time"); + + b.Property("LastEditedAt") + .HasColumnType("TEXT") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("TEXT") + .HasColumnName("last_edited_by_id"); + + b.Property("Message") + .IsRequired() + .HasMaxLength(4096) + .HasColumnType("TEXT") + .HasColumnName("message"); + + b.Property("PlayerUserId") + .HasColumnType("TEXT") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("TEXT") + .HasColumnName("playtime_at_note"); + + b.Property("RoundId") + .HasColumnType("INTEGER") + .HasColumnName("round_id"); + + b.Property("Seen") + .HasColumnType("INTEGER") + .HasColumnName("seen"); + + b.HasKey("Id") + .HasName("PK_admin_messages"); + + b.HasIndex("CreatedById"); + + b.HasIndex("DeletedById"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_admin_messages_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_admin_messages_round_id"); + + b.ToTable("admin_messages", null, t => + { + t.HasCheckConstraint("NotDismissedAndSeen", "NOT dismissed OR seen"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.AdminNote", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("admin_notes_id"); + + b.Property("CreatedAt") + .HasColumnType("TEXT") + .HasColumnName("created_at"); + + b.Property("CreatedById") + .HasColumnType("TEXT") + .HasColumnName("created_by_id"); + + b.Property("Deleted") + .HasColumnType("INTEGER") + .HasColumnName("deleted"); + + b.Property("DeletedAt") + .HasColumnType("TEXT") + .HasColumnName("deleted_at"); + + b.Property("DeletedById") + .HasColumnType("TEXT") + .HasColumnName("deleted_by_id"); + + b.Property("ExpirationTime") + .HasColumnType("TEXT") + .HasColumnName("expiration_time"); + + b.Property("LastEditedAt") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("TEXT") + .HasColumnName("last_edited_by_id"); + + b.Property("Message") + .IsRequired() + .HasMaxLength(4096) + .HasColumnType("TEXT") + .HasColumnName("message"); + + b.Property("PlayerUserId") + .HasColumnType("TEXT") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("TEXT") + .HasColumnName("playtime_at_note"); + + b.Property("RoundId") + .HasColumnType("INTEGER") + .HasColumnName("round_id"); + + b.Property("Secret") + .HasColumnType("INTEGER") + .HasColumnName("secret"); + + b.Property("Severity") + .HasColumnType("INTEGER") + .HasColumnName("severity"); + + b.HasKey("Id") + .HasName("PK_admin_notes"); + + b.HasIndex("CreatedById"); + + b.HasIndex("DeletedById"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_admin_notes_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_admin_notes_round_id"); + + b.ToTable("admin_notes", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminRank", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("admin_rank_id"); + + b.Property("Name") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("name"); + + b.HasKey("Id") + .HasName("PK_admin_rank"); + + b.ToTable("admin_rank", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminRankFlag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("admin_rank_flag_id"); + + b.Property("AdminRankId") + .HasColumnType("INTEGER") + .HasColumnName("admin_rank_id"); + + b.Property("Flag") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("flag"); + + b.HasKey("Id") + .HasName("PK_admin_rank_flag"); + + b.HasIndex("AdminRankId"); + + b.HasIndex("Flag", "AdminRankId") + .IsUnique(); + + b.ToTable("admin_rank_flag", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AdminWatchlist", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("admin_watchlists_id"); + + b.Property("CreatedAt") + .HasColumnType("TEXT") + .HasColumnName("created_at"); + + b.Property("CreatedById") + .HasColumnType("TEXT") + .HasColumnName("created_by_id"); + + b.Property("Deleted") + .HasColumnType("INTEGER") + .HasColumnName("deleted"); + + b.Property("DeletedAt") + .HasColumnType("TEXT") + .HasColumnName("deleted_at"); + + b.Property("DeletedById") + .HasColumnType("TEXT") + .HasColumnName("deleted_by_id"); + + b.Property("ExpirationTime") + .HasColumnType("TEXT") + .HasColumnName("expiration_time"); + + b.Property("LastEditedAt") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("TEXT") + .HasColumnName("last_edited_by_id"); + + b.Property("Message") + .IsRequired() + .HasMaxLength(4096) + .HasColumnType("TEXT") + .HasColumnName("message"); + + b.Property("PlayerUserId") + .HasColumnType("TEXT") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("TEXT") + .HasColumnName("playtime_at_note"); + + b.Property("RoundId") + .HasColumnType("INTEGER") + .HasColumnName("round_id"); + + b.HasKey("Id") + .HasName("PK_admin_watchlists"); + + b.HasIndex("CreatedById"); + + b.HasIndex("DeletedById"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_admin_watchlists_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_admin_watchlists_round_id"); + + b.ToTable("admin_watchlists", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Antag", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("antag_id"); + + b.Property("AntagName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("antag_name"); + + b.Property("ProfileId") + .HasColumnType("INTEGER") + .HasColumnName("profile_id"); + + b.HasKey("Id") + .HasName("PK_antag"); + + b.HasIndex("ProfileId", "AntagName") + .IsUnique(); + + b.ToTable("antag", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.AssignedUserId", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("assigned_user_id_id"); + + b.Property("UserId") + .HasColumnType("TEXT") + .HasColumnName("user_id"); + + b.Property("UserName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("user_name"); + + b.HasKey("Id") + .HasName("PK_assigned_user_id"); + + b.HasIndex("UserId") + .IsUnique(); + + b.HasIndex("UserName") + .IsUnique(); + + b.ToTable("assigned_user_id", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.BanTemplate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("ban_template_id"); + + b.Property("AutoDelete") + .HasColumnType("INTEGER") + .HasColumnName("auto_delete"); + + b.Property("ExemptFlags") + .HasColumnType("INTEGER") + .HasColumnName("exempt_flags"); + + b.Property("Hidden") + .HasColumnType("INTEGER") + .HasColumnName("hidden"); + + b.Property("Length") + .HasColumnType("TEXT") + .HasColumnName("length"); + + b.Property("Reason") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("reason"); + + b.Property("Severity") + .HasColumnType("INTEGER") + .HasColumnName("severity"); + + b.Property("Title") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("title"); + + b.HasKey("Id") + .HasName("PK_ban_template"); + + b.ToTable("ban_template", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ConnectionLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("connection_log_id"); + + b.Property("Address") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("address"); + + b.Property("Denied") + .HasColumnType("INTEGER") + .HasColumnName("denied"); + + b.Property("HWId") + .HasColumnType("BLOB") + .HasColumnName("hwid"); + + b.Property("ServerId") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasDefaultValue(0) + .HasColumnName("server_id"); + + b.Property("Time") + .HasColumnType("TEXT") + .HasColumnName("time"); + + b.Property("UserId") + .HasColumnType("TEXT") + .HasColumnName("user_id"); + + b.Property("UserName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("user_name"); + + b.HasKey("Id") + .HasName("PK_connection_log"); + + b.HasIndex("ServerId") + .HasDatabaseName("IX_connection_log_server_id"); + + b.HasIndex("UserId"); + + b.ToTable("connection_log", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Job", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("job_id"); + + b.Property("JobName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("job_name"); + + b.Property("Priority") + .HasColumnType("INTEGER") + .HasColumnName("priority"); + + b.Property("ProfileId") + .HasColumnType("INTEGER") + .HasColumnName("profile_id"); + + b.HasKey("Id") + .HasName("PK_job"); + + b.HasIndex("ProfileId"); + + b.HasIndex("ProfileId", "JobName") + .IsUnique(); + + b.HasIndex(new[] { "ProfileId" }, "IX_job_one_high_priority") + .IsUnique() + .HasFilter("priority = 3"); + + b.ToTable("job", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Loadout", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("loadout_id"); + + b.Property("CustomColorTint") + .HasColumnType("TEXT") + .HasColumnName("custom_color_tint"); + + b.Property("CustomDescription") + .HasColumnType("TEXT") + .HasColumnName("custom_description"); + + b.Property("CustomHeirloom") + .HasColumnType("INTEGER") + .HasColumnName("custom_heirloom"); + + b.Property("CustomName") + .HasColumnType("TEXT") + .HasColumnName("custom_name"); + + b.Property("LoadoutName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("loadout_name"); + + b.Property("ProfileId") + .HasColumnType("INTEGER") + .HasColumnName("profile_id"); + + b.HasKey("Id") + .HasName("PK_loadout"); + + b.HasIndex("ProfileId", "LoadoutName") + .IsUnique(); + + b.ToTable("loadout", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.PlayTime", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("play_time_id"); + + b.Property("PlayerId") + .HasColumnType("TEXT") + .HasColumnName("player_id"); + + b.Property("TimeSpent") + .HasColumnType("TEXT") + .HasColumnName("time_spent"); + + b.Property("Tracker") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("tracker"); + + b.HasKey("Id") + .HasName("PK_play_time"); + + b.HasIndex("PlayerId", "Tracker") + .IsUnique(); + + b.ToTable("play_time", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Player", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("player_id"); + + b.Property("FirstSeenTime") + .HasColumnType("TEXT") + .HasColumnName("first_seen_time"); + + b.Property("LastReadRules") + .HasColumnType("TEXT") + .HasColumnName("last_read_rules"); + + b.Property("LastSeenAddress") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("last_seen_address"); + + b.Property("LastSeenHWId") + .HasColumnType("BLOB") + .HasColumnName("last_seen_hwid"); + + b.Property("LastSeenTime") + .HasColumnType("TEXT") + .HasColumnName("last_seen_time"); + + b.Property("LastSeenUserName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("last_seen_user_name"); + + b.Property("UserId") + .HasColumnType("TEXT") + .HasColumnName("user_id"); + + b.HasKey("Id") + .HasName("PK_player"); + + b.HasAlternateKey("UserId") + .HasName("ak_player_user_id"); + + b.HasIndex("LastSeenUserName"); + + b.HasIndex("UserId") + .IsUnique(); + + b.ToTable("player", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Preference", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("preference_id"); + + b.Property("AdminOOCColor") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("admin_ooc_color"); + + b.Property("SelectedCharacterSlot") + .HasColumnType("INTEGER") + .HasColumnName("selected_character_slot"); + + b.Property("UserId") + .HasColumnType("TEXT") + .HasColumnName("user_id"); + + b.HasKey("Id") + .HasName("PK_preference"); + + b.HasIndex("UserId") + .IsUnique(); + + b.ToTable("preference", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Profile", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("profile_id"); + + b.Property("Age") + .HasColumnType("INTEGER") + .HasColumnName("age"); + + b.Property("Backpack") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("backpack"); + + b.Property("CharacterName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("char_name"); + + b.Property("Clothing") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("clothing"); + + b.Property("CustomSpecieName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("custom_specie_name"); + + b.Property("EyeColor") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("eye_color"); + + b.Property("FacialHairColor") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("facial_hair_color"); + + b.Property("FacialHairName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("facial_hair_name"); + + b.Property("FlavorText") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("flavor_text"); + + b.Property("Gender") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("gender"); + + b.Property("HairColor") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("hair_color"); + + b.Property("HairName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("hair_name"); + + b.Property("Height") + .HasColumnType("REAL") + .HasColumnName("height"); + + b.Property("Markings") + .HasColumnType("jsonb") + .HasColumnName("markings"); + + b.Property("PreferenceId") + .HasColumnType("INTEGER") + .HasColumnName("preference_id"); + + b.Property("PreferenceUnavailable") + .HasColumnType("INTEGER") + .HasColumnName("pref_unavailable"); + + b.Property("Sex") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("sex"); + + b.Property("SkinColor") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("skin_color"); + + b.Property("Slot") + .HasColumnType("INTEGER") + .HasColumnName("slot"); + + b.Property("SpawnPriority") + .HasColumnType("INTEGER") + .HasColumnName("spawn_priority"); + + b.Property("Species") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("species"); + + b.Property("Width") + .HasColumnType("REAL") + .HasColumnName("width"); + + b.HasKey("Id") + .HasName("PK_profile"); + + b.HasIndex("PreferenceId") + .HasDatabaseName("IX_profile_preference_id"); + + b.HasIndex("Slot", "PreferenceId") + .IsUnique(); + + b.ToTable("profile", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.RoleWhitelist", b => + { + b.Property("PlayerUserId") + .HasColumnType("TEXT") + .HasColumnName("player_user_id"); + + b.Property("RoleId") + .HasColumnType("TEXT") + .HasColumnName("role_id"); + + b.HasKey("PlayerUserId", "RoleId") + .HasName("PK_role_whitelists"); + + b.ToTable("role_whitelists", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Round", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("round_id"); + + b.Property("ServerId") + .HasColumnType("INTEGER") + .HasColumnName("server_id"); + + b.Property("StartDate") + .HasColumnType("TEXT") + .HasColumnName("start_date"); + + b.HasKey("Id") + .HasName("PK_round"); + + b.HasIndex("ServerId") + .HasDatabaseName("IX_round_server_id"); + + b.HasIndex("StartDate"); + + b.ToTable("round", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Server", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("server_id"); + + b.Property("Name") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("name"); + + b.HasKey("Id") + .HasName("PK_server"); + + b.ToTable("server", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBan", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("server_ban_id"); + + b.Property("Address") + .HasColumnType("TEXT") + .HasColumnName("address"); + + b.Property("AutoDelete") + .HasColumnType("INTEGER") + .HasColumnName("auto_delete"); + + b.Property("BanTime") + .HasColumnType("TEXT") + .HasColumnName("ban_time"); + + b.Property("BanningAdmin") + .HasColumnType("TEXT") + .HasColumnName("banning_admin"); + + b.Property("ExemptFlags") + .HasColumnType("INTEGER") + .HasColumnName("exempt_flags"); + + b.Property("ExpirationTime") + .HasColumnType("TEXT") + .HasColumnName("expiration_time"); + + b.Property("HWId") + .HasColumnType("BLOB") + .HasColumnName("hwid"); + + b.Property("Hidden") + .HasColumnType("INTEGER") + .HasColumnName("hidden"); + + b.Property("LastEditedAt") + .HasColumnType("TEXT") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("TEXT") + .HasColumnName("last_edited_by_id"); + + b.Property("PlayerUserId") + .HasColumnType("TEXT") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("TEXT") + .HasColumnName("playtime_at_note"); + + b.Property("Reason") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("reason"); + + b.Property("RoundId") + .HasColumnType("INTEGER") + .HasColumnName("round_id"); + + b.Property("Severity") + .HasColumnType("INTEGER") + .HasColumnName("severity"); + + b.HasKey("Id") + .HasName("PK_server_ban"); + + b.HasIndex("Address"); + + b.HasIndex("BanningAdmin"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_server_ban_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_server_ban_round_id"); + + b.ToTable("server_ban", null, t => + { + t.HasCheckConstraint("HaveEitherAddressOrUserIdOrHWId", "address IS NOT NULL OR player_user_id IS NOT NULL OR hwid IS NOT NULL"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBanExemption", b => + { + b.Property("UserId") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT") + .HasColumnName("user_id"); + + b.Property("Flags") + .HasColumnType("INTEGER") + .HasColumnName("flags"); + + b.HasKey("UserId") + .HasName("PK_server_ban_exemption"); + + b.ToTable("server_ban_exemption", null, t => + { + t.HasCheckConstraint("FlagsNotZero", "flags != 0"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBanHit", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("server_ban_hit_id"); + + b.Property("BanId") + .HasColumnType("INTEGER") + .HasColumnName("ban_id"); + + b.Property("ConnectionId") + .HasColumnType("INTEGER") + .HasColumnName("connection_id"); + + b.HasKey("Id") + .HasName("PK_server_ban_hit"); + + b.HasIndex("BanId") + .HasDatabaseName("IX_server_ban_hit_ban_id"); + + b.HasIndex("ConnectionId") + .HasDatabaseName("IX_server_ban_hit_connection_id"); + + b.ToTable("server_ban_hit", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleBan", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("server_role_ban_id"); + + b.Property("Address") + .HasColumnType("TEXT") + .HasColumnName("address"); + + b.Property("BanTime") + .HasColumnType("TEXT") + .HasColumnName("ban_time"); + + b.Property("BanningAdmin") + .HasColumnType("TEXT") + .HasColumnName("banning_admin"); + + b.Property("ExpirationTime") + .HasColumnType("TEXT") + .HasColumnName("expiration_time"); + + b.Property("HWId") + .HasColumnType("BLOB") + .HasColumnName("hwid"); + + b.Property("Hidden") + .HasColumnType("INTEGER") + .HasColumnName("hidden"); + + b.Property("LastEditedAt") + .HasColumnType("TEXT") + .HasColumnName("last_edited_at"); + + b.Property("LastEditedById") + .HasColumnType("TEXT") + .HasColumnName("last_edited_by_id"); + + b.Property("PlayerUserId") + .HasColumnType("TEXT") + .HasColumnName("player_user_id"); + + b.Property("PlaytimeAtNote") + .HasColumnType("TEXT") + .HasColumnName("playtime_at_note"); + + b.Property("Reason") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("reason"); + + b.Property("RoleId") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("role_id"); + + b.Property("RoundId") + .HasColumnType("INTEGER") + .HasColumnName("round_id"); + + b.Property("Severity") + .HasColumnType("INTEGER") + .HasColumnName("severity"); + + b.HasKey("Id") + .HasName("PK_server_role_ban"); + + b.HasIndex("Address"); + + b.HasIndex("BanningAdmin"); + + b.HasIndex("LastEditedById"); + + b.HasIndex("PlayerUserId") + .HasDatabaseName("IX_server_role_ban_player_user_id"); + + b.HasIndex("RoundId") + .HasDatabaseName("IX_server_role_ban_round_id"); + + b.ToTable("server_role_ban", null, t => + { + t.HasCheckConstraint("HaveEitherAddressOrUserIdOrHWId", "address IS NOT NULL OR player_user_id IS NOT NULL OR hwid IS NOT NULL"); + }); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleUnban", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("role_unban_id"); + + b.Property("BanId") + .HasColumnType("INTEGER") + .HasColumnName("ban_id"); + + b.Property("UnbanTime") + .HasColumnType("TEXT") + .HasColumnName("unban_time"); + + b.Property("UnbanningAdmin") + .HasColumnType("TEXT") + .HasColumnName("unbanning_admin"); + + b.HasKey("Id") + .HasName("PK_server_role_unban"); + + b.HasIndex("BanId") + .IsUnique(); + + b.ToTable("server_role_unban", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.ServerUnban", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("unban_id"); + + b.Property("BanId") + .HasColumnType("INTEGER") + .HasColumnName("ban_id"); + + b.Property("UnbanTime") + .HasColumnType("TEXT") + .HasColumnName("unban_time"); + + b.Property("UnbanningAdmin") + .HasColumnType("TEXT") + .HasColumnName("unbanning_admin"); + + b.HasKey("Id") + .HasName("PK_server_unban"); + + b.HasIndex("BanId") + .IsUnique(); + + b.ToTable("server_unban", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Trait", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("trait_id"); + + b.Property("ProfileId") + .HasColumnType("INTEGER") + .HasColumnName("profile_id"); + + b.Property("TraitName") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("trait_name"); + + b.HasKey("Id") + .HasName("PK_trait"); + + b.HasIndex("ProfileId", "TraitName") + .IsUnique(); + + b.ToTable("trait", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.UploadedResourceLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("INTEGER") + .HasColumnName("uploaded_resource_log_id"); + + b.Property("Data") + .IsRequired() + .HasColumnType("BLOB") + .HasColumnName("data"); + + b.Property("Date") + .HasColumnType("TEXT") + .HasColumnName("date"); + + b.Property("Path") + .IsRequired() + .HasColumnType("TEXT") + .HasColumnName("path"); + + b.Property("UserId") + .HasColumnType("TEXT") + .HasColumnName("user_id"); + + b.HasKey("Id") + .HasName("PK_uploaded_resource_log"); + + b.ToTable("uploaded_resource_log", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Whitelist", b => + { + b.Property("UserId") + .ValueGeneratedOnAdd() + .HasColumnType("TEXT") + .HasColumnName("user_id"); + + b.HasKey("UserId") + .HasName("PK_whitelist"); + + b.ToTable("whitelist", (string)null); + }); + + modelBuilder.Entity("PlayerRound", b => + { + b.Property("PlayersId") + .HasColumnType("INTEGER") + .HasColumnName("players_id"); + + b.Property("RoundsId") + .HasColumnType("INTEGER") + .HasColumnName("rounds_id"); + + b.HasKey("PlayersId", "RoundsId") + .HasName("PK_player_round"); + + b.HasIndex("RoundsId") + .HasDatabaseName("IX_player_round_rounds_id"); + + b.ToTable("player_round", (string)null); + }); + + modelBuilder.Entity("Content.Server.Database.Admin", b => + { + b.HasOne("Content.Server.Database.AdminRank", "AdminRank") + .WithMany("Admins") + .HasForeignKey("AdminRankId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_admin_rank_admin_rank_id"); + + b.Navigation("AdminRank"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminFlag", b => + { + b.HasOne("Content.Server.Database.Admin", "Admin") + .WithMany("Flags") + .HasForeignKey("AdminId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_flag_admin_admin_id"); + + b.Navigation("Admin"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLog", b => + { + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany("AdminLogs") + .HasForeignKey("RoundId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_log_round_round_id"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLogPlayer", b => + { + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("AdminLogs") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_log_player_player_player_user_id"); + + b.HasOne("Content.Server.Database.AdminLog", "Log") + .WithMany("Players") + .HasForeignKey("RoundId", "LogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_log_player_admin_log_round_id_log_id"); + + b.Navigation("Log"); + + b.Navigation("Player"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminMessage", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminMessagesCreated") + .HasForeignKey("CreatedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_messages_player_created_by_id"); + + b.HasOne("Content.Server.Database.Player", "DeletedBy") + .WithMany("AdminMessagesDeleted") + .HasForeignKey("DeletedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_messages_player_deleted_by_id"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminMessagesLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_messages_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("AdminMessagesReceived") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_admin_messages_player_player_user_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_admin_messages_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("DeletedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Player"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminNote", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminNotesCreated") + .HasForeignKey("CreatedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_notes_player_created_by_id"); + + b.HasOne("Content.Server.Database.Player", "DeletedBy") + .WithMany("AdminNotesDeleted") + .HasForeignKey("DeletedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_notes_player_deleted_by_id"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminNotesLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_notes_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("AdminNotesReceived") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_admin_notes_player_player_user_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_admin_notes_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("DeletedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Player"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminRankFlag", b => + { + b.HasOne("Content.Server.Database.AdminRank", "Rank") + .WithMany("Flags") + .HasForeignKey("AdminRankId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_admin_rank_flag_admin_rank_admin_rank_id"); + + b.Navigation("Rank"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminWatchlist", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminWatchlistsCreated") + .HasForeignKey("CreatedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_watchlists_player_created_by_id"); + + b.HasOne("Content.Server.Database.Player", "DeletedBy") + .WithMany("AdminWatchlistsDeleted") + .HasForeignKey("DeletedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_watchlists_player_deleted_by_id"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminWatchlistsLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_admin_watchlists_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("AdminWatchlistsReceived") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .HasConstraintName("FK_admin_watchlists_player_player_user_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_admin_watchlists_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("DeletedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Player"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.Antag", b => + { + b.HasOne("Content.Server.Database.Profile", "Profile") + .WithMany("Antags") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_antag_profile_profile_id"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("Content.Server.Database.ConnectionLog", b => + { + b.HasOne("Content.Server.Database.Server", "Server") + .WithMany("ConnectionLogs") + .HasForeignKey("ServerId") + .OnDelete(DeleteBehavior.SetNull) + .IsRequired() + .HasConstraintName("FK_connection_log_server_server_id"); + + b.Navigation("Server"); + }); + + modelBuilder.Entity("Content.Server.Database.Job", b => + { + b.HasOne("Content.Server.Database.Profile", "Profile") + .WithMany("Jobs") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_job_profile_profile_id"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("Content.Server.Database.Loadout", b => + { + b.HasOne("Content.Server.Database.Profile", "Profile") + .WithMany("Loadouts") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_loadout_profile_profile_id"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("Content.Server.Database.Profile", b => + { + b.HasOne("Content.Server.Database.Preference", "Preference") + .WithMany("Profiles") + .HasForeignKey("PreferenceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_profile_preference_preference_id"); + + b.Navigation("Preference"); + }); + + modelBuilder.Entity("Content.Server.Database.RoleWhitelist", b => + { + b.HasOne("Content.Server.Database.Player", "Player") + .WithMany("JobWhitelists") + .HasForeignKey("PlayerUserId") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_role_whitelists_player_player_user_id"); + + b.Navigation("Player"); + }); + + modelBuilder.Entity("Content.Server.Database.Round", b => + { + b.HasOne("Content.Server.Database.Server", "Server") + .WithMany("Rounds") + .HasForeignKey("ServerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_round_server_server_id"); + + b.Navigation("Server"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBan", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminServerBansCreated") + .HasForeignKey("BanningAdmin") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_server_ban_player_banning_admin"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminServerBansLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_server_ban_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_server_ban_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBanHit", b => + { + b.HasOne("Content.Server.Database.ServerBan", "Ban") + .WithMany("BanHits") + .HasForeignKey("BanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_server_ban_hit_server_ban_ban_id"); + + b.HasOne("Content.Server.Database.ConnectionLog", "Connection") + .WithMany("BanHits") + .HasForeignKey("ConnectionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_server_ban_hit_connection_log_connection_id"); + + b.Navigation("Ban"); + + b.Navigation("Connection"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleBan", b => + { + b.HasOne("Content.Server.Database.Player", "CreatedBy") + .WithMany("AdminServerRoleBansCreated") + .HasForeignKey("BanningAdmin") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_server_role_ban_player_banning_admin"); + + b.HasOne("Content.Server.Database.Player", "LastEditedBy") + .WithMany("AdminServerRoleBansLastEdited") + .HasForeignKey("LastEditedById") + .HasPrincipalKey("UserId") + .OnDelete(DeleteBehavior.SetNull) + .HasConstraintName("FK_server_role_ban_player_last_edited_by_id"); + + b.HasOne("Content.Server.Database.Round", "Round") + .WithMany() + .HasForeignKey("RoundId") + .HasConstraintName("FK_server_role_ban_round_round_id"); + + b.Navigation("CreatedBy"); + + b.Navigation("LastEditedBy"); + + b.Navigation("Round"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleUnban", b => + { + b.HasOne("Content.Server.Database.ServerRoleBan", "Ban") + .WithOne("Unban") + .HasForeignKey("Content.Server.Database.ServerRoleUnban", "BanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_server_role_unban_server_role_ban_ban_id"); + + b.Navigation("Ban"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerUnban", b => + { + b.HasOne("Content.Server.Database.ServerBan", "Ban") + .WithOne("Unban") + .HasForeignKey("Content.Server.Database.ServerUnban", "BanId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_server_unban_server_ban_ban_id"); + + b.Navigation("Ban"); + }); + + modelBuilder.Entity("Content.Server.Database.Trait", b => + { + b.HasOne("Content.Server.Database.Profile", "Profile") + .WithMany("Traits") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_trait_profile_profile_id"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("PlayerRound", b => + { + b.HasOne("Content.Server.Database.Player", null) + .WithMany() + .HasForeignKey("PlayersId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_player_round_player_players_id"); + + b.HasOne("Content.Server.Database.Round", null) + .WithMany() + .HasForeignKey("RoundsId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired() + .HasConstraintName("FK_player_round_round_rounds_id"); + }); + + modelBuilder.Entity("Content.Server.Database.Admin", b => + { + b.Navigation("Flags"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminLog", b => + { + b.Navigation("Players"); + }); + + modelBuilder.Entity("Content.Server.Database.AdminRank", b => + { + b.Navigation("Admins"); + + b.Navigation("Flags"); + }); + + modelBuilder.Entity("Content.Server.Database.ConnectionLog", b => + { + b.Navigation("BanHits"); + }); + + modelBuilder.Entity("Content.Server.Database.Player", b => + { + b.Navigation("AdminLogs"); + + b.Navigation("AdminMessagesCreated"); + + b.Navigation("AdminMessagesDeleted"); + + b.Navigation("AdminMessagesLastEdited"); + + b.Navigation("AdminMessagesReceived"); + + b.Navigation("AdminNotesCreated"); + + b.Navigation("AdminNotesDeleted"); + + b.Navigation("AdminNotesLastEdited"); + + b.Navigation("AdminNotesReceived"); + + b.Navigation("AdminServerBansCreated"); + + b.Navigation("AdminServerBansLastEdited"); + + b.Navigation("AdminServerRoleBansCreated"); + + b.Navigation("AdminServerRoleBansLastEdited"); + + b.Navigation("AdminWatchlistsCreated"); + + b.Navigation("AdminWatchlistsDeleted"); + + b.Navigation("AdminWatchlistsLastEdited"); + + b.Navigation("AdminWatchlistsReceived"); + + b.Navigation("JobWhitelists"); + }); + + modelBuilder.Entity("Content.Server.Database.Preference", b => + { + b.Navigation("Profiles"); + }); + + modelBuilder.Entity("Content.Server.Database.Profile", b => + { + b.Navigation("Antags"); + + b.Navigation("Jobs"); + + b.Navigation("Loadouts"); + + b.Navigation("Traits"); + }); + + modelBuilder.Entity("Content.Server.Database.Round", b => + { + b.Navigation("AdminLogs"); + }); + + modelBuilder.Entity("Content.Server.Database.Server", b => + { + b.Navigation("ConnectionLogs"); + + b.Navigation("Rounds"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerBan", b => + { + b.Navigation("BanHits"); + + b.Navigation("Unban"); + }); + + modelBuilder.Entity("Content.Server.Database.ServerRoleBan", b => + { + b.Navigation("Unban"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Content.Server.Database/Migrations/Sqlite/20241106073327_CustomLoadoutHeirlooms.cs b/Content.Server.Database/Migrations/Sqlite/20241106073327_CustomLoadoutHeirlooms.cs new file mode 100644 index 00000000000..cf933343d1f --- /dev/null +++ b/Content.Server.Database/Migrations/Sqlite/20241106073327_CustomLoadoutHeirlooms.cs @@ -0,0 +1,28 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Content.Server.Database.Migrations.Sqlite +{ + /// + public partial class CustomLoadoutHeirlooms : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "custom_heirloom", + table: "loadout", + type: "INTEGER", + nullable: true); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "custom_heirloom", + table: "loadout"); + } + } +} diff --git a/Content.Server.Database/Migrations/Sqlite/SqliteServerDbContextModelSnapshot.cs b/Content.Server.Database/Migrations/Sqlite/SqliteServerDbContextModelSnapshot.cs index c7a79b97171..88be39c2de2 100644 --- a/Content.Server.Database/Migrations/Sqlite/SqliteServerDbContextModelSnapshot.cs +++ b/Content.Server.Database/Migrations/Sqlite/SqliteServerDbContextModelSnapshot.cs @@ -618,6 +618,22 @@ protected override void BuildModel(ModelBuilder modelBuilder) .HasColumnType("INTEGER") .HasColumnName("loadout_id"); + b.Property("CustomColorTint") + .HasColumnType("TEXT") + .HasColumnName("custom_color_tint"); + + b.Property("CustomDescription") + .HasColumnType("TEXT") + .HasColumnName("custom_description"); + + b.Property("CustomHeirloom") + .HasColumnType("INTEGER") + .HasColumnName("custom_heirloom"); + + b.Property("CustomName") + .HasColumnType("TEXT") + .HasColumnName("custom_name"); + b.Property("LoadoutName") .IsRequired() .HasColumnType("TEXT") @@ -676,10 +692,6 @@ protected override void BuildModel(ModelBuilder modelBuilder) .HasColumnType("TEXT") .HasColumnName("first_seen_time"); - b.Property("LastReadRules") - .HasColumnType("TEXT") - .HasColumnName("last_read_rules"); - b.Property("LastSeenAddress") .IsRequired() .HasColumnType("TEXT") diff --git a/Content.Server.Database/Model.cs b/Content.Server.Database/Model.cs index e698805cfce..3245264e9da 100644 --- a/Content.Server.Database/Model.cs +++ b/Content.Server.Database/Model.cs @@ -8,6 +8,8 @@ using Content.Shared.Database; using Microsoft.EntityFrameworkCore; using NpgsqlTypes; +using Robust.Shared.Serialization.Manager.Attributes; + namespace Content.Server.Database { @@ -404,13 +406,20 @@ public class Trait public string TraitName { get; set; } = null!; } - public class Loadout + [Serializable] + public partial class Loadout : Shared.Clothing.Loadouts.Systems.Loadout { public int Id { get; set; } public Profile Profile { get; set; } = null!; public int ProfileId { get; set; } - public string LoadoutName { get; set; } = null!; + public Loadout( + string loadoutName, + string? customName = null, + string? customDescription = null, + string? customColorTint = null, + bool? customHeirloom = null + ) : base(loadoutName, customName, customDescription, customColorTint, customHeirloom) { } } public enum DbPreferenceUnavailableMode @@ -447,8 +456,6 @@ public class Player public List Rounds { get; set; } = null!; public List AdminLogs { get; set; } = null!; - public DateTime? LastReadRules { get; set; } - public List AdminNotesReceived { get; set; } = null!; public List AdminNotesCreated { get; set; } = null!; public List AdminNotesLastEdited { get; set; } = null!; diff --git a/Content.Server.Database/remove-migration.ps1 b/Content.Server.Database/remove-migration.ps1 new file mode 100755 index 00000000000..7d3df6fb498 --- /dev/null +++ b/Content.Server.Database/remove-migration.ps1 @@ -0,0 +1,12 @@ +#!/usr/bin/env pwsh + +param([String]$name) + +if ($name -eq "") +{ + Write-Error "must specify migration name" + exit +} + +dotnet ef migrations remove --context SqliteServerDbContext -o Migrations/Sqlite $name +dotnet ef migrations remove --context PostgresServerDbContext -o Migrations/Postgres $name diff --git a/Content.Server.Database/remove-migration.sh b/Content.Server.Database/remove-migration.sh new file mode 100755 index 00000000000..bca575d34ec --- /dev/null +++ b/Content.Server.Database/remove-migration.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +if [ -z "$1" ] ; then + echo "Must specify migration name" + exit 1 +fi + +dotnet ef migrations remove --context SqliteServerDbContext -o Migrations/Sqlite "$1" +dotnet ef migrations remove --context PostgresServerDbContext -o Migrations/Postgres "$1" diff --git a/Content.Server/Abilities/Mime/MimePowersComponent.cs b/Content.Server/Abilities/Mime/MimePowersComponent.cs index fd4fc2c2af9..d56644ed191 100644 --- a/Content.Server/Abilities/Mime/MimePowersComponent.cs +++ b/Content.Server/Abilities/Mime/MimePowersComponent.cs @@ -1,3 +1,4 @@ +using Content.Shared.Alert; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; @@ -47,5 +48,12 @@ public sealed partial class MimePowersComponent : Component /// [DataField("vowCooldown")] public TimeSpan VowCooldown = TimeSpan.FromMinutes(5); + + [DataField] + public ProtoId VowAlert = "VowOfSilence"; + + [DataField] + public ProtoId VowBrokenAlert = "VowBroken"; + } } diff --git a/Content.Server/Abilities/Mime/MimePowersSystem.cs b/Content.Server/Abilities/Mime/MimePowersSystem.cs index 57163a96a50..a1e50228ae2 100644 --- a/Content.Server/Abilities/Mime/MimePowersSystem.cs +++ b/Content.Server/Abilities/Mime/MimePowersSystem.cs @@ -1,5 +1,4 @@ using Content.Server.Popups; -using Content.Server.Speech.Muting; using Content.Shared.Actions; using Content.Shared.Actions.Events; using Content.Shared.Alert; @@ -56,7 +55,7 @@ public override void Update(float frameTime) private void OnComponentInit(EntityUid uid, MimePowersComponent component, ComponentInit args) { EnsureComp(uid); - _alertsSystem.ShowAlert(uid, AlertType.VowOfSilence); + _alertsSystem.ShowAlert(uid, component.VowAlert); _actionsSystem.AddAction(uid, ref component.InvisibleWallActionEntity, component.InvisibleWallAction, uid); } @@ -120,8 +119,8 @@ public void BreakVow(EntityUid uid, MimePowersComponent? mimePowers = null) mimePowers.VowBroken = true; mimePowers.VowRepentTime = _timing.CurTime + mimePowers.VowCooldown; RemComp(uid); - _alertsSystem.ClearAlert(uid, AlertType.VowOfSilence); - _alertsSystem.ShowAlert(uid, AlertType.VowBroken); + _alertsSystem.ClearAlert(uid, mimePowers.VowAlert); + _alertsSystem.ShowAlert(uid, mimePowers.VowBrokenAlert); _actionsSystem.RemoveAction(uid, mimePowers.InvisibleWallActionEntity); } @@ -143,8 +142,8 @@ public void RetakeVow(EntityUid uid, MimePowersComponent? mimePowers = null) mimePowers.ReadyToRepent = false; mimePowers.VowBroken = false; AddComp(uid); - _alertsSystem.ClearAlert(uid, AlertType.VowBroken); - _alertsSystem.ShowAlert(uid, AlertType.VowOfSilence); + _alertsSystem.ClearAlert(uid, mimePowers.VowAlert); + _alertsSystem.ShowAlert(uid, mimePowers.VowBrokenAlert); _actionsSystem.AddAction(uid, ref mimePowers.InvisibleWallActionEntity, mimePowers.InvisibleWallAction, uid); } } diff --git a/Content.Server/Abilities/Psionics/PsionicAbilitiesSystem.cs b/Content.Server/Abilities/Psionics/PsionicAbilitiesSystem.cs index bdf295615ea..a657af150f4 100644 --- a/Content.Server/Abilities/Psionics/PsionicAbilitiesSystem.cs +++ b/Content.Server/Abilities/Psionics/PsionicAbilitiesSystem.cs @@ -1,6 +1,7 @@ using Content.Shared.Abilities.Psionics; using Content.Shared.Actions; using Content.Shared.Popups; +using Content.Shared.Chat; using Content.Shared.Psionics.Glimmer; using Content.Shared.Random; using Content.Shared.Random.Helpers; @@ -12,7 +13,12 @@ using System.Linq; using Robust.Server.Player; using Content.Server.Chat.Managers; - +using Robust.Shared.Configuration; +using Content.Shared.CCVar; +using Content.Server.NPC.Systems; +using Content.Server.NPC.HTN; +using Content.Server.Ghost; +using Content.Server.Mind; namespace Content.Server.Abilities.Psionics { public sealed class PsionicAbilitiesSystem : EntitySystem @@ -29,6 +35,10 @@ public sealed class PsionicAbilitiesSystem : EntitySystem [Dependency] private readonly IPlayerManager _playerManager = default!; [Dependency] private readonly IChatManager _chatManager = default!; [Dependency] private readonly PsionicFamiliarSystem _psionicFamiliar = default!; + [Dependency] private readonly IConfigurationManager _config = default!; + [Dependency] private readonly NpcFactionSystem _npcFaction = default!; + [Dependency] private readonly GhostSystem _ghost = default!; + [Dependency] private readonly MindSystem _mind = default!; private ProtoId _pool = "RandomPsionicPowerPool"; private const string GenericInitializationMessage = "generic-power-initialization-feedback"; @@ -178,7 +188,39 @@ public void RefreshPsionicModifiers(EntityUid uid) /// public void MindBreak(EntityUid uid) { + if (!HasComp(uid)) + return; + RemoveAllPsionicPowers(uid, true); + if (_config.GetCVar(CCVars.ScarierMindbreaking)) + ScarierMindbreak(uid); + } + + /// + /// An even more advanced form of Mindbreaking. Turn the victim into an NPC. + /// For the people who somehow didn't intuit from the absolutely horrifying text that mindbreaking people is very fucking bad. + /// + public void ScarierMindbreak(EntityUid uid) + { + if (!_playerManager.TryGetSessionByEntity(uid, out var session) || session is null) + return; + + var feedbackMessage = $"[font size=24][color=#ff0000]{"Your characters personhood has been obliterated. If you wish to continue playing, consider respawning as a new character."}[/color][/font]"; + _chatManager.ChatMessageToOne( + ChatChannel.Emotes, + feedbackMessage, + feedbackMessage, + EntityUid.Invalid, + false, + session.Channel); + + if (!_mind.TryGetMind(session, out var mindId, out var mind)) + return; + + _ghost.SpawnGhost((mindId, mind), Transform(uid).Coordinates, false); + _npcFaction.AddFaction(uid, "SimpleNeutral"); + var htn = EnsureComp(uid); + htn.RootTask = new HTNCompoundTask() { Task = "IdleCompound" }; } /// diff --git a/Content.Server/Actions/ActionOnInteractSystem.cs b/Content.Server/Actions/ActionOnInteractSystem.cs index b6eec0ce0f6..28685858592 100644 --- a/Content.Server/Actions/ActionOnInteractSystem.cs +++ b/Content.Server/Actions/ActionOnInteractSystem.cs @@ -39,7 +39,7 @@ private void OnMapInit(EntityUid uid, ActionOnInteractComponent component, MapIn private void OnActivate(EntityUid uid, ActionOnInteractComponent component, ActivateInWorldEvent args) { - if (args.Handled) + if (args.Handled || !args.Complex) return; if (component.ActionEntities is not {} actionEnts) diff --git a/Content.Server/Administration/Managers/AdminManager.cs b/Content.Server/Administration/Managers/AdminManager.cs index ec284fcadce..2b74a6d5ac5 100644 --- a/Content.Server/Administration/Managers/AdminManager.cs +++ b/Content.Server/Administration/Managers/AdminManager.cs @@ -7,6 +7,7 @@ using Content.Server.Players; using Content.Shared.Administration; using Content.Shared.CCVar; +using Content.Shared.Info; using Content.Shared.Players; using Robust.Server.Console; using Robust.Server.Player; @@ -233,6 +234,7 @@ public void Initialize() _sawmill = _logManager.GetSawmill("admin"); _netMgr.RegisterNetMessage(); + _netMgr.RegisterNetMessage(); // Cache permissions for loaded console commands with the requisite attributes. foreach (var (cmdName, cmd) in _consoleHost.AvailableCommands) @@ -452,7 +454,7 @@ private async void LoginAdminMaybe(ICommonSession session) Flags = flags }; - if (dbData.Title != null) + if (dbData.Title != null && _cfg.GetCVar(CCVars.AdminUseCustomNamesAdminRank)) { data.Title = dbData.Title; } diff --git a/Content.Server/Administration/ServerApi.cs b/Content.Server/Administration/ServerApi.cs index 04fd38598fb..24450ebc3c6 100644 --- a/Content.Server/Administration/ServerApi.cs +++ b/Content.Server/Administration/ServerApi.cs @@ -7,14 +7,16 @@ using System.Text.Json.Nodes; using System.Threading.Tasks; using Content.Server.Administration.Systems; +using Content.Server.Administration.Managers; using Content.Server.GameTicking; -using Content.Server.GameTicking.Components; using Content.Server.GameTicking.Presets; using Content.Server.GameTicking.Rules.Components; using Content.Server.Maps; using Content.Server.RoundEnd; using Content.Shared.Administration.Managers; +using Content.Shared.Administration; using Content.Shared.CCVar; +using Content.Shared.GameTicking.Components; using Content.Shared.Prototypes; using Robust.Server.ServerStatus; using Robust.Shared.Asynchronous; @@ -48,7 +50,7 @@ public sealed partial class ServerApi : IPostInjectInit [Dependency] private readonly IStatusHost _statusHost = default!; [Dependency] private readonly IConfigurationManager _config = default!; [Dependency] private readonly ISharedPlayerManager _playerManager = default!; - [Dependency] private readonly ISharedAdminManager _adminManager = default!; + [Dependency] private readonly IAdminManager _adminManager = default!; // Frontier: ISharedAdminManager [Dependency] private readonly IGameMapManager _gameMapManager = default!; [Dependency] private readonly IServerNetManager _netManager = default!; [Dependency] private readonly IPrototypeManager _prototypeManager = default!; @@ -81,6 +83,8 @@ void IPostInjectInit.PostInject() RegisterActorHandler(HttpMethod.Post, "/admin/actions/force_preset", ActionForcePreset); RegisterActorHandler(HttpMethod.Post, "/admin/actions/set_motd", ActionForceMotd); RegisterActorHandler(HttpMethod.Patch, "/admin/actions/panic_bunker", ActionPanicPunker); + + RegisterHandler(HttpMethod.Post, "/admin/actions/send_bwoink", ActionSendBwoink); // Frontier - Discord Ahelp Reply } public void Initialize() @@ -393,6 +397,40 @@ await RunOnMainThread(async () => _sawmill.Info($"Forced instant round restart by {FormatLogActor(actor)}"); await RespondOk(context); }); + } + #endregion + + #region Frontier + // Creating a region here incase more actions are added in the future + + private async Task ActionSendBwoink(IStatusHandlerContext context) + { + var body = await ReadJson(context); + if (body == null) + return; + + await RunOnMainThread(async () => + { + // Player not online or wrong Guid + if (!_playerManager.TryGetSessionById(new NetUserId(body.Guid), out var player)) + { + await RespondError( + context, + ErrorCode.PlayerNotFound, + HttpStatusCode.UnprocessableContent, + "Player not found"); + return; + } + + var serverBwoinkSystem = _entitySystemManager.GetEntitySystem(); + var message = new SharedBwoinkSystem.BwoinkTextMessage(player.UserId, SharedBwoinkSystem.SystemUserId, body.Text); + serverBwoinkSystem.OnWebhookBwoinkTextMessage(message, body); + + // Respond with OK + await RespondOk(context); + }); + + } #endregion @@ -631,6 +669,17 @@ private sealed class MotdActionBody public required string Motd { get; init; } } + public sealed class BwoinkActionBody + { + public required string Text { get; init; } + public required string Username { get; init; } + public required Guid Guid { get; init; } + public bool UserOnly { get; init; } + public required bool WebhookUpdate { get; init; } + public required string RoleName { get; init; } + public required string RoleColor { get; init; } + } + #endregion #region Responses diff --git a/Content.Server/Administration/Systems/AdminVerbSystem.Antags.cs b/Content.Server/Administration/Systems/AdminVerbSystem.Antags.cs index 4103b8a8aa7..d23fa930701 100644 --- a/Content.Server/Administration/Systems/AdminVerbSystem.Antags.cs +++ b/Content.Server/Administration/Systems/AdminVerbSystem.Antags.cs @@ -1,6 +1,7 @@ using Content.Server.Administration.Commands; using Content.Server.Antag; using Content.Server.GameTicking.Rules.Components; +using Content.Server.WhiteDream.BloodCult.Gamerule; using Content.Server.Zombies; using Content.Shared.Administration; using Content.Shared.Database; @@ -30,6 +31,9 @@ public sealed partial class AdminVerbSystem [ValidatePrototypeId] private const string DefaultThiefRule = "Thief"; + [ValidatePrototypeId] + private const string DefaultBloodCultRule = "BloodCult"; + [ValidatePrototypeId] private const string PirateGearId = "PirateGear"; @@ -134,5 +138,19 @@ private void AddAntagVerbs(GetVerbsEvent args) Message = Loc.GetString("admin-verb-make-thief"), }; args.Verbs.Add(thief); + + Verb cultist = new() + { + Text = Loc.GetString("admin-verb-text-make-blood-cultist"), + Category = VerbCategory.Antag, + Icon = new SpriteSpecifier.Rsi(new("/Textures/Objects/Weapons/Melee/cult_dagger.rsi"), "icon"), + Act = () => + { + _antag.ForceMakeAntag(targetPlayer, DefaultBloodCultRule); + }, + Impact = LogImpact.High, + Message = Loc.GetString("admin-verb-make-blood-cultist"), + }; + args.Verbs.Add(cultist); } } diff --git a/Content.Server/Administration/Systems/AdminVerbSystem.Smites.cs b/Content.Server/Administration/Systems/AdminVerbSystem.Smites.cs index 4e6af6ceea5..bda60e9449a 100644 --- a/Content.Server/Administration/Systems/AdminVerbSystem.Smites.cs +++ b/Content.Server/Administration/Systems/AdminVerbSystem.Smites.cs @@ -635,13 +635,13 @@ private void AddSmiteVerbs(GetVerbsEvent args) { Text = "Remove gravity", Category = VerbCategory.Smite, - Icon = new SpriteSpecifier.Rsi(new ("/Textures/Structures/Machines/gravity_generator.rsi"), "off"), + Icon = new SpriteSpecifier.Rsi(new("/Textures/Structures/Machines/gravity_generator.rsi"), "off"), Act = () => { var grav = EnsureComp(args.Target); grav.Weightless = true; - Dirty(grav); + Dirty(args.Target, grav); }, Impact = LogImpact.Extreme, Message = Loc.GetString("admin-smite-remove-gravity-description"), @@ -738,7 +738,7 @@ private void AddSmiteVerbs(GetVerbsEvent args) var movementSpeed = EnsureComp(args.Target); (movementSpeed.BaseSprintSpeed, movementSpeed.BaseWalkSpeed) = (movementSpeed.BaseWalkSpeed, movementSpeed.BaseSprintSpeed); - Dirty(movementSpeed); + Dirty(args.Target, movementSpeed); _popupSystem.PopupEntity(Loc.GetString("admin-smite-run-walk-swap-prompt"), args.Target, args.Target, PopupType.LargeCaution); diff --git a/Content.Server/Administration/Systems/BwoinkSystem.cs b/Content.Server/Administration/Systems/BwoinkSystem.cs index a07115544bf..21b5f6d3016 100644 --- a/Content.Server/Administration/Systems/BwoinkSystem.cs +++ b/Content.Server/Administration/Systems/BwoinkSystem.cs @@ -7,11 +7,16 @@ using System.Threading.Tasks; using Content.Server.Administration.Managers; using Content.Server.Afk; +using Content.Server.Database; using Content.Server.Discord; using Content.Server.GameTicking; +using Content.Server.Players.RateLimiting; +using Content.Server.Preferences.Managers; using Content.Shared.Administration; using Content.Shared.CCVar; +using Content.Shared.GameTicking; using Content.Shared.Mind; +using Content.Shared.Players.RateLimiting; using JetBrains.Annotations; using Robust.Server.Player; using Robust.Shared; @@ -27,6 +32,8 @@ namespace Content.Server.Administration.Systems [UsedImplicitly] public sealed partial class BwoinkSystem : SharedBwoinkSystem { + private const string RateLimitKey = "AdminHelp"; + [Dependency] private readonly IPlayerManager _playerManager = default!; [Dependency] private readonly IAdminManager _adminManager = default!; [Dependency] private readonly IConfigurationManager _config = default!; @@ -35,20 +42,29 @@ public sealed partial class BwoinkSystem : SharedBwoinkSystem [Dependency] private readonly GameTicker _gameTicker = default!; [Dependency] private readonly SharedMindSystem _minds = default!; [Dependency] private readonly IAfkManager _afkManager = default!; + [Dependency] private readonly IServerDbManager _dbManager = default!; + [Dependency] private readonly PlayerRateLimitManager _rateLimit = default!; + [Dependency] private readonly IServerPreferencesManager _preferencesManager = default!; - [GeneratedRegex(@"^https://discord\.com/api/webhooks/(\d+)/((?!.*/).*)$")] + [GeneratedRegex(@"^https://(?:(?:canary|ptb)\.)?discord\.com/api/webhooks/(\d+)/((?!.*/).*)$")] private static partial Regex DiscordRegex(); - private ISawmill _sawmill = default!; - private readonly HttpClient _httpClient = new(); private string _webhookUrl = string.Empty; private WebhookData? _webhookData; + + private string _onCallUrl = string.Empty; + private WebhookData? _onCallData; + + private ISawmill _sawmill = default!; + private readonly HttpClient _httpClient = new(); + private string _footerIconUrl = string.Empty; private string _avatarUrl = string.Empty; private string _serverName = string.Empty; - private readonly Dictionary _relayMessages = new(); + + private readonly Dictionary _relayMessages = new(); private Dictionary _oldMessageIds = new(); - private readonly Dictionary> _messageQueues = new(); + private readonly Dictionary> _messageQueues = new(); private readonly HashSet _processingChannels = new(); private readonly Dictionary _typingUpdateTimestamps = new(); private string _overrideClientName = string.Empty; @@ -65,21 +81,76 @@ public sealed partial class BwoinkSystem : SharedBwoinkSystem private const string TooLongText = "... **(too long)**"; private int _maxAdditionalChars; + private readonly Dictionary _activeConversations = new(); public override void Initialize() { base.Initialize(); + + Subs.CVar(_config, CCVars.DiscordOnCallWebhook, OnCallChanged, true); + Subs.CVar(_config, CCVars.DiscordAHelpWebhook, OnWebhookChanged, true); Subs.CVar(_config, CCVars.DiscordAHelpFooterIcon, OnFooterIconChanged, true); Subs.CVar(_config, CCVars.DiscordAHelpAvatar, OnAvatarChanged, true); Subs.CVar(_config, CVars.GameHostName, OnServerNameChanged, true); Subs.CVar(_config, CCVars.AdminAhelpOverrideClientName, OnOverrideChanged, true); _sawmill = IoCManager.Resolve().GetSawmill("AHELP"); - _maxAdditionalChars = GenerateAHelpMessage("", "", true, _gameTicker.RoundDuration().ToString("hh\\:mm\\:ss"), _gameTicker.RunLevel, playedSound: false).Length; + var defaultParams = new AHelpMessageParams( + string.Empty, + string.Empty, + true, + _gameTicker.RoundDuration().ToString("hh\\:mm\\:ss"), + _gameTicker.RunLevel, + playedSound: false + ); + _maxAdditionalChars = GenerateAHelpMessage(defaultParams).Message.Length; _playerManager.PlayerStatusChanged += OnPlayerStatusChanged; SubscribeLocalEvent(OnGameRunLevelChanged); SubscribeNetworkEvent(OnClientTypingUpdated); + SubscribeLocalEvent(_ => _activeConversations.Clear()); + + _rateLimit.Register( + RateLimitKey, + new RateLimitRegistration( + CCVars.AhelpRateLimitPeriod, + CCVars.AhelpRateLimitCount, + PlayerRateLimitedAction) + ); + } + + private async void OnCallChanged(string url) + { + _onCallUrl = url; + + if (url == string.Empty) + return; + + var match = DiscordRegex().Match(url); + + if (!match.Success) + { + Log.Error("On call URL does not appear to be valid."); + return; + } + + if (match.Groups.Count <= 2) + { + Log.Error("Could not get webhook ID or token for on call URL."); + return; + } + + var webhookId = match.Groups[1].Value; + var webhookToken = match.Groups[2].Value; + + _onCallData = await GetWebhookData(url); + } + + private void PlayerRateLimitedAction(ICommonSession obj) + { + RaiseNetworkEvent( + new BwoinkTextMessage(obj.UserId, default, Loc.GetString("bwoink-system-rate-limited"), playSound: false), + obj.Channel); } private void OnOverrideChanged(string obj) @@ -87,14 +158,129 @@ private void OnOverrideChanged(string obj) _overrideClientName = obj; } - private void OnPlayerStatusChanged(object? sender, SessionStatusEventArgs e) + private async void OnPlayerStatusChanged(object? sender, SessionStatusEventArgs e) { + if (e.NewStatus == SessionStatus.Disconnected) + { + if (_activeConversations.TryGetValue(e.Session.UserId, out var lastMessageTime)) + { + var timeSinceLastMessage = DateTime.Now - lastMessageTime; + if (timeSinceLastMessage > TimeSpan.FromMinutes(5)) + { + _activeConversations.Remove(e.Session.UserId); + return; // Do not send disconnect message if timeout exceeded + } + } + + // Check if the user has been banned + var ban = await _dbManager.GetServerBanAsync(null, e.Session.UserId, null); + if (ban != null) + { + var banMessage = Loc.GetString("bwoink-system-player-banned", ("banReason", ban.Reason)); + NotifyAdmins(e.Session, banMessage, PlayerStatusType.Banned); + _activeConversations.Remove(e.Session.UserId); + return; + } + } + + // Notify all admins if a player disconnects or reconnects + var message = e.NewStatus switch + { + SessionStatus.Connected => Loc.GetString("bwoink-system-player-reconnecting"), + SessionStatus.Disconnected => Loc.GetString("bwoink-system-player-disconnecting"), + _ => null + }; + + if (message != null) + { + var statusType = e.NewStatus == SessionStatus.Connected + ? PlayerStatusType.Connected + : PlayerStatusType.Disconnected; + NotifyAdmins(e.Session, message, statusType); + } + if (e.NewStatus != SessionStatus.InGame) return; RaiseNetworkEvent(new BwoinkDiscordRelayUpdated(!string.IsNullOrWhiteSpace(_webhookUrl)), e.Session); } + private void NotifyAdmins(ICommonSession session, string message, PlayerStatusType statusType) + { + if (!_activeConversations.ContainsKey(session.UserId)) + { + // If the user is not part of an active conversation, do not notify admins. + return; + } + + // Get the current timestamp + var timestamp = DateTime.Now.ToString("HH:mm:ss"); + var roundTime = _gameTicker.RoundDuration().ToString("hh\\:mm\\:ss"); + + // Determine the icon based on the status type + string icon = statusType switch + { + PlayerStatusType.Connected => ":green_circle:", + PlayerStatusType.Disconnected => ":red_circle:", + PlayerStatusType.Banned => ":no_entry:", + _ => ":question:" + }; + + // Create the message parameters for Discord + var messageParams = new AHelpMessageParams( + session.Name, + message, + true, + roundTime, + _gameTicker.RunLevel, + playedSound: true, + icon: icon + ); + + // Create the message for in-game with username + var color = statusType switch + { + PlayerStatusType.Connected => Color.Green.ToHex(), + PlayerStatusType.Disconnected => Color.Yellow.ToHex(), + PlayerStatusType.Banned => Color.Orange.ToHex(), + _ => Color.Gray.ToHex(), + }; + var inGameMessage = $"[color={color}]{session.Name} {message}[/color]"; + + var bwoinkMessage = new BwoinkTextMessage( + userId: session.UserId, + trueSender: SystemUserId, + text: inGameMessage, + sentAt: DateTime.Now, + playSound: false + ); + + var admins = GetTargetAdmins(); + foreach (var admin in admins) + { + RaiseNetworkEvent(bwoinkMessage, admin); + } + + // Enqueue the message for Discord relay + if (_webhookUrl != string.Empty) + { + // if (!_messageQueues.ContainsKey(session.UserId)) + // _messageQueues[session.UserId] = new Queue(); + // + // var escapedText = FormattedMessage.EscapeText(message); + // messageParams.Message = escapedText; + // + // var discordMessage = GenerateAHelpMessage(messageParams); + // _messageQueues[session.UserId].Enqueue(discordMessage); + + var queue = _messageQueues.GetOrNew(session.UserId); + var escapedText = FormattedMessage.EscapeText(message); + messageParams.Message = escapedText; + var discordMessage = GenerateAHelpMessage(messageParams); + queue.Enqueue(discordMessage); + } + } + private void OnGameRunLevelChanged(GameRunLevelChangedEvent args) { // Don't make a new embed if we @@ -108,13 +294,13 @@ args.New is not (GameRunLevel.PreRoundLobby or GameRunLevel.InRound)) // Store the Discord message IDs of the previous round _oldMessageIds = new Dictionary(); - foreach (var message in _relayMessages) + foreach (var (user, interaction) in _relayMessages) { - var id = message.Value.id; + var id = interaction.Id; if (id == null) return; - _oldMessageIds[message.Key] = id; + _oldMessageIds[user] = id; } _relayMessages.Clear(); @@ -166,6 +352,7 @@ private async void OnWebhookChanged(string url) { // TODO: Ideally, CVar validation during setting should be better integrated Log.Warning("Webhook URL does not appear to be valid. Using anyways..."); + await GetWebhookData(url); // Frontier - Support for Custom URLS, we still want to see if theres Webhook data available return; } @@ -175,25 +362,23 @@ private async void OnWebhookChanged(string url) return; } - var webhookId = match.Groups[1].Value; - var webhookToken = match.Groups[2].Value; - // Fire and forget - await SetWebhookData(webhookId, webhookToken); + await GetWebhookData(url); // Frontier - Support for Custom URLS } - private async Task SetWebhookData(string id, string token) + private async Task GetWebhookData(string url) { - var response = await _httpClient.GetAsync($"https://discord.com/api/v10/webhooks/{id}/{token}"); + var response = await _httpClient.GetAsync(url); var content = await response.Content.ReadAsStringAsync(); if (!response.IsSuccessStatusCode) { - _sawmill.Log(LogLevel.Error, $"Discord returned bad status code when trying to get webhook data (perhaps the webhook URL is invalid?): {response.StatusCode}\nResponse: {content}"); - return; + _sawmill.Log(LogLevel.Error, + $"Webhook returned bad status code when trying to get webhook data (perhaps the webhook URL is invalid?): {response.StatusCode}\nResponse: {content}"); + return null; } - _webhookData = JsonSerializer.Deserialize(content); + return JsonSerializer.Deserialize(content); } private void OnFooterIconChanged(string url) @@ -206,14 +391,14 @@ private void OnAvatarChanged(string url) _avatarUrl = url; } - private async void ProcessQueue(NetUserId userId, Queue messages) + private async void ProcessQueue(NetUserId userId, Queue messages) { // Whether an embed already exists for this player var exists = _relayMessages.TryGetValue(userId, out var existingEmbed); // Whether the message will become too long after adding these new messages - var tooLong = exists && messages.Sum(msg => Math.Min(msg.Length, MessageLengthCap) + "\n".Length) - + existingEmbed.description.Length > DescriptionMax; + var tooLong = exists && messages.Sum(msg => Math.Min(msg.Message.Length, MessageLengthCap) + "\n".Length) + + existingEmbed?.Description.Length > DescriptionMax; // If there is no existing embed, or it is getting too long, we create a new embed if (!exists || tooLong) @@ -222,7 +407,8 @@ private async void ProcessQueue(NetUserId userId, Queue messages) if (lookup == null) { - _sawmill.Log(LogLevel.Error, $"Unable to find player for NetUserId {userId} when sending discord webhook."); + _sawmill.Log(LogLevel.Error, + $"Unable to find player for NetUserId {userId} when sending discord webhook."); _relayMessages.Remove(userId); return; } @@ -232,49 +418,73 @@ private async void ProcessQueue(NetUserId userId, Queue messages) // If we have all the data required, we can link to the embed of the previous round or embed that was too long if (_webhookData is { GuildId: { } guildId, ChannelId: { } channelId }) { - if (tooLong && existingEmbed.id != null) + if (tooLong && existingEmbed?.Id != null) { - linkToPrevious = $"**[Go to previous embed of this round](https://discord.com/channels/{guildId}/{channelId}/{existingEmbed.id})**\n"; + linkToPrevious = + $"**[Go to previous embed of this round](https://discord.com/channels/{guildId}/{channelId}/{existingEmbed.Id})**\n"; } else if (_oldMessageIds.TryGetValue(userId, out var id) && !string.IsNullOrEmpty(id)) { - linkToPrevious = $"**[Go to last round's conversation with this player](https://discord.com/channels/{guildId}/{channelId}/{id})**\n"; + linkToPrevious = + $"**[Go to last round's conversation with this player](https://discord.com/channels/{guildId}/{channelId}/{id})**\n"; } } var characterName = _minds.GetCharacterName(userId); - existingEmbed = (null, lookup.Username, linkToPrevious, characterName, _gameTicker.RunLevel); + existingEmbed = new DiscordRelayInteraction() + { + Id = null, + CharacterName = characterName, + Description = linkToPrevious, + Username = lookup.Username, + LastRunLevel = _gameTicker.RunLevel, + }; + + _relayMessages[userId] = existingEmbed; } // Previous message was in another RunLevel, so show that in the embed - if (existingEmbed.lastRunLevel != _gameTicker.RunLevel) + if (existingEmbed!.LastRunLevel != _gameTicker.RunLevel) { - existingEmbed.description += _gameTicker.RunLevel switch + existingEmbed.Description += _gameTicker.RunLevel switch { GameRunLevel.PreRoundLobby => "\n\n:arrow_forward: _**Pre-round lobby started**_\n", GameRunLevel.InRound => "\n\n:arrow_forward: _**Round started**_\n", GameRunLevel.PostRound => "\n\n:stop_button: _**Post-round started**_\n", - _ => throw new ArgumentOutOfRangeException(nameof(_gameTicker.RunLevel), $"{_gameTicker.RunLevel} was not matched."), + _ => throw new ArgumentOutOfRangeException(nameof(_gameTicker.RunLevel), + $"{_gameTicker.RunLevel} was not matched."), }; - existingEmbed.lastRunLevel = _gameTicker.RunLevel; + existingEmbed.LastRunLevel = _gameTicker.RunLevel; } + // If last message of the new batch is SOS then relay it to on-call. + // ... as long as it hasn't been relayed already. + var discordMention = messages.Last(); + var onCallRelay = !discordMention.Receivers && !existingEmbed.OnCall; + // Add available messages to the embed description while (messages.TryDequeue(out var message)) { + string text; + // In case someone thinks they're funny - if (message.Length > MessageLengthCap) - message = message[..(MessageLengthCap - TooLongText.Length)] + TooLongText; + if (message.Message.Length > MessageLengthCap) + text = message.Message[..(MessageLengthCap - TooLongText.Length)] + TooLongText; + else + text = message.Message; - existingEmbed.description += $"\n{message}"; + existingEmbed.Description += $"\n{text}"; } - var payload = GeneratePayload(existingEmbed.description, existingEmbed.username, existingEmbed.characterName); + var payload = GeneratePayload(existingEmbed.Description, + existingEmbed.Username, + userId.UserId, // Frontier, this is used to identify the players in the webhook + existingEmbed.CharacterName); // If there is no existing embed, create a new one // Otherwise patch (edit) it - if (existingEmbed.id == null) + if (existingEmbed.Id == null) { var request = await _httpClient.PostAsync($"{_webhookUrl}?wait=true", new StringContent(JsonSerializer.Serialize(payload), Encoding.UTF8, "application/json")); @@ -282,7 +492,8 @@ private async void ProcessQueue(NetUserId userId, Queue messages) var content = await request.Content.ReadAsStringAsync(); if (!request.IsSuccessStatusCode) { - _sawmill.Log(LogLevel.Error, $"Discord returned bad status code when posting message (perhaps the message is too long?): {request.StatusCode}\nResponse: {content}"); + _sawmill.Log(LogLevel.Error, + $"Discord returned bad status code when posting message (perhaps the message is too long?): {request.StatusCode}\nResponse: {content}"); _relayMessages.Remove(userId); return; } @@ -290,22 +501,24 @@ private async void ProcessQueue(NetUserId userId, Queue messages) var id = JsonNode.Parse(content)?["id"]; if (id == null) { - _sawmill.Log(LogLevel.Error, $"Could not find id in json-content returned from discord webhook: {content}"); + _sawmill.Log(LogLevel.Error, + $"Could not find id in json-content returned from discord webhook: {content}"); _relayMessages.Remove(userId); return; } - existingEmbed.id = id.ToString(); + existingEmbed.Id = id.ToString(); } else { - var request = await _httpClient.PatchAsync($"{_webhookUrl}/messages/{existingEmbed.id}", + var request = await _httpClient.PatchAsync($"{_webhookUrl}/messages/{existingEmbed.Id}", new StringContent(JsonSerializer.Serialize(payload), Encoding.UTF8, "application/json")); if (!request.IsSuccessStatusCode) { var content = await request.Content.ReadAsStringAsync(); - _sawmill.Log(LogLevel.Error, $"Discord returned bad status code when patching message (perhaps the message is too long?): {request.StatusCode}\nResponse: {content}"); + _sawmill.Log(LogLevel.Error, + $"Discord returned bad status code when patching message (perhaps the message is too long?): {request.StatusCode}\nResponse: {content}"); _relayMessages.Remove(userId); return; } @@ -313,10 +526,47 @@ private async void ProcessQueue(NetUserId userId, Queue messages) _relayMessages[userId] = existingEmbed; + // Actually do the on call relay last, we just need to grab it before we dequeue every message above. + if (onCallRelay && + _onCallData != null) + { + existingEmbed.OnCall = true; + var roleMention = _config.GetCVar(CCVars.DiscordAhelpMention); + + if (!string.IsNullOrEmpty(roleMention)) + { + var message = new StringBuilder(); + message.AppendLine($"<@&{roleMention}>"); + message.AppendLine("Unanswered SOS"); + + // Need webhook data to get the correct link for that channel rather than on-call data. + if (_webhookData is { GuildId: { } guildId, ChannelId: { } channelId }) + { + message.AppendLine( + $"**[Go to ahelp](https://discord.com/channels/{guildId}/{channelId}/{existingEmbed.Id})**"); + } + + payload = GeneratePayload(message.ToString(), existingEmbed.Username, userId, existingEmbed.CharacterName); + + var request = await _httpClient.PostAsync($"{_onCallUrl}?wait=true", + new StringContent(JsonSerializer.Serialize(payload), Encoding.UTF8, "application/json")); + + var content = await request.Content.ReadAsStringAsync(); + if (!request.IsSuccessStatusCode) + { + _sawmill.Log(LogLevel.Error, $"Discord returned bad status code when posting relay message (perhaps the message is too long?): {request.StatusCode}\nResponse: {content}"); + } + } + } + else + { + existingEmbed.OnCall = false; + } + _processingChannels.Remove(userId); } - private WebhookPayload GeneratePayload(string messages, string username, string? characterName = null) + private WebhookPayload GeneratePayload(string messages, string username, Guid userId, string? characterName = null) // Frontier: added Guid { // Add character name if (characterName != null) @@ -335,12 +585,14 @@ private WebhookPayload GeneratePayload(string messages, string username, string? : $"pre-round lobby for round {_gameTicker.RoundId + 1}", GameRunLevel.InRound => $"round {_gameTicker.RoundId}", GameRunLevel.PostRound => $"post-round {_gameTicker.RoundId}", - _ => throw new ArgumentOutOfRangeException(nameof(_gameTicker.RunLevel), $"{_gameTicker.RunLevel} was not matched."), + _ => throw new ArgumentOutOfRangeException(nameof(_gameTicker.RunLevel), + $"{_gameTicker.RunLevel} was not matched."), }; return new WebhookPayload { Username = username, + UserID = userId, // Frontier, this is used to identify the players in the webhook AvatarUrl = string.IsNullOrWhiteSpace(_avatarUrl) ? null : _avatarUrl, Embeds = new List { @@ -378,9 +630,30 @@ public override void Update(float frameTime) } } + // Frontier: webhook text messages + public void OnWebhookBwoinkTextMessage(BwoinkTextMessage message, ServerApi.BwoinkActionBody body) + { + // Note for forks: + AdminData webhookAdminData = new(); + + var bwoinkParams = new BwoinkParams( + message, + SystemUserId, + webhookAdminData, + body.Username, + null, + body.UserOnly, + body.WebhookUpdate, + true, + body.RoleName, + body.RoleColor); + OnBwoinkInternal(bwoinkParams); + } + protected override void OnBwoinkTextMessage(BwoinkTextMessage message, EntitySessionEventArgs eventArgs) { base.OnBwoinkTextMessage(message, eventArgs); + var senderSession = eventArgs.SenderSession; // TODO: Sanitize text? @@ -395,41 +668,98 @@ protected override void OnBwoinkTextMessage(BwoinkTextMessage message, EntitySes return; } - var escapedText = FormattedMessage.EscapeText(message.Text); + if (_rateLimit.CountAction(eventArgs.SenderSession, RateLimitKey) != RateLimitStatus.Allowed) + return; + + var bwoinkParams = new BwoinkParams(message, + eventArgs.SenderSession.UserId, + senderAdmin, + eventArgs.SenderSession.Name, + eventArgs.SenderSession.Channel, + false, + true, + false); + OnBwoinkInternal(bwoinkParams); + } - string bwoinkText; + /// + /// Sends a bwoink. Common to both internal messages (sent via the ahelp or admin interface) and webhook messages (sent through the webhook, e.g. via Discord) + /// + /// The parameters of the message being sent. + private void OnBwoinkInternal(BwoinkParams bwoinkParams) + { + _activeConversations[bwoinkParams.Message.UserId] = DateTime.Now; - if (senderAdmin is not null && senderAdmin.Flags == AdminFlags.Adminhelp) // Mentor. Not full admin. That's why it's colored differently. + var escapedText = FormattedMessage.EscapeText(bwoinkParams.Message.Text); + var adminColor = _config.GetCVar(CCVars.AdminBwoinkColor); + var adminPrefix = ""; + var bwoinkText = $"{bwoinkParams.SenderName}"; + + //Getting an administrator position + if (_config.GetCVar(CCVars.AhelpAdminPrefix)) { - bwoinkText = $"[color=purple]{senderSession.Name}[/color]"; + if (bwoinkParams.SenderAdmin is not null && bwoinkParams.SenderAdmin.Title is not null) + adminPrefix = $"[bold]\\[{bwoinkParams.SenderAdmin.Title}\\][/bold] "; + + if (_config.GetCVar(CCVars.UseDiscordRoleName) && bwoinkParams.RoleName is not null) + adminPrefix = $"[bold]\\[{bwoinkParams.RoleName}\\][/bold] "; } - else if (senderAdmin is not null && senderAdmin.HasFlag(AdminFlags.Adminhelp)) + + if (!bwoinkParams.FromWebhook + && _config.GetCVar(CCVars.UseAdminOOCColorInBwoinks) + && bwoinkParams.SenderAdmin is not null) { - bwoinkText = $"[color=red]{senderSession.Name}[/color]"; + var prefs = _preferencesManager.GetPreferences(bwoinkParams.SenderId); + adminColor = prefs.AdminOOCColor.ToHex(); } - else + + // If role color is enabled and exists, use it, otherwise use the discord reply color + if (_config.GetCVar(CCVars.DiscordReplyColor) != string.Empty && bwoinkParams.FromWebhook) + adminColor = _config.GetCVar(CCVars.DiscordReplyColor); + + if (_config.GetCVar(CCVars.UseDiscordRoleColor) && bwoinkParams.RoleColor is not null) + adminColor = bwoinkParams.RoleColor; + + if (bwoinkParams.SenderAdmin is not null) { - bwoinkText = $"{senderSession.Name}"; + if (bwoinkParams.SenderAdmin.Flags == + AdminFlags.Adminhelp) // Mentor. Not full admin. That's why it's colored differently. + bwoinkText = $"[color=purple]{adminPrefix}{bwoinkParams.SenderName}[/color]"; + else if (bwoinkParams.FromWebhook || bwoinkParams.SenderAdmin.HasFlag(AdminFlags.Adminhelp)) // Frontier: anything sent via webhooks are from an admin. + bwoinkText = $"[color={adminColor}]{adminPrefix}{bwoinkParams.SenderName}[/color]"; } - bwoinkText = $"{(message.PlaySound ? "" : "(S) ")}{bwoinkText}: {escapedText}"; + if (bwoinkParams.FromWebhook) + bwoinkText = $"{_config.GetCVar(CCVars.DiscordReplyPrefix)}{bwoinkText}"; + + bwoinkText = $"{(bwoinkParams.Message.PlaySound ? "" : "(S) ")}{bwoinkText}: {escapedText}"; // If it's not an admin / admin chooses to keep the sound then play it. - var playSound = !senderAHelpAdmin || message.PlaySound; - var msg = new BwoinkTextMessage(message.UserId, senderSession.UserId, bwoinkText, playSound: playSound); + var playSound = bwoinkParams.SenderAdmin == null || bwoinkParams.Message.PlaySound; + var msg = new BwoinkTextMessage(bwoinkParams.Message.UserId, bwoinkParams.SenderId, bwoinkText, playSound: playSound); LogBwoink(msg); var admins = GetTargetAdmins(); // Notify all admins - foreach (var channel in admins) + if (!bwoinkParams.UserOnly) + { + foreach (var channel in admins) + { + RaiseNetworkEvent(msg, channel); + } + } + + string adminPrefixWebhook = ""; + + if (_config.GetCVar(CCVars.AhelpAdminPrefixWebhook) && bwoinkParams.SenderAdmin is not null && bwoinkParams.SenderAdmin.Title is not null) { - RaiseNetworkEvent(msg, channel); + adminPrefixWebhook = $"[bold]\\[{bwoinkParams.SenderAdmin.Title}\\][/bold] "; } // Notify player - if (_playerManager.TryGetSessionById(message.UserId, out var session)) + if (_playerManager.TryGetSessionById(bwoinkParams.Message.UserId, out var session)) { if (!admins.Contains(session.Channel)) { @@ -438,22 +768,25 @@ protected override void OnBwoinkTextMessage(BwoinkTextMessage message, EntitySes { string overrideMsgText; // Doing the same thing as above, but with the override name. Theres probably a better way to do this. - if (senderAdmin is not null && senderAdmin.Flags == AdminFlags.Adminhelp) // Mentor. Not full admin. That's why it's colored differently. - { - overrideMsgText = $"[color=purple]{_overrideClientName}[/color]"; - } - else if (senderAdmin is not null && senderAdmin.HasFlag(AdminFlags.Adminhelp)) - { - overrideMsgText = $"[color=red]{_overrideClientName}[/color]"; - } + if (bwoinkParams.SenderAdmin is not null && + bwoinkParams.SenderAdmin.Flags == + AdminFlags.Adminhelp) // Mentor. Not full admin. That's why it's colored differently. + overrideMsgText = $"[color=purple]{adminPrefixWebhook}{_overrideClientName}[/color]"; + else if (bwoinkParams.SenderAdmin is not null && bwoinkParams.SenderAdmin.HasFlag(AdminFlags.Adminhelp)) + overrideMsgText = $"[color=red]{adminPrefixWebhook}{_overrideClientName}[/color]"; else - { - overrideMsgText = $"{senderSession.Name}"; // Not an admin, name is not overridden. - } + overrideMsgText = $"{bwoinkParams.SenderName}"; // Not an admin, name is not overridden. - overrideMsgText = $"{(message.PlaySound ? "" : "(S) ")}{overrideMsgText}: {escapedText}"; + if (bwoinkParams.FromWebhook) + overrideMsgText = $"{_config.GetCVar(CCVars.DiscordReplyPrefix)}{overrideMsgText}"; - RaiseNetworkEvent(new BwoinkTextMessage(message.UserId, senderSession.UserId, overrideMsgText, playSound: playSound), session.Channel); + overrideMsgText = $"{(bwoinkParams.Message.PlaySound ? "" : "(S) ")}{overrideMsgText}: {escapedText}"; + + RaiseNetworkEvent(new BwoinkTextMessage(bwoinkParams.Message.UserId, + bwoinkParams.SenderId, + overrideMsgText, + playSound: playSound), + session.Channel); } else RaiseNetworkEvent(msg, session.Channel); @@ -461,35 +794,51 @@ protected override void OnBwoinkTextMessage(BwoinkTextMessage message, EntitySes } var sendsWebhook = _webhookUrl != string.Empty; - if (sendsWebhook) + if (sendsWebhook && bwoinkParams.SendWebhook) { if (!_messageQueues.ContainsKey(msg.UserId)) - _messageQueues[msg.UserId] = new Queue(); + _messageQueues[msg.UserId] = new Queue(); - var str = message.Text; - var unameLength = senderSession.Name.Length; + var str = bwoinkParams.Message.Text; + var unameLength = bwoinkParams.SenderName.Length; if (unameLength + str.Length + _maxAdditionalChars > DescriptionMax) { str = str[..(DescriptionMax - _maxAdditionalChars - unameLength)]; } + var nonAfkAdmins = GetNonAfkAdmins(); - _messageQueues[msg.UserId].Enqueue(GenerateAHelpMessage(senderSession.Name, str, !personalChannel, _gameTicker.RoundDuration().ToString("hh\\:mm\\:ss"), _gameTicker.RunLevel, playedSound: playSound, noReceivers: nonAfkAdmins.Count == 0)); + var messageParams = new AHelpMessageParams( + bwoinkParams.SenderName, + str, + bwoinkParams.SenderId != bwoinkParams.Message.UserId, + _gameTicker.RoundDuration().ToString("hh\\:mm\\:ss"), + _gameTicker.RunLevel, + playedSound: playSound, + isDiscord: bwoinkParams.FromWebhook, + noReceivers: nonAfkAdmins.Count == 0 + ); + _messageQueues[msg.UserId].Enqueue(GenerateAHelpMessage(messageParams)); } if (admins.Count != 0 || sendsWebhook) return; // No admin online, let the player know - var systemText = Loc.GetString("bwoink-system-starmute-message-no-other-users"); - var starMuteMsg = new BwoinkTextMessage(message.UserId, SystemUserId, systemText); - RaiseNetworkEvent(starMuteMsg, senderSession.Channel); + if (bwoinkParams.SenderChannel != null) + { + var systemText = Loc.GetString("bwoink-system-starmute-message-no-other-users"); + var starMuteMsg = new BwoinkTextMessage(bwoinkParams.Message.UserId, SystemUserId, systemText); + RaiseNetworkEvent(starMuteMsg, bwoinkParams.SenderChannel); + } } + // End Frontier: private IList GetNonAfkAdmins() { return _adminManager.ActiveAdmins - .Where(p => (_adminManager.GetAdminData(p)?.HasFlag(AdminFlags.Adminhelp) ?? false) && !_afkManager.IsAfk(p)) + .Where(p => (_adminManager.GetAdminData(p)?.HasFlag(AdminFlags.Adminhelp) ?? false) && + !_afkManager.IsAfk(p)) .Select(p => p.Channel) .ToList(); } @@ -502,25 +851,158 @@ private IList GetTargetAdmins() .ToList(); } - private static string GenerateAHelpMessage(string username, string message, bool admin, string roundTime, GameRunLevel roundState, bool playedSound, bool noReceivers = false) + private static DiscordRelayedData GenerateAHelpMessage(AHelpMessageParams parameters) { var stringbuilder = new StringBuilder(); - if (admin) + if (parameters.Icon != null) + stringbuilder.Append(parameters.Icon); + else if (parameters.IsAdmin) stringbuilder.Append(":outbox_tray:"); - else if (noReceivers) + else if (parameters.NoReceivers) stringbuilder.Append(":sos:"); else stringbuilder.Append(":inbox_tray:"); - if(roundTime != string.Empty && roundState == GameRunLevel.InRound) - stringbuilder.Append($" **{roundTime}**"); - if (!playedSound) + if (parameters.RoundTime != string.Empty && parameters.RoundState == GameRunLevel.InRound) + stringbuilder.Append($" **{parameters.RoundTime}**"); + if (!parameters.PlayedSound) stringbuilder.Append(" **(S)**"); - stringbuilder.Append($" **{username}:** "); - stringbuilder.Append(message); - return stringbuilder.ToString(); + + if (parameters.IsDiscord) // Frontier - Discord Indicator + stringbuilder.Append(" **(DC)**"); + + if (parameters.Icon == null) + stringbuilder.Append($" **{parameters.Username}:** "); + else + stringbuilder.Append($" **{parameters.Username}** "); + stringbuilder.Append(parameters.Message); + + return new DiscordRelayedData() + { + Receivers = !parameters.NoReceivers, + Message = stringbuilder.ToString(), + }; + } + + private record struct DiscordRelayedData + { + /// + /// Was anyone online to receive it. + /// + public bool Receivers; + + /// + /// What's the payload to send to discord. + /// + public string Message; + } + + /// + /// Class specifically for holding information regarding existing Discord embeds + /// + private sealed class DiscordRelayInteraction + { + public string? Id; + + public string Username = String.Empty; + + public string? CharacterName; + + /// + /// Contents for the discord message. + /// + public string Description = string.Empty; + + /// + /// Run level of the last interaction. If different we'll link to the last Id. + /// + public GameRunLevel LastRunLevel; + + /// + /// Did we relay this interaction to OnCall previously. + /// + public bool OnCall; + } + } + + public sealed class AHelpMessageParams + { + public string Username { get; set; } + public string Message { get; set; } + public bool IsAdmin { get; set; } + public string RoundTime { get; set; } + public GameRunLevel RoundState { get; set; } + public bool PlayedSound { get; set; } + public bool NoReceivers { get; set; } + public bool IsDiscord { get; set; } // Frontier + public string? Icon { get; set; } + + public AHelpMessageParams( + string username, + string message, + bool isAdmin, + string roundTime, + GameRunLevel roundState, + bool playedSound, + bool isDiscord = false, // Frontier + bool noReceivers = false, + string? icon = null) + { + Username = username; + Message = message; + IsAdmin = isAdmin; + RoundTime = roundTime; + RoundState = roundState; + IsDiscord = isDiscord; // Frontier + PlayedSound = playedSound; + NoReceivers = noReceivers; + Icon = icon; + } + } + + public sealed class BwoinkParams + { + public SharedBwoinkSystem.BwoinkTextMessage Message { get; set; } + public NetUserId SenderId { get; set; } + public AdminData? SenderAdmin { get; set; } + public string SenderName { get; set; } + public INetChannel? SenderChannel { get; set; } + public bool UserOnly { get; set; } + public bool SendWebhook { get; set; } + public bool FromWebhook { get; set; } + public string? RoleName { get; set; } + public string? RoleColor { get; set; } + + public BwoinkParams( + SharedBwoinkSystem.BwoinkTextMessage message, + NetUserId senderId, + AdminData? senderAdmin, + string senderName, + INetChannel? senderChannel, + bool userOnly, + bool sendWebhook, + bool fromWebhook, + string? roleName = null, + string? roleColor = null) + { + Message = message; + SenderId = senderId; + SenderAdmin = senderAdmin; + SenderName = senderName; + SenderChannel = senderChannel; + UserOnly = userOnly; + SendWebhook = sendWebhook; + FromWebhook = fromWebhook; + RoleName = roleName; + RoleColor = roleColor; } } -} + public enum PlayerStatusType + { + Connected, + Disconnected, + Banned, + } +} diff --git a/Content.Server/Alert/Commands/ClearAlert.cs b/Content.Server/Alert/Commands/ClearAlert.cs index 1759612702f..929c343b50f 100644 --- a/Content.Server/Alert/Commands/ClearAlert.cs +++ b/Content.Server/Alert/Commands/ClearAlert.cs @@ -9,6 +9,7 @@ namespace Content.Server.Alert.Commands [AdminCommand(AdminFlags.Debug)] public sealed class ClearAlert : IConsoleCommand { + [Dependency] private readonly IEntityManager _e = default!; public string Command => "clearalert"; public string Description => "Clears an alert for a player, defaulting to current player"; public string Help => "clearalert "; @@ -37,14 +38,14 @@ public void Execute(IConsoleShell shell, string argStr, string[] args) } var alertType = args[0]; - var alertsSystem = EntitySystem.Get(); - if (!alertsSystem.TryGet(Enum.Parse(alertType), out var alert)) + var alertsSystem = _e.System(); + if (!alertsSystem.TryGet(alertType, out var alert)) { shell.WriteLine("unrecognized alertType " + alertType); return; } - alertsSystem.ClearAlert(attachedEntity, alert.AlertType); + alertsSystem.ClearAlert(attachedEntity, alert.ID); } } } diff --git a/Content.Server/Alert/Commands/ShowAlert.cs b/Content.Server/Alert/Commands/ShowAlert.cs index 11901e9af00..a275dab4fa5 100644 --- a/Content.Server/Alert/Commands/ShowAlert.cs +++ b/Content.Server/Alert/Commands/ShowAlert.cs @@ -9,6 +9,7 @@ namespace Content.Server.Alert.Commands [AdminCommand(AdminFlags.Debug)] public sealed class ShowAlert : IConsoleCommand { + [Dependency] private readonly IEntityManager _e = default!; public string Command => "showalert"; public string Description => "Shows an alert for a player, defaulting to current player"; public string Help => "showalert "; @@ -38,8 +39,8 @@ public void Execute(IConsoleShell shell, string argStr, string[] args) var alertType = args[0]; var severity = args[1]; - var alertsSystem = EntitySystem.Get(); - if (!alertsSystem.TryGet(Enum.Parse(alertType), out var alert)) + var alertsSystem = _e.System(); + if (!alertsSystem.TryGet(alertType, out var alert)) { shell.WriteLine("unrecognized alertType " + alertType); return; @@ -51,7 +52,7 @@ public void Execute(IConsoleShell shell, string argStr, string[] args) } short? severity1 = sevint == -1 ? null : sevint; - alertsSystem.ShowAlert(attachedEntity, alert.AlertType, severity1, null); + alertsSystem.ShowAlert(attachedEntity, alert.ID, severity1, null); } } } diff --git a/Content.Server/Anomaly/AnomalySystem.Scanner.cs b/Content.Server/Anomaly/AnomalySystem.Scanner.cs index 39c0d08b55e..b9c0beb04e6 100644 --- a/Content.Server/Anomaly/AnomalySystem.Scanner.cs +++ b/Content.Server/Anomaly/AnomalySystem.Scanner.cs @@ -87,17 +87,24 @@ private void OnScannerUiOpened(EntityUid uid, AnomalyScannerComponent component, private void OnScannerAfterInteract(EntityUid uid, AnomalyScannerComponent component, AfterInteractEvent args) { - if (args.Target is not { } target) - return; - if (!HasComp(target)) - return; - if (!args.CanReach) + if (args.Target is not { } target || !args.CanReach) return; - _doAfter.TryStartDoAfter(new DoAfterArgs(EntityManager, args.User, component.ScanDoAfterDuration, new ScannerDoAfterEvent(), uid, target: target, used: uid) + // If interacting with an anomaly, start a scan do-after + if (HasComp(target)) + _doAfter.TryStartDoAfter(new DoAfterArgs(EntityManager, args.User, component.ScanDoAfterDuration, new ScannerDoAfterEvent(), uid, target: target, used: uid) + { + DistanceThreshold = 2f + }); + + // If interacting with another scanner, copy the anomaly data + if (component.ScannedAnomaly is not { Valid: true } + && TryComp(args.Target, out var otherScanner) + && otherScanner.ScannedAnomaly is {} otherAnomaly) { - DistanceThreshold = 2f - }); + UpdateScannerWithNewAnomaly(uid, otherAnomaly, component); + Popup.PopupEntity(Loc.GetString("anomaly-scanner-scan-copied"), uid); + } } private void OnDoAfter(EntityUid uid, AnomalyScannerComponent component, DoAfterEvent args) diff --git a/Content.Server/Antag/AntagSelectionSystem.cs b/Content.Server/Antag/AntagSelectionSystem.cs index cd4d836e683..8efdc2738b9 100644 --- a/Content.Server/Antag/AntagSelectionSystem.cs +++ b/Content.Server/Antag/AntagSelectionSystem.cs @@ -2,7 +2,6 @@ using Content.Server.Antag.Components; using Content.Server.Chat.Managers; using Content.Server.GameTicking; -using Content.Server.GameTicking.Components; using Content.Server.GameTicking.Rules; using Content.Server.Ghost.Roles; using Content.Server.Ghost.Roles.Components; @@ -14,6 +13,7 @@ using Content.Server.Station.Systems; using Content.Shared.Antag; using Content.Shared.GameTicking; +using Content.Shared.GameTicking.Components; using Content.Shared.Ghost; using Content.Shared.Humanoid; using Content.Shared.Players; @@ -174,7 +174,7 @@ protected override void Started(EntityUid uid, AntagSelectionComponent component return; var players = _playerManager.Sessions - .Where(x => GameTicker.PlayerGameStatuses[x.UserId] == PlayerGameStatus.JoinedGame) + .Where(x => GameTicker.PlayerGameStatuses.TryGetValue(x.UserId, out var status) && status == PlayerGameStatus.JoinedGame) .ToList(); ChooseAntags((uid, component), players); diff --git a/Content.Server/Antag/Components/AntagSelectionComponent.cs b/Content.Server/Antag/Components/AntagSelectionComponent.cs index 096be14049a..5b6699dab76 100644 --- a/Content.Server/Antag/Components/AntagSelectionComponent.cs +++ b/Content.Server/Antag/Components/AntagSelectionComponent.cs @@ -1,6 +1,6 @@ using Content.Server.Administration.Systems; -using Content.Server.Destructible.Thresholds; using Content.Shared.Antag; +using Content.Shared.Destructible.Thresholds; using Content.Shared.Roles; using Content.Shared.Storage; using Content.Shared.Whitelist; diff --git a/Content.Server/Antag/MobReplacementRuleSystem.cs b/Content.Server/Antag/MobReplacementRuleSystem.cs index dc8103497ee..b2ad984884b 100644 --- a/Content.Server/Antag/MobReplacementRuleSystem.cs +++ b/Content.Server/Antag/MobReplacementRuleSystem.cs @@ -1,11 +1,8 @@ using System.Numerics; using Content.Server.Antag.Mimic; -using Content.Server.Chat.Systems; using Content.Server.GameTicking.Rules; -using Content.Server.GameTicking.Components; -using Content.Server.NPC.Systems; -using Content.Server.Station.Systems; -using Content.Server.GameTicking; +using Content.Server.GameTicking.Rules.Components; +using Content.Shared.GameTicking.Components; using Content.Shared.VendingMachines; using Robust.Shared.Map; using Robust.Shared.Prototypes; @@ -23,6 +20,10 @@ using Content.Server.Advertise.Components; using Content.Server.Power.Components; using Content.Shared.CombatMode; +using Content.Server.Station.Systems; +using Content.Server.GameTicking; +using Content.Server.Chat.Systems; +using Content.Server.NPC.Systems; namespace Content.Server.Antag; diff --git a/Content.Server/Atmos/Components/BarotraumaComponent.cs b/Content.Server/Atmos/Components/BarotraumaComponent.cs index 4e29699872e..d261c5ab030 100644 --- a/Content.Server/Atmos/Components/BarotraumaComponent.cs +++ b/Content.Server/Atmos/Components/BarotraumaComponent.cs @@ -1,5 +1,7 @@ +using Content.Shared.Alert; using Content.Shared.Damage; using Content.Shared.FixedPoint; +using Robust.Shared.Prototypes; namespace Content.Server.Atmos.Components { @@ -46,5 +48,13 @@ public sealed partial class BarotraumaComponent : Component [ViewVariables(VVAccess.ReadWrite)] public bool HasImmunity = false; + [DataField] + public ProtoId HighPressureAlert = "HighPressure"; + + [DataField] + public ProtoId LowPressureAlert = "LowPressure"; + + [DataField] + public ProtoId PressureAlertCategory = "Pressure"; } } diff --git a/Content.Server/Atmos/Components/FlammableComponent.cs b/Content.Server/Atmos/Components/FlammableComponent.cs index 9f39af540dd..e1c7974307b 100644 --- a/Content.Server/Atmos/Components/FlammableComponent.cs +++ b/Content.Server/Atmos/Components/FlammableComponent.cs @@ -1,5 +1,7 @@ +using Content.Shared.Alert; using Content.Shared.Damage; using Robust.Shared.Physics.Collision.Shapes; +using Robust.Shared.Prototypes; namespace Content.Server.Atmos.Components { @@ -83,5 +85,7 @@ public sealed partial class FlammableComponent : Component /// [DataField] public float FireStackIncreaseMultiplier = 1f; + [DataField] + public ProtoId FireAlert = "Fire"; } } diff --git a/Content.Server/Atmos/Consoles/AtmosAlertsComputerSystem.cs b/Content.Server/Atmos/Consoles/AtmosAlertsComputerSystem.cs index 5d040cd7b37..0ffe49b317b 100644 --- a/Content.Server/Atmos/Consoles/AtmosAlertsComputerSystem.cs +++ b/Content.Server/Atmos/Consoles/AtmosAlertsComputerSystem.cs @@ -1,17 +1,22 @@ using Content.Server.Atmos.Monitor.Components; using Content.Server.DeviceNetwork.Components; +using Content.Server.DeviceNetwork.Systems; +using Content.Server.Pinpointer; using Content.Server.Power.Components; using Content.Shared.Atmos; using Content.Shared.Atmos.Components; using Content.Shared.Atmos.Consoles; using Content.Shared.Atmos.Monitor; using Content.Shared.Atmos.Monitor.Components; +using Content.Shared.DeviceNetwork.Components; using Content.Shared.Pinpointer; +using Content.Shared.Tag; using Robust.Server.GameObjects; using Robust.Shared.Map.Components; using Robust.Shared.Player; using Robust.Shared.ContentPack; using Robust.Shared.Prototypes; +using Robust.Shared.Timing; using System.Diagnostics.CodeAnalysis; using System.Linq; using Content.Shared.Access.Components; @@ -29,6 +34,12 @@ public sealed class AtmosAlertsComputerSystem : SharedAtmosAlertsComputerSystem [Dependency] private readonly AirAlarmSystem _airAlarmSystem = default!; [Dependency] private readonly AtmosDeviceNetworkSystem _atmosDevNet = default!; [Dependency] private readonly SharedAppearanceSystem _appearance = default!; + [Dependency] private readonly TagSystem _tagSystem = default!; + [Dependency] private readonly MapSystem _mapSystem = default!; + [Dependency] private readonly TransformSystem _transformSystem = default!; + [Dependency] private readonly NavMapSystem _navMapSystem = default!; + [Dependency] private readonly IGameTiming _gameTiming = default!; + [Dependency] private readonly DeviceListSystem _deviceListSystem = default!; private const float UpdateTime = 1.0f; @@ -46,6 +57,9 @@ public override void Initialize() // Grid events SubscribeLocalEvent(OnGridSplit); + + // Alarm events + SubscribeLocalEvent(OnDeviceTerminatingEvent); SubscribeLocalEvent(OnDeviceAnchorChanged); } @@ -89,6 +103,16 @@ private void OnGridSplit(ref GridSplitEvent args) } private void OnDeviceAnchorChanged(EntityUid uid, AtmosAlertsDeviceComponent component, AnchorStateChangedEvent args) + { + OnDeviceAdditionOrRemoval(uid, component, args.Anchored); + } + + private void OnDeviceTerminatingEvent(EntityUid uid, AtmosAlertsDeviceComponent component, ref EntityTerminatingEvent args) + { + OnDeviceAdditionOrRemoval(uid, component, false); + } + + private void OnDeviceAdditionOrRemoval(EntityUid uid, AtmosAlertsDeviceComponent component, bool isAdding) { var xform = Transform(uid); var gridUid = xform.GridUid; @@ -96,10 +120,13 @@ private void OnDeviceAnchorChanged(EntityUid uid, AtmosAlertsDeviceComponent com if (gridUid == null) return; - if (!TryGetAtmosDeviceNavMapData(uid, component, xform, gridUid.Value, out var data)) + if (!TryComp(xform.GridUid, out var navMap)) return; - var netEntity = EntityManager.GetNetEntity(uid); + if (!TryGetAtmosDeviceNavMapData(uid, component, xform, out var data)) + return; + + var netEntity = GetNetEntity(uid); var query = AllEntityQuery(); while (query.MoveNext(out var ent, out var entConsole, out var entXform)) @@ -107,11 +134,18 @@ private void OnDeviceAnchorChanged(EntityUid uid, AtmosAlertsDeviceComponent com if (gridUid != entXform.GridUid) continue; - if (args.Anchored) + if (isAdding) + { entConsole.AtmosDevices.Add(data.Value); + } - else if (!args.Anchored) + else + { entConsole.AtmosDevices.RemoveWhere(x => x.NetEntity == netEntity); + _navMapSystem.RemoveNavMapRegion(gridUid.Value, navMap, netEntity); + } + + Dirty(ent, entConsole); } } @@ -217,6 +251,12 @@ private List GetAlarmStateData(EntityUid gridUid, Atmo if (entDevice.Group != group) continue; + if (!TryComp(entXform.GridUid, out var mapGrid)) + continue; + + if (!TryComp(entXform.GridUid, out var navMap)) + continue; + // If emagged, change the alarm type to normal var alarmState = (entAtmosAlarmable.LastAlarmState == AtmosAlarmType.Emagged) ? AtmosAlarmType.Normal : entAtmosAlarmable.LastAlarmState; @@ -224,14 +264,45 @@ private List GetAlarmStateData(EntityUid gridUid, Atmo if (TryComp(ent, out var entAPCPower) && !entAPCPower.Powered) alarmState = AtmosAlarmType.Invalid; + // Create entry + var netEnt = GetNetEntity(ent); + var entry = new AtmosAlertsComputerEntry - (GetNetEntity(ent), + (netEnt, GetNetCoordinates(entXform.Coordinates), entDevice.Group, alarmState, MetaData(ent).EntityName, entDeviceNetwork.Address); + // Get the list of sensors attached to the alarm + var sensorList = TryComp(ent, out var entDeviceList) ? _deviceListSystem.GetDeviceList(ent, entDeviceList) : null; + + if (sensorList?.Any() == true) + { + var alarmRegionSeeds = new HashSet(); + + // If valid and anchored, use the position of sensors as seeds for the region + foreach (var (address, sensorEnt) in sensorList) + { + if (!sensorEnt.IsValid() || !HasComp(sensorEnt)) + continue; + + var sensorXform = Transform(sensorEnt); + + if (sensorXform.Anchored && sensorXform.GridUid == entXform.GridUid) + alarmRegionSeeds.Add(_mapSystem.CoordinatesToTile(entXform.GridUid.Value, mapGrid, _transformSystem.GetMapCoordinates(sensorEnt, sensorXform))); + } + + var regionProperties = new SharedNavMapSystem.NavMapRegionProperties(netEnt, AtmosAlertsComputerUiKey.Key, alarmRegionSeeds); + _navMapSystem.AddOrUpdateNavMapRegion(gridUid, navMap, netEnt, regionProperties); + } + + else + { + _navMapSystem.RemoveNavMapRegion(entXform.GridUid.Value, navMap, netEnt); + } + alarmStateData.Add(entry); } @@ -314,7 +385,10 @@ private HashSet GetAllAtmosDeviceNavMapData(EntityU var query = AllEntityQuery(); while (query.MoveNext(out var ent, out var entComponent, out var entXform)) { - if (TryGetAtmosDeviceNavMapData(ent, entComponent, entXform, gridUid, out var data)) + if (entXform.GridUid != gridUid) + continue; + + if (TryGetAtmosDeviceNavMapData(ent, entComponent, entXform, out var data)) atmosDeviceNavMapData.Add(data.Value); } @@ -325,14 +399,10 @@ private bool TryGetAtmosDeviceNavMapData (EntityUid uid, AtmosAlertsDeviceComponent component, TransformComponent xform, - EntityUid gridUid, [NotNullWhen(true)] out AtmosAlertsDeviceNavMapData? output) { output = null; - if (xform.GridUid != gridUid) - return false; - if (!xform.Anchored) return false; diff --git a/Content.Server/Atmos/EntitySystems/BarotraumaSystem.cs b/Content.Server/Atmos/EntitySystems/BarotraumaSystem.cs index 9bea58330cd..6bf76221c11 100644 --- a/Content.Server/Atmos/EntitySystems/BarotraumaSystem.cs +++ b/Content.Server/Atmos/EntitySystems/BarotraumaSystem.cs @@ -234,20 +234,20 @@ public override void Update(float frameTime) if (pressure <= Atmospherics.HazardLowPressure) { // Deal damage and ignore resistances. Resistance to pressure damage should be done via pressure protection gear. - _damageableSystem.TryChangeDamage(uid, barotrauma.Damage * Atmospherics.LowPressureDamage, true, false); + _damageableSystem.TryChangeDamage(uid, barotrauma.Damage * Atmospherics.LowPressureDamage, true, false, canSever: false); if (!barotrauma.TakingDamage) { barotrauma.TakingDamage = true; _adminLogger.Add(LogType.Barotrauma, $"{ToPrettyString(uid):entity} started taking low pressure damage"); } RaiseLocalEvent(uid, new MoodEffectEvent("MobLowPressure")); - _alertsSystem.ShowAlert(uid, AlertType.LowPressure, 2); + _alertsSystem.ShowAlert(uid, barotrauma.LowPressureAlert, 2); } else if (pressure >= Atmospherics.HazardHighPressure) { var damageScale = MathF.Min(((pressure / Atmospherics.HazardHighPressure) - 1) * Atmospherics.PressureDamageCoefficient, Atmospherics.MaxHighPressureDamage); - _damageableSystem.TryChangeDamage(uid, barotrauma.Damage * damageScale, true, false); + _damageableSystem.TryChangeDamage(uid, barotrauma.Damage * damageScale, true, false, canSever: false); RaiseLocalEvent(uid, new MoodEffectEvent("MobHighPressure")); if (!barotrauma.TakingDamage) @@ -255,7 +255,8 @@ public override void Update(float frameTime) barotrauma.TakingDamage = true; _adminLogger.Add(LogType.Barotrauma, $"{ToPrettyString(uid):entity} started taking high pressure damage"); } - _alertsSystem.ShowAlert(uid, AlertType.HighPressure, 2); + + _alertsSystem.ShowAlert(uid, barotrauma.HighPressureAlert, 2); } else { @@ -269,13 +270,13 @@ public override void Update(float frameTime) switch (pressure) { case <= Atmospherics.WarningLowPressure: - _alertsSystem.ShowAlert(uid, AlertType.LowPressure, 1); + _alertsSystem.ShowAlert(uid, barotrauma.LowPressureAlert, 1); break; case >= Atmospherics.WarningHighPressure: - _alertsSystem.ShowAlert(uid, AlertType.HighPressure, 1); + _alertsSystem.ShowAlert(uid, barotrauma.HighPressureAlert, 1); break; default: - _alertsSystem.ClearAlertCategory(uid, AlertCategory.Pressure); + _alertsSystem.ClearAlertCategory(uid, barotrauma.PressureAlertCategory); break; } } diff --git a/Content.Server/Atmos/EntitySystems/FlammableSystem.cs b/Content.Server/Atmos/EntitySystems/FlammableSystem.cs index ec0e7b07092..0f6ce0780e4 100644 --- a/Content.Server/Atmos/EntitySystems/FlammableSystem.cs +++ b/Content.Server/Atmos/EntitySystems/FlammableSystem.cs @@ -156,7 +156,7 @@ private void OnInteractUsing(EntityUid uid, FlammableComponent flammable, Intera private void OnExtinguishActivateInWorld(EntityUid uid, ExtinguishOnInteractComponent component, ActivateInWorldEvent args) { - if (args.Handled) + if (args.Handled || !args.Complex) return; if (!TryComp(uid, out FlammableComponent? flammable)) @@ -423,12 +423,12 @@ public override void Update(float frameTime) if (!flammable.OnFire) { - _alertsSystem.ClearAlert(uid, AlertType.Fire); + _alertsSystem.ClearAlert(uid, flammable.FireAlert); RaiseLocalEvent(uid, new MoodRemoveEffectEvent("OnFire")); continue; } - _alertsSystem.ShowAlert(uid, AlertType.Fire); + _alertsSystem.ShowAlert(uid, flammable.FireAlert); RaiseLocalEvent(uid, new MoodEffectEvent("OnFire")); if (flammable.FireStacks > 0) diff --git a/Content.Server/Atmos/EntitySystems/GasAnalyzerSystem.cs b/Content.Server/Atmos/EntitySystems/GasAnalyzerSystem.cs index 65977f8c140..b42f3626293 100644 --- a/Content.Server/Atmos/EntitySystems/GasAnalyzerSystem.cs +++ b/Content.Server/Atmos/EntitySystems/GasAnalyzerSystem.cs @@ -93,7 +93,7 @@ private void ActivateAnalyzer(EntityUid uid, GasAnalyzerComponent component, Ent else component.LastPosition = null; component.Enabled = true; - Dirty(component); + Dirty(uid, component); UpdateAppearance(uid, component); EnsureComp(uid); UpdateAnalyzer(uid, component); @@ -105,7 +105,7 @@ private void ActivateAnalyzer(EntityUid uid, GasAnalyzerComponent component, Ent /// private void OnDropped(EntityUid uid, GasAnalyzerComponent component, DroppedEvent args) { - if(args.User is var userId && component.Enabled) + if (args.User is var userId && component.Enabled) _popup.PopupEntity(Loc.GetString("gas-analyzer-shutoff"), userId, userId); DisableAnalyzer(uid, component, args.User); } @@ -121,7 +121,7 @@ private void DisableAnalyzer(EntityUid uid, GasAnalyzerComponent? component = nu _userInterface.CloseUi(uid, GasAnalyzerUiKey.Key, user); component.Enabled = false; - Dirty(component); + Dirty(uid, component); UpdateAppearance(uid, component); RemCompDeferred(uid); } diff --git a/Content.Server/Atmos/EntitySystems/GasTileOverlaySystem.cs b/Content.Server/Atmos/EntitySystems/GasTileOverlaySystem.cs index c46701a6a07..89b9c520787 100644 --- a/Content.Server/Atmos/EntitySystems/GasTileOverlaySystem.cs +++ b/Content.Server/Atmos/EntitySystems/GasTileOverlaySystem.cs @@ -122,10 +122,11 @@ private void OnPvsToggle(bool value) } // PVS was turned off, ensure data gets sent to all clients. - foreach (var (grid, meta) in EntityQuery(true)) + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var grid, out var meta)) { grid.ForceTick = _gameTiming.CurTick; - Dirty(grid, meta); + Dirty(uid, grid, meta); } } @@ -268,9 +269,10 @@ private bool UpdateChunkTile(GridAtmosphereComponent gridAtmosphere, GasOverlayC private void UpdateOverlayData() { // TODO parallelize? - foreach (var (overlay, gam, meta) in EntityQuery(true)) + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var overlay, out var gam, out var meta)) { - bool changed = false; + var changed = false; foreach (var index in overlay.InvalidTiles) { var chunkIndex = GetGasChunkIndices(index); @@ -282,7 +284,7 @@ private void UpdateOverlayData() } if (changed) - Dirty(overlay, meta); + Dirty(uid, overlay, meta); overlay.InvalidTiles.Clear(); } diff --git a/Content.Server/Atmos/Monitor/Systems/AirAlarmSystem.cs b/Content.Server/Atmos/Monitor/Systems/AirAlarmSystem.cs index 04a9023c1dd..2f56142aa60 100644 --- a/Content.Server/Atmos/Monitor/Systems/AirAlarmSystem.cs +++ b/Content.Server/Atmos/Monitor/Systems/AirAlarmSystem.cs @@ -246,6 +246,9 @@ private void OnShutdown(EntityUid uid, AirAlarmComponent component, ComponentShu private void OnActivate(EntityUid uid, AirAlarmComponent component, ActivateInWorldEvent args) { + if (!args.Complex) + return; + if (TryComp(uid, out var panel) && panel.Open) { args.Handled = false; diff --git a/Content.Server/Atmos/Piping/Binary/EntitySystems/GasPressurePumpSystem.cs b/Content.Server/Atmos/Piping/Binary/EntitySystems/GasPressurePumpSystem.cs index 83b7b67ba46..871c84e0588 100644 --- a/Content.Server/Atmos/Piping/Binary/EntitySystems/GasPressurePumpSystem.cs +++ b/Content.Server/Atmos/Piping/Binary/EntitySystems/GasPressurePumpSystem.cs @@ -103,6 +103,9 @@ private void OnPumpLeaveAtmosphere(EntityUid uid, GasPressurePumpComponent pump, private void OnPumpActivate(EntityUid uid, GasPressurePumpComponent pump, ActivateInWorldEvent args) { + if (args.Handled || !args.Complex) + return; + if (!EntityManager.TryGetComponent(args.User, out ActorComponent? actor)) return; diff --git a/Content.Server/Atmos/Piping/Binary/EntitySystems/GasValveSystem.cs b/Content.Server/Atmos/Piping/Binary/EntitySystems/GasValveSystem.cs index ed7567428e1..4aeba2f8fe2 100644 --- a/Content.Server/Atmos/Piping/Binary/EntitySystems/GasValveSystem.cs +++ b/Content.Server/Atmos/Piping/Binary/EntitySystems/GasValveSystem.cs @@ -52,8 +52,12 @@ private void OnStartup(EntityUid uid, GasValveComponent component, ComponentStar private void OnActivate(EntityUid uid, GasValveComponent component, ActivateInWorldEvent args) { + if (args.Handled || !args.Complex) + return; + Toggle(uid, component); _audio.PlayPvs(component.ValveSound, uid, AudioParams.Default.WithVariation(0.25f)); + args.Handled = true; } public void Set(EntityUid uid, GasValveComponent component, bool value) diff --git a/Content.Server/Atmos/Piping/Binary/EntitySystems/GasVolumePumpSystem.cs b/Content.Server/Atmos/Piping/Binary/EntitySystems/GasVolumePumpSystem.cs index cbcd1f4fa3b..d9fbeb474e2 100644 --- a/Content.Server/Atmos/Piping/Binary/EntitySystems/GasVolumePumpSystem.cs +++ b/Content.Server/Atmos/Piping/Binary/EntitySystems/GasVolumePumpSystem.cs @@ -133,6 +133,9 @@ private void OnVolumePumpLeaveAtmosphere(EntityUid uid, GasVolumePumpComponent p private void OnPumpActivate(EntityUid uid, GasVolumePumpComponent pump, ActivateInWorldEvent args) { + if (args.Handled || !args.Complex) + return; + if (!EntityManager.TryGetComponent(args.User, out ActorComponent? actor)) return; diff --git a/Content.Server/Atmos/Piping/Trinary/EntitySystems/GasFilterSystem.cs b/Content.Server/Atmos/Piping/Trinary/EntitySystems/GasFilterSystem.cs index 007d304e98e..752d1e9eb83 100644 --- a/Content.Server/Atmos/Piping/Trinary/EntitySystems/GasFilterSystem.cs +++ b/Content.Server/Atmos/Piping/Trinary/EntitySystems/GasFilterSystem.cs @@ -99,6 +99,9 @@ private void OnFilterLeaveAtmosphere(EntityUid uid, GasFilterComponent filter, r private void OnFilterActivate(EntityUid uid, GasFilterComponent filter, ActivateInWorldEvent args) { + if (args.Handled || !args.Complex) + return; + if (!EntityManager.TryGetComponent(args.User, out ActorComponent? actor)) return; diff --git a/Content.Server/Atmos/Piping/Trinary/EntitySystems/GasMixerSystem.cs b/Content.Server/Atmos/Piping/Trinary/EntitySystems/GasMixerSystem.cs index 4ab8572843b..178caeaa4a9 100644 --- a/Content.Server/Atmos/Piping/Trinary/EntitySystems/GasMixerSystem.cs +++ b/Content.Server/Atmos/Piping/Trinary/EntitySystems/GasMixerSystem.cs @@ -139,6 +139,9 @@ private void OnMixerLeaveAtmosphere(EntityUid uid, GasMixerComponent mixer, ref private void OnMixerActivate(EntityUid uid, GasMixerComponent mixer, ActivateInWorldEvent args) { + if (args.Handled || !args.Complex) + return; + if (!EntityManager.TryGetComponent(args.User, out ActorComponent? actor)) return; diff --git a/Content.Server/Atmos/Piping/Unary/EntitySystems/GasCanisterSystem.cs b/Content.Server/Atmos/Piping/Unary/EntitySystems/GasCanisterSystem.cs index 60ae230b1ba..29d00388b06 100644 --- a/Content.Server/Atmos/Piping/Unary/EntitySystems/GasCanisterSystem.cs +++ b/Content.Server/Atmos/Piping/Unary/EntitySystems/GasCanisterSystem.cs @@ -211,6 +211,9 @@ private void OnCanisterUpdated(EntityUid uid, GasCanisterComponent canister, ref private void OnCanisterActivate(EntityUid uid, GasCanisterComponent component, ActivateInWorldEvent args) { + if (!args.Complex) + return; + if (!TryComp(args.User, out var actor)) return; diff --git a/Content.Server/Atmos/Piping/Unary/EntitySystems/GasOutletInjectorSystem.cs b/Content.Server/Atmos/Piping/Unary/EntitySystems/GasOutletInjectorSystem.cs index 834a1dfb0b7..62039185170 100644 --- a/Content.Server/Atmos/Piping/Unary/EntitySystems/GasOutletInjectorSystem.cs +++ b/Content.Server/Atmos/Piping/Unary/EntitySystems/GasOutletInjectorSystem.cs @@ -33,8 +33,12 @@ private void OnMapInit(EntityUid uid, GasOutletInjectorComponent component, MapI private void OnActivate(EntityUid uid, GasOutletInjectorComponent component, ActivateInWorldEvent args) { + if (args.Handled || !args.Complex) + return; + component.Enabled = !component.Enabled; UpdateAppearance(uid, component); + args.Handled = true; } public void UpdateAppearance(EntityUid uid, GasOutletInjectorComponent component, AppearanceComponent? appearance = null) diff --git a/Content.Server/Atmos/Piping/Unary/EntitySystems/GasPortableSystem.cs b/Content.Server/Atmos/Piping/Unary/EntitySystems/GasPortableSystem.cs index 7cb8102a388..bf973e34c8e 100644 --- a/Content.Server/Atmos/Piping/Unary/EntitySystems/GasPortableSystem.cs +++ b/Content.Server/Atmos/Piping/Unary/EntitySystems/GasPortableSystem.cs @@ -17,6 +17,7 @@ public sealed class GasPortableSystem : EntitySystem { [Dependency] private readonly SharedAppearanceSystem _appearance = default!; [Dependency] private readonly NodeContainerSystem _nodeContainer = default!; + [Dependency] private readonly SharedMapSystem _sharedMapSystem = default!; public override void Initialize() { @@ -33,7 +34,7 @@ private void OnPortableAnchorAttempt(EntityUid uid, GasPortableComponent compone return; // If we can't find any ports, cancel the anchoring. - if(!FindGasPortIn(transform.GridUid, transform.Coordinates, out _)) + if (!FindGasPortIn(transform.GridUid, transform.Coordinates, out _)) args.Cancel(); } @@ -54,10 +55,13 @@ public bool FindGasPortIn(EntityUid? gridId, EntityCoordinates coordinates, [Not { port = null; + if (gridId == null) + return false; + if (!TryComp(gridId, out var grid)) return false; - foreach (var entityUid in grid.GetLocal(coordinates)) + foreach (var entityUid in _sharedMapSystem.GetLocal((EntityUid) gridId, grid, coordinates)) { if (EntityManager.TryGetComponent(entityUid, out port)) { diff --git a/Content.Server/AutoVote/AutoVoteSystem.cs b/Content.Server/AutoVote/AutoVoteSystem.cs new file mode 100644 index 00000000000..7fb053b2f82 --- /dev/null +++ b/Content.Server/AutoVote/AutoVoteSystem.cs @@ -0,0 +1,54 @@ +using Robust.Shared.Configuration; +using Content.Server.Voting.Managers; +using Content.Shared.GameTicking; +using Content.Shared.Voting; +using Content.Shared.CCVar; +using Robust.Server.Player; +using Content.Server.GameTicking; + +namespace Content.Server.AutoVote; + +public sealed class AutoVoteSystem : EntitySystem +{ + [Dependency] private readonly IConfigurationManager _cfg = default!; + [Dependency] public readonly IVoteManager _voteManager = default!; + [Dependency] public readonly IPlayerManager _playerManager = default!; + + public bool _shouldVoteNextJoin = false; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnReturnedToLobby); + SubscribeLocalEvent(OnPlayerJoinedLobby); + } + + public void OnReturnedToLobby(RoundRestartCleanupEvent ev) => CallAutovote(); + + public void OnPlayerJoinedLobby(PlayerJoinedLobbyEvent ev) + { + if (!_shouldVoteNextJoin) + return; + + CallAutovote(); + _shouldVoteNextJoin = false; + } + + private void CallAutovote() + { + if (!_cfg.GetCVar(CCVars.AutoVoteEnabled)) + return; + + if (_playerManager.PlayerCount == 0) + { + _shouldVoteNextJoin = true; + return; + } + + if (_cfg.GetCVar(CCVars.MapAutoVoteEnabled)) + _voteManager.CreateStandardVote(null, StandardVoteType.Map); + if (_cfg.GetCVar(CCVars.PresetAutoVoteEnabled)) + _voteManager.CreateStandardVote(null, StandardVoteType.Preset); + } +} diff --git a/Content.Server/BarSign/Systems/BarSignSystem.cs b/Content.Server/BarSign/Systems/BarSignSystem.cs index 4a481408452..e42394f5a30 100644 --- a/Content.Server/BarSign/Systems/BarSignSystem.cs +++ b/Content.Server/BarSign/Systems/BarSignSystem.cs @@ -34,7 +34,7 @@ private void OnMapInit(EntityUid uid, BarSignComponent component, MapInitEvent a _metaData.SetEntityDescription(uid, Loc.GetString(newPrototype.Description), meta); component.Current = newPrototype.ID; - Dirty(component); + Dirty(uid, component); } } } diff --git a/Content.Server/Bed/BedSystem.cs b/Content.Server/Bed/BedSystem.cs index 976ef5139c3..089ce322366 100644 --- a/Content.Server/Bed/BedSystem.cs +++ b/Content.Server/Bed/BedSystem.cs @@ -15,6 +15,7 @@ using Content.Shared.Mobs.Systems; using Robust.Shared.Timing; using Content.Shared.Silicon.Components; // I shouldn't have to modify this. +using Robust.Shared.Utility; namespace Content.Server.Bed { @@ -30,27 +31,31 @@ public sealed class BedSystem : EntitySystem public override void Initialize() { base.Initialize(); - SubscribeLocalEvent(ManageUpdateList); - SubscribeLocalEvent(OnBuckleChange); + SubscribeLocalEvent(OnStrapped); + SubscribeLocalEvent(OnUnstrapped); + SubscribeLocalEvent(OnStasisStrapped); + SubscribeLocalEvent(OnStasisUnstrapped); SubscribeLocalEvent(OnPowerChanged); SubscribeLocalEvent(OnEmagged); SubscribeLocalEvent(OnRefreshParts); SubscribeLocalEvent(OnUpgradeExamine); } - private void ManageUpdateList(EntityUid uid, HealOnBuckleComponent component, ref BuckleChangeEvent args) + private void OnStrapped(Entity bed, ref StrappedEvent args) { - if (args.Buckling) - { - AddComp(uid); - component.NextHealTime = _timing.CurTime + TimeSpan.FromSeconds(component.HealTime); - _actionsSystem.AddAction(args.BuckledEntity, ref component.SleepAction, SleepingSystem.SleepActionId, uid); - return; - } + EnsureComp(bed); + bed.Comp.NextHealTime = _timing.CurTime + TimeSpan.FromSeconds(bed.Comp.HealTime); + _actionsSystem.AddAction(args.Buckle, ref bed.Comp.SleepAction, SleepingSystem.SleepActionId, bed); - _actionsSystem.RemoveAction(args.BuckledEntity, component.SleepAction); - _sleepingSystem.TryWaking(args.BuckledEntity); - RemComp(uid); + // Single action entity, cannot strap multiple entities to the same bed. + DebugTools.AssertEqual(args.Strap.Comp.BuckledEntities.Count, 1); + } + + private void OnUnstrapped(Entity bed, ref UnstrappedEvent args) + { + _actionsSystem.RemoveAction(args.Buckle, bed.Comp.SleepAction); + _sleepingSystem.TryWaking(args.Buckle.Owner); + RemComp(bed); } public override void Update(float frameTime) @@ -89,18 +94,22 @@ private void UpdateAppearance(EntityUid uid, bool isOn) _appearance.SetData(uid, StasisBedVisuals.IsOn, isOn); } - private void OnBuckleChange(EntityUid uid, StasisBedComponent component, ref BuckleChangeEvent args) + private void OnStasisStrapped(Entity bed, ref StrappedEvent args) { - // In testing this also received an unbuckle event when the bed is destroyed - // So don't worry about that - if (!HasComp(args.BuckledEntity)) + if (!HasComp(args.Buckle) || !this.IsPowered(bed, EntityManager)) return; - if (!this.IsPowered(uid, EntityManager)) + var metabolicEvent = new ApplyMetabolicMultiplierEvent(args.Buckle, bed.Comp.Multiplier, true); + RaiseLocalEvent(args.Buckle, ref metabolicEvent); + } + + private void OnStasisUnstrapped(Entity bed, ref UnstrappedEvent args) + { + if (!HasComp(args.Buckle) || !this.IsPowered(bed, EntityManager)) return; - var metabolicEvent = new ApplyMetabolicMultiplierEvent(args.BuckledEntity, component.Multiplier, args.Buckling); - RaiseLocalEvent(args.BuckledEntity, ref metabolicEvent); + var metabolicEvent = new ApplyMetabolicMultiplierEvent(args.Buckle, bed.Comp.Multiplier, false); + RaiseLocalEvent(args.Buckle, ref metabolicEvent); } private void OnPowerChanged(EntityUid uid, StasisBedComponent component, ref PowerChangedEvent args) diff --git a/Content.Server/Bed/Components/HealOnBuckleComponent.cs b/Content.Server/Bed/Components/HealOnBuckleComponent.cs index f29fe30429f..3c6f3a4382b 100644 --- a/Content.Server/Bed/Components/HealOnBuckleComponent.cs +++ b/Content.Server/Bed/Components/HealOnBuckleComponent.cs @@ -5,19 +5,26 @@ namespace Content.Server.Bed.Components [RegisterComponent] public sealed partial class HealOnBuckleComponent : Component { - [DataField("damage", required: true)] - [ViewVariables(VVAccess.ReadWrite)] + /// + /// Damage to apply to entities that are strapped to this entity. + /// + [DataField(required: true)] public DamageSpecifier Damage = default!; - [DataField("healTime", required: false)] - [ViewVariables(VVAccess.ReadWrite)] - public float HealTime = 1f; // How often the bed applies the damage + /// + /// How frequently the damage should be applied, in seconds. + /// + [DataField(required: false)] + public float HealTime = 1f; - [DataField("sleepMultiplier")] + /// + /// Damage multiplier that gets applied if the entity is sleeping. + /// + [DataField] public float SleepMultiplier = 3f; public TimeSpan NextHealTime = TimeSpan.Zero; //Next heal - [DataField("sleepAction")] public EntityUid? SleepAction; + [DataField] public EntityUid? SleepAction; } } diff --git a/Content.Server/Bed/Components/HealOnBuckleHealing.cs b/Content.Server/Bed/Components/HealOnBuckleHealing.cs index a944e67e12d..aaa82c737c5 100644 --- a/Content.Server/Bed/Components/HealOnBuckleHealing.cs +++ b/Content.Server/Bed/Components/HealOnBuckleHealing.cs @@ -1,5 +1,6 @@ namespace Content.Server.Bed.Components { + // TODO rename this component [RegisterComponent] public sealed partial class HealOnBuckleHealingComponent : Component {} diff --git a/Content.Server/Bed/Components/StasisBedComponent.cs b/Content.Server/Bed/Components/StasisBedComponent.cs index bb4096a2a5e..6e0042b2df8 100644 --- a/Content.Server/Bed/Components/StasisBedComponent.cs +++ b/Content.Server/Bed/Components/StasisBedComponent.cs @@ -12,7 +12,8 @@ public sealed partial class StasisBedComponent : Component /// /// What the metabolic update rate will be multiplied by (higher = slower metabolism) /// - [ViewVariables(VVAccess.ReadWrite)] + [ViewVariables(VVAccess.ReadOnly)] // Writing is is not supported. ApplyMetabolicMultiplierEvent needs to be refactored first + [DataField] public float Multiplier = 10f; [DataField(customTypeSerializer: typeof(PrototypeIdSerializer))] diff --git a/Content.Server/Bed/Sleep/SleepingSystem.cs b/Content.Server/Bed/Sleep/SleepingSystem.cs index 5e4f0eddb52..4edb2ed28de 100644 --- a/Content.Server/Bed/Sleep/SleepingSystem.cs +++ b/Content.Server/Bed/Sleep/SleepingSystem.cs @@ -94,8 +94,13 @@ private void OnDamageChanged(EntityUid uid, SleepingComponent component, DamageC if (!args.DamageIncreased || args.DamageDelta == null) return; - if (args.DamageDelta.GetTotal() >= component.WakeThreshold) + /* Surgery needs this, sorry! If the nocturine gamers get too feisty + I'll probably just increase the threshold */ + + if (args.DamageDelta.GetTotal() >= component.WakeThreshold + && !HasComp(uid)) TryWaking(uid, component); + } private void OnSleepAction(EntityUid uid, MobStateComponent component, SleepActionEvent args) diff --git a/Content.Server/Body/Components/BloodstreamComponent.cs b/Content.Server/Body/Components/BloodstreamComponent.cs index f7024a63951..ee0de4aa4dc 100644 --- a/Content.Server/Body/Components/BloodstreamComponent.cs +++ b/Content.Server/Body/Components/BloodstreamComponent.cs @@ -2,6 +2,7 @@ using Content.Server.Chemistry.EntitySystems; using Content.Server.Traits; using Content.Server.Traits.Assorted; +using Content.Shared.Alert; using Content.Shared.Chemistry.Components; using Content.Shared.Chemistry.Reagent; using Content.Shared.Damage; @@ -181,5 +182,8 @@ public sealed partial class BloodstreamComponent : Component /// [ViewVariables(VVAccess.ReadWrite)] public TimeSpan StatusTime; + + [DataField] + public ProtoId BleedingAlert = "Bleed"; } } diff --git a/Content.Server/Body/Components/BrainComponent.cs b/Content.Server/Body/Components/BrainComponent.cs index 004ff24eaff..1a0ebc5f2a7 100644 --- a/Content.Server/Body/Components/BrainComponent.cs +++ b/Content.Server/Body/Components/BrainComponent.cs @@ -5,5 +5,10 @@ namespace Content.Server.Body.Components [RegisterComponent, Access(typeof(BrainSystem))] public sealed partial class BrainComponent : Component { + /// + /// Is this brain currently controlling the entity? + /// + [DataField] + public bool Active = true; } } diff --git a/Content.Server/Body/Components/InternalsComponent.cs b/Content.Server/Body/Components/InternalsComponent.cs index 18caab8dcf0..098f1789218 100644 --- a/Content.Server/Body/Components/InternalsComponent.cs +++ b/Content.Server/Body/Components/InternalsComponent.cs @@ -1,3 +1,6 @@ +using Content.Shared.Alert; +using Robust.Shared.Prototypes; + namespace Content.Server.Body.Components { /// @@ -18,5 +21,8 @@ public sealed partial class InternalsComponent : Component [ViewVariables(VVAccess.ReadWrite)] [DataField] public TimeSpan Delay = TimeSpan.FromSeconds(3); + + [DataField] + public ProtoId InternalsAlert = "Internals"; } } diff --git a/Content.Server/Body/Components/LungComponent.cs b/Content.Server/Body/Components/LungComponent.cs index 46600b30207..72af4d9e63a 100644 --- a/Content.Server/Body/Components/LungComponent.cs +++ b/Content.Server/Body/Components/LungComponent.cs @@ -1,8 +1,8 @@ -using Content.Server.Atmos; using Content.Server.Body.Systems; using Content.Shared.Alert; using Content.Shared.Atmos; using Content.Shared.Chemistry.Components; +using Robust.Shared.Prototypes; namespace Content.Server.Body.Components; @@ -33,5 +33,5 @@ public sealed partial class LungComponent : Component /// The type of gas this lung needs. Used only for the breathing alerts, not actual metabolism. /// [DataField] - public AlertType Alert = AlertType.LowOxygen; + public ProtoId Alert = "LowOxygen"; } diff --git a/Content.Server/Body/Systems/BloodstreamSystem.cs b/Content.Server/Body/Systems/BloodstreamSystem.cs index d1fad6541ba..54e51d7e35e 100644 --- a/Content.Server/Body/Systems/BloodstreamSystem.cs +++ b/Content.Server/Body/Systems/BloodstreamSystem.cs @@ -280,6 +280,9 @@ private void OnApplyMetabolicMultiplier( Entity ent, ref ApplyMetabolicMultiplierEvent args) { + // TODO REFACTOR THIS + // This will slowly drift over time due to floating point errors. + // Instead, raise an event with the base rates and allow modifiers to get applied to it. if (args.Apply) { ent.Comp.UpdateInterval *= args.Multiplier; @@ -357,7 +360,8 @@ public void SetBloodMaxVolume(EntityUid uid, FixedPoint2 volume, BloodstreamComp /// /// Attempts to modify the blood level of this entity directly. /// - public bool TryModifyBloodLevel(EntityUid uid, FixedPoint2 amount, BloodstreamComponent? component = null) + public bool TryModifyBloodLevel(EntityUid uid, FixedPoint2 amount, BloodstreamComponent? component = null, + bool createPuddle = true) { if (!Resolve(uid, ref component, logMissing: false) || !_solutionContainerSystem.ResolveSolution(uid, component.BloodSolutionName, ref component.BloodSolution)) @@ -378,7 +382,7 @@ public bool TryModifyBloodLevel(EntityUid uid, FixedPoint2 amount, BloodstreamCo tempSolution.AddSolution(newSol, _prototypeManager); - if (tempSolution.Volume > component.BleedPuddleThreshold) + if (tempSolution.Volume > component.BleedPuddleThreshold && createPuddle) { // Pass some of the chemstream into the spilled blood. if (_solutionContainerSystem.ResolveSolution(uid, component.ChemicalSolutionName, ref component.ChemicalSolution)) @@ -412,11 +416,11 @@ public bool TryModifyBleedAmount(EntityUid uid, float amount, BloodstreamCompone component.BleedAmount = Math.Clamp(component.BleedAmount, 0, component.MaxBleedAmount); if (component.BleedAmount == 0) - _alertsSystem.ClearAlert(uid, AlertType.Bleed); + _alertsSystem.ClearAlert(uid, component.BleedingAlert); else { var severity = (short) Math.Clamp(Math.Round(component.BleedAmount, MidpointRounding.ToZero), 0, 10); - _alertsSystem.ShowAlert(uid, AlertType.Bleed, severity); + _alertsSystem.ShowAlert(uid, component.BleedingAlert, severity); } return true; diff --git a/Content.Server/Body/Systems/BodySystem.cs b/Content.Server/Body/Systems/BodySystem.cs index 37f78ed81a0..2584e4daa2d 100644 --- a/Content.Server/Body/Systems/BodySystem.cs +++ b/Content.Server/Body/Systems/BodySystem.cs @@ -1,9 +1,12 @@ +using System.Linq; using Content.Server.Body.Components; using Content.Server.GameTicking; using Content.Server.Humanoid; using Content.Shared.Body.Components; using Content.Shared.Body.Part; using Content.Shared.Body.Systems; +using Content.Shared.Damage; +using Content.Shared.Gibbing.Events; using Content.Shared.Humanoid; using Content.Shared.Mind; using Content.Shared.Mobs.Systems; @@ -22,8 +25,8 @@ public sealed class BodySystem : SharedBodySystem [Dependency] private readonly GameTicker _ticker = default!; [Dependency] private readonly IGameTiming _gameTiming = default!; [Dependency] private readonly HumanoidAppearanceSystem _humanoidSystem = default!; + [Dependency] private readonly SharedAppearanceSystem _appearance = default!; [Dependency] private readonly MobStateSystem _mobState = default!; - [Dependency] private readonly SharedAudioSystem _audio = default!; [Dependency] private readonly SharedMindSystem _mindSystem = default!; public override void Initialize() @@ -73,9 +76,8 @@ protected override void AddPart( var layer = partEnt.Comp.ToHumanoidLayers(); if (layer != null) { - var layers = HumanoidVisualLayersExtension.Sublayers(layer.Value); _humanoidSystem.SetLayersVisibility( - bodyEnt, layers, visible: true, permanent: true, humanoid); + bodyEnt, new[] { layer.Value }, visible: true, permanent: true, humanoid); } } } @@ -96,8 +98,10 @@ protected override void RemovePart( return; var layers = HumanoidVisualLayersExtension.Sublayers(layer.Value); + _humanoidSystem.SetLayersVisibility( bodyEnt, layers, visible: false, permanent: true, humanoid); + _appearance.SetData(bodyEnt, layer, true); } public override HashSet GibBody( @@ -108,8 +112,9 @@ public override HashSet GibBody( Vector2? splatDirection = null, float splatModifier = 1, Angle splatCone = default, - SoundSpecifier? gibSoundOverride = null - ) + SoundSpecifier? gibSoundOverride = null, + GibType gib = GibType.Gib, + GibContentsOption contents = GibContentsOption.Drop) { if (!Resolve(bodyId, ref body, logMissing: false) || TerminatingOrDeleted(bodyId) @@ -123,7 +128,8 @@ public override HashSet GibBody( return new HashSet(); var gibs = base.GibBody(bodyId, gibOrgans, body, launchGibs: launchGibs, - splatDirection: splatDirection, splatModifier: splatModifier, splatCone:splatCone); + splatDirection: splatDirection, splatModifier: splatModifier, splatCone: splatCone, + gib: gib, contents: contents); var ev = new BeingGibbedEvent(gibs); RaiseLocalEvent(bodyId, ref ev); @@ -132,4 +138,57 @@ public override HashSet GibBody( return gibs; } + + public override HashSet GibPart( + EntityUid partId, + BodyPartComponent? part = null, + bool launchGibs = true, + Vector2? splatDirection = null, + float splatModifier = 1, + Angle splatCone = default, + SoundSpecifier? gibSoundOverride = null) + { + if (!Resolve(partId, ref part, logMissing: false) + || TerminatingOrDeleted(partId) + || EntityManager.IsQueuedForDeletion(partId)) + return new HashSet(); + + if (Transform(partId).MapUid is null) + return new HashSet(); + + var gibs = base.GibPart(partId, part, launchGibs: launchGibs, + splatDirection: splatDirection, splatModifier: splatModifier, splatCone: splatCone); + + var ev = new BeingGibbedEvent(gibs); + RaiseLocalEvent(partId, ref ev); + + if (gibs.Any()) + QueueDel(partId); + + return gibs; + } + + public override bool BurnPart(EntityUid partId, BodyPartComponent? part = null) + { + if (!Resolve(partId, ref part, logMissing: false) + || TerminatingOrDeleted(partId) + || EntityManager.IsQueuedForDeletion(partId)) + return false; + + return base.BurnPart(partId, part); + } + + protected override void ApplyPartMarkings(EntityUid target, BodyPartAppearanceComponent component) + { + return; + } + + protected override void RemoveBodyMarkings(EntityUid target, BodyPartAppearanceComponent partAppearance, HumanoidAppearanceComponent bodyAppearance) + { + foreach (var (visualLayer, markingList) in partAppearance.Markings) + foreach (var marking in markingList) + _humanoidSystem.RemoveMarking(target, marking.MarkingId, sync: false, humanoid: bodyAppearance); + + Dirty(target, bodyAppearance); + } } diff --git a/Content.Server/Body/Systems/BrainSystem.cs b/Content.Server/Body/Systems/BrainSystem.cs index 86d2cb61ffe..8338bc0f85b 100644 --- a/Content.Server/Body/Systems/BrainSystem.cs +++ b/Content.Server/Body/Systems/BrainSystem.cs @@ -1,7 +1,12 @@ using Content.Server.Body.Components; using Content.Server.Ghost.Components; using Content.Shared.Body.Components; +using Content.Shared.Body.Systems; +using Content.Shared.Body.Systems; using Content.Shared.Body.Events; +using Content.Shared.Body.Organ; +using Content.Server.DelayedDeath; +using Content.Server.DelayedDeath; using Content.Shared.Mind; using Content.Shared.Mind.Components; using Content.Shared.Pointing; @@ -11,17 +16,44 @@ namespace Content.Server.Body.Systems public sealed class BrainSystem : EntitySystem { [Dependency] private readonly SharedMindSystem _mindSystem = default!; + [Dependency] private readonly SharedBodySystem _bodySystem = default!; public override void Initialize() { base.Initialize(); - SubscribeLocalEvent((uid, _, args) => HandleMind(args.Body, uid)); - SubscribeLocalEvent((uid, _, args) => HandleMind(uid, args.OldBody)); + SubscribeLocalEvent(HandleAddition); + SubscribeLocalEvent(HandleRemoval); SubscribeLocalEvent(OnPointAttempt); } - private void HandleMind(EntityUid newEntity, EntityUid oldEntity) + private void HandleRemoval(EntityUid uid, BrainComponent brain, ref OrganRemovedFromBodyEvent args) + { + if (TerminatingOrDeleted(uid) || TerminatingOrDeleted(args.OldBody)) + return; + + brain.Active = false; + // Prevents revival, should kill the user within a given timespan too. + if (!CheckOtherBrains(args.OldBody)) + { + EnsureComp(args.OldBody); + HandleMind(uid, args.OldBody); + } + } + + private void HandleAddition(EntityUid uid, BrainComponent brain, ref OrganAddedToBodyEvent args) + { + if (TerminatingOrDeleted(uid) || TerminatingOrDeleted(args.Body)) + return; + + if (!CheckOtherBrains(args.Body)) + { + RemComp(args.Body); + HandleMind(args.Body, uid, brain); + } + } + + private void HandleMind(EntityUid newEntity, EntityUid oldEntity, BrainComponent? brain = null) { if (TerminatingOrDeleted(newEntity) || TerminatingOrDeleted(oldEntity)) return; @@ -37,11 +69,36 @@ private void HandleMind(EntityUid newEntity, EntityUid oldEntity) return; _mindSystem.TransferTo(mindId, newEntity, mind: mind); + if (brain != null) + brain.Active = true; } private void OnPointAttempt(Entity ent, ref PointAttemptEvent args) { args.Cancel(); } + + private bool CheckOtherBrains(EntityUid entity) + { + var hasOtherBrains = false; + if (TryComp(entity, out var body)) + { + if (TryComp(entity, out var bodyBrain)) + hasOtherBrains = true; + else + { + foreach (var (organ, _) in _bodySystem.GetBodyOrgans(entity, body)) + { + if (TryComp(organ, out var brain) && brain.Active) + { + hasOtherBrains = true; + break; + } + } + } + } + + return hasOtherBrains; + } } } diff --git a/Content.Server/Body/Systems/DebrainedSystem.cs b/Content.Server/Body/Systems/DebrainedSystem.cs new file mode 100644 index 00000000000..6f1f2c1ff62 --- /dev/null +++ b/Content.Server/Body/Systems/DebrainedSystem.cs @@ -0,0 +1,62 @@ +using Content.Shared.Body.Systems; +using Content.Shared.Body.Organ; +using Content.Server.DelayedDeath; +using Content.Shared.Mind; +using Content.Server.Popups; +using Content.Shared.Speech; +using Content.Shared.Standing; +using Content.Shared.Stunnable; + +namespace Content.Server.Body.Systems; + +/// +/// This system handles behavior on entities when they lose their head or their brains are removed. +/// MindComponent fuckery should still be mainly handled on BrainSystem as usual. +/// +public sealed class DebrainedSystem : EntitySystem +{ + [Dependency] private readonly SharedBodySystem _bodySystem = default!; + [Dependency] private readonly PopupSystem _popupSystem = default!; + [Dependency] private readonly StandingStateSystem _standingSystem = default!; + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnComponentInit); + SubscribeLocalEvent(OnComponentRemove); + SubscribeLocalEvent(OnSpeakAttempt); + SubscribeLocalEvent(OnStandAttempt); + } + + private void OnComponentInit(EntityUid uid, DebrainedComponent _, ComponentInit args) + { + if (TerminatingOrDeleted(uid)) + return; + + EnsureComp(uid); + EnsureComp(uid); + _standingSystem.Down(uid); + } + + private void OnComponentRemove(EntityUid uid, DebrainedComponent _, ComponentRemove args) + { + if (TerminatingOrDeleted(uid)) + return; + + RemComp(uid); + RemComp(uid); + if (_bodySystem.TryGetBodyOrganComponents(uid, out var _)) + RemComp(uid); + } + + private void OnSpeakAttempt(EntityUid uid, DebrainedComponent _, SpeakAttemptEvent args) + { + _popupSystem.PopupEntity(Loc.GetString("speech-muted"), uid, uid); + args.Cancel(); + } + + private void OnStandAttempt(EntityUid uid, DebrainedComponent _, StandAttemptEvent args) + { + args.Cancel(); + } +} diff --git a/Content.Server/Body/Systems/EyesSystem.cs b/Content.Server/Body/Systems/EyesSystem.cs new file mode 100644 index 00000000000..b59b278711a --- /dev/null +++ b/Content.Server/Body/Systems/EyesSystem.cs @@ -0,0 +1,87 @@ +using Content.Server.Body.Components; +using Content.Shared.Body.Components; +using Content.Shared.Body.Events; +using Content.Shared.Body.Organ; +using Content.Shared.Eye.Blinding.Components; +using Content.Shared.Eye.Blinding.Systems; + +namespace Content.Server.Body.Systems +{ + public sealed class EyesSystem : EntitySystem + { + [Dependency] private readonly IEntityManager _entityManager = default!; + [Dependency] private readonly BlindableSystem _blindableSystem = default!; + [Dependency] private readonly BodySystem _bodySystem = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnOrganEnabled); + SubscribeLocalEvent(OnOrganDisabled); + } + + private void HandleSight(EntityUid newEntity, EntityUid oldEntity) + { + if (TerminatingOrDeleted(newEntity) || TerminatingOrDeleted(oldEntity)) + return; + + BlindableComponent? newSight; + BlindableComponent? oldSight; + //transfer existing component to organ + if (!TryComp(newEntity, out newSight)) + newSight = EnsureComp(newEntity); + + if (!TryComp(oldEntity, out oldSight)) + oldSight = EnsureComp(oldEntity); + + //give new sight all values of old sight + _blindableSystem.TransferBlindness(newSight, oldSight, newEntity); + + var hasOtherEyes = false; + //check for other eye components on owning body and owning body organs (if old entity has a body) + if (TryComp(oldEntity, out var body)) + { + if (TryComp(oldEntity, out var bodyEyes)) //some bodies see through their skin!!! (slimes) + hasOtherEyes = true; + else + { + foreach (var (organ, _) in _bodySystem.GetBodyOrgans(oldEntity, body)) + { + if (TryComp(organ, out var eyes)) + { + hasOtherEyes = true; + break; + } + } + //TODO (MS14): Should we do this for body parts too? might be a little overpowered but could be funny/interesting + } + } + + //if there are no existing eye components for the old entity - set old sight to be blind otherwise leave it as is + if (!hasOtherEyes && !TryComp(oldEntity, out var self)) + _blindableSystem.AdjustEyeDamage((oldEntity, oldSight), oldSight.MaxDamage); + + } + + private void OnOrganEnabled(EntityUid uid, EyesComponent component, OrganEnabledEvent args) + { + if (TerminatingOrDeleted(uid) + || args.Organ.Comp.Body is not { Valid: true } body) + return; + + RemComp(body); + HandleSight(uid, body); + } + + private void OnOrganDisabled(EntityUid uid, EyesComponent component, OrganDisabledEvent args) + { + if (TerminatingOrDeleted(uid) + || args.Organ.Comp.Body is not { Valid: true } body) + return; + + EnsureComp(body); + HandleSight(body, uid); + } + } +} diff --git a/Content.Server/Body/Systems/HeartSystem.cs b/Content.Server/Body/Systems/HeartSystem.cs new file mode 100644 index 00000000000..7926c833e3a --- /dev/null +++ b/Content.Server/Body/Systems/HeartSystem.cs @@ -0,0 +1,38 @@ +using Content.Shared.Body.Components; +using Content.Shared.Body.Systems; +using Content.Shared.Body.Events; +using Content.Shared.Body.Organ; +using Content.Server.DelayedDeath; +using Content.Server.Body.Components; +namespace Content.Server.Body.Systems; + +public sealed class HeartSystem : EntitySystem +{ + [Dependency] private readonly SharedBodySystem _bodySystem = default!; + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(HandleAddition); + SubscribeLocalEvent(HandleRemoval); + } + + private void HandleRemoval(EntityUid uid, HeartComponent _, ref OrganRemovedFromBodyEvent args) + { + if (TerminatingOrDeleted(uid) || TerminatingOrDeleted(args.OldBody)) + return; + + // TODO: Add some form of very violent bleeding effect. + EnsureComp(args.OldBody); + } + + private void HandleAddition(EntityUid uid, HeartComponent _, ref OrganAddedToBodyEvent args) + { + if (TerminatingOrDeleted(uid) || TerminatingOrDeleted(args.Body)) + return; + + if (_bodySystem.TryGetBodyOrganComponents(args.Body, out var _)) + RemComp(args.Body); + } + // Shitmed-End +} \ No newline at end of file diff --git a/Content.Server/Body/Systems/InternalsSystem.cs b/Content.Server/Body/Systems/InternalsSystem.cs index db078e2f291..fdcc76718cf 100644 --- a/Content.Server/Body/Systems/InternalsSystem.cs +++ b/Content.Server/Body/Systems/InternalsSystem.cs @@ -145,12 +145,12 @@ private void OnDoAfter(Entity ent, ref InternalsDoAfterEvent private void OnInternalsStartup(Entity ent, ref ComponentStartup args) { - _alerts.ShowAlert(ent, AlertType.Internals, GetSeverity(ent)); + _alerts.ShowAlert(ent, ent.Comp.InternalsAlert, GetSeverity(ent)); } private void OnInternalsShutdown(Entity ent, ref ComponentShutdown args) { - _alerts.ClearAlert(ent, AlertType.Internals); + _alerts.ClearAlert(ent, ent.Comp.InternalsAlert); } private void OnInhaleLocation(Entity ent, ref InhaleLocationEvent args) @@ -160,7 +160,7 @@ private void OnInhaleLocation(Entity ent, ref InhaleLocation var gasTank = Comp(ent.Comp.GasTankEntity!.Value); args.Gas = _gasTank.RemoveAirVolume((ent.Comp.GasTankEntity.Value, gasTank), Atmospherics.BreathVolume); // TODO: Should listen to gas tank updates instead I guess? - _alerts.ShowAlert(ent, AlertType.Internals, GetSeverity(ent)); + _alerts.ShowAlert(ent, ent.Comp.InternalsAlert, GetSeverity(ent)); } } public void DisconnectBreathTool(Entity ent) @@ -174,7 +174,7 @@ public void DisconnectBreathTool(Entity ent) DisconnectTank(ent); } - _alerts.ShowAlert(ent, AlertType.Internals, GetSeverity(ent)); + _alerts.ShowAlert(ent, ent.Comp.InternalsAlert, GetSeverity(ent)); } public void ConnectBreathTool(Entity ent, EntityUid toolEntity) @@ -185,7 +185,7 @@ public void ConnectBreathTool(Entity ent, EntityUid toolEnti } ent.Comp.BreathToolEntity = toolEntity; - _alerts.ShowAlert(ent, AlertType.Internals, GetSeverity(ent)); + _alerts.ShowAlert(ent, ent.Comp.InternalsAlert, GetSeverity(ent)); } public void DisconnectTank(InternalsComponent? component) @@ -197,7 +197,7 @@ public void DisconnectTank(InternalsComponent? component) _gasTank.DisconnectFromInternals((component.GasTankEntity.Value, tank)); component.GasTankEntity = null; - _alerts.ShowAlert(component.Owner, AlertType.Internals, GetSeverity(component)); + _alerts.ShowAlert(component.Owner, component.InternalsAlert, GetSeverity(component)); } public bool TryConnectTank(Entity ent, EntityUid tankEntity) @@ -209,7 +209,7 @@ public bool TryConnectTank(Entity ent, EntityUid tankEntity) _gasTank.DisconnectFromInternals((ent.Comp.GasTankEntity.Value, tank)); ent.Comp.GasTankEntity = tankEntity; - _alerts.ShowAlert(ent, AlertType.Internals, GetSeverity(ent)); + _alerts.ShowAlert(ent, ent.Comp.InternalsAlert, GetSeverity(ent)); return true; } diff --git a/Content.Server/Body/Systems/MetabolizerSystem.cs b/Content.Server/Body/Systems/MetabolizerSystem.cs index 066bf0a1c5b..a7eec8e3c02 100644 --- a/Content.Server/Body/Systems/MetabolizerSystem.cs +++ b/Content.Server/Body/Systems/MetabolizerSystem.cs @@ -67,6 +67,9 @@ private void OnApplyMetabolicMultiplier( Entity ent, ref ApplyMetabolicMultiplierEvent args) { + // TODO REFACTOR THIS + // This will slowly drift over time due to floating point errors. + // Instead, raise an event with the base rates and allow modifiers to get applied to it. if (args.Apply) { ent.Comp.UpdateInterval *= args.Multiplier; @@ -232,6 +235,9 @@ private void TryMetabolize(Entity(uid)) // Shitmed: cannot breathe in crit or when no brain. { switch (respirator.Status) { @@ -184,7 +185,7 @@ private void TakeSuffocationDamage(Entity ent) RaiseLocalEvent(ent, new MoodEffectEvent("Suffocating")); } - _damageableSys.TryChangeDamage(ent, ent.Comp.Damage, interruptsDoAfters: false); + _damageableSys.TryChangeDamage(ent, HasComp(ent) ? ent.Comp.Damage * 4.5f : ent.Comp.Damage, interruptsDoAfters: false); } private void StopSuffocation(Entity ent) @@ -217,6 +218,9 @@ private void OnApplyMetabolicMultiplier( Entity ent, ref ApplyMetabolicMultiplierEvent args) { + // TODO REFACTOR THIS + // This will slowly drift over time due to floating point errors. + // Instead, raise an event with the base rates and allow modifiers to get applied to it. if (args.Apply) { ent.Comp.UpdateInterval *= args.Multiplier; diff --git a/Content.Server/CardboardBox/CardboardBoxSystem.cs b/Content.Server/CardboardBox/CardboardBoxSystem.cs index b9c9427d5c8..836dc485d92 100644 --- a/Content.Server/CardboardBox/CardboardBoxSystem.cs +++ b/Content.Server/CardboardBox/CardboardBoxSystem.cs @@ -36,7 +36,6 @@ public override void Initialize() SubscribeLocalEvent(AfterStorageClosed); SubscribeLocalEvent(OnGetAdditionalAccess); SubscribeLocalEvent(OnInteracted); - SubscribeLocalEvent(OnNoHandInteracted); SubscribeLocalEvent(OnEntInserted); SubscribeLocalEvent(OnEntRemoved); @@ -45,9 +44,18 @@ public override void Initialize() private void OnInteracted(EntityUid uid, CardboardBoxComponent component, ActivateInWorldEvent args) { + if (args.Handled) + return; + if (!TryComp(uid, out var box)) return; + if (!args.Complex) + { + if (box.Open || !box.Contents.Contains(args.User)) + return; + } + args.Handled = true; _storage.ToggleOpen(args.User, uid, box); @@ -58,15 +66,6 @@ private void OnInteracted(EntityUid uid, CardboardBoxComponent component, Activa } } - private void OnNoHandInteracted(EntityUid uid, CardboardBoxComponent component, InteractedNoHandEvent args) - { - //Free the mice please - if (!TryComp(uid, out var box) || box.Open || !box.Contents.Contains(args.User)) - return; - - _storage.OpenStorage(uid); - } - private void OnGetAdditionalAccess(EntityUid uid, CardboardBoxComponent component, ref GetAdditionalAccessEvent args) { if (component.Mover == null) diff --git a/Content.Server/Cargo/Systems/CargoSystem.Orders.cs b/Content.Server/Cargo/Systems/CargoSystem.Orders.cs index 8978e6b2bfb..ac7aadfef15 100644 --- a/Content.Server/Cargo/Systems/CargoSystem.Orders.cs +++ b/Content.Server/Cargo/Systems/CargoSystem.Orders.cs @@ -82,9 +82,11 @@ private void UpdateConsole(float frameTime) { _timer -= Delay; - foreach (var account in EntityQuery()) + var stationQuery = EntityQueryEnumerator(); + while (stationQuery.MoveNext(out var uid, out var bank)) { - account.Balance += account.IncreasePerSecond * Delay; + var balanceToAdd = bank.IncreasePerSecond * Delay; + UpdateBankAccount(uid, bank, balanceToAdd); } var query = EntityQueryEnumerator(); @@ -207,7 +209,7 @@ private void OnApproveOrderMessage(EntityUid uid, CargoOrderConsoleComponent com $"{ToPrettyString(player):user} approved order [orderId:{order.OrderId}, quantity:{order.OrderQuantity}, product:{order.ProductId}, requester:{order.Requester}, reason:{order.Reason}] with balance at {bank.Balance}"); orderDatabase.Orders.Remove(order); - DeductFunds(bank, cost); + UpdateBankAccount(station.Value, bank, -cost); UpdateOrders(station.Value); } @@ -519,11 +521,6 @@ private bool FulfillOrder(CargoOrderData order, EntityCoordinates spawn, string? } - private void DeductFunds(StationBankAccountComponent component, int amount) - { - component.Balance = Math.Max(0, component.Balance - amount); - } - #region Station private bool TryGetOrderDatabase([NotNullWhen(true)] EntityUid? stationUid, [MaybeNullWhen(false)] out StationCargoOrderDatabaseComponent dbComp) diff --git a/Content.Server/Cargo/Systems/CargoSystem.Shuttle.cs b/Content.Server/Cargo/Systems/CargoSystem.Shuttle.cs index 1c5c7ed1c0d..1480c28bf22 100644 --- a/Content.Server/Cargo/Systems/CargoSystem.Shuttle.cs +++ b/Content.Server/Cargo/Systems/CargoSystem.Shuttle.cs @@ -20,6 +20,7 @@ using Robust.Shared.Physics.Components; using Robust.Shared.Utility; using Robust.Shared.Configuration; +using Robust.Shared.Map.Components; namespace Content.Server.Cargo.Systems; @@ -91,14 +92,7 @@ private void UpdatePalletConsoleInterface(EntityUid uid) } private void OnPalletUIOpen(EntityUid uid, CargoPalletConsoleComponent component, BoundUIOpenedEvent args) - { - var player = args.Actor; - - if (player == null) - return; - - UpdatePalletConsoleInterface(uid); - } + => UpdatePalletConsoleInterface(uid); /// /// Ok so this is just the same thing as opening the UI, its a refresh button. @@ -109,20 +103,10 @@ private void OnPalletUIOpen(EntityUid uid, CargoPalletConsoleComponent component /// private void OnPalletAppraise(EntityUid uid, CargoPalletConsoleComponent component, CargoPalletAppraiseMessage args) - { - var player = args.Actor; - - if (player == null) - return; - - UpdatePalletConsoleInterface(uid); - } + => UpdatePalletConsoleInterface(uid); private void OnCargoShuttleConsoleStartup(EntityUid uid, CargoShuttleConsoleComponent component, ComponentStartup args) - { - var station = _station.GetOwningStation(uid); - UpdateShuttleState(uid, station); - } + => UpdateShuttleState(uid, _station.GetOwningStation(uid)); private void UpdateShuttleState(EntityUid uid, EntityUid? station = null) { @@ -339,10 +323,6 @@ private bool CanSell(EntityUid uid, TransformComponent xform) private void OnPalletSale(EntityUid uid, CargoPalletConsoleComponent component, CargoPalletSellMessage args) { var player = args.Actor; - - if (player == null) - return; - var xform = Transform(uid); if (xform.GridUid is not EntityUid gridUid) @@ -380,7 +360,7 @@ private void OnStationInitialize(StationInitializedEvent args) private void CleanupTradeStation() { - if (CargoMap == null || !_mapManager.MapExists(CargoMap.Value)) + if (CargoMap == null || !_sharedMapSystem.MapExists(CargoMap.Value)) { CargoMap = null; DebugTools.Assert(!EntityQuery().Any()); @@ -393,13 +373,14 @@ private void CleanupTradeStation() private void SetupTradePost() { - if (CargoMap != null && _mapManager.MapExists(CargoMap.Value)) + if (CargoMap != null && _sharedMapSystem.MapExists(CargoMap.Value)) { return; } // It gets mapinit which is okay... buuutt we still want it paused to avoid power draining. - CargoMap = _mapManager.CreateMap(); + var mapEntId = _mapSystem.CreateMap(); + CargoMap = _entityManager.GetComponent(mapEntId).MapId; var options = new MapLoadOptions { @@ -420,11 +401,12 @@ private void SetupTradePost() var shuttleComponent = EnsureComp(grid); shuttleComponent.AngularDamping = 10000; shuttleComponent.LinearDamping = 10000; - Dirty(shuttleComponent); + Dirty(grid, shuttleComponent); } - var mapUid = _mapManager.GetMapEntityId(CargoMap.Value); - var ftl = EnsureComp(_mapManager.GetMapEntityId(CargoMap.Value)); + var mapUid = _sharedMapSystem.GetMap(CargoMap.Value); + var ftl = EnsureComp(mapUid); + ftl.Whitelist = new EntityWhitelist() { Components = diff --git a/Content.Server/Cargo/Systems/CargoSystem.cs b/Content.Server/Cargo/Systems/CargoSystem.cs index e593299321e..16597fa1bcd 100644 --- a/Content.Server/Cargo/Systems/CargoSystem.cs +++ b/Content.Server/Cargo/Systems/CargoSystem.cs @@ -47,7 +47,10 @@ public sealed partial class CargoSystem : SharedCargoSystem [Dependency] private readonly MetaDataSystem _metaSystem = default!; [Dependency] private readonly RadioSystem _radio = default!; [Dependency] private readonly IConfigurationManager _cfgManager = default!; + [Dependency] private readonly SharedMapSystem _sharedMapSystem = default!; + [Dependency] private readonly MapSystem _mapSystem = default!; [Dependency] private readonly IMapManager _mapManager = default!; + [Dependency] private readonly IEntityManager _entityManager = default!; [Dependency] private readonly IComponentFactory _factory = default!; [Dependency] private readonly MapLoaderSystem _mapLoader = default!; diff --git a/Content.Server/Carrying/CarryingSystem.cs b/Content.Server/Carrying/CarryingSystem.cs index 857c3861a74..ca69d2f9299 100644 --- a/Content.Server/Carrying/CarryingSystem.cs +++ b/Content.Server/Carrying/CarryingSystem.cs @@ -67,7 +67,7 @@ public override void Initialize() SubscribeLocalEvent(OnInteractedWith); SubscribeLocalEvent(OnPullAttempt); SubscribeLocalEvent(OnStartClimb); - SubscribeLocalEvent(OnBuckleChange); + SubscribeLocalEvent(OnBuckled); SubscribeLocalEvent(OnDoAfter); } @@ -215,7 +215,7 @@ private void OnStartClimb(EntityUid uid, BeingCarriedComponent component, ref St DropCarried(component.Carrier, uid); } - private void OnBuckleChange(EntityUid uid, BeingCarriedComponent component, ref BuckleChangeEvent args) + private void OnBuckled(EntityUid uid, BeingCarriedComponent component, ref BuckledEvent args) { DropCarried(component.Carrier, uid); } diff --git a/Content.Server/Chat/Managers/ChatManager.RateLimit.cs b/Content.Server/Chat/Managers/ChatManager.RateLimit.cs index cf87ab6322d..ccb38166a6d 100644 --- a/Content.Server/Chat/Managers/ChatManager.RateLimit.cs +++ b/Content.Server/Chat/Managers/ChatManager.RateLimit.cs @@ -1,84 +1,38 @@ -using System.Runtime.InteropServices; using Content.Shared.CCVar; using Content.Shared.Database; -using Robust.Shared.Enums; +using Content.Shared.Players.RateLimiting; using Robust.Shared.Player; -using Robust.Shared.Timing; namespace Content.Server.Chat.Managers; internal sealed partial class ChatManager { - private readonly Dictionary _rateLimitData = new(); + private const string RateLimitKey = "Chat"; - public bool HandleRateLimit(ICommonSession player) + private void RegisterRateLimits() { - ref var datum = ref CollectionsMarshal.GetValueRefOrAddDefault(_rateLimitData, player, out _); - var time = _gameTiming.RealTime; - if (datum.CountExpires < time) - { - // Period expired, reset it. - var periodLength = _configurationManager.GetCVar(CCVars.ChatRateLimitPeriod); - datum.CountExpires = time + TimeSpan.FromSeconds(periodLength); - datum.Count = 0; - datum.Announced = false; - } - - var maxCount = _configurationManager.GetCVar(CCVars.ChatRateLimitCount); - datum.Count += 1; - - if (datum.Count <= maxCount) - return true; - - // Breached rate limits, inform admins if configured. - if (_configurationManager.GetCVar(CCVars.ChatRateLimitAnnounceAdmins)) - { - if (datum.NextAdminAnnounce < time) - { - SendAdminAlert(Loc.GetString("chat-manager-rate-limit-admin-announcement", ("player", player.Name))); - var delay = _configurationManager.GetCVar(CCVars.ChatRateLimitAnnounceAdminsDelay); - datum.NextAdminAnnounce = time + TimeSpan.FromSeconds(delay); - } - } - - if (!datum.Announced) - { - DispatchServerMessage(player, Loc.GetString("chat-manager-rate-limited"), suppressLog: true); - _adminLogger.Add(LogType.ChatRateLimited, LogImpact.Medium, $"Player {player} breached chat rate limits"); - - datum.Announced = true; - } - - return false; + _rateLimitManager.Register(RateLimitKey, + new RateLimitRegistration(CCVars.ChatRateLimitPeriod, + CCVars.ChatRateLimitCount, + RateLimitPlayerLimited, + CCVars.ChatRateLimitAnnounceAdminsDelay, + RateLimitAlertAdmins, + LogType.ChatRateLimited) + ); } - private void PlayerStatusChanged(object? sender, SessionStatusEventArgs e) + private void RateLimitPlayerLimited(ICommonSession player) { - if (e.NewStatus == SessionStatus.Disconnected) - _rateLimitData.Remove(e.Session); + DispatchServerMessage(player, Loc.GetString("chat-manager-rate-limited"), suppressLog: true); } - private struct RateLimitDatum + private void RateLimitAlertAdmins(ICommonSession player) { - /// - /// Time stamp (relative to ) this rate limit period will expire at. - /// - public TimeSpan CountExpires; - - /// - /// How many messages have been sent in the current rate limit period. - /// - public int Count; - - /// - /// Have we announced to the player that they've been blocked in this rate limit period? - /// - public bool Announced; + SendAdminAlert(Loc.GetString("chat-manager-rate-limit-admin-announcement", ("player", player.Name))); + } - /// - /// Time stamp (relative to ) of the - /// next time we can send an announcement to admins about rate limit breach. - /// - public TimeSpan NextAdminAnnounce; + public RateLimitStatus HandleRateLimit(ICommonSession player) + { + return _rateLimitManager.CountAction(player, RateLimitKey); } } diff --git a/Content.Server/Chat/Managers/ChatManager.cs b/Content.Server/Chat/Managers/ChatManager.cs index 812aed80bd7..565438a2365 100644 --- a/Content.Server/Chat/Managers/ChatManager.cs +++ b/Content.Server/Chat/Managers/ChatManager.cs @@ -5,18 +5,18 @@ using Content.Server.Administration.Managers; using Content.Server.Administration.Systems; using Content.Server.MoMMI; +using Content.Server.Players.RateLimiting; using Content.Server.Preferences.Managers; using Content.Shared.Administration; using Content.Shared.CCVar; using Content.Shared.Chat; using Content.Shared.Database; using Content.Shared.Mind; -using Robust.Server.Player; +using Content.Shared.Players.RateLimiting; using Robust.Shared.Configuration; using Robust.Shared.Network; using Robust.Shared.Player; using Robust.Shared.Replays; -using Robust.Shared.Timing; using Robust.Shared.Utility; namespace Content.Server.Chat.Managers @@ -43,8 +43,7 @@ internal sealed partial class ChatManager : IChatManager [Dependency] private readonly IConfigurationManager _configurationManager = default!; [Dependency] private readonly INetConfigurationManager _netConfigManager = default!; [Dependency] private readonly IEntityManager _entityManager = default!; - [Dependency] private readonly IGameTiming _gameTiming = default!; - [Dependency] private readonly IPlayerManager _playerManager = default!; + [Dependency] private readonly PlayerRateLimitManager _rateLimitManager = default!; /// /// The maximum length a player-sent message can be sent @@ -64,7 +63,7 @@ public void Initialize() _configurationManager.OnValueChanged(CCVars.OocEnabled, OnOocEnabledChanged, true); _configurationManager.OnValueChanged(CCVars.AdminOocEnabled, OnAdminOocEnabledChanged, true); - _playerManager.PlayerStatusChanged += PlayerStatusChanged; + RegisterRateLimits(); } private void OnOocEnabledChanged(bool val) @@ -150,6 +149,14 @@ public void SendAdminAnnouncement(string message, AdminFlags? flagBlacklist, Adm _adminLogger.Add(LogType.Chat, LogImpact.Low, $"Admin announcement: {message}"); } + public void SendAdminAnnouncementMessage(ICommonSession player, string message, bool suppressLog = true) + { + var wrappedMessage = Loc.GetString("chat-manager-send-admin-announcement-wrap-message", + ("adminChannelName", Loc.GetString("chat-manager-admin-channel-name")), + ("message", FormattedMessage.EscapeText(message))); + ChatMessageToOne(ChatChannel.Admin, message, wrappedMessage, default, false, player.Channel); + } + public void SendAdminAlert(string message) { var clients = _adminManager.ActiveAdmins.Select(p => p.Channel); @@ -198,7 +205,7 @@ public void SendHookOOC(string sender, string message) /// The type of message. public void TrySendOOCMessage(ICommonSession player, string message, OOCChatType type) { - if (!HandleRateLimit(player)) + if (HandleRateLimit(player) != RateLimitStatus.Allowed) return; // Check if message exceeds the character limit diff --git a/Content.Server/Chat/Managers/IChatManager.cs b/Content.Server/Chat/Managers/IChatManager.cs index 59945bf5ca6..e1400e3e8db 100644 --- a/Content.Server/Chat/Managers/IChatManager.cs +++ b/Content.Server/Chat/Managers/IChatManager.cs @@ -1,15 +1,14 @@ using System.Diagnostics.CodeAnalysis; using Content.Shared.Administration; using Content.Shared.Chat; +using Content.Shared.Players.RateLimiting; using Robust.Shared.Network; using Robust.Shared.Player; namespace Content.Server.Chat.Managers { - public interface IChatManager + public interface IChatManager : ISharedChatManager { - void Initialize(); - /// /// Dispatch a server announcement to every connected player. /// @@ -23,8 +22,7 @@ public interface IChatManager void SendHookOOC(string sender, string message); void SendAdminAnnouncement(string message, AdminFlags? flagBlacklist = null, AdminFlags? flagWhitelist = null); - void SendAdminAlert(string message); - void SendAdminAlert(EntityUid player, string message); + void SendAdminAnnouncementMessage(ICommonSession player, string message, bool suppressLog = true); void ChatMessageToOne(ChatChannel channel, string message, string wrappedMessage, EntityUid source, bool hideChat, INetChannel client, Color? colorOverride = null, bool recordReplay = false, string? audioPath = null, float audioVolume = 0, NetUserId? author = null); @@ -49,6 +47,6 @@ void ChatMessageToMany(ChatChannel channel, string message, string wrappedMessag /// /// The player sending a chat message. /// False if the player has violated rate limits and should be blocked from sending further messages. - bool HandleRateLimit(ICommonSession player); + RateLimitStatus HandleRateLimit(ICommonSession player); } } diff --git a/Content.Server/Chat/Systems/ChatSystem.Emote.cs b/Content.Server/Chat/Systems/ChatSystem.Emote.cs index 1aeed69e030..3ee94072ca2 100644 --- a/Content.Server/Chat/Systems/ChatSystem.Emote.cs +++ b/Content.Server/Chat/Systems/ChatSystem.Emote.cs @@ -84,9 +84,7 @@ public void TryEmoteWithChat( bool ignoreActionBlocker = false ) { - if (!(emote.Whitelist?.IsValid(source, EntityManager) ?? true)) - return; - if (emote.Blacklist?.IsValid(source, EntityManager) ?? false) + if (_whitelistSystem.IsWhitelistFailOrNull(emote.Whitelist, source) || _whitelistSystem.IsBlacklistPass(emote.Blacklist, source)) return; if (!emote.Available && @@ -178,7 +176,7 @@ private void TryEmoteChatInput(EntityUid uid, string textInput) private void InvokeEmoteEvent(EntityUid uid, EmotePrototype proto) { var ev = new EmoteEvent(proto); - RaiseLocalEvent(uid, ref ev); + RaiseLocalEvent(uid, ref ev, true); // goob edit } } diff --git a/Content.Server/Chat/Systems/ChatSystem.cs b/Content.Server/Chat/Systems/ChatSystem.cs index d743a83ef40..f3de9a4f95a 100644 --- a/Content.Server/Chat/Systems/ChatSystem.cs +++ b/Content.Server/Chat/Systems/ChatSystem.cs @@ -5,6 +5,7 @@ using Content.Server.Administration.Managers; using Content.Server.Chat.Managers; using Content.Server.GameTicking; +using Content.Server.Players.RateLimiting; using Content.Server.Language; using Content.Server.Speech.Components; using Content.Server.Speech.EntitySystems; @@ -21,8 +22,10 @@ using Content.Shared.Language.Systems; using Content.Shared.Mobs.Systems; using Content.Shared.Players; +using Content.Shared.Players.RateLimiting; using Content.Shared.Radio; using Content.Shared.Speech; +using Content.Shared.Whitelist; using Robust.Server.Player; using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; @@ -43,7 +46,7 @@ namespace Content.Server.Chat.Systems; // Dear contributor. When I was introducing changes to this system only god and I knew what I was doing. // Now only god knows. Please don't touch this code ever again. If you do have to, increment this counter as a warning for others: -// TOTAL_HOURS_WASTED_HERE_EE = 17 +// TOTAL_HOURS_WASTED_HERE_EE = 19 // TODO refactor whatever active warzone this class and chatmanager have become /// @@ -69,6 +72,7 @@ public sealed partial class ChatSystem : SharedChatSystem [Dependency] private readonly ReplacementAccentSystem _wordreplacement = default!; [Dependency] private readonly LanguageSystem _language = default!; [Dependency] private readonly TelepathicChatSystem _telepath = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; public const int VoiceRange = 10; // how far voice goes in world units public const int WhisperClearRange = 2; // how far whisper goes while still being understandable, in world units @@ -192,7 +196,7 @@ public void TrySendInGameICMessage( return; } - if (player != null && !_chatManager.HandleRateLimit(player)) + if (player != null && _chatManager.HandleRateLimit(player) != RateLimitStatus.Allowed) return; // Sus @@ -291,7 +295,7 @@ public void TrySendInGameOOCMessage( if (!CanSendInGame(message, shell, player)) return; - if (player != null && !_chatManager.HandleRateLimit(player)) + if (player != null && _chatManager.HandleRateLimit(player) != RateLimitStatus.Allowed) return; // It doesn't make any sense for a non-player to send in-game OOC messages, whereas non-players may be sending @@ -343,7 +347,7 @@ public void DispatchGlobalAnnouncement( _chatManager.ChatMessageToAll(ChatChannel.Radio, message, wrappedMessage, default, false, true, colorOverride); if (playSound) { - _audio.PlayGlobal(announcementSound?.GetSound() ?? DefaultAnnouncementSound, Filter.Broadcast(), true, AudioParams.Default.WithVolume(-2f)); + _audio.PlayGlobal(announcementSound != null ? announcementSound.ToString() : DefaultAnnouncementSound, Filter.Broadcast(), true, AudioParams.Default.WithVolume(-2f)); } _adminLogger.Add(LogType.Chat, LogImpact.Low, $"Global station announcement from {sender}: {message}"); } @@ -381,7 +385,7 @@ public void DispatchStationAnnouncement( if (playDefaultSound) { - _audio.PlayGlobal(announcementSound?.GetSound() ?? DefaultAnnouncementSound, filter, true, AudioParams.Default.WithVolume(-2f)); + _audio.PlayGlobal(announcementSound != null ? announcementSound.ToString() : DefaultAnnouncementSound, filter, true, AudioParams.Default.WithVolume(-2f)); } _adminLogger.Add(LogType.Chat, LogImpact.Low, $"Station Announcement on {station} from {sender}: {message}"); @@ -880,7 +884,7 @@ public string WrapMessage(LocId wrapId, InGameICChatType chatType, EntityUid sou if (language.SpeechOverride.Color is { } colorOverride) color = Color.InterpolateBetween(color, colorOverride, colorOverride.A); var languageDisplay = language.IsVisibleLanguage - ? $"{language.ChatName} | " + ? Loc.GetString("chat-manager-language-prefix", ("language", language.ChatName)) : ""; return Loc.GetString(wrapId, diff --git a/Content.Server/Chat/TelepathicChatSystem.cs b/Content.Server/Chat/TelepathicChatSystem.cs index b1338035adb..e0844b3eee2 100644 --- a/Content.Server/Chat/TelepathicChatSystem.cs +++ b/Content.Server/Chat/TelepathicChatSystem.cs @@ -52,20 +52,22 @@ public override void Initialize() private IEnumerable GetAdminClients() { return _adminManager.ActiveAdmins - .Select(p => p.ConnectedClient); + .Select(p => p.Channel); } private List GetDreamers(IEnumerable removeList) { + var filteredList = new List(); var filtered = Filter.Empty() .AddWhereAttachedEntity(entity => HasComp(entity) && !HasComp(entity) || HasComp(entity) || HasComp(entity) && !HasComp(entity) && !HasComp(entity)) .Recipients - .Select(p => p.ConnectedClient); + .Select(p => p.Channel); - var filteredList = filtered.ToList(); + if (filtered.ToList() != null) + filteredList = filtered.ToList(); foreach (var entity in removeList) filteredList.Remove(entity); @@ -134,7 +136,7 @@ private string ObfuscateMessageReadability(string message, float chance) for (var i = 0; i < message.Length; i++) { - if (char.IsWhiteSpace((modifiedMessage[i]))) + if (char.IsWhiteSpace(modifiedMessage[i])) { continue; } diff --git a/Content.Server/Chemistry/ReagentEffects/AdjustAlert.cs b/Content.Server/Chemistry/ReagentEffects/AdjustAlert.cs index 8d475570ad0..40858176bd1 100644 --- a/Content.Server/Chemistry/ReagentEffects/AdjustAlert.cs +++ b/Content.Server/Chemistry/ReagentEffects/AdjustAlert.cs @@ -10,8 +10,8 @@ public sealed partial class AdjustAlert : ReagentEffect /// /// The specific Alert that will be adjusted /// - [DataField("alertType", required: true)] - public AlertType Type; + [DataField(required: true)] + public ProtoId AlertType; /// /// If true, the alert is removed after Time seconds. If Time was not specified the alert is removed immediately. @@ -42,7 +42,7 @@ public override void Effect(ReagentEffectArgs args) if (Clear && Time <= 0) { - alertSys.ClearAlert(args.SolutionEntity, Type); + alertSys.ClearAlert(args.SolutionEntity, AlertType); } else { @@ -52,7 +52,7 @@ public override void Effect(ReagentEffectArgs args) if ((ShowCooldown || Clear) && Time > 0) cooldown = (timing.CurTime, timing.CurTime + TimeSpan.FromSeconds(Time)); - alertSys.ShowAlert(args.SolutionEntity, Type, cooldown: cooldown, autoRemove: Clear, showCooldown: ShowCooldown); + alertSys.ShowAlert(args.SolutionEntity, AlertType, cooldown: cooldown, autoRemove: Clear, showCooldown: ShowCooldown); } } diff --git a/Content.Server/Chemistry/ReagentEffects/HealthChange.cs b/Content.Server/Chemistry/ReagentEffects/HealthChange.cs index 24880cfd371..53933072b6d 100644 --- a/Content.Server/Chemistry/ReagentEffects/HealthChange.cs +++ b/Content.Server/Chemistry/ReagentEffects/HealthChange.cs @@ -3,6 +3,7 @@ using Content.Shared.Damage.Prototypes; using Content.Shared.FixedPoint; using Content.Shared.Localizations; +using Content.Shared.Targeting; // Shitmed using JetBrains.Annotations; using Robust.Shared.Prototypes; using System.Linq; @@ -119,7 +120,12 @@ public override void Effect(ReagentEffectArgs args) args.SolutionEntity, Damage * scale, IgnoreResistances, - interruptsDoAfters: false); + interruptsDoAfters: false, + // Shitmed Start + targetPart: TargetBodyPart.All, + partMultiplier: 0.5f, + canSever: false); + // Shitmed End } } } diff --git a/Content.Server/Chemistry/ReagentEffects/PurifyEvil.cs b/Content.Server/Chemistry/ReagentEffects/PurifyEvil.cs new file mode 100644 index 00000000000..896ecf2eac5 --- /dev/null +++ b/Content.Server/Chemistry/ReagentEffects/PurifyEvil.cs @@ -0,0 +1,49 @@ +using System.Threading; +using Content.Shared.Chemistry.Reagent; +using Content.Shared.Jittering; +using Content.Shared.WhiteDream.BloodCult.BloodCultist; +using JetBrains.Annotations; +using Robust.Shared.Prototypes; + +namespace Content.Server.Chemistry.ReagentEffects; + +[UsedImplicitly] +public sealed partial class PurifyEvil : ReagentEffect +{ + [DataField] + public float Amplitude = 10.0f; + + [DataField] + public float Frequency = 4.0f; + + [DataField] + public TimeSpan Time = TimeSpan.FromSeconds(30.0f); + + protected override string ReagentEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys) + { + return Loc.GetString("reagent-effect-guidebook-purify-evil"); + } + + public override void Effect(ReagentEffectArgs args) + { + var entityManager = args.EntityManager; + var uid = args.SolutionEntity; + if (!entityManager.TryGetComponent(uid, out BloodCultistComponent? bloodCultist) || + bloodCultist.DeconvertToken is not null) + { + return; + } + + entityManager.System().DoJitter(uid, Time, true, Amplitude, Frequency); + + bloodCultist.DeconvertToken = new CancellationTokenSource(); + Robust.Shared.Timing.Timer.Spawn(Time, () => DeconvertCultist(uid, entityManager), + bloodCultist.DeconvertToken.Token); + } + + private void DeconvertCultist(EntityUid uid, IEntityManager entityManager) + { + if (entityManager.HasComponent(uid)) + entityManager.RemoveComponent(uid); + } +} diff --git a/Content.Server/Clothing/MagbootsSystem.cs b/Content.Server/Clothing/MagbootsSystem.cs index f12558389e3..3838ad168d1 100644 --- a/Content.Server/Clothing/MagbootsSystem.cs +++ b/Content.Server/Clothing/MagbootsSystem.cs @@ -29,11 +29,11 @@ protected override void UpdateMagbootEffects(EntityUid parent, EntityUid uid, bo if (state) { - _alerts.ShowAlert(parent, AlertType.Magboots); + _alerts.ShowAlert(parent, component.MagbootsAlert); } else { - _alerts.ClearAlert(parent, AlertType.Magboots); + _alerts.ClearAlert(parent, component.MagbootsAlert); } } diff --git a/Content.Server/Clothing/Systems/ChameleonClothingSystem.cs b/Content.Server/Clothing/Systems/ChameleonClothingSystem.cs index e20a6c3da97..feb3428884c 100644 --- a/Content.Server/Clothing/Systems/ChameleonClothingSystem.cs +++ b/Content.Server/Clothing/Systems/ChameleonClothingSystem.cs @@ -39,7 +39,7 @@ private void OnVerb(EntityUid uid, ChameleonClothingComponent component, GetVerb args.Verbs.Add(new InteractionVerb() { Text = Loc.GetString("chameleon-component-verb-text"), - Icon = new SpriteSpecifier.Texture(new ("/Textures/Interface/VerbIcons/settings.svg.192dpi.png")), + Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/settings.svg.192dpi.png")), Act = () => TryOpenUi(uid, args.User, component) }); } @@ -91,7 +91,7 @@ public void SetSelectedPrototype(EntityUid uid, string? protoId, bool forceUpdat UpdateIdentityBlocker(uid, component, proto); UpdateVisuals(uid, component); UpdateUi(uid, component); - Dirty(component); + Dirty(uid, component); } private void UpdateIdentityBlocker(EntityUid uid, ChameleonClothingComponent component, EntityPrototype proto) diff --git a/Content.Server/Clothing/Systems/LoadoutSystem.Functions.cs b/Content.Server/Clothing/Systems/LoadoutSystem.Functions.cs new file mode 100644 index 00000000000..99ca8b15c28 --- /dev/null +++ b/Content.Server/Clothing/Systems/LoadoutSystem.Functions.cs @@ -0,0 +1,30 @@ +using JetBrains.Annotations; +using Robust.Shared.Serialization.Manager; +using Content.Shared.Clothing.Loadouts.Prototypes; +using Content.Server.NPC.Components; +using Content.Server.NPC.Systems; +using Content.Server.NPC.HTN; +using Content.Server.NPC; +using Robust.Shared.Map; +using System.Numerics; + +namespace Content.Server.Clothing.Systems; + +[UsedImplicitly] +public sealed partial class LoadoutMakeFollower : LoadoutFunction +{ + public override void OnPlayerSpawn(EntityUid character, + EntityUid loadoutEntity, + IComponentFactory factory, + IEntityManager entityManager, + ISerializationManager serializationManager) + { + var npc = entityManager.System(); + var htn = entityManager.System(); + if (!entityManager.TryGetComponent(loadoutEntity, out var hTNComponent)) + return; + + npc.SetBlackboard(loadoutEntity, NPCBlackboard.FollowTarget, new EntityCoordinates(character, Vector2.Zero), hTNComponent); + htn.Replan(hTNComponent); + } +} diff --git a/Content.Server/Clothing/Systems/LoadoutSystem.cs b/Content.Server/Clothing/Systems/LoadoutSystem.cs index 73d5ae387ab..4c357c58642 100644 --- a/Content.Server/Clothing/Systems/LoadoutSystem.cs +++ b/Content.Server/Clothing/Systems/LoadoutSystem.cs @@ -1,22 +1,38 @@ +using System.Linq; using Content.Server.GameTicking; +using Content.Server.Paint; using Content.Server.Players.PlayTimeTracking; using Content.Shared.CCVar; +using Content.Shared.Clothing.Loadouts.Prototypes; +using Content.Shared.Clothing.Loadouts.Systems; using Content.Shared.Inventory; using Content.Shared.Item; using Content.Shared.Players; +using Content.Shared.Preferences; +using Content.Shared.Roles; using Content.Shared.Storage; using Content.Shared.Storage.EntitySystems; +using Content.Shared.Traits.Assorted.Components; using Robust.Shared.Configuration; +using Robust.Shared.Prototypes; +using Robust.Shared.Random; +using Robust.Shared.Serialization.Manager; namespace Content.Server.Clothing.Systems; public sealed class LoadoutSystem : EntitySystem { [Dependency] private readonly IConfigurationManager _configurationManager = default!; - [Dependency] private readonly Shared.Clothing.Loadouts.Systems.LoadoutSystem _loadout = default!; + [Dependency] private readonly SharedLoadoutSystem _loadout = default!; [Dependency] private readonly InventorySystem _inventory = default!; [Dependency] private readonly SharedStorageSystem _storage = default!; [Dependency] private readonly PlayTimeTrackingManager _playTimeTracking = default!; + [Dependency] private readonly PaintSystem _paint = default!; + [Dependency] private readonly MetaDataSystem _meta = default!; + [Dependency] private readonly IPrototypeManager _protoMan = default!; + [Dependency] private readonly ISerializationManager _serialization = default!; + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly IComponentFactory _componentFactory = default!; public override void Initialize() @@ -31,21 +47,78 @@ private void OnPlayerSpawnComplete(PlayerSpawnCompleteEvent ev) !_configurationManager.GetCVar(CCVars.GameLoadoutsEnabled)) return; + ApplyCharacterLoadout( + ev.Mob, + ev.JobId, + ev.Profile, + _playTimeTracking.GetTrackerTimes(ev.Player), + ev.Player.ContentData()?.Whitelisted ?? false); + } + + + /// Equips every loadout, then puts whatever extras it can in inventories + public void ApplyCharacterLoadout( + EntityUid uid, + ProtoId job, + HumanoidCharacterProfile profile, + Dictionary playTimes, + bool whitelisted, + bool deleteFailed = false) + { // Spawn the loadout, get a list of items that failed to equip - var failedLoadouts = _loadout.ApplyCharacterLoadout(ev.Mob, ev.JobId, ev.Profile, - _playTimeTracking.GetTrackerTimes(ev.Player), ev.Player.ContentData()?.Whitelisted ?? false); + var (failedLoadouts, allLoadouts) = + _loadout.ApplyCharacterLoadout(uid, job, profile, playTimes, whitelisted, out var heirlooms); // Try to find back-mounted storage apparatus - if (!_inventory.TryGetSlotEntity(ev.Mob, "back", out var item) || + if (!_inventory.TryGetSlotEntity(uid, "back", out var item) || !EntityManager.TryGetComponent(item, out var inventory)) return; // Try inserting the entity into the storage, if it can't, it leaves the loadout item on the ground foreach (var loadout in failedLoadouts) { - if (EntityManager.TryGetComponent(loadout, out var itemComp) && - _storage.CanInsert(item.Value, loadout, out _, inventory, itemComp)) - _storage.Insert(item.Value, loadout, out _, playSound: false); + if ((!EntityManager.TryGetComponent(loadout, out var itemComp) + || !_storage.CanInsert(item.Value, loadout, out _, inventory, itemComp) + || !_storage.Insert(item.Value, loadout, out _, playSound: false)) + && deleteFailed) + EntityManager.QueueDeleteEntity(loadout); + } + + foreach (var loadout in allLoadouts) + { + var loadoutProto = _protoMan.Index(loadout.Item2.LoadoutName); + if (loadoutProto.CustomName && loadout.Item2.CustomName != null) + _meta.SetEntityName(loadout.Item1, loadout.Item2.CustomName); + if (loadoutProto.CustomDescription && loadout.Item2.CustomDescription != null) + _meta.SetEntityDescription(loadout.Item1, loadout.Item2.CustomDescription); + if (loadoutProto.CustomColorTint && !string.IsNullOrEmpty(loadout.Item2.CustomColorTint)) + _paint.Paint(null, null, loadout.Item1, Color.FromHex(loadout.Item2.CustomColorTint)); + + foreach (var component in loadoutProto.Components.Values) + { + if (HasComp(loadout.Item1, component.Component.GetType())) + continue; + + var comp = (Component) _serialization.CreateCopy(component.Component, notNullableOverride: true); + comp.Owner = loadout.Item1; + EntityManager.AddComponent(loadout.Item1, comp); + } + + foreach (var function in loadoutProto.Functions) + function.OnPlayerSpawn(uid, loadout.Item1, _componentFactory, EntityManager, _serialization); + } + + + // Pick the heirloom + if (heirlooms.Any()) + { + var heirloom = _random.Pick(heirlooms); + EnsureComp(uid, out var haver); + EnsureComp(heirloom.Item1, out var comp); + haver.Heirloom = heirloom.Item1; + comp.HOwner = uid; + Dirty(uid, haver); + Dirty(heirloom.Item1, comp); } } } diff --git a/Content.Server/Construction/PartExchangerSystem.cs b/Content.Server/Construction/PartExchangerSystem.cs index f364d1b547d..c84d65b75e0 100644 --- a/Content.Server/Construction/PartExchangerSystem.cs +++ b/Content.Server/Construction/PartExchangerSystem.cs @@ -170,7 +170,12 @@ private void OnAfterInteract(EntityUid uid, PartExchangerComponent component, Af return; } - component.AudioStream = _audio.PlayPvs(component.ExchangeSound, uid).Value.Entity; + var audioStream = _audio.PlayPvs(component.ExchangeSound, uid); + + if (audioStream == null) + return; + + component.AudioStream = audioStream!.Value.Entity; _doAfter.TryStartDoAfter(new DoAfterArgs(EntityManager, args.User, component.ExchangeDuration, new ExchangerDoAfterEvent(), uid, target: args.Target, used: uid) { diff --git a/Content.Server/Cybernetics/CyberneticsSystem.cs b/Content.Server/Cybernetics/CyberneticsSystem.cs new file mode 100644 index 00000000000..744e0e77caa --- /dev/null +++ b/Content.Server/Cybernetics/CyberneticsSystem.cs @@ -0,0 +1,54 @@ +using Content.Server.Emp; +using Content.Server.Body.Systems; +using Content.Shared.Body.Part; +using Content.Shared.Body.Organ; +using Content.Shared.Cybernetics; + +namespace Content.Server.Cybernetics; + +internal sealed class CyberneticsSystem : EntitySystem +{ + public override void Initialize() + { + SubscribeLocalEvent(OnEmpPulse); + SubscribeLocalEvent(OnEmpDisabledRemoved); + } + private void OnEmpPulse(Entity cyberEnt, ref EmpPulseEvent ev) + { + if (!cyberEnt.Comp.Disabled) + { + ev.Affected = true; + ev.Disabled = true; + cyberEnt.Comp.Disabled = true; + + if (HasComp(cyberEnt)) + { + var disableEvent = new OrganEnableChangedEvent(false); + RaiseLocalEvent(cyberEnt, ref disableEvent); + } + else if (HasComp(cyberEnt)) + { + var disableEvent = new BodyPartEnableChangedEvent(false); + RaiseLocalEvent(cyberEnt, ref disableEvent); + } + } + } + + private void OnEmpDisabledRemoved(Entity cyberEnt, ref EmpDisabledRemoved ev) + { + if (cyberEnt.Comp.Disabled) + { + cyberEnt.Comp.Disabled = false; + if (HasComp(cyberEnt)) + { + var enableEvent = new OrganEnableChangedEvent(true); + RaiseLocalEvent(cyberEnt, ref enableEvent); + } + else if (HasComp(cyberEnt)) + { + var enableEvent = new BodyPartEnableChangedEvent(true); + RaiseLocalEvent(cyberEnt, ref enableEvent); + } + } + } +} diff --git a/Content.Server/Damage/Components/DamageOtherOnHitComponent.cs b/Content.Server/Damage/Components/DamageOtherOnHitComponent.cs deleted file mode 100644 index 3123e251af4..00000000000 --- a/Content.Server/Damage/Components/DamageOtherOnHitComponent.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Content.Server.Damage.Systems; -using Content.Shared.Damage; - -namespace Content.Server.Damage.Components -{ - [Access(typeof(DamageOtherOnHitSystem))] - [RegisterComponent] - public sealed partial class DamageOtherOnHitComponent : Component - { - [DataField("ignoreResistances")] - [ViewVariables(VVAccess.ReadWrite)] - public bool IgnoreResistances = false; - - [DataField("damage", required: true)] - [ViewVariables(VVAccess.ReadWrite)] - public DamageSpecifier Damage = default!; - - } -} diff --git a/Content.Server/Damage/Systems/DamageOtherOnHitSystem.cs b/Content.Server/Damage/Systems/DamageOtherOnHitSystem.cs index 0efa5349815..2ffd66fe068 100644 --- a/Content.Server/Damage/Systems/DamageOtherOnHitSystem.cs +++ b/Content.Server/Damage/Systems/DamageOtherOnHitSystem.cs @@ -1,65 +1,66 @@ -using Content.Server.Administration.Logs; -using Content.Server.Damage.Components; -using Content.Server.Weapons.Ranged.Systems; using Content.Shared.Camera; using Content.Shared.Damage; +using Content.Shared.Damage.Components; using Content.Shared.Damage.Events; using Content.Shared.Damage.Systems; using Content.Shared.Database; using Content.Shared.Effects; +using Content.Shared.Item.ItemToggle.Components; using Content.Shared.Mobs.Components; +using Content.Shared.Projectiles; +using Content.Shared.Popups; using Content.Shared.Throwing; +using Content.Shared.Weapons.Melee; +using Robust.Server.GameObjects; +using Robust.Shared.Audio; using Robust.Shared.Physics.Components; using Robust.Shared.Player; +using Robust.Shared.Prototypes; +using Robust.Shared.Utility; namespace Content.Server.Damage.Systems { - public sealed class DamageOtherOnHitSystem : EntitySystem + public sealed class DamageOtherOnHitSystem : SharedDamageOtherOnHitSystem { - [Dependency] private readonly IAdminLogManager _adminLogger = default!; - [Dependency] private readonly GunSystem _guns = default!; - [Dependency] private readonly DamageableSystem _damageable = default!; [Dependency] private readonly DamageExamineSystem _damageExamine = default!; - [Dependency] private readonly SharedCameraRecoilSystem _sharedCameraRecoil = default!; - [Dependency] private readonly SharedColorFlashEffectSystem _color = default!; - [Dependency] private readonly ThrownItemSystem _thrownItem = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly StaminaSystem _stamina = default!; public override void Initialize() { - SubscribeLocalEvent(OnDoHit); + base.Initialize(); + + SubscribeLocalEvent(OnBeforeThrow); SubscribeLocalEvent(OnDamageExamine); } - private void OnDoHit(EntityUid uid, DamageOtherOnHitComponent component, ThrowDoHitEvent args) + private void OnBeforeThrow(EntityUid uid, StaminaComponent component, ref BeforeThrowEvent args) { - var dmg = _damageable.TryChangeDamage(args.Target, component.Damage, component.IgnoreResistances, origin: args.Component.Thrower); - - // Log damage only for mobs. Useful for when people throw spears at each other, but also avoids log-spam when explosions send glass shards flying. - if (dmg != null && HasComp(args.Target)) - _adminLogger.Add(LogType.ThrowHit, $"{ToPrettyString(args.Target):target} received {dmg.GetTotal():damage} damage from collision"); - - if (dmg is { Empty: false }) - { - _color.RaiseEffect(Color.Red, new List() { args.Target }, Filter.Pvs(args.Target, entityManager: EntityManager)); - } + if (!TryComp(args.ItemUid, out var damage)) + return; - _guns.PlayImpactSound(args.Target, dmg, null, false); - if (TryComp(uid, out var body) && body.LinearVelocity.LengthSquared() > 0f) + if (component.CritThreshold - component.StaminaDamage <= damage.StaminaCost) { - var direction = body.LinearVelocity.Normalized(); - _sharedCameraRecoil.KickCamera(args.Target, direction); + args.Cancelled = true; + _popup.PopupEntity(Loc.GetString("throw-no-stamina", ("item", args.ItemUid)), uid, uid); + return; } - // TODO: If more stuff touches this then handle it after. - if (TryComp(uid, out var physics)) - { - _thrownItem.LandComponent(args.Thrown, args.Component, physics, false); - } + _stamina.TakeStaminaDamage(uid, damage.StaminaCost, component, visual: false); } private void OnDamageExamine(EntityUid uid, DamageOtherOnHitComponent component, ref DamageExamineEvent args) { - _damageExamine.AddDamageExamine(args.Message, component.Damage, Loc.GetString("damage-throw")); + _damageExamine.AddDamageExamine(args.Message, GetDamage(uid, component, args.User), Loc.GetString("damage-throw")); + + if (component.StaminaCost == 0) + return; + + var staminaCostMarkup = FormattedMessage.FromMarkupOrThrow( + Loc.GetString("damage-stamina-cost", + ("type", Loc.GetString("damage-throw")), ("cost", component.StaminaCost))); + args.Message.PushNewline(); + args.Message.AddMessage(staminaCostMarkup); } } } diff --git a/Content.Server/Database/ServerDbBase.cs b/Content.Server/Database/ServerDbBase.cs index 8286defd117..ee6a8631c97 100644 --- a/Content.Server/Database/ServerDbBase.cs +++ b/Content.Server/Database/ServerDbBase.cs @@ -9,6 +9,7 @@ using Content.Server.Administration.Logs; using Content.Server.Administration.Managers; using Content.Shared.Administration.Logs; +using Content.Shared.Clothing.Loadouts.Systems; using Content.Shared.Database; using Content.Shared.Humanoid; using Content.Shared.Humanoid.Markings; @@ -180,7 +181,7 @@ private static HumanoidCharacterProfile ConvertProfiles(Profile profile) var jobs = profile.Jobs.ToDictionary(j => j.JobName, j => (JobPriority) j.Priority); var antags = profile.Antags.Select(a => a.AntagName); var traits = profile.Traits.Select(t => t.TraitName); - var loadouts = profile.Loadouts.Select(t => t.LoadoutName); + var loadouts = profile.Loadouts.Select(Shared.Clothing.Loadouts.Systems.Loadout (l) => l); var sex = Sex.Male; if (Enum.TryParse(profile.Sex, true, out var sexVal)) @@ -242,7 +243,11 @@ private static HumanoidCharacterProfile ConvertProfiles(Profile profile) (PreferenceUnavailableMode) profile.PreferenceUnavailable, antags.ToHashSet(), traits.ToHashSet(), - loadouts.ToHashSet() + loadouts.Select(l => new LoadoutPreference(l.LoadoutName) + { + CustomName = l.CustomName, CustomDescription = l.CustomDescription, + CustomColorTint = l.CustomColorTint, CustomHeirloom = l.CustomHeirloom, Selected = true, + }).ToHashSet() ); } @@ -299,10 +304,8 @@ private static Profile ConvertProfiles(HumanoidCharacterProfile humanoid, int sl ); profile.Loadouts.Clear(); - profile.Loadouts.AddRange( - humanoid.LoadoutPreferences - .Select(t => new Loadout { LoadoutName = t }) - ); + profile.Loadouts.AddRange(humanoid.LoadoutPreferences + .Select(l => new Loadout(l.LoadoutName, l.CustomName, l.CustomDescription, l.CustomColorTint, l.CustomHeirloom))); return profile; } @@ -998,30 +1001,6 @@ public async Task RemoveFromWhitelistAsync(NetUserId player) await db.DbContext.SaveChangesAsync(); } - public async Task GetLastReadRules(NetUserId player) - { - await using var db = await GetDb(); - - return NormalizeDatabaseTime(await db.DbContext.Player - .Where(dbPlayer => dbPlayer.UserId == player) - .Select(dbPlayer => dbPlayer.LastReadRules) - .SingleOrDefaultAsync()); - } - - public async Task SetLastReadRules(NetUserId player, DateTimeOffset date) - { - await using var db = await GetDb(); - - var dbPlayer = await db.DbContext.Player.Where(dbPlayer => dbPlayer.UserId == player).SingleOrDefaultAsync(); - if (dbPlayer == null) - { - return; - } - - dbPlayer.LastReadRules = date.UtcDateTime; - await db.DbContext.SaveChangesAsync(); - } - #endregion #region Uploaded Resources Logs diff --git a/Content.Server/Database/ServerDbManager.cs b/Content.Server/Database/ServerDbManager.cs index a9c5e8c43ac..dee6248cc39 100644 --- a/Content.Server/Database/ServerDbManager.cs +++ b/Content.Server/Database/ServerDbManager.cs @@ -252,13 +252,6 @@ Task AddConnectionLogAsync( #endregion - #region Rules - - Task GetLastReadRules(NetUserId player); - Task SetLastReadRules(NetUserId player, DateTimeOffset time); - - #endregion - #region Admin Notes Task AddAdminNote(int? roundId, Guid player, TimeSpan playtimeAtNote, string message, NoteSeverity severity, bool secret, Guid createdBy, DateTimeOffset createdAt, DateTimeOffset? expiryTime); @@ -707,18 +700,6 @@ public Task PurgeUploadedResourceLogAsync(int days) return RunDbCommand(() => _db.PurgeUploadedResourceLogAsync(days)); } - public Task GetLastReadRules(NetUserId player) - { - DbReadOpsMetric.Inc(); - return RunDbCommand(() => _db.GetLastReadRules(player)); - } - - public Task SetLastReadRules(NetUserId player, DateTimeOffset time) - { - DbWriteOpsMetric.Inc(); - return RunDbCommand(() => _db.SetLastReadRules(player, time)); - } - public Task AddAdminNote(int? roundId, Guid player, TimeSpan playtimeAtNote, string message, NoteSeverity severity, bool secret, Guid createdBy, DateTimeOffset createdAt, DateTimeOffset? expiryTime) { DbWriteOpsMetric.Inc(); diff --git a/Content.Server/Decals/DecalSystem.cs b/Content.Server/Decals/DecalSystem.cs index da95401d206..c8e062ce6ff 100644 --- a/Content.Server/Decals/DecalSystem.cs +++ b/Content.Server/Decals/DecalSystem.cs @@ -89,10 +89,11 @@ private void OnPvsToggle(bool value) playerData.Clear(); } - foreach (var (grid, meta) in EntityQuery(true)) + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var grid, out var meta)) { grid.ForceTick = _timing.CurTick; - Dirty(grid, meta); + Dirty(uid, grid, meta); } } diff --git a/Content.Server/DelayedDeath/DelayedDeathComponent.cs b/Content.Server/DelayedDeath/DelayedDeathComponent.cs new file mode 100644 index 00000000000..2a681cde672 --- /dev/null +++ b/Content.Server/DelayedDeath/DelayedDeathComponent.cs @@ -0,0 +1,16 @@ +namespace Content.Server.DelayedDeath; + +[RegisterComponent] +public sealed partial class DelayedDeathComponent : Component +{ + /// + /// How long it takes to kill the entity. + /// + [DataField] + public float DeathTime = 60; + + /// + /// How long it has been since the delayed death timer started. + /// + public float DeathTimer; +} \ No newline at end of file diff --git a/Content.Server/DelayedDeath/DelayedDeathSystem.cs b/Content.Server/DelayedDeath/DelayedDeathSystem.cs new file mode 100644 index 00000000000..0f7c33dfcc5 --- /dev/null +++ b/Content.Server/DelayedDeath/DelayedDeathSystem.cs @@ -0,0 +1,31 @@ +using Content.Shared.Body.Organ; +using Content.Shared.Body.Events; +using Content.Shared.Damage; +using Content.Shared.Damage.Prototypes; +using Content.Shared.Mobs.Systems; +using Robust.Shared.Timing; +using Robust.Shared.Prototypes; +namespace Content.Server.DelayedDeath; + +public partial class DelayedDeathSystem : EntitySystem +{ + [Dependency] private readonly DamageableSystem _damageable = default!; + [Dependency] private readonly MobStateSystem _mobState = default!; + [Dependency] private readonly IPrototypeManager _prototypes = default!; + public override void Update(float frameTime) + { + base.Update(frameTime); + + using var query = EntityQueryEnumerator(); + while (query.MoveNext(out var ent, out var component)) + { + component.DeathTimer += frameTime; + + if (component.DeathTimer >= component.DeathTime && !_mobState.IsDead(ent)) + { + var damage = new DamageSpecifier(_prototypes.Index("Bloodloss"), 150); + _damageable.TryChangeDamage(ent, damage, partMultiplier: 0f); + } + } + } +} \ No newline at end of file diff --git a/Content.Server/Destructible/Thresholds/Behaviors/BurnBodyBehavior.cs b/Content.Server/Destructible/Thresholds/Behaviors/BurnBodyBehavior.cs index f0499dc6a2d..7e70493c918 100644 --- a/Content.Server/Destructible/Thresholds/Behaviors/BurnBodyBehavior.cs +++ b/Content.Server/Destructible/Thresholds/Behaviors/BurnBodyBehavior.cs @@ -1,4 +1,5 @@ using Content.Shared.Body.Components; +using Content.Shared.Body.Part; using Content.Shared.Inventory; using Content.Shared.Popups; using JetBrains.Annotations; @@ -17,6 +18,7 @@ public void Execute(EntityUid bodyId, DestructibleSystem system, EntityUid? caus var inventorySystem = system.EntityManager.System(); var sharedPopupSystem = system.EntityManager.System(); + if (system.EntityManager.TryGetComponent(bodyId, out var comp)) { foreach (var item in inventorySystem.GetHandOrInventoryEntities(bodyId)) @@ -25,8 +27,16 @@ public void Execute(EntityUid bodyId, DestructibleSystem system, EntityUid? caus } } - sharedPopupSystem.PopupCoordinates(Loc.GetString("bodyburn-text-others", ("name", bodyId)), transformSystem.GetMoverCoordinates(bodyId), PopupType.LargeCaution); - - system.EntityManager.QueueDeleteEntity(bodyId); + if (system.EntityManager.TryGetComponent(bodyId, out var bodyPart)) + { + if (bodyPart.CanSever + && system.BodySystem.BurnPart(bodyId, bodyPart)) + sharedPopupSystem.PopupCoordinates(Loc.GetString("bodyburn-text-others", ("name", bodyId)), transformSystem.GetMoverCoordinates(bodyId), PopupType.LargeCaution); + } + else + { + sharedPopupSystem.PopupCoordinates(Loc.GetString("bodyburn-text-others", ("name", bodyId)), transformSystem.GetMoverCoordinates(bodyId), PopupType.LargeCaution); + system.EntityManager.QueueDeleteEntity(bodyId); + } } } diff --git a/Content.Server/Destructible/Thresholds/Behaviors/GibBehavior.cs b/Content.Server/Destructible/Thresholds/Behaviors/GibBehavior.cs index c83fed19069..da054e24ac3 100644 --- a/Content.Server/Destructible/Thresholds/Behaviors/GibBehavior.cs +++ b/Content.Server/Destructible/Thresholds/Behaviors/GibBehavior.cs @@ -1,4 +1,5 @@ using Content.Shared.Body.Components; +using Content.Shared.Gibbing.Events; using JetBrains.Annotations; namespace Content.Server.Destructible.Thresholds.Behaviors @@ -7,13 +8,15 @@ namespace Content.Server.Destructible.Thresholds.Behaviors [DataDefinition] public sealed partial class GibBehavior : IThresholdBehavior { + [DataField] public GibType GibType = GibType.Gib; + [DataField] public GibContentsOption GibContents = GibContentsOption.Drop; [DataField("recursive")] private bool _recursive = true; public void Execute(EntityUid owner, DestructibleSystem system, EntityUid? cause = null) { if (system.EntityManager.TryGetComponent(owner, out BodyComponent? body)) { - system.BodySystem.GibBody(owner, _recursive, body); + system.BodySystem.GibBody(owner, _recursive, body, gib: GibType, contents: GibContents); } } } diff --git a/Content.Server/Destructible/Thresholds/Behaviors/GibPartBehavior.cs b/Content.Server/Destructible/Thresholds/Behaviors/GibPartBehavior.cs new file mode 100644 index 00000000000..f9e39ba8847 --- /dev/null +++ b/Content.Server/Destructible/Thresholds/Behaviors/GibPartBehavior.cs @@ -0,0 +1,19 @@ +using Content.Shared.Body.Components; +using Content.Shared.Body.Part; +using JetBrains.Annotations; + +namespace Content.Server.Destructible.Thresholds.Behaviors; + +[UsedImplicitly] +[DataDefinition] +public sealed partial class GibPartBehavior : IThresholdBehavior +{ + public void Execute(EntityUid owner, DestructibleSystem system, EntityUid? cause = null) + { + if (!system.EntityManager.TryGetComponent(owner, out BodyPartComponent? part)) + return; + + system.BodySystem.GibPart(owner, part); + } +} + diff --git a/Content.Server/Destructible/Thresholds/Behaviors/SpawnEntitiesBehavior.cs b/Content.Server/Destructible/Thresholds/Behaviors/SpawnEntitiesBehavior.cs index 65851f17360..093f05fceee 100644 --- a/Content.Server/Destructible/Thresholds/Behaviors/SpawnEntitiesBehavior.cs +++ b/Content.Server/Destructible/Thresholds/Behaviors/SpawnEntitiesBehavior.cs @@ -1,12 +1,11 @@ using System.Numerics; using Content.Shared.Forensics; using Content.Server.Stack; +using Content.Shared.Destructible.Thresholds; using Content.Shared.Prototypes; using Content.Shared.Stacks; using Robust.Shared.Prototypes; using Robust.Shared.Random; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Dictionary; -using Content.Server.Administration.Commands; namespace Content.Server.Destructible.Thresholds.Behaviors { @@ -17,8 +16,8 @@ public sealed partial class SpawnEntitiesBehavior : IThresholdBehavior /// /// Entities spawned on reaching this threshold, from a min to a max. /// - [DataField("spawn", customTypeSerializer:typeof(PrototypeIdDictionarySerializer))] - public Dictionary Spawn { get; set; } = new(); + [DataField] + public Dictionary Spawn = new(); [DataField("offset")] public float Offset { get; set; } = 0.5f; diff --git a/Content.Server/Destructible/Thresholds/MinMax.cs b/Content.Server/Destructible/Thresholds/MinMax.cs deleted file mode 100644 index c44864183ab..00000000000 --- a/Content.Server/Destructible/Thresholds/MinMax.cs +++ /dev/null @@ -1,26 +0,0 @@ -using Robust.Shared.Random; - -namespace Content.Server.Destructible.Thresholds -{ - [Serializable] - [DataDefinition] - public partial struct MinMax - { - [DataField("min")] - public int Min; - - [DataField("max")] - public int Max; - - public MinMax(int min, int max) - { - Min = min; - Max = max; - } - - public int Next(IRobustRandom random) - { - return random.Next(Min, Max + 1); - } - } -} diff --git a/Content.Server/DeviceLinking/Systems/SignalSwitchSystem.cs b/Content.Server/DeviceLinking/Systems/SignalSwitchSystem.cs index f6469d68b93..67fad29d934 100644 --- a/Content.Server/DeviceLinking/Systems/SignalSwitchSystem.cs +++ b/Content.Server/DeviceLinking/Systems/SignalSwitchSystem.cs @@ -26,7 +26,7 @@ private void OnInit(EntityUid uid, SignalSwitchComponent comp, ComponentInit arg private void OnActivated(EntityUid uid, SignalSwitchComponent comp, ActivateInWorldEvent args) { - if (args.Handled) + if (args.Handled || !args.Complex) return; comp.State = !comp.State; diff --git a/Content.Server/DeviceNetwork/Systems/NetworkConfiguratorSystem.cs b/Content.Server/DeviceNetwork/Systems/NetworkConfiguratorSystem.cs index dc1bf499df5..34601241585 100644 --- a/Content.Server/DeviceNetwork/Systems/NetworkConfiguratorSystem.cs +++ b/Content.Server/DeviceNetwork/Systems/NetworkConfiguratorSystem.cs @@ -254,7 +254,7 @@ private void SetMode(EntityUid configuratorUid, NetworkConfiguratorComponent con /// private void UpdateModeAppearance(EntityUid userUid, EntityUid configuratorUid, NetworkConfiguratorComponent configurator) { - Dirty(configurator); + Dirty(configuratorUid, configurator); _appearanceSystem.SetData(configuratorUid, NetworkConfiguratorVisuals.Mode, configurator.LinkModeActive); var pitch = configurator.LinkModeActive ? 1 : 0.8f; diff --git a/Content.Server/Discord/WebhookPayload.cs b/Content.Server/Discord/WebhookPayload.cs index fdf5f48444a..8d587e0bd14 100644 --- a/Content.Server/Discord/WebhookPayload.cs +++ b/Content.Server/Discord/WebhookPayload.cs @@ -5,6 +5,8 @@ namespace Content.Server.Discord; // https://discord.com/developers/docs/resources/channel#message-object-message-structure public struct WebhookPayload { + [JsonPropertyName("UserID")] // Frontier, this is used to identify the players in the webhook + public Guid? UserID { get; set; } /// /// The message to send in the webhook. Maximum of 2000 characters. /// diff --git a/Content.Server/Disposal/Mailing/MailingUnitSystem.cs b/Content.Server/Disposal/Mailing/MailingUnitSystem.cs index 8e9c9e4ba73..e1fbdbf0894 100644 --- a/Content.Server/Disposal/Mailing/MailingUnitSystem.cs +++ b/Content.Server/Disposal/Mailing/MailingUnitSystem.cs @@ -152,6 +152,9 @@ private void OnConfigurationUpdated(EntityUid uid, MailingUnitComponent componen private void HandleActivate(EntityUid uid, MailingUnitComponent component, ActivateInWorldEvent args) { + if (args.Handled || !args.Complex) + return; + if (!EntityManager.TryGetComponent(args.User, out ActorComponent? actor)) { return; diff --git a/Content.Server/Disposal/Tube/DisposalTubeSystem.cs b/Content.Server/Disposal/Tube/DisposalTubeSystem.cs index f0f6e9142c6..8e47d2ef267 100644 --- a/Content.Server/Disposal/Tube/DisposalTubeSystem.cs +++ b/Content.Server/Disposal/Tube/DisposalTubeSystem.cs @@ -31,6 +31,9 @@ public sealed class DisposalTubeSystem : EntitySystem [Dependency] private readonly DisposableSystem _disposableSystem = default!; [Dependency] private readonly SharedContainerSystem _containerSystem = default!; [Dependency] private readonly AtmosphereSystem _atmosSystem = default!; + [Dependency] private readonly SharedTransformSystem _transformSystem = default!; + [Dependency] private readonly SharedMapSystem _mapSystem = default!; + public override void Initialize() { base.Initialize(); @@ -337,6 +340,7 @@ private void UpdateAnchored(EntityUid uid, DisposalTubeComponent component, bool { if (!Resolve(target, ref targetTube)) return null; + var oppositeDirection = nextDirection.GetOpposite(); var xform = Transform(target); @@ -344,22 +348,18 @@ private void UpdateAnchored(EntityUid uid, DisposalTubeComponent component, bool return null; var position = xform.Coordinates; - foreach (var entity in grid.GetInDir(position, nextDirection)) + var entities = _mapSystem.GetInDir((EntityUid) xform.GridUid, grid, position, nextDirection); + + foreach (var entity in entities) { if (!TryComp(entity, out DisposalTubeComponent? tube)) - { continue; - } if (!CanConnect(entity, tube, oppositeDirection)) - { continue; - } if (!CanConnect(target, targetTube, nextDirection)) - { continue; - } return entity; } @@ -422,7 +422,8 @@ public bool TryInsert(EntityUid uid, DisposalUnitComponent from, IEnumerable(holder); foreach (var entity in from.Container.ContainedEntities.ToArray()) diff --git a/Content.Server/Disposal/Unit/EntitySystems/DisposableSystem.cs b/Content.Server/Disposal/Unit/EntitySystems/DisposableSystem.cs index 38e39238039..bcf240df533 100644 --- a/Content.Server/Disposal/Unit/EntitySystems/DisposableSystem.cs +++ b/Content.Server/Disposal/Unit/EntitySystems/DisposableSystem.cs @@ -88,11 +88,13 @@ public void ExitDisposals(EntityUid uid, DisposalHolderComponent? holder = null, if (!Resolve(uid, ref holder, ref holderTransform)) return; + if (holder.IsExitingDisposals) { Log.Error("Tried exiting disposals twice. This should never happen."); return; } + holder.IsExitingDisposals = true; // Check for a disposal unit to throw them into and then eject them from it. @@ -135,12 +137,13 @@ public void ExitDisposals(EntityUid uid, DisposalHolderComponent? holder = null, else { _xformSystem.AttachToGridOrMap(entity, xform); + var direction = holder.CurrentDirection == Direction.Invalid ? holder.PreviousDirection : holder.CurrentDirection; - if (holder.PreviousDirection != Direction.Invalid && _xformQuery.TryGetComponent(xform.ParentUid, out var parentXform)) + if (direction != Direction.Invalid && _xformQuery.TryGetComponent(gridUid, out var gridXform)) { - var direction = holder.PreviousDirection.ToAngle(); - direction += _xformSystem.GetWorldRotation(parentXform); - _throwing.TryThrow(entity, direction.ToWorldVec() * 3f, 10f); + var directionAngle = direction.ToAngle(); + directionAngle += _xformSystem.GetWorldRotation(gridXform); + _throwing.TryThrow(entity, directionAngle.ToWorldVec() * 3f, 10f); } } } @@ -164,11 +167,13 @@ public bool EnterTube(EntityUid holderUid, EntityUid toUid, DisposalHolderCompon { if (!Resolve(holderUid, ref holder, ref holderTransform)) return false; + if (holder.IsExitingDisposals) { Log.Error("Tried entering tube after exiting disposals. This should never happen."); return false; } + if (!Resolve(toUid, ref to, ref toTransform)) { ExitDisposals(holderUid, holder, holderTransform); @@ -193,6 +198,7 @@ public bool EnterTube(EntityUid holderUid, EntityUid toUid, DisposalHolderCompon holder.PreviousTube = holder.CurrentTube; holder.PreviousDirection = holder.CurrentDirection; } + holder.CurrentTube = toUid; var ev = new GetDisposalsNextDirectionEvent(holder); RaiseLocalEvent(toUid, ref ev); @@ -212,9 +218,7 @@ public bool EnterTube(EntityUid holderUid, EntityUid toUid, DisposalHolderCompon if (holder.CurrentDirection != holder.PreviousDirection) { foreach (var ent in holder.Container.ContainedEntities) - { _damageable.TryChangeDamage(ent, to.DamageOnTurn); - } _audio.PlayPvs(to.ClangSound, toUid); } @@ -225,9 +229,7 @@ public override void Update(float frameTime) { var query = EntityQueryEnumerator(); while (query.MoveNext(out var uid, out var holder)) - { UpdateComp(uid, holder, frameTime); - } } private void UpdateComp(EntityUid uid, DisposalHolderComponent holder, float frameTime) @@ -236,9 +238,7 @@ private void UpdateComp(EntityUid uid, DisposalHolderComponent holder, float fra { var time = frameTime; if (time > holder.TimeLeft) - { time = holder.TimeLeft; - } holder.TimeLeft -= time; frameTime -= time; @@ -268,7 +268,7 @@ private void UpdateComp(EntityUid uid, DisposalHolderComponent holder, float fra // Find next tube var nextTube = _disposalTubeSystem.NextTubeFor(currentTube, holder.CurrentDirection); - if (!EntityManager.EntityExists(nextTube)) + if (!EntityManager.EntityExists(nextTube)) { ExitDisposals(uid, holder); break; @@ -276,9 +276,7 @@ private void UpdateComp(EntityUid uid, DisposalHolderComponent holder, float fra // Perform remainder of entry process if (!EnterTube(uid, nextTube!.Value, holder)) - { break; - } } } } diff --git a/Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs b/Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs index 3e81ebfb79f..84a835f523c 100644 --- a/Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs +++ b/Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs @@ -54,6 +54,7 @@ public sealed class DisposalUnitSystem : SharedDisposalUnitSystem [Dependency] private readonly SharedDoAfterSystem _doAfterSystem = default!; [Dependency] private readonly SharedHandsSystem _handsSystem = default!; [Dependency] private readonly TransformSystem _transformSystem = default!; + [Dependency] private readonly SharedMapSystem _sharedMapSystem = default!; [Dependency] private readonly UserInterfaceSystem _ui = default!; public override void Initialize() @@ -262,6 +263,9 @@ public void ToggleEngage(EntityUid uid, SharedDisposalUnitComponent component) private void OnActivate(EntityUid uid, SharedDisposalUnitComponent component, ActivateInWorldEvent args) { + if (args.Handled || !args.Complex) + return; + if (!TryComp(args.User, out ActorComponent? actor)) { return; @@ -310,7 +314,7 @@ private void OnPowerChange(EntityUid uid, SharedDisposalUnitComponent component, if (!args.Powered) { component.NextFlush = null; - Dirty(component); + Dirty(uid, component); return; } @@ -366,7 +370,7 @@ private void UpdateState(EntityUid uid, DisposalsPressureState state, SharedDisp component.State = state; UpdateVisualState(uid, component); UpdateInterface(uid, component, component.Powered); - Dirty(component, metadata); + Dirty(uid, component, metadata); if (state == DisposalsPressureState.Ready) { @@ -447,7 +451,7 @@ private void Update(EntityUid uid, SharedDisposalUnitComponent component, MetaDa } if (count != component.RecentlyEjected.Count) - Dirty(component, metadata); + Dirty(uid, component, metadata); } public bool TryInsert(EntityUid unitId, EntityUid toInsertId, EntityUid? userId, DisposalUnitComponent? unit = null) @@ -516,7 +520,7 @@ public bool TryFlush(EntityUid uid, SharedDisposalUnitComponent component) return false; var coords = xform.Coordinates; - var entry = grid.GetLocal(coords) + var entry = _sharedMapSystem.GetLocal((EntityUid) xform.GridUid, grid, coords) .FirstOrDefault(HasComp); if (entry == default || component is not DisposalUnitComponent sDisposals) @@ -754,7 +758,7 @@ public void QueueAutomaticEngage(EntityUid uid, SharedDisposalUnitComponent comp var flushTime = TimeSpan.FromSeconds(Math.Min((component.NextFlush ?? TimeSpan.MaxValue).TotalSeconds, automaticTime.TotalSeconds)); component.NextFlush = flushTime; - Dirty(component); + Dirty(uid, component); } public void AfterInsert(EntityUid uid, SharedDisposalUnitComponent component, EntityUid inserted, EntityUid? user = null, bool doInsert = false) diff --git a/Content.Server/Doors/Systems/AirlockSystem.cs b/Content.Server/Doors/Systems/AirlockSystem.cs index 71f9347e9ed..fd5d3a9ceba 100644 --- a/Content.Server/Doors/Systems/AirlockSystem.cs +++ b/Content.Server/Doors/Systems/AirlockSystem.cs @@ -67,6 +67,9 @@ private void OnPowerChanged(EntityUid uid, AirlockComponent component, ref Power private void OnActivate(EntityUid uid, AirlockComponent component, ActivateInWorldEvent args) { + if (args.Handled || !args.Complex) + return; + if (TryComp(uid, out var panel) && panel.Open && TryComp(args.User, out var actor)) diff --git a/Content.Server/Dragon/DragonRiftSystem.cs b/Content.Server/Dragon/DragonRiftSystem.cs index c0a81d0d24e..b0dd87d3fdb 100644 --- a/Content.Server/Dragon/DragonRiftSystem.cs +++ b/Content.Server/Dragon/DragonRiftSystem.cs @@ -70,7 +70,7 @@ public override void Update(float frameTime) if (comp.State < DragonRiftState.AlmostFinished && comp.Accumulator > comp.MaxAccumulator / 2f) { comp.State = DragonRiftState.AlmostFinished; - Dirty(comp); + Dirty(uid, comp); _announcer.SendAnnouncement(_announcer.GetAnnouncementId("CarpRift"), Filter.Broadcast(), "carp-rift-warning", colorOverride: Color.Red, localeArgs: ("location", FormattedMessage.RemoveMarkupPermissive(_navMap.GetNearestBeaconString((uid, xform))))); diff --git a/Content.Server/DynamicHostname/DynamicHostnameSystem.cs b/Content.Server/DynamicHostname/DynamicHostnameSystem.cs new file mode 100644 index 00000000000..386447534c6 --- /dev/null +++ b/Content.Server/DynamicHostname/DynamicHostnameSystem.cs @@ -0,0 +1,86 @@ +using Content.Server.GameTicking; +using Content.Server.Maps; +using Content.Shared.CCVar; +using Content.Shared.GameTicking; +using Robust.Shared; +using Robust.Shared.Configuration; + +namespace Content.Server.DynamicHostname; + + +/// +/// This handles dynamically updating hostnames. +/// +public sealed class DynamicHostnameSystem : EntitySystem +{ + [Dependency] private readonly IConfigurationManager _configuration = default!; + [Dependency] private readonly GameTicker _gameTicker = default!; + [Dependency] private readonly IGameMapManager _mapManager = default!; + + private string OriginalHostname { get; set; } = string.Empty; + + /// + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnRunLevelChanged); + SubscribeLocalEvent(OnRoundStarted); + + Subs.CVar(_configuration, CCVars.UseDynamicHostname, OnValueChanged); + + OriginalHostname = _configuration.GetCVar(CVars.GameHostName); + AttemptUpdateHostname(); + } + + private void OnRunLevelChanged(GameRunLevelChangedEvent ev) => AttemptUpdateHostname(); + private void OnRoundStarted(RoundStartedEvent ev) => AttemptUpdateHostname(); + + private void OnValueChanged(bool newValue) + { + if (!newValue) + _configuration.SetCVar(CVars.GameHostName, OriginalHostname); + + AttemptUpdateHostname(); + } + + private void AttemptUpdateHostname() + { + if (!_configuration.GetCVar(CCVars.UseDynamicHostname)) + return; + + var currentMapName = _mapManager.GetSelectedMap()?.MapName; + var currentPresetName = _gameTicker.CurrentPreset?.ModeTitle; + + UpdateHostname(currentMapName, currentPresetName); + } + + private string GetLocId() + { + switch (_gameTicker.RunLevel) + { + case GameRunLevel.InRound: + return "in-round"; + case GameRunLevel.PostRound: + return "post-round"; + default: + return "in-lobby"; + } + } + + private void UpdateHostname(string? currentMapName = null, string? currentPresetName = null) + { + var locId = GetLocId(); + var presetName = "No preset"; + + if (currentPresetName != null) + presetName = Loc.GetString(currentPresetName); + + var hostname = Loc.GetString($"dynamic-hostname-{locId}-hostname", + ("originalHostName", OriginalHostname), + ("preset", presetName), + ("mapName", currentMapName ?? "No map")); + + _configuration.SetCVar(CVars.GameHostName, hostname); + } +} diff --git a/Content.Server/Emoting/AnimatedEmotesSystem.cs b/Content.Server/Emoting/AnimatedEmotesSystem.cs new file mode 100644 index 00000000000..cc4863d31f7 --- /dev/null +++ b/Content.Server/Emoting/AnimatedEmotesSystem.cs @@ -0,0 +1,28 @@ +using Robust.Shared.GameStates; +using Content.Server.Chat.Systems; +using Content.Shared.Chat.Prototypes; +using Content.Shared.Emoting; +using Robust.Shared.Prototypes; + +namespace Content.Server.Emoting; + +public sealed partial class AnimatedEmotesSystem : SharedAnimatedEmotesSystem +{ + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnEmote); + } + + private void OnEmote(EntityUid uid, AnimatedEmotesComponent component, ref EmoteEvent args) + { + PlayEmoteAnimation(uid, component, args.Emote.ID); + } + + public void PlayEmoteAnimation(EntityUid uid, AnimatedEmotesComponent component, ProtoId prot) + { + component.Emote = prot; + Dirty(uid, component); + } +} diff --git a/Content.Server/EmpFlashlight/EmpOnHitComponent.cs b/Content.Server/EmpFlashlight/EmpOnHitComponent.cs new file mode 100644 index 00000000000..bce182d63a7 --- /dev/null +++ b/Content.Server/EmpFlashlight/EmpOnHitComponent.cs @@ -0,0 +1,19 @@ +namespace Content.Server.EmpFlashlight; + +/// +/// Upon being triggered will EMP target. +/// +[RegisterComponent] +[Access(typeof(EmpOnHitSystem))] + +public sealed partial class EmpOnHitComponent : Component +{ + [DataField] + public float Range = 1.0f; + + [DataField] + public float EnergyConsumption; + + [DataField] + public float DisableDuration = 60f; +} diff --git a/Content.Server/EmpFlashlight/EmpOnHitSystem.cs b/Content.Server/EmpFlashlight/EmpOnHitSystem.cs new file mode 100644 index 00000000000..19b7300f9b0 --- /dev/null +++ b/Content.Server/EmpFlashlight/EmpOnHitSystem.cs @@ -0,0 +1,44 @@ +using Content.Shared.Weapons.Melee.Events; +using Content.Server.Emp; +using Content.Shared.Charges.Systems; +using Content.Shared.Charges.Components; + +namespace Content.Server.EmpFlashlight; + +public sealed class EmpOnHitSystem : EntitySystem +{ + + [Dependency] private readonly EmpSystem _emp = default!; + [Dependency] private readonly SharedChargesSystem _charges = default!; + [Dependency] private readonly SharedTransformSystem _transform = default!; + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(HandleEmpHit); + } + + public bool TryEmpHit(EntityUid uid, EmpOnHitComponent comp, MeleeHitEvent args) + { + + if (!TryComp(uid, out LimitedChargesComponent? charges) + || _charges.IsEmpty(uid, charges) + || args.HitEntities.Count <= 0) + return false; + + _charges.UseCharge(uid, charges); + return true; + } + + private void HandleEmpHit(EntityUid uid, EmpOnHitComponent comp, MeleeHitEvent args) + { + if (!TryEmpHit(uid, comp, args)) + return; + + foreach (var affected in args.HitEntities) + _emp.EmpPulse(_transform.GetMapCoordinates(affected), comp.Range, comp.EnergyConsumption, comp.DisableDuration); + + args.Handled = true; + } +} + diff --git a/Content.Server/Ensnaring/EnsnareableSystem.Ensnaring.cs b/Content.Server/Ensnaring/EnsnareableSystem.Ensnaring.cs index 202d03bcda9..8dd3d56a1ee 100644 --- a/Content.Server/Ensnaring/EnsnareableSystem.Ensnaring.cs +++ b/Content.Server/Ensnaring/EnsnareableSystem.Ensnaring.cs @@ -11,6 +11,7 @@ using Content.Shared.IdentityManagement; using Content.Shared.StepTrigger.Systems; using Content.Shared.Throwing; +using Content.Shared.Whitelist; namespace Content.Server.Ensnaring; @@ -20,6 +21,7 @@ public sealed partial class EnsnareableSystem [Dependency] private readonly AlertsSystem _alerts = default!; [Dependency] private readonly BodySystem _body = default!; [Dependency] private readonly StaminaSystem _stamina = default!; + [Dependency] private readonly EntityWhitelistSystem _entityWhitelist = default!; public void InitializeEnsnaring() { @@ -70,8 +72,9 @@ private void OnThrowHit(EntityUid uid, EnsnaringComponent component, ThrowDoHitE /// The ensnaring component public void TryEnsnare(EntityUid target, EntityUid ensnare, EnsnaringComponent component) { - //Don't do anything if they don't have the ensnareable component. - if (!TryComp(target, out var ensnareable)) + //Don't do anything if they don't have the ensnareable component or should be ignored. + if (!TryComp(target, out var ensnareable) || + component.IgnoredTargets is not null && _entityWhitelist.IsValid(component.IgnoredTargets, target)) return; var legs = _body.GetBodyChildrenOfType(target, BodyPartType.Leg).Count(); @@ -93,7 +96,7 @@ public void TryEnsnare(EntityUid target, EntityUid ensnare, EnsnaringComponent c component.Ensnared = target; _container.Insert(ensnare, ensnareable.Container); ensnareable.IsEnsnared = true; - Dirty(ensnareable); + Dirty(target, ensnareable); UpdateAlert(target, ensnareable); var ev = new EnsnareEvent(component.WalkSpeed, component.SprintSpeed); @@ -107,7 +110,7 @@ public void TryEnsnare(EntityUid target, EntityUid ensnare, EnsnaringComponent c /// The entity that is freeing the target /// The entity used to ensnare /// The ensnaring component - public void TryFree(EntityUid target, EntityUid user, EntityUid ensnare, EnsnaringComponent component) + public void TryFree(EntityUid target, EntityUid user, EntityUid ensnare, EnsnaringComponent component) { //Don't do anything if they don't have the ensnareable component. if (!HasComp(target)) @@ -149,7 +152,7 @@ public void ForceFree(EntityUid ensnare, EnsnaringComponent component) _container.Remove(ensnare, ensnareable.Container, force: true); ensnareable.IsEnsnared = ensnareable.Container.ContainedEntities.Count > 0; - Dirty(ensnareable); + Dirty(component.Ensnared.Value, ensnareable); component.Ensnared = null; UpdateAlert(target, ensnareable); @@ -164,8 +167,8 @@ public void ForceFree(EntityUid ensnare, EnsnaringComponent component) public void UpdateAlert(EntityUid target, EnsnareableComponent component) { if (!component.IsEnsnared) - _alerts.ClearAlert(target, AlertType.Ensnared); + _alerts.ClearAlert(target, component.EnsnaredAlert); else - _alerts.ShowAlert(target, AlertType.Ensnared); + _alerts.ShowAlert(target, component.EnsnaredAlert); } } diff --git a/Content.Server/Ensnaring/EnsnareableSystem.cs b/Content.Server/Ensnaring/EnsnareableSystem.cs index 7b810b4f49c..0cf4efa21b2 100644 --- a/Content.Server/Ensnaring/EnsnareableSystem.cs +++ b/Content.Server/Ensnaring/EnsnareableSystem.cs @@ -45,7 +45,7 @@ private void OnDoAfter(EntityUid uid, EnsnareableComponent component, DoAfterEve } component.IsEnsnared = component.Container.ContainedEntities.Count > 0; - Dirty(component); + Dirty(uid, component); ensnaring.Ensnared = null; if (ensnaring.DestroyOnRemove) diff --git a/Content.Server/Entry/EntryPoint.cs b/Content.Server/Entry/EntryPoint.cs index dda783c4325..c62dece48fc 100644 --- a/Content.Server/Entry/EntryPoint.cs +++ b/Content.Server/Entry/EntryPoint.cs @@ -12,12 +12,14 @@ using Content.Server.GameTicking; using Content.Server.GhostKick; using Content.Server.GuideGenerator; -using Content.Server.Info; using Content.Server.IoC; using Content.Server.Players.JobWhitelist; using Content.Server.Maps; using Content.Server.NodeContainer.NodeGroups; +using Content.Server.Players; +using Content.Server.Players.JobWhitelist; using Content.Server.Players.PlayTimeTracking; +using Content.Server.Players.RateLimiting; using Content.Server.Preferences.Managers; using Content.Server.ServerInfo; using Content.Server.ServerUpdates; @@ -113,6 +115,7 @@ public override void Init() _updateManager.Initialize(); _playTimeTracking.Initialize(); IoCManager.Resolve().Initialize(); + IoCManager.Resolve().Initialize(); } } @@ -141,7 +144,6 @@ public override void PostInit() IoCManager.Resolve().Initialize(); IoCManager.Resolve().Initialize(); IoCManager.Resolve().Initialize(); - IoCManager.Resolve().Initialize(); _euiManager.Initialize(); IoCManager.Resolve().Initialize(); diff --git a/Content.Server/Execution/ExecutionSystem.cs b/Content.Server/Execution/ExecutionSystem.cs index c1080b84ad8..453a05e8039 100644 --- a/Content.Server/Execution/ExecutionSystem.cs +++ b/Content.Server/Execution/ExecutionSystem.cs @@ -250,7 +250,7 @@ private void OnDoafterMelee(EntityUid uid, SharpComponent component, DoAfterEven if (!TryComp(weapon, out var melee) && melee!.Damage.GetTotal() > 0.0f) return; - _damageableSystem.TryChangeDamage(victim, melee.Damage * DamageModifier, true); + _damageableSystem.TryChangeDamage(victim, melee.Damage * DamageModifier, true, origin: attacker); _audioSystem.PlayEntity(melee.SoundHit, Filter.Pvs(weapon), weapon, true, AudioParams.Default); if (attacker == victim) @@ -374,7 +374,7 @@ private void OnDoafterGun(EntityUid uid, GunComponent component, DoAfterEvent ar } // Gun successfully fired, deal damage - _damageableSystem.TryChangeDamage(victim, damage * DamageModifier, true); + _damageableSystem.TryChangeDamage(victim, damage * DamageModifier, true, origin: attacker); _audioSystem.PlayEntity(component.SoundGunshot, Filter.Pvs(weapon), weapon, false, AudioParams.Default); // Popups diff --git a/Content.Server/Explosion/EntitySystems/TriggerSystem.cs b/Content.Server/Explosion/EntitySystems/TriggerSystem.cs index 8e0a75ea24f..999a85da5aa 100644 --- a/Content.Server/Explosion/EntitySystems/TriggerSystem.cs +++ b/Content.Server/Explosion/EntitySystems/TriggerSystem.cs @@ -218,6 +218,9 @@ private void OnSpawnTriggered(EntityUid uid, TriggerOnSpawnComponent component, private void OnActivate(EntityUid uid, TriggerOnActivateComponent component, ActivateInWorldEvent args) { + if (args.Handled || !args.Complex) + return; + Trigger(uid, args.User); args.Handled = true; } diff --git a/Content.Server/Flash/FlashSystem.cs b/Content.Server/Flash/FlashSystem.cs index bc91a307b08..994e74e68d4 100644 --- a/Content.Server/Flash/FlashSystem.cs +++ b/Content.Server/Flash/FlashSystem.cs @@ -14,6 +14,7 @@ using Content.Shared.Inventory; using Content.Shared.Physics; using Content.Shared.Tag; +using Content.Shared.Throwing; using Content.Shared.Weapons.Melee.Events; using Robust.Server.Audio; using Robust.Server.GameObjects; @@ -50,6 +51,7 @@ public override void Initialize() SubscribeLocalEvent(OnFlashMeleeHit); // ran before toggling light for extra-bright lantern SubscribeLocalEvent(OnFlashUseInHand, before: new []{ typeof(HandheldLightSystem) }); + SubscribeLocalEvent(OnFlashThrowHitEvent); SubscribeLocalEvent(OnInventoryFlashAttempt); SubscribeLocalEvent(OnFlashImmunityFlashAttempt); SubscribeLocalEvent(OnPermanentBlindnessFlashAttempt); @@ -60,10 +62,8 @@ private void OnFlashMeleeHit(EntityUid uid, FlashComponent comp, MeleeHitEvent a { if (!args.IsHit || !args.HitEntities.Any() || - !UseFlash(uid, comp, args.User)) - { + !UseFlash(uid, comp)) return; - } args.Handled = true; foreach (var e in args.HitEntities) @@ -74,14 +74,22 @@ private void OnFlashMeleeHit(EntityUid uid, FlashComponent comp, MeleeHitEvent a private void OnFlashUseInHand(EntityUid uid, FlashComponent comp, UseInHandEvent args) { - if (args.Handled || !UseFlash(uid, comp, args.User)) + if (args.Handled || !UseFlash(uid, comp)) return; args.Handled = true; FlashArea(uid, args.User, comp.Range, comp.AoeFlashDuration, comp.SlowTo, true, comp.Probability); } - private bool UseFlash(EntityUid uid, FlashComponent comp, EntityUid user) + private void OnFlashThrowHitEvent(EntityUid uid, FlashComponent comp, ThrowDoHitEvent args) + { + if (!UseFlash(uid, comp)) + return; + + FlashArea(uid, args.User, comp.Range, comp.AoeFlashDuration, comp.SlowTo, false, comp.Probability); + } + + private bool UseFlash(EntityUid uid, FlashComponent comp) { if (comp.Flashing) return false; @@ -99,7 +107,7 @@ private bool UseFlash(EntityUid uid, FlashComponent comp, EntityUid user) { _appearance.SetData(uid, FlashVisuals.Burnt, true); _tag.AddTag(uid, "Trash"); - _popup.PopupEntity(Loc.GetString("flash-component-becomes-empty"), user); + _popup.PopupEntity(Loc.GetString("flash-component-becomes-empty"), uid); } uid.SpawnTimer(400, () => diff --git a/Content.Server/Fluids/EntitySystems/AbsorbentSystem.cs b/Content.Server/Fluids/EntitySystems/AbsorbentSystem.cs index 3d0996a3802..52afdcf8b49 100644 --- a/Content.Server/Fluids/EntitySystems/AbsorbentSystem.cs +++ b/Content.Server/Fluids/EntitySystems/AbsorbentSystem.cs @@ -35,7 +35,7 @@ public override void Initialize() base.Initialize(); SubscribeLocalEvent(OnAbsorbentInit); SubscribeLocalEvent(OnAfterInteract); - SubscribeLocalEvent(OnInteractNoHand); + SubscribeLocalEvent(OnActivateInWorld); SubscribeLocalEvent(OnAbsorbentSolutionChange); } @@ -85,12 +85,12 @@ private void UpdateAbsorbent(EntityUid uid, AbsorbentComponent component) Dirty(uid, component); } - private void OnInteractNoHand(EntityUid uid, AbsorbentComponent component, InteractNoHandEvent args) + private void OnActivateInWorld(EntityUid uid, AbsorbentComponent component, UserActivateInWorldEvent args) { - if (args.Handled || args.Target == null) + if (args.Handled) return; - Mop(uid, args.Target.Value, uid, component); + Mop(uid, args.Target, uid, component); args.Handled = true; } diff --git a/Content.Server/GameTicking/GameTicker.GameRule.cs b/Content.Server/GameTicking/GameTicker.GameRule.cs index f52a3cb296d..2a33d01bd09 100644 --- a/Content.Server/GameTicking/GameTicker.GameRule.cs +++ b/Content.Server/GameTicking/GameTicker.GameRule.cs @@ -1,8 +1,9 @@ using System.Linq; using Content.Server.Administration; -using Content.Server.GameTicking.Components; +using Content.Server.GameTicking.Rules.Components; using Content.Shared.Administration; using Content.Shared.Database; +using Content.Shared.GameTicking.Components; using Content.Shared.Prototypes; using JetBrains.Annotations; using Robust.Shared.Console; @@ -42,6 +43,14 @@ private void InitializeGameRules() string.Empty, "cleargamerules", ClearGameRulesCommand); + + // List game rules command. + var localizedHelp = Loc.GetString("listgamerules-command-help"); + + _consoleHost.RegisterCommand("listgamerules", + string.Empty, + $"listgamerules - {localizedHelp}", + ListGameRuleCommand); } private void ShutdownGameRules() @@ -49,6 +58,7 @@ private void ShutdownGameRules() _consoleHost.UnregisterCommand("addgamerule"); _consoleHost.UnregisterCommand("endgamerule"); _consoleHost.UnregisterCommand("cleargamerules"); + _consoleHost.UnregisterCommand("listgamerules"); } /// @@ -64,6 +74,13 @@ public EntityUid AddGameRule(string ruleId) var ev = new GameRuleAddedEvent(ruleEntity, ruleId); RaiseLocalEvent(ruleEntity, ref ev, true); + + var currentTime = RunLevel == GameRunLevel.PreRoundLobby ? TimeSpan.Zero : RoundDuration(); + if (!HasComp(ruleEntity) && !HasComp(ruleEntity)) + { + _allPreviousGameRules.Add((currentTime, ruleId + " (Pending)")); + } + return ruleEntity; } @@ -110,7 +127,8 @@ public bool StartGameRule(EntityUid ruleEntity, GameRuleComponent? ruleData = nu if (delayTime > TimeSpan.Zero) { _sawmill.Info($"Queued start for game rule {ToPrettyString(ruleEntity)} with delay {delayTime}"); - _adminLogger.Add(LogType.EventStarted, $"Queued start for game rule {ToPrettyString(ruleEntity)} with delay {delayTime}"); + _adminLogger.Add(LogType.EventStarted, + $"Queued start for game rule {ToPrettyString(ruleEntity)} with delay {delayTime}"); var delayed = EnsureComp(ruleEntity); delayed.RuleStartTime = _gameTiming.CurTime + (delayTime); @@ -118,7 +136,20 @@ public bool StartGameRule(EntityUid ruleEntity, GameRuleComponent? ruleData = nu } } - _allPreviousGameRules.Add((RoundDuration(), id)); + var currentTime = RunLevel == GameRunLevel.PreRoundLobby ? TimeSpan.Zero : RoundDuration(); + + // Remove the first occurrence of the pending entry before adding the started entry + var pendingRuleIndex = _allPreviousGameRules.FindIndex(rule => rule.Item2 == id + " (Pending)"); + if (pendingRuleIndex >= 0) + { + _allPreviousGameRules.RemoveAt(pendingRuleIndex); + } + + if (!HasComp(ruleEntity) && !HasComp(ruleEntity)) + { + _allPreviousGameRules.Add((currentTime, id)); + } + _sawmill.Info($"Started game rule {ToPrettyString(ruleEntity)}"); _adminLogger.Add(LogType.EventStarted, $"Started game rule {ToPrettyString(ruleEntity)}"); @@ -296,6 +327,7 @@ private void AddGameRuleCommand(IConsoleShell shell, string argstr, string[] arg if (shell.Player != null) { _adminLogger.Add(LogType.EventStarted, $"{shell.Player} tried to add game rule [{rule}] via command"); + _chatManager.SendAdminAnnouncement(Loc.GetString("add-gamerule-admin", ("rule", rule), ("admin", shell.Player))); } else { @@ -306,6 +338,7 @@ private void AddGameRuleCommand(IConsoleShell shell, string argstr, string[] arg // Start rule if we're already in the middle of a round if(RunLevel == GameRunLevel.InRound) StartGameRule(ent); + } } @@ -349,5 +382,42 @@ private void ClearGameRulesCommand(IConsoleShell shell, string argstr, string[] ClearGameRules(); } + [AdminCommand(AdminFlags.Admin)] + private void ListGameRuleCommand(IConsoleShell shell, string argstr, string[] args) + { + _sawmill.Info($"{shell.Player} tried to get list of game rules via command"); + _adminLogger.Add(LogType.Action, $"{shell.Player} tried to get list of game rules via command"); + var message = GetGameRulesListMessage(false); + shell.WriteLine(message); + } + private string GetGameRulesListMessage(bool forChatWindow) + { + if (_allPreviousGameRules.Count > 0) + { + var sortedRules = _allPreviousGameRules.OrderBy(rule => rule.Item1).ToList(); + var message = "\n"; + + if (!forChatWindow) + { + var header = Loc.GetString("list-gamerule-admin-header"); + message += $"\n{header}\n"; + message += "|------------|------------------\n"; + } + + foreach (var (time, rule) in sortedRules) + { + var formattedTime = time.ToString(@"hh\:mm\:ss"); + message += $"| {formattedTime,-10} | {rule,-16} \n"; + } + + return message; + } + else + { + return Loc.GetString("list-gamerule-admin-no-rules"); + + } + } + #endregion } diff --git a/Content.Server/GameTicking/GameTicker.Player.cs b/Content.Server/GameTicking/GameTicker.Player.cs index 2e003742055..54e7f1bf920 100644 --- a/Content.Server/GameTicking/GameTicker.Player.cs +++ b/Content.Server/GameTicking/GameTicker.Player.cs @@ -1,4 +1,6 @@ +using System.Linq; using Content.Server.Database; +using Content.Shared.Administration; using Content.Shared.CCVar; using Content.Shared.GameTicking; using Content.Shared.GameWindow; @@ -191,6 +193,15 @@ public void PlayerJoinGame(ICommonSession session, bool silent = false) _playerGameStatuses[session.UserId] = PlayerGameStatus.JoinedGame; _db.AddRoundPlayers(RoundId, session.UserId); + if (_adminManager.HasAdminFlag(session, AdminFlags.Admin)) + { + if (_allPreviousGameRules.Count > 0) + { + var rulesMessage = GetGameRulesListMessage(true); + _chatManager.SendAdminAnnouncementMessage(session, Loc.GetString("starting-rule-selected-preset", ("preset", rulesMessage))); + } + } + RaiseNetworkEvent(new TickerJoinGameEvent(), session.Channel); } diff --git a/Content.Server/GameTicking/GameTicker.Spawning.cs b/Content.Server/GameTicking/GameTicker.Spawning.cs index 3016195f4b7..c6c8bf50f75 100644 --- a/Content.Server/GameTicking/GameTicker.Spawning.cs +++ b/Content.Server/GameTicking/GameTicker.Spawning.cs @@ -460,11 +460,16 @@ private EntityUid SpawnObserverMob() public EntityCoordinates GetObserverSpawnPoint() { _possiblePositions.Clear(); - - foreach (var (point, transform) in EntityManager.EntityQuery(true)) + var spawnPointQuery = EntityManager.EntityQueryEnumerator(); + while (spawnPointQuery.MoveNext(out var uid, out var point, out var transform)) { - if (point.SpawnType != SpawnPointType.Observer) + if (point.SpawnType != SpawnPointType.Observer + || TerminatingOrDeleted(uid) + || transform.MapUid == null + || TerminatingOrDeleted(transform.MapUid.Value)) + { continue; + } _possiblePositions.Add(transform.Coordinates); } @@ -506,7 +511,9 @@ public EntityCoordinates GetObserverSpawnPoint() if (_mapManager.MapExists(DefaultMap)) { - return new EntityCoordinates(_mapManager.GetMapEntityId(DefaultMap), Vector2.Zero); + var mapUid = _mapManager.GetMapEntityId(DefaultMap); + if (!TerminatingOrDeleted(mapUid)) + return new EntityCoordinates(mapUid, Vector2.Zero); } // Just pick a point at this point I guess. diff --git a/Content.Server/GameTicking/Rules/DeathMatchRuleSystem.cs b/Content.Server/GameTicking/Rules/DeathMatchRuleSystem.cs index 78b8a8a85c8..d03d040261a 100644 --- a/Content.Server/GameTicking/Rules/DeathMatchRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/DeathMatchRuleSystem.cs @@ -1,12 +1,12 @@ using System.Linq; using Content.Server.Administration.Commands; -using Content.Server.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; using Content.Server.KillTracking; using Content.Server.Mind; using Content.Server.Points; using Content.Server.RoundEnd; using Content.Server.Station.Systems; +using Content.Shared.GameTicking.Components; using Content.Shared.Points; using Content.Shared.Storage; using Robust.Server.Player; diff --git a/Content.Server/GameTicking/Rules/GameRulePrototype.cs b/Content.Server/GameTicking/Rules/GameRulePrototype.cs deleted file mode 100644 index 47f99184f73..00000000000 --- a/Content.Server/GameTicking/Rules/GameRulePrototype.cs +++ /dev/null @@ -1,15 +0,0 @@ - - -namespace Content.Server.GameTicking.Rules; - -/* -[Prototype("gameRule")] -public sealed partial class GameRulePrototype : IPrototype -{ - [IdDataField] - public string ID { get; private set; } = default!; - - [DataField("config", required: true)] - public GameRuleConfiguration Configuration { get; private set; } = default!; -} -*/ diff --git a/Content.Server/GameTicking/Rules/GameRuleSystem.Utility.cs b/Content.Server/GameTicking/Rules/GameRuleSystem.Utility.cs index cbd981e99e6..b72ba59ca27 100644 --- a/Content.Server/GameTicking/Rules/GameRuleSystem.Utility.cs +++ b/Content.Server/GameTicking/Rules/GameRuleSystem.Utility.cs @@ -1,8 +1,8 @@ using System.Diagnostics.CodeAnalysis; using System.Linq; -using Content.Server.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; using Content.Server.Station.Components; +using Content.Shared.GameTicking.Components; using Content.Shared.Random.Helpers; using Robust.Server.GameObjects; using Robust.Shared.Collections; diff --git a/Content.Server/GameTicking/Rules/GameRuleSystem.cs b/Content.Server/GameTicking/Rules/GameRuleSystem.cs index 05374aa1396..730748ce6b9 100644 --- a/Content.Server/GameTicking/Rules/GameRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/GameRuleSystem.cs @@ -1,6 +1,6 @@ using Content.Server.Atmos.EntitySystems; using Content.Server.Chat.Managers; -using Content.Server.GameTicking.Components; +using Content.Shared.GameTicking.Components; using Robust.Server.GameObjects; using Robust.Shared.Random; using Robust.Shared.Timing; diff --git a/Content.Server/GameTicking/Rules/InactivityTimeRestartRuleSystem.cs b/Content.Server/GameTicking/Rules/InactivityTimeRestartRuleSystem.cs index 01fa387595c..e56537c4381 100644 --- a/Content.Server/GameTicking/Rules/InactivityTimeRestartRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/InactivityTimeRestartRuleSystem.cs @@ -1,7 +1,7 @@ using System.Threading; using Content.Server.Chat.Managers; -using Content.Server.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; +using Content.Shared.GameTicking.Components; using Robust.Server.Player; using Robust.Shared.Player; using Timer = Robust.Shared.Timing.Timer; diff --git a/Content.Server/GameTicking/Rules/KillCalloutRuleSystem.cs b/Content.Server/GameTicking/Rules/KillCalloutRuleSystem.cs index 3da55e30c9e..8f706fd2ad3 100644 --- a/Content.Server/GameTicking/Rules/KillCalloutRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/KillCalloutRuleSystem.cs @@ -1,8 +1,8 @@ using Content.Server.Chat.Managers; -using Content.Server.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; using Content.Server.KillTracking; using Content.Shared.Chat; +using Content.Shared.GameTicking.Components; using Robust.Server.Player; using Robust.Shared.Player; using Robust.Shared.Random; diff --git a/Content.Server/GameTicking/Rules/LoadMapRuleSystem.cs b/Content.Server/GameTicking/Rules/LoadMapRuleSystem.cs index 3a80d82fd92..e655bd472c6 100644 --- a/Content.Server/GameTicking/Rules/LoadMapRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/LoadMapRuleSystem.cs @@ -1,8 +1,8 @@ using Content.Server.Antag; -using Content.Server.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; -using Content.Server.GridPreloader; using Content.Server.Spawners.Components; +using Content.Server.GridPreloader; +using Content.Shared.GameTicking.Components; using Robust.Server.GameObjects; using Robust.Server.Maps; using Robust.Shared.Map; diff --git a/Content.Server/GameTicking/Rules/MaxTimeRestartRuleSystem.cs b/Content.Server/GameTicking/Rules/MaxTimeRestartRuleSystem.cs index cae99fee9fc..db9df8a5b00 100644 --- a/Content.Server/GameTicking/Rules/MaxTimeRestartRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/MaxTimeRestartRuleSystem.cs @@ -1,7 +1,7 @@ using System.Threading; using Content.Server.Chat.Managers; -using Content.Server.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; +using Content.Shared.GameTicking.Components; using Timer = Robust.Shared.Timing.Timer; namespace Content.Server.GameTicking.Rules; diff --git a/Content.Server/GameTicking/Rules/NukeopsRuleSystem.cs b/Content.Server/GameTicking/Rules/NukeopsRuleSystem.cs index 3e61fda8744..7cc51db5766 100644 --- a/Content.Server/GameTicking/Rules/NukeopsRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/NukeopsRuleSystem.cs @@ -2,6 +2,8 @@ using Content.Server.Communications; using Content.Server.GameTicking.Rules.Components; using Content.Server.Humanoid; +using Content.Server.NPC.Components; +using Content.Server.NPC.Systems; using Content.Server.Nuke; using Content.Server.NukeOps; using Content.Server.Popups; @@ -13,6 +15,7 @@ using Content.Server.Station.Components; using Content.Server.Store.Components; using Content.Server.Store.Systems; +using Content.Shared.GameTicking.Components; using Content.Shared.Humanoid; using Content.Shared.Humanoid.Prototypes; using Content.Shared.Mobs; @@ -28,9 +31,6 @@ using Robust.Shared.Random; using Robust.Shared.Utility; using System.Linq; -using Content.Server.GameTicking.Components; -using Content.Server.NPC.Components; -using Content.Server.NPC.Systems; namespace Content.Server.GameTicking.Rules; diff --git a/Content.Server/GameTicking/Rules/RespawnRuleSystem.cs b/Content.Server/GameTicking/Rules/RespawnRuleSystem.cs index 5215da96aa8..920668472ad 100644 --- a/Content.Server/GameTicking/Rules/RespawnRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/RespawnRuleSystem.cs @@ -1,8 +1,9 @@ using Content.Server.Chat.Managers; -using Content.Server.GameTicking.Components; +using Content.Server.Database.Migrations.Postgres; using Content.Server.GameTicking.Rules.Components; using Content.Server.Station.Systems; using Content.Shared.Chat; +using Content.Shared.GameTicking.Components; using Content.Shared.Interaction.Events; using Content.Shared.Mind; using Content.Shared.Mobs; diff --git a/Content.Server/GameTicking/Rules/RevolutionaryRuleSystem.cs b/Content.Server/GameTicking/Rules/RevolutionaryRuleSystem.cs index 577b0c30303..29f69db14a2 100644 --- a/Content.Server/GameTicking/Rules/RevolutionaryRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/RevolutionaryRuleSystem.cs @@ -14,6 +14,7 @@ using Content.Server.Shuttles.Systems; using Content.Server.Station.Systems; using Content.Shared.Database; +using Content.Shared.GameTicking.Components; using Content.Shared.Humanoid; using Content.Shared.IdentityManagement; using Content.Shared.Mind; @@ -27,7 +28,6 @@ using Content.Shared.Zombies; using Robust.Shared.Prototypes; using Robust.Shared.Timing; -using Content.Server.GameTicking.Components; using Content.Shared.Cuffs.Components; namespace Content.Server.GameTicking.Rules; diff --git a/Content.Server/GameTicking/Rules/RoundstartStationVariationRuleSystem.cs b/Content.Server/GameTicking/Rules/RoundstartStationVariationRuleSystem.cs index f09ed3ebc3c..570889155b3 100644 --- a/Content.Server/GameTicking/Rules/RoundstartStationVariationRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/RoundstartStationVariationRuleSystem.cs @@ -1,9 +1,9 @@ using System.Linq; -using Content.Server.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; using Content.Server.Shuttles.Systems; using Content.Server.Station.Components; using Content.Server.Station.Events; +using Content.Shared.GameTicking.Components; using Content.Shared.Storage; using Robust.Shared.Prototypes; using Robust.Shared.Random; diff --git a/Content.Server/GameTicking/Rules/SandboxRuleSystem.cs b/Content.Server/GameTicking/Rules/SandboxRuleSystem.cs index c60670a3ad7..23e9ee5a7d2 100644 --- a/Content.Server/GameTicking/Rules/SandboxRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/SandboxRuleSystem.cs @@ -1,6 +1,6 @@ -using Content.Server.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; using Content.Server.Sandbox; +using Content.Shared.GameTicking.Components; namespace Content.Server.GameTicking.Rules; diff --git a/Content.Server/GameTicking/Rules/SecretRuleSystem.cs b/Content.Server/GameTicking/Rules/SecretRuleSystem.cs index 95bf5986a5a..320f9d197aa 100644 --- a/Content.Server/GameTicking/Rules/SecretRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/SecretRuleSystem.cs @@ -1,10 +1,10 @@ using System.Diagnostics.CodeAnalysis; using System.Linq; using Content.Server.Administration.Logs; -using Content.Server.GameTicking.Components; using Content.Server.Chat.Managers; using Content.Server.GameTicking.Presets; using Content.Server.GameTicking.Rules.Components; +using Content.Shared.GameTicking.Components; using Content.Shared.Random; using Content.Shared.CCVar; using Content.Shared.Database; @@ -46,7 +46,6 @@ protected override void Added(EntityUid uid, SecretRuleComponent component, Game Log.Info($"Selected {preset.ID} as the secret preset."); _adminLogger.Add(LogType.EventStarted, $"Selected {preset.ID} as the secret preset."); - _chatManager.SendAdminAnnouncement(Loc.GetString("rule-secret-selected-preset", ("preset", preset.ID))); foreach (var rule in preset.Rules) { diff --git a/Content.Server/GameTicking/Rules/SubGamemodesSystem.cs b/Content.Server/GameTicking/Rules/SubGamemodesSystem.cs index 4486ee40fbb..4fe3827ce5c 100644 --- a/Content.Server/GameTicking/Rules/SubGamemodesSystem.cs +++ b/Content.Server/GameTicking/Rules/SubGamemodesSystem.cs @@ -1,5 +1,5 @@ -using Content.Server.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; +using Content.Shared.GameTicking.Components; using Content.Shared.Storage; namespace Content.Server.GameTicking.Rules; diff --git a/Content.Server/GameTicking/Rules/TraitorRuleSystem.cs b/Content.Server/GameTicking/Rules/TraitorRuleSystem.cs index 1db288799f2..3d0a02d6aa9 100644 --- a/Content.Server/GameTicking/Rules/TraitorRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/TraitorRuleSystem.cs @@ -5,8 +5,11 @@ using Content.Server.Objectives; using Content.Server.PDA.Ringer; using Content.Server.Roles; +using Content.Server.Traitor.Components; using Content.Server.Traitor.Uplink; +using Content.Shared.GameTicking.Components; using Content.Shared.Mind; +using Content.Shared.Mood; using Content.Shared.Objectives.Components; using Content.Shared.PDA; using Content.Shared.Roles; @@ -15,9 +18,6 @@ using Robust.Shared.Random; using System.Linq; using System.Text; -using Content.Shared.Mood; -using Content.Server.GameTicking.Components; -using Content.Server.Traitor.Components; namespace Content.Server.GameTicking.Rules; diff --git a/Content.Server/GameTicking/Rules/ZombieRuleSystem.cs b/Content.Server/GameTicking/Rules/ZombieRuleSystem.cs index 1361ab37338..6c96bfd18c7 100644 --- a/Content.Server/GameTicking/Rules/ZombieRuleSystem.cs +++ b/Content.Server/GameTicking/Rules/ZombieRuleSystem.cs @@ -1,4 +1,5 @@ using Content.Server.Antag; +using Content.Server.Announcements.Systems; using Content.Server.Chat.Systems; using Content.Server.GameTicking.Rules.Components; using Content.Server.Popups; @@ -6,6 +7,7 @@ using Content.Server.Station.Components; using Content.Server.Station.Systems; using Content.Server.Zombies; +using Content.Shared.GameTicking.Components; using Content.Shared.Humanoid; using Content.Shared.Mind; using Content.Shared.Mobs; @@ -15,8 +17,6 @@ using Robust.Shared.Player; using Robust.Shared.Timing; using System.Globalization; -using Content.Server.Announcements.Systems; -using Content.Server.GameTicking.Components; namespace Content.Server.GameTicking.Rules; diff --git a/Content.Server/Gatherable/Components/GatherableComponent.cs b/Content.Server/Gatherable/Components/GatherableComponent.cs index f1d0c6ef74d..5480f4404fc 100644 --- a/Content.Server/Gatherable/Components/GatherableComponent.cs +++ b/Content.Server/Gatherable/Components/GatherableComponent.cs @@ -1,4 +1,6 @@ +using Content.Shared.EntityList; using Content.Shared.Whitelist; +using Robust.Shared.Prototypes; namespace Content.Server.Gatherable.Components; @@ -10,7 +12,7 @@ public sealed partial class GatherableComponent : Component /// Whitelist for specifying the kind of tools can be used on a resource /// Supports multiple tags. /// - [DataField("whitelist", required: true)] + [DataField(required: true)] public EntityWhitelist? ToolWhitelist; /// @@ -18,14 +20,20 @@ public sealed partial class GatherableComponent : Component /// (Tag1, Tag2, LootTableID1, LootTableID2 are placeholders for example) /// -------------------- /// useMappedLoot: true - /// whitelist: + /// toolWhitelist: /// tags: /// - Tag1 /// - Tag2 - /// mappedLoot: + /// loot: /// Tag1: LootTableID1 /// Tag2: LootTableID2 /// - [DataField("loot")] - public Dictionary? MappedLoot = new(); + [DataField] + public Dictionary>? Loot = new(); + + /// + /// Random shift of the appearing entity during gathering + /// + [DataField] + public float GatherOffset = 0.3f; } diff --git a/Content.Server/Gatherable/GatherableSystem.Projectile.cs b/Content.Server/Gatherable/GatherableSystem.Projectile.cs index f773ca2dbb9..3ab8872fd7d 100644 --- a/Content.Server/Gatherable/GatherableSystem.Projectile.cs +++ b/Content.Server/Gatherable/GatherableSystem.Projectile.cs @@ -1,7 +1,5 @@ using Content.Server.Gatherable.Components; -using Content.Server.Projectiles; using Content.Shared.Projectiles; -using Content.Shared.Weapons.Ranged.Systems; using Robust.Shared.Physics.Events; namespace Content.Server.Gatherable; @@ -13,20 +11,20 @@ private void InitializeProjectile() SubscribeLocalEvent(OnProjectileCollide); } - private void OnProjectileCollide(EntityUid uid, GatheringProjectileComponent component, ref StartCollideEvent args) + private void OnProjectileCollide(Entity gathering, ref StartCollideEvent args) { if (!args.OtherFixture.Hard || args.OurFixtureId != SharedProjectileSystem.ProjectileFixture || - component.Amount <= 0 || + gathering.Comp.Amount <= 0 || !TryComp(args.OtherEntity, out var gatherable)) { return; } - Gather(args.OtherEntity, uid, gatherable); - component.Amount--; + Gather(args.OtherEntity, gathering, gatherable); + gathering.Comp.Amount--; - if (component.Amount <= 0) - QueueDel(uid); + if (gathering.Comp.Amount <= 0) + QueueDel(gathering); } } diff --git a/Content.Server/Gatherable/GatherableSystem.cs b/Content.Server/Gatherable/GatherableSystem.cs index 7fbbf7f4f64..d438fb95e03 100644 --- a/Content.Server/Gatherable/GatherableSystem.cs +++ b/Content.Server/Gatherable/GatherableSystem.cs @@ -1,10 +1,10 @@ using Content.Server.Destructible; using Content.Server.Gatherable.Components; -using Content.Shared.EntityList; using Content.Shared.Interaction; using Content.Shared.Tag; using Content.Shared.Weapons.Melee.Events; -using Robust.Shared.Audio; +using Content.Shared.Whitelist; +using Robust.Server.GameObjects; using Robust.Shared.Audio.Systems; using Robust.Shared.Prototypes; using Robust.Shared.Random; @@ -13,11 +13,13 @@ namespace Content.Server.Gatherable; public sealed partial class GatherableSystem : EntitySystem { - [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + [Dependency] private readonly IPrototypeManager _proto = default!; [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly DestructibleSystem _destructible = default!; [Dependency] private readonly SharedAudioSystem _audio = default!; [Dependency] private readonly TagSystem _tagSystem = default!; + [Dependency] private readonly TransformSystem _transform = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; public override void Initialize() { @@ -28,20 +30,24 @@ public override void Initialize() InitializeProjectile(); } - private void OnAttacked(EntityUid uid, GatherableComponent component, AttackedEvent args) + private void OnAttacked(Entity gatherable, ref AttackedEvent args) { - if (component.ToolWhitelist?.IsValid(args.Used, EntityManager) != true) + if (_whitelistSystem.IsWhitelistFailOrNull(gatherable.Comp.ToolWhitelist, args.Used)) return; - Gather(uid, args.User, component); + Gather(gatherable, args.User); } - private void OnActivate(EntityUid uid, GatherableComponent component, ActivateInWorldEvent args) + private void OnActivate(Entity gatherable, ref ActivateInWorldEvent args) { - if (component.ToolWhitelist?.IsValid(args.User, EntityManager) != true) + if (args.Handled || !args.Complex) return; - Gather(uid, args.User, component); + if (_whitelistSystem.IsWhitelistFailOrNull(gatherable.Comp.ToolWhitelist, args.User)) + return; + + Gather(args.Target, args.User, gatherable.Comp); + args.Handled = true; } public void Gather(EntityUid gatheredUid, EntityUid? gatherer = null, GatherableComponent? component = null) @@ -50,33 +56,28 @@ public void Gather(EntityUid gatheredUid, EntityUid? gatherer = null, Gatherable return; if (TryComp(gatheredUid, out var soundComp)) - { _audio.PlayPvs(soundComp.Sound, Transform(gatheredUid).Coordinates); - } // Complete the gathering process _destructible.DestroyEntity(gatheredUid); // Spawn the loot! - if (component.MappedLoot == null) + if (component.Loot == null) return; - var pos = Transform(gatheredUid).MapPosition; + var pos = _transform.GetMapCoordinates(gatheredUid); - foreach (var (tag, table) in component.MappedLoot) + foreach (var (tag, table) in component.Loot) { if (tag != "All") { if (gatherer != null && !_tagSystem.HasTag(gatherer.Value, tag)) continue; } - var getLoot = _prototypeManager.Index(table); + var getLoot = _proto.Index(table); var spawnLoot = getLoot.GetSpawns(_random); - var spawnPos = pos.Offset(_random.NextVector2(0.3f)); + var spawnPos = pos.Offset(_random.NextVector2(component.GatherOffset)); Spawn(spawnLoot[0], spawnPos); } } } - - - diff --git a/Content.Server/Geras/GerasComponent.cs b/Content.Server/Geras/GerasComponent.cs index eaf792502f4..df1fccd7185 100644 --- a/Content.Server/Geras/GerasComponent.cs +++ b/Content.Server/Geras/GerasComponent.cs @@ -12,7 +12,7 @@ public sealed partial class GerasComponent : Component { [DataField] public ProtoId GerasPolymorphId = "SlimeMorphGeras"; - [DataField] public ProtoId GerasAction = "ActionMorphGeras"; + [DataField] public EntProtoId GerasAction = "ActionMorphGeras"; [DataField] public EntityUid? GerasActionEntity; } diff --git a/Content.Server/Ghost/GhostSystem.cs b/Content.Server/Ghost/GhostSystem.cs index 254d478bb0f..effed5cdbe1 100644 --- a/Content.Server/Ghost/GhostSystem.cs +++ b/Content.Server/Ghost/GhostSystem.cs @@ -409,23 +409,41 @@ public bool DoGhostBooEvent(EntityUid target) return SpawnGhost(mind, spawnPosition, canReturn); } + private bool IsValidSpawnPosition(EntityCoordinates? spawnPosition) + { + if (spawnPosition?.IsValid(EntityManager) != true) + return false; + + var mapUid = spawnPosition?.GetMapUid(EntityManager); + var gridUid = spawnPosition?.EntityId; + // Test if the map is being deleted + if (mapUid == null || TerminatingOrDeleted(mapUid.Value)) + return false; + // Test if the grid is being deleted + if (gridUid != null && TerminatingOrDeleted(gridUid.Value)) + return false; + + return true; + } + public EntityUid? SpawnGhost(Entity mind, EntityCoordinates? spawnPosition = null, bool canReturn = false) { if (!Resolve(mind, ref mind.Comp)) return null; - // Test if the map is being deleted - var mapUid = spawnPosition?.GetMapUid(EntityManager); - if (mapUid == null || TerminatingOrDeleted(mapUid.Value)) + // Test if the map or grid is being deleted + if (!IsValidSpawnPosition(spawnPosition)) spawnPosition = null; + // If it's bad, look for a valid point to spawn spawnPosition ??= _ticker.GetObserverSpawnPoint(); - if (!spawnPosition.Value.IsValid(EntityManager)) + // Make sure the new point is valid too + if (!IsValidSpawnPosition(spawnPosition)) { Log.Warning($"No spawn valid ghost spawn position found for {mind.Comp.CharacterName}" - + " \"{ToPrettyString(mind)}\""); + + $" \"{ToPrettyString(mind)}\""); _minds.TransferTo(mind.Owner, null, createGhost: false, mind: mind.Comp); return null; } diff --git a/Content.Server/Gravity/GravitySystem.cs b/Content.Server/Gravity/GravitySystem.cs index 5e0332ae491..ea62d4a8195 100644 --- a/Content.Server/Gravity/GravitySystem.cs +++ b/Content.Server/Gravity/GravitySystem.cs @@ -41,7 +41,7 @@ public void RefreshGravity(EntityUid uid, GravityComponent? gravity = null) gravity.Enabled = enabled; var ev = new GravityChangedEvent(uid, enabled); RaiseLocalEvent(uid, ref ev, true); - Dirty(gravity); + Dirty(uid, gravity); if (HasComp(uid)) { @@ -71,7 +71,7 @@ public void EnableGravity(EntityUid uid, GravityComponent? gravity = null) gravity.Enabled = true; var ev = new GravityChangedEvent(uid, true); RaiseLocalEvent(uid, ref ev, true); - Dirty(gravity); + Dirty(uid, gravity); if (HasComp(uid)) { diff --git a/Content.Server/Hands/Systems/HandsSystem.cs b/Content.Server/Hands/Systems/HandsSystem.cs index 289c440ab7f..23b503caefd 100644 --- a/Content.Server/Hands/Systems/HandsSystem.cs +++ b/Content.Server/Hands/Systems/HandsSystem.cs @@ -2,6 +2,8 @@ using Content.Server.Inventory; using Content.Server.Stack; using Content.Server.Stunnable; +using Content.Shared.Body.Systems; +using Content.Shared.Body.Events; using Content.Shared.ActionBlocker; using Content.Shared.Body.Part; using Content.Shared.CombatMode; @@ -35,12 +37,12 @@ public sealed class HandsSystem : SharedHandsSystem [Dependency] private readonly SharedTransformSystem _transformSystem = default!; [Dependency] private readonly PullingSystem _pullingSystem = default!; [Dependency] private readonly ThrowingSystem _throwingSystem = default!; - + [Dependency] private readonly SharedBodySystem _bodySystem = default!; public override void Initialize() { base.Initialize(); - SubscribeLocalEvent(OnDisarmed, before: new[] {typeof(StunSystem)}); + SubscribeLocalEvent(OnDisarmed, before: new[] { typeof(StunSystem) }); SubscribeLocalEvent(HandlePullStarted); SubscribeLocalEvent(HandlePullStopped); @@ -51,6 +53,8 @@ public override void Initialize() SubscribeLocalEvent(GetComponentState); SubscribeLocalEvent(OnExploded); + SubscribeLocalEvent(HandleBodyPartEnabled); + SubscribeLocalEvent(HandleBodyPartDisabled); CommandBinds.Builder .Bind(ContentKeyFunctions.ThrowItemInHand, new PointerInputCmdHandler(HandleThrowItem)) @@ -98,32 +102,55 @@ private void OnDisarmed(EntityUid uid, HandsComponent component, DisarmedEvent a args.Handled = true; // no shove/stun. } - private void HandleBodyPartAdded(EntityUid uid, HandsComponent component, ref BodyPartAddedEvent args) + private void TryAddHand(EntityUid uid, HandsComponent component, Entity part, string slot) { - if (args.Part.Comp.PartType != BodyPartType.Hand) + if (part.Comp is null + || part.Comp.PartType != BodyPartType.Hand) return; // If this annoys you, which it should. // Ping Smugleaf. - var location = args.Part.Comp.Symmetry switch + var location = part.Comp.Symmetry switch { BodyPartSymmetry.None => HandLocation.Middle, BodyPartSymmetry.Left => HandLocation.Left, BodyPartSymmetry.Right => HandLocation.Right, - _ => throw new ArgumentOutOfRangeException(nameof(args.Part.Comp.Symmetry)) + _ => throw new ArgumentOutOfRangeException(nameof(part.Comp.Symmetry)) }; - AddHand(uid, args.Slot, location); + if (part.Comp.Enabled + && _bodySystem.TryGetParentBodyPart(part, out var _, out var parentPartComp) + && parentPartComp.Enabled) + AddHand(uid, slot, location); + } + + private void HandleBodyPartAdded(EntityUid uid, HandsComponent component, ref BodyPartAddedEvent args) + { + TryAddHand(uid, component, args.Part, args.Slot); } private void HandleBodyPartRemoved(EntityUid uid, HandsComponent component, ref BodyPartRemovedEvent args) { - if (args.Part.Comp.PartType != BodyPartType.Hand) + if (args.Part.Comp is null + || args.Part.Comp.PartType != BodyPartType.Hand) return; - RemoveHand(uid, args.Slot); } + private void HandleBodyPartEnabled(EntityUid uid, HandsComponent component, ref BodyPartEnabledEvent args) => + TryAddHand(uid, component, args.Part, SharedBodySystem.GetPartSlotContainerId(args.Part.Comp.ParentSlot?.Id ?? string.Empty)); + + private void HandleBodyPartDisabled(EntityUid uid, HandsComponent component, ref BodyPartDisabledEvent args) + { + if (TerminatingOrDeleted(uid) + || args.Part.Comp is null + || args.Part.Comp.PartType != BodyPartType.Hand) + return; + + RemoveHand(uid, SharedBodySystem.GetPartSlotContainerId(args.Part.Comp.ParentSlot?.Id ?? string.Empty)); + } + + #region pulling private void HandlePullStarted(EntityUid uid, HandsComponent component, PullStartedMessage args) @@ -167,7 +194,7 @@ private void HandlePullStopped(EntityUid uid, HandsComponent component, PullStop private bool HandleThrowItem(ICommonSession? playerSession, EntityCoordinates coordinates, EntityUid entity) { - if (playerSession?.AttachedEntity is not {Valid: true} player || !Exists(player)) + if (playerSession?.AttachedEntity is not { Valid: true } player || !Exists(player)) return false; return ThrowHeldItem(player, coordinates); @@ -192,7 +219,7 @@ hands.ActiveHandEntity is not { } throwEnt || { var splitStack = _stackSystem.Split(throwEnt, 1, EntityManager.GetComponent(player).Coordinates, stack); - if (splitStack is not {Valid: true}) + if (splitStack is not { Valid: true }) return false; throwEnt = splitStack.Value; @@ -204,12 +231,18 @@ hands.ActiveHandEntity is not { } throwEnt || var length = direction.Length(); var distance = Math.Clamp(length, minDistance, hands.ThrowRange); - direction *= distance/length; + direction *= distance / length; var throwStrength = hands.ThrowForceMultiplier; // Let other systems change the thrown entity (useful for virtual items) // or the throw strength. + var itemEv = new BeforeGettingThrownEvent(throwEnt, direction, throwStrength, player); + RaiseLocalEvent(throwEnt, ref itemEv); + + if (itemEv.Cancelled) + return true; + var ev = new BeforeThrowEvent(throwEnt, direction, throwStrength, player); RaiseLocalEvent(player, ref ev); diff --git a/Content.Server/Holiday/Christmas/RandomGiftSystem.cs b/Content.Server/Holiday/Christmas/RandomGiftSystem.cs index 9e56d0a4937..48af65cb378 100644 --- a/Content.Server/Holiday/Christmas/RandomGiftSystem.cs +++ b/Content.Server/Holiday/Christmas/RandomGiftSystem.cs @@ -93,7 +93,7 @@ private void BuildIndex() foreach (var proto in _prototype.EnumeratePrototypes()) { - if (proto.Abstract || proto.NoSpawn || proto.Components.ContainsKey(mapGridCompName) || !proto.Components.ContainsKey(physicsCompName)) + if (proto.Abstract || proto.HideSpawnMenu || proto.Components.ContainsKey(mapGridCompName) || !proto.Components.ContainsKey(physicsCompName)) continue; _possibleGiftsUnsafe.Add(proto.ID); diff --git a/Content.Server/HotPotato/HotPotatoSystem.cs b/Content.Server/HotPotato/HotPotatoSystem.cs index 8091eea6fdd..115a7b6cb76 100644 --- a/Content.Server/HotPotato/HotPotatoSystem.cs +++ b/Content.Server/HotPotato/HotPotatoSystem.cs @@ -29,7 +29,7 @@ private void OnActiveTimer(EntityUid uid, HotPotatoComponent comp, ref ActiveTim comp.CanTransfer = false; _ambientSound.SetAmbience(uid, true); _damageOnHolding.SetEnabled(uid, true); - Dirty(comp); + Dirty(uid, comp); } private void OnMeleeHit(EntityUid uid, HotPotatoComponent comp, MeleeHitEvent args) @@ -56,6 +56,6 @@ private void OnMeleeHit(EntityUid uid, HotPotatoComponent comp, MeleeHitEvent ar break; } comp.CanTransfer = false; - Dirty(comp); + Dirty(uid, comp); } } diff --git a/Content.Server/Humanoid/Systems/HumanoidAppearanceSystem.Modifier.cs b/Content.Server/Humanoid/Systems/HumanoidAppearanceSystem.Modifier.cs index 06225c9d57c..7744d161519 100644 --- a/Content.Server/Humanoid/Systems/HumanoidAppearanceSystem.Modifier.cs +++ b/Content.Server/Humanoid/Systems/HumanoidAppearanceSystem.Modifier.cs @@ -29,7 +29,7 @@ private void OnVerbsRequest(EntityUid uid, HumanoidAppearanceComponent component { Text = "Modify markings", Category = VerbCategory.Tricks, - Icon = new SpriteSpecifier.Rsi(new ("/Textures/Mobs/Customization/reptilian_parts.rsi"), "tail_smooth"), + Icon = new SpriteSpecifier.Rsi(new("/Textures/Mobs/Customization/reptilian_parts.rsi"), "tail_smooth"), Act = () => { _uiSystem.OpenUi(uid, HumanoidMarkingModifierKey.Key, actor.PlayerSession); @@ -62,7 +62,7 @@ private void OnBaseLayersSet(EntityUid uid, HumanoidAppearanceComponent componen component.CustomBaseLayers[message.Layer] = message.Info.Value; } - Dirty(component); + Dirty(uid, component); if (message.ResendState) { @@ -86,7 +86,7 @@ private void OnMarkingsSet(EntityUid uid, HumanoidAppearanceComponent component, } component.MarkingSet = message.MarkingSet; - Dirty(component); + Dirty(uid, component); if (message.ResendState) { diff --git a/Content.Server/Humanoid/Systems/HumanoidAppearanceSystem.cs b/Content.Server/Humanoid/Systems/HumanoidAppearanceSystem.cs index ed6d91f56c7..1811567d270 100644 --- a/Content.Server/Humanoid/Systems/HumanoidAppearanceSystem.cs +++ b/Content.Server/Humanoid/Systems/HumanoidAppearanceSystem.cs @@ -53,9 +53,8 @@ public void CloneAppearance(EntityUid source, EntityUid target, HumanoidAppearan grammar.Gender = sourceHumanoid.Gender; } - targetHumanoid.LastProfileLoaded = sourceHumanoid.LastProfileLoaded; // DeltaV - let paradox anomaly be cloned - - Dirty(targetHumanoid); + targetHumanoid.LastProfileLoaded = sourceHumanoid.LastProfileLoaded; + Dirty(target, targetHumanoid); } /// @@ -76,7 +75,7 @@ public void RemoveMarking(EntityUid uid, string marking, bool sync = true, Human humanoid.MarkingSet.Remove(prototype.MarkingCategory, marking); if (sync) - Dirty(humanoid); + Dirty(uid, humanoid); } /// @@ -97,7 +96,7 @@ public void RemoveMarking(EntityUid uid, MarkingCategories category, int index, } humanoid.MarkingSet.Remove(category, index); - Dirty(humanoid); + Dirty(uid, humanoid); } /// @@ -126,7 +125,7 @@ public void SetMarkingId(EntityUid uid, MarkingCategories category, int index, s } humanoid.MarkingSet.Replace(category, index, marking); - Dirty(humanoid); + Dirty(uid, humanoid); } /// @@ -153,6 +152,6 @@ public void SetMarkingColor(EntityUid uid, MarkingCategories category, int index markings[index].SetColor(i, colors[i]); } - Dirty(humanoid); + Dirty(uid, humanoid); } } diff --git a/Content.Server/Info/InfoSystem.cs b/Content.Server/Info/InfoSystem.cs deleted file mode 100644 index 350ae033cfd..00000000000 --- a/Content.Server/Info/InfoSystem.cs +++ /dev/null @@ -1,35 +0,0 @@ -using Content.Shared.CCVar; -using Content.Shared.Info; -using Robust.Shared.Configuration; -using Robust.Shared.ContentPack; - -namespace Content.Server.Info; - -public sealed class InfoSystem : EntitySystem -{ - [Dependency] private readonly IResourceManager _res = default!; - [Dependency] private readonly IConfigurationManager _cfg = default!; - public override void Initialize() - { - base.Initialize(); - SubscribeNetworkEvent(OnRequestRules); - } - - private void OnRequestRules(RequestRulesMessage message, EntitySessionEventArgs eventArgs) - { - Log.Debug("Client requested rules."); - var title = Loc.GetString(_cfg.GetCVar(CCVars.RulesHeader)); - var path = _cfg.GetCVar(CCVars.RulesFile); - var rules = "Server could not read its rules."; - try - { - rules = _res.ContentFileReadAllText($"/ServerInfo/{path}"); - } - catch (Exception) - { - Log.Debug("Could not read server rules file."); - } - var response = new RulesMessage(title, rules); - RaiseNetworkEvent(response, eventArgs.SenderSession.Channel); - } -} diff --git a/Content.Server/Info/RulesManager.cs b/Content.Server/Info/RulesManager.cs deleted file mode 100644 index d9d744dcbd5..00000000000 --- a/Content.Server/Info/RulesManager.cs +++ /dev/null @@ -1,48 +0,0 @@ -using System.Net; -using Content.Server.Database; -using Content.Shared.CCVar; -using Content.Shared.Info; -using Robust.Shared.Configuration; -using Robust.Shared.Network; - -namespace Content.Server.Info; - -public sealed class RulesManager : SharedRulesManager -{ - [Dependency] private readonly IServerDbManager _dbManager = default!; - [Dependency] private readonly INetManager _netManager = default!; - [Dependency] private readonly IConfigurationManager _cfg = default!; - - private static DateTime LastValidReadTime => DateTime.UtcNow - TimeSpan.FromDays(60); - - public void Initialize() - { - _netManager.RegisterNetMessage(); - _netManager.RegisterNetMessage(); - _netManager.RegisterNetMessage(OnRulesAccepted); - _netManager.Connected += OnConnected; - } - - private async void OnConnected(object? sender, NetChannelArgs e) - { - if (IPAddress.IsLoopback(e.Channel.RemoteEndPoint.Address) && _cfg.GetCVar(CCVars.RulesExemptLocal)) - { - return; - } - - var lastRead = await _dbManager.GetLastReadRules(e.Channel.UserId); - if (lastRead > LastValidReadTime) - { - return; - } - - var message = new ShouldShowRulesPopupMessage(); - _netManager.ServerSendMessage(message, e.Channel); - } - - private async void OnRulesAccepted(RulesAcceptedMessage message) - { - var date = DateTime.UtcNow; - await _dbManager.SetLastReadRules(message.MsgChannel.UserId, date); - } -} diff --git a/Content.Server/Info/ShowRulesCommand.cs b/Content.Server/Info/ShowRulesCommand.cs index 32c24c29995..b13b8d11a5a 100644 --- a/Content.Server/Info/ShowRulesCommand.cs +++ b/Content.Server/Info/ShowRulesCommand.cs @@ -47,20 +47,16 @@ public async void Execute(IConsoleShell shell, string argStr, string[] args) } } - var locator = IoCManager.Resolve(); - var located = await locator.LookupIdByNameOrIdAsync(target); - if (located == null) + + var message = new ShowRulesPopupMessage { PopupTime = seconds }; + + if (!IoCManager.Resolve().TryGetSessionByUsername(target, out var player)) { shell.WriteError("Unable to find a player with that name."); - return; + return; } var netManager = IoCManager.Resolve(); - - var message = new SharedRulesManager.ShowRulesPopupMessage(); - message.PopupTime = seconds; - - var player = IoCManager.Resolve().GetSessionById(located.UserId); netManager.ServerSendMessage(message, player.Channel); } } diff --git a/Content.Server/Instruments/SwappableInstrumentSystem.cs b/Content.Server/Instruments/SwappableInstrumentSystem.cs index 3f3cfb9e6db..9aef875cd65 100644 --- a/Content.Server/Instruments/SwappableInstrumentSystem.cs +++ b/Content.Server/Instruments/SwappableInstrumentSystem.cs @@ -35,7 +35,7 @@ private void AddStyleVerb(EntityUid uid, SwappableInstrumentComponent component, Priority = priority, Act = () => { - _sharedInstrument.SetInstrumentProgram(instrument, entry.Value.Item1, entry.Value.Item2); + _sharedInstrument.SetInstrumentProgram(uid, instrument, entry.Value.Item1, entry.Value.Item2); _popup.PopupEntity(Loc.GetString("swappable-instrument-component-style-set", ("style", entry.Key)), args.User, args.User); } diff --git a/Content.Server/Interaction/InteractionPopupSystem.cs b/Content.Server/Interaction/InteractionPopupSystem.cs index a028598df03..c31f7d341f8 100644 --- a/Content.Server/Interaction/InteractionPopupSystem.cs +++ b/Content.Server/Interaction/InteractionPopupSystem.cs @@ -32,6 +32,9 @@ public override void Initialize() private void OnActivateInWorld(EntityUid uid, InteractionPopupComponent component, ActivateInWorldEvent args) { + if (!args.Complex) + return; + if (!component.OnActivate) return; diff --git a/Content.Server/InteractionVerbs/Actions/ChangeStandingStateAction.cs b/Content.Server/InteractionVerbs/Actions/ChangeStandingStateAction.cs index 59340df58f2..0d74781f62d 100644 --- a/Content.Server/InteractionVerbs/Actions/ChangeStandingStateAction.cs +++ b/Content.Server/InteractionVerbs/Actions/ChangeStandingStateAction.cs @@ -33,7 +33,7 @@ public override bool Perform(InteractionArgs args, InteractionVerbPrototype prot if (state.CurrentState == StandingState.Lying && MakeStanding) return stateSystem.Stand(args.Target); else if (state.CurrentState == StandingState.Standing && MakeLaying) - return stateSystem.Down(args.Target, setDrawDepth: true); + return stateSystem.Down(args.Target); return false; } diff --git a/Content.Server/IoC/ServerContentIoC.cs b/Content.Server/IoC/ServerContentIoC.cs index 7c150141333..914c8589916 100644 --- a/Content.Server/IoC/ServerContentIoC.cs +++ b/Content.Server/IoC/ServerContentIoC.cs @@ -11,12 +11,14 @@ using Content.Server.DiscordAuth; using Content.Server.EUI; using Content.Server.GhostKick; -using Content.Server.Info; using Content.Server.Maps; using Content.Server.Players.JobWhitelist; using Content.Server.MoMMI; using Content.Server.NodeContainer.NodeGroups; +using Content.Server.Players; +using Content.Server.Players.JobWhitelist; using Content.Server.Players.PlayTimeTracking; +using Content.Server.Players.RateLimiting; using Content.Server.Preferences.Managers; using Content.Server.ServerInfo; using Content.Server.ServerUpdates; @@ -24,8 +26,10 @@ using Content.Server.Worldgen.Tools; using Content.Shared.Administration.Logs; using Content.Shared.Administration.Managers; +using Content.Shared.Chat; using Content.Shared.Kitchen; using Content.Shared.Players.PlayTimeTracking; +using Content.Shared.Players.RateLimiting; namespace Content.Server.IoC { @@ -34,6 +38,7 @@ internal static class ServerContentIoC public static void Register() { IoCManager.Register(); + IoCManager.Register(); IoCManager.Register(); IoCManager.Register(); IoCManager.Register(); @@ -49,7 +54,6 @@ public static void Register() IoCManager.Register(); IoCManager.Register(); IoCManager.Register(); - IoCManager.Register(); IoCManager.Register(); IoCManager.Register(); IoCManager.Register(); @@ -62,11 +66,13 @@ public static void Register() IoCManager.Register(); IoCManager.Register(); IoCManager.Register(); - IoCManager.Register(); IoCManager.Register(); IoCManager.Register(); IoCManager.Register(); IoCManager.Register(); + IoCManager.Register(); + IoCManager.Register(); + IoCManager.Register(); } } } diff --git a/Content.Server/Kitchen/EntitySystems/MicrowaveSystem.cs b/Content.Server/Kitchen/EntitySystems/MicrowaveSystem.cs index f9e1ae22416..40be61695fc 100644 --- a/Content.Server/Kitchen/EntitySystems/MicrowaveSystem.cs +++ b/Content.Server/Kitchen/EntitySystems/MicrowaveSystem.cs @@ -99,9 +99,13 @@ private void OnCookStart(Entity ent, ref ComponentStar if (!TryComp(ent, out var microwaveComponent)) return; SetAppearance(ent.Owner, MicrowaveVisualState.Cooking, microwaveComponent); + + var audio = _audio.PlayPvs(microwaveComponent.LoopingSound, ent, AudioParams.Default.WithLoop(true).WithMaxDistance(5)); - microwaveComponent.PlayingStream = - _audio.PlayPvs(microwaveComponent.LoopingSound, ent, AudioParams.Default.WithLoop(true).WithMaxDistance(5)).Value.Entity; + if (audio == null) + return; + + microwaveComponent.PlayingStream = audio!.Value.Entity; } private void OnCookStop(Entity ent, ref ComponentShutdown args) diff --git a/Content.Server/Kitchen/EntitySystems/ReagentGrinderSystem.cs b/Content.Server/Kitchen/EntitySystems/ReagentGrinderSystem.cs index 93a15f319d9..0d6fb3fb90c 100644 --- a/Content.Server/Kitchen/EntitySystems/ReagentGrinderSystem.cs +++ b/Content.Server/Kitchen/EntitySystems/ReagentGrinderSystem.cs @@ -323,9 +323,15 @@ private void DoWork(EntityUid uid, ReagentGrinderComponent reagentGrinder, Grind var active = AddComp(uid); active.EndTime = _timing.CurTime + reagentGrinder.WorkTime * reagentGrinder.WorkTimeMultiplier; active.Program = program; + + // slightly higher pitched + var audio = _audioSystem.PlayPvs(sound, uid, + AudioParams.Default.WithPitchScale(1 / reagentGrinder.WorkTimeMultiplier)); - reagentGrinder.AudioStream = _audioSystem.PlayPvs(sound, uid, - AudioParams.Default.WithPitchScale(1 / reagentGrinder.WorkTimeMultiplier)).Value.Entity; //slightly higher pitched + if (audio == null) + return; + + reagentGrinder.AudioStream = audio!.Value.Entity; _userInterfaceSystem.ServerSendUiMessage(uid, ReagentGrinderUiKey.Key, new ReagentGrinderWorkStartedMessage(program)); } diff --git a/Content.Server/LifeDrainer/LifeDrainerSystem.cs b/Content.Server/LifeDrainer/LifeDrainerSystem.cs index 439a5dcf45f..c5955d78039 100644 --- a/Content.Server/LifeDrainer/LifeDrainerSystem.cs +++ b/Content.Server/LifeDrainer/LifeDrainerSystem.cs @@ -1,3 +1,4 @@ +using Content.Server.Abilities.Psionics; using Content.Server.Carrying; using Content.Server.NPC.Systems; using Content.Shared.ActionBlocker; @@ -27,6 +28,7 @@ public sealed class LifeDrainerSystem : EntitySystem [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; [Dependency] private readonly SharedInteractionSystem _interaction = default!; [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly PsionicAbilitiesSystem _psionicAbilitiesSystem = default!; public override void Initialize() { @@ -88,6 +90,7 @@ private void OnDrain(Entity ent, ref LifeDrainDoAfterEvent _audio.PlayPvs(comp.FinishSound, uid); _damageable.TryChangeDamage(target, comp.Damage, true, origin: uid); + _psionicAbilitiesSystem.MindBreak(target); } public bool CanDrain(Entity ent, EntityUid target) diff --git a/Content.Server/Light/Components/MatchstickComponent.cs b/Content.Server/Light/Components/MatchstickComponent.cs deleted file mode 100644 index 3c47f4c18b3..00000000000 --- a/Content.Server/Light/Components/MatchstickComponent.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Content.Server.Light.EntitySystems; -using Content.Shared.Smoking; -using Robust.Shared.Audio; - -namespace Content.Server.Light.Components -{ - [RegisterComponent] - [Access(typeof(MatchstickSystem))] - public sealed partial class MatchstickComponent : Component - { - /// - /// Current state to matchstick. Can be Unlit, Lit or Burnt. - /// - [DataField("state")] - public SmokableState CurrentState = SmokableState.Unlit; - - /// - /// How long will matchstick last in seconds. - /// - [ViewVariables(VVAccess.ReadOnly)] - [DataField("duration")] - public int Duration = 10; - - /// - /// Sound played when you ignite the matchstick. - /// - [DataField("igniteSound", required: true)] public SoundSpecifier IgniteSound = default!; - } -} diff --git a/Content.Server/Light/EntitySystems/HandheldLightSystem.cs b/Content.Server/Light/EntitySystems/HandheldLightSystem.cs index 813f8c407b7..a5a41bcc105 100644 --- a/Content.Server/Light/EntitySystems/HandheldLightSystem.cs +++ b/Content.Server/Light/EntitySystems/HandheldLightSystem.cs @@ -126,7 +126,7 @@ private void OnRemove(Entity ent, ref ComponentRemove ar private void OnActivate(Entity ent, ref ActivateInWorldEvent args) { - if (args.Handled || !ent.Comp.ToggleOnInteract) + if (args.Handled || !args.Complex || !ent.Comp.ToggleOnInteract) return; if (ToggleStatus(args.User, ent)) diff --git a/Content.Server/Light/EntitySystems/MatchboxSystem.cs b/Content.Server/Light/EntitySystems/MatchboxSystem.cs index 9a73e44f878..e4925c610dd 100644 --- a/Content.Server/Light/EntitySystems/MatchboxSystem.cs +++ b/Content.Server/Light/EntitySystems/MatchboxSystem.cs @@ -2,6 +2,7 @@ using Content.Server.Storage.EntitySystems; using Content.Shared.Interaction; using Content.Shared.Smoking; +using Content.Shared.Smoking.Components; namespace Content.Server.Light.EntitySystems { diff --git a/Content.Server/Light/EntitySystems/MatchstickSystem.cs b/Content.Server/Light/EntitySystems/MatchstickSystem.cs index 96e4695784d..6748fa9ce66 100644 --- a/Content.Server/Light/EntitySystems/MatchstickSystem.cs +++ b/Content.Server/Light/EntitySystems/MatchstickSystem.cs @@ -1,9 +1,10 @@ using Content.Server.Atmos.EntitySystems; -using Content.Server.Light.Components; using Content.Shared.Audio; using Content.Shared.Interaction; using Content.Shared.Item; using Content.Shared.Smoking; +using Content.Shared.Smoking.Components; +using Content.Shared.Smoking.Systems; using Content.Shared.Temperature; using Robust.Server.GameObjects; using Robust.Shared.Audio; @@ -12,7 +13,7 @@ namespace Content.Server.Light.EntitySystems { - public sealed class MatchstickSystem : EntitySystem + public sealed class MatchstickSystem : SharedMatchstickSystem { [Dependency] private readonly AtmosphereSystem _atmosphereSystem = default!; [Dependency] private readonly SharedAppearanceSystem _appearance = default!; @@ -84,18 +85,21 @@ public void Ignite(Entity matchstick, EntityUid user) _audio.PlayPvs(component.IgniteSound, matchstick, AudioParams.Default.WithVariation(0.125f).WithVolume(-0.125f)); // Change state - SetState(matchstick, component, SmokableState.Lit); + SetState((matchstick, component), SmokableState.Lit); _litMatches.Add(matchstick); matchstick.Owner.SpawnTimer(component.Duration * 1000, delegate { - SetState(matchstick, component, SmokableState.Burnt); + SetState((matchstick, component), SmokableState.Burnt); _litMatches.Remove(matchstick); }); } - private void SetState(EntityUid uid, MatchstickComponent component, SmokableState value) + public override bool SetState(Entity ent, SmokableState value) { - component.CurrentState = value; + if (!base.SetState(ent, value)) + return false; + + var (uid, component) = ent; if (_lights.TryGetLight(uid, out var pointLightComponent)) { @@ -119,6 +123,8 @@ private void SetState(EntityUid uid, MatchstickComponent component, SmokableStat { _appearance.SetData(uid, SmokingVisuals.Smoking, component.CurrentState, appearance); } + + return true; } } } diff --git a/Content.Server/Light/EntitySystems/RotatingLightSystem.cs b/Content.Server/Light/EntitySystems/RotatingLightSystem.cs index dd72b3a43e8..7ef1357dc31 100644 --- a/Content.Server/Light/EntitySystems/RotatingLightSystem.cs +++ b/Content.Server/Light/EntitySystems/RotatingLightSystem.cs @@ -19,6 +19,6 @@ private void OnLightToggle(EntityUid uid, RotatingLightComponent comp, PointLigh return; comp.Enabled = args.Enabled; - Dirty(comp); + Dirty(uid, comp); } } diff --git a/Content.Server/Lightning/LightningSystem.cs b/Content.Server/Lightning/LightningSystem.cs index 4f975a60fda..3c0da8e9149 100644 --- a/Content.Server/Lightning/LightningSystem.cs +++ b/Content.Server/Lightning/LightningSystem.cs @@ -20,6 +20,7 @@ public sealed class LightningSystem : SharedLightningSystem [Dependency] private readonly BeamSystem _beam = default!; [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly EntityLookupSystem _lookup = default!; + [Dependency] private readonly SharedTransformSystem _transform = default!; public override void Initialize() { @@ -74,28 +75,33 @@ public void ShootRandomLightnings(EntityUid user, float range, int boltCount, st //To Do: This is still pretty bad for perf but better than before and at least it doesn't re-allocate // several hashsets every time - var targets = _lookup.GetComponentsInRange(Transform(user).MapPosition, range).ToList(); + var userCoords = _transform.GetMapCoordinates(user); + var targetEnts = _lookup.GetEntitiesInRange(userCoords, range); + var targets = targetEnts.Select(x => x.Comp).ToList(); + _random.Shuffle(targets); targets.Sort((x, y) => y.Priority.CompareTo(x.Priority)); - int shootedCount = 0; + int shotCount = 0; int count = -1; - while(shootedCount < boltCount) + + while (shotCount < boltCount) { count++; if (count >= targets.Count) { break; } - var curTarget = targets[count]; - if (!_random.Prob(curTarget.HitProbability)) //Chance to ignore target + + // Chance to ignore target + if (!_random.Prob(curTarget.HitProbability)) continue; ShootLightning(user, targets[count].Owner, lightningPrototype, triggerLightningEvents); + if (arcDepth - targets[count].LightningResistance > 0) - { ShootRandomLightnings(targets[count].Owner, range, 1, lightningPrototype, arcDepth - targets[count].LightningResistance, triggerLightningEvents); - } - shootedCount++; + + shotCount++; } } } diff --git a/Content.Server/Magic/MagicSystem.cs b/Content.Server/Magic/MagicSystem.cs index c25aada3a07..5997c56e240 100644 --- a/Content.Server/Magic/MagicSystem.cs +++ b/Content.Server/Magic/MagicSystem.cs @@ -18,6 +18,6 @@ public override void Initialize() private void OnSpellSpoken(ref SpeakSpellEvent args) { - _chat.TrySendInGameICMessage(args.Performer, Loc.GetString(args.Speech), InGameICChatType.Speak, false); + _chat.TrySendInGameICMessage(args.Performer, Loc.GetString(args.Speech), args.ChatType, false); } } diff --git a/Content.Server/MagicMirror/MagicMirrorSystem.cs b/Content.Server/MagicMirror/MagicMirrorSystem.cs index 6cbfc55cac0..b11e8ca707c 100644 --- a/Content.Server/MagicMirror/MagicMirrorSystem.cs +++ b/Content.Server/MagicMirror/MagicMirrorSystem.cs @@ -1,15 +1,12 @@ using System.Linq; using Content.Server.DoAfter; using Content.Server.Humanoid; -using Content.Shared.UserInterface; using Content.Shared.DoAfter; using Content.Shared.Humanoid; using Content.Shared.Humanoid.Markings; using Content.Shared.Interaction; using Content.Shared.MagicMirror; -using Robust.Server.GameObjects; using Robust.Shared.Audio.Systems; -using Robust.Shared.Player; namespace Content.Server.MagicMirror; @@ -22,14 +19,13 @@ public sealed class MagicMirrorSystem : SharedMagicMirrorSystem [Dependency] private readonly DoAfterSystem _doAfterSystem = default!; [Dependency] private readonly MarkingManager _markings = default!; [Dependency] private readonly HumanoidAppearanceSystem _humanoid = default!; - [Dependency] private readonly UserInterfaceSystem _uiSystem = default!; public override void Initialize() { base.Initialize(); - SubscribeLocalEvent(OnOpenUIAttempt); - Subs.BuiEvents(MagicMirrorUiKey.Key, subs => + Subs.BuiEvents(MagicMirrorUiKey.Key, + subs => { subs.Event(OnUiClosed); subs.Event(OnMagicMirrorSelect); @@ -38,7 +34,6 @@ public override void Initialize() subs.Event(OnTryMagicMirrorRemoveSlot); }); - SubscribeLocalEvent(OnMagicMirrorInteract); SubscribeLocalEvent(OnSelectSlotDoAfter); SubscribeLocalEvent(OnChangeColorDoAfter); @@ -46,23 +41,6 @@ public override void Initialize() SubscribeLocalEvent(OnAddSlotDoAfter); } - private void OnMagicMirrorInteract(Entity mirror, ref AfterInteractEvent args) - { - if (!args.CanReach || args.Target == null) - return; - - if (!_uiSystem.TryOpenUi(mirror.Owner, MagicMirrorUiKey.Key, args.User)) - return; - - UpdateInterface(mirror.Owner, args.Target.Value, mirror.Comp); - } - - private void OnOpenUIAttempt(EntityUid uid, MagicMirrorComponent mirror, ActivatableUIOpenAttemptEvent args) - { - if (!HasComp(args.User)) - args.Cancel(); - } - private void OnMagicMirrorSelect(EntityUid uid, MagicMirrorComponent component, MagicMirrorSelectMessage message) { if (component.Target is not { } target) @@ -87,7 +65,8 @@ private void OnMagicMirrorSelect(EntityUid uid, MagicMirrorComponent component, BreakOnUserMove = true, BreakOnWeightlessMove = false, NeedHand = true - }, out var doAfterId); + }, + out var doAfterId); component.DoAfter = doAfterId; _audio.PlayPvs(component.ChangeHairSound, uid); @@ -143,7 +122,8 @@ private void OnTryMagicMirrorChangeColor(EntityUid uid, MagicMirrorComponent com BreakOnUserMove = true, BreakOnWeightlessMove = false, NeedHand = true - }, out var doAfterId); + }, + out var doAfterId); component.DoAfter = doAfterId; } @@ -198,7 +178,8 @@ private void OnTryMagicMirrorRemoveSlot(EntityUid uid, MagicMirrorComponent comp BreakOnUserMove = true, BreakOnWeightlessMove = false, NeedHand = true - }, out var doAfterId); + }, + out var doAfterId); component.DoAfter = doAfterId; _audio.PlayPvs(component.ChangeHairSound, uid); @@ -252,7 +233,8 @@ private void OnTryMagicMirrorAddSlot(EntityUid uid, MagicMirrorComponent compone BreakOnUserMove = true, BreakOnWeightlessMove = false, NeedHand = true - }, out var doAfterId); + }, + out var doAfterId); component.DoAfter = doAfterId; _audio.PlayPvs(component.ChangeHairSound, uid); @@ -287,32 +269,6 @@ private void OnAddSlotDoAfter(EntityUid uid, MagicMirrorComponent component, Mag } - private void UpdateInterface(EntityUid mirrorUid, EntityUid targetUid, MagicMirrorComponent component) - { - if (!TryComp(targetUid, out var humanoid)) - return; - - var hair = humanoid.MarkingSet.TryGetCategory(MarkingCategories.Hair, out var hairMarkings) - ? new List(hairMarkings) - : new(); - - var facialHair = humanoid.MarkingSet.TryGetCategory(MarkingCategories.FacialHair, out var facialHairMarkings) - ? new List(facialHairMarkings) - : new(); - - var state = new MagicMirrorUiState( - humanoid.Species, - hair, - humanoid.MarkingSet.PointsLeft(MarkingCategories.Hair) + hair.Count, - facialHair, - humanoid.MarkingSet.PointsLeft(MarkingCategories.FacialHair) + facialHair.Count); - - // TODO: Component states - component.Target = targetUid; - _uiSystem.SetUiState(mirrorUid, MagicMirrorUiKey.Key, state); - Dirty(mirrorUid, component); - } - private void OnUiClosed(Entity ent, ref BoundUIClosedEvent args) { ent.Comp.Target = null; diff --git a/Content.Server/Materials/MaterialReclaimerSystem.cs b/Content.Server/Materials/MaterialReclaimerSystem.cs index de82f125985..3b23308758d 100644 --- a/Content.Server/Materials/MaterialReclaimerSystem.cs +++ b/Content.Server/Materials/MaterialReclaimerSystem.cs @@ -146,7 +146,7 @@ public override bool TryFinishProcessItem(EntityUid uid, MaterialReclaimerCompon return false; Container.Remove(item, active.ReclaimingContainer); - Dirty(component); + Dirty(uid, component); // scales the output if the process was interrupted. var completion = 1f - Math.Clamp((float) Math.Round((active.EndTime - Timing.CurTime) / active.Duration), diff --git a/Content.Server/Mech/Equipment/EntitySystems/MechGrabberSystem.cs b/Content.Server/Mech/Equipment/EntitySystems/MechGrabberSystem.cs index fa46792d2af..194ef532ba2 100644 --- a/Content.Server/Mech/Equipment/EntitySystems/MechGrabberSystem.cs +++ b/Content.Server/Mech/Equipment/EntitySystems/MechGrabberSystem.cs @@ -40,7 +40,7 @@ public override void Initialize() SubscribeLocalEvent(OnEquipmentRemoved); SubscribeLocalEvent(OnAttemptRemove); - SubscribeLocalEvent(OnInteract); + SubscribeLocalEvent(OnInteract); SubscribeLocalEvent(OnMechGrab); } @@ -85,7 +85,7 @@ public void RemoveItem(EntityUid uid, EntityUid mech, EntityUid toRemove, MechGr var (mechPos, mechRot) = _transform.GetWorldPositionRotation(mechxform); var offset = mechPos + mechRot.RotateVec(component.DepositOffset); - _transform.SetWorldPositionRotation(xform, offset, Angle.Zero); + _transform.SetWorldPositionRotation(toRemove, offset, Angle.Zero); _mech.UpdateUserInterface(mech); } @@ -123,10 +123,11 @@ private void OnUiStateReady(EntityUid uid, MechGrabberComponent component, MechE args.States.Add(GetNetEntity(uid), state); } - private void OnInteract(EntityUid uid, MechGrabberComponent component, InteractNoHandEvent args) + private void OnInteract(EntityUid uid, MechGrabberComponent component, UserActivateInWorldEvent args) { - if (args.Handled || args.Target is not {} target) + if (args.Handled) return; + var target = args.Target; if (args.Target == args.User || component.DoAfter != null) return; @@ -154,7 +155,12 @@ private void OnInteract(EntityUid uid, MechGrabberComponent component, InteractN return; args.Handled = true; - component.AudioStream = _audio.PlayPvs(component.GrabSound, uid).Value.Entity; + var audio = _audio.PlayPvs(component.GrabSound, uid); + + if (audio == null) + return; + + component.AudioStream = audio!.Value.Entity; var doAfterArgs = new DoAfterArgs(EntityManager, args.User, component.GrabDelay, new GrabberDoAfterEvent(), uid, target: target, used: uid) { BreakOnTargetMove = true, diff --git a/Content.Server/Mech/Systems/MechSystem.cs b/Content.Server/Mech/Systems/MechSystem.cs index 36dce2c9bcc..a728ee7de5e 100644 --- a/Content.Server/Mech/Systems/MechSystem.cs +++ b/Content.Server/Mech/Systems/MechSystem.cs @@ -107,7 +107,7 @@ private void OnInsertBattery(EntityUid uid, MechComponent component, EntInserted component.Energy = battery.CurrentCharge; component.MaxEnergy = battery.MaxCharge; - Dirty(component); + Dirty(uid, component); _actionBlocker.UpdateCanMove(uid); } @@ -137,7 +137,7 @@ private void OnMapInit(EntityUid uid, MechComponent component, MapInitEvent args component.Energy = component.MaxEnergy; _actionBlocker.UpdateCanMove(uid); - Dirty(component); + Dirty(uid, component); } private void OnRemoveEquipmentMessage(EntityUid uid, MechComponent component, MechEquipmentRemoveMessage args) @@ -337,7 +337,7 @@ public override bool TryChangeEnergy(EntityUid uid, FixedPoint2 delta, MechCompo { Log.Debug($"Battery charge was not equal to mech charge. Battery {batteryComp.CurrentCharge}. Mech {component.Energy}"); component.Energy = batteryComp.CurrentCharge; - Dirty(component); + Dirty(uid, component); } _actionBlocker.UpdateCanMove(uid); return true; @@ -357,7 +357,7 @@ public void InsertBattery(EntityUid uid, EntityUid toInsert, MechComponent? comp _actionBlocker.UpdateCanMove(uid); - Dirty(component); + Dirty(uid, component); UpdateUserInterface(uid, component); } @@ -372,7 +372,7 @@ public void RemoveBattery(EntityUid uid, MechComponent? component = null) _actionBlocker.UpdateCanMove(uid); - Dirty(component); + Dirty(uid, component); UpdateUserInterface(uid, component); } diff --git a/Content.Server/Medical/Components/HealingComponent.cs b/Content.Server/Medical/Components/HealingComponent.cs index a56bc171432..94ad4b57c2d 100644 --- a/Content.Server/Medical/Components/HealingComponent.cs +++ b/Content.Server/Medical/Components/HealingComponent.cs @@ -43,13 +43,13 @@ public sealed partial class HealingComponent : Component /// [ViewVariables(VVAccess.ReadWrite)] [DataField("delay")] - public float Delay = 3f; + public float Delay = 2f; //Was 3f, changed due to Surgery Changes /// /// Delay multiplier when healing yourself. /// [DataField("selfHealPenaltyMultiplier")] - public float SelfHealPenaltyMultiplier = 3f; + public float SelfHealPenaltyMultiplier = 2f; //Was 3f, changed due to Surgery Changes /// /// Sound played on healing begin diff --git a/Content.Server/Medical/Components/HealthAnalyzerComponent.cs b/Content.Server/Medical/Components/HealthAnalyzerComponent.cs index 6380b71c8a0..f0b56cbd195 100644 --- a/Content.Server/Medical/Components/HealthAnalyzerComponent.cs +++ b/Content.Server/Medical/Components/HealthAnalyzerComponent.cs @@ -35,6 +35,12 @@ public sealed partial class HealthAnalyzerComponent : Component [DataField] public EntityUid? ScannedEntity; + /// + /// The body part that is currently being scanned. + /// + [DataField] + public EntityUid? CurrentBodyPart; + /// /// The maximum range in tiles at which the analyzer can receive continuous updates /// diff --git a/Content.Server/Medical/CryoPodSystem.cs b/Content.Server/Medical/CryoPodSystem.cs index 023a2e4083f..caae6c5f17e 100644 --- a/Content.Server/Medical/CryoPodSystem.cs +++ b/Content.Server/Medical/CryoPodSystem.cs @@ -207,6 +207,7 @@ private void OnActivateUI(Entity entity, ref AfterActivatableU : 0, null, null, + null, null )); } diff --git a/Content.Server/Medical/HealingSystem.cs b/Content.Server/Medical/HealingSystem.cs index e7362d481ed..c64bb2a485d 100644 --- a/Content.Server/Medical/HealingSystem.cs +++ b/Content.Server/Medical/HealingSystem.cs @@ -1,6 +1,7 @@ using Content.Server.Administration.Logs; using Content.Server.Body.Components; using Content.Server.Body.Systems; +using Content.Shared.Body.Part; using Content.Server.Chemistry.Containers.EntitySystems; using Content.Server.Medical.Components; using Content.Server.Popups; @@ -9,6 +10,8 @@ using Content.Shared.Damage; using Content.Shared.Database; using Content.Shared.DoAfter; +using Content.Shared.Targeting; +using Content.Shared.Body.Components; using Content.Shared.FixedPoint; using Content.Shared.Interaction; using Content.Shared.Interaction.Events; @@ -16,9 +19,11 @@ using Content.Shared.Mobs; using Content.Shared.Mobs.Components; using Content.Shared.Mobs.Systems; +using Content.Shared.Targeting; using Content.Shared.Stacks; using Robust.Shared.Audio.Systems; using Robust.Shared.Random; +using System.Linq; namespace Content.Server.Medical; @@ -27,6 +32,8 @@ public sealed class HealingSystem : EntitySystem [Dependency] private readonly SharedAudioSystem _audio = default!; [Dependency] private readonly IAdminLogManager _adminLogger = default!; [Dependency] private readonly DamageableSystem _damageable = default!; + + [Dependency] private readonly BodySystem _bodySystem = default!; [Dependency] private readonly BloodstreamSystem _bloodstreamSystem = default!; [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; [Dependency] private readonly IRobustRandom _random = default!; @@ -79,7 +86,7 @@ entity.Comp.DamageContainerID is not null && if (healing.ModifyBloodLevel != 0) _bloodstreamSystem.TryModifyBloodLevel(entity.Owner, healing.ModifyBloodLevel); - var healed = _damageable.TryChangeDamage(entity.Owner, healing.Damage, true, origin: args.Args.User); + var healed = _damageable.TryChangeDamage(entity.Owner, healing.Damage, true, origin: args.User, canSever: false); if (healed == null && healing.BloodlossModifier != 0) return; @@ -113,8 +120,8 @@ entity.Comp.DamageContainerID is not null && _audio.PlayPvs(healing.HealingEndSound, entity.Owner, AudioHelpers.WithVariation(0.125f, _random).WithVolume(-5f)); - // Logic to determine the whether or not to repeat the healing action - args.Repeat = (HasDamage(entity.Comp, healing) && !dontRepeat); + // Logic to determine whether or not to repeat the healing action + args.Repeat = HasDamage(entity.Comp, healing) && !dontRepeat || IsPartDamaged(args.User, entity); if (!args.Repeat && !dontRepeat) _popupSystem.PopupEntity(Loc.GetString("medical-item-finished-using", ("item", args.Used)), entity.Owner, args.User); args.Handled = true; @@ -135,6 +142,20 @@ private bool HasDamage(DamageableComponent component, HealingComponent healing) return false; } + private bool IsPartDamaged(EntityUid user, EntityUid target) + { + if (!TryComp(user, out TargetingComponent? targeting)) + return false; + + var (targetType, targetSymmetry) = _bodySystem.ConvertTargetBodyPart(targeting.Target); + foreach (var part in _bodySystem.GetBodyChildrenOfType(target, targetType, symmetry: targetSymmetry)) + if (TryComp(part.Id, out var damageable) + && damageable.TotalDamage > part.Component.MinIntegrity) + return true; + + return false; + } + private void OnHealingUse(Entity entity, ref UseInHandEvent args) { if (args.Handled) @@ -173,6 +194,7 @@ targetDamage.DamageContainerID is not null && var anythingToDo = HasDamage(targetDamage, component) || + IsPartDamaged(user, target) || component.ModifyBloodLevel > 0 // Special case if healing item can restore lost blood... && TryComp(target, out var bloodstream) && _solutionContainerSystem.ResolveSolution(target, bloodstream.BloodSolutionName, ref bloodstream.BloodSolution, out var bloodSolution) diff --git a/Content.Server/Medical/HealthAnalyzerSystem.cs b/Content.Server/Medical/HealthAnalyzerSystem.cs index 76d09c42f08..11d2758cdd8 100644 --- a/Content.Server/Medical/HealthAnalyzerSystem.cs +++ b/Content.Server/Medical/HealthAnalyzerSystem.cs @@ -5,6 +5,11 @@ using Content.Server.Temperature.Components; using Content.Server.Traits.Assorted; using Content.Shared.Chemistry.EntitySystems; +// Shitmed Start +using Content.Shared.Body.Part; +using Content.Shared.Body.Systems; +using Content.Shared.Targeting; +// Shitmed End using Content.Shared.Damage; using Content.Shared.DoAfter; using Content.Shared.Interaction; @@ -17,6 +22,7 @@ using Robust.Shared.Containers; using Robust.Shared.Player; using Robust.Shared.Timing; +using System.Linq; namespace Content.Server.Medical; @@ -26,6 +32,7 @@ public sealed class HealthAnalyzerSystem : EntitySystem [Dependency] private readonly PowerCellSystem _cell = default!; [Dependency] private readonly SharedAudioSystem _audio = default!; [Dependency] private readonly SharedDoAfterSystem _doAfterSystem = default!; + [Dependency] private readonly SharedBodySystem _bodySystem = default!; [Dependency] private readonly SolutionContainerSystem _solutionContainerSystem = default!; [Dependency] private readonly UserInterfaceSystem _uiSystem = default!; [Dependency] private readonly TransformSystem _transformSystem = default!; @@ -37,6 +44,12 @@ public override void Initialize() SubscribeLocalEvent(OnInsertedIntoContainer); SubscribeLocalEvent(OnPowerCellSlotEmpty); SubscribeLocalEvent(OnDropped); + // Start-Shitmed + Subs.BuiEvents(HealthAnalyzerUiKey.Key, subs => + { + subs.Event(OnHealthAnalyzerPartSelected); + }); + // End-Shitmed } public override void Update(float frameTime) @@ -57,6 +70,17 @@ public override void Update(float frameTime) continue; } + // Shitmed Change Start + if (component.CurrentBodyPart != null + && (Deleted(component.CurrentBodyPart) + || TryComp(component.CurrentBodyPart, out BodyPartComponent? bodyPartComponent) + && bodyPartComponent.Body is null)) + { + BeginAnalyzingEntity((uid, component), patient, null); + continue; + } + // Shitmed Change End + component.NextUpdate = _timing.CurTime + component.UpdateInterval; //Get distance between health analyzer and the scanned entity @@ -68,7 +92,7 @@ public override void Update(float frameTime) continue; } - UpdateScannedUser(uid, patient, true); + UpdateScannedUser(uid, patient, true, component.CurrentBodyPart); } } @@ -142,14 +166,14 @@ private void OpenUserInterface(EntityUid user, EntityUid analyzer) /// /// The health analyzer that should receive the updates /// The entity to start analyzing - private void BeginAnalyzingEntity(Entity healthAnalyzer, EntityUid target) + private void BeginAnalyzingEntity(Entity healthAnalyzer, EntityUid target, EntityUid? part = null) { //Link the health analyzer to the scanned entity healthAnalyzer.Comp.ScannedEntity = target; - + healthAnalyzer.Comp.CurrentBodyPart = part; _cell.SetPowerCellDrawEnabled(healthAnalyzer, true); - UpdateScannedUser(healthAnalyzer, target, true); + UpdateScannedUser(healthAnalyzer, target, true, part); } /// @@ -161,26 +185,50 @@ private void StopAnalyzingEntity(Entity healthAnalyzer, { //Unlink the analyzer healthAnalyzer.Comp.ScannedEntity = null; + healthAnalyzer.Comp.CurrentBodyPart = null; _cell.SetPowerCellDrawEnabled(target, false); UpdateScannedUser(healthAnalyzer, target, false); } + // Start-Shitmed + /// + /// Handle the selection of a body part on the health analyzer + /// + /// The health analyzer that's receiving the updates + /// The message containing the selected part + private void OnHealthAnalyzerPartSelected(Entity healthAnalyzer, ref HealthAnalyzerPartMessage args) + { + if (!TryGetEntity(args.Owner, out var owner)) + return; + + if (args.BodyPart == null) + { + BeginAnalyzingEntity(healthAnalyzer, owner.Value, null); + } + else + { + var (targetType, targetSymmetry) = _bodySystem.ConvertTargetBodyPart(args.BodyPart.Value); + if (_bodySystem.GetBodyChildrenOfType(owner.Value, targetType, symmetry: targetSymmetry) is { } part) + BeginAnalyzingEntity(healthAnalyzer, owner.Value, part.FirstOrDefault().Id); + } + } +// End-Shitmed + /// /// Send an update for the target to the healthAnalyzer /// /// The health analyzer /// The entity being scanned /// True makes the UI show ACTIVE, False makes the UI show INACTIVE - public void UpdateScannedUser(EntityUid healthAnalyzer, EntityUid target, bool scanMode) + public void UpdateScannedUser(EntityUid healthAnalyzer, EntityUid target, bool scanMode, EntityUid? part = null) { if (!_uiSystem.HasUi(healthAnalyzer, HealthAnalyzerUiKey.Key)) return; if (!HasComp(target)) return; - var bodyTemperature = float.NaN; if (TryComp(target, out var temp)) @@ -201,13 +249,22 @@ public void UpdateScannedUser(EntityUid healthAnalyzer, EntityUid target, bool s /*if (HasComp(target)) Somehow we dont have unrevivable??? unrevivable = true; */ + + // Start-Shitmed + Dictionary? body = null; + if (HasComp(target)) + body = _bodySystem.GetBodyPartStatus(target); + // End-Shitmed + _uiSystem.ServerSendUiMessage(healthAnalyzer, HealthAnalyzerUiKey.Key, new HealthAnalyzerScannedUserMessage( GetNetEntity(target), bodyTemperature, bloodAmount, scanMode, bleeding, - unrevivable + unrevivable, + body, // Shitmed + part != null ? GetNetEntity(part) : null // Shitmed )); } } diff --git a/Content.Server/Medical/Surgery/SurgerySystem.cs b/Content.Server/Medical/Surgery/SurgerySystem.cs new file mode 100644 index 00000000000..8d666d178ad --- /dev/null +++ b/Content.Server/Medical/Surgery/SurgerySystem.cs @@ -0,0 +1,181 @@ +using Content.Server.Atmos.Rotting; +using Content.Server.Body.Systems; +using Content.Server.Chat.Systems; +using Content.Shared.Body.Organ; +using Content.Shared.Body.Part; +using Content.Server.Popups; +using Content.Shared.Bed.Sleep; +using Content.Shared.CCVar; +using Content.Shared.Damage; +using Content.Shared.Eye.Blinding.Components; +using Content.Shared.Eye.Blinding.Systems; +using Content.Shared.Interaction; +using Content.Shared.Inventory; +using Content.Shared.Medical.Surgery; +using Content.Shared.Medical.Surgery.Conditions; +using Content.Shared.Medical.Surgery.Effects.Step; +using Content.Shared.Medical.Surgery.Steps; +using Content.Shared.Medical.Surgery.Steps.Parts; +using Content.Shared.Medical.Surgery.Tools; +using Content.Shared.Mood; +using Content.Shared.Prototypes; +using Robust.Server.GameObjects; +using Robust.Shared.Configuration; +using Robust.Shared.Player; +using Robust.Shared.Prototypes; +using Robust.Shared.Utility; +using System.Linq; + +namespace Content.Server.Medical.Surgery; + +public sealed class SurgerySystem : SharedSurgerySystem +{ + [Dependency] private readonly BodySystem _body = default!; + [Dependency] private readonly ChatSystem _chat = default!; + [Dependency] private readonly IConfigurationManager _config = default!; + [Dependency] private readonly DamageableSystem _damageable = default!; + [Dependency] private readonly IPrototypeManager _prototypes = default!; + [Dependency] private readonly PopupSystem _popup = default!; + [Dependency] private readonly UserInterfaceSystem _ui = default!; + [Dependency] private readonly RottingSystem _rot = default!; + [Dependency] private readonly BlindableSystem _blindableSystem = default!; + + private readonly List _surgeries = new(); + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnToolAfterInteract); + SubscribeLocalEvent(OnSurgeryStepDamage); + // You might be wondering "why aren't we using StepEvent for these two?" reason being that StepEvent fires off regardless of success on the previous functions + // so this would heal entities even if you had a used or incorrect organ. + SubscribeLocalEvent(OnSurgerySpecialDamageChange); + SubscribeLocalEvent(OnSurgeryDamageChange); + SubscribeLocalEvent(OnStepScreamComplete); + SubscribeLocalEvent(OnStepSpawnComplete); + SubscribeLocalEvent(OnPrototypesReloaded); + LoadPrototypes(); + } + + protected override void RefreshUI(EntityUid body) + { + var surgeries = new Dictionary>(); + foreach (var surgery in _surgeries) + { + if (GetSingleton(surgery) is not { } surgeryEnt) + continue; + + foreach (var part in _body.GetBodyChildren(body)) + { + var ev = new SurgeryValidEvent(body, part.Id); + RaiseLocalEvent(surgeryEnt, ref ev); + + if (ev.Cancelled) + continue; + + surgeries.GetOrNew(GetNetEntity(part.Id)).Add(surgery); + } + + } + _ui.SetUiState(body, SurgeryUIKey.Key, new SurgeryBuiState(surgeries)); + /* + Reason we do this is because when applying a BUI State, it rolls back the state on the entity temporarily, + which just so happens to occur right as we're checking for step completion, so we end up with the UI + not updating at all until you change tools or reopen the window. I love shitcode. + */ + _ui.ServerSendUiMessage(body, SurgeryUIKey.Key, new SurgeryBuiRefreshMessage()); + } + private void SetDamage(EntityUid body, + DamageSpecifier damage, + float partMultiplier, + EntityUid user, + EntityUid part) + { + if (!TryComp(part, out var partComp)) + return; + + _damageable.TryChangeDamage(body, + damage, + true, + origin: user, + canSever: false, + partMultiplier: partMultiplier, + targetPart: _body.GetTargetBodyPart(partComp)); + } + + private void OnToolAfterInteract(Entity ent, ref AfterInteractEvent args) + { + var user = args.User; + if (args.Handled + || !args.CanReach + || args.Target == null + || !HasComp(args.Target) + || !TryComp(args.User, out var surgery) + || !surgery.CanOperate + || !IsLyingDown(args.Target.Value, args.User)) + { + return; + } + + if (user == args.Target && !_config.GetCVar(CCVars.CanOperateOnSelf)) + { + _popup.PopupEntity(Loc.GetString("surgery-error-self-surgery"), user, user); + return; + } + + args.Handled = true; + _ui.OpenUi(args.Target.Value, SurgeryUIKey.Key, user); + RefreshUI(args.Target.Value); + } + + private void OnSurgeryStepDamage(Entity ent, ref SurgeryStepDamageEvent args) => + SetDamage(args.Body, args.Damage, args.PartMultiplier, args.User, args.Part); + + private void OnSurgerySpecialDamageChange(Entity ent, ref SurgeryStepDamageChangeEvent args) + { + // Im killing this shit soon as well. + if (ent.Comp.DamageType == "Rot") + _rot.ReduceAccumulator(args.Body, TimeSpan.FromSeconds(2147483648)); // BEHOLD, SHITCODE THAT I JUST COPY PASTED. I'll redo it at some point, pinky swear :) + + /*else if (ent.Comp.DamageType == "Eye" + && TryComp(ent, out BlindableComponent? blindComp) + && blindComp.EyeDamage > 0) + _blindableSystem.AdjustEyeDamage((args.Body, blindComp), -blindComp!.EyeDamage);*/ + } + + private void OnSurgeryDamageChange(Entity ent, ref SurgeryStepDamageChangeEvent args) + { + var damageChange = ent.Comp.Damage; + if (HasComp(args.Body)) + damageChange = damageChange * ent.Comp.SleepModifier; + + SetDamage(args.Body, damageChange, 0.5f, args.User, args.Part); + } + + private void OnStepScreamComplete(Entity ent, ref SurgeryStepEvent args) + { + if (HasComp(args.Body)) + return; + + _chat.TryEmoteWithChat(args.Body, ent.Comp.Emote); + } + private void OnStepSpawnComplete(Entity ent, ref SurgeryStepEvent args) => + SpawnAtPosition(ent.Comp.Entity, Transform(args.Body).Coordinates); + + private void OnPrototypesReloaded(PrototypesReloadedEventArgs args) + { + if (!args.WasModified()) + return; + + LoadPrototypes(); + } + + private void LoadPrototypes() + { + _surgeries.Clear(); + foreach (var entity in _prototypes.EnumeratePrototypes()) + if (entity.HasComponent()) + _surgeries.Add(new EntProtoId(entity.ID)); + } +} diff --git a/Content.Server/Mood/MoodComponent.cs b/Content.Server/Mood/MoodComponent.cs index 7fd4a7136f3..caa221fe18e 100644 --- a/Content.Server/Mood/MoodComponent.cs +++ b/Content.Server/Mood/MoodComponent.cs @@ -1,5 +1,6 @@ using Content.Shared.Alert; using Content.Shared.FixedPoint; +using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Generic; namespace Content.Server.Mood; @@ -50,6 +51,9 @@ public sealed partial class MoodComponent : Component [ViewVariables(VVAccess.ReadOnly)] public FixedPoint2 CritThresholdBeforeModify; + [DataField] + public ProtoId MoodCategory = "Mood"; + [DataField(customTypeSerializer: typeof(DictionarySerializer))] public Dictionary MoodThresholds = new() { @@ -65,20 +69,20 @@ public sealed partial class MoodComponent : Component { MoodThreshold.Dead, 0f } }; - [DataField(customTypeSerializer: typeof(DictionarySerializer))] - public Dictionary MoodThresholdsAlerts = new() + [DataField(customTypeSerializer: typeof(DictionarySerializer>))] + public Dictionary> MoodThresholdsAlerts = new() { - { MoodThreshold.Dead, AlertType.MoodDead }, - { MoodThreshold.Horrible, AlertType.Horrible }, - { MoodThreshold.Terrible, AlertType.Terrible }, - { MoodThreshold.Bad, AlertType.Bad }, - { MoodThreshold.Meh, AlertType.Meh }, - { MoodThreshold.Neutral, AlertType.Neutral }, - { MoodThreshold.Good, AlertType.Good }, - { MoodThreshold.Great, AlertType.Great }, - { MoodThreshold.Exceptional, AlertType.Exceptional }, - { MoodThreshold.Perfect, AlertType.Perfect }, - { MoodThreshold.Insane, AlertType.Insane } + { MoodThreshold.Dead, "MoodDead" }, + { MoodThreshold.Horrible, "Horrible" }, + { MoodThreshold.Terrible, "Terrible" }, + { MoodThreshold.Bad, "Bad" }, + { MoodThreshold.Meh, "Meh" }, + { MoodThreshold.Neutral, "Neutral" }, + { MoodThreshold.Good, "Good" }, + { MoodThreshold.Great, "Great" }, + { MoodThreshold.Exceptional, "Exceptional" }, + { MoodThreshold.Perfect, "Perfect" }, + { MoodThreshold.Insane, "Insane" } }; /// diff --git a/Content.Server/Mood/MoodSystem.cs b/Content.Server/Mood/MoodSystem.cs index 4ec4709ea7a..44a93217cfa 100644 --- a/Content.Server/Mood/MoodSystem.cs +++ b/Content.Server/Mood/MoodSystem.cs @@ -32,15 +32,6 @@ public sealed class MoodSystem : EntitySystem [Dependency] private readonly PopupSystem _popup = default!; [Dependency] private readonly IConfigurationManager _config = default!; -#if RELEASE - // Disable Mood for tests, because of a stupid race condition where if it spawns an Urist McHarpy, - // the Harpy will choke during the test, creating a mood alert. - // And then cause a debug assert. - private bool _debugMode; -#else - private bool _debugMode = true; -#endif - public override void Initialize() { @@ -55,14 +46,12 @@ public override void Initialize() SubscribeLocalEvent(OnRemoveEffect); } - private void OnShutdown(EntityUid uid, MoodComponent component, ComponentShutdown args) - { - _alerts.ClearAlertCategory(uid, AlertCategory.Mood); - } + private void OnShutdown(EntityUid uid, MoodComponent component, ComponentShutdown args) => + _alerts.ClearAlertCategory(uid, component.MoodCategory); private void OnRemoveEffect(EntityUid uid, MoodComponent component, MoodRemoveEffectEvent args) { - if (_debugMode) + if (!_config.GetCVar(CCVars.MoodEnabled)) return; if (component.UncategorisedEffects.TryGetValue(args.EffectId, out _)) @@ -78,7 +67,7 @@ private void OnRemoveEffect(EntityUid uid, MoodComponent component, MoodRemoveEf private void OnRefreshMoveSpeed(EntityUid uid, MoodComponent component, RefreshMovementSpeedModifiersEvent args) { - if (_debugMode + if (!_config.GetCVar(CCVars.MoodEnabled) || component.CurrentMoodThreshold is > MoodThreshold.Meh and < MoodThreshold.Good or MoodThreshold.Dead || _jetpack.IsUserFlying(uid)) return; @@ -101,7 +90,7 @@ private void OnRefreshMoveSpeed(EntityUid uid, MoodComponent component, RefreshM private void OnMoodEffect(EntityUid uid, MoodComponent component, MoodEffectEvent args) { - if (_debugMode + if (!_config.GetCVar(CCVars.MoodEnabled) || !_config.GetCVar(CCVars.MoodEnabled) || !_prototypeManager.TryIndex(args.EffectId, out var prototype) ) return; @@ -210,7 +199,7 @@ private void ReplaceMood(EntityUid uid, string prototypeId) private void OnMobStateChanged(EntityUid uid, MoodComponent component, MobStateChangedEvent args) { - if (_debugMode) + if (!_config.GetCVar(CCVars.MoodEnabled)) return; if (args.NewMobState == MobState.Dead && args.OldMobState != MobState.Dead) @@ -249,7 +238,7 @@ private void RefreshMood(EntityUid uid, MoodComponent component) private void OnInit(EntityUid uid, MoodComponent component, ComponentStartup args) { - if (_debugMode) + if (!_config.GetCVar(CCVars.MoodEnabled)) return; if (_config.GetCVar(CCVars.MoodModifiesThresholds) @@ -274,15 +263,14 @@ private void SetMood(EntityUid uid, float amount, MoodComponent? component = nul if (ev.Cancelled) return; - else - { - uid = ev.Receiver; - amount = ev.MoodChangedAmount; - } + + uid = ev.Receiver; + amount = ev.MoodChangedAmount; var newMoodLevel = amount + neutral; if (!force) - newMoodLevel = Math.Clamp(amount + neutral, + newMoodLevel = Math.Clamp( + amount + neutral, component.MoodThresholds[MoodThreshold.Dead], component.MoodThresholds[MoodThreshold.Perfect]); @@ -331,7 +319,7 @@ private void DoMoodThresholdsEffects(EntityUid uid, MoodComponent? component = n if (component.MoodThresholdsAlerts.TryGetValue(component.CurrentMoodThreshold, out var alertId)) _alerts.ShowAlert(uid, alertId); else - _alerts.ClearAlertCategory(uid, AlertCategory.Mood); + _alerts.ClearAlertCategory(uid, component.MoodCategory); component.LastThreshold = component.CurrentMoodThreshold; } @@ -355,7 +343,7 @@ private void SetCritThreshold(EntityUid uid, MoodComponent component, int modifi { 1 => FixedPoint2.New(key.Value.Float() * component.IncreaseCritThreshold), -1 => FixedPoint2.New(key.Value.Float() * component.DecreaseCritThreshold), - _ => component.CritThresholdBeforeModify + _ => component.CritThresholdBeforeModify, }; component.CritThresholdBeforeModify = key.Value; @@ -378,15 +366,13 @@ private MoodThreshold GetMoodThreshold(MoodComponent component, float? moodLevel return result; } - private int GetMovementThreshold(MoodThreshold threshold) - { - return threshold switch + private int GetMovementThreshold(MoodThreshold threshold) => + threshold switch { >= MoodThreshold.Good => 1, <= MoodThreshold.Meh => -1, - _ => 0 + _ => 0, }; - } private void OnDamageChange(EntityUid uid, MoodComponent component, DamageChangedEvent args) { @@ -408,8 +394,7 @@ private void OnDamageChange(EntityUid uid, MoodComponent component, DamageChange } } -[UsedImplicitly] -[DataDefinition] +[UsedImplicitly, DataDefinition] public sealed partial class ShowMoodEffects : IAlertClick { public void AlertClicked(EntityUid uid) @@ -421,8 +406,7 @@ public void AlertClicked(EntityUid uid) if (!entityManager.TryGetComponent(uid, out var comp) || comp.CurrentMoodThreshold == MoodThreshold.Dead - || !playerManager.TryGetSessionByEntity(uid, out var session) - || session == null) + || !playerManager.TryGetSessionByEntity(uid, out var session)) return; var msgStart = Loc.GetString("mood-show-effects-start"); @@ -450,15 +434,17 @@ public void AlertClicked(EntityUid uid) private void SendDescToChat(MoodEffectPrototype proto, ICommonSession session) { - if (session == null) - return; - var chatManager = IoCManager.Resolve(); var color = (proto.MoodChange > 0) ? "#008000" : "#BA0000"; var msg = $"[font size=10][color={color}]{proto.Description}[/color][/font]"; - chatManager.ChatMessageToOne(ChatChannel.Emotes, msg, msg, EntityUid.Invalid, false, + chatManager.ChatMessageToOne( + ChatChannel.Emotes, + msg, + msg, + EntityUid.Invalid, + false, session.Channel); } } diff --git a/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Combat/UnbuckleOperator.cs b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Combat/UnbuckleOperator.cs index 207665d786f..116e8fe7c7f 100644 --- a/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Combat/UnbuckleOperator.cs +++ b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Combat/UnbuckleOperator.cs @@ -1,11 +1,9 @@ using Content.Server.Buckle.Systems; -using Content.Shared.Buckle.Components; namespace Content.Server.NPC.HTN.PrimitiveTasks.Operators.Combat; public sealed partial class UnbuckleOperator : HTNOperator { - [Dependency] private readonly IEntityManager _entManager = default!; private BuckleSystem _buckle = default!; [DataField("shutdownState")] @@ -21,10 +19,7 @@ public override void Startup(NPCBlackboard blackboard) { base.Startup(blackboard); var owner = blackboard.GetValue(NPCBlackboard.Owner); - if (!_entManager.TryGetComponent(owner, out var buckle) || !buckle.Buckled) - return; - - _buckle.TryUnbuckle(owner, owner, true, buckle); + _buckle.Unbuckle(owner, null); } public override HTNOperatorStatus Update(NPCBlackboard blackboard, float frameTime) diff --git a/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Specific/MedibotInjectOperator.cs b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Specific/MedibotInjectOperator.cs index 467da4739b7..c79e6bdaec5 100644 --- a/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Specific/MedibotInjectOperator.cs +++ b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Specific/MedibotInjectOperator.cs @@ -7,6 +7,7 @@ using Content.Shared.Interaction; using Content.Shared.Mobs.Components; using Content.Shared.Popups; +using Content.Shared.Silicon.Components; using Content.Shared.Silicons.Bots; using Robust.Shared.Audio.Systems; @@ -53,9 +54,11 @@ public override HTNOperatorStatus Update(NPCBlackboard blackboard, float frameTi if (!blackboard.TryGetValue(TargetKey, out var target, _entMan) || _entMan.Deleted(target)) return HTNOperatorStatus.Failed; - if (!_entMan.TryGetComponent(owner, out var botComp)) + if (_entMan.HasComponent(target)) return HTNOperatorStatus.Failed; + if (!_entMan.TryGetComponent(owner, out var botComp)) + return HTNOperatorStatus.Failed; if (!_entMan.TryGetComponent(target, out var damage)) return HTNOperatorStatus.Failed; diff --git a/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Specific/PickNearbyInjectableOperator.cs b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Specific/PickNearbyInjectableOperator.cs index a71091ad97d..12ab23a25f5 100644 --- a/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Specific/PickNearbyInjectableOperator.cs +++ b/Content.Server/NPC/HTN/PrimitiveTasks/Operators/Specific/PickNearbyInjectableOperator.cs @@ -8,6 +8,8 @@ using Content.Shared.Mobs.Components; using Content.Shared.Silicons.Bots; using Content.Shared.Emag.Components; +using Content.Shared.Silicon.Components; + namespace Content.Server.NPC.HTN.PrimitiveTasks.Operators.Specific; @@ -64,6 +66,9 @@ public override void Initialize(IEntitySystemManager sysManager) damageQuery.TryGetComponent(entity, out var damage) && !recentlyInjected.HasComponent(entity)) { + if (_entManager.HasComponent(entity)) + continue; + // no treating dead bodies if (!_medibot.TryGetTreatment(medibot, state.CurrentState, out var treatment)) continue; diff --git a/Content.Server/NPC/Systems/NPCJukeSystem.cs b/Content.Server/NPC/Systems/NPCJukeSystem.cs index 5a724762ef6..d55a0895d30 100644 --- a/Content.Server/NPC/Systems/NPCJukeSystem.cs +++ b/Content.Server/NPC/Systems/NPCJukeSystem.cs @@ -22,6 +22,7 @@ public sealed class NPCJukeSystem : EntitySystem [Dependency] private readonly EntityLookupSystem _lookup = default!; [Dependency] private readonly MeleeWeaponSystem _melee = default!; [Dependency] private readonly SharedTransformSystem _transform = default!; + [Dependency] private readonly SharedMapSystem _map = default!; private EntityQuery _npcMeleeQuery; private EntityQuery _npcRangedQuery; @@ -49,6 +50,9 @@ private void OnJukeSteering(EntityUid uid, NPCJukeComponent component, ref NPCSt if (component.JukeType == JukeType.AdjacentTile) { + if (args.Transform.GridUid == null) + return; + if (_npcRangedQuery.TryGetComponent(uid, out var ranged) && ranged.Status is CombatStatus.NotInSight || !TryComp(args.Transform.GridUid, out var grid)) @@ -57,7 +61,7 @@ private void OnJukeSteering(EntityUid uid, NPCJukeComponent component, ref NPCSt return; } - var currentTile = grid.CoordinatesToTile(args.Transform.Coordinates); + var currentTile = _map.CoordinatesToTile((EntityUid) args.Transform.GridUid, grid, args.Transform.Coordinates); if (component.TargetTile == null) { @@ -113,8 +117,8 @@ private void OnJukeSteering(EntityUid uid, NPCJukeComponent component, ref NPCSt return; } - var targetCoords = grid.GridTileToWorld(component.TargetTile.Value); - var targetDir = (targetCoords.Position - args.WorldPosition); + var targetCoords = _map.GridTileToWorld((EntityUid) args.Transform.GridUid, grid, component.TargetTile.Value); + var targetDir = targetCoords.Position - args.WorldPosition; targetDir = args.OffsetRotation.RotateVec(targetDir); const float weight = 1f; var norm = targetDir.Normalized(); diff --git a/Content.Server/NPC/Systems/NPCSteeringSystem.Obstacles.cs b/Content.Server/NPC/Systems/NPCSteeringSystem.Obstacles.cs index 3bc4eae9e49..60408e9a4cb 100644 --- a/Content.Server/NPC/Systems/NPCSteeringSystem.Obstacles.cs +++ b/Content.Server/NPC/Systems/NPCSteeringSystem.Obstacles.cs @@ -207,7 +207,7 @@ private void GetObstacleEntities(PathPoly poly, int mask, int layer, List _fixturesQuery; private EntityQuery _modifierQuery; diff --git a/Content.Server/NPC/Systems/NPCUtilitySystem.cs b/Content.Server/NPC/Systems/NPCUtilitySystem.cs index 8650c1343a6..5075e037eac 100644 --- a/Content.Server/NPC/Systems/NPCUtilitySystem.cs +++ b/Content.Server/NPC/Systems/NPCUtilitySystem.cs @@ -18,6 +18,7 @@ using Content.Shared.Weapons.Melee; using Content.Shared.Weapons.Ranged.Components; using Content.Shared.Weapons.Ranged.Events; +using Content.Shared.Whitelist; using Microsoft.Extensions.ObjectPool; using Robust.Server.Containers; using Robust.Shared.Prototypes; @@ -45,6 +46,7 @@ public sealed class NPCUtilitySystem : EntitySystem [Dependency] private readonly SolutionContainerSystem _solutions = default!; [Dependency] private readonly WeldableSystem _weldable = default!; [Dependency] private readonly ExamineSystemShared _examine = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; private EntityQuery _puddleQuery; private EntityQuery _xformQuery; @@ -248,7 +250,7 @@ private float GetScore(NPCBlackboard blackboard, EntityUid targetUid, UtilityCon return 0f; } - if (heldGun.Whitelist?.IsValid(targetUid, EntityManager) != true) + if (_whitelistSystem.IsWhitelistFailOrNull(heldGun.Whitelist, targetUid)) { return 0f; } diff --git a/Content.Server/NameIdentifier/NameIdentifierSystem.cs b/Content.Server/NameIdentifier/NameIdentifierSystem.cs index 87953d518b3..eefd4357cb3 100644 --- a/Content.Server/NameIdentifier/NameIdentifierSystem.cs +++ b/Content.Server/NameIdentifier/NameIdentifierSystem.cs @@ -113,7 +113,7 @@ private void OnMapInit(EntityUid uid, NameIdentifierComponent component, MapInit _metaData.SetEntityName(uid, group.FullName ? uniqueName : $"{meta.EntityName} ({uniqueName})", meta); - Dirty(component); + Dirty(uid, component); } private void InitialSetupPrototypes() diff --git a/Content.Server/Ninja/Systems/SpaceNinjaSystem.cs b/Content.Server/Ninja/Systems/SpaceNinjaSystem.cs index 1dfaf4f3393..0c1e88653fa 100644 --- a/Content.Server/Ninja/Systems/SpaceNinjaSystem.cs +++ b/Content.Server/Ninja/Systems/SpaceNinjaSystem.cs @@ -102,20 +102,23 @@ private int Download(EntityUid uid, List ids) /// public void SetSuitPowerAlert(EntityUid uid, SpaceNinjaComponent? comp = null) { - if (!Resolve(uid, ref comp, false) || comp.Deleted || comp.Suit == null) + if (!Resolve(uid, ref comp, false)) + return; + + if (comp.Deleted || comp.Suit == null) { - _alerts.ClearAlert(uid, AlertType.SuitPower); + _alerts.ClearAlert(uid, comp.SuitPowerAlert); return; } if (GetNinjaBattery(uid, out _, out var battery)) { var severity = ContentHelpers.RoundToLevels(MathF.Max(0f, battery.CurrentCharge), battery.MaxCharge, 8); - _alerts.ShowAlert(uid, AlertType.SuitPower, (short) severity); + _alerts.ShowAlert(uid, comp.SuitPowerAlert, (short) severity); } else { - _alerts.ClearAlert(uid, AlertType.SuitPower); + _alerts.ClearAlert(uid, comp.SuitPowerAlert); } } diff --git a/Content.Server/Nutrition/EntitySystems/FoodGuideDataSystem.cs b/Content.Server/Nutrition/EntitySystems/FoodGuideDataSystem.cs index f21c509ace2..56ade987629 100644 --- a/Content.Server/Nutrition/EntitySystems/FoodGuideDataSystem.cs +++ b/Content.Server/Nutrition/EntitySystems/FoodGuideDataSystem.cs @@ -27,14 +27,15 @@ public sealed class FoodGuideDataSystem : SharedFoodGuideDataSystem "Water" ]; - public static readonly string[] ComponentNamesBlacklist = ["HumanoidAppearance"]; + public static readonly string[] ComponentNamesBlacklist = ["HumanoidAppearance",]; - public static readonly string[] SuffixBlacklist = ["debug", "do not map", "admeme"]; + public static readonly string[] SuffixBlacklist = ["debug", "do not map", "admeme",]; [Dependency] private readonly IPlayerManager _player = default!; [Dependency] private readonly IPrototypeManager _protoMan = default!; + [Dependency] private readonly IComponentFactory _componentFactory = default!; - private Dictionary> _sources = new(); + private readonly Dictionary> _sources = new(); public override void Initialize() { @@ -69,7 +70,7 @@ public void ReloadRecipes() ) continue; - if (ent.TryGetComponent(out var butcherable)) + if (ent.TryGetComponent(out var butcherable, _componentFactory)) { var butcheringSource = new FoodButcheringData(ent, butcherable); foreach (var butchlet in butcherable.SpawnedEntities) @@ -81,9 +82,9 @@ public void ReloadRecipes() } } - if (ent.TryGetComponent(out var slicable) && slicable.Slice is not null) + if (ent.TryGetComponent(out var sliceable, _componentFactory) && sliceable.Slice is not null) { - _sources.GetOrNew(slicable.Slice).Add(new FoodSlicingData(ent, slicable.Slice.Value, slicable.TotalCount)); + _sources.GetOrNew(sliceable.Slice).Add(new FoodSlicingData(ent, sliceable.Slice.Value, sliceable.TotalCount)); } } @@ -110,13 +111,13 @@ public void ReloadRecipes() foreach (var (result, sources) in _sources) { var proto = _protoMan.Index(result); - var composition = proto.TryGetComponent(out var food) && proto.TryGetComponent(out var manager) + var composition = proto.TryGetComponent(out var food, _componentFactory) && proto.TryGetComponent(out var manager) ? manager?.Solutions?[food.Solution]?.Contents?.ToArray() ?? [] : []; // We filter out food without whitelisted reagents because well when people look for food they usually expect FOOD and not insulated gloves. // And we get insulated and other gloves because they have ButcherableComponent and they are also moth food - if (!composition.Any(it => ReagentWhitelist.Contains(it.Reagent.Prototype))) + if (!composition.Any(it => ReagentWhitelist.Contains>(it.Reagent.Prototype))) continue; // We also limit the number of sources to 10 because it's a huge performance strain to render 500 raw meat recipes. diff --git a/Content.Server/Nutrition/EntitySystems/SmokingSystem.Cigar.cs b/Content.Server/Nutrition/EntitySystems/SmokingSystem.Cigar.cs index 4e672444d18..510b9552a3d 100644 --- a/Content.Server/Nutrition/EntitySystems/SmokingSystem.Cigar.cs +++ b/Content.Server/Nutrition/EntitySystems/SmokingSystem.Cigar.cs @@ -18,7 +18,7 @@ private void InitializeCigars() private void OnCigarActivatedEvent(Entity entity, ref ActivateInWorldEvent args) { - if (args.Handled) + if (args.Handled || !args.Complex) return; if (!EntityManager.TryGetComponent(entity, out SmokableComponent? smokable)) diff --git a/Content.Server/Nyanotrasen/Abilities/Felinid/FelinidSystem.cs b/Content.Server/Nyanotrasen/Abilities/Felinid/FelinidSystem.cs index b79b9a1bec4..87a781f5b9f 100644 --- a/Content.Server/Nyanotrasen/Abilities/Felinid/FelinidSystem.cs +++ b/Content.Server/Nyanotrasen/Abilities/Felinid/FelinidSystem.cs @@ -130,7 +130,11 @@ private void OnEatMouse(EntityUid uid, FelinidComponent component, EatMouseActio if (hunger.CurrentThreshold == Shared.Nutrition.Components.HungerThreshold.Overfed) { - _popupSystem.PopupEntity(Loc.GetString("food-system-you-cannot-eat-any-more"), uid, uid, Shared.Popups.PopupType.SmallCaution); + _popupSystem.PopupEntity( + Loc.GetString("food-system-you-cannot-eat-any-more"), + uid, + uid, + Shared.Popups.PopupType.SmallCaution); return; } @@ -147,6 +151,7 @@ private void OnEatMouse(EntityUid uid, FelinidComponent component, EatMouseActio _actionsSystem.SetCharges(component.HairballAction, 1); // You get the charge back and that's it. Tough. _actionsSystem.SetEnabled(component.HairballAction, true); } + Del(component.EatActionTarget.Value); component.EatActionTarget = null; @@ -154,8 +159,12 @@ private void OnEatMouse(EntityUid uid, FelinidComponent component, EatMouseActio _hungerSystem.ModifyHunger(uid, 50f, hunger); - if (component.EatAction != null) + if (component.EatAction is not null && _actionsSystem.TryGetActionData(uid, out var result)) + { + if (result.AttachedEntity == null) + return; _actionsSystem.RemoveAction(uid, component.EatAction.Value); + } } private void SpawnHairball(EntityUid uid, FelinidComponent component) diff --git a/Content.Server/Nyanotrasen/Abilities/Oni/OniSystem.cs b/Content.Server/Nyanotrasen/Abilities/Oni/OniSystem.cs index 4fc078e85bc..a7e2295b751 100644 --- a/Content.Server/Nyanotrasen/Abilities/Oni/OniSystem.cs +++ b/Content.Server/Nyanotrasen/Abilities/Oni/OniSystem.cs @@ -3,6 +3,7 @@ using Content.Shared.Tools.Components; using Content.Shared.Damage.Events; using Content.Shared.Nyanotrasen.Abilities.Oni; +using Content.Shared.Weapons.Melee; using Content.Shared.Weapons.Melee.Events; using Content.Shared.Weapons.Ranged.Components; using Robust.Shared.Containers; @@ -19,8 +20,7 @@ public override void Initialize() base.Initialize(); SubscribeLocalEvent(OnEntInserted); SubscribeLocalEvent(OnEntRemoved); - SubscribeLocalEvent(OnOniMeleeHit); - SubscribeLocalEvent(OnHeldMeleeHit); + SubscribeLocalEvent(OnGetMeleeDamage); SubscribeLocalEvent(OnStamHit); } @@ -55,17 +55,12 @@ private void OnEntRemoved(EntityUid uid, OniComponent component, EntRemovedFromC RemComp(args.Entity); } - private void OnOniMeleeHit(EntityUid uid, OniComponent component, MeleeHitEvent args) + private void OnGetMeleeDamage(EntityUid uid, MeleeWeaponComponent component, ref GetMeleeDamageEvent args) { - args.ModifiersList.Add(component.MeleeModifiers); - } - - private void OnHeldMeleeHit(EntityUid uid, HeldByOniComponent component, MeleeHitEvent args) - { - if (!TryComp(component.Holder, out var oni)) + if (!TryComp(args.User, out var oni)) return; - args.ModifiersList.Add(oni.MeleeModifiers); + args.Modifiers.Add(oni.MeleeModifiers); } private void OnStamHit(EntityUid uid, HeldByOniComponent component, TakeStaminaDamageEvent args) diff --git a/Content.Server/Nyanotrasen/Chemistry/Effects/ChemRemovePsionic.cs b/Content.Server/Nyanotrasen/Chemistry/Effects/ChemRemovePsionic.cs index 859f22cd4a9..e500e246d5b 100644 --- a/Content.Server/Nyanotrasen/Chemistry/Effects/ChemRemovePsionic.cs +++ b/Content.Server/Nyanotrasen/Chemistry/Effects/ChemRemovePsionic.cs @@ -21,7 +21,7 @@ public override void Effect(ReagentEffectArgs args) var psySys = args.EntityManager.EntitySysManager.GetEntitySystem(); - psySys.RemoveAllPsionicPowers(args.SolutionEntity, true); + psySys.MindBreak(args.SolutionEntity); } } } diff --git a/Content.Server/Nyanotrasen/Construction/Commands/TileWindowsCommand.cs b/Content.Server/Nyanotrasen/Construction/Commands/TileWindowsCommand.cs index 9eef7292eaa..4e03ee059a0 100644 --- a/Content.Server/Nyanotrasen/Construction/Commands/TileWindowsCommand.cs +++ b/Content.Server/Nyanotrasen/Construction/Commands/TileWindowsCommand.cs @@ -5,7 +5,9 @@ using Robust.Server.Player; using Robust.Shared.Console; using Robust.Shared.Map; +using Robust.Shared.Map.Components; using Robust.Shared.Maths; +using Robust.Shared.Physics; using Robust.Shared.Player; namespace Content.Server.Construction.Commands @@ -24,8 +26,11 @@ sealed class TileWindowsCommand : IConsoleCommand public void Execute(IConsoleShell shell, string argStr, string[] args) { - var player = shell.Player as ICommonSession; + var player = shell.Player; var entityManager = IoCManager.Resolve(); + var lookup = IoCManager.Resolve(); + var mapSystem = IoCManager.Resolve(); + EntityUid? gridId; switch (args.Length) @@ -53,8 +58,7 @@ public void Execute(IConsoleShell shell, string argStr, string[] args) return; } - var mapManager = IoCManager.Resolve(); - if (!mapManager.TryGetGrid(gridId, out var grid)) + if (!entityManager.TryGetComponent(gridId, out var grid)) { shell.WriteLine($"No grid exists with id {gridId}"); return; @@ -70,8 +74,12 @@ public void Execute(IConsoleShell shell, string argStr, string[] args) var tagSystem = entityManager.EntitySysManager.GetEntitySystem(); var underplating = tileDefinitionManager[TilePrototypeId]; var underplatingTile = new Tile(underplating.TileId); + var childEntities = new HashSet>(); var changed = 0; - foreach (var child in entityManager.GetComponent(grid.Owner).ChildEntities) + + lookup.GetChildEntities(grid.Owner, childEntities); + + foreach (var child in childEntities) { if (!entityManager.EntityExists(child)) { @@ -95,7 +103,7 @@ public void Execute(IConsoleShell shell, string argStr, string[] args) continue; } - var tile = grid.GetTileRef(childTransform.Coordinates); + var tile = mapSystem.GetTileRef((EntityUid) gridId, grid, childTransform.Coordinates); var tileDef = (ContentTileDefinition) tileDefinitionManager[tile.Tile.TypeId]; if (tileDef.ID == TilePrototypeId) @@ -103,7 +111,7 @@ public void Execute(IConsoleShell shell, string argStr, string[] args) continue; } - grid.SetTile(childTransform.Coordinates, underplatingTile); + mapSystem.SetTile((EntityUid) gridId, grid, childTransform.Coordinates, underplatingTile); changed++; } diff --git a/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.cs b/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.cs index dc182c1edfa..8bfb4aec8cc 100644 --- a/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.cs +++ b/Content.Server/Nyanotrasen/Kitchen/EntitySystems/DeepFryerSystem.cs @@ -27,6 +27,7 @@ using Content.Shared.Database; using Content.Shared.Destructible; using Content.Shared.DoAfter; +using Content.Shared.DragDrop; using Content.Shared.Examine; using Content.Shared.FixedPoint; using Content.Shared.Hands.Components; @@ -43,6 +44,7 @@ using Content.Shared.Popups; using Content.Shared.Throwing; using Content.Shared.UserInterface; +using Content.Shared.Whitelist; using Robust.Server.GameObjects; using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; @@ -51,6 +53,7 @@ using Robust.Shared.Prototypes; using Robust.Shared.Random; using Robust.Shared.Timing; +using Robust.Shared.Physics.Components; namespace Content.Server.Nyanotrasen.Kitchen.EntitySystems; @@ -76,6 +79,7 @@ public sealed partial class DeepFryerSystem : SharedDeepfryerSystem [Dependency] private readonly UserInterfaceSystem _uiSystem = default!; [Dependency] private readonly AmbientSoundSystem _ambientSoundSystem = default!; [Dependency] private readonly MetaDataSystem _metaDataSystem = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; private static readonly string CookingDamageType = "Heat"; private static readonly float CookingDamageAmount = 10.0f; @@ -105,6 +109,8 @@ public override void Initialize() SubscribeLocalEvent(OnSolutionChange); SubscribeLocalEvent(OnRelayMovement); SubscribeLocalEvent(OnInteractUsing); + SubscribeLocalEvent(OnCanDragDropOn); + SubscribeLocalEvent(OnDragDropOn); SubscribeLocalEvent(OnBeforeActivatableUIOpen); SubscribeLocalEvent(OnRemoveItem); @@ -158,6 +164,12 @@ public FixedPoint2 GetOilVolume(EntityUid uid, DeepFryerComponent component) return oilVolume; } + private void OnDragDropOn(EntityUid uid, DeepFryerComponent component, ref DragDropTargetEvent args) + { + _containerSystem.Insert(args.Dragged, component.Storage); + args.Handled = true; + } + /// /// Returns how much total waste is in the vat. /// @@ -306,7 +318,7 @@ private void DeepFry(EntityUid uid, DeepFryerComponent component, EntityUid item // just in case the attempt is relevant to any system in the future. // // The blacklist overrides all. - if (component.Blacklist != null && component.Blacklist.IsValid(item, EntityManager)) + if (component.Blacklist != null && _whitelistSystem.IsWhitelistPass(component.Blacklist, item)) { _popupSystem.PopupEntity( Loc.GetString("deep-fryer-blacklist-item-failed", @@ -332,12 +344,12 @@ private void DeepFry(EntityUid uid, DeepFryerComponent component, EntityUid item MakeCrispy(item); - var itemComponent = Comp(item); + var oilToUse = 0; - // Determine how much solution to spend on this item. - var solutionQuantity = FixedPoint2.Min( - component.Solution.Volume, - itemComponent.Size.Id switch + if (HasComp(item)) { + var itemComponent = Comp(item); + + oilToUse = (int) (itemComponent.Size.Id switch { "Tiny" => 1, "Small" => 5, @@ -347,8 +359,17 @@ private void DeepFry(EntityUid uid, DeepFryerComponent component, EntityUid item "Ginormous" => 50, _ => 10 } * component.SolutionSizeCoefficient); + } else { + oilToUse = (int) (TryComp(item, out var physicsComponent) ? physicsComponent.Mass : 10); + } + + // Determine how much solution to spend on this item. + var solutionQuantity = FixedPoint2.Min( + component.Solution.Volume, + oilToUse + ); - if (component.Whitelist != null && component.Whitelist.IsValid(item, EntityManager) || + if (component.Whitelist != null && _whitelistSystem.IsWhitelistPass(component.Whitelist, item) || beingEvent.TurnIntoFood) MakeEdible(uid, component, item, solutionQuantity); else diff --git a/Content.Server/Nyanotrasen/Players/PlayTimeTracking/PlayTimeTrackingManager.Whitelist.cs b/Content.Server/Nyanotrasen/Players/PlayTimeTracking/PlayTimeTrackingManager.Whitelist.cs index ccbe8d8e7fe..53b0889aa64 100644 --- a/Content.Server/Nyanotrasen/Players/PlayTimeTracking/PlayTimeTrackingManager.Whitelist.cs +++ b/Content.Server/Nyanotrasen/Players/PlayTimeTracking/PlayTimeTrackingManager.Whitelist.cs @@ -15,7 +15,7 @@ private void SendWhitelistCached(ICommonSession playerSession) Whitelisted = whitelist }; - _net.ServerSendMessage(msg, playerSession.ConnectedClient); + _net.ServerSendMessage(msg, playerSession.Channel); } /// diff --git a/Content.Server/Nyanotrasen/StationEvents/Events/MidRoundAntagRule.cs b/Content.Server/Nyanotrasen/StationEvents/Events/MidRoundAntagRule.cs index 94a488bd84b..c1bce269ff9 100644 --- a/Content.Server/Nyanotrasen/StationEvents/Events/MidRoundAntagRule.cs +++ b/Content.Server/Nyanotrasen/StationEvents/Events/MidRoundAntagRule.cs @@ -1,4 +1,4 @@ -using Content.Server.GameTicking.Components; +using Content.Shared.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; using Content.Server.StationEvents.Components; using Robust.Shared.Random; diff --git a/Content.Server/Objectives/ObjectivesSystem.cs b/Content.Server/Objectives/ObjectivesSystem.cs index 47fe4eb5f88..bf013bc0402 100644 --- a/Content.Server/Objectives/ObjectivesSystem.cs +++ b/Content.Server/Objectives/ObjectivesSystem.cs @@ -1,6 +1,7 @@ using Content.Server.GameTicking; using Content.Server.Shuttles.Systems; using Content.Shared.Cuffs.Components; +using Content.Shared.GameTicking.Components; using Content.Shared.Mind; using Content.Shared.Objectives.Components; using Content.Shared.Objectives.Systems; @@ -9,7 +10,6 @@ using Robust.Shared.Prototypes; using Robust.Shared.Random; using System.Linq; -using Content.Server.GameTicking.Components; using System.Text; using Robust.Server.Player; diff --git a/Content.Server/OfferItem/OfferItemSystem.cs b/Content.Server/OfferItem/OfferItemSystem.cs index 420df71ace7..e2eb65822e0 100644 --- a/Content.Server/OfferItem/OfferItemSystem.cs +++ b/Content.Server/OfferItem/OfferItemSystem.cs @@ -39,11 +39,11 @@ public override void Update(float frameTime) if (!offerItem.IsInReceiveMode) { - _alertsSystem.ClearAlert(uid, AlertType.Offer); + _alertsSystem.ClearAlert(uid, offerItem.OfferAlert); continue; } - _alertsSystem.ShowAlert(uid, AlertType.Offer); + _alertsSystem.ShowAlert(uid, offerItem.OfferAlert); } } diff --git a/Content.Server/Paint/PaintSystem.cs b/Content.Server/Paint/PaintSystem.cs new file mode 100644 index 00000000000..e8ef4d21e12 --- /dev/null +++ b/Content.Server/Paint/PaintSystem.cs @@ -0,0 +1,202 @@ +using Content.Shared.Popups; +using Content.Shared.Paint; +using Content.Shared.Sprite; +using Content.Shared.DoAfter; +using Content.Shared.Interaction; +using Content.Server.Chemistry.Containers.EntitySystems; +using Robust.Shared.Audio.Systems; +using Content.Shared.Humanoid; +using Robust.Shared.Utility; +using Content.Shared.Verbs; +using Content.Shared.SubFloor; +using Content.Server.Nutrition.Components; +using Content.Shared.Inventory; +using Content.Server.Nutrition.EntitySystems; +using Content.Shared.Nutrition.EntitySystems; +using Content.Shared.Whitelist; +using Robust.Shared.Audio; + +namespace Content.Server.Paint; + +/// +/// Colors target and consumes reagent on each color success. +/// +public sealed class PaintSystem : SharedPaintSystem +{ + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly SolutionContainerSystem _solutionContainer = default!; + [Dependency] private readonly SharedAppearanceSystem _appearanceSystem = default!; + [Dependency] private readonly SharedDoAfterSystem _doAfterSystem = default!; + [Dependency] private readonly InventorySystem _inventory = default!; + [Dependency] private readonly OpenableSystem _openable = default!; + + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnInteract); + SubscribeLocalEvent(OnPaint); + SubscribeLocalEvent>(OnPaintVerb); + } + + + private void OnInteract(EntityUid uid, PaintComponent component, AfterInteractEvent args) + { + if (!args.CanReach + || args.Target is not { Valid: true } target) + return; + + PrepPaint(uid, component, target, args.User); + } + + private void OnPaintVerb(EntityUid uid, PaintComponent component, GetVerbsEvent args) + { + if (!args.CanInteract || !args.CanAccess) + return; + + var paintText = Loc.GetString("paint-verb"); + + var verb = new UtilityVerb() + { + Act = () => + { + PrepPaint(uid, component, args.Target, args.User); + }, + + Text = paintText, + Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/paint.svg.192dpi.png")) + }; + args.Verbs.Add(verb); + } + + private void PrepPaint(EntityUid uid, PaintComponent component, EntityUid target, EntityUid user) => + _doAfterSystem.TryStartDoAfter( + new DoAfterArgs( + EntityManager, + user, + component.Delay, + new PaintDoAfterEvent(), + uid, + target: target, + used: uid) + { + BreakOnUserMove = true, + BreakOnTargetMove = true, + NeedHand = true, + BreakOnHandChange = true, + }); + + private void OnPaint(Entity entity, ref PaintDoAfterEvent args) + { + if (args.Target == null || args.Used == null || args.Handled || args.Cancelled || args.Target is not { Valid: true } target) + return; + + Paint(entity, target, args.User); + args.Handled = true; + } + + public void Paint(Entity entity, EntityUid target, EntityUid user) + { + if (!_openable.IsOpen(entity)) + { + _popup.PopupEntity(Loc.GetString("paint-closed", ("used", entity)), user, user, PopupType.Medium); + return; + } + + if (HasComp(target) || HasComp(target)) + { + _popup.PopupEntity(Loc.GetString("paint-failure-painted", ("target", target)), user, user, PopupType.Medium); + return; + } + + if (!entity.Comp.Whitelist?.IsValid(target, EntityManager) == true + || !entity.Comp.Blacklist?.IsValid(target, EntityManager) == false + || HasComp(target) || HasComp(target)) + { + _popup.PopupEntity(Loc.GetString("paint-failure", ("target", target)), user, user, PopupType.Medium); + return; + } + + if (CanPaint(entity, target)) + { + EnsureComp(target, out var paint); + EnsureComp(target); + + paint.Color = entity.Comp.Color; + _audio.PlayPvs(entity.Comp.Spray, entity); + paint.Enabled = true; + + // Paint any clothing the target is wearing + if (HasComp(target) + && _inventory.TryGetSlots(target, out var slotDefinitions)) + foreach (var slot in slotDefinitions) + { + if (!_inventory.TryGetSlotEntity(target, slot.Name, out var slotEnt) + || HasComp(slotEnt.Value) + || !entity.Comp.Whitelist?.IsValid(slotEnt.Value, EntityManager) != true + || !entity.Comp.Blacklist?.IsValid(slotEnt.Value, EntityManager) != false + || HasComp(slotEnt.Value) + || HasComp(slotEnt.Value)) + continue; + + EnsureComp(slotEnt.Value, out var slotToPaint); + EnsureComp(slotEnt.Value); + slotToPaint.Color = entity.Comp.Color; + _appearanceSystem.SetData(slotEnt.Value, PaintVisuals.Painted, true); + Dirty(slotEnt.Value, slotToPaint); + } + + _popup.PopupEntity(Loc.GetString("paint-success", ("target", target)), user, user, PopupType.Medium); + _appearanceSystem.SetData(target, PaintVisuals.Painted, true); + Dirty(target, paint); + return; + } + + if (!CanPaint(entity, target)) + _popup.PopupEntity(Loc.GetString("paint-empty", ("used", entity)), user, user, PopupType.Medium); + } + + public void Paint(EntityWhitelist? whitelist, EntityWhitelist? blacklist, EntityUid target, Color color) + { + if (!whitelist?.IsValid(target, EntityManager) != true + || !blacklist?.IsValid(target, EntityManager) != false) + return; + + EnsureComp(target, out var paint); + EnsureComp(target); + + paint.Color = color; + paint.Enabled = true; + + if (HasComp(target) + && _inventory.TryGetSlots(target, out var slotDefinitions)) + foreach (var slot in slotDefinitions) + { + if (!_inventory.TryGetSlotEntity(target, slot.Name, out var slotEnt) + || !whitelist?.IsValid(slotEnt.Value, EntityManager) != true + || !blacklist?.IsValid(slotEnt.Value, EntityManager) != false) + continue; + + EnsureComp(slotEnt.Value, out var slotToPaint); + EnsureComp(slotEnt.Value); + slotToPaint.Color = color; + _appearanceSystem.SetData(slotEnt.Value, PaintVisuals.Painted, true); + Dirty(slotEnt.Value, slotToPaint); + } + + _appearanceSystem.SetData(target, PaintVisuals.Painted, true); + Dirty(target, paint); + } + + private bool CanPaint(Entity reagent, EntityUid target) + { + if (HasComp(target) + || HasComp(target) + || !_solutionContainer.TryGetSolution(reagent.Owner, reagent.Comp.Solution, out _, out var solution)) + return false; + var quantity = solution.RemoveReagent(reagent.Comp.Reagent, reagent.Comp.ConsumptionUnit); + return (quantity > 0); + } +} diff --git a/Content.Server/Physics/Controllers/ConveyorController.cs b/Content.Server/Physics/Controllers/ConveyorController.cs index 42279bb7496..b3508025cb9 100644 --- a/Content.Server/Physics/Controllers/ConveyorController.cs +++ b/Content.Server/Physics/Controllers/ConveyorController.cs @@ -67,7 +67,7 @@ private void OnPowerChanged(EntityUid uid, ConveyorComponent component, ref Powe { component.Powered = args.Powered; UpdateAppearance(uid, component); - Dirty(component); + Dirty(uid, component); } private void UpdateAppearance(EntityUid uid, ConveyorComponent component) @@ -106,7 +106,7 @@ private void SetState(EntityUid uid, ConveyorState state, ConveyorComponent? com _materialReclaimer.SetReclaimerEnabled(uid, component.State != ConveyorState.Off); UpdateAppearance(uid, component); - Dirty(component); + Dirty(uid, component); } /// diff --git a/Content.Server/Pinpointer/NavMapSystem.cs b/Content.Server/Pinpointer/NavMapSystem.cs index 5881daa0689..7ed13b7b940 100644 --- a/Content.Server/Pinpointer/NavMapSystem.cs +++ b/Content.Server/Pinpointer/NavMapSystem.cs @@ -68,7 +68,7 @@ public override void Initialize() private void OnStationInit(StationGridAddedEvent ev) { var comp = EnsureComp(ev.GridId); - RefreshGrid(comp, Comp(ev.GridId)); + RefreshGrid(ev.GridId, comp, Comp(ev.GridId)); } #region: Grid change event handling @@ -81,10 +81,10 @@ private void OnNavMapSplit(ref GridSplitEvent args) foreach (var grid in args.NewGrids) { var newComp = EnsureComp(grid); - RefreshGrid(comp, newComp); + RefreshGrid(args.Grid, comp, newComp); } - RefreshGrid(comp, _gridQuery.GetComponent(args.Grid)); + RefreshGrid(args.Grid, comp, _gridQuery.GetComponent(args.Grid)); } private NavMapChunk EnsureChunk(NavMapComponent component, Vector2i origin) @@ -231,14 +231,14 @@ private void OnConfigurableExamined(Entity en #region: Grid functions - private void RefreshGrid(NavMapComponent component, MapGridComponent mapGrid) + private void RefreshGrid(EntityUid uid, NavMapComponent component, MapGridComponent mapGrid) { // Clear stale data component.Chunks.Clear(); component.Beacons.Clear(); // Loop over all tiles - var tileRefs = _mapSystem.GetAllTiles(mapGrid.Owner, mapGrid); + var tileRefs = _mapSystem.GetAllTiles(uid, mapGrid); foreach (var tileRef in tileRefs) { @@ -247,10 +247,10 @@ private void RefreshGrid(NavMapComponent component, MapGridComponent mapGrid) var chunk = EnsureChunk(component, chunkOrigin); chunk.LastUpdate = _gameTiming.CurTick; - RefreshTileEntityContents(mapGrid.Owner, component, mapGrid, chunkOrigin, tile, setFloor: true); + RefreshTileEntityContents(uid, component, mapGrid, chunkOrigin, tile, setFloor: true); } - Dirty(mapGrid.Owner, component); + Dirty(uid, component); } private (int NewVal, NavMapChunk Chunk) RefreshTileEntityContents(EntityUid uid, diff --git a/Content.Server/Pinpointer/PinpointerSystem.cs b/Content.Server/Pinpointer/PinpointerSystem.cs index be9a715d5d5..eebf9cbbfde 100644 --- a/Content.Server/Pinpointer/PinpointerSystem.cs +++ b/Content.Server/Pinpointer/PinpointerSystem.cs @@ -45,10 +45,15 @@ private void UpdateAppearance(EntityUid uid, PinpointerComponent pinpointer, App private void OnActivate(EntityUid uid, PinpointerComponent component, ActivateInWorldEvent args) { + if (args.Handled || !args.Complex) + return; + TogglePinpointer(uid, component); if (!component.CanRetarget) LocateTarget(uid, component); + + args.Handled = true; } private void OnLocateTarget(ref FTLCompletedEvent ev) diff --git a/Content.Server/Players/RateLimiting/PlayerRateLimitManager.cs b/Content.Server/Players/RateLimiting/PlayerRateLimitManager.cs new file mode 100644 index 00000000000..a3b4d4a5364 --- /dev/null +++ b/Content.Server/Players/RateLimiting/PlayerRateLimitManager.cs @@ -0,0 +1,150 @@ +using System.Runtime.InteropServices; +using Content.Server.Administration.Logs; +using Content.Shared.Database; +using Content.Shared.Players.RateLimiting; +using Robust.Server.Player; +using Robust.Shared.Configuration; +using Robust.Shared.Enums; +using Robust.Shared.Player; +using Robust.Shared.Timing; +using Robust.Shared.Utility; + +namespace Content.Server.Players.RateLimiting; + +public sealed class PlayerRateLimitManager : SharedPlayerRateLimitManager +{ + [Dependency] private readonly IAdminLogManager _adminLog = default!; + [Dependency] private readonly IGameTiming _gameTiming = default!; + [Dependency] private readonly IConfigurationManager _cfg = default!; + [Dependency] private readonly IPlayerManager _playerManager = default!; + + private readonly Dictionary _registrations = new(); + private readonly Dictionary> _rateLimitData = new(); + + public override RateLimitStatus CountAction(ICommonSession player, string key) + { + if (player.Status == SessionStatus.Disconnected) + throw new ArgumentException("Player is not connected"); + if (!_registrations.TryGetValue(key, out var registration)) + throw new ArgumentException($"Unregistered key: {key}"); + + var playerData = _rateLimitData.GetOrNew(player); + ref var datum = ref CollectionsMarshal.GetValueRefOrAddDefault(playerData, key, out _); + var time = _gameTiming.RealTime; + if (datum.CountExpires < time) + { + // Period expired, reset it. + datum.CountExpires = time + registration.LimitPeriod; + datum.Count = 0; + datum.Announced = false; + } + + datum.Count += 1; + + if (datum.Count <= registration.LimitCount) + return RateLimitStatus.Allowed; + + // Breached rate limits, inform admins if configured. + // Negative delays can be used to disable admin announcements. + if (registration.AdminAnnounceDelay is {TotalSeconds: >= 0} cvarAnnounceDelay) + { + if (datum.NextAdminAnnounce < time) + { + registration.Registration.AdminAnnounceAction!(player); + datum.NextAdminAnnounce = time + cvarAnnounceDelay; + } + } + + if (!datum.Announced) + { + registration.Registration.PlayerLimitedAction?.Invoke(player); + _adminLog.Add( + registration.Registration.AdminLogType, + LogImpact.Medium, + $"Player {player} breached '{key}' rate limit "); + + datum.Announced = true; + } + + return RateLimitStatus.Blocked; + } + + public override void Register(string key, RateLimitRegistration registration) + { + if (_registrations.ContainsKey(key)) + throw new InvalidOperationException($"Key already registered: {key}"); + + var data = new RegistrationData + { + Registration = registration, + }; + + if ((registration.AdminAnnounceAction == null) != (registration.CVarAdminAnnounceDelay == null)) + { + throw new ArgumentException( + $"Must set either both {nameof(registration.AdminAnnounceAction)} and {nameof(registration.CVarAdminAnnounceDelay)} or neither"); + } + + _cfg.OnValueChanged( + registration.CVarLimitCount, + i => data.LimitCount = i, + invokeImmediately: true); + _cfg.OnValueChanged( + registration.CVarLimitPeriodLength, + i => data.LimitPeriod = TimeSpan.FromSeconds(i), + invokeImmediately: true); + + if (registration.CVarAdminAnnounceDelay != null) + { + _cfg.OnValueChanged( + registration.CVarAdminAnnounceDelay, + i => data.AdminAnnounceDelay = TimeSpan.FromSeconds(i), + invokeImmediately: true); + } + + _registrations.Add(key, data); + } + + public override void Initialize() + { + _playerManager.PlayerStatusChanged += PlayerManagerOnPlayerStatusChanged; + } + + private void PlayerManagerOnPlayerStatusChanged(object? sender, SessionStatusEventArgs e) + { + if (e.NewStatus == SessionStatus.Disconnected) + _rateLimitData.Remove(e.Session); + } + + private sealed class RegistrationData + { + public required RateLimitRegistration Registration { get; init; } + public TimeSpan LimitPeriod { get; set; } + public int LimitCount { get; set; } + public TimeSpan? AdminAnnounceDelay { get; set; } + } + + private struct RateLimitDatum + { + /// + /// Time stamp (relative to ) this rate limit period will expire at. + /// + public TimeSpan CountExpires; + + /// + /// How many actions have been done in the current rate limit period. + /// + public int Count; + + /// + /// Have we announced to the player that they've been blocked in this rate limit period? + /// + public bool Announced; + + /// + /// Time stamp (relative to ) of the + /// next time we can send an announcement to admins about rate limit breach. + /// + public TimeSpan NextAdminAnnounce; + } +} diff --git a/Content.Server/Polymorph/Systems/PolymorphSystem.cs b/Content.Server/Polymorph/Systems/PolymorphSystem.cs index e6ba1d02afd..5c970b1a748 100644 --- a/Content.Server/Polymorph/Systems/PolymorphSystem.cs +++ b/Content.Server/Polymorph/Systems/PolymorphSystem.cs @@ -20,6 +20,7 @@ using Robust.Server.GameObjects; using Robust.Shared.Map; using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.Manager; using Robust.Shared.Timing; using Robust.Shared.Utility; @@ -31,6 +32,7 @@ public sealed partial class PolymorphSystem : EntitySystem [Dependency] private readonly IMapManager _mapManager = default!; [Dependency] private readonly IPrototypeManager _proto = default!; [Dependency] private readonly IGameTiming _gameTiming = default!; + [Dependency] private readonly ISerializationManager _serialization = default!; [Dependency] private readonly ActionsSystem _actions = default!; [Dependency] private readonly AudioSystem _audio = default!; [Dependency] private readonly SharedBuckleSystem _buckle = default!; @@ -201,6 +203,19 @@ private void OnDestruction(Entity ent, ref Destructi var child = Spawn(configuration.Entity, _transform.GetMapCoordinates(uid, targetTransformComp), rotation: _transform.GetWorldRotation(uid)); + // Copy specified components over + foreach (var compName in configuration.CopiedComponents) + { + if (!_compFact.TryGetRegistration(compName, out var reg) + || !EntityManager.TryGetComponent(uid, reg.Idx, out var comp)) + continue; + + var copy = _serialization.CreateCopy(comp, notNullableOverride: true); + copy.Owner = child; + AddComp(child, copy, true); + } + + // Ensure the resulting entity is sentient (why? this sucks) MakeSentientCommand.MakeSentient(child, EntityManager); var polymorphedComp = _compFact.GetComponent(); diff --git a/Content.Server/Power/EntitySystems/ChargerSystem.cs b/Content.Server/Power/EntitySystems/ChargerSystem.cs index 1ff13a24f2c..038295eac11 100644 --- a/Content.Server/Power/EntitySystems/ChargerSystem.cs +++ b/Content.Server/Power/EntitySystems/ChargerSystem.cs @@ -10,6 +10,7 @@ using System.Diagnostics.CodeAnalysis; using Content.Shared.Storage.Components; using Robust.Server.Containers; +using Content.Shared.Whitelist; namespace Content.Server.Power.EntitySystems; @@ -20,6 +21,7 @@ internal sealed class ChargerSystem : EntitySystem [Dependency] private readonly PowerCellSystem _powerCell = default!; [Dependency] private readonly BatterySystem _battery = default!; [Dependency] private readonly SharedAppearanceSystem _appearance = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; public override void Initialize() { @@ -208,7 +210,7 @@ private void TransferPower(EntityUid uid, EntityUid targetEntity, ChargerCompone if (!receiverComponent.Powered) return; - if (component.Whitelist?.IsValid(targetEntity, EntityManager) == false) + if (_whitelistSystem.IsWhitelistFail(component.Whitelist, targetEntity)) return; if (!SearchForBattery(targetEntity, out var batteryUid, out var heldBattery)) diff --git a/Content.Server/Power/EntitySystems/PowerMonitoringConsoleSystem.cs b/Content.Server/Power/EntitySystems/PowerMonitoringConsoleSystem.cs index 42c84b7f43b..35b17dc9584 100644 --- a/Content.Server/Power/EntitySystems/PowerMonitoringConsoleSystem.cs +++ b/Content.Server/Power/EntitySystems/PowerMonitoringConsoleSystem.cs @@ -6,6 +6,7 @@ using Content.Server.Power.NodeGroups; using Content.Server.Station.Components; using Content.Server.StationEvents.Components; +using Content.Shared.GameTicking.Components; using Content.Shared.Pinpointer; using Content.Shared.Power; using JetBrains.Annotations; @@ -13,7 +14,6 @@ using Robust.Shared.Map.Components; using Robust.Shared.Utility; using System.Linq; -using Content.Server.GameTicking.Components; namespace Content.Server.Power.EntitySystems; diff --git a/Content.Server/Power/EntitySystems/PowerReceiverSystem.cs b/Content.Server/Power/EntitySystems/PowerReceiverSystem.cs index 2157a53a53d..9ba30813dd5 100644 --- a/Content.Server/Power/EntitySystems/PowerReceiverSystem.cs +++ b/Content.Server/Power/EntitySystems/PowerReceiverSystem.cs @@ -13,6 +13,8 @@ using Robust.Shared.Audio; using Robust.Shared.Utility; using Content.Shared.Emp; +using Content.Shared.Interaction; + namespace Content.Server.Power.EntitySystems { @@ -22,6 +24,7 @@ public sealed class PowerReceiverSystem : EntitySystem [Dependency] private readonly IAdminManager _adminManager = default!; [Dependency] private readonly AppearanceSystem _appearance = default!; [Dependency] private readonly AudioSystem _audio = default!; + [Dependency] private readonly SharedInteractionSystem _interaction = default!; private EntityQuery _recQuery; private EntityQuery _provQuery; @@ -120,12 +123,15 @@ private void OnReceiverDisconnected(EntityUid uid, ApcPowerProviderComponent pro private void AddSwitchPowerVerb(EntityUid uid, PowerSwitchComponent component, GetVerbsEvent args) { - if(!args.CanAccess || !args.CanInteract) + if (!args.CanAccess || !args.CanInteract) return; if (!HasComp(args.User)) return; + if (!_interaction.SupportsComplexInteractions(args.User)) + return; + if (!_recQuery.TryGetComponent(uid, out var receiver)) return; diff --git a/Content.Server/PowerCell/PowerCellSystem.Draw.cs b/Content.Server/PowerCell/PowerCellSystem.Draw.cs index 8e960357b7a..4155a4f6bec 100644 --- a/Content.Server/PowerCell/PowerCellSystem.Draw.cs +++ b/Content.Server/PowerCell/PowerCellSystem.Draw.cs @@ -67,7 +67,7 @@ private void OnDrawChargeChanged(EntityUid uid, PowerCellDrawComponent component { component.CanDraw = canDraw; component.CanUse = canUse; - Dirty(component); + Dirty(uid, component); } } @@ -80,7 +80,7 @@ private void OnDrawCellChanged(EntityUid uid, PowerCellDrawComponent component, { component.CanDraw = canDraw; component.CanUse = canUse; - Dirty(component); + Dirty(uid, component); } } } diff --git a/Content.Server/Projectiles/ProjectileSystem.cs b/Content.Server/Projectiles/ProjectileSystem.cs index 0061b16e47c..c5ec2d76ad5 100644 --- a/Content.Server/Projectiles/ProjectileSystem.cs +++ b/Content.Server/Projectiles/ProjectileSystem.cs @@ -1,3 +1,4 @@ +using Content.Shared.Damage.Events; using Content.Server.Administration.Logs; using Content.Server.Effects; using Content.Server.Weapons.Ranged.Systems; @@ -7,6 +8,7 @@ using Content.Shared.Projectiles; using Robust.Shared.Physics.Events; using Robust.Shared.Player; +using Robust.Shared.Utility; namespace Content.Server.Projectiles; @@ -22,6 +24,7 @@ public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnStartCollide); + SubscribeLocalEvent(OnDamageExamine); } private void OnStartCollide(EntityUid uid, ProjectileComponent component, ref StartCollideEvent args) @@ -77,4 +80,21 @@ private void OnStartCollide(EntityUid uid, ProjectileComponent component, ref St RaiseNetworkEvent(new ImpactEffectEvent(component.ImpactEffect, GetNetCoordinates(xform.Coordinates)), Filter.Pvs(xform.Coordinates, entityMan: EntityManager)); } } + + private void OnDamageExamine(EntityUid uid, EmbeddableProjectileComponent component, ref DamageExamineEvent args) + { + if (!component.EmbedOnThrow) + return; + + if (!args.Message.IsEmpty) + args.Message.PushNewline(); + + var isHarmful = TryComp(uid, out var passiveDamage) && passiveDamage.Damage.Any(); + var loc = isHarmful + ? "damage-examine-embeddable-harmful" + : "damage-examine-embeddable"; + + var staminaCostMarkup = FormattedMessage.FromMarkupOrThrow(Loc.GetString(loc)); + args.Message.AddMessage(staminaCostMarkup); + } } diff --git a/Content.Server/Psionics/Dreams/DreamSystem.cs b/Content.Server/Psionics/Dreams/DreamSystem.cs index d6067717c94..0729f5c59dd 100644 --- a/Content.Server/Psionics/Dreams/DreamSystem.cs +++ b/Content.Server/Psionics/Dreams/DreamSystem.cs @@ -51,7 +51,7 @@ public override void Update(float frameTime) ("telepathicChannelName", Loc.GetString("chat-manager-telepathic-channel-name")), ("message", msg)); _chatManager.ChatMessageToOne(Shared.Chat.ChatChannel.Telepathic, - msg, messageWrap, sleeper.Owner, false, actor.PlayerSession.ConnectedClient, Color.PaleVioletRed); + msg, messageWrap, sleeper.Owner, false, actor.PlayerSession.Channel, Color.PaleVioletRed); } } } diff --git a/Content.Server/Psionics/Invisibility/PsionicInvisibleContactsSystem.cs b/Content.Server/Psionics/Invisibility/PsionicInvisibleContactsSystem.cs index cec755e3260..c0c91fcc694 100644 --- a/Content.Server/Psionics/Invisibility/PsionicInvisibleContactsSystem.cs +++ b/Content.Server/Psionics/Invisibility/PsionicInvisibleContactsSystem.cs @@ -1,5 +1,6 @@ using Content.Shared.Stealth; using Content.Shared.Stealth.Components; +using Content.Shared.Whitelist; using Robust.Shared.Physics.Events; using Robust.Shared.Physics.Systems; using Robust.Shared.Timing; @@ -13,6 +14,7 @@ public sealed class PsionicInvisibleContactsSystem : EntitySystem { [Dependency] private readonly SharedStealthSystem _stealth = default!; [Dependency] private readonly IGameTiming _gameTiming = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; public override void Initialize() { @@ -28,7 +30,7 @@ private void OnEntityEnter(EntityUid uid, PsionicInvisibleContactsComponent comp var otherUid = args.OtherEntity; var ourEntity = args.OurEntity; - if (!component.Whitelist.IsValid(otherUid)) + if (_whitelistSystem.IsWhitelistFail(component.Whitelist, otherUid)) return; // This will go up twice per web hit, since webs also have a flammable fixture. @@ -48,7 +50,7 @@ private void OnEntityExit(EntityUid uid, PsionicInvisibleContactsComponent compo var otherUid = args.OtherEntity; var ourEntity = args.OurEntity; - if (!component.Whitelist.IsValid(otherUid)) + if (_whitelistSystem.IsWhitelistFail(component.Whitelist, otherUid)) return; if (!HasComp(ourEntity)) diff --git a/Content.Server/Radiation/Systems/GeigerSystem.cs b/Content.Server/Radiation/Systems/GeigerSystem.cs index 06e5911cb7c..df4438c91ea 100644 --- a/Content.Server/Radiation/Systems/GeigerSystem.cs +++ b/Content.Server/Radiation/Systems/GeigerSystem.cs @@ -35,7 +35,7 @@ public override void Initialize() private void OnActivate(Entity geiger, ref ActivateInWorldEvent args) { - if (args.Handled || geiger.Comp.AttachedToSuit) + if (args.Handled || !args.Complex || geiger.Comp.AttachedToSuit) return; args.Handled = true; diff --git a/Content.Server/Radio/EntitySystems/JammerSystem.cs b/Content.Server/Radio/EntitySystems/JammerSystem.cs index 6e0689390e1..4997430ac5f 100644 --- a/Content.Server/Radio/EntitySystems/JammerSystem.cs +++ b/Content.Server/Radio/EntitySystems/JammerSystem.cs @@ -68,6 +68,9 @@ public override void Update(float frameTime) private void OnActivate(EntityUid uid, RadioJammerComponent comp, ActivateInWorldEvent args) { + if (args.Handled || !args.Complex) + return; + var activated = !HasComp(uid) && _powerCell.TryGetBatteryFromSlot(uid, out var battery) && battery.CurrentCharge > GetCurrentWattage(comp); diff --git a/Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs b/Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs index 6ade9aea34e..02e46e6b11d 100644 --- a/Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs +++ b/Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs @@ -83,6 +83,9 @@ private void OnSpeakerInit(EntityUid uid, RadioSpeakerComponent component, Compo #region Toggling private void OnActivateMicrophone(EntityUid uid, RadioMicrophoneComponent component, ActivateInWorldEvent args) { + if (!args.Complex) + return; + if (!component.ToggleOnInteract) return; @@ -92,6 +95,9 @@ private void OnActivateMicrophone(EntityUid uid, RadioMicrophoneComponent compon private void OnActivateSpeaker(EntityUid uid, RadioSpeakerComponent component, ActivateInWorldEvent args) { + if (!args.Complex) + return; + if (!component.ToggleOnInteract) return; diff --git a/Content.Server/Radio/EntitySystems/RadioSystem.cs b/Content.Server/Radio/EntitySystems/RadioSystem.cs index 71fb4ff5020..66dadc85b5d 100644 --- a/Content.Server/Radio/EntitySystems/RadioSystem.cs +++ b/Content.Server/Radio/EntitySystems/RadioSystem.cs @@ -167,12 +167,14 @@ private string WrapRadioMessage(EntityUid source, RadioChannelPrototype channel, if (language.SpeechOverride.Color is { } colorOverride) languageColor = Color.InterpolateBetween(languageColor, colorOverride, colorOverride.A); var languageDisplay = language.IsVisibleLanguage - ? $"{language.ChatName} | " + ? Loc.GetString("chat-manager-language-prefix", ("language", language.ChatName)) : ""; + var messageColor = language.IsVisibleLanguage ? languageColor : channel.Color; return Loc.GetString(speech.Bold ? "chat-radio-message-wrap-bold" : "chat-radio-message-wrap", ("color", channel.Color), ("languageColor", languageColor), + ("messageColor", messageColor), ("fontType", language.SpeechOverride.FontId ?? speech.FontId), ("fontSize", language.SpeechOverride.FontSize ?? speech.FontSize), ("verb", Loc.GetString(_random.Pick(speech.SpeechVerbStrings))), diff --git a/Content.Server/Research/Systems/ResearchSystem.Server.cs b/Content.Server/Research/Systems/ResearchSystem.Server.cs index 2a802a91a32..09ca7ed15c2 100644 --- a/Content.Server/Research/Systems/ResearchSystem.Server.cs +++ b/Content.Server/Research/Systems/ResearchSystem.Server.cs @@ -18,7 +18,7 @@ private void OnServerStartup(EntityUid uid, ResearchServerComponent component, C var unusedId = EntityQuery(true) .Max(s => s.Id) + 1; component.Id = unusedId; - Dirty(component); + Dirty(uid, component); } private void OnServerShutdown(EntityUid uid, ResearchServerComponent component, ComponentShutdown args) @@ -74,7 +74,7 @@ public void RegisterClient(EntityUid client, EntityUid server, ResearchClientCom SyncClientWithServer(client, clientComponent: clientComponent); if (dirtyServer) - Dirty(serverComponent); + Dirty(server, serverComponent); var ev = new ResearchRegistrationChangedEvent(server); RaiseLocalEvent(client, ref ev); @@ -117,7 +117,7 @@ public void UnregisterClient(EntityUid client, EntityUid server, ResearchClientC if (dirtyServer) { - Dirty(serverComponent); + Dirty(server, serverComponent); } var ev = new ResearchRegistrationChangedEvent(null); @@ -167,6 +167,6 @@ public void ModifyServerPoints(EntityUid uid, int points, ResearchServerComponen { RaiseLocalEvent(client, ref ev); } - Dirty(component); + Dirty(uid, component); } } diff --git a/Content.Server/Research/Systems/ResearchSystem.Technology.cs b/Content.Server/Research/Systems/ResearchSystem.Technology.cs index 107d51ccd8c..9bd71cf7c6e 100644 --- a/Content.Server/Research/Systems/ResearchSystem.Technology.cs +++ b/Content.Server/Research/Systems/ResearchSystem.Technology.cs @@ -21,7 +21,7 @@ public void Sync(EntityUid primaryUid, EntityUid otherUid, TechnologyDatabaseCom primaryDb.UnlockedTechnologies = otherDb.UnlockedTechnologies; primaryDb.UnlockedRecipes = otherDb.UnlockedRecipes; - Dirty(primaryDb); + Dirty(primaryUid, primaryDb); var ev = new TechnologyDatabaseModifiedEvent(); RaiseLocalEvent(primaryUid, ref ev); @@ -125,7 +125,7 @@ public void AddTechnology(EntityUid uid, TechnologyPrototype technology, Technol continue; component.UnlockedRecipes.Add(unlock); } - Dirty(component); + Dirty(uid, component); var ev = new TechnologyDatabaseModifiedEvent(); RaiseLocalEvent(uid, ref ev); @@ -144,7 +144,7 @@ public void AddLatheRecipe(EntityUid uid, string recipe, TechnologyDatabaseCompo return; component.UnlockedRecipes.Add(recipe); - Dirty(component); + Dirty(uid, component); var ev = new TechnologyDatabaseModifiedEvent(); RaiseLocalEvent(uid, ref ev); @@ -185,6 +185,6 @@ private void OnDatabaseRegistrationChanged(EntityUid uid, TechnologyDatabaseComp component.SupportedDisciplines = new List(); component.UnlockedTechnologies = new List(); component.UnlockedRecipes = new List(); - Dirty(component); + Dirty(uid, component); } } diff --git a/Content.Server/Revenant/EntitySystems/RevenantSystem.Abilities.cs b/Content.Server/Revenant/EntitySystems/RevenantSystem.Abilities.cs index 5d7c7514b84..0a72e48071e 100644 --- a/Content.Server/Revenant/EntitySystems/RevenantSystem.Abilities.cs +++ b/Content.Server/Revenant/EntitySystems/RevenantSystem.Abilities.cs @@ -28,6 +28,7 @@ using Robust.Shared.Physics.Components; using Robust.Shared.Utility; using Robust.Shared.Map.Components; +using Content.Shared.Whitelist; namespace Content.Server.Revenant.EntitySystems; @@ -40,10 +41,11 @@ public sealed partial class RevenantSystem [Dependency] private readonly MobThresholdSystem _mobThresholdSystem = default!; [Dependency] private readonly GhostSystem _ghost = default!; [Dependency] private readonly TileSystem _tile = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; private void InitializeAbilities() { - SubscribeLocalEvent(OnInteract); + SubscribeLocalEvent(OnInteract); SubscribeLocalEvent(OnSoulSearch); SubscribeLocalEvent(OnHarvest); @@ -53,11 +55,14 @@ private void InitializeAbilities() SubscribeLocalEvent(OnMalfunctionAction); } - private void OnInteract(EntityUid uid, RevenantComponent component, InteractNoHandEvent args) + private void OnInteract(EntityUid uid, RevenantComponent component, UserActivateInWorldEvent args) { - if (args.Target == args.User || args.Target == null) + if (args.Handled) + return; + + if (args.Target == args.User) return; - var target = args.Target.Value; + var target = args.Target; if (HasComp(target)) { @@ -78,6 +83,8 @@ private void OnInteract(EntityUid uid, RevenantComponent component, InteractNoHa { BeginHarvestDoAfter(uid, target, component, essence); } + + args.Handled = true; } private void BeginSoulSearchDoAfter(EntityUid uid, EntityUid target, RevenantComponent revenant) @@ -326,10 +333,8 @@ private void OnMalfunctionAction(EntityUid uid, RevenantComponent component, Rev foreach (var ent in _lookup.GetEntitiesInRange(uid, component.MalfunctionRadius)) { - if (component.MalfunctionWhitelist?.IsValid(ent, EntityManager) == false) - continue; - - if (component.MalfunctionBlacklist?.IsValid(ent, EntityManager) == true) + if (_whitelistSystem.IsWhitelistFail(component.MalfunctionWhitelist, ent) || + _whitelistSystem.IsBlacklistPass(component.MalfunctionBlacklist, ent)) continue; _emag.DoEmagEffect(uid, ent); //it does not emag itself. adorable. diff --git a/Content.Server/Revenant/EntitySystems/RevenantSystem.cs b/Content.Server/Revenant/EntitySystems/RevenantSystem.cs index 428d1ecb75e..595de100e86 100644 --- a/Content.Server/Revenant/EntitySystems/RevenantSystem.cs +++ b/Content.Server/Revenant/EntitySystems/RevenantSystem.cs @@ -141,7 +141,7 @@ public bool ChangeEssenceAmount(EntityUid uid, FixedPoint2 amount, RevenantCompo if (TryComp(uid, out var store)) _store.UpdateUserInterface(uid, uid, store); - _alerts.ShowAlert(uid, AlertType.Essence); + _alerts.ShowAlert(uid, component.EssenceAlert); if (component.Essence <= 0) { diff --git a/Content.Server/RoundEnd/RoundEndSystem.cs b/Content.Server/RoundEnd/RoundEndSystem.cs index 0866b975c2b..fe05f69d4ab 100644 --- a/Content.Server/RoundEnd/RoundEndSystem.cs +++ b/Content.Server/RoundEnd/RoundEndSystem.cs @@ -359,6 +359,22 @@ private void ActivateCooldown() }, _cooldownTokenSource.Token); } + public void DelayShuttle(TimeSpan delay) + { + if (_countdownTokenSource == null || !ExpectedCountdownEnd.HasValue) + return; + + var countdown = ExpectedCountdownEnd.Value - _gameTiming.CurTime + delay; + if (countdown.TotalSeconds < 0) + return; + + ExpectedCountdownEnd = _gameTiming.CurTime + countdown; + _countdownTokenSource.Cancel(); + _countdownTokenSource = new CancellationTokenSource(); + + Timer.Spawn(countdown, _shuttle.CallEmergencyShuttle, _countdownTokenSource.Token); + } + public override void Update(float frameTime) { // Check if we should auto-call. diff --git a/Content.Server/Salvage/SalvageSystem.Runner.cs b/Content.Server/Salvage/SalvageSystem.Runner.cs index 23607e2bdc5..9b15ee30adc 100644 --- a/Content.Server/Salvage/SalvageSystem.Runner.cs +++ b/Content.Server/Salvage/SalvageSystem.Runner.cs @@ -151,8 +151,12 @@ private void UpdateRunner() } else if (comp.Stream == null && remaining < audioLength) { - var audio = _audio.PlayPvs(comp.Sound, uid).Value; - comp.Stream = audio.Entity; + var audio = _audio.PlayPvs(comp.Sound, uid); + + if (audio == null) + continue; + + comp.Stream = audio!.Value.Entity; _audio.SetMapAudio(audio); comp.Stage = ExpeditionStage.MusicCountdown; Dirty(uid, comp); diff --git a/Content.Server/Shadowkin/ShadowkinSystem.cs b/Content.Server/Shadowkin/ShadowkinSystem.cs index 83461e7a7fe..96bd09db276 100644 --- a/Content.Server/Shadowkin/ShadowkinSystem.cs +++ b/Content.Server/Shadowkin/ShadowkinSystem.cs @@ -55,7 +55,7 @@ private void OnEyeColorChange(EntityUid uid, ShadowkinComponent component, EyeCo component.OldEyeColor = humanoid.EyeColor; humanoid.EyeColor = component.BlackEyeColor; - Dirty(humanoid); + Dirty(uid, humanoid); } private void OnExamined(EntityUid uid, ShadowkinComponent component, ExaminedEvent args) @@ -89,10 +89,10 @@ public void UpdateShadowkinAlert(EntityUid uid, ShadowkinComponent component) if (TryComp(uid, out var magic)) { var severity = (short) ContentHelpers.RoundToLevels(magic.Mana, magic.MaxMana, 8); - _alerts.ShowAlert(uid, AlertType.ShadowkinPower, severity); + _alerts.ShowAlert(uid, component.ShadowkinPowerAlert, severity); } else - _alerts.ClearAlert(uid, AlertType.ShadowkinPower); + _alerts.ClearAlert(uid, component.ShadowkinPowerAlert); } private void OnAttemptPowerUse(EntityUid uid, ShadowkinComponent component, OnAttemptPowerUseEvent args) @@ -115,7 +115,7 @@ private void OnManaUpdate(EntityUid uid, ShadowkinComponent component, ref OnMan if (magic.Mana <= component.BlackEyeMana) ApplyBlackEye(uid); - Dirty(magic); // Update Shadowkin Overlay. + Dirty(uid, magic); // Update Shadowkin Overlay. UpdateShadowkinAlert(uid, component); } @@ -141,7 +141,7 @@ private void OnMindbreak(EntityUid uid, ShadowkinComponent component, ref OnMind { component.OldEyeColor = humanoid.EyeColor; humanoid.EyeColor = component.BlackEyeColor; - Dirty(humanoid); + Dirty(uid, humanoid); } if (component.BlackeyeSpawn) @@ -162,7 +162,7 @@ private void OnRejuvenate(EntityUid uid, ShadowkinComponent component, Rejuvenat if (TryComp(uid, out var humanoid)) { humanoid.EyeColor = component.OldEyeColor; - Dirty(humanoid); + Dirty(uid, humanoid); } EnsureComp(uid, out var magic); diff --git a/Content.Server/Shipyard/MapDeleterShuttleComponent.cs b/Content.Server/Shipyard/MapDeleterShuttleComponent.cs new file mode 100644 index 00000000000..a95603216d2 --- /dev/null +++ b/Content.Server/Shipyard/MapDeleterShuttleComponent.cs @@ -0,0 +1,17 @@ +namespace Content.Server.Shipyard; + +/// +/// When added to a shuttle, once it FTLs the previous map is deleted. +/// After that the component is removed to prevent insane abuse. +/// +/// +/// Could be upstreamed at some point, loneop shuttle could use it. +/// +[RegisterComponent, Access(typeof(MapDeleterShuttleSystem))] +public sealed partial class MapDeleterShuttleComponent : Component +{ + /// + /// Only set by the system to prevent someone in VV deleting maps by mistake or otherwise. + /// + public bool Enabled; +} diff --git a/Content.Server/Shipyard/MapDeleterShuttleSystem.cs b/Content.Server/Shipyard/MapDeleterShuttleSystem.cs new file mode 100644 index 00000000000..88a2830c39e --- /dev/null +++ b/Content.Server/Shipyard/MapDeleterShuttleSystem.cs @@ -0,0 +1,25 @@ +using Content.Server.Shuttles.Events; + +namespace Content.Server.Shipyard; + +public sealed class MapDeleterShuttleSystem : EntitySystem +{ + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnFTLStarted); + } + + private void OnFTLStarted(Entity ent, ref FTLStartedEvent args) + { + if (ent.Comp.Enabled) + Del(args.FromMapUid); + RemComp(ent); // prevent the shuttle becoming a WMD + } + + public void Enable(EntityUid shuttle) + { + EnsureComp(shuttle).Enabled = true; + } +} diff --git a/Content.Server/Shipyard/ShipyardConsoleSystem.cs b/Content.Server/Shipyard/ShipyardConsoleSystem.cs new file mode 100644 index 00000000000..63088f16b70 --- /dev/null +++ b/Content.Server/Shipyard/ShipyardConsoleSystem.cs @@ -0,0 +1,101 @@ +using Content.Server.Cargo.Components; +using Content.Server.Cargo.Systems; +using Content.Server.Radio.EntitySystems; +using Content.Server.Station.Systems; +using Content.Shared.Shipyard; +using Content.Shared.Shipyard.Prototypes; +using Content.Shared.Whitelist; +using Robust.Shared.Random; + +namespace Content.Server.Shipyard; + +public sealed class ShipyardConsoleSystem : SharedShipyardConsoleSystem +{ + [Dependency] private readonly CargoSystem _cargo = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelist = default!; + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly MetaDataSystem _meta = default!; + [Dependency] private readonly RadioSystem _radio = default!; + [Dependency] private readonly SharedUserInterfaceSystem _ui = default!; + [Dependency] private readonly ShipyardSystem _shipyard = default!; + [Dependency] private readonly StationSystem _station = default!; + + public override void Initialize() + { + base.Initialize(); + + Subs.BuiEvents(ShipyardConsoleUiKey.Key, subs => + { + subs.Event(OnOpened); + }); + } + + protected override void TryPurchase(Entity ent, EntityUid user, VesselPrototype vessel) + { + // client prevents asking for this so dont need feedback for validation + if (_whitelist.IsWhitelistFail(vessel.Whitelist, ent)) + return; + + if (GetBankAccount(ent) is not {} bank) + return; + + if (bank.Comp.Balance < vessel.Price) + { + var popup = Loc.GetString("cargo-console-insufficient-funds", ("cost", vessel.Price)); + Popup.PopupEntity(popup, ent, user); + Audio.PlayPvs(ent.Comp.DenySound, ent); + return; + } + + if (_shipyard.TrySendShuttle(bank.Owner, vessel.Path.ToString()) is not {} shuttle) + { + var popup = Loc.GetString("shipyard-console-error"); + Popup.PopupEntity(popup, ent, user); + Audio.PlayPvs(ent.Comp.DenySound, ent); + return; + } + + _meta.SetEntityName(shuttle, $"{vessel.Name} {_random.Next(1000):000}"); + + _cargo.UpdateBankAccount(bank, bank.Comp, -vessel.Price); + + var message = Loc.GetString("shipyard-console-docking", ("vessel", vessel.Name.ToString())); + _radio.SendRadioMessage(ent, message, ent.Comp.Channel, ent); + Audio.PlayPvs(ent.Comp.ConfirmSound, ent); + + // TODO: make the ui updating more robust, make pr upstream to have UpdateBankAccount support things that arent ordering consoles + // TODO: then have shipyard have that component and update the ui when it changes balance + UpdateUI(ent, bank.Comp.Balance); + } + + private void OnOpened(Entity ent, ref BoundUIOpenedEvent args) + { + UpdateUI(ent); + } + + private void UpdateUI(EntityUid uid) + { + if (GetBankAccount(uid) is {} bank) + UpdateUI(uid, bank.Comp.Balance); + } + + private void UpdateUI(EntityUid uid, int balance) + { + if (!_shipyard.Enabled) + return; + + var state = new ShipyardConsoleState(balance); + _ui.SetUiState(uid, ShipyardConsoleUiKey.Key, state); + } + + private Entity? GetBankAccount(EntityUid console) + { + if (_station.GetOwningStation(console) is not {} station) + return null; + + if (!TryComp(station, out var bank)) + return null; + + return (station, bank); + } +} diff --git a/Content.Server/Shipyard/ShipyardSystem.cs b/Content.Server/Shipyard/ShipyardSystem.cs new file mode 100644 index 00000000000..d627cfd546b --- /dev/null +++ b/Content.Server/Shipyard/ShipyardSystem.cs @@ -0,0 +1,96 @@ +using Content.Server.Shuttles.Components; +using Content.Server.Shuttles.Systems; +using Content.Server.Station.Components; +using Content.Server.Station.Systems; +using Content.Shared.DeltaV.CCVars; +using Content.Shared.Tag; +using Robust.Server.GameObjects; +using Robust.Shared.Configuration; + +namespace Content.Server.Shipyard; + +/// +/// Handles spawning and ftling ships. +/// +public sealed class ShipyardSystem : EntitySystem +{ + [Dependency] private readonly IConfigurationManager _config = default!; + [Dependency] private readonly MapDeleterShuttleSystem _mapDeleterShuttle = default!; + [Dependency] private readonly MapSystem _map = default!; + [Dependency] private readonly MapLoaderSystem _mapLoader = default!; + [Dependency] private readonly ShuttleSystem _shuttle = default!; + [Dependency] private readonly StationSystem _station = default!; + + [ValidatePrototypeId] + public string DockTag = "DockShipyard"; + + public bool Enabled; + + public override void Initialize() + { + base.Initialize(); + + Subs.CVar(_config, DCCVars.Shipyard, value => Enabled = value, true); + } + + /// + /// Creates a ship from its yaml path in the shipyard. + /// + public Entity? TryCreateShuttle(string path) + { + if (!Enabled) + return null; + + var map = _map.CreateMap(out var mapId); + _map.SetPaused(map, false); + + if (!_mapLoader.TryLoad(mapId, path, out var grids)) + { + Log.Error($"Failed to load shuttle {path}"); + Del(map); + return null; + } + + // only 1 grid is supported, no tramshuttle + if (grids.Count != 1) + { + var error = grids.Count < 1 ? "less" : "more"; + Log.Error($"Shuttle {path} had {error} than 1 grid, which is not supported."); + Del(map); + return null; + } + + var uid = grids[0]; + if (!TryComp(uid, out var comp)) + { + Log.Error($"Shuttle {path}'s grid was missing ShuttleComponent"); + Del(map); + return null; + } + + _mapDeleterShuttle.Enable(uid); + return (uid, comp); + } + + /// + /// Adds a ship to the shipyard and attempts to ftl-dock it to the given station. + /// + public Entity? TrySendShuttle(Entity station, string path) + { + if (!Resolve(station, ref station.Comp)) + return null; + + if (_station.GetLargestGrid(station.Comp) is not {} grid) + { + Log.Error($"Station {ToPrettyString(station):station} had no largest grid to FTL to"); + return null; + } + + if (TryCreateShuttle(path) is not {} shuttle) + return null; + + Log.Info($"Shuttle {path} was spawned for {ToPrettyString(station):station}, FTLing to {grid}"); + _shuttle.FTLToDock(shuttle, shuttle.Comp, grid, priorityTag: DockTag); + return shuttle; + } +} diff --git a/Content.Server/Shuttles/Systems/ArrivalsSystem.cs b/Content.Server/Shuttles/Systems/ArrivalsSystem.cs index 62fe3e13ffc..9dabf6f40a0 100644 --- a/Content.Server/Shuttles/Systems/ArrivalsSystem.cs +++ b/Content.Server/Shuttles/Systems/ArrivalsSystem.cs @@ -489,11 +489,6 @@ private void SetupArrivalsStation() { var template = _random.Pick(_arrivalsBiomeOptions); _biomes.EnsurePlanet(mapUid, _protoManager.Index(template)); - var restricted = new RestrictedRangeComponent - { - Range = 32f - }; - AddComp(mapUid, restricted); } _mapManager.DoMapInitialize(mapId); diff --git a/Content.Server/Shuttles/Systems/ShuttleConsoleSystem.cs b/Content.Server/Shuttles/Systems/ShuttleConsoleSystem.cs index 6f24208c3a6..5550201202f 100644 --- a/Content.Server/Shuttles/Systems/ShuttleConsoleSystem.cs +++ b/Content.Server/Shuttles/Systems/ShuttleConsoleSystem.cs @@ -317,12 +317,12 @@ public void AddPilot(EntityUid uid, EntityUid entity, ShuttleConsoleComponent co component.SubscribedPilots.Add(entity); - _alertsSystem.ShowAlert(entity, AlertType.PilotingShuttle); + _alertsSystem.ShowAlert(entity, pilotComponent.PilotingAlert); pilotComponent.Console = uid; ActionBlockerSystem.UpdateCanMove(entity); pilotComponent.Position = EntityManager.GetComponent(entity).Coordinates; - Dirty(pilotComponent); + Dirty(entity, pilotComponent); } public void RemovePilot(EntityUid pilotUid, PilotComponent pilotComponent) @@ -339,7 +339,7 @@ public void RemovePilot(EntityUid pilotUid, PilotComponent pilotComponent) if (!helm.SubscribedPilots.Remove(pilotUid)) return; - _alertsSystem.ClearAlert(pilotUid, AlertType.PilotingShuttle); + _alertsSystem.ClearAlert(pilotUid, pilotComponent.PilotingAlert); _popup.PopupEntity(Loc.GetString("shuttle-pilot-end"), pilotUid, pilotUid); diff --git a/Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs b/Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs index 7c67e8188e2..3b5565c52e7 100644 --- a/Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs +++ b/Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs @@ -82,6 +82,8 @@ public sealed partial class ShuttleSystem private void InitializeFTL() { SubscribeLocalEvent(OnStationPostInit); + SubscribeLocalEvent(OnFtlShutdown); + _bodyQuery = GetEntityQuery(); _buckleQuery = GetEntityQuery(); _beaconQuery = GetEntityQuery(); @@ -98,6 +100,12 @@ private void InitializeFTL() _cfg.OnValueChanged(CCVars.HyperspaceKnockdownTime, time => _hyperspaceKnockdownTime = TimeSpan.FromSeconds(time), true); } + private void OnFtlShutdown(Entity ent, ref ComponentShutdown args) + { + Del(ent.Comp.VisualizerEntity); + ent.Comp.VisualizerEntity = null; + } + private void OnStationPostInit(ref StationPostInitEvent ev) { // Add all grid maps as ftl destinations that anyone can FTL to. @@ -344,7 +352,11 @@ private bool TrySetupFTL(EntityUid uid, ShuttleComponent shuttle, [NotNullWhen(t component = AddComp(uid); component.State = FTLState.Starting; var audio = _audio.PlayPvs(_startupSound, uid); - audio.Value.Component.Flags |= AudioFlags.GridAudio; + + if (audio == null) + return false; + + audio!.Value.Component.Flags |= AudioFlags.GridAudio; if (_physicsQuery.TryGetComponent(uid, out var gridPhysics)) { @@ -423,8 +435,16 @@ private void UpdateFTLTravelling(Entity entity) var comp = entity.Comp1; comp.StateTime = StartEndTime.FromCurTime(_gameTiming, DefaultArrivalTime); comp.State = FTLState.Arriving; - // TODO: Arrival effects - // For now we'll just use the ss13 bubbles but we can do fancier. + + if (entity.Comp1.VisualizerProto != null) + { + comp.VisualizerEntity = SpawnAtPosition(entity.Comp1.VisualizerProto, entity.Comp1.TargetCoordinates); + var visuals = Comp(comp.VisualizerEntity.Value); + visuals.Grid = entity.Owner; + Dirty(comp.VisualizerEntity.Value, visuals); + _transform.SetLocalRotation(comp.VisualizerEntity.Value, entity.Comp1.TargetAngle); + _pvs.AddGlobalOverride(comp.VisualizerEntity.Value); + } _thruster.DisableLinearThrusters(shuttle); _thruster.EnableLinearThrustDirection(shuttle, DirectionFlag.South); @@ -510,7 +530,11 @@ private void UpdateFTLArriving(Entity entity) comp.TravelStream = _audio.Stop(comp.TravelStream); var audio = _audio.PlayPvs(_arrivalSound, uid); - audio.Value.Component.Flags |= AudioFlags.GridAudio; + + if (audio == null) + return; + + audio!.Value.Component.Flags |= AudioFlags.GridAudio; // TODO: Shitcode til engine fix if (_physicsQuery.TryGetComponent(uid, out var gridPhysics)) diff --git a/Content.Server/Shuttles/Systems/ShuttleSystem.cs b/Content.Server/Shuttles/Systems/ShuttleSystem.cs index 6fe2324d51e..a10d0d56144 100644 --- a/Content.Server/Shuttles/Systems/ShuttleSystem.cs +++ b/Content.Server/Shuttles/Systems/ShuttleSystem.cs @@ -11,6 +11,7 @@ using Content.Shared.Throwing; using JetBrains.Annotations; using Robust.Server.GameObjects; +using Robust.Server.GameStates; using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; using Robust.Shared.Configuration; @@ -40,6 +41,7 @@ public sealed partial class ShuttleSystem : SharedShuttleSystem [Dependency] private readonly FixtureSystem _fixtures = default!; [Dependency] private readonly MapLoaderSystem _loader = default!; [Dependency] private readonly MetaDataSystem _metadata = default!; + [Dependency] private readonly PvsOverrideSystem _pvs = default!; [Dependency] private readonly SharedAudioSystem _audio = default!; [Dependency] private readonly SharedPhysicsSystem _physics = default!; [Dependency] private readonly SharedTransformSystem _transform = default!; diff --git a/Content.Server/Shuttles/Systems/ThrusterSystem.cs b/Content.Server/Shuttles/Systems/ThrusterSystem.cs index 46715dd2916..2454856a701 100644 --- a/Content.Server/Shuttles/Systems/ThrusterSystem.cs +++ b/Content.Server/Shuttles/Systems/ThrusterSystem.cs @@ -132,15 +132,20 @@ private void OnShuttleTileChange(EntityUid uid, ShuttleComponent component, ref private void OnActivateThruster(EntityUid uid, ThrusterComponent component, ActivateInWorldEvent args) { + if (args.Handled || !args.Complex) + return; + component.Enabled ^= true; if (!component.Enabled) { DisableThruster(uid, component); + args.Handled = true; } else if (CanEnable(uid, component)) { EnableThruster(uid, component); + args.Handled = true; } } diff --git a/Content.Server/Silicon/Charge/Systems/SiliconChargeSystem.cs b/Content.Server/Silicon/Charge/Systems/SiliconChargeSystem.cs index d8b034a69f5..444b65530b2 100644 --- a/Content.Server/Silicon/Charge/Systems/SiliconChargeSystem.cs +++ b/Content.Server/Silicon/Charge/Systems/SiliconChargeSystem.cs @@ -91,10 +91,10 @@ public override void Update(float frameTime) if (!TryGetSiliconBattery(silicon, out var batteryComp)) { UpdateChargeState(silicon, 0, siliconComp); - if (_alerts.IsShowingAlert(silicon, AlertType.BorgBattery)) + if (_alerts.IsShowingAlert(silicon, siliconComp.BatteryAlert)) { - _alerts.ClearAlert(silicon, AlertType.BorgBattery); - _alerts.ShowAlert(silicon, AlertType.BorgBatteryNone); + _alerts.ClearAlert(silicon, siliconComp.BatteryAlert); + _alerts.ShowAlert(silicon, siliconComp.NoBatteryAlert); } continue; } @@ -142,10 +142,10 @@ public void UpdateChargeState(EntityUid uid, short chargePercent, SiliconCompone _moveMod.RefreshMovementSpeedModifiers(uid); // If the battery was replaced and the no battery indicator is showing, replace the indicator - if (_alerts.IsShowingAlert(uid, AlertType.BorgBatteryNone) && chargePercent != 0) + if (_alerts.IsShowingAlert(uid, component.NoBatteryAlert) && chargePercent != 0) { - _alerts.ClearAlert(uid, AlertType.BorgBatteryNone); - _alerts.ShowAlert(uid, AlertType.BorgBattery, chargePercent); + _alerts.ClearAlert(uid, component.NoBatteryAlert); + _alerts.ShowAlert(uid, component.BatteryAlert, chargePercent); } } diff --git a/Content.Server/Silicons/Borgs/BorgSystem.Modules.cs b/Content.Server/Silicons/Borgs/BorgSystem.Modules.cs index 7ede2342428..623b6ba9787 100644 --- a/Content.Server/Silicons/Borgs/BorgSystem.Modules.cs +++ b/Content.Server/Silicons/Borgs/BorgSystem.Modules.cs @@ -272,7 +272,7 @@ public bool CanInsertModule(EntityUid uid, EntityUid module, BorgChassisComponen return false; } - if (component.ModuleWhitelist?.IsValid(module, EntityManager) == false) + if (_whitelistSystem.IsWhitelistFail(component.ModuleWhitelist, module)) { if (user != null) Popup.PopupEntity(Loc.GetString("borg-module-whitelist-deny"), uid, user.Value); diff --git a/Content.Server/Silicons/Borgs/BorgSystem.cs b/Content.Server/Silicons/Borgs/BorgSystem.cs index 75f25a3a922..b6e5adbe2d4 100644 --- a/Content.Server/Silicons/Borgs/BorgSystem.cs +++ b/Content.Server/Silicons/Borgs/BorgSystem.cs @@ -23,6 +23,7 @@ using Content.Shared.Silicons.Borgs; using Content.Shared.Silicons.Borgs.Components; using Content.Shared.Throwing; +using Content.Shared.Whitelist; using Content.Shared.Wires; using Robust.Server.GameObjects; using Robust.Shared.Containers; @@ -54,6 +55,8 @@ public sealed partial class BorgSystem : SharedBorgSystem [Dependency] private readonly ThrowingSystem _throwing = default!; [Dependency] private readonly UserInterfaceSystem _ui = default!; [Dependency] private readonly SharedContainerSystem _container = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; + [ValidatePrototypeId] public const string BorgJobId = "Borg"; @@ -84,7 +87,7 @@ public override void Initialize() private void OnMapInit(EntityUid uid, BorgChassisComponent component, MapInitEvent args) { - UpdateBatteryAlert(uid); + UpdateBatteryAlert((uid, component)); _movementSpeedModifier.RefreshMovementSpeedModifiers(uid); } @@ -106,9 +109,8 @@ private void OnChassisInteractUsing(EntityUid uid, BorgChassisComponent componen return; } - if (component.BrainEntity == null && - brain != null && - component.BrainWhitelist?.IsValid(used) != false) + if (component.BrainEntity == null && brain != null && + _whitelistSystem.IsWhitelistPassOrNull(component.BrainWhitelist, used)) { if (_mind.TryGetMind(used, out _, out var mind) && mind.Session != null) { @@ -183,7 +185,7 @@ private void OnMobStateChanged(EntityUid uid, BorgChassisComponent component, Mo private void OnPowerCellChanged(EntityUid uid, BorgChassisComponent component, PowerCellChangedEvent args) { - UpdateBatteryAlert(uid); + UpdateBatteryAlert((uid, component)); if (!TryComp(uid, out var draw)) return; @@ -256,12 +258,12 @@ private void OnBrainPointAttempt(EntityUid uid, BorgBrainComponent component, Po args.Cancel(); } - private void UpdateBatteryAlert(EntityUid uid, PowerCellSlotComponent? slotComponent = null) + private void UpdateBatteryAlert(Entity ent, PowerCellSlotComponent? slotComponent = null) { - if (!_powerCell.TryGetBatteryFromSlot(uid, out var battery, slotComponent)) + if (!_powerCell.TryGetBatteryFromSlot(ent, out var battery, slotComponent)) { - _alerts.ClearAlert(uid, AlertType.BorgBattery); - _alerts.ShowAlert(uid, AlertType.BorgBatteryNone); + _alerts.ClearAlert(ent, ent.Comp.BatteryAlert); + _alerts.ShowAlert(ent, ent.Comp.NoBatteryAlert); return; } @@ -269,13 +271,13 @@ private void UpdateBatteryAlert(EntityUid uid, PowerCellSlotComponent? slotCompo // we make sure 0 only shows if they have absolutely no battery. // also account for floating point imprecision - if (chargePercent == 0 && _powerCell.HasDrawCharge(uid, cell: slotComponent)) + if (chargePercent == 0 && _powerCell.HasDrawCharge(ent, cell: slotComponent)) { chargePercent = 1; } - _alerts.ClearAlert(uid, AlertType.BorgBatteryNone); - _alerts.ShowAlert(uid, AlertType.BorgBattery, chargePercent); + _alerts.ClearAlert(ent, ent.Comp.NoBatteryAlert); + _alerts.ShowAlert(ent, ent.Comp.BatteryAlert, chargePercent); } /// @@ -288,7 +290,7 @@ public void EnableBorgAbilities(EntityUid uid, BorgChassisComponent component, P component.Activated = true; InstallAllModules(uid, component); - Dirty(component); + Dirty(uid, component); _movementSpeedModifier.RefreshMovementSpeedModifiers(uid); } @@ -302,7 +304,7 @@ public void DisableBorgAbilities(EntityUid uid, BorgChassisComponent component) component.Activated = false; DisableAllModules(uid, component); - Dirty(component); + Dirty(uid, component); _movementSpeedModifier.RefreshMovementSpeedModifiers(uid); } diff --git a/Content.Server/Spawners/Components/EntityTableSpawnerComponent.cs b/Content.Server/Spawners/Components/EntityTableSpawnerComponent.cs new file mode 100644 index 00000000000..d122eb098b6 --- /dev/null +++ b/Content.Server/Spawners/Components/EntityTableSpawnerComponent.cs @@ -0,0 +1,30 @@ +using Content.Server.Spawners.EntitySystems; +using Content.Shared.EntityTable.EntitySelectors; +using Robust.Shared.Prototypes; + +namespace Content.Server.Spawners.Components; + +[RegisterComponent, EntityCategory("Spawner"), Access(typeof(ConditionalSpawnerSystem))] +public sealed partial class EntityTableSpawnerComponent : Component +{ + /// + /// Table that determines what gets spawned. + /// + [DataField(required: true)] + public EntityTableSelector Table = default!; + + /// + /// Scatter of entity spawn coordinates + /// + [DataField] + public float Offset = 0.2f; + + /// + /// A variable meaning whether the spawn will + /// be able to be used again or whether + /// it will be destroyed after the first use + /// + [DataField] + public bool DeleteSpawnerAfterSpawn = true; +} + diff --git a/Content.Server/Spawners/EntitySystems/ConditionalSpawnerSystem.cs b/Content.Server/Spawners/EntitySystems/ConditionalSpawnerSystem.cs index 75f86187989..f176f1b1358 100644 --- a/Content.Server/Spawners/EntitySystems/ConditionalSpawnerSystem.cs +++ b/Content.Server/Spawners/EntitySystems/ConditionalSpawnerSystem.cs @@ -1,9 +1,11 @@ using System.Numerics; using Content.Server.GameTicking; -using Content.Server.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; using Content.Server.Spawners.Components; +using Content.Shared.EntityTable; +using Content.Shared.GameTicking.Components; using JetBrains.Annotations; +using Robust.Shared.Map; using Robust.Shared.Random; namespace Content.Server.Spawners.EntitySystems @@ -13,6 +15,7 @@ public sealed class ConditionalSpawnerSystem : EntitySystem { [Dependency] private readonly IRobustRandom _robustRandom = default!; [Dependency] private readonly GameTicker _ticker = default!; + [Dependency] private readonly EntityTableSystem _entityTable = default!; public override void Initialize() { @@ -21,6 +24,7 @@ public override void Initialize() SubscribeLocalEvent(OnRuleStarted); SubscribeLocalEvent(OnCondSpawnMapInit); SubscribeLocalEvent(OnRandSpawnMapInit); + SubscribeLocalEvent(OnEntityTableSpawnMapInit); } private void OnCondSpawnMapInit(EntityUid uid, ConditionalSpawnerComponent component, MapInitEvent args) @@ -35,6 +39,13 @@ private void OnRandSpawnMapInit(EntityUid uid, RandomSpawnerComponent component, QueueDel(uid); } + private void OnEntityTableSpawnMapInit(Entity ent, ref MapInitEvent args) + { + Spawn(ent); + if (ent.Comp.DeleteSpawnerAfterSpawn && !TerminatingOrDeleted(ent) && Exists(ent)) + QueueDel(ent); + } + private void OnRuleStarted(ref GameRuleStartedEvent args) { var query = EntityQueryEnumerator(); @@ -110,5 +121,23 @@ private void Spawn(EntityUid uid, RandomSpawnerComponent component) EntityManager.SpawnEntity(_robustRandom.Pick(component.Prototypes), coordinates); } + + private void Spawn(Entity ent) + { + if (TerminatingOrDeleted(ent) || !Exists(ent)) + return; + + var coords = Transform(ent).Coordinates; + + var spawns = _entityTable.GetSpawns(ent.Comp.Table); + foreach (var proto in spawns) + { + var xOffset = _robustRandom.NextFloat(-ent.Comp.Offset, ent.Comp.Offset); + var yOffset = _robustRandom.NextFloat(-ent.Comp.Offset, ent.Comp.Offset); + var trueCoords = coords.Offset(new Vector2(xOffset, yOffset)); + + Spawn(proto, trueCoords); + } + } } } diff --git a/Content.Server/Speech/Components/OhioAccentComponent.cs b/Content.Server/Speech/Components/OhioAccentComponent.cs new file mode 100644 index 00000000000..101208bfef5 --- /dev/null +++ b/Content.Server/Speech/Components/OhioAccentComponent.cs @@ -0,0 +1,8 @@ +using Content.Server.Speech.EntitySystems; + +namespace Content.Server.Speech.Components; + +[RegisterComponent] +[Access(typeof(OhioAccentSystem))] +public sealed partial class OhioAccentComponent : Component +{ } \ No newline at end of file diff --git a/Content.Server/Speech/EntitySystems/OhioAccentSystem.cs b/Content.Server/Speech/EntitySystems/OhioAccentSystem.cs new file mode 100644 index 00000000000..3c424b6586b --- /dev/null +++ b/Content.Server/Speech/EntitySystems/OhioAccentSystem.cs @@ -0,0 +1,46 @@ +using System.Text.RegularExpressions; +using Content.Server.Speech.Components; +using Robust.Shared.Random; + +namespace Content.Server.Speech.EntitySystems; + +public sealed class OhioAccentSystem : EntitySystem +{ + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly ReplacementAccentSystem _replacement = default!; + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnAccent); + } + + private void OnAccent(EntityUid uid, OhioAccentComponent component, AccentGetEvent args) + { + var message = args.Message; + + message = _replacement.ApplyReplacements(message, "ohio"); + + // Prefix + if (_random.Prob(0.15f)) + { + var pick = _random.Next(1, 3); + + // Reverse sanitize capital + message = message[0].ToString().ToLower() + message.Remove(0, 1); + message = Loc.GetString($"accent-ohio-prefix-{pick}") + " " + message; + } + + // Sanitize capital again, in case we substituted a word that should be capitalized + message = message[0].ToString().ToUpper() + message.Remove(0, 1); + + // Suffixes + if (_random.Prob(0.3f)) + { + var pick = _random.Next(1, 8); + message += Loc.GetString($"accent-ohio-suffix-{pick}"); + } + + args.Message = message; + } +}; \ No newline at end of file diff --git a/Content.Server/Sprite/RandomSpriteSystem.cs b/Content.Server/Sprite/RandomSpriteSystem.cs index 5d04dd2f5a6..7f81f4bdd45 100644 --- a/Content.Server/Sprite/RandomSpriteSystem.cs +++ b/Content.Server/Sprite/RandomSpriteSystem.cs @@ -63,7 +63,7 @@ private void OnMapInit(EntityUid uid, RandomSpriteComponent component, MapInitEv } } - Dirty(component); + Dirty(uid, component); } private void OnGetState(EntityUid uid, RandomSpriteComponent component, ref ComponentGetState args) diff --git a/Content.Server/StationEvents/BasicStationEventSchedulerSystem.cs b/Content.Server/StationEvents/BasicStationEventSchedulerSystem.cs index b9eb3b7b09d..f2704d53f4c 100644 --- a/Content.Server/StationEvents/BasicStationEventSchedulerSystem.cs +++ b/Content.Server/StationEvents/BasicStationEventSchedulerSystem.cs @@ -1,11 +1,11 @@ using System.Linq; using Content.Server.Administration; -using Content.Server.GameTicking.Components; +using Content.Server.GameTicking; using Content.Server.GameTicking.Rules; -using Content.Server.GameTicking.Rules.Components; using Content.Server.StationEvents.Components; using Content.Shared.Administration; using Content.Shared.CCVar; +using Content.Shared.GameTicking.Components; using JetBrains.Annotations; using Robust.Shared.Configuration; using Robust.Shared.Random; diff --git a/Content.Server/StationEvents/Events/AlertLevelInterceptionRule.cs b/Content.Server/StationEvents/Events/AlertLevelInterceptionRule.cs index a78a542d3b3..916d7d16883 100644 --- a/Content.Server/StationEvents/Events/AlertLevelInterceptionRule.cs +++ b/Content.Server/StationEvents/Events/AlertLevelInterceptionRule.cs @@ -1,6 +1,6 @@ -using Content.Server.GameTicking.Components; using Content.Server.StationEvents.Components; using Content.Server.AlertLevel; +using Content.Shared.GameTicking.Components; namespace Content.Server.StationEvents.Events; @@ -20,4 +20,4 @@ protected override void Started(EntityUid uid, AlertLevelInterceptionRuleCompone _alertLevelSystem.SetLevel(chosenStation.Value, component.AlertLevel, true, true, true); } -} \ No newline at end of file +} diff --git a/Content.Server/StationEvents/Events/AnomalySpawnRule.cs b/Content.Server/StationEvents/Events/AnomalySpawnRule.cs index 98d5aa76a6a..aa2fa74c483 100644 --- a/Content.Server/StationEvents/Events/AnomalySpawnRule.cs +++ b/Content.Server/StationEvents/Events/AnomalySpawnRule.cs @@ -1,9 +1,8 @@ using Content.Server.Anomaly; -using Content.Server.GameTicking.Components; -using Content.Server.GameTicking.Rules.Components; +using Content.Server.Announcements.Systems; using Content.Server.Station.Components; using Content.Server.StationEvents.Components; -using Content.Server.Announcements.Systems; +using Content.Shared.GameTicking.Components; using Robust.Shared.Player; namespace Content.Server.StationEvents.Events; diff --git a/Content.Server/StationEvents/Events/BluespaceArtifactRule.cs b/Content.Server/StationEvents/Events/BluespaceArtifactRule.cs index 29c18976576..3983981ff46 100644 --- a/Content.Server/StationEvents/Events/BluespaceArtifactRule.cs +++ b/Content.Server/StationEvents/Events/BluespaceArtifactRule.cs @@ -1,6 +1,5 @@ -using Content.Server.GameTicking.Components; -using Content.Server.GameTicking.Rules.Components; using Content.Server.StationEvents.Components; +using Content.Shared.GameTicking.Components; using Robust.Shared.Random; using Content.Server.Announcements.Systems; using Robust.Shared.Player; diff --git a/Content.Server/StationEvents/Events/BluespaceLockerRule.cs b/Content.Server/StationEvents/Events/BluespaceLockerRule.cs index eef9850e739..b19485bc31e 100644 --- a/Content.Server/StationEvents/Events/BluespaceLockerRule.cs +++ b/Content.Server/StationEvents/Events/BluespaceLockerRule.cs @@ -1,4 +1,3 @@ -using Content.Server.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; using Content.Server.Resist; using Content.Server.Station.Components; @@ -6,6 +5,7 @@ using Content.Server.Storage.Components; using Content.Server.Storage.EntitySystems; using Content.Shared.Access.Components; +using Content.Shared.GameTicking.Components; using Content.Shared.Coordinates; namespace Content.Server.StationEvents.Events; diff --git a/Content.Server/StationEvents/Events/BreakerFlipRule.cs b/Content.Server/StationEvents/Events/BreakerFlipRule.cs index 3b2368556be..bc657657f66 100644 --- a/Content.Server/StationEvents/Events/BreakerFlipRule.cs +++ b/Content.Server/StationEvents/Events/BreakerFlipRule.cs @@ -1,9 +1,8 @@ -using Content.Server.GameTicking.Components; -using Content.Server.GameTicking.Rules.Components; using Content.Server.Power.Components; using Content.Server.Power.EntitySystems; using Content.Server.Station.Components; using Content.Server.StationEvents.Components; +using Content.Shared.GameTicking.Components; using JetBrains.Annotations; using Content.Server.Announcements.Systems; using Robust.Shared.Player; diff --git a/Content.Server/StationEvents/Events/BureaucraticErrorRule.cs b/Content.Server/StationEvents/Events/BureaucraticErrorRule.cs index 282e28e4991..6600b0623fd 100644 --- a/Content.Server/StationEvents/Events/BureaucraticErrorRule.cs +++ b/Content.Server/StationEvents/Events/BureaucraticErrorRule.cs @@ -1,9 +1,9 @@ using System.Linq; -using Content.Server.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; using Content.Server.Station.Components; using Content.Server.Station.Systems; using Content.Server.StationEvents.Components; +using Content.Shared.GameTicking.Components; using JetBrains.Annotations; using Robust.Shared.Random; diff --git a/Content.Server/StationEvents/Events/CargoGiftsRule.cs b/Content.Server/StationEvents/Events/CargoGiftsRule.cs index 550f799b27e..b2170e06625 100644 --- a/Content.Server/StationEvents/Events/CargoGiftsRule.cs +++ b/Content.Server/StationEvents/Events/CargoGiftsRule.cs @@ -2,10 +2,9 @@ using Content.Server.Cargo.Components; using Content.Server.Cargo.Systems; using Content.Server.GameTicking; -using Content.Server.GameTicking.Components; -using Content.Server.GameTicking.Rules.Components; using Content.Server.Station.Components; using Content.Server.StationEvents.Components; +using Content.Shared.GameTicking.Components; using Robust.Shared.Prototypes; using Content.Server.Announcements.Systems; using Robust.Shared.Player; diff --git a/Content.Server/StationEvents/Events/ClericalErrorRule.cs b/Content.Server/StationEvents/Events/ClericalErrorRule.cs index 854ee685b33..e52c2c05aaf 100644 --- a/Content.Server/StationEvents/Events/ClericalErrorRule.cs +++ b/Content.Server/StationEvents/Events/ClericalErrorRule.cs @@ -1,9 +1,9 @@ -using Content.Server.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; using Content.Server.StationEvents.Components; using Content.Server.StationRecords; using Content.Server.StationRecords.Systems; using Content.Shared.StationRecords; +using Content.Shared.GameTicking.Components; using Robust.Shared.Random; namespace Content.Server.StationEvents.Events; diff --git a/Content.Server/StationEvents/Events/FalseAlarmRule.cs b/Content.Server/StationEvents/Events/FalseAlarmRule.cs index 2d129b35584..8c8bf0aadc9 100644 --- a/Content.Server/StationEvents/Events/FalseAlarmRule.cs +++ b/Content.Server/StationEvents/Events/FalseAlarmRule.cs @@ -1,7 +1,6 @@ using System.Linq; -using Content.Server.GameTicking.Components; -using Content.Server.GameTicking.Rules.Components; using Content.Server.StationEvents.Components; +using Content.Shared.GameTicking.Components; using JetBrains.Annotations; using Robust.Shared.Player; using Robust.Shared.Random; diff --git a/Content.Server/StationEvents/Events/FreeProberRule.cs b/Content.Server/StationEvents/Events/FreeProberRule.cs index a5dfdd6b6ea..04795bdf4e9 100644 --- a/Content.Server/StationEvents/Events/FreeProberRule.cs +++ b/Content.Server/StationEvents/Events/FreeProberRule.cs @@ -1,4 +1,4 @@ -using Content.Server.GameTicking.Components; +using Content.Shared.GameTicking.Components; using Robust.Shared.Map; using Robust.Shared.Random; using Content.Server.GameTicking.Rules.Components; @@ -8,13 +8,14 @@ using Content.Server.Psionics.Glimmer; using Content.Shared.Construction.EntitySystems; using Content.Shared.Psionics.Glimmer; +using Robust.Shared.Map.Components; namespace Content.Server.StationEvents.Events; internal sealed class FreeProberRule : StationEventSystem { [Dependency] private readonly IRobustRandom _robustRandom = default!; - [Dependency] private readonly IMapManager _mapManager = default!; + [Dependency] private readonly SharedMapSystem _sharedMapSystem = default!; [Dependency] private readonly AnchorableSystem _anchorable = default!; [Dependency] private readonly GlimmerSystem _glimmerSystem = default!; [Dependency] private readonly StationSystem _stationSystem = default!; @@ -59,10 +60,14 @@ protected override void Started(EntityUid uid, FreeProberRuleComponent component var coordinates = xform.Coordinates; var gridUid = xform.GridUid; - if (!_mapManager.TryGetGrid(gridUid, out var grid)) + + if (gridUid == null) + continue; + + if (!TryComp(gridUid, out var grid)) continue; - var tileIndices = grid.TileIndicesFor(coordinates); + var tileIndices = _sharedMapSystem.TileIndicesFor((EntityUid) gridUid, grid, coordinates); for (var i = 0; i < SpawnDirections; i++) { @@ -73,7 +78,7 @@ protected override void Started(EntityUid uid, FreeProberRuleComponent component if (!_anchorable.TileFree(grid, offsetIndices)) continue; - Spawn(ProberPrototype, grid.GridTileToLocal(offsetIndices)); + Spawn(ProberPrototype, _sharedMapSystem.GridTileToLocal((EntityUid) gridUid, grid, offsetIndices)); return; } } diff --git a/Content.Server/StationEvents/Events/GasLeakRule.cs b/Content.Server/StationEvents/Events/GasLeakRule.cs index 1221612171d..391c407bacd 100644 --- a/Content.Server/StationEvents/Events/GasLeakRule.cs +++ b/Content.Server/StationEvents/Events/GasLeakRule.cs @@ -1,7 +1,7 @@ using Content.Server.Atmos.EntitySystems; -using Content.Server.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; using Content.Server.StationEvents.Components; +using Content.Shared.GameTicking.Components; using Robust.Shared.Audio; using Robust.Shared.Random; using Robust.Shared.Timing; diff --git a/Content.Server/StationEvents/Events/GlimmerEventSystem.cs b/Content.Server/StationEvents/Events/GlimmerEventSystem.cs index 3e0762c8346..37eb0410fbd 100644 --- a/Content.Server/StationEvents/Events/GlimmerEventSystem.cs +++ b/Content.Server/StationEvents/Events/GlimmerEventSystem.cs @@ -1,4 +1,4 @@ -using Content.Server.GameTicking.Components; +using Content.Shared.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; using Content.Server.Psionics.Glimmer; using Content.Shared.Psionics.Glimmer; diff --git a/Content.Server/StationEvents/Events/GlimmerMobSpawnRule.cs b/Content.Server/StationEvents/Events/GlimmerMobSpawnRule.cs index 702147842c6..f80bc83a1e6 100644 --- a/Content.Server/StationEvents/Events/GlimmerMobSpawnRule.cs +++ b/Content.Server/StationEvents/Events/GlimmerMobSpawnRule.cs @@ -1,5 +1,5 @@ using System.Linq; -using Content.Server.GameTicking.Components; +using Content.Shared.GameTicking.Components; using Robust.Shared.Random; using Content.Server.GameTicking; using Content.Server.NPC.Components; diff --git a/Content.Server/StationEvents/Events/GlimmerRandomSentienceRule.cs b/Content.Server/StationEvents/Events/GlimmerRandomSentienceRule.cs index a288710356a..ee0de6fe01a 100644 --- a/Content.Server/StationEvents/Events/GlimmerRandomSentienceRule.cs +++ b/Content.Server/StationEvents/Events/GlimmerRandomSentienceRule.cs @@ -1,5 +1,5 @@ using System.Linq; -using Content.Server.GameTicking.Components; +using Content.Shared.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; using Content.Server.Ghost.Roles.Components; using Content.Shared.Abilities.Psionics; diff --git a/Content.Server/StationEvents/Events/GlimmerRevenantSpawnRule.cs b/Content.Server/StationEvents/Events/GlimmerRevenantSpawnRule.cs index 152d6d9fe59..dfb7653303b 100644 --- a/Content.Server/StationEvents/Events/GlimmerRevenantSpawnRule.cs +++ b/Content.Server/StationEvents/Events/GlimmerRevenantSpawnRule.cs @@ -1,4 +1,4 @@ -using Content.Server.GameTicking.Components; +using Content.Shared.GameTicking.Components; using Robust.Shared.Random; using Content.Server.GameTicking.Rules.Components; using Content.Server.Psionics.Glimmer; diff --git a/Content.Server/StationEvents/Events/ImmovableRodRule.cs b/Content.Server/StationEvents/Events/ImmovableRodRule.cs index 45d6c18189c..37f912773c5 100644 --- a/Content.Server/StationEvents/Events/ImmovableRodRule.cs +++ b/Content.Server/StationEvents/Events/ImmovableRodRule.cs @@ -1,10 +1,10 @@ using System.Numerics; -using Content.Server.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; using Content.Server.ImmovableRod; using Content.Server.StationEvents.Components; using Content.Server.Weapons.Ranged.Systems; -using Robust.Shared.Spawners; +using Content.Shared.GameTicking.Components; +using Content.Shared.Storage; using Robust.Shared.Prototypes; using TimedDespawnComponent = Robust.Shared.Spawners.TimedDespawnComponent; diff --git a/Content.Server/StationEvents/Events/IonStormRule.cs b/Content.Server/StationEvents/Events/IonStormRule.cs index 8361cc6048a..926ecc2db92 100644 --- a/Content.Server/StationEvents/Events/IonStormRule.cs +++ b/Content.Server/StationEvents/Events/IonStormRule.cs @@ -1,4 +1,3 @@ -using Content.Server.GameTicking.Components; using System.Linq; using Content.Server.Silicons.Laws; using Content.Server.Station.Components; @@ -7,6 +6,7 @@ using Content.Shared.Database; using Content.Shared.Dataset; using Content.Shared.FixedPoint; +using Content.Shared.GameTicking.Components; using Content.Shared.Random; using Content.Shared.Random.Helpers; using Content.Shared.Silicons.Laws; diff --git a/Content.Server/StationEvents/Events/KudzuGrowthRule.cs b/Content.Server/StationEvents/Events/KudzuGrowthRule.cs index 5b56e03846f..42c57ffcaae 100644 --- a/Content.Server/StationEvents/Events/KudzuGrowthRule.cs +++ b/Content.Server/StationEvents/Events/KudzuGrowthRule.cs @@ -1,6 +1,6 @@ -using Content.Server.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; using Content.Server.StationEvents.Components; +using Content.Shared.GameTicking.Components; namespace Content.Server.StationEvents.Events; diff --git a/Content.Server/StationEvents/Events/MassHallucinationsRule.cs b/Content.Server/StationEvents/Events/MassHallucinationsRule.cs index 2239db7f701..c35ba94727f 100644 --- a/Content.Server/StationEvents/Events/MassHallucinationsRule.cs +++ b/Content.Server/StationEvents/Events/MassHallucinationsRule.cs @@ -1,7 +1,7 @@ -using Content.Server.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; using Content.Server.StationEvents.Components; using Content.Server.Traits.Assorted; +using Content.Shared.GameTicking.Components; using Content.Shared.Mind.Components; using Content.Shared.Traits.Assorted.Components; diff --git a/Content.Server/StationEvents/Events/MassMindSwapRule.cs b/Content.Server/StationEvents/Events/MassMindSwapRule.cs index beb08eb8a79..0839b217293 100644 --- a/Content.Server/StationEvents/Events/MassMindSwapRule.cs +++ b/Content.Server/StationEvents/Events/MassMindSwapRule.cs @@ -1,7 +1,7 @@ using Robust.Server.GameObjects; using Robust.Shared.Random; using Content.Server.Abilities.Psionics; -using Content.Server.GameTicking.Components; +using Content.Shared.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; using Content.Server.Psionics; using Content.Server.StationEvents.Components; diff --git a/Content.Server/StationEvents/Events/MeteorSwarmRule.cs b/Content.Server/StationEvents/Events/MeteorSwarmRule.cs index 455011259dc..b97cde86a02 100644 --- a/Content.Server/StationEvents/Events/MeteorSwarmRule.cs +++ b/Content.Server/StationEvents/Events/MeteorSwarmRule.cs @@ -1,7 +1,7 @@ using System.Numerics; -using Content.Server.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; using Content.Server.StationEvents.Components; +using Content.Shared.GameTicking.Components; using Robust.Shared.Map; using Robust.Shared.Map.Components; using Robust.Shared.Physics.Components; diff --git a/Content.Server/StationEvents/Events/NinjaSpawnRule.cs b/Content.Server/StationEvents/Events/NinjaSpawnRule.cs index d9d68a386cf..9cbc193ce61 100644 --- a/Content.Server/StationEvents/Events/NinjaSpawnRule.cs +++ b/Content.Server/StationEvents/Events/NinjaSpawnRule.cs @@ -1,8 +1,8 @@ -using Content.Server.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; using Content.Server.Ninja.Systems; using Content.Server.Station.Components; using Content.Server.StationEvents.Components; +using Content.Shared.GameTicking.Components; using Robust.Shared.Map; using Robust.Shared.Map.Components; diff --git a/Content.Server/StationEvents/Events/NoosphericFryRule.cs b/Content.Server/StationEvents/Events/NoosphericFryRule.cs index 85f98d6f4be..7e025f61e17 100644 --- a/Content.Server/StationEvents/Events/NoosphericFryRule.cs +++ b/Content.Server/StationEvents/Events/NoosphericFryRule.cs @@ -3,7 +3,7 @@ using Robust.Shared.Player; using Content.Server.Atmos.Components; using Content.Server.Atmos.EntitySystems; -using Content.Server.GameTicking.Components; +using Content.Shared.GameTicking.Components; using Content.Shared.Construction.EntitySystems; using Content.Server.GameTicking.Rules.Components; using Content.Server.Popups; @@ -18,6 +18,7 @@ using Content.Shared.Mobs.Systems; using Content.Shared.Psionics.Glimmer; using Robust.Shared.Audio.Systems; +using Robust.Shared.Map.Components; namespace Content.Server.StationEvents.Events; @@ -26,7 +27,7 @@ namespace Content.Server.StationEvents.Events; /// internal sealed class NoosphericFryRule : StationEventSystem { - [Dependency] private readonly IMapManager _mapManager = default!; + [Dependency] private readonly SharedMapSystem _sharedMapSystem = default!; [Dependency] private readonly MobStateSystem _mobStateSystem = default!; [Dependency] private readonly InventorySystem _inventorySystem = default!; [Dependency] private readonly SharedAudioSystem _audioSystem = default!; @@ -111,10 +112,14 @@ protected override void Started(EntityUid uid, NoosphericFryRuleComponent compon { var coordinates = xform.Coordinates; var gridUid = xform.GridUid; - if (!_mapManager.TryGetGrid(gridUid, out var grid)) + + if (gridUid == null) + continue; + + if (!TryComp(gridUid, out var grid)) continue; - var tileIndices = grid.TileIndicesFor(coordinates); + var tileIndices = _sharedMapSystem.TileIndicesFor((EntityUid) gridUid, grid, coordinates); if (_anchorableSystem.TileFree(grid, tileIndices, physics.CollisionLayer, physics.CollisionMask)) _transformSystem.AnchorEntity(reactive, xform); diff --git a/Content.Server/StationEvents/Events/NoosphericStormRule.cs b/Content.Server/StationEvents/Events/NoosphericStormRule.cs index 1de8bad89b5..b2777346ae0 100644 --- a/Content.Server/StationEvents/Events/NoosphericStormRule.cs +++ b/Content.Server/StationEvents/Events/NoosphericStormRule.cs @@ -1,6 +1,6 @@ using Robust.Shared.Random; using Content.Server.Abilities.Psionics; -using Content.Server.GameTicking.Components; +using Content.Shared.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; using Content.Server.StationEvents.Components; using Content.Server.Psionics; diff --git a/Content.Server/StationEvents/Events/NoosphericZapRule.cs b/Content.Server/StationEvents/Events/NoosphericZapRule.cs index 96c33612036..3819d1203a0 100644 --- a/Content.Server/StationEvents/Events/NoosphericZapRule.cs +++ b/Content.Server/StationEvents/Events/NoosphericZapRule.cs @@ -1,4 +1,4 @@ -using Content.Server.GameTicking.Components; +using Content.Shared.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; using Content.Server.Popups; using Content.Server.Psionics; diff --git a/Content.Server/StationEvents/Events/PirateRadioSpawnRule.cs b/Content.Server/StationEvents/Events/PirateRadioSpawnRule.cs index e6d36839f92..518d6409bf5 100644 --- a/Content.Server/StationEvents/Events/PirateRadioSpawnRule.cs +++ b/Content.Server/StationEvents/Events/PirateRadioSpawnRule.cs @@ -8,10 +8,11 @@ using Content.Shared.Salvage; using Content.Shared.Random.Helpers; using System.Linq; -using Content.Server.GameTicking.Components; +using Content.Shared.GameTicking.Components; using Content.Shared.CCVar; using Robust.Shared.Serialization.Manager; using Content.Shared.Parallax.Biomes; +using Robust.Shared.Map; namespace Content.Server.StationEvents.Events; @@ -24,6 +25,7 @@ public sealed class PirateRadioSpawnRule : StationEventSystem().ToList()); + var salvPrototypes = _prototypeManager.EnumeratePrototypes().ToList(); + var salvageProto = _random.Pick(salvPrototypes); + + if (!_mapSystem.MapExists(GameTicker.DefaultMap)) + return; + + // Round didn't start before running this, leading to a null-space test fail. + if (GameTicker.DefaultMap == MapId.Nullspace) + return; + if (!_map.TryLoad(GameTicker.DefaultMap, salvageProto.MapPath.ToString(), out _, debrisOptions)) return; diff --git a/Content.Server/StationEvents/Events/PowerGridCheckRule.cs b/Content.Server/StationEvents/Events/PowerGridCheckRule.cs index b0a0bbc9fe0..e09c88673fb 100644 --- a/Content.Server/StationEvents/Events/PowerGridCheckRule.cs +++ b/Content.Server/StationEvents/Events/PowerGridCheckRule.cs @@ -1,10 +1,10 @@ using System.Threading; -using Content.Server.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; using Content.Server.Power.Components; using Content.Server.Power.EntitySystems; using Content.Server.Station.Components; using Content.Server.StationEvents.Components; +using Content.Shared.GameTicking.Components; using JetBrains.Annotations; using Robust.Shared.Audio; using Robust.Shared.Player; diff --git a/Content.Server/StationEvents/Events/PsionicCatGotYourTongueRule.cs b/Content.Server/StationEvents/Events/PsionicCatGotYourTongueRule.cs index b92097b28d0..f39d87d4e9d 100644 --- a/Content.Server/StationEvents/Events/PsionicCatGotYourTongueRule.cs +++ b/Content.Server/StationEvents/Events/PsionicCatGotYourTongueRule.cs @@ -1,4 +1,4 @@ -using Content.Server.GameTicking.Components; +using Content.Shared.GameTicking.Components; using Robust.Shared.Random; using Robust.Shared.Player; using Content.Server.GameTicking.Rules.Components; diff --git a/Content.Server/StationEvents/Events/RandomEntityStorageSpawnRule.cs b/Content.Server/StationEvents/Events/RandomEntityStorageSpawnRule.cs index 87d50fc8b2a..a9f27938180 100644 --- a/Content.Server/StationEvents/Events/RandomEntityStorageSpawnRule.cs +++ b/Content.Server/StationEvents/Events/RandomEntityStorageSpawnRule.cs @@ -1,8 +1,8 @@ -using Content.Server.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; using Content.Server.StationEvents.Components; using Content.Server.Storage.Components; using Content.Server.Storage.EntitySystems; +using Content.Shared.GameTicking.Components; using Robust.Shared.Map; using Robust.Shared.Random; diff --git a/Content.Server/StationEvents/Events/RandomSentienceRule.cs b/Content.Server/StationEvents/Events/RandomSentienceRule.cs index 7b9173241f7..2fb733e1a67 100644 --- a/Content.Server/StationEvents/Events/RandomSentienceRule.cs +++ b/Content.Server/StationEvents/Events/RandomSentienceRule.cs @@ -1,10 +1,9 @@ using System.Linq; -using Content.Server.GameTicking.Components; -using Content.Server.GameTicking.Rules.Components; -using Content.Server.Ghost.Roles.Components; -using Content.Server.StationEvents.Components; using Content.Server.Announcements.Systems; +using Content.Server.Ghost.Roles.Components; using Content.Server.Station.Components; +using Content.Server.StationEvents.Components; +using Content.Shared.GameTicking.Components; namespace Content.Server.StationEvents.Events; diff --git a/Content.Server/StationEvents/Events/RandomSpawnRule.cs b/Content.Server/StationEvents/Events/RandomSpawnRule.cs index 77744d44e46..e904c24ba60 100644 --- a/Content.Server/StationEvents/Events/RandomSpawnRule.cs +++ b/Content.Server/StationEvents/Events/RandomSpawnRule.cs @@ -1,6 +1,6 @@ -using Content.Server.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; using Content.Server.StationEvents.Components; +using Content.Shared.GameTicking.Components; namespace Content.Server.StationEvents.Events; diff --git a/Content.Server/StationEvents/Events/SolarFlareRule.cs b/Content.Server/StationEvents/Events/SolarFlareRule.cs index 0370b4ee61d..19f6e393d20 100644 --- a/Content.Server/StationEvents/Events/SolarFlareRule.cs +++ b/Content.Server/StationEvents/Events/SolarFlareRule.cs @@ -1,4 +1,3 @@ -using Content.Server.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; using Content.Server.Radio; using Robust.Shared.Random; @@ -8,6 +7,7 @@ using Content.Shared.Radio.Components; using Content.Shared.Doors.Components; using Content.Shared.Doors.Systems; +using Content.Shared.GameTicking.Components; namespace Content.Server.StationEvents.Events; diff --git a/Content.Server/StationEvents/Events/StationEventSystem.cs b/Content.Server/StationEvents/Events/StationEventSystem.cs index 040ebad2260..a88258b9ad9 100644 --- a/Content.Server/StationEvents/Events/StationEventSystem.cs +++ b/Content.Server/StationEvents/Events/StationEventSystem.cs @@ -1,12 +1,12 @@ using System.Linq; using Content.Server.Administration.Logs; using Content.Server.Chat.Systems; -using Content.Server.GameTicking.Components; using Content.Server.GameTicking.Rules; using Content.Server.GameTicking.Rules.Components; using Content.Server.Station.Systems; using Content.Server.StationEvents.Components; using Content.Shared.Database; +using Content.Shared.GameTicking.Components; using Robust.Shared.Audio.Systems; using Robust.Shared.Map; using Robust.Shared.Player; diff --git a/Content.Server/StationEvents/Events/VentClogRule.cs b/Content.Server/StationEvents/Events/VentClogRule.cs index 867f41dcccf..043ea0375aa 100644 --- a/Content.Server/StationEvents/Events/VentClogRule.cs +++ b/Content.Server/StationEvents/Events/VentClogRule.cs @@ -6,9 +6,9 @@ using Robust.Shared.Random; using System.Linq; using Content.Server.Fluids.EntitySystems; -using Content.Server.GameTicking.Components; using Content.Server.GameTicking.Rules.Components; using Content.Server.StationEvents.Components; +using Content.Shared.GameTicking.Components; namespace Content.Server.StationEvents.Events; diff --git a/Content.Server/StationEvents/Events/VentCrittersRule.cs b/Content.Server/StationEvents/Events/VentCrittersRule.cs index c2605039bce..fba9cfa6a60 100644 --- a/Content.Server/StationEvents/Events/VentCrittersRule.cs +++ b/Content.Server/StationEvents/Events/VentCrittersRule.cs @@ -1,7 +1,7 @@ -using Content.Server.GameTicking.Components; using Content.Server.StationEvents.Components; using Content.Server.GameTicking.Rules.Components; using Content.Server.Station.Components; +using Content.Shared.GameTicking.Components; using Content.Shared.Storage; using Robust.Shared.Map; using Robust.Shared.Random; diff --git a/Content.Server/StationEvents/OscillatingStationEventScheduler.cs b/Content.Server/StationEvents/OscillatingStationEventScheduler.cs index 1e6dbd14a18..a9b9de586ee 100644 --- a/Content.Server/StationEvents/OscillatingStationEventScheduler.cs +++ b/Content.Server/StationEvents/OscillatingStationEventScheduler.cs @@ -2,7 +2,7 @@ using System.Diagnostics.CodeAnalysis; using Content.Server.GameTicking; using Content.Server.GameTicking.Rules; -using Content.Server.GameTicking.Components; +using Content.Shared.GameTicking.Components; using Content.Server.StationEvents.Components; using Content.Shared.CCVar; using Robust.Shared.Configuration; diff --git a/Content.Server/StationEvents/RampingStationEventSchedulerSystem.cs b/Content.Server/StationEvents/RampingStationEventSchedulerSystem.cs index a6c38ef765f..545064b39fe 100644 --- a/Content.Server/StationEvents/RampingStationEventSchedulerSystem.cs +++ b/Content.Server/StationEvents/RampingStationEventSchedulerSystem.cs @@ -1,10 +1,10 @@ using Content.Server.GameTicking; -using Content.Server.GameTicking.Components; using Content.Server.GameTicking.Rules; using Content.Server.GameTicking.Rules.Components; using Content.Server.StationEvents.Components; using Content.Server.StationEvents.Events; using Content.Shared.CCVar; +using Content.Shared.GameTicking.Components; using Robust.Shared.Configuration; using Robust.Shared.Random; diff --git a/Content.Server/Storage/EntitySystems/PickRandomSystem.cs b/Content.Server/Storage/EntitySystems/PickRandomSystem.cs index dbbe1dd7785..f0e986e199b 100644 --- a/Content.Server/Storage/EntitySystems/PickRandomSystem.cs +++ b/Content.Server/Storage/EntitySystems/PickRandomSystem.cs @@ -4,6 +4,7 @@ using Content.Shared.Hands.EntitySystems; using Content.Shared.Storage; using Content.Shared.Verbs; +using Content.Shared.Whitelist; using Robust.Shared.Containers; using Robust.Shared.Random; @@ -15,6 +16,7 @@ public sealed class PickRandomSystem : EntitySystem [Dependency] private readonly SharedContainerSystem _container = default!; [Dependency] private readonly SharedHandsSystem _hands = default!; [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; public override void Initialize() { @@ -30,7 +32,7 @@ private void OnGetAlternativeVerbs(EntityUid uid, PickRandomComponent comp, GetV var user = args.User; - var enabled = storage.Container.ContainedEntities.Any(item => comp.Whitelist?.IsValid(item, EntityManager) ?? true); + var enabled = storage.Container.ContainedEntities.Any(item => _whitelistSystem.IsWhitelistPassOrNull(comp.Whitelist, item)); // alt-click / alt-z to pick an item args.Verbs.Add(new AlternativeVerb @@ -48,7 +50,7 @@ private void OnGetAlternativeVerbs(EntityUid uid, PickRandomComponent comp, GetV private void TryPick(EntityUid uid, PickRandomComponent comp, StorageComponent storage, EntityUid user) { - var entities = storage.Container.ContainedEntities.Where(item => comp.Whitelist?.IsValid(item, EntityManager) ?? true).ToArray(); + var entities = storage.Container.ContainedEntities.Where(item => _whitelistSystem.IsWhitelistPassOrNull(comp.Whitelist, item)).ToArray(); if (!entities.Any()) return; diff --git a/Content.Server/Storage/EntitySystems/SpawnItemsOnUseSystem.cs b/Content.Server/Storage/EntitySystems/SpawnItemsOnUseSystem.cs index 4c533ede3ad..3549587aa56 100644 --- a/Content.Server/Storage/EntitySystems/SpawnItemsOnUseSystem.cs +++ b/Content.Server/Storage/EntitySystems/SpawnItemsOnUseSystem.cs @@ -99,6 +99,7 @@ private void OnUseInHand(EntityUid uid, SpawnItemsOnUseComponent component, UseI if (entityToPlaceInHands != null) { _hands.PickupOrDrop(args.User, entityToPlaceInHands.Value); + _audio.PlayPvs(component.Sound, entityToPlaceInHands.Value); } } } diff --git a/Content.Server/Stunnable/Components/StunOnCollideComponent.cs b/Content.Server/Stunnable/Components/StunOnCollideComponent.cs index 1ce1cbea575..cec99f0df72 100644 --- a/Content.Server/Stunnable/Components/StunOnCollideComponent.cs +++ b/Content.Server/Stunnable/Components/StunOnCollideComponent.cs @@ -1,32 +1,40 @@ -namespace Content.Server.Stunnable.Components +using Content.Server.Stunnable.Systems; +using Content.Shared.Whitelist; + +namespace Content.Server.Stunnable.Components; + +/// +/// Adds stun when it collides with an entity +/// +[RegisterComponent, Access(typeof(StunOnCollideSystem))] +public sealed partial class StunOnCollideComponent : Component { - /// - /// Adds stun when it collides with an entity - /// - [RegisterComponent, Access(typeof(StunOnCollideSystem))] - public sealed partial class StunOnCollideComponent : Component - { - // TODO: Can probably predict this. + // TODO: Can probably predict this. - // See stunsystem for what these do - [DataField("stunAmount")] - public int StunAmount; + [DataField] + public TimeSpan StunAmount = TimeSpan.FromSeconds(5); - [DataField("knockdownAmount")] - public int KnockdownAmount; + [DataField] + public TimeSpan KnockdownAmount = TimeSpan.FromSeconds(5); - [DataField("slowdownAmount")] - public int SlowdownAmount; + [DataField] + public TimeSpan SlowdownAmount = TimeSpan.FromSeconds(10); - [DataField("walkSpeedMultiplier")] - public float WalkSpeedMultiplier = 1f; + [DataField] + public float WalkSpeedMultiplier = 1f; - [DataField("runSpeedMultiplier")] - public float RunSpeedMultiplier = 1f; + [DataField] + public float RunSpeedMultiplier = 1f; - /// - /// Fixture we track for the collision. - /// - [DataField("fixture")] public string FixtureID = "projectile"; - } + /// + /// Fixture we track for the collision. + /// + [DataField] + public string FixtureId = "projectile"; + + /// + /// Entities excluded from collision check. + /// + [DataField] + public EntityWhitelist? Blacklist; } diff --git a/Content.Server/Stunnable/Systems/StunOnCollideSystem.cs b/Content.Server/Stunnable/Systems/StunOnCollideSystem.cs index 52e3cab79c5..b7c23477074 100644 --- a/Content.Server/Stunnable/Systems/StunOnCollideSystem.cs +++ b/Content.Server/Stunnable/Systems/StunOnCollideSystem.cs @@ -1,50 +1,51 @@ using Content.Server.Stunnable.Components; -using Content.Shared.Standing; using Content.Shared.StatusEffect; using JetBrains.Annotations; -using Robust.Shared.Physics.Dynamics; using Content.Shared.Throwing; +using Content.Shared.Whitelist; using Robust.Shared.Physics.Events; -namespace Content.Server.Stunnable +namespace Content.Server.Stunnable.Systems; + +[UsedImplicitly] +internal sealed class StunOnCollideSystem : EntitySystem { - [UsedImplicitly] - internal sealed class StunOnCollideSystem : EntitySystem + [Dependency] private readonly StunSystem _stunSystem = default!; + [Dependency] private readonly EntityWhitelistSystem _entityWhitelist = default!; + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(HandleCollide); + SubscribeLocalEvent(HandleThrow); + } + + private void TryDoCollideStun(Entity ent, EntityUid target) { - [Dependency] private readonly StunSystem _stunSystem = default!; - - public override void Initialize() - { - base.Initialize(); - SubscribeLocalEvent(HandleCollide); - SubscribeLocalEvent(HandleThrow); - } - - private void TryDoCollideStun(EntityUid uid, StunOnCollideComponent component, EntityUid target) - { - - if (EntityManager.TryGetComponent(target, out var status)) - { - _stunSystem.TryStun(target, TimeSpan.FromSeconds(component.StunAmount), true, status); - - _stunSystem.TryKnockdown(target, TimeSpan.FromSeconds(component.KnockdownAmount), true, - status); - - _stunSystem.TrySlowdown(target, TimeSpan.FromSeconds(component.SlowdownAmount), true, - component.WalkSpeedMultiplier, component.RunSpeedMultiplier, status); - } - } - private void HandleCollide(EntityUid uid, StunOnCollideComponent component, ref StartCollideEvent args) - { - if (args.OurFixtureId != component.FixtureID) - return; - - TryDoCollideStun(uid, component, args.OtherEntity); - } - - private void HandleThrow(EntityUid uid, StunOnCollideComponent component, ThrowDoHitEvent args) - { - TryDoCollideStun(uid, component, args.Target); - } + if (!EntityManager.TryGetComponent(target, out var status) || + ent.Comp.Blacklist is { } blacklist && _entityWhitelist.IsValid(blacklist, target)) + return; + + _stunSystem.TryStun(target, ent.Comp.StunAmount, true, status); + _stunSystem.TryKnockdown(target, ent.Comp.KnockdownAmount, true, status); + + _stunSystem.TrySlowdown( + target, + ent.Comp.SlowdownAmount, + true, + ent.Comp.WalkSpeedMultiplier, + ent.Comp.RunSpeedMultiplier, + status); } + + private void HandleCollide(Entity ent, ref StartCollideEvent args) + { + if (args.OurFixtureId != ent.Comp.FixtureId) + return; + + TryDoCollideStun(ent, args.OtherEntity); + } + + private void HandleThrow(Entity ent, ref ThrowDoHitEvent args) => + TryDoCollideStun(ent, args.Target); } diff --git a/Content.Server/Tabletop/TabletopSystem.cs b/Content.Server/Tabletop/TabletopSystem.cs index 4376ec4bc61..caa319a0b71 100644 --- a/Content.Server/Tabletop/TabletopSystem.cs +++ b/Content.Server/Tabletop/TabletopSystem.cs @@ -141,6 +141,9 @@ private void AddPlayGameVerb(EntityUid uid, TabletopGameComponent component, Get private void OnTabletopActivate(EntityUid uid, TabletopGameComponent component, ActivateInWorldEvent args) { + if (args.Handled || !args.Complex) + return; + // Check that a player is attached to the entity. if (!EntityManager.TryGetComponent(args.User, out ActorComponent? actor)) return; diff --git a/Content.Server/Targeting/TargetingSystem.cs b/Content.Server/Targeting/TargetingSystem.cs new file mode 100644 index 00000000000..3fc8ea59640 --- /dev/null +++ b/Content.Server/Targeting/TargetingSystem.cs @@ -0,0 +1,54 @@ +using Content.Shared.Body.Systems; +using Content.Shared.Mobs; +using Content.Shared.Targeting; +using Content.Shared.Targeting.Events; + +namespace Content.Server.Targeting; +public sealed class TargetingSystem : SharedTargetingSystem +{ + [Dependency] private readonly SharedBodySystem _bodySystem = default!; + + public override void Initialize() + { + base.Initialize(); + SubscribeNetworkEvent(OnTargetChange); + SubscribeLocalEvent(OnMobStateChange); + } + + private void OnTargetChange(TargetChangeEvent message, EntitySessionEventArgs args) + { + if (!TryComp(GetEntity(message.Uid), out var target)) + return; + + target.Target = message.BodyPart; + Dirty(GetEntity(message.Uid), target); + } + + private void OnMobStateChange(EntityUid uid, TargetingComponent component, MobStateChangedEvent args) + { + // Revival is handled by the server, so we're keeping all of this here. + var changed = false; + + if (args.NewMobState == MobState.Dead) + { + foreach (var part in GetValidParts()) + { + component.BodyStatus[part] = TargetIntegrity.Dead; + changed = true; + } + // I love groin shitcode. + component.BodyStatus[TargetBodyPart.Groin] = TargetIntegrity.Dead; + } + else if (args.OldMobState == MobState.Dead && (args.NewMobState == MobState.Alive || args.NewMobState == MobState.Critical)) + { + component.BodyStatus = _bodySystem.GetBodyPartStatus(uid); + changed = true; + } + + if (changed) + { + Dirty(uid, component); + RaiseNetworkEvent(new TargetIntegrityChangeEvent(GetNetEntity(uid)), uid); + } + } +} diff --git a/Content.Server/Temperature/Components/TemperatureComponent.cs b/Content.Server/Temperature/Components/TemperatureComponent.cs index ec00a570f96..3bfa12f2693 100644 --- a/Content.Server/Temperature/Components/TemperatureComponent.cs +++ b/Content.Server/Temperature/Components/TemperatureComponent.cs @@ -1,7 +1,9 @@ using Content.Server.Temperature.Systems; +using Content.Shared.Alert; using Content.Shared.Atmos; using Content.Shared.Damage; using Content.Shared.FixedPoint; +using Robust.Shared.Prototypes; namespace Content.Server.Temperature.Components; @@ -78,4 +80,10 @@ public float HeatCapacity /// [DataField] public bool TakingDamage = false; + + [DataField] + public ProtoId HotAlert = "Hot"; + + [DataField] + public ProtoId ColdAlert = "Cold"; } diff --git a/Content.Server/Temperature/Systems/TemperatureSystem.cs b/Content.Server/Temperature/Systems/TemperatureSystem.cs index 0f57da4b881..2f4497bdbbc 100644 --- a/Content.Server/Temperature/Systems/TemperatureSystem.cs +++ b/Content.Server/Temperature/Systems/TemperatureSystem.cs @@ -12,6 +12,7 @@ using Content.Shared.Rejuvenate; using Content.Shared.Temperature; using Robust.Shared.Physics.Components; +using Robust.Shared.Prototypes; namespace Content.Server.Temperature.Systems; @@ -33,6 +34,9 @@ public sealed class TemperatureSystem : EntitySystem private float _accumulatedFrametime; + [ValidatePrototypeId] + public const string TemperatureAlertCategory = "Temperature"; + public override void Initialize() { SubscribeLocalEvent(EnqueueDamage); @@ -181,13 +185,13 @@ private void OnRejuvenate(EntityUid uid, TemperatureComponent comp, RejuvenateEv private void ServerAlert(EntityUid uid, AlertsComponent status, OnTemperatureChangeEvent args) { - AlertType type; + ProtoId type; float threshold; float idealTemp; if (!TryComp(uid, out var temperature)) { - _alerts.ClearAlertCategory(uid, AlertCategory.Temperature); + _alerts.ClearAlertCategory(uid, TemperatureAlertCategory); return; } @@ -204,12 +208,12 @@ private void ServerAlert(EntityUid uid, AlertsComponent status, OnTemperatureCha if (args.CurrentTemperature <= idealTemp) { - type = AlertType.Cold; + type = temperature.ColdAlert; threshold = temperature.ColdDamageThreshold; } else { - type = AlertType.Hot; + type = temperature.HotAlert; threshold = temperature.HeatDamageThreshold; } @@ -231,7 +235,7 @@ private void ServerAlert(EntityUid uid, AlertsComponent status, OnTemperatureCha break; case > 0.66f: - _alerts.ClearAlertCategory(uid, AlertCategory.Temperature); + _alerts.ClearAlertCategory(uid, TemperatureAlertCategory); break; } } diff --git a/Content.Server/TimeCycle/TimeCycleSystem.cs b/Content.Server/TimeCycle/TimeCycleSystem.cs new file mode 100644 index 00000000000..f81bf506018 --- /dev/null +++ b/Content.Server/TimeCycle/TimeCycleSystem.cs @@ -0,0 +1,94 @@ +using Robust.Shared.Timing; +using Robust.Shared.Prototypes; +using Robust.Shared.Map.Components; +using Content.Shared.TimeCycle; + +namespace Content.Server.TimeCycle; + +public sealed partial class TimeCycleSystem : EntitySystem +{ + [Dependency] private readonly IGameTiming _gameTiming = default!; + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + + public override void Initialize() + { + base.Initialize(); + } + + public override void Update(float frameTime) + { + var curTime = _gameTiming.CurTime; + var query = EntityQueryEnumerator(); + + while (query.MoveNext(out var mapid, out var timeComp, out var mapLightComp)) + { + if (timeComp.Paused + || curTime < timeComp.DelayTime) + continue; + + // Should be used for developing time palletes or for debuging + // O-o-or... You can cosplay pucchi from JoJo 6 with his 'Made In Heaven' + timeComp.DelayTime = curTime + (timeComp.SpeedUp ? timeComp.SpeedUpMinuteDuration : timeComp.MinuteDuration); + + // Pass minute of map time + timeComp.CurrentTime += TimeSpan.FromMinutes(1); + + // Change ambient color + UpdateAmbientColor(mapid, timeComp, mapLightComp); + } + + base.Update(frameTime); + } + + private void UpdateAmbientColor(EntityUid mapid, TimeCycleComponent timeComp, MapLightComponent mapLightComp) + { + if (!_prototypeManager.TryIndex(timeComp.PalettePrototype, out TimeCyclePalettePrototype? timeEntries) + || timeEntries is null) + return; + + var timeInCycle = GetTimeInCycle(timeComp.CurrentTime); + mapLightComp.AmbientLightColor = GetInterpolatedColor(timeEntries, timeInCycle); + Dirty(mapid, mapLightComp); + } + + // We should convert current 'TimeSpan' (with days) time into one day cycle time (in 24 hours) + private TimeSpan GetTimeInCycle(TimeSpan timeSpan) => + TimeSpan.FromMilliseconds(timeSpan.TotalMilliseconds % TimeSpan.FromHours(24).TotalMilliseconds); + + private Color GetInterpolatedColor(TimeCyclePalettePrototype proto, TimeSpan timeInCycle) + { + // If there is no one any time entries of palette - return black + if (proto.TimeEntries is null) + return Color.Black; + + var currentTime = timeInCycle.TotalHours; + var startTime = -1; + var endTime = -1; + + foreach (KeyValuePair kvp in proto.TimeEntries) + { + var hour = kvp.Key; + var color = kvp.Value; + + if (hour <= currentTime) + startTime = hour; + else if (hour >= currentTime && endTime == -1) + endTime = hour; + } + + if (startTime == -1) + startTime = 0; + else if (endTime == -1) + endTime = 23; + + var entryStart = proto.TimeEntries[startTime]; + var entryEnd = proto.TimeEntries[endTime]; + var entryProgress = GetEntryProgress(TimeSpan.FromHours(startTime), TimeSpan.FromHours(endTime), timeInCycle); + + return Color.InterpolateBetween(entryStart, entryEnd, entryProgress); + } + + private float GetEntryProgress(TimeSpan startTime, TimeSpan endTime, TimeSpan currentTime) => + ((float)(currentTime.TotalMinutes - startTime.TotalMinutes) / (float)(endTime.TotalMinutes - startTime.TotalMinutes)); + +} diff --git a/Content.Server/Toolshed/Commands/VisualizeCommand.cs b/Content.Server/Toolshed/Commands/VisualizeCommand.cs index 2225bfaf447..74fd4cf844a 100644 --- a/Content.Server/Toolshed/Commands/VisualizeCommand.cs +++ b/Content.Server/Toolshed/Commands/VisualizeCommand.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System.Linq; using Content.Server.Administration; using Content.Server.EUI; using Content.Shared.Administration; diff --git a/Content.Server/Traits/Assorted/ForeignerTraitComponent.cs b/Content.Server/Traits/Assorted/ForeignerTraitComponent.cs index a35972f1c86..18d1842a87d 100644 --- a/Content.Server/Traits/Assorted/ForeignerTraitComponent.cs +++ b/Content.Server/Traits/Assorted/ForeignerTraitComponent.cs @@ -34,5 +34,5 @@ public sealed partial class ForeignerTraitComponent : Component /// The base translator prototype to use when creating a translator for the entity. /// [DataField(required: true)] - public ProtoId BaseTranslator = default!; + public EntProtoId BaseTranslator = default!; } diff --git a/Content.Server/Traits/Assorted/HeirloomSystem.cs b/Content.Server/Traits/Assorted/HeirloomSystem.cs new file mode 100644 index 00000000000..fc114b786b4 --- /dev/null +++ b/Content.Server/Traits/Assorted/HeirloomSystem.cs @@ -0,0 +1,56 @@ +using System.Linq; +using Content.Shared.Mood; +using Content.Shared.Traits.Assorted.Components; +using Robust.Shared.Timing; + + +namespace Content.Server.Traits.Assorted; + +public sealed class HeirloomSystem : EntitySystem +{ + [Dependency] private readonly IGameTiming _gameTiming = default!; + + private TimeSpan _nextUpdate; + + + public override void Initialize() + { + base.Initialize(); + + _nextUpdate = _gameTiming.CurTime; + } + + public override void Update(float frameTime) + { + base.Update(frameTime); + + if (_nextUpdate > _gameTiming.CurTime) + return; + + var query = EntityManager.EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var comp)) + { + var children = RecursiveGetAllChildren(uid); + if (!children.Any(c => c == comp.Heirloom)) + continue; + var ev = new MoodEffectEvent(comp.Moodlet); + RaiseLocalEvent(uid, ev); + } + + query.Dispose(); + + _nextUpdate = _gameTiming.CurTime + TimeSpan.FromSeconds(10); + } + + private IEnumerable RecursiveGetAllChildren(EntityUid uid) + { + var xform = Transform(uid); + var children = xform.ChildEnumerator; + while (children.MoveNext(out var child)) + { + yield return child; + foreach (var c in RecursiveGetAllChildren(child)) + yield return c; + } + } +} diff --git a/Content.Server/Traits/Assorted/LightweightDrunkSystem.cs b/Content.Server/Traits/Assorted/LightweightDrunkSystem.cs index b5e9b877764..f974fe75607 100644 --- a/Content.Server/Traits/Assorted/LightweightDrunkSystem.cs +++ b/Content.Server/Traits/Assorted/LightweightDrunkSystem.cs @@ -13,7 +13,7 @@ public override void Initialize() private void OnTryMetabolizeReagent(EntityUid uid, LightweightDrunkComponent comp, ref TryMetabolizeReagent args) { - Log.Debug(args.Prototype.ID); + //Log.Debug(args.Prototype.ID); if (args.Prototype.ID != "Ethanol") return; diff --git a/Content.Server/Traits/Assorted/ParacusiaSystem.cs b/Content.Server/Traits/Assorted/ParacusiaSystem.cs index cf08e09e90e..d92e200a4fa 100644 --- a/Content.Server/Traits/Assorted/ParacusiaSystem.cs +++ b/Content.Server/Traits/Assorted/ParacusiaSystem.cs @@ -14,7 +14,7 @@ public void SetSounds(EntityUid uid, SoundSpecifier sounds, ParacusiaComponent? return; } component.Sounds = sounds; - Dirty(component); + Dirty(uid, component); } public void SetTime(EntityUid uid, float minTime, float maxTime, ParacusiaComponent? component = null) @@ -25,7 +25,7 @@ public void SetTime(EntityUid uid, float minTime, float maxTime, ParacusiaCompon } component.MinTimeBetweenIncidents = minTime; component.MaxTimeBetweenIncidents = maxTime; - Dirty(component); + Dirty(uid, component); } public void SetDistance(EntityUid uid, float maxSoundDistance, ParacusiaComponent? component = null) @@ -35,6 +35,6 @@ public void SetDistance(EntityUid uid, float maxSoundDistance, ParacusiaComponen return; } component.MaxSoundDistance = maxSoundDistance; - Dirty(component); + Dirty(uid, component); } } diff --git a/Content.Server/Traits/TraitSystem.Functions.cs b/Content.Server/Traits/TraitSystem.Functions.cs index 528cb4f9183..57b508018a6 100644 --- a/Content.Server/Traits/TraitSystem.Functions.cs +++ b/Content.Server/Traits/TraitSystem.Functions.cs @@ -10,6 +10,14 @@ using Content.Server.Language; using Content.Shared.Mood; using Content.Server.NPC.Systems; +using Content.Shared.Traits.Assorted.Components; +using Content.Shared.Damage; +using Content.Shared.Chemistry.Components; +using Content.Shared.Chemistry.EntitySystems; +using Content.Shared.Mobs.Components; +using Content.Shared.Mobs.Systems; +using Content.Shared.Mobs; +using Content.Shared.Damage.Components; namespace Content.Server.Traits; @@ -74,7 +82,7 @@ public override void OnPlayerSpawn(EntityUid uid, ISerializationManager serializationManager) { foreach (var (name, _) in Components) - entityManager.RemoveComponent(uid, (Component) factory.GetComponent(name)); + entityManager.RemoveComponentDeferred(uid, factory.GetComponent(name).GetType()); } } @@ -263,3 +271,132 @@ public override void OnPlayerSpawn(EntityUid uid, vvm.WritePath(path, value); } } + +/// Used for writing to an entity's ExtendDescriptionComponent. If one is not present, it will be added! +/// Use this to create traits that add special descriptions for when a character is shift-click examined. +[UsedImplicitly] +public sealed partial class TraitPushDescription : TraitFunction +{ + [DataField, AlwaysPushInheritance] + public List DescriptionExtensions { get; private set; } = new(); + + public override void OnPlayerSpawn(EntityUid uid, + IComponentFactory factory, + IEntityManager entityManager, + ISerializationManager serializationManager) + { + entityManager.EnsureComponent(uid, out var descComp); + foreach (var descExtension in DescriptionExtensions) + descComp.DescriptionList.Add(descExtension); + } +} + +[UsedImplicitly] +public sealed partial class TraitAddArmor : TraitFunction +{ + /// + /// The list of prototype ID's of DamageModifierSets to be added to the enumerable damage modifiers of an entity. + /// + /// + /// Dear Maintainer, I'm well aware that validating protoIds is a thing. Unfortunately, this is for a legacy system that doesn't have validated prototypes. + /// And refactoring the entire DamageableSystem is way the hell outside of the scope of the PR adding this function. + /// {FaridaIsCute.png} - Solidus + /// + [DataField, AlwaysPushInheritance] + public List DamageModifierSets { get; private set; } = new(); + + public override void OnPlayerSpawn(EntityUid uid, + IComponentFactory factory, + IEntityManager entityManager, + ISerializationManager serializationManager) + { + entityManager.EnsureComponent(uid, out var damageableComponent); + foreach (var modifierSet in DamageModifierSets) + damageableComponent.DamageModifierSets.Add(modifierSet); + } +} + +[UsedImplicitly] +public sealed partial class TraitAddSolutionContainer : TraitFunction +{ + [DataField, AlwaysPushInheritance] + public Dictionary Solutions { get; private set; } = new(); + + public override void OnPlayerSpawn(EntityUid uid, + IComponentFactory factory, + IEntityManager entityManager, + ISerializationManager serializationManager) + { + var solutionContainer = entityManager.System(); + + foreach (var (containerKey, solution) in Solutions) + { + var hasSolution = solutionContainer.EnsureSolution(uid, containerKey, out Solution? newSolution); + + if (!hasSolution) + return; + + newSolution!.AddSolution(solution.Solution, null); + } + } +} + +[UsedImplicitly] +public sealed partial class TraitModifyMobThresholds : TraitFunction +{ + [DataField, AlwaysPushInheritance] + public int CritThresholdModifier; + + [DataField, AlwaysPushInheritance] + public int DeadThresholdModifier; + + public override void OnPlayerSpawn(EntityUid uid, + IComponentFactory factory, + IEntityManager entityManager, + ISerializationManager serializationManager) + { + if (!entityManager.TryGetComponent(uid, out var threshold)) + return; + + var thresholdSystem = entityManager.System(); + if (CritThresholdModifier != 0) + { + var critThreshold = thresholdSystem.GetThresholdForState(uid, MobState.Critical, threshold); + if (critThreshold != 0) + thresholdSystem.SetMobStateThreshold(uid, critThreshold + CritThresholdModifier, MobState.Critical); + } + + if (DeadThresholdModifier != 0) + { + var deadThreshold = thresholdSystem.GetThresholdForState(uid, MobState.Dead, threshold); + if (deadThreshold != 0) + thresholdSystem.SetMobStateThreshold(uid, deadThreshold + DeadThresholdModifier, MobState.Dead); + } + } +} + +[UsedImplicitly] +public sealed partial class TraitModifyStamina : TraitFunction +{ + [DataField, AlwaysPushInheritance] + public float StaminaModifier; + + [DataField, AlwaysPushInheritance] + public float DecayModifier; + + [DataField, AlwaysPushInheritance] + public float CooldownModifier; + + public override void OnPlayerSpawn(EntityUid uid, + IComponentFactory factory, + IEntityManager entityManager, + ISerializationManager serializationManager) + { + if (!entityManager.TryGetComponent(uid, out var staminaComponent)) + return; + + staminaComponent.CritThreshold += StaminaModifier; + staminaComponent.Decay += DecayModifier; + staminaComponent.Cooldown += CooldownModifier; + } +} diff --git a/Content.Server/Traits/TraitSystem.cs b/Content.Server/Traits/TraitSystem.cs index 75771a57432..7a028b381ad 100644 --- a/Content.Server/Traits/TraitSystem.cs +++ b/Content.Server/Traits/TraitSystem.cs @@ -1,14 +1,23 @@ using System.Linq; +using Content.Server.Administration.Logs; +using Content.Server.Administration.Systems; +using Content.Server.Chat.Managers; using Content.Server.GameTicking; using Content.Server.Players.PlayTimeTracking; +using Content.Shared.CCVar; +using Content.Shared.Chat; using Content.Shared.Customization.Systems; +using Content.Shared.Database; using Content.Shared.Players; using Content.Shared.Roles; using Content.Shared.Traits; +using Robust.Server.Player; using Robust.Shared.Configuration; using Robust.Shared.Prototypes; +using Robust.Shared.Random; using Robust.Shared.Serialization.Manager; using Robust.Shared.Utility; +using Timer = Robust.Shared.Timing.Timer; namespace Content.Server.Traits; @@ -20,6 +29,11 @@ public sealed class TraitSystem : EntitySystem [Dependency] private readonly PlayTimeTrackingManager _playTimeTracking = default!; [Dependency] private readonly IConfigurationManager _configuration = default!; [Dependency] private readonly IComponentFactory _componentFactory = default!; + [Dependency] private readonly IAdminLogManager _adminLog = default!; + [Dependency] private readonly AdminSystem _adminSystem = default!; + [Dependency] private readonly IPlayerManager _playerManager = default!; + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly IChatManager _chatManager = default!; public override void Initialize() { @@ -31,6 +45,9 @@ public override void Initialize() // When the player is spawned in, add all trait components selected during character creation private void OnPlayerSpawnComplete(PlayerSpawnCompleteEvent args) { + var pointsTotal = _configuration.GetCVar(CCVars.GameTraitsDefaultPoints); + var traitSelections = _configuration.GetCVar(CCVars.GameTraitsMax); + foreach (var traitId in args.Profile.TraitPreferences) { if (!_prototype.TryIndex(traitId, out var traitPrototype)) @@ -47,8 +64,15 @@ private void OnPlayerSpawnComplete(PlayerSpawnCompleteEvent args) out _)) continue; + // To check for cheaters. :FaridaBirb.png: + pointsTotal += traitPrototype.Points; + --traitSelections; + AddTrait(args.Mob, traitPrototype); } + + if (pointsTotal < 0 || traitSelections < 0) + PunishCheater(args.Mob); } /// @@ -59,4 +83,41 @@ public void AddTrait(EntityUid uid, TraitPrototype traitPrototype) foreach (var function in traitPrototype.Functions) function.OnPlayerSpawn(uid, _componentFactory, EntityManager, _serialization); } + + /// + /// On a non-cheating client, it's not possible to save a character with a negative number of traits. This can however + /// trigger incorrectly if a character was saved, and then at a later point in time an admin changes the traits Cvars to reduce the points. + /// Or if the points costs of traits is increased. + /// + private void PunishCheater(EntityUid uid) + { + _adminLog.Add(LogType.AdminMessage, LogImpact.High, + $"{ToPrettyString(uid):entity} attempted to spawn with an invalid trait list. This might be a mistake, or they might be cheating"); + + if (!_configuration.GetCVar(CCVars.TraitsPunishCheaters) + || !_playerManager.TryGetSessionByEntity(uid, out var targetPlayer)) + return; + + // For maximum comedic effect, this is plenty of time for the cheater to get on station and start interacting with people. + var timeToDestroy = _random.NextFloat(120, 360); + + Timer.Spawn(TimeSpan.FromSeconds(timeToDestroy), () => VaporizeCheater(targetPlayer)); + } + + /// + /// https://www.youtube.com/watch?v=X2QMN0a_TrA + /// + private void VaporizeCheater (Robust.Shared.Player.ICommonSession targetPlayer) + { + _adminSystem.Erase(targetPlayer); + + var feedbackMessage = $"[font size=24][color=#ff0000]{"You have spawned in with an illegal trait point total. If this was a result of cheats, then your nonexistence is a skill issue. Otherwise, feel free to click 'Return To Lobby', and fix your trait selections."}[/color][/font]"; + _chatManager.ChatMessageToOne( + ChatChannel.Emotes, + feedbackMessage, + feedbackMessage, + EntityUid.Invalid, + false, + targetPlayer.Channel); + } } diff --git a/Content.Server/Weapons/Melee/MeleeWeaponSystem.cs b/Content.Server/Weapons/Melee/MeleeWeaponSystem.cs index 74e76f0dd50..26f0c20608e 100644 --- a/Content.Server/Weapons/Melee/MeleeWeaponSystem.cs +++ b/Content.Server/Weapons/Melee/MeleeWeaponSystem.cs @@ -22,6 +22,7 @@ using Robust.Shared.Map; using Robust.Shared.Player; using Robust.Shared.Random; +using Robust.Shared.Utility; using System.Linq; using System.Numerics; using Content.Shared.Chat; @@ -52,14 +53,26 @@ private void OnMeleeExamineDamage(EntityUid uid, MeleeWeaponComponent component, return; var damageSpec = GetDamage(uid, args.User, component); - if (damageSpec.Empty) return; - _damageExamine.AddDamageExamine(args.Message, damageSpec, Loc.GetString("damage-melee")); + if (!component.DisableClick) + _damageExamine.AddDamageExamine(args.Message, damageSpec, Loc.GetString("damage-melee")); - if (damageSpec * component.HeavyDamageBaseModifier != damageSpec) - _damageExamine.AddDamageExamine(args.Message, damageSpec * component.HeavyDamageBaseModifier, Loc.GetString("damage-melee-heavy")); + if (!component.DisableHeavy) + { + if (damageSpec * component.HeavyDamageBaseModifier != damageSpec) + _damageExamine.AddDamageExamine(args.Message, damageSpec * component.HeavyDamageBaseModifier, Loc.GetString("damage-melee-heavy")); + + if (component.HeavyStaminaCost != 0) + { + var staminaCostMarkup = FormattedMessage.FromMarkupOrThrow( + Loc.GetString("damage-stamina-cost", + ("type", Loc.GetString("damage-melee-heavy")), ("cost", component.HeavyStaminaCost))); + args.Message.PushNewline(); + args.Message.AddMessage(staminaCostMarkup); + } + } } protected override bool ArcRaySuccessful(EntityUid targetUid, Vector2 position, Angle angle, Angle arcWidth, float range, MapId mapId, diff --git a/Content.Server/Weapons/Ranged/Systems/GunSystem.Battery.cs b/Content.Server/Weapons/Ranged/Systems/GunSystem.Battery.cs index 25010b22333..0dcd92f9417 100644 --- a/Content.Server/Weapons/Ranged/Systems/GunSystem.Battery.cs +++ b/Content.Server/Weapons/Ranged/Systems/GunSystem.Battery.cs @@ -51,7 +51,7 @@ private void UpdateShots(EntityUid uid, BatteryAmmoProviderComponent component, if (component.Shots != shots || component.Capacity != maxShots) { - Dirty(component); + Dirty(uid, component); } component.Shots = shots; diff --git a/Content.Server/Weapons/Ranged/Systems/GunSystem.Revolver.cs b/Content.Server/Weapons/Ranged/Systems/GunSystem.Revolver.cs index 6ff47507299..59e53f1f72a 100644 --- a/Content.Server/Weapons/Ranged/Systems/GunSystem.Revolver.cs +++ b/Content.Server/Weapons/Ranged/Systems/GunSystem.Revolver.cs @@ -13,6 +13,6 @@ protected override void SpinRevolver(EntityUid revolverUid, RevolverAmmoProvider return; component.CurrentIndex = index; - Dirty(component); + Dirty(revolverUid, component); } } diff --git a/Content.Server/Whetstone/WhetstoneComponent.cs b/Content.Server/Whetstone/WhetstoneComponent.cs new file mode 100644 index 00000000000..59fab2e04bf --- /dev/null +++ b/Content.Server/Whetstone/WhetstoneComponent.cs @@ -0,0 +1,34 @@ +using Content.Shared.Damage; +using Content.Shared.FixedPoint; +using Content.Shared.Whitelist; +using Robust.Shared.Audio; + +namespace Content.Server.Whetstone; + +[RegisterComponent] +public sealed partial class WhetstoneComponent : Component +{ + [DataField] + public int Uses = 1; + + [DataField] + public DamageSpecifier DamageIncrease = new() + { + DamageDict = new Dictionary + { + ["Slash"] = 4 + } + }; + + [DataField] + public float MaximumIncrease = 25; + + [DataField] + public EntityWhitelist Whitelist = new(); + + [DataField] + public EntityWhitelist Blacklist = new(); + + [DataField] + public SoundSpecifier SharpenAudio = new SoundPathSpecifier("/Audio/SimpleStation14/Items/Handling/sword_sheath.ogg"); +} diff --git a/Content.Server/Whetstone/WhetstoneSystem.cs b/Content.Server/Whetstone/WhetstoneSystem.cs new file mode 100644 index 00000000000..e0d55a8a6a9 --- /dev/null +++ b/Content.Server/Whetstone/WhetstoneSystem.cs @@ -0,0 +1,52 @@ +using Content.Shared.Interaction; +using Content.Shared.Item; +using Content.Shared.Weapons.Melee; +using Content.Shared.WhiteDream.BloodCult; +using Content.Shared.Whitelist; +using Robust.Server.Audio; +using Robust.Server.GameObjects; +using Robust.Shared.Player; + +namespace Content.Server.Whetstone; + +public sealed class WhetstoneSystem : EntitySystem +{ + [Dependency] private readonly AppearanceSystem _appearance = default!; + [Dependency] private readonly AudioSystem _audio = default!; + [Dependency] private readonly EntityWhitelistSystem _entityWhitelist = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnAfterInteract); + } + + private void OnAfterInteract(Entity stone, ref AfterInteractEvent args) + { + if (args.Handled || args.Target is not { } target || stone.Comp.Uses <= 0 || + !TryComp(target, out MeleeWeaponComponent? meleeWeapon) || + !HasComp(target) || // We don't want to sharpen felinids or vulps + _entityWhitelist.IsValid(stone.Comp.Blacklist, target) || + !_entityWhitelist.IsValid(stone.Comp.Whitelist, target)) + return; + + foreach (var (damageTypeId, value) in stone.Comp.DamageIncrease.DamageDict) + { + if (!meleeWeapon.Damage.DamageDict.TryGetValue(damageTypeId, out var defaultDamage) || + defaultDamage > stone.Comp.MaximumIncrease) + continue; + + var newDamage = defaultDamage + value; + if (newDamage > stone.Comp.MaximumIncrease) + newDamage = stone.Comp.MaximumIncrease; + + meleeWeapon.Damage.DamageDict[damageTypeId] = newDamage; + } + + _audio.PlayEntity(stone.Comp.SharpenAudio, Filter.Pvs(target), target, true); + stone.Comp.Uses--; + if (stone.Comp.Uses <= 0) + _appearance.SetData(stone, GenericCultVisuals.State, false); + } +} diff --git a/Content.Server/WhiteDream/BloodCult/BloodBoilProjectile/BloodBoilProjectileComponent.cs b/Content.Server/WhiteDream/BloodCult/BloodBoilProjectile/BloodBoilProjectileComponent.cs new file mode 100644 index 00000000000..931eb247f2e --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/BloodBoilProjectile/BloodBoilProjectileComponent.cs @@ -0,0 +1,7 @@ +namespace Content.Server.WhiteDream.BloodCult.BloodBoilProjectile; + +[RegisterComponent] +public sealed partial class BloodBoilProjectileComponent : Component +{ + public EntityUid Target; +} diff --git a/Content.Server/WhiteDream/BloodCult/BloodBoilProjectile/BloodBoilProjectileSystem.cs b/Content.Server/WhiteDream/BloodCult/BloodBoilProjectile/BloodBoilProjectileSystem.cs new file mode 100644 index 00000000000..7054416253b --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/BloodBoilProjectile/BloodBoilProjectileSystem.cs @@ -0,0 +1,19 @@ +using Robust.Shared.Physics.Events; + +namespace Content.Server.WhiteDream.BloodCult.BloodBoilProjectile; + +public sealed class BloodBoilProjectileSystem : EntitySystem +{ + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(CheckCollision); + } + + private void CheckCollision(Entity ent, ref PreventCollideEvent args) + { + if (args.OtherEntity != ent.Comp.Target) + args.Cancelled = true; + } +} diff --git a/Content.Server/WhiteDream/BloodCult/BloodCultChatSystem.cs b/Content.Server/WhiteDream/BloodCult/BloodCultChatSystem.cs new file mode 100644 index 00000000000..5a9e2055c1f --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/BloodCultChatSystem.cs @@ -0,0 +1,70 @@ +using System.Linq; +using Content.Server.Administration.Managers; +using Content.Server.Chat.Managers; +using Content.Server.Chat.Systems; +using Content.Server.Language; +using Content.Shared.Chat; +using Content.Shared.Language; +using Content.Shared.WhiteDream.BloodCult.BloodCultist; +using Robust.Shared.Network; +using Robust.Shared.Player; +using Robust.Shared.Utility; + +namespace Content.Server.WhiteDream.BloodCult; + +public sealed class BloodCultChatSystem : EntitySystem +{ + [Dependency] private readonly IAdminManager _adminManager = default!; + [Dependency] private readonly IChatManager _chatManager = default!; + + [Dependency] private readonly LanguageSystem _language = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnSpeak); + } + + private void OnSpeak(EntityUid uid, BloodCultistComponent component, EntitySpokeEvent args) + { + if (args.Source != uid || args.Language.ID != component.CultLanguageId || args.IsWhisper) + return; + + SendMessage(args.Source, args.Message, false, args.Language); + } + + private void SendMessage(EntityUid source, string message, bool hideChat, LanguagePrototype language) + { + var clients = GetClients(language.ID); + var playerName = Name(source); + var wrappedMessage = Loc.GetString("chat-manager-send-cult-chat-wrap-message", + ("channelName", Loc.GetString("chat-manager-cult-channel-name")), + ("player", playerName), + ("message", FormattedMessage.EscapeText(message))); + + _chatManager.ChatMessageToMany(ChatChannel.Telepathic, + message, + wrappedMessage, + source, + hideChat, + true, + clients.ToList(), + language.SpeechOverride.Color); + } + + private IEnumerable GetClients(string languageId) + { + return Filter.Empty() + .AddWhereAttachedEntity(entity => CanHearBloodCult(entity, languageId)) + .Recipients + .Union(_adminManager.ActiveAdmins) + .Select(p => p.Channel); + } + + private bool CanHearBloodCult(EntityUid entity, string languageId) + { + var understood = _language.GetUnderstoodLanguages(entity); + return understood.Any(language => language.Id == languageId); + } +} diff --git a/Content.Server/WhiteDream/BloodCult/BloodRites/BloodRitesAuraComponent.cs b/Content.Server/WhiteDream/BloodCult/BloodRites/BloodRitesAuraComponent.cs new file mode 100644 index 00000000000..081e0e04c6e --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/BloodRites/BloodRitesAuraComponent.cs @@ -0,0 +1,69 @@ +using Content.Shared.DoAfter; +using Content.Shared.FixedPoint; +using Robust.Shared.Audio; +using Robust.Shared.Prototypes; +using Robust.Shared.Utility; + +namespace Content.Server.WhiteDream.BloodCult.BloodRites; + +[RegisterComponent] +public sealed partial class BloodRitesAuraComponent : Component +{ + /// + /// Total blood stored in the Aura. + /// + [DataField] + public FixedPoint2 StoredBlood; + + /// + /// Ratio which is applied to calculate the amount to regenerate blood in someone. + /// + [DataField] + public float BloodRegenerationRatio = 0.1f; + + /// + /// Ratio which is applied to calculate the amount to heal yourself. + /// + [DataField] + public float SelfHealRatio = 2f; + + /// + /// The amount of blood that is extracted from a person on using it on them. + /// + [DataField] + public FixedPoint2 BloodExtractionAmount = 30f; + + /// + /// Time required to extract blood of something with bloodstream. + /// + [DataField] + public TimeSpan BloodExtractionTime = TimeSpan.FromSeconds(5); + + /// + /// How much is consumed on healing. + /// + [DataField] + public FixedPoint2 HealingCost = 40; + + /// + /// How much damage each use of the hand will heal. Will heal literally anything. Nar'sien magic, you know. + /// + [DataField] + public FixedPoint2 TotalHealing = 20; + + [DataField] + public float PuddleConsumeRadius = 0.5f; + + [DataField] + public SoundSpecifier BloodRitesAudio = new SoundPathSpecifier( + new ResPath("/Audio/WhiteDream/BloodCult/rites.ogg"), + AudioParams.Default.WithVolume(-3)); + + [DataField] + public Dictionary Crafts = new() + { + ["BloodSpear"] = 300 + }; + + public DoAfterId? ExtractDoAfterId; +} diff --git a/Content.Server/WhiteDream/BloodCult/BloodRites/BloodRitesSystem.cs b/Content.Server/WhiteDream/BloodCult/BloodRites/BloodRitesSystem.cs new file mode 100644 index 00000000000..63b1c08aaca --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/BloodRites/BloodRitesSystem.cs @@ -0,0 +1,273 @@ +using Content.Server.Body.Components; +using Content.Server.Body.Systems; +using Content.Server.DoAfter; +using Content.Server.Hands.Systems; +using Content.Server.Popups; +using Content.Shared.Chemistry.Components.SolutionManager; +using Content.Shared.Chemistry.EntitySystems; +using Content.Shared.Chemistry.Reagent; +using Content.Shared.Damage; +using Content.Shared.Damage.Prototypes; +using Content.Shared.DoAfter; +using Content.Shared.Examine; +using Content.Shared.Fluids.Components; +using Content.Shared.Interaction; +using Content.Shared.Interaction.Events; +using Content.Shared.Mobs; +using Content.Shared.Mobs.Components; +using Content.Shared.UserInterface; +using Content.Shared.Weapons.Melee.Events; +using Content.Shared.WhiteDream.BloodCult.BloodCultist; +using Content.Shared.WhiteDream.BloodCult.Constructs; +using Content.Shared.WhiteDream.BloodCult.Spells; +using Content.Shared.WhiteDream.BloodCult.UI; +using Robust.Server.Audio; +using Robust.Server.GameObjects; +using Robust.Shared.Prototypes; + +namespace Content.Server.WhiteDream.BloodCult.BloodRites; + +public sealed class BloodRitesSystem : EntitySystem +{ + [Dependency] private readonly IPrototypeManager _protoManager = default!; + + [Dependency] private readonly AudioSystem _audio = default!; + [Dependency] private readonly BloodstreamSystem _bloodstream = default!; + [Dependency] private readonly DamageableSystem _damageable = default!; + [Dependency] private readonly DoAfterSystem _doAfter = default!; + [Dependency] private readonly HandsSystem _handsSystem = default!; + [Dependency] private readonly EntityLookupSystem _lookup = default!; + [Dependency] private readonly TransformSystem _transform = default!; + [Dependency] private readonly PopupSystem _popup = default!; + [Dependency] private readonly SharedSolutionContainerSystem _solutionContainer = default!; + [Dependency] private readonly UserInterfaceSystem _ui = default!; + + private readonly ProtoId _bloodProto = "Blood"; + + public override void Initialize() + { + SubscribeLocalEvent(OnExamining); + + SubscribeLocalEvent(OnAfterInteract); + SubscribeLocalEvent(OnDoAfter); + + SubscribeLocalEvent(OnCultistHit); + + SubscribeLocalEvent(BeforeUiOpen); + SubscribeLocalEvent(OnRitesMessage); + + SubscribeLocalEvent(OnDropped); + } + + private void OnExamining(Entity rites, ref ExaminedEvent args) => + args.PushMarkup(Loc.GetString("blood-rites-stored-blood", ("amount", rites.Comp.StoredBlood.ToString()))); + + private void OnAfterInteract(Entity rites, ref AfterInteractEvent args) + { + if (!args.Target.HasValue || args.Handled || args.Target == args.User || + HasComp(args.Target)) + return; + + if (HasComp(args.Target)) + { + if (rites.Comp.ExtractDoAfterId.HasValue) + return; + + var ev = new BloodRitesExtractDoAfterEvent(); + var time = rites.Comp.BloodExtractionTime; + var doAfterArgs = new DoAfterArgs(EntityManager, args.User, time, ev, rites, args.Target) + { + BreakOnUserMove = true, + BreakOnTargetMove = true, + BreakOnDamage = true + }; + if (_doAfter.TryStartDoAfter(doAfterArgs, out var doAfterId)) + rites.Comp.ExtractDoAfterId = doAfterId; + + args.Handled = true; + return; + } + + if (HasComp(args.Target)) + { + ConsumePuddles(args.Target.Value, rites); + args.Handled = true; + } + else if (TryComp(args.Target, out SolutionContainerManagerComponent? solutionContainer)) + { + ConsumeBloodFromSolution((args.Target.Value, solutionContainer), rites); + args.Handled = true; + } + } + + private void OnDoAfter(Entity rites, ref BloodRitesExtractDoAfterEvent args) + { + rites.Comp.ExtractDoAfterId = null; + if (args.Cancelled || args.Handled || args.Target is not { } target || + !TryComp(target, out BloodstreamComponent? bloodstream) || bloodstream.BloodSolution is not { } solution) + return; + + var extracted = solution.Comp.Solution.RemoveReagent(_bloodProto, rites.Comp.BloodExtractionAmount); + rites.Comp.StoredBlood += extracted; + _audio.PlayPvs(rites.Comp.BloodRitesAudio, rites); + args.Handled = true; + } + + private void OnCultistHit(Entity rites, ref MeleeHitEvent args) + { + if (args.HitEntities.Count == 0) + return; + + var playSound = false; + + foreach (var target in args.HitEntities) + { + if (!HasComp(target) && !HasComp(target)) + return; + + if (TryComp(target, out BloodstreamComponent? bloodstream)) + { + if (RestoreBloodLevel(rites, args.User, (target, bloodstream))) + playSound = true; + } + + if (TryComp(target, out DamageableComponent? damageable)) + { + if (Heal(rites, args.User, (target, damageable))) + playSound = true; + } + } + + if (playSound) + _audio.PlayPvs(rites.Comp.BloodRitesAudio, rites); + } + + private void BeforeUiOpen(Entity rites, ref BeforeActivatableUIOpenEvent args) + { + var state = new BloodRitesUiState(rites.Comp.Crafts, rites.Comp.StoredBlood); + _ui.SetUiState(rites.Owner, BloodRitesUiKey.Key, state); + } + + private void OnRitesMessage(Entity rites, ref BloodRitesMessage args) + { + Del(rites); + + var ent = Spawn(args.SelectedProto, _transform.GetMapCoordinates(args.Actor)); + _handsSystem.TryPickup(args.Actor, ent); + } + + private void OnDropped(Entity rites, ref DroppedEvent args) => QueueDel(rites); + + private bool Heal(Entity rites, EntityUid user, Entity target) + { + if (target.Comp.TotalDamage == 0) + return false; + + if (TryComp(target, out MobStateComponent? mobState) && mobState.CurrentState == MobState.Dead) + { + _popup.PopupEntity(Loc.GetString("blood-rites-heal-dead"), target, user); + return false; + } + + if (!HasComp(target)) + { + _popup.PopupEntity(Loc.GetString("blood-rites-heal-no-bloodstream"), target, user); + return false; + } + + var bloodCost = rites.Comp.HealingCost; + if (target.Owner == user) + bloodCost *= rites.Comp.SelfHealRatio; + + if (bloodCost >= rites.Comp.StoredBlood) + { + _popup.PopupEntity(Loc.GetString("blood-rites-not-enough-blood"), rites, user); + return false; + } + + var healingLeft = rites.Comp.TotalHealing; + + foreach (var (type, value) in target.Comp.Damage.DamageDict) + { + // somehow? + if (!_protoManager.TryIndex(type, out DamageTypePrototype? damageType)) + continue; + + var toHeal = value; + if (toHeal > healingLeft) + toHeal = healingLeft; + + _damageable.TryChangeDamage(target, new DamageSpecifier(damageType, -toHeal)); + + healingLeft -= toHeal; + if (healingLeft == 0) + break; + } + + rites.Comp.StoredBlood -= bloodCost; + return true; + } + + private bool RestoreBloodLevel( + Entity rites, + EntityUid user, + Entity target + ) + { + if (target.Comp.BloodSolution is null) + return false; + + _bloodstream.FlushChemicals(target, "", 10); + var missingBlood = target.Comp.BloodSolution.Value.Comp.Solution.AvailableVolume; + if (missingBlood == 0) + return false; + + var bloodCost = missingBlood * rites.Comp.BloodRegenerationRatio; + if (target.Owner == user) + bloodCost *= rites.Comp.SelfHealRatio; + + if (bloodCost > rites.Comp.StoredBlood) + { + _popup.PopupEntity("blood-rites-no-blood-left", rites, user); + bloodCost = rites.Comp.StoredBlood; + } + + _bloodstream.TryModifyBleedAmount(target, -3); + _bloodstream.TryModifyBloodLevel(target, bloodCost / rites.Comp.BloodRegenerationRatio); + + rites.Comp.StoredBlood -= bloodCost; + return true; + } + + private void ConsumePuddles(EntityUid origin, Entity rites) + { + var coords = Transform(origin).Coordinates; + + var lookup = _lookup.GetEntitiesInRange( + coords, + rites.Comp.PuddleConsumeRadius, + LookupFlags.Uncontained); + + foreach (var puddle in lookup) + { + if (!TryComp(puddle, out SolutionContainerManagerComponent? solutionContainer)) + continue; + ConsumeBloodFromSolution((puddle, solutionContainer), rites); + } + + _audio.PlayPvs(rites.Comp.BloodRitesAudio, rites); + } + + private void ConsumeBloodFromSolution( + Entity ent, + Entity rites + ) + { + foreach (var (_, solution) in _solutionContainer.EnumerateSolutions(ent)) + { + rites.Comp.StoredBlood += solution.Comp.Solution.RemoveReagent(_bloodProto, 1000); + _solutionContainer.UpdateChemicals(solution); + break; + } + } +} diff --git a/Content.Server/WhiteDream/BloodCult/ConstructActionsSystem.cs b/Content.Server/WhiteDream/BloodCult/ConstructActionsSystem.cs new file mode 100644 index 00000000000..3d5e4ae44cb --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/ConstructActionsSystem.cs @@ -0,0 +1,67 @@ +using Content.Server.WhiteDream.BloodCult.Constructs.PhaseShift; +using Content.Shared.StatusEffect; +using Content.Shared.WhiteDream.BloodCult.Spells; +using Robust.Server.Audio; +using Robust.Server.GameObjects; +using Robust.Shared.Map; +using Robust.Shared.Map.Components; +using PhaseShiftedComponent = Content.Shared.WhiteDream.BloodCult.Constructs.PhaseShift.PhaseShiftedComponent; + +namespace Content.Server.WhiteDream.BloodCult; + +public sealed class ConstructActionsSystem : EntitySystem +{ + [Dependency] private readonly ITileDefinitionManager _tileDef = default!; + + [Dependency] private readonly AudioSystem _audio = default!; + [Dependency] private readonly MapSystem _mapSystem = default!; + [Dependency] private readonly TransformSystem _transform = default!; + [Dependency] private readonly StatusEffectsSystem _statusEffects = default!; + + private const string CultTileSpawnEffect = "CultTileSpawnEffect"; + + public override void Initialize() + { + SubscribeLocalEvent(OnPlaceTileEntityEvent); + SubscribeLocalEvent(OnPhaseShift); + } + + private void OnPlaceTileEntityEvent(PlaceTileEntityEvent args) + { + if (args.Handled) + return; + + if (args.Entity is { } entProtoId) + Spawn(entProtoId, args.Target); + + if (args.TileId is { } tileId) + { + if (_transform.GetGrid(args.Target) is not { } grid || !TryComp(grid, out MapGridComponent? mapGrid)) + return; + + var tileDef = _tileDef[tileId]; + var tile = new Tile(tileDef.TileId); + + _mapSystem.SetTile(grid, mapGrid, args.Target, tile); + Spawn(CultTileSpawnEffect, args.Target); + } + + if (args.Audio is { } audio) + _audio.PlayPvs(audio, args.Target); + + args.Handled = true; + } + + private void OnPhaseShift(PhaseShiftEvent args) + { + if (args.Handled) + return; + + if (_statusEffects.TryAddStatusEffect( + args.Performer, + args.StatusEffectId, + args.Duration, + false)) + args.Handled = true; + } +} diff --git a/Content.Server/WhiteDream/BloodCult/Constructs/ConstructSystem.cs b/Content.Server/WhiteDream/BloodCult/Constructs/ConstructSystem.cs new file mode 100644 index 00000000000..c07f56a585b --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Constructs/ConstructSystem.cs @@ -0,0 +1,66 @@ +using Content.Server.Actions; +using Content.Server.WhiteDream.BloodCult.Gamerule; +using Content.Shared.WhiteDream.BloodCult; +using Content.Shared.WhiteDream.BloodCult.Constructs; +using Robust.Server.GameObjects; + +namespace Content.Server.WhiteDream.BloodCult.Constructs; + +public sealed class ConstructSystem : EntitySystem +{ + [Dependency] private readonly ActionsSystem _actions = default!; + [Dependency] private readonly AppearanceSystem _appearanceSystem = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnMapInit); + SubscribeLocalEvent(OnComponentShutdown); + } + + public override void Update(float frameTime) + { + base.Update(frameTime); + + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var construct)) + { + if (!construct.Transforming) + continue; + + construct.TransformAccumulator += frameTime; + if (construct.TransformAccumulator < construct.TransformDelay) + continue; + + construct.TransformAccumulator = 0f; + construct.Transforming = false; + _appearanceSystem.SetData(uid, ConstructVisualsState.Transforming, false); + } + } + + private void OnMapInit(Entity construct, ref MapInitEvent args) + { + foreach (var actionId in construct.Comp.Actions) + { + var action = _actions.AddAction(construct, actionId); + construct.Comp.ActionEntities.Add(action); + } + + _appearanceSystem.SetData(construct, ConstructVisualsState.Transforming, true); + construct.Comp.Transforming = true; + var cultistRule = EntityManager.EntityQueryEnumerator(); + while (cultistRule.MoveNext(out _, out var rule)) + rule.Constructs.Add(construct); + } + + private void OnComponentShutdown(Entity construct, ref ComponentShutdown args) + { + foreach (var actionEntity in construct.Comp.ActionEntities) + _actions.RemoveAction(actionEntity); + + var cultistRule = EntityManager.EntityQueryEnumerator(); + while (cultistRule.MoveNext(out _, out var rule)) + rule.Constructs.Remove(construct); + } +} diff --git a/Content.Server/WhiteDream/BloodCult/Constructs/PhaseShift/PhaseShiftSystem.cs b/Content.Server/WhiteDream/BloodCult/Constructs/PhaseShift/PhaseShiftSystem.cs new file mode 100644 index 00000000000..1885b42d222 --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Constructs/PhaseShift/PhaseShiftSystem.cs @@ -0,0 +1,34 @@ +using Content.Shared.Eye; +using Content.Shared.WhiteDream.BloodCult.Constructs.PhaseShift; +using Robust.Server.GameObjects; + +namespace Content.Server.WhiteDream.BloodCult.Constructs.PhaseShift; + +public sealed class PhaseShiftSystem : SharedPhaseShiftSystem +{ + [Dependency] private readonly VisibilitySystem _visibilitySystem = default!; + + protected override void OnComponentStartup(Entity ent, ref ComponentStartup args) + { + base.OnComponentStartup(ent, ref args); + + if (!TryComp(ent, out var visibility)) + return; + + _visibilitySystem.AddLayer((ent, visibility), (int) VisibilityFlags.Ghost, false); + _visibilitySystem.RemoveLayer((ent, visibility), (int) VisibilityFlags.Normal, false); + _visibilitySystem.RefreshVisibility(ent); + } + + protected override void OnComponentShutdown(Entity ent, ref ComponentShutdown args) + { + base.OnComponentShutdown(ent, ref args); + + if (!TryComp(ent, out var visibility)) + return; + + _visibilitySystem.RemoveLayer((ent, visibility), (int) VisibilityFlags.Ghost, false); + _visibilitySystem.AddLayer((ent, visibility), (int) VisibilityFlags.Normal, false); + _visibilitySystem.RefreshVisibility(ent); + } +} diff --git a/Content.Server/WhiteDream/BloodCult/Constructs/Shell/ConstructShellComponent.cs b/Content.Server/WhiteDream/BloodCult/Constructs/Shell/ConstructShellComponent.cs new file mode 100644 index 00000000000..f004959384f --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Constructs/Shell/ConstructShellComponent.cs @@ -0,0 +1,29 @@ +using Content.Shared.Containers.ItemSlots; +using Content.Shared.RadialSelector; + +namespace Content.Server.WhiteDream.BloodCult.Constructs.Shell; + +[RegisterComponent] +public sealed partial class ConstructShellComponent : Component +{ + [DataField(required: true)] + public ItemSlot ShardSlot = new(); + + public readonly string ShardSlotId = "Shard"; + + [DataField] + public List Constructs = new() + { + new() { Prototype = "ConstructJuggernaut", }, + new() { Prototype = "ConstructArtificer", }, + new() { Prototype = "ConstructWraith", } + }; + + [DataField] + public List PurifiedConstructs = new() + { + new() { Prototype = "ConstructJuggernautHoly", }, + new() { Prototype = "ConstructArtificerHoly", }, + new() { Prototype = "ConstructWraithHoly", } + }; +} diff --git a/Content.Server/WhiteDream/BloodCult/Constructs/Shell/ConstructShellSystem.cs b/Content.Server/WhiteDream/BloodCult/Constructs/Shell/ConstructShellSystem.cs new file mode 100644 index 00000000000..1923f21f2a6 --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Constructs/Shell/ConstructShellSystem.cs @@ -0,0 +1,116 @@ +using Content.Server.Mind; +using Content.Server.Popups; +using Content.Server.WhiteDream.BloodCult.Constructs.SoulShard; +using Content.Shared.Containers.ItemSlots; +using Content.Shared.Mind.Components; +using Content.Shared.RadialSelector; +using Content.Shared.Verbs; +using Robust.Server.GameObjects; +using Robust.Shared.Containers; +using Robust.Shared.Utility; + +namespace Content.Server.WhiteDream.BloodCult.Constructs.Shell; + +public sealed class ConstructShellSystem : EntitySystem +{ + [Dependency] private readonly ItemSlotsSystem _slots = default!; + [Dependency] private readonly MindSystem _mind = default!; + [Dependency] private readonly PopupSystem _popup = default!; + [Dependency] private readonly TransformSystem _transform = default!; + [Dependency] private readonly UserInterfaceSystem _ui = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent>(OnGetVerbs); + SubscribeLocalEvent(OnShellInit); + SubscribeLocalEvent(OnInteractUsing); + SubscribeLocalEvent(OnConstructSelected); + SubscribeLocalEvent(OnShellRemove); + } + + private void OnGetVerbs(Entity shell, ref GetVerbsEvent args) + { + var shellUid = shell.Owner; + if (_ui.IsUiOpen(shellUid, RadialSelectorUiKey.Key)) + return; + + // Holy shitcode. + Action action; + if (args.User == shellUid) + { + action = () => + { + _ui.SetUiState(shellUid, RadialSelectorUiKey.Key, new RadialSelectorState(shell.Comp.Constructs, true)); + _ui.TryToggleUi(shellUid, RadialSelectorUiKey.Key, shell); + }; + } + else if (_slots.GetItemOrNull(shell, shell.Comp.ShardSlotId) is { } shard && args.User == shard && + TryComp(shard, out SoulShardComponent? soulShard)) + { + action = () => + { + _ui.SetUiState(shellUid, + RadialSelectorUiKey.Key, + new RadialSelectorState(soulShard.IsBlessed ? shell.Comp.PurifiedConstructs : shell.Comp.Constructs, + true)); + _ui.TryToggleUi(shellUid, RadialSelectorUiKey.Key, shard); + }; + } + else + return; + + args.Verbs.Add(new ExamineVerb + { + DoContactInteraction = true, + Text = Loc.GetString("soul-shard-selector-form"), + Icon = new SpriteSpecifier.Texture( + new ResPath("/Textures/WhiteDream/BloodCult/Entities/Items/construct_shell.rsi")), + Act = action + }); + } + + private void OnShellInit(Entity shell, ref ComponentInit args) + { + _slots.AddItemSlot(shell, shell.Comp.ShardSlotId, shell.Comp.ShardSlot); + } + + private void OnInteractUsing(Entity shell, ref ContainerIsInsertingAttemptEvent args) + { + var shellUid = shell.Owner; + if (!TryComp(args.EntityUid, out SoulShardComponent? soulShard) || + _ui.IsUiOpen(shellUid, RadialSelectorUiKey.Key)) + return; + + if (!TryComp(args.EntityUid, out var mindContainer) || !mindContainer.HasMind) + { + _popup.PopupEntity(Loc.GetString("soul-shard-try-insert-no-soul"), shell); + args.Cancel(); + return; + } + + _slots.SetLock(shell, shell.Comp.ShardSlotId, true); + _ui.SetUiState(shellUid, + RadialSelectorUiKey.Key, + new RadialSelectorState(soulShard.IsBlessed ? shell.Comp.PurifiedConstructs : shell.Comp.Constructs, true)); + + _ui.TryToggleUi(shellUid, RadialSelectorUiKey.Key, args.EntityUid); + } + + private void OnConstructSelected(Entity shell, ref RadialSelectorSelectedMessage args) + { + if (!_mind.TryGetMind(args.Actor, out var mindId, out _)) + return; + + _ui.CloseUi(shell.Owner, RadialSelectorUiKey.Key); + var construct = Spawn(args.SelectedItem, _transform.GetMapCoordinates(shell)); + _mind.TransferTo(mindId, construct); + Del(shell); + } + + private void OnShellRemove(Entity shell, ref ComponentRemove args) + { + _slots.RemoveItemSlot(shell, shell.Comp.ShardSlot); + } +} diff --git a/Content.Server/WhiteDream/BloodCult/Constructs/SoulShard/SoulShardComponent.cs b/Content.Server/WhiteDream/BloodCult/Constructs/SoulShard/SoulShardComponent.cs new file mode 100644 index 00000000000..40340a9550b --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Constructs/SoulShard/SoulShardComponent.cs @@ -0,0 +1,21 @@ +using Robust.Shared.Prototypes; + +namespace Content.Server.WhiteDream.BloodCult.Constructs.SoulShard; + +[RegisterComponent] +public sealed partial class SoulShardComponent : Component +{ + [DataField] + public bool IsBlessed; + + [DataField] + public Color BlessedLightColor = Color.LightCyan; + + [DataField] + public EntProtoId ShadeProto = "ShadeCult"; + + [DataField] + public EntProtoId PurifiedShadeProto = "ShadeHoly"; + + public EntityUid? ShadeUid; +} diff --git a/Content.Server/WhiteDream/BloodCult/Constructs/SoulShard/SoulShardSystem.cs b/Content.Server/WhiteDream/BloodCult/Constructs/SoulShard/SoulShardSystem.cs new file mode 100644 index 00000000000..7a8578b665f --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Constructs/SoulShard/SoulShardSystem.cs @@ -0,0 +1,116 @@ +using Content.Server.Bible.Components; +using Content.Server.Mind; +using Content.Server.Popups; +using Content.Server.Roles; +using Content.Shared.Interaction; +using Content.Shared.Mind.Components; +using Content.Shared.Roles; +using Content.Shared.WhiteDream.BloodCult; +using Content.Shared.WhiteDream.BloodCult.BloodCultist; +using Robust.Server.Audio; +using Robust.Server.GameObjects; +using Robust.Shared.Prototypes; + +namespace Content.Server.WhiteDream.BloodCult.Constructs.SoulShard; + +public sealed class SoulShardSystem : EntitySystem +{ + [Dependency] private readonly AppearanceSystem _appearanceSystem = default!; + [Dependency] private readonly AudioSystem _audio = default!; + [Dependency] private readonly SharedPointLightSystem _lightSystem = default!; + [Dependency] private readonly TransformSystem _transform = default!; + [Dependency] private readonly MindSystem _mind = default!; + [Dependency] private readonly SharedRoleSystem _roleSystem = default!; + [Dependency] private readonly PopupSystem _popup = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnMapInit); + SubscribeLocalEvent(OnInteractUsing); + SubscribeLocalEvent(OnActivate); + SubscribeLocalEvent(OnShardMindAdded); + SubscribeLocalEvent(OnShardMindRemoved); + } + + private void OnMapInit(Entity shard, ref MapInitEvent args) + { + if (!shard.Comp.IsBlessed) + return; + + _appearanceSystem.SetData(shard, SoulShardVisualState.Blessed, true); + _lightSystem.SetColor(shard, shard.Comp.BlessedLightColor); + } + + private void OnActivate(Entity shard, ref ActivateInWorldEvent args) + { + if (!_mind.TryGetMind(shard, out var mindId, out _)) + return; + + if (!shard.Comp.IsBlessed) + { + if (!HasComp(args.User)) + return; + if (shard.Comp.ShadeUid.HasValue) + DespawnShade(shard); + else + SpawnShade(shard, shard.Comp.ShadeProto, mindId); + return; + } + + if (shard.Comp.ShadeUid.HasValue) + DespawnShade(shard); + else + SpawnShade(shard, shard.Comp.PurifiedShadeProto, mindId); + } + + private void OnInteractUsing(Entity shard, ref InteractUsingEvent args) + { + if (shard.Comp.IsBlessed || !TryComp(args.Used, out BibleComponent? bible)) + return; + + _popup.PopupEntity(Loc.GetString("bible-sizzle"), args.User, args.User); + _audio.PlayPvs(bible.HealSoundPath, args.User); + _appearanceSystem.SetData(shard, SoulShardVisualState.Blessed, true); + _lightSystem.SetColor(shard, shard.Comp.BlessedLightColor); + shard.Comp.IsBlessed = true; + } + + private void OnShardMindAdded(Entity shard, ref MindAddedMessage args) + { + if (!TryComp(shard, out var mindContainer) || !mindContainer.HasMind) + return; + + _roleSystem.MindTryRemoveRole(mindContainer.Mind.Value); + UpdateGlowVisuals(shard, true); + } + + private void OnShardMindRemoved(Entity shard, ref MindRemovedMessage args) => + UpdateGlowVisuals(shard, false); + + private void SpawnShade(Entity shard, EntProtoId proto, EntityUid mindId) + { + var position = _transform.GetMapCoordinates(shard); + var shadeUid = Spawn(proto, position); + _mind.TransferTo(mindId, shadeUid); + _mind.UnVisit(mindId); + } + + private void DespawnShade(Entity shard) + { + if (!_mind.TryGetMind(shard.Comp.ShadeUid!.Value, out var mindId, out _)) + { + _mind.TransferTo(mindId, shard); + _mind.UnVisit(mindId); + } + + Del(shard.Comp.ShadeUid); + } + + private void UpdateGlowVisuals(Entity shard, bool state) + { + _appearanceSystem.SetData(shard, SoulShardVisualState.HasMind, state); + _lightSystem.SetEnabled(shard, state); + } +} diff --git a/Content.Server/WhiteDream/BloodCult/CultBarrier/BloodCultBarrierComponent.cs b/Content.Server/WhiteDream/BloodCult/CultBarrier/BloodCultBarrierComponent.cs new file mode 100644 index 00000000000..89c8dcc0120 --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/CultBarrier/BloodCultBarrierComponent.cs @@ -0,0 +1,4 @@ +namespace Content.Server.WhiteDream.BloodCult.CultBarrier; + +[RegisterComponent] +public sealed partial class BloodCultBarrierComponent : Component; diff --git a/Content.Server/WhiteDream/BloodCult/CultBarrier/BloodCultBarrierSystem.cs b/Content.Server/WhiteDream/BloodCult/CultBarrier/BloodCultBarrierSystem.cs new file mode 100644 index 00000000000..a6ac813245d --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/CultBarrier/BloodCultBarrierSystem.cs @@ -0,0 +1,25 @@ +using Content.Server.Popups; +using Content.Shared.Interaction; +using Content.Shared.WhiteDream.BloodCult.BloodCultist; +using Content.Shared.WhiteDream.BloodCult.Runes; + +namespace Content.Server.WhiteDream.BloodCult.CultBarrier; + +public sealed class BloodCultBarrierSystem : EntitySystem +{ + [Dependency] private readonly PopupSystem _popup = default!; + + public override void Initialize() + { + SubscribeLocalEvent(OnInteract); + } + + private void OnInteract(Entity ent, ref InteractUsingEvent args) + { + if (!HasComp(args.Used) || !HasComp(args.User)) + return; + + _popup.PopupEntity("cult-barrier-destroyed", args.User, args.User); + Del(args.Target); + } +} diff --git a/Content.Server/WhiteDream/BloodCult/Empower/BloodCultEmpoweredComponent.cs b/Content.Server/WhiteDream/BloodCult/Empower/BloodCultEmpoweredComponent.cs new file mode 100644 index 00000000000..dd94ecb1b3f --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Empower/BloodCultEmpoweredComponent.cs @@ -0,0 +1,44 @@ +using Content.Shared.Alert; +using Robust.Shared.Prototypes; + +namespace Content.Server.WhiteDream.BloodCult.Empower; + +[RegisterComponent] +public sealed partial class BloodCultEmpoweredComponent : Component +{ + /// + /// Changes the damage from drawing/using runes. + /// + [DataField] + public float RuneDamageMultiplier = 0.5f; + + /// + /// Changes the drawing time of runes. + /// + [DataField] + public float RuneTimeMultiplier = 0.5f; + + /// + /// Increases the amount of spells cultists can create at once. + /// + [DataField] + public int ExtraSpells = 3; + + /// + /// The default duration of the empowering. + /// + [DataField] + public TimeSpan DefaultTime = TimeSpan.FromSeconds(20); + + [DataField] + public float NearbyCultTileRadius = 1f; + + [DataField] + public string CultTile = "CultFloor"; + + [DataField] + public ProtoId EmpoweredAlert = "CultEmpowered"; + + [ViewVariables(VVAccess.ReadOnly)] + public TimeSpan TimeRemaining = TimeSpan.Zero; +} diff --git a/Content.Server/WhiteDream/BloodCult/Empower/BloodCultEmpoweredSystem.cs b/Content.Server/WhiteDream/BloodCult/Empower/BloodCultEmpoweredSystem.cs new file mode 100644 index 00000000000..f7fbdd045e4 --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Empower/BloodCultEmpoweredSystem.cs @@ -0,0 +1,88 @@ +using System.Linq; +using System.Numerics; +using Content.Server.WhiteDream.BloodCult.Spells; +using Content.Shared.Alert; +using Content.Shared.WhiteDream.BloodCult.BloodCultist; +using Robust.Server.GameObjects; +using Robust.Shared.Map; +using Robust.Shared.Map.Components; + +namespace Content.Server.WhiteDream.BloodCult.Empower; + +public sealed class BloodCultEmpoweredSystem : EntitySystem +{ + [Dependency] private readonly ITileDefinitionManager _tileDefinition = default!; + + [Dependency] private readonly AlertsSystem _alerts = default!; + [Dependency] private readonly MapSystem _map = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnEmpowerStartup); + SubscribeLocalEvent(OnEmpowerShutdown); + } + + public override void Update(float frameTime) + { + base.Update(frameTime); + UpdateTimers(frameTime); + } + + private void OnEmpowerStartup(Entity cultist, ref ComponentStartup args) + { + _alerts.ShowAlert(cultist, cultist.Comp.EmpoweredAlert); + if (TryComp(cultist, out BloodCultSpellsHolderComponent? spellsHolder)) + spellsHolder.MaxSpells += cultist.Comp.ExtraSpells; + } + + private void OnEmpowerShutdown(Entity cultist, ref ComponentShutdown args) + { + _alerts.ClearAlert(cultist, cultist.Comp.EmpoweredAlert); + if (TryComp(cultist, out BloodCultSpellsHolderComponent? spellsHolder)) + spellsHolder.MaxSpells -= cultist.Comp.ExtraSpells; + } + + private void UpdateTimers(float frameTime) + { + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var empowered)) + { + if (!HasComp(uid)) + { + RemComp(uid, empowered); + continue; + } + + if (AnyCultTilesNearby((uid, empowered))) + { + empowered.TimeRemaining = empowered.DefaultTime; + continue; + } + + empowered.TimeRemaining -= TimeSpan.FromSeconds(frameTime); + if (empowered.TimeRemaining <= TimeSpan.Zero) + RemComp(uid, empowered); + } + } + + private bool AnyCultTilesNearby(Entity ent) + { + var transform = Transform(ent); + var localpos = transform.Coordinates.Position; + var gridUid = transform.GridUid; + if (!gridUid.HasValue || !TryComp(gridUid, out MapGridComponent? grid)) + return false; + + var cultTile = _tileDefinition[ent.Comp.CultTile]; + + var radius = ent.Comp.NearbyCultTileRadius; + var tilesRefs = _map.GetLocalTilesIntersecting( + gridUid.Value, + grid, + new Box2(localpos + new Vector2(-radius, -radius), localpos + new Vector2(radius, radius))); + + return tilesRefs.Any(tileRef => tileRef.Tile.TypeId == cultTile.TileId); + } +} diff --git a/Content.Server/WhiteDream/BloodCult/Gamerule/BloodCultRuleComponent.cs b/Content.Server/WhiteDream/BloodCult/Gamerule/BloodCultRuleComponent.cs new file mode 100644 index 00000000000..d0a1991a9fd --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Gamerule/BloodCultRuleComponent.cs @@ -0,0 +1,78 @@ +using Content.Server.NPC.Components; +using Content.Server.WhiteDream.BloodCult.RendingRunePlacement; +using Content.Shared.WhiteDream.BloodCult.BloodCultist; +using Content.Shared.WhiteDream.BloodCult.Constructs; +using Robust.Shared.Prototypes; + +namespace Content.Server.WhiteDream.BloodCult.Gamerule; + +[RegisterComponent] +public sealed partial class BloodCultRuleComponent : Component +{ + [DataField] + public ProtoId NanoTrasenFaction = "NanoTrasen"; + + [DataField] + public ProtoId BloodCultFaction = "GeometerOfBlood"; + + [DataField] + public EntProtoId HarvesterPrototype = "ConstructHarvester"; + + [DataField] + public Color EyeColor = Color.FromHex("#f80000"); + + [DataField] + public int ReadEyeThreshold = 5; + + [DataField] + public int PentagramThreshold = 8; + + [DataField] + public int RendingRunePlacementsAmount = 3; + + [ViewVariables(VVAccess.ReadOnly)] + public bool LeaderSelected; + + /// + /// If no rending rune markers were placed on the map, players will be able to place these runes anywhere on the map + /// but no more than total available. + /// + [DataField] + public bool EmergencyMarkersMode; + + public int EmergencyMarkersCount; + + /// + /// The entityUid of body which should be sacrificed. + /// + [ViewVariables(VVAccess.ReadOnly)] + public EntityUid? OfferingTarget; + + [ViewVariables(VVAccess.ReadOnly)] + public EntityUid? CultLeader; + + [ViewVariables(VVAccess.ReadOnly)] + public CultStage Stage = CultStage.Start; + + public CultWinCondition WinCondition = CultWinCondition.Draw; + + public List> Cultists = new(); + + public List> Constructs = new(); +} + +public enum CultWinCondition : byte +{ + Draw, + Win, + Failure +} + +public enum CultStage : byte +{ + Start, + RedEyes, + Pentagram +} + +public sealed class BloodCultNarsieSummoned : EntityEventArgs; diff --git a/Content.Server/WhiteDream/BloodCult/Gamerule/BloodCultRuleSystem.cs b/Content.Server/WhiteDream/BloodCult/Gamerule/BloodCultRuleSystem.cs new file mode 100644 index 00000000000..bfb06c85ccf --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Gamerule/BloodCultRuleSystem.cs @@ -0,0 +1,496 @@ +using System.Diagnostics.CodeAnalysis; +using System.Linq; +using Content.Server.Actions; +using Content.Server.Antag; +using Content.Server.Antag.Components; +using Content.Server.Body.Systems; +using Content.Server.GameTicking; +using Content.Server.GameTicking.Rules; +using Content.Server.Hands.Systems; +using Content.Server.Language; +using Content.Server.Mind; +using Content.Server.NPC.Systems; +using Content.Server.Pinpointer; +using Content.Server.Roles; +using Content.Server.RoundEnd; +using Content.Server.WhiteDream.BloodCult.Items.BloodSpear; +using Content.Server.WhiteDream.BloodCult.Objectives; +using Content.Server.WhiteDream.BloodCult.RendingRunePlacement; +using Content.Server.WhiteDream.BloodCult.Spells; +using Content.Shared.Cloning; +using Content.Shared.Cuffs.Components; +using Content.Shared.GameTicking.Components; +using Content.Shared.Humanoid; +using Content.Shared.Inventory; +using Content.Shared.Mind.Components; +using Content.Shared.Mobs; +using Content.Shared.Mobs.Components; +using Content.Shared.Mobs.Systems; +using Content.Shared.Mood; +using Content.Shared.Movement.Pulling.Components; +using Content.Shared.WhiteDream.BloodCult.Components; +using Content.Shared.WhiteDream.BloodCult.BloodCultist; +using Content.Shared.WhiteDream.BloodCult.Items; +using Robust.Server.Containers; +using Robust.Server.GameObjects; +using Robust.Shared.Player; +using Robust.Shared.Random; +using Robust.Shared.Utility; + +namespace Content.Server.WhiteDream.BloodCult.Gamerule; + +public sealed class BloodCultRuleSystem : GameRuleSystem +{ + [Dependency] private readonly IRobustRandom _random = default!; + + [Dependency] private readonly ActionsSystem _actions = default!; + [Dependency] private readonly AntagSelectionSystem _antagSelection = default!; + [Dependency] private readonly BloodSpearSystem _bloodSpear = default!; + [Dependency] private readonly BodySystem _body = default!; + [Dependency] private readonly ContainerSystem _container = default!; + [Dependency] private readonly HandsSystem _hands = default!; + [Dependency] private readonly InventorySystem _inventory = default!; + [Dependency] private readonly LanguageSystem _language = default!; + [Dependency] private readonly NavMapSystem _navMap = default!; + [Dependency] private readonly NpcFactionSystem _faction = default!; + [Dependency] private readonly MindSystem _mind = default!; + [Dependency] private readonly MobStateSystem _mobState = default!; + [Dependency] private readonly RoleSystem _role = default!; + [Dependency] private readonly RoundEndSystem _roundEnd = default!; + [Dependency] private readonly TransformSystem _transform = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(AfterEntitySelected); + + SubscribeLocalEvent(OnNarsieSummon); + + SubscribeLocalEvent(OnCultistComponentInit); + SubscribeLocalEvent(OnCultistComponentRemoved); + SubscribeLocalEvent(OnCultistsStateChanged); + SubscribeLocalEvent(OnClone); + + SubscribeLocalEvent(OnGetBriefing); + } + + protected override void Started( + EntityUid uid, + BloodCultRuleComponent component, + GameRuleComponent gameRule, + GameRuleStartedEvent args + ) + { + base.Started(uid, component, gameRule, args); + + GetRandomRunePlacements(component); + } + + protected override void AppendRoundEndText( + EntityUid uid, + BloodCultRuleComponent component, + GameRuleComponent gameRule, + ref RoundEndTextAppendEvent args + ) + { + base.AppendRoundEndText(uid, component, gameRule, ref args); + var winText = Loc.GetString($"blood-cult-condition-{component.WinCondition.ToString().ToLower()}"); + args.AddLine(winText); + + args.AddLine(Loc.GetString("blood-cultists-list-start")); + + var sessionData = _antagSelection.GetAntagIdentifiers(uid); + foreach (var (_, data, name) in sessionData) + { + var lising = Loc.GetString("blood-cultists-list-name", ("name", name), ("user", data.UserName)); + args.AddLine(lising); + } + } + + #region EventHandlers + + private void AfterEntitySelected(Entity ent, ref AfterAntagEntitySelectedEvent args) => + MakeCultist(args.EntityUid, ent); + + private void OnNarsieSummon(BloodCultNarsieSummoned ev) + { + var rulesQuery = QueryActiveRules(); + while (rulesQuery.MoveNext(out _, out var cult, out _)) + { + cult.WinCondition = CultWinCondition.Win; + _roundEnd.EndRound(); + + foreach (var ent in cult.Cultists) + { + if (Deleted(ent.Owner) || !TryComp(ent.Owner, out MindContainerComponent? mindContainer) || + !mindContainer.Mind.HasValue) + continue; + + var harvester = Spawn(cult.HarvesterPrototype, Transform(ent.Owner).Coordinates); + _mind.TransferTo(mindContainer.Mind.Value, harvester); + _body.GibBody(ent); + } + + return; + } + } + + private void OnCultistComponentInit(Entity cultist, ref ComponentInit args) + { + RaiseLocalEvent(cultist, new MoodEffectEvent("CultFocused")); + _language.AddLanguage(cultist, cultist.Comp.CultLanguageId); + + var query = QueryActiveRules(); + while (query.MoveNext(out _, out var cult, out _)) + { + cult.Cultists.Add(cultist); + UpdateCultStage(cult); + } + } + + private void OnCultistComponentRemoved(Entity cultist, ref ComponentRemove args) + { + var query = QueryActiveRules(); + while (query.MoveNext(out _, out var cult, out _)) + cult.Cultists.Remove(cultist); + + CheckWinCondition(); + + if (TerminatingOrDeleted(cultist.Owner)) + return; + + RemoveAllCultItems(cultist); + RemoveCultistAppearance(cultist); + RemoveObjectiveAndRole(cultist.Owner); + RaiseLocalEvent(cultist.Owner, new MoodRemoveEffectEvent("CultFocused")); + _language.RemoveLanguage(cultist.Owner, cultist.Comp.CultLanguageId); + + if (!TryComp(cultist, out BloodCultSpellsHolderComponent? powersHolder)) + return; + + foreach (var power in powersHolder.SelectedSpells) + _actions.RemoveAction(cultist.Owner, power); + } + + private void OnCultistsStateChanged(Entity cultist, ref MobStateChangedEvent args) + { + if (args.NewMobState == MobState.Dead) + CheckWinCondition(); + } + + private void OnClone(Entity cultist, ref CloningEvent args) => + RemoveObjectiveAndRole(cultist); + + private void OnGetBriefing(Entity cultist, ref GetBriefingEvent args) + { + args.Append(Loc.GetString("blood-cult-role-briefing-short")); + var rulesQuery = QueryActiveRules(); + while (rulesQuery.MoveNext(out _, out var rule, out _)) + { + if (!rule.EmergencyMarkersMode) + continue; + + args.Append( + Loc.GetString("blood-cult-role-briefing-emergency-rending", ("amount", rule.EmergencyMarkersCount))); + return; + } + + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var marker)) + { + if (!marker.IsActive) + continue; + + var navMapLocation = FormattedMessage.RemoveMarkupPermissive(_navMap.GetNearestBeaconString(uid)); + var coordinates = Transform(uid).Coordinates; + var msg = Loc.GetString( + "blood-cult-role-briefing-rending-locations", + ("location", navMapLocation), + ("coordinates", coordinates.Position)); + args.Append(Loc.GetString(msg)); + } + } + + #endregion + + public void Convert(EntityUid target) + { + if (!TryComp(target, out ActorComponent? actor)) + return; + + var query = QueryActiveRules(); + while (query.MoveNext(out var ruleUid, out _, out _, out _)) + { + if (!TryComp(ruleUid, out AntagSelectionComponent? antagSelection)) + continue; + + var antagSelectionEnt = (ruleUid, antagSelection); + if (!_antagSelection.TryGetNextAvailableDefinition(antagSelectionEnt, out var def)) + def = antagSelection.Definitions.Last(); + + _antagSelection.MakeAntag(antagSelectionEnt, actor.PlayerSession, def.Value); + } + } + + public bool IsObjectiveFinished() => + !TryGetTarget(out var target) || !HasComp(target) || _mobState.IsDead(target.Value); + + public bool TryGetTarget([NotNullWhen(true)] out EntityUid? target) + { + target = GetTarget(); + return target is not null; + } + + public EntityUid? GetTarget() + { + var query = QueryActiveRules(); + while (query.MoveNext(out _, out var bloodCultRule, out _)) + if (bloodCultRule.OfferingTarget.HasValue) + return bloodCultRule.OfferingTarget.Value; + + return null; + } + + public bool IsTarget(EntityUid entityUid) + { + var query = QueryActiveRules(); + while (query.MoveNext(out _, out var rule, out _)) + return entityUid == rule.OfferingTarget; + + return false; + } + + public int GetTotalCultists() + { + var query = QueryActiveRules(); + while (query.MoveNext(out _, out var rule, out _)) + return rule.Cultists.Count + rule.Constructs.Count; + + return 0; + } + + public void RemoveObjectiveAndRole(EntityUid uid) + { + if (!_mind.TryGetMind(uid, out var mindId, out var mind)) + return; + + var objectives = mind.Objectives.FindAll(HasComp); + foreach (var obj in objectives) + _mind.TryRemoveObjective(mindId, mind, mind.Objectives.IndexOf(obj)); + + if (_role.MindHasRole(mindId)) + _role.MindRemoveRole(mindId); + } + + public bool CanDrawRendingRune(EntityUid user) + { + var ruleQuery = QueryActiveRules(); + while (ruleQuery.MoveNext(out _, out var rule, out _)) + if (rule is { EmergencyMarkersMode: true, EmergencyMarkersCount: > 0 }) + { + rule.EmergencyMarkersCount--; + return true; + } + + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var marker)) + { + if (!marker.IsActive) + continue; + + var userLocation = Transform(user).Coordinates; + var placementCoordinates = Transform(uid).Coordinates; + if (_transform.InRange(placementCoordinates, userLocation, marker.DrawingRange)) + return true; + } + + return false; + } + + public void SetRandomCultTarget(BloodCultRuleComponent rule) + { + var querry = EntityManager + .EntityQueryEnumerator(); + + var potentialTargets = new List(); + + // Cultists not being excluded from target selection is fully intended. + while (querry.MoveNext(out var uid, out _, out _, out _)) + potentialTargets.Add(uid); + + rule.OfferingTarget = potentialTargets.Count > 0 ? _random.Pick(potentialTargets) : null; + } + + public bool TryConsumeNearestMarker(EntityUid user) + { + var ruleQuery = QueryActiveRules(); + while (ruleQuery.MoveNext(out _, out var rule, out _)) + if (rule is { EmergencyMarkersMode: true, EmergencyMarkersCount: > 0 }) + { + rule.EmergencyMarkersCount--; + return true; + } + + var userLocation = Transform(user).Coordinates; + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var markerUid, out var marker)) + { + if (!marker.IsActive) + continue; + + var placementCoordinates = Transform(markerUid).Coordinates; + if (!_transform.InRange(placementCoordinates, userLocation, marker.DrawingRange)) + continue; + + marker.IsActive = false; + break; + } + + return false; + } + + private void CheckWinCondition() + { + var query = QueryActiveRules(); + while (query.MoveNext(out _, out var cult, out _)) + { + var aliveCultists = cult.Cultists.Count(cultist => !_mobState.IsDead(cultist)); + if (aliveCultists != 0) + return; + + cult.WinCondition = CultWinCondition.Failure; + } + } + + private void MakeCultist(EntityUid cultist, Entity rule) + { + if (!_mind.TryGetMind(cultist, out var mindId, out var mind)) + return; + + EnsureComp(cultist); + + _faction.RemoveFaction(cultist, rule.Comp.NanoTrasenFaction); + _faction.AddFaction(cultist, rule.Comp.BloodCultFaction); + + _mind.TryAddObjective(mindId, mind, "KillTargetCultObjective"); + } + + private void GetRandomRunePlacements(BloodCultRuleComponent component) + { + var allMarkers = EntityQuery().ToList(); + if (allMarkers.Count == 0) + { + component.EmergencyMarkersMode = true; + component.EmergencyMarkersCount = component.RendingRunePlacementsAmount; + return; + } + + var maxRunes = component.RendingRunePlacementsAmount; + if (allMarkers.Count < component.RendingRunePlacementsAmount) + maxRunes = allMarkers.Count; + + for (var i = maxRunes; i > 0; i--) + { + var marker = _random.PickAndTake(allMarkers); + marker.IsActive = true; + } + } + + private void RemoveAllCultItems(Entity cultist) + { + if (!_inventory.TryGetContainerSlotEnumerator(cultist.Owner, out var enumerator)) + return; + + _bloodSpear.DetachSpearFromMaster(cultist); + while (enumerator.MoveNext(out var container)) + if (container.ContainedEntity != null && HasComp(container.ContainedEntity.Value)) + _container.Remove(container.ContainedEntity.Value, container, true, true); + + foreach (var item in _hands.EnumerateHeld(cultist)) + if (TryComp(item, out CultItemComponent? cultItem) && !cultItem.AllowUseToEveryone && + !_hands.TryDrop(cultist, item, null, false, false)) + QueueDel(item); + } + + private void RemoveCultistAppearance(Entity cultist) + { + if (TryComp(cultist, out var appearanceComponent)) + { + appearanceComponent.EyeColor = cultist.Comp.OriginalEyeColor; + Dirty(cultist, appearanceComponent); + } + + RemComp(cultist); + } + + private void UpdateCultStage(BloodCultRuleComponent cultRule) + { + var cultistsCount = cultRule.Cultists.Count; + var prevStage = cultRule.Stage; + + if (cultistsCount >= cultRule.PentagramThreshold) + { + cultRule.Stage = CultStage.Pentagram; + SelectRandomLeader(cultRule); + } + else if (cultistsCount >= cultRule.ReadEyeThreshold) + cultRule.Stage = CultStage.RedEyes; + else + cultRule.Stage = CultStage.Start; + + if (cultRule.Stage != prevStage) + UpdateCultistsAppearance(cultRule, prevStage); + } + + private void UpdateCultistsAppearance(BloodCultRuleComponent cultRule, CultStage prevStage) + { + switch (cultRule.Stage) + { + case CultStage.Start when prevStage == CultStage.RedEyes: + foreach (var cultist in cultRule.Cultists) + RemoveCultistAppearance(cultist); + + break; + case CultStage.RedEyes when prevStage == CultStage.Start: + foreach (var cultist in cultRule.Cultists) + { + if (!TryComp(cultist, out var appearanceComponent)) + continue; + cultist.Comp.OriginalEyeColor = appearanceComponent.EyeColor; + appearanceComponent.EyeColor = cultRule.EyeColor; + Dirty(cultist, appearanceComponent); + } + + break; + case CultStage.Pentagram: + foreach (var cultist in cultRule.Cultists) + EnsureComp(cultist); + + break; + } + } + + /// + /// A crutch while we have no NORMAL voting system. The DarkRP one fucking sucks. + /// + private void SelectRandomLeader(BloodCultRuleComponent cultRule) + { + if (cultRule.LeaderSelected) + return; + + var candidats = cultRule.Cultists; + candidats.RemoveAll( + entity => + TryComp(entity, out PullableComponent? pullable) && pullable.BeingPulled || + TryComp(entity, out CuffableComponent? cuffable) && cuffable.CuffedHandCount > 0); + + if (candidats.Count == 0) + return; + + var leader = _random.Pick(candidats); + AddComp(leader); + cultRule.LeaderSelected = true; + cultRule.CultLeader = leader; + } +} diff --git a/Content.Server/WhiteDream/BloodCult/Items/BloodSpear/BloodSpearComponent.cs b/Content.Server/WhiteDream/BloodCult/Items/BloodSpear/BloodSpearComponent.cs new file mode 100644 index 00000000000..44eb83f05c0 --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Items/BloodSpear/BloodSpearComponent.cs @@ -0,0 +1,25 @@ +using Robust.Shared.Audio; +using Robust.Shared.Prototypes; +using Robust.Shared.Utility; + +namespace Content.Server.WhiteDream.BloodCult.Items.BloodSpear; + +[RegisterComponent] +public sealed partial class BloodSpearComponent : Component +{ + [DataField] + public EntityUid? Master; + + [DataField] + public TimeSpan ParalyzeTime = TimeSpan.FromSeconds(4); + + [DataField] + public EntProtoId RecallActionId = "ActionBloodSpearRecall"; + + public EntityUid? RecallAction; + + [DataField] + public SoundSpecifier RecallAudio = new SoundPathSpecifier( + new ResPath("/Audio/WhiteDream/BloodCult/rites.ogg"), + AudioParams.Default.WithVolume(-3)); +} diff --git a/Content.Server/WhiteDream/BloodCult/Items/BloodSpear/BloodSpearSystem.cs b/Content.Server/WhiteDream/BloodCult/Items/BloodSpear/BloodSpearSystem.cs new file mode 100644 index 00000000000..fce72241a41 --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Items/BloodSpear/BloodSpearSystem.cs @@ -0,0 +1,84 @@ +using Content.Server.Actions; +using Content.Server.Hands.Systems; +using Content.Server.Stunnable; +using Content.Shared.Humanoid; +using Content.Shared.Item; +using Content.Shared.Projectiles; +using Content.Shared.WhiteDream.BloodCult.BloodCultist; +using Content.Shared.WhiteDream.BloodCult.Spells; +using Robust.Server.Audio; + +namespace Content.Server.WhiteDream.BloodCult.Items.BloodSpear; + +public sealed class BloodSpearSystem : EntitySystem +{ + [Dependency] private readonly ActionsSystem _actions = default!; + [Dependency] private readonly AudioSystem _audio = default!; + [Dependency] private readonly HandsSystem _hands = default!; + [Dependency] private readonly StunSystem _stun = default!; + + public override void Initialize() + { + SubscribeLocalEvent(OnEmbed); + + SubscribeLocalEvent(OnPickedUp); + SubscribeLocalEvent(OnSpearRecalled); + + SubscribeLocalEvent(OnComponentShutdown); + } + + private void OnComponentShutdown(Entity spear, ref ComponentShutdown args) + { + if (!spear.Comp.RecallAction.HasValue) + return; + + _actions.RemoveAction(spear.Comp.RecallAction); + } + + private void OnEmbed(Entity spear, ref EmbedEvent args) + { + if (!HasComp(args.Embedded)) + return; + + _stun.TryParalyze(args.Embedded, spear.Comp.ParalyzeTime, true); + QueueDel(spear); + } + + private void OnPickedUp(Entity spear, ref GettingPickedUpAttemptEvent args) + { + if (args.Cancelled || spear.Comp.Master.HasValue || + !TryComp(args.User, out BloodCultistComponent? bloodCultist)) + return; + + spear.Comp.Master = args.User; + + var action = _actions.AddAction(args.User, spear.Comp.RecallActionId); + spear.Comp.RecallAction = action; + bloodCultist.BloodSpear = spear; + } + + private void OnSpearRecalled(Entity cultist, ref BloodSpearRecalledEvent args) + { + if (args.Handled) + return; + + var spearUid = cultist.Comp.BloodSpear; + if (!spearUid.HasValue || !TryComp(spearUid, out BloodSpearComponent? spear)) + return; + + _hands.TryForcePickupAnyHand(cultist, spearUid.Value); + _audio.PlayPvs(spear.RecallAudio, spearUid.Value); + args.Handled = true; + } + + public void DetachSpearFromMaster(Entity cultist) + { + if (cultist.Comp.BloodSpear is not { } spearUid || !TryComp(spearUid, out BloodSpearComponent? spear)) + return; + + _actions.RemoveAction(spear.RecallAction); + spear.RecallAction = null; + spear.Master = null; + cultist.Comp.BloodSpear = null; + } +} diff --git a/Content.Server/WhiteDream/BloodCult/Items/ShuttleCurse/ShuttleCurseComponent.cs b/Content.Server/WhiteDream/BloodCult/Items/ShuttleCurse/ShuttleCurseComponent.cs new file mode 100644 index 00000000000..1af76de1ffb --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Items/ShuttleCurse/ShuttleCurseComponent.cs @@ -0,0 +1,29 @@ +using Robust.Shared.Audio; + +namespace Content.Server.WhiteDream.BloodCult.Items.ShuttleCurse; + +[RegisterComponent] +public sealed partial class ShuttleCurseComponent : Component +{ + [DataField] + public TimeSpan DelayTime = TimeSpan.FromMinutes(3); + + [DataField] + public SoundSpecifier ScatterSound = new SoundCollectionSpecifier("GlassBreak"); + + [DataField] + public List CurseMessages = new() + { + "shuttle-curse-message-1", + "shuttle-curse-message-2", + "shuttle-curse-message-3", + "shuttle-curse-message-4", + "shuttle-curse-message-5", + "shuttle-curse-message-6", + "shuttle-curse-message-7", + "shuttle-curse-message-8", + "shuttle-curse-message-9", + "shuttle-curse-message-10", + "shuttle-curse-message-11", + }; +} diff --git a/Content.Server/WhiteDream/BloodCult/Items/ShuttleCurse/ShuttleCurseProviderComponent.cs b/Content.Server/WhiteDream/BloodCult/Items/ShuttleCurse/ShuttleCurseProviderComponent.cs new file mode 100644 index 00000000000..9dd4b5d0dc2 --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Items/ShuttleCurse/ShuttleCurseProviderComponent.cs @@ -0,0 +1,11 @@ +namespace Content.Server.WhiteDream.BloodCult.Items.ShuttleCurse; + +[RegisterComponent] +public sealed partial class ShuttleCurseProviderComponent : Component +{ + [DataField] + public int MaxUses = 3; + + [ViewVariables(VVAccess.ReadOnly)] + public int CurrentUses = 0; +} diff --git a/Content.Server/WhiteDream/BloodCult/Items/ShuttleCurse/ShuttleCurseSystem.cs b/Content.Server/WhiteDream/BloodCult/Items/ShuttleCurse/ShuttleCurseSystem.cs new file mode 100644 index 00000000000..7e23649f7b8 --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Items/ShuttleCurse/ShuttleCurseSystem.cs @@ -0,0 +1,81 @@ +using Content.Server.Chat.Systems; +using Content.Server.Popups; +using Content.Server.RoundEnd; +using Content.Server.Shuttles.Systems; +using Content.Shared.Interaction; +using Robust.Server.Audio; +using Robust.Shared.Player; +using Robust.Shared.Random; + +namespace Content.Server.WhiteDream.BloodCult.Items.ShuttleCurse; + +public sealed class ShuttleCurseSystem : EntitySystem +{ + [Dependency] private readonly IRobustRandom _random = default!; + + [Dependency] private readonly AudioSystem _audio = default!; + [Dependency] private readonly ChatSystem _chat = default!; + [Dependency] private readonly EmergencyShuttleSystem _emergencyShuttle = default!; + [Dependency] private readonly RoundEndSystem _roundEnd = default!; + [Dependency] private readonly PopupSystem _popup = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnActivate); + } + + private void OnActivate(Entity orb, ref ActivateInWorldEvent args) + { + if (args.Handled) + return; + + var curseProvider = EnsureShuttleCurseProvider(orb); + if (curseProvider is null) + { + _popup.PopupEntity(Loc.GetString("shuttle-curse-cant-activate"), orb, args.User); + return; + } + + if (curseProvider.CurrentUses >= curseProvider.MaxUses) + { + _popup.PopupEntity(Loc.GetString("shuttle-curse-max-charges"), orb, args.User); + return; + } + + if (_emergencyShuttle.EmergencyShuttleArrived) + { + _popup.PopupEntity(Loc.GetString("shuttle-curse-shuttle-arrived"), orb, args.User); + return; + } + + if (_roundEnd.ExpectedCountdownEnd is null) + { + _popup.PopupEntity(Loc.GetString("shuttle-curse-shuttle-not-called"), orb, args.User); + return; + } + + _roundEnd.DelayShuttle(orb.Comp.DelayTime); + + var cursedMessage = string.Concat(Loc.GetString(_random.Pick(orb.Comp.CurseMessages)), + " ", + Loc.GetString("shuttle-curse-success-global", ("time", orb.Comp.DelayTime.TotalMinutes))); + + _chat.DispatchGlobalAnnouncement(cursedMessage, + Loc.GetString("shuttle-curse-system-failure"), + colorOverride: Color.Gold); + + _popup.PopupEntity(Loc.GetString("shuttle-curse-success"), args.User, args.User); + curseProvider.CurrentUses++; + + _audio.PlayEntity(orb.Comp.ScatterSound, Filter.Pvs(orb), orb, true); + Del(orb); + } + + private ShuttleCurseProviderComponent? EnsureShuttleCurseProvider(EntityUid orb) + { + var mapUid = Transform(orb).MapUid; + return !mapUid.HasValue ? null : EnsureComp(mapUid.Value); + } +} diff --git a/Content.Server/WhiteDream/BloodCult/Items/VeilShifter/VeilShifterComponent.cs b/Content.Server/WhiteDream/BloodCult/Items/VeilShifter/VeilShifterComponent.cs new file mode 100644 index 00000000000..a2ec1c69570 --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Items/VeilShifter/VeilShifterComponent.cs @@ -0,0 +1,35 @@ +using Robust.Shared.Audio; + +namespace Content.Server.WhiteDream.BloodCult.Items.VeilShifter; + +[RegisterComponent] +public sealed partial class VeilShifterComponent : Component +{ + [DataField] + public int Charges = 4; + + [DataField] + public int TeleportDistanceMax = 10; + + [DataField] + public int TeleportDistanceMin = 5; + + [DataField] + public Vector2i Offset = Vector2i.One * 2; + + // How many times it will try to find safe location before aborting the operation? + [DataField] + public int Attempts = 10; + + [DataField] + public SoundPathSpecifier TeleportInSound = new("/Audio/WhiteDream/BloodCult/veilin.ogg"); + + [DataField] + public SoundPathSpecifier TeleportOutSound = new("/Audio/WhiteDream/BloodCult/veilout.ogg"); + + [ViewVariables(VVAccess.ReadOnly), DataField("teleportInEffect")] + public string? TeleportInEffect = "CultTeleportInEffect"; + + [ViewVariables(VVAccess.ReadOnly), DataField("teleportOutEffect")] + public string? TeleportOutEffect = "CultTeleportOutEffect"; +} diff --git a/Content.Server/WhiteDream/BloodCult/Items/VeilShifter/VeilShifterSystem.cs b/Content.Server/WhiteDream/BloodCult/Items/VeilShifter/VeilShifterSystem.cs new file mode 100644 index 00000000000..876cccf9ecc --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Items/VeilShifter/VeilShifterSystem.cs @@ -0,0 +1,95 @@ +using Content.Server.Popups; +using Content.Shared.Coordinates.Helpers; +using Content.Shared.Examine; +using Content.Shared.Interaction.Events; +using Content.Shared.Maps; +using Content.Shared.Movement.Pulling.Systems; +using Content.Shared.Physics; +using Content.Shared.WhiteDream.BloodCult; +using Robust.Server.Audio; +using Robust.Server.GameObjects; +using Robust.Shared.Map; +using Robust.Shared.Random; + +namespace Content.Server.WhiteDream.BloodCult.Items.VeilShifter; + +public sealed class VeilShifterSystem : EntitySystem +{ + [Dependency] private readonly IRobustRandom _random = default!; + + [Dependency] private readonly AppearanceSystem _appearance = default!; + [Dependency] private readonly AudioSystem _audio = default!; + [Dependency] private readonly TransformSystem _transform = default!; + [Dependency] private readonly TurfSystem _turf = default!; + [Dependency] private readonly PopupSystem _popup = default!; + [Dependency] private readonly PullingSystem _pulling = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnUseInHand); + } + + private void OnExamined(Entity veil, ref ExaminedEvent args) => + args.PushMarkup(Loc.GetString("veil-shifter-description", ("charges", veil.Comp.Charges))); + + private void OnUseInHand(Entity veil, ref UseInHandEvent args) + { + if (args.Handled || veil.Comp.Charges == 0 || !Teleport(veil, args.User)) + return; + + veil.Comp.Charges--; + if (veil.Comp.Charges == 0) + _appearance.SetData(veil, GenericCultVisuals.State, false); + + args.Handled = true; + } + + private bool Teleport(Entity veil, EntityUid user) + { + var userTransform = Transform(user); + + EntityCoordinates coords = default; + var oldCoords = userTransform.Coordinates; + var direction = userTransform.LocalRotation.GetDir().ToVec(); + var offset = userTransform.LocalRotation.ToWorldVec().Normalized(); + + var foundPos = false; + + for (var i = 0; i < veil.Comp.Attempts; i++) + { + var distance = _random.Next(veil.Comp.TeleportDistanceMin, veil.Comp.TeleportDistanceMax); + coords = userTransform.Coordinates.Offset(offset + direction * distance).SnapToGrid(); + + if (!coords.TryGetTileRef(out var tileRef) || _turf.IsTileBlocked(tileRef.Value, CollisionGroup.MobMask)) + continue; + foundPos = true; + break; + } + + if (!foundPos) + { + _popup.PopupClient(Loc.GetString("veil-shifter-cant-teleport"), veil, user); + return false; + } + + if (_pulling.TryGetPulledEntity(user, out var pulledEntity)) + _pulling.TryStopPull(pulledEntity.Value); + + _transform.SetCoordinates(user, coords); + if (pulledEntity.HasValue) + { + _transform.SetCoordinates(pulledEntity.Value, coords); + _pulling.TryStartPull(user, pulledEntity.Value); + } + + _audio.PlayPvs(veil.Comp.TeleportInSound, coords); + _audio.PlayPvs(veil.Comp.TeleportOutSound, oldCoords); + + Spawn(veil.Comp.TeleportInEffect, coords); + Spawn(veil.Comp.TeleportOutEffect, oldCoords); + return true; + } +} diff --git a/Content.Server/WhiteDream/BloodCult/Items/VoidTorch/VoidTorchSystem.cs b/Content.Server/WhiteDream/BloodCult/Items/VoidTorch/VoidTorchSystem.cs new file mode 100644 index 00000000000..7946999028f --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Items/VoidTorch/VoidTorchSystem.cs @@ -0,0 +1,85 @@ +using Content.Server.Hands.Systems; +using Content.Server.Popups; +using Content.Shared.Interaction; +using Content.Shared.Item; +using Content.Shared.ListViewSelector; +using Content.Shared.WhiteDream.BloodCult; +using Content.Shared.WhiteDream.BloodCult.BloodCultist; +using Content.Shared.WhiteDream.BloodCult.Items.VoidTorch; +using Robust.Server.Audio; +using Robust.Server.GameObjects; + +namespace Content.Server.WhiteDream.BloodCult.Items.VoidTorch; + +public sealed class VoidTorchSystem : EntitySystem +{ + [Dependency] private readonly AppearanceSystem _appearance = default!; + [Dependency] private readonly AudioSystem _audio = default!; + [Dependency] private readonly HandsSystem _hands = default!; + [Dependency] private readonly TransformSystem _transform = default!; + [Dependency] private readonly PopupSystem _popup = default!; + [Dependency] private readonly UserInterfaceSystem _ui = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnComponentStartup); + SubscribeLocalEvent(OnAfterInteract); + SubscribeLocalEvent(OnCultistSelected); + } + + private void OnComponentStartup(Entity torch, ref ComponentStartup args) + { + _appearance.SetData(torch, GenericCultVisuals.State, true); + } + + private void OnAfterInteract(Entity torch, ref AfterInteractEvent args) + { + if (torch.Comp.Charges == 0 || args.Target is not { } target || !HasComp(target)) + return; + + var cultistsQuery = EntityQueryEnumerator(); + var cultist = new List(); + while (cultistsQuery.MoveNext(out var cultistUid, out _)) + { + if (cultistUid == args.User) + continue; + + var metaData = MetaData(cultistUid); + var entry = new ListViewSelectorEntry(cultistUid.ToString(), + metaData.EntityName, + metaData.EntityDescription); + + cultist.Add(entry); + } + + if (cultist.Count == 0) + { + _popup.PopupEntity(Loc.GetString("cult-rune-no-targets"), args.User, args.User); + args.Handled = true; + return; + } + + torch.Comp.TargetItem = target; + _ui.SetUiState(torch.Owner, ListViewSelectorUiKey.Key, new ListViewSelectorState(cultist)); + _ui.TryToggleUi(torch.Owner, ListViewSelectorUiKey.Key, args.User); + } + + private void OnCultistSelected(Entity torch, ref ListViewItemSelectedMessage args) + { + if (!EntityUid.TryParse(args.SelectedItem.Id, out var target) || torch.Comp.TargetItem is not { } item) + return; + + var targetTransform = Transform(target); + + _transform.SetCoordinates(item, targetTransform.Coordinates); + _hands.TryPickupAnyHand(target, item); + + _audio.PlayPvs(torch.Comp.TeleportSound, torch); + + torch.Comp.Charges--; + if (torch.Comp.Charges == 0) + _appearance.SetData(torch, GenericCultVisuals.State, false); + } +} diff --git a/Content.Server/WhiteDream/BloodCult/Objectives/KillTargetCultComponent.cs b/Content.Server/WhiteDream/BloodCult/Objectives/KillTargetCultComponent.cs new file mode 100644 index 00000000000..423252b6e3c --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Objectives/KillTargetCultComponent.cs @@ -0,0 +1,11 @@ +namespace Content.Server.WhiteDream.BloodCult.Objectives; + +[RegisterComponent, Access(typeof(KillTargetCultSystem))] +public sealed partial class KillTargetCultComponent : Component +{ + [DataField(required: true), ViewVariables(VVAccess.ReadWrite)] + public string Title = string.Empty; + + [DataField, ViewVariables(VVAccess.ReadWrite)] + public EntityUid? Target; +} diff --git a/Content.Server/WhiteDream/BloodCult/Objectives/KillTargetCultSystem.cs b/Content.Server/WhiteDream/BloodCult/Objectives/KillTargetCultSystem.cs new file mode 100644 index 00000000000..75e21d68003 --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Objectives/KillTargetCultSystem.cs @@ -0,0 +1,64 @@ +using System.Linq; +using Content.Server.Roles.Jobs; +using Content.Server.WhiteDream.BloodCult.Gamerule; +using Content.Shared.Mobs.Components; +using Content.Shared.Mobs.Systems; +using Content.Shared.Objectives.Components; + +namespace Content.Server.WhiteDream.BloodCult.Objectives; + +public sealed class KillTargetCultSystem : EntitySystem +{ + [Dependency] private readonly BloodCultRuleSystem _cultRule = default!; + [Dependency] private readonly JobSystem _job = default!; + [Dependency] private readonly MetaDataSystem _metaData = default!; + [Dependency] private readonly MobStateSystem _mobState = default!; + + public override void Initialize() + { + SubscribeLocalEvent(OnObjectiveAssigned); + SubscribeLocalEvent(OnAfterAssign); + SubscribeLocalEvent(OnGetProgress); + } + + private void OnObjectiveAssigned(Entity ent, ref ObjectiveAssignedEvent args) + { + var cultistRule = EntityManager.EntityQuery().FirstOrDefault(); + if (cultistRule is null) + return; + + if (cultistRule.OfferingTarget is null) + _cultRule.SetRandomCultTarget(cultistRule); + + ent.Comp.Target = cultistRule.OfferingTarget; + } + + private void OnAfterAssign(Entity ent, ref ObjectiveAfterAssignEvent args) + { + if (!ent.Comp.Target.HasValue || !ent.Owner.IsValid() || !HasComp(ent)) + return; + + _metaData.SetEntityName(ent, GetTitle(ent.Comp.Target.Value, ent.Comp.Title), args.Meta); + } + + private void OnGetProgress(Entity ent, ref ObjectiveGetProgressEvent args) + { + var target = ent.Comp.Target; + if (!target.HasValue) + { + args.Progress = 1f; + return; + } + + args.Progress = !HasComp(target) || _mobState.IsDead(target.Value) + ? 1f + : 0f; + } + + private string GetTitle(EntityUid target, string title) + { + var targetName = MetaData(target).EntityName; + var jobName = _job.MindTryGetJobName(target); + return Loc.GetString(title, ("targetName", targetName), ("job", jobName)); + } +} diff --git a/Content.Server/WhiteDream/BloodCult/Pylon/PylonSystem.cs b/Content.Server/WhiteDream/BloodCult/Pylon/PylonSystem.cs new file mode 100644 index 00000000000..84717d69437 --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Pylon/PylonSystem.cs @@ -0,0 +1,136 @@ +using System.Linq; +using System.Numerics; +using Content.Server.Popups; +using Content.Shared.Damage; +using Content.Shared.Humanoid; +using Content.Shared.Interaction; +using Content.Shared.Maps; +using Content.Shared.Mobs.Systems; +using Content.Shared.WhiteDream.BloodCult; +using Content.Shared.WhiteDream.BloodCult.BloodCultist; +using Content.Shared.WhiteDream.BloodCult.Components; +using Robust.Server.Audio; +using Robust.Server.GameObjects; +using Robust.Shared.Audio; +using Robust.Shared.Map; +using Robust.Shared.Map.Components; +using Robust.Shared.Player; +using Robust.Shared.Random; + +namespace Content.Server.WhiteDream.BloodCult.Pylon; + +public sealed class PylonSystem : EntitySystem +{ + [Dependency] private readonly ITileDefinitionManager _tileDefinition = default!; + [Dependency] private readonly IRobustRandom _random = default!; + + [Dependency] private readonly AppearanceSystem _appearance = default!; + [Dependency] private readonly AudioSystem _audio = default!; + [Dependency] private readonly DamageableSystem _damageable = default!; + [Dependency] private readonly EntityLookupSystem _lookup = default!; + [Dependency] private readonly MapSystem _map = default!; + [Dependency] private readonly MobStateSystem _mobState = default!; + [Dependency] private readonly TileSystem _tile = default!; + [Dependency] private readonly TurfSystem _turfs = default!; + [Dependency] private readonly PointLightSystem _pointLight = default!; + [Dependency] private readonly PopupSystem _popup = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnInteract); + } + + public override void Update(float frameTime) + { + base.Update(frameTime); + + var pylonQuery = EntityQueryEnumerator(); + while (pylonQuery.MoveNext(out var uid, out var pylon)) + { + if (!pylon.IsActive) + continue; + + pylon.CorruptionAccumulator += frameTime; + pylon.HealingAccumulator += frameTime; + + if (pylon.CorruptionAccumulator >= pylon.CorruptionCooldown) + { + pylon.CorruptionAccumulator = 0; + CorruptTilesInRange((uid, pylon)); + } + + if (pylon.HealingAccumulator >= pylon.HealingCooldown) + { + pylon.HealingAccumulator = 0; + HealInRange((uid, pylon)); + } + } + } + + private void OnInteract(Entity pylon, ref InteractHandEvent args) + { + if (!HasComp(args.User)) + { + _audio.PlayEntity(pylon.Comp.BurnHandSound, Filter.Pvs(pylon), pylon, true); + _popup.PopupEntity(Loc.GetString("powered-light-component-burn-hand"), pylon, args.User); + _damageable.TryChangeDamage(args.User, pylon.Comp.DamageOnInteract, true); + return; + } + + ToggleActive(pylon); + var toggleMsg = Loc.GetString(pylon.Comp.IsActive ? "pylon-toggle-on" : "pylon-toggle-off"); + _popup.PopupEntity(toggleMsg, pylon); + } + + private void ToggleActive(Entity pylon) + { + var state = !pylon.Comp.IsActive; + pylon.Comp.IsActive = state; + _appearance.SetData(pylon, PylonVisuals.Activated, state); + _pointLight.SetEnabled(pylon, state); + } + + private void CorruptTilesInRange(Entity pylon) + { + var pylonTrans = Transform(pylon); + if (pylonTrans.GridUid is not { } gridUid || !TryComp(pylonTrans.GridUid, out MapGridComponent? mapGrid)) + return; + + var radius = pylon.Comp.CorruptionRadius; + var tilesRefs = _map.GetLocalTilesIntersecting(gridUid, + mapGrid, + new Box2(pylonTrans.Coordinates.Position + new Vector2(-radius, -radius), + pylonTrans.Coordinates.Position + new Vector2(radius, radius))) + .ToList(); + + _random.Shuffle(tilesRefs); + + var cultTileDefinition = (ContentTileDefinition) _tileDefinition[pylon.Comp.CultTile]; + foreach (var tile in tilesRefs) + { + if (tile.Tile.TypeId == cultTileDefinition.TileId) + continue; + + var tilePos = _turfs.GetTileCenter(tile); + _audio.PlayPvs(pylon.Comp.CorruptTileSound, tilePos, AudioParams.Default.WithVolume(-5)); + _tile.ReplaceTile(tile, cultTileDefinition); + Spawn(pylon.Comp.TileCorruptEffect, tilePos); + return; + } + } + + private void HealInRange(Entity pylon) + { + var pylonPosition = Transform(pylon).Coordinates; + var targets = + _lookup.GetEntitiesInRange(pylonPosition, pylon.Comp.HealingAuraRange); + + foreach (var target in targets) + { + if (HasComp(target) && !_mobState.IsDead(target)) + _damageable.TryChangeDamage(target, pylon.Comp.Healing, true); + } + } +} diff --git a/Content.Server/WhiteDream/BloodCult/RendingRunePlacement/RendingRunePlacementMarkerComponent.cs b/Content.Server/WhiteDream/BloodCult/RendingRunePlacement/RendingRunePlacementMarkerComponent.cs new file mode 100644 index 00000000000..44d15e88521 --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/RendingRunePlacement/RendingRunePlacementMarkerComponent.cs @@ -0,0 +1,11 @@ +namespace Content.Server.WhiteDream.BloodCult.RendingRunePlacement; + +[RegisterComponent] +public sealed partial class RendingRunePlacementMarkerComponent : Component +{ + [DataField] + public bool IsActive; + + [DataField] + public float DrawingRange = 10; +} diff --git a/Content.Server/WhiteDream/BloodCult/Runes/Apocalypse/CultRuneApocalypseComponent.cs b/Content.Server/WhiteDream/BloodCult/Runes/Apocalypse/CultRuneApocalypseComponent.cs new file mode 100644 index 00000000000..d7c25ae24d0 --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Runes/Apocalypse/CultRuneApocalypseComponent.cs @@ -0,0 +1,61 @@ +using Robust.Shared.Prototypes; + +namespace Content.Server.WhiteDream.BloodCult.Runes.Apocalypse; + +[RegisterComponent] +public sealed partial class CultRuneApocalypseComponent : Component +{ + [DataField] + public float InvokeTime = 20; + + /// + /// If cult has less than this percent of current server population, + /// one of the possible events will be triggered. + /// + [DataField] + public float CultistsThreshold = 0.15f; + + [DataField] + public float EmpRange = 30f; + + [DataField] + public float EmpEnergyConsumption = 10000; + + [DataField] + public float EmpDuration = 180; + + /// + /// Was the rune already used or not. + /// + [DataField] + public bool Used; + + [DataField] + public Color UsedColor = Color.DimGray; + + /// + /// These events will be triggered on each rune activation. + /// + [DataField] + public List GuaranteedEvents = new() + { + "PowerGridCheck", + "SolarFlare" + }; + + /// + /// One of these events will be selected on each rune activation. + /// Stores the event and how many times it should be repeated. + /// + [DataField] + public Dictionary PossibleEvents = new() + { + ["ImmovableRodSpawn"] = 3, + ["MimicVendorRule"] = 2, + ["RatKingSpawn"] = 2, + ["MeteorSwarm"] = 2, + ["SpiderSpawn"] = 3, // more spiders + ["AnomalySpawn"] = 4, + ["KudzuGrowth"] = 2, + }; +} diff --git a/Content.Server/WhiteDream/BloodCult/Runes/Apocalypse/CultRuneApocalypseSystem.cs b/Content.Server/WhiteDream/BloodCult/Runes/Apocalypse/CultRuneApocalypseSystem.cs new file mode 100644 index 00000000000..745ea042caf --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Runes/Apocalypse/CultRuneApocalypseSystem.cs @@ -0,0 +1,75 @@ +using System.Linq; +using Content.Server.DoAfter; +using Content.Server.Emp; +using Content.Server.GameTicking; +using Content.Server.WhiteDream.BloodCult.Gamerule; +using Content.Shared.DoAfter; +using Content.Shared.WhiteDream.BloodCult.Runes; +using Robust.Server.GameObjects; +using Robust.Shared.Player; +using Robust.Shared.Random; + +namespace Content.Server.WhiteDream.BloodCult.Runes.Apocalypse; + +public sealed class CultRuneApocalypseSystem : EntitySystem +{ + [Dependency] private readonly ISharedPlayerManager _playerManager = default!; + [Dependency] private readonly IRobustRandom _random = default!; + + [Dependency] private readonly AppearanceSystem _appearance = default!; + [Dependency] private readonly DoAfterSystem _doAfter = default!; + [Dependency] private readonly EmpSystem _emp = default!; + [Dependency] private readonly GameTicker _gameTicker = default!; + [Dependency] private readonly TransformSystem _transform = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnApocalypseRuneInvoked); + SubscribeLocalEvent(OnDoAfter); + } + + private void OnApocalypseRuneInvoked(Entity ent, ref TryInvokeCultRuneEvent args) + { + if (ent.Comp.Used) + { + args.Cancel(); + return; + } + + var doAfter = new DoAfterArgs(EntityManager, args.User, ent.Comp.InvokeTime, new ApocalypseRuneDoAfter(), ent) + { + BreakOnUserMove = true + }; + + _doAfter.TryStartDoAfter(doAfter); + } + + private void OnDoAfter(Entity ent, ref ApocalypseRuneDoAfter args) + { + if (args.Cancelled || EntityManager.EntityQuery().FirstOrDefault() is not { } cultRule) + return; + + ent.Comp.Used = true; + _appearance.SetData(ent, ApocalypseRuneVisuals.Used, true); + + _emp.EmpPulse( + _transform.GetMapCoordinates(ent), + ent.Comp.EmpRange, + ent.Comp.EmpEnergyConsumption, + ent.Comp.EmpDuration); + + foreach (var guaranteedEvent in ent.Comp.GuaranteedEvents) + _gameTicker.StartGameRule(guaranteedEvent); + + var requiredCultistsThreshold = MathF.Floor(_playerManager.PlayerCount * ent.Comp.CultistsThreshold); + var totalCultists = cultRule.Cultists.Count + cultRule.Constructs.Count; + if (totalCultists >= requiredCultistsThreshold) + return; + + var (randomEvent, repeatTimes) = _random.Pick(ent.Comp.PossibleEvents); + for (var i = 0; i < repeatTimes; i++) + _gameTicker.StartGameRule(randomEvent); + } +} diff --git a/Content.Server/WhiteDream/BloodCult/Runes/Barrier/CultRuneBarrierComponent.cs b/Content.Server/WhiteDream/BloodCult/Runes/Barrier/CultRuneBarrierComponent.cs new file mode 100644 index 00000000000..64f8fba2e78 --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Runes/Barrier/CultRuneBarrierComponent.cs @@ -0,0 +1,10 @@ +using Robust.Shared.Prototypes; + +namespace Content.Server.WhiteDream.BloodCult.Runes.Barrier; + +[RegisterComponent] +public sealed partial class CultRuneBarrierComponent : Component +{ + [DataField] + public EntProtoId SpawnPrototype = "BloodCultBarrier"; +} diff --git a/Content.Server/WhiteDream/BloodCult/Runes/Barrier/CultRuneBarrierSystem.cs b/Content.Server/WhiteDream/BloodCult/Runes/Barrier/CultRuneBarrierSystem.cs new file mode 100644 index 00000000000..e4062dce625 --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Runes/Barrier/CultRuneBarrierSystem.cs @@ -0,0 +1,15 @@ +namespace Content.Server.WhiteDream.BloodCult.Runes.Barrier; + +public sealed class CultRuneBarrierSystem : EntitySystem +{ + public override void Initialize() + { + SubscribeLocalEvent(OnBarrierRuneInvoked); + } + + private void OnBarrierRuneInvoked(Entity ent, ref TryInvokeCultRuneEvent args) + { + Spawn(ent.Comp.SpawnPrototype, Transform(ent).Coordinates); + Del(ent); + } +} diff --git a/Content.Server/WhiteDream/BloodCult/Runes/BloodBoil/CultRuneBloodBoilComponent.cs b/Content.Server/WhiteDream/BloodCult/Runes/BloodBoil/CultRuneBloodBoilComponent.cs new file mode 100644 index 00000000000..1ec1397545d --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Runes/BloodBoil/CultRuneBloodBoilComponent.cs @@ -0,0 +1,26 @@ +using Robust.Shared.Audio; +using Robust.Shared.Prototypes; + +namespace Content.Server.WhiteDream.BloodCult.Runes.BloodBoil; + +[RegisterComponent] +public sealed partial class CultRuneBloodBoilComponent : Component +{ + [DataField] + public EntProtoId ProjectilePrototype = "BloodBoilProjectile"; + + [DataField] + public float ProjectileSpeed = 50; + + [DataField] + public float TargetsLookupRange = 15f; + + [DataField] + public float ProjectileCount = 3; + + [DataField] + public float FireStacksPerProjectile = 1; + + [DataField] + public SoundSpecifier ActivationSound = new SoundPathSpecifier("/Audio/WhiteDream/BloodCult/magic.ogg"); +} diff --git a/Content.Server/WhiteDream/BloodCult/Runes/BloodBoil/CultRuneBloodBoilSystem.cs b/Content.Server/WhiteDream/BloodCult/Runes/BloodBoil/CultRuneBloodBoilSystem.cs new file mode 100644 index 00000000000..1c3981a392a --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Runes/BloodBoil/CultRuneBloodBoilSystem.cs @@ -0,0 +1,86 @@ +using System.Linq; +using System.Numerics; +using Content.Server.Atmos.Components; +using Content.Server.Atmos.EntitySystems; +using Content.Server.Body.Components; +using Content.Server.Examine; +using Content.Server.Popups; +using Content.Server.Weapons.Ranged.Systems; +using Content.Server.WhiteDream.BloodCult.BloodBoilProjectile; +using Content.Shared.Projectiles; +using Content.Shared.WhiteDream.BloodCult.BloodCultist; +using Robust.Server.Audio; +using Robust.Server.GameObjects; +using Robust.Shared.Audio; +using Robust.Shared.Random; + +namespace Content.Server.WhiteDream.BloodCult.Runes.BloodBoil; + +public sealed class CultRuneBloodBoilSystem : EntitySystem +{ + [Dependency] private readonly IRobustRandom _random = default!; + + [Dependency] private readonly AudioSystem _audio = default!; + [Dependency] private readonly CultRuneBaseSystem _cultRune = default!; + [Dependency] private readonly ExamineSystem _examine = default!; + [Dependency] private readonly FlammableSystem _flammable = default!; + [Dependency] private readonly GunSystem _gun = default!; + [Dependency] private readonly TransformSystem _transform = default!; + [Dependency] private readonly PopupSystem _popup = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnBloodBoilRuneInvoked); + } + + private void OnBloodBoilRuneInvoked(Entity ent, ref TryInvokeCultRuneEvent args) + { + var targets = _cultRune.GetTargetsNearRune(ent, + ent.Comp.TargetsLookupRange, + entity => + HasComp(entity) || + !HasComp(entity) || + !_examine.InRangeUnOccluded(ent, entity, ent.Comp.TargetsLookupRange)) + .ToList(); + + if (targets.Count == 0) + { + _popup.PopupEntity(Loc.GetString("cult-blood-boil-rune-no-targets"), ent, args.User); + args.Cancel(); + return; + } + + for (var i = 0; i < ent.Comp.ProjectileCount; i++) + { + var target = _random.PickAndTake(targets); + if (HasComp(target)) + { + _flammable.AdjustFireStacks(target, ent.Comp.FireStacksPerProjectile); + _flammable.Ignite(target, ent); + } + + Shoot(ent, target); + } + + _audio.PlayPvs(ent.Comp.ActivationSound, ent, AudioParams.Default.WithMaxDistance(2f)); + } + + private void Shoot(Entity ent, EntityUid target) + { + var runeMapPos = _transform.GetMapCoordinates(ent); + var targetMapPos = _transform.GetMapCoordinates(target); + + var projectileEntity = Spawn(ent.Comp.ProjectilePrototype, runeMapPos); + var direction = targetMapPos.Position - runeMapPos.Position; + + if (!HasComp(projectileEntity)) + return; + + var bloodBoilProjectile = EnsureComp(projectileEntity); + bloodBoilProjectile.Target = target; + + _gun.ShootProjectile(projectileEntity, direction, Vector2.Zero, ent, ent, ent.Comp.ProjectileSpeed); + } +} diff --git a/Content.Server/WhiteDream/BloodCult/Runes/CultRuneBaseComponent.cs b/Content.Server/WhiteDream/BloodCult/Runes/CultRuneBaseComponent.cs new file mode 100644 index 00000000000..fcfe7a65a02 --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Runes/CultRuneBaseComponent.cs @@ -0,0 +1,51 @@ +using Content.Shared.Chat; +using Content.Shared.Chemistry.Reagent; +using Content.Shared.Damage; +using Content.Shared.Humanoid; +using Robust.Shared.Prototypes; + +namespace Content.Server.WhiteDream.BloodCult.Runes; + +[RegisterComponent] +public sealed partial class CultRuneBaseComponent : Component +{ + [DataField(required: true)] + public string InvokePhrase = ""; + + [DataField] + public InGameICChatType InvokeChatType = InGameICChatType.Whisper; + + [DataField] + public int RequiredInvokers = 1; + + [DataField] + public float RuneActivationRange = 1f; + + /// + /// Damage dealt on the rune activation. + /// + [DataField] + public DamageSpecifier? ActivationDamage; + + /// + /// Will the rune upon activation set nearest Rending Rune Placement Marker to disabled. + /// + [DataField] + public bool TriggerRendingMarkers; + + [DataField] + public bool CanBeErased = true; + + public ProtoId HolyWaterPrototype = "HolyWater"; +} + +public sealed class TryInvokeCultRuneEvent(EntityUid user, HashSet invokers) : CancellableEntityEventArgs +{ + public EntityUid User = user; + public HashSet Invokers = invokers; +} + +public sealed class AfterRunePlaced(EntityUid user) +{ + public EntityUid User = user; +} diff --git a/Content.Server/WhiteDream/BloodCult/Runes/CultRuneBaseSystem.Helpers.cs b/Content.Server/WhiteDream/BloodCult/Runes/CultRuneBaseSystem.Helpers.cs new file mode 100644 index 00000000000..3e03ec1b0df --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Runes/CultRuneBaseSystem.Helpers.cs @@ -0,0 +1,56 @@ +using Content.Shared.Humanoid; +using Content.Shared.Movement.Pulling.Components; +using Content.Shared.Movement.Pulling.Systems; +using Content.Shared.WhiteDream.BloodCult.BloodCultist; +using Content.Shared.WhiteDream.BloodCult.Constructs; + +namespace Content.Server.WhiteDream.BloodCult.Runes; + +public sealed partial class CultRuneBaseSystem +{ + [Dependency] private readonly PullingSystem _pulling = default!; + + /// + /// Gets all cultists/constructs near rune. + /// + public HashSet GatherCultists(EntityUid rune, float range) + { + var runeTransform = Transform(rune); + var entities = _lookup.GetEntitiesInRange(runeTransform.Coordinates, range); + entities.RemoveWhere(entity => !HasComp(entity) && !HasComp(entity)); + return entities; + } + + /// + /// Gets all the humanoids near rune. + /// + /// The rune itself. + /// Radius for a lookup. + /// Filter to exlude from return. + public HashSet> GetTargetsNearRune( + EntityUid rune, + float range, + Predicate>? exlude = null + ) + { + var runeTransform = Transform(rune); + var possibleTargets = _lookup.GetEntitiesInRange(runeTransform.Coordinates, range); + if (exlude != null) + possibleTargets.RemoveWhere(exlude); + + return possibleTargets; + } + + /// + /// Is used to stop target from pulling/being pulled before teleporting them. + /// + public void StopPulling(EntityUid target) + { + if (TryComp(target, out PullableComponent? pullable) && pullable.BeingPulled) + _pulling.TryStopPull(target, pullable); + + // I wish there was a better way to do it + if (_pulling.TryGetPulledEntity(target, out var pulling)) + _pulling.TryStopPull(pulling.Value); + } +} diff --git a/Content.Server/WhiteDream/BloodCult/Runes/CultRuneBaseSystem.cs b/Content.Server/WhiteDream/BloodCult/Runes/CultRuneBaseSystem.cs new file mode 100644 index 00000000000..013b8df6cdd --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Runes/CultRuneBaseSystem.cs @@ -0,0 +1,270 @@ +using System.Linq; +using System.Numerics; +using Content.Server.Bible.Components; +using Content.Server.Chat.Systems; +using Content.Server.Chemistry.Components; +using Content.Server.DoAfter; +using Content.Server.Fluids.Components; +using Content.Server.Popups; +using Content.Server.WhiteDream.BloodCult.Empower; +using Content.Server.WhiteDream.BloodCult.Gamerule; +using Content.Shared.Chemistry.Components.SolutionManager; +using Content.Shared.Chemistry.EntitySystems; +using Content.Shared.Damage; +using Content.Shared.DoAfter; +using Content.Shared.Examine; +using Content.Shared.Ghost; +using Content.Shared.Interaction; +using Content.Shared.Maps; +using Content.Shared.UserInterface; +using Content.Shared.WhiteDream.BloodCult.BloodCultist; +using Content.Shared.WhiteDream.BloodCult.Constructs; +using Content.Shared.WhiteDream.BloodCult.Runes; +using Robust.Server.Audio; +using Robust.Server.GameObjects; +using Robust.Shared.Audio; +using Robust.Shared.Physics.Events; +using Robust.Shared.Prototypes; + +namespace Content.Server.WhiteDream.BloodCult.Runes; + +public sealed partial class CultRuneBaseSystem : EntitySystem +{ + [Dependency] private readonly IPrototypeManager _protoManager = default!; + [Dependency] private readonly AudioSystem _audio = default!; + [Dependency] private readonly ChatSystem _chat = default!; + [Dependency] private readonly BloodCultRuleSystem _cultRule = default!; + [Dependency] private readonly DamageableSystem _damageable = default!; + [Dependency] private readonly DoAfterSystem _doAfter = default!; + [Dependency] private readonly TransformSystem _transform = default!; + [Dependency] private readonly EntityLookupSystem _lookup = default!; + [Dependency] private readonly SharedSolutionContainerSystem _solutionContainer = default!; + [Dependency] private readonly PopupSystem _popup = default!; + [Dependency] private readonly UserInterfaceSystem _ui = default!; + + public override void Initialize() + { + // Drawing rune + SubscribeLocalEvent(BeforeOpenUi); + SubscribeLocalEvent(OnRuneSelected); + SubscribeLocalEvent(OnDrawRune); + + // Erasing rune + SubscribeLocalEvent(EraseOnInteractUsing); + SubscribeLocalEvent(OnRuneErase); + SubscribeLocalEvent(EraseOnCollding); + + // Rune invoking + SubscribeLocalEvent(OnRuneActivate); + + SubscribeLocalEvent(OnRuneExaminaAttempt); + } + + #region EventHandlers + + private void BeforeOpenUi(Entity ent, ref BeforeActivatableUIOpenEvent args) + { + var availableRunes = new List>(); + var runeSelectorArray = _protoManager.EnumeratePrototypes().OrderBy(r => r.ID).ToArray(); + foreach (var runeSelector in runeSelectorArray) + { + if (runeSelector.RequireTargetDead && !_cultRule.IsObjectiveFinished() || + runeSelector.RequiredTotalCultists > _cultRule.GetTotalCultists()) + continue; + + availableRunes.Add(runeSelector.ID); + } + + _ui.SetUiState(ent.Owner, RuneDrawerBuiKey.Key, new RuneDrawerMenuState(availableRunes)); + } + + private void OnRuneSelected(Entity ent, ref RuneDrawerSelectedMessage args) + { + if (!_protoManager.TryIndex(args.SelectedRune, out var runeSelector) || !CanDrawRune(args.Actor)) + return; + + if (runeSelector.RequireTargetDead && !_cultRule.CanDrawRendingRune(args.Actor)) + { + _popup.PopupEntity(Loc.GetString("cult-rune-cant-draw-rending"), args.Actor, args.Actor); + return; + } + + var timeToDraw = runeSelector.DrawTime; + if (TryComp(args.Actor, out BloodCultEmpoweredComponent? empowered)) + timeToDraw *= empowered.RuneTimeMultiplier; + + var ev = new DrawRuneDoAfter + { + Rune = args.SelectedRune, + EndDrawingSound = ent.Comp.EndDrawingSound + }; + + var argsDoAfterEvent = new DoAfterArgs(EntityManager, args.Actor, timeToDraw, ev, args.Actor) + { + BreakOnUserMove = true, + NeedHand = true + }; + + if (_doAfter.TryStartDoAfter(argsDoAfterEvent)) + _audio.PlayPvs(ent.Comp.StartDrawingSound, args.Actor, AudioParams.Default.WithMaxDistance(2f)); + } + + private void OnDrawRune(Entity ent, ref DrawRuneDoAfter args) + { + if (args.Cancelled || !_protoManager.TryIndex(args.Rune, out var runeSelector)) + return; + + DealDamage(args.User, runeSelector.DrawDamage); + + _audio.PlayPvs(args.EndDrawingSound, args.User, AudioParams.Default.WithMaxDistance(2f)); + var runeEnt = SpawnRune(args.User, runeSelector.Prototype); + if (TryComp(runeEnt, out CultRuneBaseComponent? rune) + && rune.TriggerRendingMarkers + && !_cultRule.TryConsumeNearestMarker(ent)) + return; + + var ev = new AfterRunePlaced(args.User); + RaiseLocalEvent(runeEnt, ev); + } + + private void EraseOnInteractUsing(Entity rune, ref InteractUsingEvent args) + { + if (!rune.Comp.CanBeErased) + return; + + // Logic for bible erasing + if (TryComp(args.Used, out var bible) && HasComp(args.User)) + { + _popup.PopupEntity(Loc.GetString("cult-rune-erased"), rune, args.User); + _audio.PlayPvs(bible.HealSoundPath, args.User); + EntityManager.DeleteEntity(args.Target); + return; + } + + if (!TryComp(args.Used, out RuneDrawerComponent? runeDrawer)) + return; + + var argsDoAfterEvent = + new DoAfterArgs(EntityManager, args.User, runeDrawer.EraseTime, new RuneEraseDoAfterEvent(), rune) + { + BreakOnUserMove = true, + BreakOnDamage = true, + NeedHand = true + }; + + if (_doAfter.TryStartDoAfter(argsDoAfterEvent)) + _popup.PopupEntity(Loc.GetString("cult-rune-started-erasing"), rune, args.User); + } + + private void OnRuneErase(Entity ent, ref RuneEraseDoAfterEvent args) + { + if (args.Cancelled) + return; + + _popup.PopupEntity(Loc.GetString("cult-rune-erased"), ent, args.User); + EntityManager.DeleteEntity(ent); + } + + private void EraseOnCollding(Entity rune, ref StartCollideEvent args) + { + if (!rune.Comp.CanBeErased || + !TryComp(args.OtherEntity, out var solutionContainer) || + !HasComp(args.OtherEntity) && !HasComp(args.OtherEntity)) + return; + + if (_solutionContainer.EnumerateSolutions((args.OtherEntity, solutionContainer)) + .Any(solution => solution.Solution.Comp.Solution.ContainsPrototype(rune.Comp.HolyWaterPrototype))) + EntityManager.DeleteEntity(rune); + } + + private void OnRuneActivate(Entity rune, ref ActivateInWorldEvent args) + { + var runeCoordinates = Transform(rune).Coordinates; + var userCoordinates = Transform(args.User).Coordinates; + if (args.Handled || !HasComp(args.User) || + !userCoordinates.TryDistance(EntityManager, runeCoordinates, out var distance) || + distance > rune.Comp.RuneActivationRange) + return; + + args.Handled = true; + + var cultists = GatherCultists(rune, rune.Comp.RuneActivationRange); + if (cultists.Count < rune.Comp.RequiredInvokers) + { + _popup.PopupEntity(Loc.GetString("cult-rune-not-enough-cultists"), rune, args.User); + return; + } + + var tryInvokeEv = new TryInvokeCultRuneEvent(args.User, cultists); + RaiseLocalEvent(rune, tryInvokeEv); + if (tryInvokeEv.Cancelled) + return; + + foreach (var cultist in cultists) + { + DealDamage(cultist, rune.Comp.ActivationDamage); + _chat.TrySendInGameICMessage( + cultist, + rune.Comp.InvokePhrase, + rune.Comp.InvokeChatType, + false, + checkRadioPrefix: false); + } + } + + private void OnRuneExaminaAttempt(Entity rune, ref ExamineAttemptEvent args) + { + if (!HasComp(args.Examiner) && !HasComp(args.Examiner) && + !HasComp(args.Examiner)) + args.Cancel(); + } + + #endregion + + private EntityUid SpawnRune(EntityUid user, EntProtoId rune) + { + var transform = Transform(user); + var snappedLocalPosition = new Vector2( + MathF.Floor(transform.LocalPosition.X) + 0.5f, + MathF.Floor(transform.LocalPosition.Y) + 0.5f); + var spawnPosition = _transform.GetMapCoordinates(user); + var runeEntity = EntityManager.Spawn(rune, spawnPosition); + _transform.SetLocalPosition(runeEntity, snappedLocalPosition); + + return runeEntity; + } + + private bool CanDrawRune(EntityUid uid) + { + var transform = Transform(uid); + var gridUid = transform.GridUid; + if (!gridUid.HasValue) + { + _popup.PopupEntity(Loc.GetString("cult-rune-cant-draw"), uid, uid); + return false; + } + + var tile = transform.Coordinates.GetTileRef(); + if (tile.HasValue) + return true; + + _popup.PopupEntity(Loc.GetString("cult-cant-draw-rune"), uid, uid); + return false; + } + + private void DealDamage(EntityUid user, DamageSpecifier? damage = null) + { + if (damage is null) + return; + + // So the original DamageSpecifier will not be changed. + var newDamage = new DamageSpecifier(damage); + if (TryComp(user, out BloodCultEmpoweredComponent? empowered)) + { + foreach (var (key, value) in damage.DamageDict) + damage.DamageDict[key] = value * empowered.RuneDamageMultiplier; + } + + _damageable.TryChangeDamage(user, newDamage, true); + } +} diff --git a/Content.Server/WhiteDream/BloodCult/Runes/Empower/CultRuneEmpowerComponent.cs b/Content.Server/WhiteDream/BloodCult/Runes/Empower/CultRuneEmpowerComponent.cs new file mode 100644 index 00000000000..880e3f897cf --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Runes/Empower/CultRuneEmpowerComponent.cs @@ -0,0 +1,8 @@ +namespace Content.Server.WhiteDream.BloodCult.Runes.Empower; + +[RegisterComponent] +public sealed partial class CultRuneEmpowerComponent : Component +{ + [DataField] + public string ComponentToGive = "BloodCultEmpowered"; +} diff --git a/Content.Server/WhiteDream/BloodCult/Runes/Empower/CultRuneEmpowerSystem.cs b/Content.Server/WhiteDream/BloodCult/Runes/Empower/CultRuneEmpowerSystem.cs new file mode 100644 index 00000000000..3c015072199 --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Runes/Empower/CultRuneEmpowerSystem.cs @@ -0,0 +1,33 @@ +using Content.Server.Popups; +using Content.Server.WhiteDream.BloodCult.Empower; + +namespace Content.Server.WhiteDream.BloodCult.Runes.Empower; + +public sealed class CultRuneEmpowerSystem : EntitySystem +{ + [Dependency] private readonly IComponentFactory _factory = default!; + + [Dependency] private readonly PopupSystem _popup = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnStrengthRuneInvoked); + } + + private void OnStrengthRuneInvoked(Entity ent, ref TryInvokeCultRuneEvent args) + { + var registration = _factory.GetRegistration(ent.Comp.ComponentToGive); + if (HasComp(args.User, registration.Type)) + { + _popup.PopupEntity(Loc.GetString("cult-buff-already-buffed"), args.User, args.User); + args.Cancel(); + return; + } + + var empowered = (BloodCultEmpoweredComponent) _factory.GetComponent(ent.Comp.ComponentToGive); + empowered.TimeRemaining = empowered.DefaultTime; + AddComp(args.User, empowered); + } +} diff --git a/Content.Server/WhiteDream/BloodCult/Runes/Offering/CultRuneOfferingComponent.cs b/Content.Server/WhiteDream/BloodCult/Runes/Offering/CultRuneOfferingComponent.cs new file mode 100644 index 00000000000..5e594808d98 --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Runes/Offering/CultRuneOfferingComponent.cs @@ -0,0 +1,49 @@ +using Content.Shared.Damage; +using Content.Shared.FixedPoint; +using Robust.Shared.Prototypes; + +namespace Content.Server.WhiteDream.BloodCult.Runes.Offering; + +[RegisterComponent] +public sealed partial class CultRuneOfferingComponent : Component +{ + /// + /// The lookup range for offering targets + /// + [DataField] + public float OfferingRange = 0.5f; + + /// + /// The amount of cultists require to convert a living target. + /// + [DataField] + public int ConvertInvokersAmount = 2; + + /// + /// The amount of cultists required to sacrifice a living target. + /// + [DataField] + public int AliveSacrificeInvokersAmount = 3; + + /// + /// The amount of charges revive rune system should recieve on sacrifice/convert. + /// + [DataField] + public int ReviveChargesPerOffering = 1; + + [DataField] + public EntProtoId SoulShardProto = "SoulShard"; + + [DataField] + public EntProtoId SoulShardGhostProto = "SoulShardGhost"; + + [DataField] + public DamageSpecifier ConvertHealing = new() + { + DamageDict = new() + { + ["Brute"] = -40, + ["Burn"] = -40 + } + }; +} diff --git a/Content.Server/WhiteDream/BloodCult/Runes/Offering/CultRuneOfferingSystem.cs b/Content.Server/WhiteDream/BloodCult/Runes/Offering/CultRuneOfferingSystem.cs new file mode 100644 index 00000000000..3556fd9b23e --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Runes/Offering/CultRuneOfferingSystem.cs @@ -0,0 +1,120 @@ +using System.Linq; +using Content.Server.Bible.Components; +using Content.Server.Body.Systems; +using Content.Server.Cuffs; +using Content.Server.Mind; +using Content.Server.Stunnable; +using Content.Server.WhiteDream.BloodCult.Gamerule; +using Content.Server.WhiteDream.BloodCult.Runes.Revive; +using Content.Shared.Cuffs.Components; +using Content.Shared.Damage; +using Content.Shared.Mindshield.Components; +using Content.Shared.Mobs.Systems; +using Content.Shared.StatusEffect; +using Content.Shared.WhiteDream.BloodCult.BloodCultist; + +namespace Content.Server.WhiteDream.BloodCult.Runes.Offering; + +public sealed class CultRuneOfferingSystem : EntitySystem +{ + [Dependency] private readonly BloodCultRuleSystem _bloodCultRule = default!; + [Dependency] private readonly BodySystem _body = default!; + [Dependency] private readonly CuffableSystem _cuffable = default!; + [Dependency] private readonly CultRuneBaseSystem _cultRune = default!; + [Dependency] private readonly CultRuneReviveSystem _cultRuneRevive = default!; + [Dependency] private readonly DamageableSystem _damageable = default!; + [Dependency] private readonly MindSystem _mind = default!; + [Dependency] private readonly MobStateSystem _mobState = default!; + [Dependency] private readonly StatusEffectsSystem _statusEffects = default!; + [Dependency] private readonly StunSystem _stun = default!; + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnOfferingRuneInvoked); + } + + private void OnOfferingRuneInvoked(Entity rune, ref TryInvokeCultRuneEvent args) + { + var possibleTargets = _cultRune.GetTargetsNearRune( + rune, + rune.Comp.OfferingRange, + entity => HasComp(entity)); + + if (possibleTargets.Count == 0) + { + args.Cancel(); + return; + } + + var target = possibleTargets.First(); + if (!TryOffer(rune, target, args.User, args.Invokers.Count)) + args.Cancel(); + } + + private bool TryOffer(Entity rune, EntityUid target, EntityUid user, int invokersTotal) + { + // if the target is dead we should always sacrifice it. + if (_mobState.IsDead(target)) + { + Sacrifice(rune, target); + return true; + } + + if (!_mind.TryGetMind(target, out _, out _) || _bloodCultRule.IsTarget(target) || + HasComp(target) || HasComp(target)) + return TrySacrifice(rune, target, invokersTotal); + + return TryConvert(rune, target, user, invokersTotal); + } + + private bool TrySacrifice(Entity rune, EntityUid target, int invokersAmount) + { + if (invokersAmount < rune.Comp.AliveSacrificeInvokersAmount) + return false; + + Sacrifice(rune, target); + return true; + } + + private bool TryConvert(Entity rune, EntityUid target, EntityUid user, int invokersTotal) + { + if (invokersTotal < rune.Comp.ConvertInvokersAmount) + return false; + + _cultRuneRevive.AddCharges(rune, rune.Comp.ReviveChargesPerOffering); + Convert(rune, target, user); + return true; + } + + private void Sacrifice(Entity rune, EntityUid target) + { + _cultRuneRevive.AddCharges(rune, rune.Comp.ReviveChargesPerOffering); + var transform = Transform(target); + + if (!_mind.TryGetMind(target, out var mindId, out _)) + Spawn(rune.Comp.SoulShardGhostProto, transform.Coordinates); + else + { + var shard = Spawn(rune.Comp.SoulShardProto, transform.Coordinates); + _mind.TransferTo(mindId, shard); + _mind.UnVisit(mindId); + } + + _body.GibBody(target); + } + + private void Convert(Entity rune, EntityUid target, EntityUid user) + { + _bloodCultRule.Convert(target); + _stun.TryStun(target, TimeSpan.FromSeconds(2f), false); + if (TryComp(target, out CuffableComponent? cuffs) && cuffs.Container.ContainedEntities.Count >= 1) + { + var lastAddedCuffs = cuffs.LastAddedCuffs; + _cuffable.Uncuff(target, user, lastAddedCuffs); + } + + _statusEffects.TryRemoveStatusEffect(target, "Muted"); + _damageable.TryChangeDamage(target, rune.Comp.ConvertHealing); + } +} diff --git a/Content.Server/WhiteDream/BloodCult/Runes/Rending/CultRuneRendingComponent.cs b/Content.Server/WhiteDream/BloodCult/Runes/Rending/CultRuneRendingComponent.cs new file mode 100644 index 00000000000..9c049a189d9 --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Runes/Rending/CultRuneRendingComponent.cs @@ -0,0 +1,33 @@ +using Content.Shared.DoAfter; +using Robust.Shared.Audio; +using Robust.Shared.Audio.Components; +using Robust.Shared.Prototypes; + +namespace Content.Server.WhiteDream.BloodCult.Runes.Rending; + +[RegisterComponent] +public sealed partial class CultRuneRendingComponent : Component +{ + [DataField] + public float SummonTime = 40; + + [DataField] + public SoundSpecifier FinishedDrawingAudio = + new SoundPathSpecifier("/Audio/WhiteDream/BloodCult/rending_draw_finished.ogg"); + + [DataField] + public SoundSpecifier SummonAudio = new SoundPathSpecifier("/Audio/WhiteDream/BloodCult/rending_ritual.ogg"); + + [DataField] + public EntProtoId NarsiePrototype = "MobNarsieSpawn"; + + /// + /// Used to track if the rune is being used right now. + /// + public DoAfterId? CurrentDoAfter; + + /// + /// Used to track the summon audio entity. + /// + public Entity? AudioEntity; +} diff --git a/Content.Server/WhiteDream/BloodCult/Runes/Rending/CultRuneRendingSystem.cs b/Content.Server/WhiteDream/BloodCult/Runes/Rending/CultRuneRendingSystem.cs new file mode 100644 index 00000000000..91347bcdd95 --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Runes/Rending/CultRuneRendingSystem.cs @@ -0,0 +1,111 @@ +using Content.Server.Chat.Systems; +using Content.Server.DoAfter; +using Content.Server.Pinpointer; +using Content.Server.Popups; +using Content.Server.WhiteDream.BloodCult.Gamerule; +using Content.Shared.DoAfter; +using Content.Shared.WhiteDream.BloodCult.Runes; +using Robust.Server.Audio; +using Robust.Server.GameObjects; +using Robust.Shared.Audio; +using Robust.Shared.Player; +using Robust.Shared.Utility; + +namespace Content.Server.WhiteDream.BloodCult.Runes.Rending; + +public sealed class CultRuneRendingSystem : EntitySystem +{ + [Dependency] private readonly AppearanceSystem _appearance = default!; + [Dependency] private readonly AudioSystem _audio = default!; + [Dependency] private readonly ChatSystem _chat = default!; + [Dependency] private readonly BloodCultRuleSystem _cultRule = default!; + [Dependency] private readonly DoAfterSystem _doAfter = default!; + [Dependency] private readonly NavMapSystem _navMap = default!; + [Dependency] private readonly PopupSystem _popup = default!; + [Dependency] private readonly TransformSystem _transform = default!; + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnRendingRunePlaced); + SubscribeLocalEvent(OnRendingRuneInvoked); + SubscribeLocalEvent(SpawnNarSie); + } + + private void OnRendingRunePlaced(Entity rune, ref AfterRunePlaced args) + { + var position = _transform.GetMapCoordinates(rune); + var message = Loc.GetString( + "cult-rending-drawing-finished", + ("location", FormattedMessage.RemoveMarkupPermissive(_navMap.GetNearestBeaconString(position)))); + + _chat.DispatchGlobalAnnouncement( + message, + Loc.GetString("blood-cult-title"), + true, + rune.Comp.FinishedDrawingAudio, + Color.DarkRed); + } + + private void OnRendingRuneInvoked(Entity rune, ref TryInvokeCultRuneEvent args) + { + if (!_cultRule.IsObjectiveFinished()) + { + _popup.PopupEntity(Loc.GetString("cult-rending-target-alive"), rune, args.User); + args.Cancel(); + return; + } + + if (rune.Comp.CurrentDoAfter.HasValue) + { + _popup.PopupEntity(Loc.GetString("cult-rending-already-summoning"), rune, args.User); + args.Cancel(); + return; + } + + var ev = new RendingRuneDoAfter(); + var argsDoAfterEvent = new DoAfterArgs(EntityManager, args.User, rune.Comp.SummonTime, ev, rune) + { + BreakOnUserMove = true + }; + + if (!_doAfter.TryStartDoAfter(argsDoAfterEvent, out rune.Comp.CurrentDoAfter)) + { + args.Cancel(); + return; + } + + var message = Loc.GetString( + "cult-rending-started", + ("location", FormattedMessage.RemoveMarkupPermissive(_navMap.GetNearestBeaconString(rune.Owner)))); + _chat.DispatchGlobalAnnouncement( + message, + Loc.GetString("blood-cult-title"), + false, + colorOverride: Color.DarkRed); + + _appearance.SetData(rune, RendingRuneVisuals.Active, true); + rune.Comp.AudioEntity = + _audio.PlayGlobal(rune.Comp.SummonAudio, Filter.Broadcast(), false, AudioParams.Default.WithLoop(true)); + } + + private void SpawnNarSie(Entity rune, ref RendingRuneDoAfter args) + { + rune.Comp.CurrentDoAfter = null; + _audio.Stop(rune.Comp.AudioEntity); + _appearance.SetData(rune, RendingRuneVisuals.Active, false); + if (args.Cancelled) + { + _chat.DispatchGlobalAnnouncement( + Loc.GetString("cult-rending-prevented"), + Loc.GetString("blood-cult-title"), + false, + colorOverride: Color.DarkRed); + return; + } + + var ev = new BloodCultNarsieSummoned(); + RaiseLocalEvent(ev); + Spawn(rune.Comp.NarsiePrototype, _transform.GetMapCoordinates(rune)); + } +} diff --git a/Content.Server/WhiteDream/BloodCult/Runes/Revive/CultRuneReviveComponent.cs b/Content.Server/WhiteDream/BloodCult/Runes/Revive/CultRuneReviveComponent.cs new file mode 100644 index 00000000000..1cddaef0154 --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Runes/Revive/CultRuneReviveComponent.cs @@ -0,0 +1,26 @@ +using Content.Shared.Damage; +using Content.Shared.FixedPoint; + +namespace Content.Server.WhiteDream.BloodCult.Runes.Revive; + +[RegisterComponent] +public sealed partial class CultRuneReviveComponent : Component +{ + [DataField] + public float ReviveRange = 0.5f; + + [DataField] + public DamageSpecifier Healing = new() + { + DamageDict = new Dictionary + { + ["Brute"] = -100, + ["Burn"] = -100, + ["Heat"] = -100, + ["Asphyxiation"] = -100, + ["Bloodloss"] = -100, + ["Poison"] = -50, + ["Cellular"] = -50 + } + }; +} diff --git a/Content.Server/WhiteDream/BloodCult/Runes/Revive/CultRuneReviveSystem.cs b/Content.Server/WhiteDream/BloodCult/Runes/Revive/CultRuneReviveSystem.cs new file mode 100644 index 00000000000..0842422b466 --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Runes/Revive/CultRuneReviveSystem.cs @@ -0,0 +1,113 @@ +using System.Linq; +using Content.Server.EUI; +using Content.Server.Ghost; +using Content.Server.Mind; +using Content.Server.Popups; +using Content.Shared.Damage; +using Content.Shared.Mobs; +using Content.Shared.Mobs.Components; +using Content.Shared.Mobs.Systems; +using Content.Shared.WhiteDream.BloodCult.BloodCultist; + +namespace Content.Server.WhiteDream.BloodCult.Runes.Revive; + +public sealed class CultRuneReviveSystem : EntitySystem +{ + [Dependency] private readonly EuiManager _eui = default!; + + [Dependency] private readonly CultRuneBaseSystem _cultRune = default!; + [Dependency] private readonly DamageableSystem _damageable = default!; + [Dependency] private readonly MindSystem _mind = default!; + [Dependency] private readonly MobStateSystem _mobState = default!; + [Dependency] private readonly MobThresholdSystem _threshold = default!; + [Dependency] private readonly PopupSystem _popup = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnReviveRuneInvoked); + } + + private void OnReviveRuneInvoked(Entity ent, ref TryInvokeCultRuneEvent args) + { + var chargesProvider = EnsureReviveRuneChargesProvider(ent); + if (chargesProvider is null) + { + _popup.PopupEntity(Loc.GetString("cult-revive-rune-no-charges"), args.User, args.User); + args.Cancel(); + return; + } + + var possibleTargets = _cultRune.GetTargetsNearRune(ent, + ent.Comp.ReviveRange, + entity => + !HasComp(entity) || + !HasComp(entity) || + !HasComp(entity) || + _mobState.IsAlive(entity) + ); + + if (possibleTargets.Count == 0) + { + _popup.PopupEntity(Loc.GetString("cult-rune-no-targets"), args.User, args.User); + args.Cancel(); + return; + } + + var victim = possibleTargets.First(); + + if (chargesProvider.Charges == 0) + { + _popup.PopupEntity(Loc.GetString("cult-revive-rune-no-charges"), args.User, args.User); + args.Cancel(); + return; + } + + Revive(victim, args.User, ent); + } + + public void AddCharges(EntityUid ent, int charges) + { + var chargesProvider = EnsureReviveRuneChargesProvider(ent); + if (chargesProvider is null) + return; + + chargesProvider.Charges += charges; + } + + private void Revive(EntityUid target, EntityUid user, Entity rune) + { + var chargesProvider = EnsureReviveRuneChargesProvider(rune); + if (chargesProvider is null) + return; + + chargesProvider.Charges--; + + var deadThreshold = _threshold.GetThresholdForState(target, MobState.Dead); + _damageable.TryChangeDamage(target, rune.Comp.Healing); + + if (!TryComp(target, out var damageable) || damageable.TotalDamage > deadThreshold) + return; + + _mobState.ChangeMobState(target, MobState.Critical, origin: user); + if (!_mind.TryGetMind(target, out _, out var mind)) + { + // if the mind is not found in the body, try to find the original cultist mind + if (TryComp(target, out var cultist) && cultist.OriginalMind != null) + mind = cultist.OriginalMind.Value; + } + + if (mind?.Session is not { } playerSession || mind.CurrentEntity == target) + return; + + // notify them they're being revived. + _eui.OpenEui(new ReturnToBodyEui(mind, _mind), playerSession); + } + + private ReviveRuneChargesProviderComponent? EnsureReviveRuneChargesProvider(EntityUid ent) + { + var mapUid = Transform(ent).MapUid; + return !mapUid.HasValue ? null : EnsureComp(mapUid.Value); + } +} diff --git a/Content.Server/WhiteDream/BloodCult/Runes/Revive/ReviveRuneChargesProviderComponent.cs b/Content.Server/WhiteDream/BloodCult/Runes/Revive/ReviveRuneChargesProviderComponent.cs new file mode 100644 index 00000000000..ab167aba889 --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Runes/Revive/ReviveRuneChargesProviderComponent.cs @@ -0,0 +1,8 @@ +namespace Content.Server.WhiteDream.BloodCult.Runes.Revive; + +[RegisterComponent] +public sealed partial class ReviveRuneChargesProviderComponent : Component +{ + [DataField] + public int Charges = 3; +} diff --git a/Content.Server/WhiteDream/BloodCult/Runes/Summon/CultRuneSummonComponent.cs b/Content.Server/WhiteDream/BloodCult/Runes/Summon/CultRuneSummonComponent.cs new file mode 100644 index 00000000000..a5c04b54873 --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Runes/Summon/CultRuneSummonComponent.cs @@ -0,0 +1,10 @@ +using Robust.Shared.Audio; + +namespace Content.Server.WhiteDream.BloodCult.Runes.Summon; + +[RegisterComponent] +public sealed partial class CultRuneSummonComponent : Component +{ + [DataField] + public SoundPathSpecifier TeleportSound = new("/Audio/WhiteDream/BloodCult/veilin.ogg"); +} diff --git a/Content.Server/WhiteDream/BloodCult/Runes/Summon/CultRuneSummonSystem.cs b/Content.Server/WhiteDream/BloodCult/Runes/Summon/CultRuneSummonSystem.cs new file mode 100644 index 00000000000..0c0f228dafe --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Runes/Summon/CultRuneSummonSystem.cs @@ -0,0 +1,89 @@ +using System.Linq; +using Content.Server.Popups; +using Content.Shared.Cuffs.Components; +using Content.Shared.ListViewSelector; +using Content.Shared.Movement.Pulling.Components; +using Content.Shared.WhiteDream.BloodCult.BloodCultist; +using Robust.Server.Audio; +using Robust.Server.GameObjects; + +namespace Content.Server.WhiteDream.BloodCult.Runes.Summon; + +public sealed class CultRuneSummonSystem : EntitySystem +{ + [Dependency] private readonly AudioSystem _audio = default!; + [Dependency] private readonly CultRuneBaseSystem _cultRune = default!; + [Dependency] private readonly TransformSystem _transform = default!; + [Dependency] private readonly PopupSystem _popup = default!; + [Dependency] private readonly UserInterfaceSystem _ui = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnSummonRuneInvoked); + SubscribeLocalEvent(OnCultistSelected); + } + + private void OnSummonRuneInvoked(Entity rune, ref TryInvokeCultRuneEvent args) + { + var runeUid = rune.Owner; + if (_ui.IsUiOpen(runeUid, ListViewSelectorUiKey.Key)) + { + args.Cancel(); + return; + } + + var cultistsQuery = EntityQueryEnumerator(); + var cultist = new List(); + var invokers = args.Invokers.ToArray(); + while (cultistsQuery.MoveNext(out var cultistUid, out _)) + { + if (invokers.Contains(cultistUid)) + continue; + + var metaData = MetaData(cultistUid); + var entry = new ListViewSelectorEntry(cultistUid.ToString(), + metaData.EntityName, + metaData.EntityDescription); + + cultist.Add(entry); + } + + if (cultist.Count == 0) + { + _popup.PopupEntity(Loc.GetString("cult-rune-no-targets"), args.User, args.User); + args.Cancel(); + return; + } + + _ui.SetUiState(runeUid, ListViewSelectorUiKey.Key, new ListViewSelectorState(cultist)); + _ui.TryToggleUi(runeUid, ListViewSelectorUiKey.Key, args.User); + } + + private void OnCultistSelected(Entity ent, ref ListViewItemSelectedMessage args) + { + if (!EntityUid.TryParse(args.SelectedItem.Id, out var target)) + return; + + if (TryComp(target, out PullableComponent? pullable) && pullable.BeingPulled) + { + _popup.PopupEntity(Loc.GetString("blood-cult-summon-being-pulled"), ent, args.Actor); + return; + } + + if (TryComp(target, out CuffableComponent? cuffable) && cuffable.CuffedHandCount > 0) + { + _popup.PopupEntity(Loc.GetString("blood-cult-summon-cuffed"), ent, args.Actor); + return; + } + + var runeTransform = Transform(ent); + + _cultRune.StopPulling(target); + + _transform.SetCoordinates(target, runeTransform.Coordinates); + + _audio.PlayPvs(ent.Comp.TeleportSound, ent); + } +} diff --git a/Content.Server/WhiteDream/BloodCult/Runes/Teleport/CultRuneTeleportComponent.cs b/Content.Server/WhiteDream/BloodCult/Runes/Teleport/CultRuneTeleportComponent.cs new file mode 100644 index 00000000000..7acc40f727d --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Runes/Teleport/CultRuneTeleportComponent.cs @@ -0,0 +1,19 @@ +using Robust.Shared.Audio; + +namespace Content.Server.WhiteDream.BloodCult.Runes.Teleport; + +[RegisterComponent] +public sealed partial class CultRuneTeleportComponent : Component +{ + [DataField] + public float TeleportGatherRange = 0.65f; + + [DataField] + public string Name = ""; + + [DataField] + public SoundPathSpecifier TeleportInSound = new("/Audio/WhiteDream/BloodCult/veilin.ogg"); + + [DataField] + public SoundPathSpecifier TeleportOutSound = new("/Audio/WhiteDream/BloodCult/veilout.ogg"); +} diff --git a/Content.Server/WhiteDream/BloodCult/Runes/Teleport/CultRuneTeleportSystem.cs b/Content.Server/WhiteDream/BloodCult/Runes/Teleport/CultRuneTeleportSystem.cs new file mode 100644 index 00000000000..c2f40ca0dfd --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Runes/Teleport/CultRuneTeleportSystem.cs @@ -0,0 +1,93 @@ +using Content.Server.Popups; +using Content.Shared.ListViewSelector; +using Content.Shared.WhiteDream.BloodCult.UI; +using Robust.Server.Audio; +using Robust.Server.GameObjects; + +namespace Content.Server.WhiteDream.BloodCult.Runes.Teleport; + +public sealed class CultRuneTeleportSystem : EntitySystem +{ + [Dependency] private readonly AudioSystem _audio = default!; + [Dependency] private readonly CultRuneBaseSystem _cultRune = default!; + [Dependency] private readonly TransformSystem _transform = default!; + [Dependency] private readonly PopupSystem _popup = default!; + [Dependency] private readonly UserInterfaceSystem _ui = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnAfterRunePlaced); + SubscribeLocalEvent(OnNameSelected); + SubscribeLocalEvent(OnTeleportRuneInvoked); + SubscribeLocalEvent(OnTeleportRuneSelected); + } + + private void OnAfterRunePlaced(Entity rune, ref AfterRunePlaced args) + { + _ui.OpenUi(rune.Owner, NameSelectorUiKey.Key, args.User); + } + + private void OnNameSelected(Entity rune, ref NameSelectedMessage args) + { + rune.Comp.Name = args.Name; + } + + private void OnTeleportRuneInvoked(Entity rune, ref TryInvokeCultRuneEvent args) + { + var runeUid = rune.Owner; + if (_ui.IsUiOpen(runeUid, ListViewSelectorUiKey.Key)) + { + args.Cancel(); + return; + } + + if (!TryGetTeleportRunes(runeUid, out var runes, args.User)) + { + args.Cancel(); + return; + } + + _ui.SetUiState(runeUid, ListViewSelectorUiKey.Key, new ListViewSelectorState(runes)); + _ui.TryToggleUi(runeUid, ListViewSelectorUiKey.Key, args.User); + } + + private void OnTeleportRuneSelected(Entity origin, ref ListViewItemSelectedMessage args) + { + if (!EntityUid.TryParse(args.SelectedItem.Id, out var destination)) + return; + + var teleportTargets = _cultRune.GetTargetsNearRune(origin, origin.Comp.TeleportGatherRange); + var destinationTransform = Transform(destination); + + foreach (var target in teleportTargets) + { + _cultRune.StopPulling(target); + _transform.SetCoordinates(target, destinationTransform.Coordinates); + } + + _audio.PlayPvs(origin.Comp.TeleportOutSound, origin); + _audio.PlayPvs(origin.Comp.TeleportInSound, destination); + } + + public bool TryGetTeleportRunes(EntityUid user, out List runes, EntityUid? runeUid = null) + { + var runeQuery = EntityQueryEnumerator(); + runes = new List(); + while (runeQuery.MoveNext(out var targetRune, out var teleportRune)) + { + if (targetRune == runeUid) + continue; + + var entry = new ListViewSelectorEntry(targetRune.ToString(), teleportRune.Name); + runes.Add(entry); + } + + if (runes.Count != 0) + return true; + + _popup.PopupEntity(Loc.GetString("cult-teleport-not-found"), user, user); + return false; + } +} diff --git a/Content.Server/WhiteDream/BloodCult/Spells/BaseCultSpellComponent.cs b/Content.Server/WhiteDream/BloodCult/Spells/BaseCultSpellComponent.cs new file mode 100644 index 00000000000..9ace43c4896 --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Spells/BaseCultSpellComponent.cs @@ -0,0 +1,11 @@ +namespace Content.Server.WhiteDream.BloodCult.Spells; + +[RegisterComponent] +public sealed partial class BaseCultSpellComponent : Component +{ + /// + /// If true will ignore protection like mindshield of holy magic. + /// + [DataField] + public bool BypassProtection; +} diff --git a/Content.Server/WhiteDream/BloodCult/Spells/BloodCultSpellsHolderComponent.cs b/Content.Server/WhiteDream/BloodCult/Spells/BloodCultSpellsHolderComponent.cs new file mode 100644 index 00000000000..5beb41e7dea --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Spells/BloodCultSpellsHolderComponent.cs @@ -0,0 +1,31 @@ +using Content.Shared.DoAfter; +using Content.Shared.Psionics; +using Robust.Shared.Prototypes; + +namespace Content.Server.WhiteDream.BloodCult.Spells; + +[RegisterComponent] +public sealed partial class BloodCultSpellsHolderComponent : Component +{ + [DataField] + public int DefaultMaxSpells = 1; + + [DataField] + public TimeSpan SpellCreationTime = TimeSpan.FromSeconds(2); + + [DataField] + public ProtoId PowersPoolPrototype = "BloodCultPowers"; + + [ViewVariables(VVAccess.ReadOnly)] + public List SelectedSpells = new(); + + public int MaxSpells; + + public DoAfterId? DoAfterId; + + /// + /// Since radial selector menu doesn't have metadata, we use this to toggle between remove and + /// add spells modes. + /// + public bool AddSpellsMode = true; +} diff --git a/Content.Server/WhiteDream/BloodCult/Spells/BloodCultSpellsSystem.cs b/Content.Server/WhiteDream/BloodCult/Spells/BloodCultSpellsSystem.cs new file mode 100644 index 00000000000..c69bf6abd4e --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Spells/BloodCultSpellsSystem.cs @@ -0,0 +1,300 @@ +using Content.Server.Actions; +using Content.Server.Cuffs; +using Content.Server.DoAfter; +using Content.Server.Emp; +using Content.Server.Hands.Systems; +using Content.Server.Popups; +using Content.Server.Stunnable; +using Content.Shared.Abilities.Psionics; +using Content.Shared.Actions; +using Content.Shared.Actions.Events; +using Content.Shared.Clothing.Components; +using Content.Shared.DoAfter; +using Content.Shared.Inventory; +using Content.Shared.Mindshield.Components; +using Content.Shared.Popups; +using Content.Shared.RadialSelector; +using Content.Shared.Speech.Muting; +using Content.Shared.StatusEffect; +using Content.Shared.Verbs; +using Content.Shared.WhiteDream.BloodCult.Spells; +using Robust.Server.GameObjects; +using Robust.Shared.Prototypes; +using Robust.Shared.Utility; + +namespace Content.Server.WhiteDream.BloodCult.Spells; + +public sealed class BloodCultSpellsSystem : EntitySystem +{ + [Dependency] private readonly IPrototypeManager _proto = default!; + + [Dependency] private readonly ActionsSystem _actions = default!; + [Dependency] private readonly DoAfterSystem _doAfter = default!; + [Dependency] private readonly CuffableSystem _cuffable = default!; + [Dependency] private readonly EmpSystem _empSystem = default!; + [Dependency] private readonly HandsSystem _hands = default!; + [Dependency] private readonly InventorySystem _inventory = default!; + [Dependency] private readonly TransformSystem _transform = default!; + [Dependency] private readonly PopupSystem _popup = default!; + [Dependency] private readonly StatusEffectsSystem _statusEffects = default!; + [Dependency] private readonly StunSystem _stun = default!; + [Dependency] private readonly UserInterfaceSystem _ui = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnSpellStartup); + SubscribeLocalEvent(OnCultTargetEvent); + SubscribeLocalEvent(OnActionGettingDisabled); + + SubscribeLocalEvent(OnComponentStartup); + SubscribeLocalEvent>(OnGetVerbs); + SubscribeLocalEvent(OnSpellSelected); + SubscribeLocalEvent(OnSpellCreated); + + SubscribeLocalEvent(OnStun); + SubscribeLocalEvent(OnEmp); + SubscribeLocalEvent(OnShackles); + SubscribeLocalEvent(OnSummonEquipment); + } + + #region BaseHandlers + + private void OnSpellStartup(Entity action, ref ComponentStartup args) + { + if (_actions.TryGetActionData(action, out var actionData, false) && actionData is { UseDelay: not null }) + _actions.StartUseDelay(action); + } + + private void OnCultTargetEvent(Entity spell, ref EntityTargetActionEvent args) + { + if (_statusEffects.HasStatusEffect(args.Performer, "Muted")) + { + args.Handled = true; + return; + } + + if (spell.Comp.BypassProtection) + return; + + if (HasComp(args.Target) || HasComp(args.Target)) + args.Handled = true; + } + + private void OnActionGettingDisabled(Entity spell, ref ActionGettingDisabledEvent args) + { + if (TryComp(args.Performer, out BloodCultSpellsHolderComponent? spellsHolder)) + spellsHolder.SelectedSpells.Remove(spell); + + _actions.RemoveAction(args.Performer, spell); + } + + private void OnComponentStartup(Entity cultist, ref ComponentStartup args) => + cultist.Comp.MaxSpells = cultist.Comp.DefaultMaxSpells; + + private void OnGetVerbs(Entity cultist, ref GetVerbsEvent args) + { + if (args.User != args.Target) + return; + + var addVerb = new ExamineVerb + { + Category = VerbCategory.BloodSpells, + Text = Loc.GetString("blood-cult-select-spells-verb"), + Priority = 1, + Act = () => SelectBloodSpells(cultist) + }; + var removeVerb = new ExamineVerb + { + Category = VerbCategory.BloodSpells, + Text = Loc.GetString("blood-cult-remove-spells-verb"), + Priority = 0, + Act = () => RemoveBloodSpells(cultist) + }; + + args.Verbs.Add(removeVerb); + args.Verbs.Add(addVerb); + } + + private void OnSpellSelected(Entity cultist, ref RadialSelectorSelectedMessage args) + { + if (!cultist.Comp.AddSpellsMode) + { + if (EntityUid.TryParse(args.SelectedItem, out var actionUid)) + { + _actions.RemoveAction(cultist, actionUid); + cultist.Comp.SelectedSpells.Remove(actionUid); + } + + return; + } + + if (cultist.Comp.SelectedSpells.Count >= cultist.Comp.MaxSpells) + { + _popup.PopupEntity(Loc.GetString("blood-cult-spells-too-many"), cultist, cultist, PopupType.Medium); + return; + } + + var createSpellEvent = new CreateSpeellDoAfterEvent + { + ActionProtoId = args.SelectedItem + }; + + var doAfter = new DoAfterArgs( + EntityManager, + cultist.Owner, + cultist.Comp.SpellCreationTime, + createSpellEvent, + cultist.Owner) + { + BreakOnUserMove = true + }; + + if (_doAfter.TryStartDoAfter(doAfter, out var doAfterId)) + cultist.Comp.DoAfterId = doAfterId; + } + + private void OnSpellCreated(Entity cultist, ref CreateSpeellDoAfterEvent args) + { + cultist.Comp.DoAfterId = null; + if (args.Handled || args.Cancelled) + return; + + var action = _actions.AddAction(cultist, args.ActionProtoId); + if (action.HasValue) + cultist.Comp.SelectedSpells.Add(action.Value); + } + + #endregion + + #region SpellsHandlers + + private void OnStun(BloodCultStunEvent ev) + { + if (ev.Handled) + return; + + _statusEffects.TryAddStatusEffect(ev.Target, "Muted", ev.MuteDuration, true); + _stun.TryParalyze(ev.Target, ev.ParalyzeDuration, true); + ev.Handled = true; + } + + private void OnEmp(BloodCultEmpEvent ev) + { + if (ev.Handled) + return; + + _empSystem.EmpPulse(_transform.GetMapCoordinates(ev.Performer), ev.Range, ev.EnergyConsumption, ev.Duration); + ev.Handled = true; + } + + private void OnShackles(BloodCultShacklesEvent ev) + { + if (ev.Handled) + return; + + var shuckles = Spawn(ev.ShacklesProto); + if (!_cuffable.TryAddNewCuffs(ev.Target, ev.Performer, shuckles)) + return; + + _stun.TryKnockdown(ev.Target, ev.KnockdownDuration, true); + _statusEffects.TryAddStatusEffect(ev.Target, "Muted", ev.MuteDuration, true); + ev.Handled = true; + } + + private void OnSummonEquipment(SummonEquipmentEvent ev) + { + if (ev.Handled) + return; + + foreach (var (slot, protoId) in ev.Prototypes) + { + var entity = Spawn(protoId, _transform.GetMapCoordinates(ev.Performer)); + _hands.TryPickupAnyHand(ev.Performer, entity); + if (!TryComp(entity, out ClothingComponent? _)) + continue; + + _inventory.TryUnequip(ev.Performer, slot); + _inventory.TryEquip(ev.Performer, entity, slot, force: true); + } + + ev.Handled = true; + } + + #endregion + + #region Helpers + + private void SelectBloodSpells(Entity cultist) + { + if (!_proto.TryIndex(cultist.Comp.PowersPoolPrototype, out var pool)) + return; + + if (cultist.Comp.SelectedSpells.Count >= cultist.Comp.MaxSpells) + { + _popup.PopupEntity(Loc.GetString("blood-cult-spells-too-many"), cultist, cultist, PopupType.Medium); + return; + } + + cultist.Comp.AddSpellsMode = true; + + var radialList = new List(); + foreach (var spellId in pool.Powers) + { + var entry = new RadialSelectorEntry + { + Prototype = spellId + }; + + radialList.Add(entry); + } + + var state = new RadialSelectorState(radialList, true); + + _ui.SetUiState(cultist.Owner, RadialSelectorUiKey.Key, state); + _ui.TryToggleUi(cultist.Owner, RadialSelectorUiKey.Key, cultist.Owner); + } + + private void RemoveBloodSpells(Entity cultist) + { + if (cultist.Comp.SelectedSpells.Count == 0) + { + _popup.PopupEntity(Loc.GetString("blood-cult-no-spells"), cultist, cultist, PopupType.Medium); + return; + } + + cultist.Comp.AddSpellsMode = false; + + var radialList = new List(); + foreach (var spell in cultist.Comp.SelectedSpells) + { + var entry = new RadialSelectorEntry + { + Prototype = spell.ToString(), + Icon = GetActionIcon(spell) + }; + + radialList.Add(entry); + } + + var state = new RadialSelectorState(radialList, true); + + _ui.SetUiState(cultist.Owner, RadialSelectorUiKey.Key, state); + _ui.TryToggleUi(cultist.Owner, RadialSelectorUiKey.Key, cultist.Owner); + } + + private SpriteSpecifier? GetActionIcon(EntityUid actionUid) + { + if (TryComp(actionUid, out EntityTargetActionComponent? targetAction)) + return targetAction.Icon; + if (TryComp(actionUid, out WorldTargetActionComponent? worldTargetAction)) + return worldTargetAction.Icon; + if (TryComp(actionUid, out InstantActionComponent? instantActionComponent)) + return instantActionComponent.Icon; + + return null; + } + + #endregion +} diff --git a/Content.Server/WhiteDream/BloodCult/Spells/BloodCultTeleportSpellSystem.cs b/Content.Server/WhiteDream/BloodCult/Spells/BloodCultTeleportSpellSystem.cs new file mode 100644 index 00000000000..b0906bc13be --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Spells/BloodCultTeleportSpellSystem.cs @@ -0,0 +1,76 @@ +using Content.Server.DoAfter; +using Content.Server.WhiteDream.BloodCult.Runes; +using Content.Server.WhiteDream.BloodCult.Runes.Teleport; +using Content.Shared.DoAfter; +using Content.Shared.ListViewSelector; +using Content.Shared.WhiteDream.BloodCult.Spells; +using Robust.Server.Audio; +using Robust.Server.GameObjects; + +namespace Content.Server.WhiteDream.BloodCult.Spells; + +public sealed class BloodCultTeleportSpellSystem : EntitySystem +{ + [Dependency] private readonly AudioSystem _audio = default!; + [Dependency] private readonly CultRuneBaseSystem _cultRune = default!; + [Dependency] private readonly CultRuneTeleportSystem _runeTeleport = default!; + [Dependency] private readonly DoAfterSystem _doAfter = default!; + [Dependency] private readonly TransformSystem _transform = default!; + [Dependency] private readonly UserInterfaceSystem _ui = default!; + + public override void Initialize() + { + SubscribeLocalEvent(OnTeleport); + SubscribeLocalEvent(OnTeleportRuneSelected); + SubscribeLocalEvent(OnTeleportDoAfter); + } + + private void OnTeleport(BloodCultTeleportEvent ev) + { + if (ev.Handled || !_runeTeleport.TryGetTeleportRunes(ev.Performer, out var runes)) + return; + + var metaData = new Dictionary + { + ["target"] = GetNetEntity(ev.Target), + ["duration"] = ev.DoAfterDuration + }; + + _ui.SetUiState(ev.Performer, ListViewSelectorUiKey.Key, new ListViewSelectorState(runes, metaData)); + _ui.TryToggleUi(ev.Performer, ListViewSelectorUiKey.Key, ev.Performer); + ev.Handled = true; + } + + private void OnTeleportRuneSelected( + Entity ent, + ref ListViewItemSelectedMessage args + ) + { + if (!args.MetaData.TryGetValue("target", out var rawTarget) || rawTarget is not NetEntity netTarget || + !args.MetaData.TryGetValue("duration", out var rawDuration) || rawDuration is not TimeSpan duration) + return; + + var target = GetEntity(netTarget); + var teleportDoAfter = new TeleportActionDoAfterEvent + { + Rune = GetNetEntity(EntityUid.Parse(args.SelectedItem.Id)) + }; + var doAfterArgs = new DoAfterArgs(EntityManager, ent.Owner, duration, teleportDoAfter, target, target); + + _doAfter.TryStartDoAfter(doAfterArgs); + } + + private void OnTeleportDoAfter(Entity user, ref TeleportActionDoAfterEvent ev) + { + if (ev.Target is not { } target) + return; + + var rune = GetEntity(ev.Rune); + _audio.PlayPvs(ev.TeleportOutSound, target); + + _cultRune.StopPulling(target); + _transform.SetCoordinates(target, Transform(rune).Coordinates); + + _audio.PlayPvs(ev.TeleportInSound, rune); + } +} diff --git a/Content.Server/WhiteDream/BloodCult/Spells/TwistedConstruction/TwistedConstructionSystem.cs b/Content.Server/WhiteDream/BloodCult/Spells/TwistedConstruction/TwistedConstructionSystem.cs new file mode 100644 index 00000000000..3fe6cfa6847 --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/Spells/TwistedConstruction/TwistedConstructionSystem.cs @@ -0,0 +1,51 @@ +using Content.Server.DoAfter; +using Content.Server.Mind; +using Content.Server.Stack; +using Content.Shared.DoAfter; +using Content.Shared.Stacks; +using Content.Shared.WhiteDream.BloodCult.Components; +using Content.Shared.WhiteDream.BloodCult.Spells; +using Robust.Server.GameObjects; + +namespace Content.Server.WhiteDream.BloodCult.Spells.TwistedConstruction; + +public sealed class TwistedConstructionSystem : EntitySystem +{ + [Dependency] private readonly DoAfterSystem _doAfter = default!; + [Dependency] private readonly MindSystem _mind = default!; + [Dependency] private readonly TransformSystem _transform = default!; + [Dependency] private readonly StackSystem _stack = default!; + + public override void Initialize() + { + SubscribeLocalEvent(OnTwistedConstruction); + SubscribeLocalEvent(OnDoAfter); + } + + private void OnTwistedConstruction(BloodCultTwistedConstructionEvent ev) + { + if (ev.Handled || !TryComp(ev.Target, out TwistedConstructionTargetComponent? twistedConstruction)) + return; + + var args = new DoAfterArgs(EntityManager, + ev.Performer, + twistedConstruction.DoAfterDelay, + new TwistedConstructionDoAfterEvent(), + ev.Target); + + if (_doAfter.TryStartDoAfter(args)) + ev.Handled = true; + } + + private void OnDoAfter(Entity target, ref TwistedConstructionDoAfterEvent args) + { + var replacement = Spawn(target.Comp.ReplacementProto, _transform.GetMapCoordinates(target)); + if (TryComp(target, out StackComponent? stack) && TryComp(replacement, out StackComponent? targetStack)) + _stack.SetCount(replacement, stack.Count, targetStack); + + if (_mind.TryGetMind(target, out var mindId, out _)) + _mind.TransferTo(mindId, replacement); + + QueueDel(target); + } +} diff --git a/Content.Server/WhiteDream/BloodCult/TimedFactory/TimedFactoryComponent.cs b/Content.Server/WhiteDream/BloodCult/TimedFactory/TimedFactoryComponent.cs new file mode 100644 index 00000000000..5e41c7475a4 --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/TimedFactory/TimedFactoryComponent.cs @@ -0,0 +1,16 @@ +using Content.Shared.RadialSelector; + +namespace Content.Server.WhiteDream.BloodCult.TimedFactory; + +[RegisterComponent] +public sealed partial class TimedFactoryComponent : Component +{ + [DataField(required: true)] + public List Entries = new(); + + [DataField] + public float Cooldown = 240; + + [ViewVariables(VVAccess.ReadOnly)] + public float CooldownRemaining = 0; +} diff --git a/Content.Server/WhiteDream/BloodCult/TimedFactory/TimedFactorySystem.cs b/Content.Server/WhiteDream/BloodCult/TimedFactory/TimedFactorySystem.cs new file mode 100644 index 00000000000..b1aa9421140 --- /dev/null +++ b/Content.Server/WhiteDream/BloodCult/TimedFactory/TimedFactorySystem.cs @@ -0,0 +1,63 @@ +using Content.Server.Hands.Systems; +using Content.Server.Popups; +using Content.Shared.RadialSelector; +using Content.Shared.UserInterface; +using Content.Shared.WhiteDream.BloodCult; +using Robust.Server.GameObjects; + +namespace Content.Server.WhiteDream.BloodCult.TimedFactory; + +public sealed class TimedFactorySystem : EntitySystem +{ + [Dependency] private readonly AppearanceSystem _appearance = default!; + [Dependency] private readonly HandsSystem _hands = default!; + [Dependency] private readonly PopupSystem _popup = default!; + [Dependency] private readonly UserInterfaceSystem _ui = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnTryOpenMenu); + SubscribeLocalEvent(OnPrototypeSelected); + } + + public override void Update(float frameTime) + { + base.Update(frameTime); + + var factoryQuery = EntityQueryEnumerator(); + while (factoryQuery.MoveNext(out var uid, out var factory)) + if (factory.CooldownRemaining > 0) + factory.CooldownRemaining -= frameTime; + else + _appearance.SetData(uid, GenericCultVisuals.State, true); + } + + private void OnTryOpenMenu(Entity factory, ref ActivatableUIOpenAttemptEvent args) + { + var cooldown = MathF.Ceiling(factory.Comp.CooldownRemaining); + if (cooldown > 0) + { + args.Cancel(); + _popup.PopupEntity(Loc.GetString("timed-factory-cooldown", ("cooldown", cooldown)), factory, args.User); + } + + if (_ui.IsUiOpen(factory.Owner, RadialSelectorUiKey.Key)) + return; + + _ui.SetUiState(factory.Owner, RadialSelectorUiKey.Key, new RadialSelectorState(factory.Comp.Entries)); + } + + private void OnPrototypeSelected(Entity factory, ref RadialSelectorSelectedMessage args) + { + if (factory.Comp.CooldownRemaining > 0) + return; + + var product = Spawn(args.SelectedItem, Transform(args.Actor).Coordinates); + _hands.TryPickupAnyHand(args.Actor, product); + factory.Comp.CooldownRemaining = factory.Comp.Cooldown; + _appearance.SetData(factory, GenericCultVisuals.State, false); + _ui.CloseUi(args.Actor, RadialSelectorUiKey.Key); + } +} diff --git a/Content.Server/Xenoarchaeology/XenoArtifacts/ArtifactSystem.Nodes.cs b/Content.Server/Xenoarchaeology/XenoArtifacts/ArtifactSystem.Nodes.cs index 895bb0217b3..65aaabdf0e9 100644 --- a/Content.Server/Xenoarchaeology/XenoArtifacts/ArtifactSystem.Nodes.cs +++ b/Content.Server/Xenoarchaeology/XenoArtifacts/ArtifactSystem.Nodes.cs @@ -1,15 +1,16 @@ using System.Linq; using Content.Server.Xenoarchaeology.XenoArtifacts.Events; +using Content.Shared.Whitelist; using Content.Shared.Xenoarchaeology.XenoArtifacts; using JetBrains.Annotations; -using Robust.Shared.Prototypes; using Robust.Shared.Random; -using Robust.Shared.Serialization.Manager; namespace Content.Server.Xenoarchaeology.XenoArtifacts; public sealed partial class ArtifactSystem { + [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; + private const int MaxEdgesPerNode = 4; private readonly HashSet _usedNodeIds = new(); @@ -81,7 +82,8 @@ private int GetValidNodeId() private string GetRandomTrigger(EntityUid artifact, ref ArtifactNode node) { var allTriggers = _prototype.EnumeratePrototypes() - .Where(x => (x.Whitelist?.IsValid(artifact, EntityManager) ?? true) && (!x.Blacklist?.IsValid(artifact, EntityManager) ?? true)).ToList(); + .Where(x => _whitelistSystem.IsWhitelistPassOrNull(x.Whitelist, artifact) && + _whitelistSystem.IsBlacklistFailOrNull(x.Blacklist, artifact)).ToList(); var validDepth = allTriggers.Select(x => x.TargetDepth).Distinct().ToList(); var weights = GetDepthWeights(validDepth, node.Depth); @@ -95,7 +97,8 @@ private string GetRandomTrigger(EntityUid artifact, ref ArtifactNode node) private string GetRandomEffect(EntityUid artifact, ref ArtifactNode node) { var allEffects = _prototype.EnumeratePrototypes() - .Where(x => (x.Whitelist?.IsValid(artifact, EntityManager) ?? true) && (!x.Blacklist?.IsValid(artifact, EntityManager) ?? true)).ToList(); + .Where(x => _whitelistSystem.IsWhitelistPassOrNull(x.Whitelist, artifact) && + _whitelistSystem.IsBlacklistFailOrNull(x.Blacklist, artifact)).ToList(); var validDepth = allEffects.Select(x => x.TargetDepth).Distinct().ToList(); var weights = GetDepthWeights(validDepth, node.Depth); diff --git a/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/RandomInstrumentArtifactSystem.cs b/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/RandomInstrumentArtifactSystem.cs index 8945b867954..118bc396a72 100644 --- a/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/RandomInstrumentArtifactSystem.cs +++ b/Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/RandomInstrumentArtifactSystem.cs @@ -18,6 +18,6 @@ public override void Initialize() private void OnStartup(EntityUid uid, RandomInstrumentArtifactComponent component, ComponentStartup args) { var instrument = EnsureComp(uid); - _instrument.SetInstrumentProgram(instrument, (byte) _random.Next(0, 127), 0); + _instrument.SetInstrumentProgram(uid, instrument, (byte) _random.Next(0, 127), 0); } } diff --git a/Content.Server/Zombies/ZombieSystem.Transform.cs b/Content.Server/Zombies/ZombieSystem.Transform.cs index a906652765c..9e294c6aa58 100644 --- a/Content.Server/Zombies/ZombieSystem.Transform.cs +++ b/Content.Server/Zombies/ZombieSystem.Transform.cs @@ -22,6 +22,7 @@ using Content.Shared.Hands.Components; using Content.Shared.Hands.EntitySystems; using Content.Shared.Humanoid; +using Content.Shared.Interaction.Components; using Content.Shared.Mobs; using Content.Shared.Mobs.Components; using Content.Shared.Mobs.Systems; @@ -107,6 +108,7 @@ public void ZombifyEntity(EntityUid target, MobStateComponent? mobState = null) RemComp(target); RemComp(target); RemComp(target); + RemComp(target); if (HasComp(target)) // Prevent psionic zombies { @@ -191,7 +193,7 @@ public void ZombifyEntity(EntityUid target, MobStateComponent? mobState = null) Dirty(target, pryComp); } - Dirty(melee); + Dirty(target, melee); //The zombie gets the assigned damage weaknesses and strengths _damageable.SetDamageModifierSetId(target, "Zombie"); diff --git a/Content.Shared.Database/LogType.cs b/Content.Shared.Database/LogType.cs index ba94b0f3738..dad042f9706 100644 --- a/Content.Shared.Database/LogType.cs +++ b/Content.Shared.Database/LogType.cs @@ -98,5 +98,12 @@ public enum LogType ChatRateLimited = 87, AtmosTemperatureChanged = 88, DeviceNetwork = 89, - StoreRefund = 90 + StoreRefund = 90, + /// + /// User was rate-limited for some spam action. + /// + /// + /// This is a default value used by PlayerRateLimitManager, though users can use different log types. + /// + RateLimited = 91 } diff --git a/Content.Shared/ActionBlocker/ActionBlockerSystem.cs b/Content.Shared/ActionBlocker/ActionBlockerSystem.cs index 47b3997806d..d2883b5ef5b 100644 --- a/Content.Shared/ActionBlocker/ActionBlockerSystem.cs +++ b/Content.Shared/ActionBlocker/ActionBlockerSystem.cs @@ -96,9 +96,9 @@ public bool CanInteract(EntityUid user, EntityUid? target) /// involve using a held entity. In the majority of cases, systems that provide interactions will not need /// to check this themselves. /// - public bool CanUseHeldEntity(EntityUid user) + public bool CanUseHeldEntity(EntityUid user, EntityUid used) { - var ev = new UseAttemptEvent(user); + var ev = new UseAttemptEvent(user, used); RaiseLocalEvent(user, ev); return !ev.Cancelled; diff --git a/Content.Shared/Actions/Events/ActionGettingDisabledEvent.cs b/Content.Shared/Actions/Events/ActionGettingDisabledEvent.cs new file mode 100644 index 00000000000..0cf3dd6d39e --- /dev/null +++ b/Content.Shared/Actions/Events/ActionGettingDisabledEvent.cs @@ -0,0 +1,8 @@ +namespace Content.Shared.Actions.Events; + +/// +/// Raised on the action entity when it is getting disabled on performer. +/// +/// The entity that performed this action. +[ByRefEvent] +public readonly record struct ActionGettingDisabledEvent(EntityUid Performer); diff --git a/Content.Shared/Actions/Events/FabricateActionEvent.cs b/Content.Shared/Actions/Events/FabricateActionEvent.cs index 7483cb04d98..33ab826cc8e 100644 --- a/Content.Shared/Actions/Events/FabricateActionEvent.cs +++ b/Content.Shared/Actions/Events/FabricateActionEvent.cs @@ -5,5 +5,5 @@ namespace Content.Shared.Actions.Events; public sealed partial class FabricateActionEvent : InstantActionEvent { [DataField(required: true)] - public ProtoId Fabrication; + public EntProtoId Fabrication; } diff --git a/Content.Shared/Actions/SharedActionsSystem.cs b/Content.Shared/Actions/SharedActionsSystem.cs index 6445039b9cb..785a4478d56 100644 --- a/Content.Shared/Actions/SharedActionsSystem.cs +++ b/Content.Shared/Actions/SharedActionsSystem.cs @@ -580,7 +580,11 @@ public void PerformAction(EntityUid performer, ActionsComponent? component, Enti dirty = true; action.Charges--; if (action is { Charges: 0, RenewCharges: false }) + { + var disabledEv = new ActionGettingDisabledEvent(performer); + RaiseLocalEvent(actionId, ref disabledEv); action.Enabled = false; + } } action.Cooldown = null; diff --git a/Content.Shared/Administration/PlayerInfo.cs b/Content.Shared/Administration/PlayerInfo.cs index 93f1aa0b393..ed54d57bbef 100644 --- a/Content.Shared/Administration/PlayerInfo.cs +++ b/Content.Shared/Administration/PlayerInfo.cs @@ -18,6 +18,8 @@ public sealed record PlayerInfo( { private string? _playtimeString; + public bool IsPinned { get; set; } + public string PlaytimeString => _playtimeString ??= OverallPlaytime?.ToString("%d':'hh':'mm") ?? Loc.GetString("generic-unknown-title"); diff --git a/Content.Shared/Alert/AlertCategory.cs b/Content.Shared/Alert/AlertCategory.cs deleted file mode 100644 index 57a3e40f70e..00000000000 --- a/Content.Shared/Alert/AlertCategory.cs +++ /dev/null @@ -1,21 +0,0 @@ -namespace Content.Shared.Alert; - -/// -/// Every category of alert. Corresponds to category field in alert prototypes defined in YML -/// -public enum AlertCategory -{ - Pressure, - Temperature, - Breathing, - Buckled, - Health, - Mood, - Internals, - Stamina, - Piloting, - Hunger, - Thirst, - Toxins, - Battery -} diff --git a/Content.Shared/Alert/AlertCategoryPrototype.cs b/Content.Shared/Alert/AlertCategoryPrototype.cs new file mode 100644 index 00000000000..7c7d0475214 --- /dev/null +++ b/Content.Shared/Alert/AlertCategoryPrototype.cs @@ -0,0 +1,14 @@ +using Robust.Shared.Prototypes; + +namespace Content.Shared.Alert; + +/// +/// This is a prototype for a category for marking alerts as mutually exclusive. +/// +[Prototype] +public sealed partial class AlertCategoryPrototype : IPrototype +{ + /// + [IdDataField] + public string ID { get; } = default!; +} diff --git a/Content.Shared/Alert/AlertKey.cs b/Content.Shared/Alert/AlertKey.cs index c784af4cd48..c5c3a7643ec 100644 --- a/Content.Shared/Alert/AlertKey.cs +++ b/Content.Shared/Alert/AlertKey.cs @@ -1,5 +1,5 @@ -using Robust.Shared.Serialization; -using Robust.Shared.Serialization.Manager; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; namespace Content.Shared.Alert; @@ -11,13 +11,13 @@ namespace Content.Shared.Alert; [Serializable, NetSerializable] public struct AlertKey { - public AlertType? AlertType { get; private set; } = Alert.AlertType.Error; - public readonly AlertCategory? AlertCategory; + public ProtoId? AlertType { get; private set; } = default!; + public readonly ProtoId? AlertCategory; /// NOTE: if the alert has a category you must pass the category for this to work /// properly as a key. I.e. if the alert has a category and you pass only the alert type, and you /// compare this to another AlertKey that has both the category and the same alert type, it will not consider them equal. - public AlertKey(AlertType? alertType, AlertCategory? alertCategory) + public AlertKey(ProtoId? alertType, ProtoId? alertCategory) { AlertCategory = alertCategory; AlertType = alertType; @@ -49,7 +49,7 @@ public override int GetHashCode() /// alert category, must not be null /// An alert key for the provided alert category. This must only be used for /// queries and never storage, as it is lacking an alert type. - public static AlertKey ForCategory(AlertCategory category) + public static AlertKey ForCategory(ProtoId category) { return new(null, category); } diff --git a/Content.Shared/Alert/AlertOrderPrototype.cs b/Content.Shared/Alert/AlertOrderPrototype.cs index 8279d592b4b..af4241a27e7 100644 --- a/Content.Shared/Alert/AlertOrderPrototype.cs +++ b/Content.Shared/Alert/AlertOrderPrototype.cs @@ -7,7 +7,7 @@ namespace Content.Shared.Alert /// /// Defines the order of alerts so they show up in a consistent order. /// - [Prototype("alertOrder")] + [Prototype] [DataDefinition] public sealed partial class AlertOrderPrototype : IPrototype, IComparer { @@ -15,7 +15,7 @@ public sealed partial class AlertOrderPrototype : IPrototype, IComparer(alert)] = i++; + _typeToIdx[alert] = i++; break; case "category": - _categoryToIdx[Enum.Parse(alert)] = i++; + _categoryToIdx[alert] = i++; break; default: throw new ArgumentException(); @@ -58,17 +58,17 @@ public sealed partial class AlertOrderPrototype : IPrototype, IComparer _typeToIdx = new(); - private readonly Dictionary _categoryToIdx = new(); + private readonly Dictionary, int> _typeToIdx = new(); + private readonly Dictionary, int> _categoryToIdx = new(); private int GetOrderIndex(AlertPrototype alert) { - if (_typeToIdx.TryGetValue(alert.AlertType, out var idx)) + if (_typeToIdx.TryGetValue(alert.ID, out var idx)) { return idx; } if (alert.Category != null && - _categoryToIdx.TryGetValue((AlertCategory) alert.Category, out idx)) + _categoryToIdx.TryGetValue(alert.Category.Value, out idx)) { return idx; } @@ -78,20 +78,25 @@ private int GetOrderIndex(AlertPrototype alert) public int Compare(AlertPrototype? x, AlertPrototype? y) { - if ((x == null) && (y == null)) return 0; - if (x == null) return 1; - if (y == null) return -1; + if (x == null && y == null) + return 0; + if (x == null) + return 1; + if (y == null) + return -1; var idx = GetOrderIndex(x); var idy = GetOrderIndex(y); if (idx == -1 && idy == -1) { // break ties by type value // Must cast to int to avoid integer overflow when subtracting (enum's unsigned) - return (int)x.AlertType - (int)y.AlertType; + return string.Compare(x.ID, y.ID, StringComparison.InvariantCulture); } - if (idx == -1) return 1; - if (idy == -1) return -1; + if (idx == -1) + return 1; + if (idy == -1) + return -1; var result = idx - idy; // not strictly necessary (we don't care about ones that go at the same index) // but it makes the sort stable @@ -99,7 +104,7 @@ public int Compare(AlertPrototype? x, AlertPrototype? y) { // break ties by type value // Must cast to int to avoid integer overflow when subtracting (enum's unsigned) - return (int)x.AlertType - (int)y.AlertType; + return string.Compare(x.ID, y.ID, StringComparison.InvariantCulture); } return result; diff --git a/Content.Shared/Alert/AlertPrototype.cs b/Content.Shared/Alert/AlertPrototype.cs index 248cc00ba40..f53da27c0de 100644 --- a/Content.Shared/Alert/AlertPrototype.cs +++ b/Content.Shared/Alert/AlertPrototype.cs @@ -1,120 +1,116 @@ using Robust.Shared.Prototypes; using Robust.Shared.Utility; -namespace Content.Shared.Alert +namespace Content.Shared.Alert; + +/// +/// An alert popup with associated icon, tooltip, and other data. +/// +[Prototype] +public sealed partial class AlertPrototype : IPrototype { /// - /// An alert popup with associated icon, tooltip, and other data. + /// Type of alert, no 2 alert prototypes should have the same one. /// - [Prototype("alert")] - public sealed partial class AlertPrototype : IPrototype - { - [ViewVariables] - string IPrototype.ID => AlertType.ToString(); - - /// - /// Type of alert, no 2 alert prototypes should have the same one. - /// - [IdDataField] - public AlertType AlertType { get; private set; } - - /// - /// List of icons to use for this alert. Each entry corresponds to a different severity level, starting from the - /// minimum and incrementing upwards. If severities are not supported, the first entry is used. - /// - [DataField("icons", required: true)] - public List Icons = new(); - - /// - /// An entity used for displaying the in the UI control. - /// - [DataField] - public EntProtoId AlertViewEntity = "AlertSpriteView"; - - /// - /// Name to show in tooltip window. Accepts formatting. - /// - [DataField("name")] - public string Name { get; private set; } = ""; - - /// - /// Description to show in tooltip window. Accepts formatting. - /// - [DataField("description")] - public string Description { get; private set; } = ""; - - /// - /// Category the alert belongs to. Only one alert of a given category - /// can be shown at a time. If one is shown while another is already being shown, - /// it will be replaced. This can be useful for categories of alerts which should naturally - /// replace each other and are mutually exclusive, for example lowpressure / highpressure, - /// hot / cold. If left unspecified, the alert will not replace or be replaced by any other alerts. - /// - [DataField("category")] - public AlertCategory? Category { get; private set; } - - /// - /// Key which is unique w.r.t category semantics (alerts with same category have equal keys, - /// alerts with no category have different keys). - /// - public AlertKey AlertKey => new(AlertType, Category); - - /// - /// -1 (no effect) unless MaxSeverity is specified. Defaults to 1. Minimum severity level supported by this state. - /// - public short MinSeverity => MaxSeverity == -1 ? (short) -1 : _minSeverity; - - [DataField("minSeverity")] private short _minSeverity = 1; - - /// - /// Maximum severity level supported by this state. -1 (default) indicates - /// no severity levels are supported by the state. - /// - [DataField("maxSeverity")] - public short MaxSeverity = -1; - - /// - /// Indicates whether this state support severity levels - /// - public bool SupportsSeverity => MaxSeverity != -1; - - /// - /// Defines what to do when the alert is clicked. - /// This will always be null on clientside. - /// - [DataField("onClick", serverOnly: true)] - public IAlertClick? OnClick { get; private set; } - - /// severity level, if supported by this alert - /// the icon path to the texture for the provided severity level - public SpriteSpecifier GetIcon(short? severity = null) - { - var minIcons = SupportsSeverity - ? MaxSeverity - MinSeverity - : 1; + [IdDataField] + public string ID { get; private set; } = default!; - if (Icons.Count < minIcons) - throw new InvalidOperationException($"Insufficient number of icons given for alert {AlertType}"); + /// + /// List of icons to use for this alert. Each entry corresponds to a different severity level, starting from the + /// minimum and incrementing upwards. If severities are not supported, the first entry is used. + /// + [DataField(required: true)] + public List Icons = new(); - if (!SupportsSeverity) - return Icons[0]; + /// + /// An entity used for displaying the in the UI control. + /// + [DataField] + public EntProtoId AlertViewEntity = "AlertSpriteView"; - if (severity == null) - { - throw new ArgumentException($"No severity specified but this alert ({AlertKey}) has severity.", nameof(severity)); - } + /// + /// Name to show in tooltip window. Accepts formatting. + /// + [DataField] + public string Name { get; private set; } = string.Empty; - if (severity < MinSeverity) - { - throw new ArgumentOutOfRangeException(nameof(severity), $"Severity below minimum severity in {AlertKey}."); - } + /// + /// Description to show in tooltip window. Accepts formatting. + /// + [DataField] + public string Description { get; private set; } = string.Empty; - if (severity > MaxSeverity) - { - throw new ArgumentOutOfRangeException(nameof(severity), $"Severity above maximum severity in {AlertKey}."); - } + /// + /// Category the alert belongs to. Only one alert of a given category + /// can be shown at a time. If one is shown while another is already being shown, + /// it will be replaced. This can be useful for categories of alerts which should naturally + /// replace each other and are mutually exclusive, for example lowpressure / highpressure, + /// hot / cold. If left unspecified, the alert will not replace or be replaced by any other alerts. + /// + [DataField] + public ProtoId? Category { get; private set; } + + /// + /// Key which is unique w.r.t category semantics (alerts with same category have equal keys, + /// alerts with no category have different keys). + /// + public AlertKey AlertKey => new(ID, Category); - return Icons[severity.Value - _minSeverity]; + /// + /// -1 (no effect) unless MaxSeverity is specified. Defaults to 1. Minimum severity level supported by this state. + /// + public short MinSeverity => MaxSeverity == -1 ? (short) -1 : _minSeverity; + + [DataField("minSeverity")] private short _minSeverity = 1; + + /// + /// Maximum severity level supported by this state. -1 (default) indicates + /// no severity levels are supported by the state. + /// + [DataField] + public short MaxSeverity = -1; + + /// + /// Indicates whether this state support severity levels + /// + public bool SupportsSeverity => MaxSeverity != -1; + + /// + /// Defines what to do when the alert is clicked. + /// This will always be null on clientside. + /// + [DataField(serverOnly: true)] + public IAlertClick? OnClick { get; private set; } + + /// severity level, if supported by this alert + /// the icon path to the texture for the provided severity level + public SpriteSpecifier GetIcon(short? severity = null) + { + var minIcons = SupportsSeverity + ? MaxSeverity - MinSeverity + : 1; + + if (Icons.Count < minIcons) + throw new InvalidOperationException($"Insufficient number of icons given for alert {ID}"); + + if (!SupportsSeverity) + return Icons[0]; + + if (severity == null) + { + throw new ArgumentException($"No severity specified but this alert ({AlertKey}) has severity.", nameof(severity)); + } + + if (severity < MinSeverity) + { + throw new ArgumentOutOfRangeException(nameof(severity), $"Severity below minimum severity in {AlertKey}."); } + + if (severity > MaxSeverity) + { + throw new ArgumentOutOfRangeException(nameof(severity), $"Severity above maximum severity in {AlertKey}."); + } + + return Icons[severity.Value - _minSeverity]; } } diff --git a/Content.Shared/Alert/AlertState.cs b/Content.Shared/Alert/AlertState.cs index effd9522036..d6309f6b426 100644 --- a/Content.Shared/Alert/AlertState.cs +++ b/Content.Shared/Alert/AlertState.cs @@ -1,3 +1,4 @@ +using Robust.Shared.Prototypes; using Robust.Shared.Serialization; namespace Content.Shared.Alert; @@ -9,5 +10,5 @@ public struct AlertState public (TimeSpan, TimeSpan)? Cooldown; public bool AutoRemove; public bool ShowCooldown; - public AlertType Type; + public ProtoId Type; } diff --git a/Content.Shared/Alert/AlertType.cs b/Content.Shared/Alert/AlertType.cs deleted file mode 100644 index bd8c1dbe257..00000000000 --- a/Content.Shared/Alert/AlertType.cs +++ /dev/null @@ -1,78 +0,0 @@ -namespace Content.Shared.Alert -{ - /// - /// Every kind of alert. Corresponds to alertType field in alert prototypes defined in YML - /// NOTE: Using byte for a compact encoding when sending this in messages, can upgrade - /// to ushort - /// - public enum AlertType : byte - { - Error, - LowOxygen, - LowNitrogen, - LowPressure, - HighPressure, - Fire, - Cold, - Hot, - Weightless, - Stun, - Handcuffed, - Ensnared, - Buckled, - HumanCrit, - HumanDead, - HumanHealth, - BorgBattery, - BorgBatteryNone, - - // Mood - Bleeding, - Insane, - Horrible, - Terrible, - Bad, - Meh, - Neutral, - Good, - Great, - Exceptional, - Perfect, - MoodDead, - CultBuffed, - - PilotingShuttle, - Peckish, - Starving, - Thirsty, - Parched, - Stamina, - Pulled, - Pulling, - Magboots, - Internals, - Toxins, - Muted, - Walking, - VowOfSilence, - VowBroken, - Essence, - Corporeal, - Bleed, - Pacified, - Debug1, - Debug2, - Debug3, - Debug4, - Debug5, - Debug6, - SuitPower, - BorgHealth, - BorgCrit, - BorgDead, - Offer, - ShadowkinPower, - Deflecting, - } - -} diff --git a/Content.Shared/Alert/AlertsSystem.cs b/Content.Shared/Alert/AlertsSystem.cs index 5b888e30c4c..83c6fcd0dd7 100644 --- a/Content.Shared/Alert/AlertsSystem.cs +++ b/Content.Shared/Alert/AlertsSystem.cs @@ -11,7 +11,7 @@ public abstract class AlertsSystem : EntitySystem [Dependency] private readonly IPrototypeManager _prototypeManager = default!; [Dependency] private readonly IGameTiming _timing = default!; - private FrozenDictionary _typeToAlert = default!; + private FrozenDictionary, AlertPrototype> _typeToAlert = default!; public IReadOnlyDictionary? GetActiveAlerts(EntityUid euid) { @@ -20,23 +20,23 @@ public abstract class AlertsSystem : EntitySystem : null; } - public short GetSeverityRange(AlertType alertType) + public short GetSeverityRange(ProtoId alertType) { var minSeverity = _typeToAlert[alertType].MinSeverity; return (short)MathF.Max(minSeverity,_typeToAlert[alertType].MaxSeverity - minSeverity); } - public short GetMaxSeverity(AlertType alertType) + public short GetMaxSeverity(ProtoId alertType) { return _typeToAlert[alertType].MaxSeverity; } - public short GetMinSeverity(AlertType alertType) + public short GetMinSeverity(ProtoId alertType) { return _typeToAlert[alertType].MinSeverity; } - public bool IsShowingAlert(EntityUid euid, AlertType alertType) + public bool IsShowingAlert(EntityUid euid, ProtoId alertType) { if (!EntityManager.TryGetComponent(euid, out AlertsComponent? alertsComponent)) return false; @@ -51,7 +51,7 @@ public bool IsShowingAlert(EntityUid euid, AlertType alertType) } /// true iff an alert of the indicated alert category is currently showing - public bool IsShowingAlertCategory(EntityUid euid, AlertCategory alertCategory) + public bool IsShowingAlertCategory(EntityUid euid, ProtoId alertCategory) { return EntityManager.TryGetComponent(euid, out AlertsComponent? alertsComponent) && alertsComponent.Alerts.ContainsKey(AlertKey.ForCategory(alertCategory)); @@ -78,7 +78,7 @@ public bool TryGetAlertState(EntityUid euid, AlertKey key, out AlertState alertS /// be erased if there is currently a cooldown for the alert) /// if true, the alert will be removed at the end of the cooldown /// if true, the cooldown will be visibly shown over the alert icon - public void ShowAlert(EntityUid euid, AlertType alertType, short? severity = null, (TimeSpan, TimeSpan)? cooldown = null, bool autoRemove = false, bool showCooldown = true ) + public void ShowAlert(EntityUid euid, ProtoId alertType, short? severity = null, (TimeSpan, TimeSpan)? cooldown = null, bool autoRemove = false, bool showCooldown = true ) { // This should be handled as part of networking. if (_timing.ApplyingState) @@ -131,7 +131,7 @@ public void ShowAlert(EntityUid euid, AlertType alertType, short? severity = nul /// /// Clear the alert with the given category, if one is currently showing. /// - public void ClearAlertCategory(EntityUid euid, AlertCategory category) + public void ClearAlertCategory(EntityUid euid, ProtoId category) { if(!TryComp(euid, out AlertsComponent? alertsComponent)) return; @@ -150,7 +150,7 @@ public void ClearAlertCategory(EntityUid euid, AlertCategory category) /// /// Clear the alert of the given type if it is currently showing. /// - public void ClearAlert(EntityUid euid, AlertType alertType) + public void ClearAlert(EntityUid euid, ProtoId alertType) { if (_timing.ApplyingState) return; @@ -286,13 +286,13 @@ private void HandlePrototypesReloaded(PrototypesReloadedEventArgs obj) protected virtual void LoadPrototypes() { - var dict = new Dictionary(); + var dict = new Dictionary, AlertPrototype>(); foreach (var alert in _prototypeManager.EnumeratePrototypes()) { - if (!dict.TryAdd(alert.AlertType, alert)) + if (!dict.TryAdd(alert.ID, alert)) { Log.Error("Found alert with duplicate alertType {0} - all alerts must have" + - " a unique alertType, this one will be skipped", alert.AlertType); + " a unique alertType, this one will be skipped", alert.ID); } } @@ -303,7 +303,7 @@ protected virtual void LoadPrototypes() /// Tries to get the alert of the indicated type /// /// true if found - public bool TryGet(AlertType alertType, [NotNullWhen(true)] out AlertPrototype? alert) + public bool TryGet(ProtoId alertType, [NotNullWhen(true)] out AlertPrototype? alert) { return _typeToAlert.TryGetValue(alertType, out alert); } diff --git a/Content.Shared/Alert/ClickAlertEvent.cs b/Content.Shared/Alert/ClickAlertEvent.cs index fe7ca97e4c2..43dd086b562 100644 --- a/Content.Shared/Alert/ClickAlertEvent.cs +++ b/Content.Shared/Alert/ClickAlertEvent.cs @@ -1,4 +1,5 @@ -using Robust.Shared.Serialization; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; namespace Content.Shared.Alert; @@ -8,9 +9,9 @@ namespace Content.Shared.Alert; [Serializable, NetSerializable] public sealed class ClickAlertEvent : EntityEventArgs { - public readonly AlertType Type; + public readonly ProtoId Type; - public ClickAlertEvent(AlertType alertType) + public ClickAlertEvent(ProtoId alertType) { Type = alertType; } diff --git a/Content.Shared/Blocking/BlockingSystem.User.cs b/Content.Shared/Blocking/BlockingSystem.User.cs index 2cd1db7f1fe..584df3a3ffc 100644 --- a/Content.Shared/Blocking/BlockingSystem.User.cs +++ b/Content.Shared/Blocking/BlockingSystem.User.cs @@ -27,7 +27,11 @@ private void OnParentChanged(EntityUid uid, BlockingUserComponent component, ref UserStopBlocking(uid, component); } - private void OnInsertAttempt(EntityUid uid, BlockingUserComponent component, ContainerGettingInsertedAttemptEvent args) + private void OnInsertAttempt( + EntityUid uid, + BlockingUserComponent component, + ContainerGettingInsertedAttemptEvent args + ) { UserStopBlocking(uid, component); } @@ -42,32 +46,27 @@ private void OnAnchorChanged(EntityUid uid, BlockingUserComponent component, ref private void OnUserDamageModified(EntityUid uid, BlockingUserComponent component, DamageModifyEvent args) { - if (TryComp(component.BlockingItem, out var blocking)) - { - if (args.Damage.GetTotal() <= 0) - return; - - // A shield should only block damage it can itself absorb. To determine that we need the Damageable component on it. - if (!TryComp(component.BlockingItem, out var dmgComp)) - return; + // A shield should only block damage it can itself absorb. To determine that we need the Damageable component on it. + if (!TryComp(component.BlockingItem, out var blocking) || args.Damage.GetTotal() <= 0 || + !TryComp(component.BlockingItem, out var dmgComp)) + return; - var blockFraction = blocking.IsBlocking ? blocking.ActiveBlockFraction : blocking.PassiveBlockFraction; - blockFraction = Math.Clamp(blockFraction, 0, 1); - _damageable.TryChangeDamage(component.BlockingItem, blockFraction * args.OriginalDamage); + var ev = new BeforeBlockingEvent(uid, args.Origin); + RaiseLocalEvent(component.BlockingItem.Value, ev); + if (ev.Cancelled) + return; - var modify = new DamageModifierSet(); - foreach (var key in dmgComp.Damage.DamageDict.Keys) - { - modify.Coefficients.TryAdd(key, 1 - blockFraction); - } + var blockFraction = blocking.IsBlocking ? blocking.ActiveBlockFraction : blocking.PassiveBlockFraction; + blockFraction = Math.Clamp(blockFraction, 0, 1); + _damageable.TryChangeDamage(component.BlockingItem, blockFraction * args.OriginalDamage); - args.Damage = DamageSpecifier.ApplyModifierSet(args.Damage, modify); + var modify = new DamageModifierSet(); + foreach (var key in dmgComp.Damage.DamageDict.Keys) + modify.Coefficients.TryAdd(key, 1 - blockFraction); - if (blocking.IsBlocking && !args.Damage.Equals(args.OriginalDamage)) - { - _audio.PlayPvs(blocking.BlockSound, uid); - } - } + args.Damage = DamageSpecifier.ApplyModifierSet(args.Damage, modify); + if (blocking.IsBlocking && !args.Damage.Equals(args.OriginalDamage)) + _audio.PlayPvs(blocking.BlockSound, uid); } private void OnDamageModified(EntityUid uid, BlockingComponent component, DamageModifyEvent args) @@ -87,7 +86,6 @@ private void OnEntityTerminating(EntityUid uid, BlockingUserComponent component, return; StopBlockingHelper(component.BlockingItem.Value, blockingComponent, uid); - } /// diff --git a/Content.Shared/Blocking/Components/BlockingComponent.cs b/Content.Shared/Blocking/Components/BlockingComponent.cs index f869c20679d..43162049b60 100644 --- a/Content.Shared/Blocking/Components/BlockingComponent.cs +++ b/Content.Shared/Blocking/Components/BlockingComponent.cs @@ -77,3 +77,12 @@ public sealed partial class BlockingComponent : Component [DataField("activeBlockFraction"), ViewVariables(VVAccess.ReadWrite)] public float ActiveBlockFraction = 1.0f; } + +/// +/// Raised directed on the blocking object when attempting to block. +/// +public sealed class BeforeBlockingEvent(EntityUid user, EntityUid? origin) : CancellableEntityEventArgs +{ + public EntityUid User = user; + public EntityUid? Origin = origin; +} diff --git a/Content.Shared/Body/Events/AmputateAttemptEvent.cs b/Content.Shared/Body/Events/AmputateAttemptEvent.cs new file mode 100644 index 00000000000..b71a0407bf2 --- /dev/null +++ b/Content.Shared/Body/Events/AmputateAttemptEvent.cs @@ -0,0 +1,7 @@ +namespace Content.Shared.Body.Events; + +/// +/// Raised on an entity when attempting to remove a body part. +/// +[ByRefEvent] +public readonly record struct AmputateAttemptEvent(EntityUid Part); diff --git a/Content.Shared/Body/Organ/DebrainedComponent.cs b/Content.Shared/Body/Organ/DebrainedComponent.cs new file mode 100644 index 00000000000..c43f151cdef --- /dev/null +++ b/Content.Shared/Body/Organ/DebrainedComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Body.Organ; + +[RegisterComponent] +public sealed partial class DebrainedComponent : Component; diff --git a/Content.Shared/Body/Organ/EarsComponent.cs b/Content.Shared/Body/Organ/EarsComponent.cs new file mode 100644 index 00000000000..80414387292 --- /dev/null +++ b/Content.Shared/Body/Organ/EarsComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Body.Organ; + +[RegisterComponent] +public sealed partial class EarsComponent : Component; diff --git a/Content.Shared/Body/Organ/EyesComponent.cs b/Content.Shared/Body/Organ/EyesComponent.cs new file mode 100644 index 00000000000..55be5f1a9c4 --- /dev/null +++ b/Content.Shared/Body/Organ/EyesComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Body.Organ; + +[RegisterComponent] +public sealed partial class EyesComponent : Component; diff --git a/Content.Shared/Body/Organ/HeartComponent.cs b/Content.Shared/Body/Organ/HeartComponent.cs new file mode 100644 index 00000000000..fc4def945eb --- /dev/null +++ b/Content.Shared/Body/Organ/HeartComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Body.Organ; + +[RegisterComponent] +public sealed partial class HeartComponent : Component; diff --git a/Content.Shared/Body/Organ/LiverComponent.cs b/Content.Shared/Body/Organ/LiverComponent.cs new file mode 100644 index 00000000000..23021bea319 --- /dev/null +++ b/Content.Shared/Body/Organ/LiverComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Body.Organ; + +[RegisterComponent] +public sealed partial class LiverComponent : Component; diff --git a/Content.Shared/Body/Organ/MarkingContainerComponent.cs b/Content.Shared/Body/Organ/MarkingContainerComponent.cs new file mode 100644 index 00000000000..0583258dc20 --- /dev/null +++ b/Content.Shared/Body/Organ/MarkingContainerComponent.cs @@ -0,0 +1,15 @@ +// This is a uh, very shitty copout to not wanting to modify the prototypes for felinids, and entities at large so they have ears. +// I will do that at some point, for now I just want the funny surgery to work lol. +using Robust.Shared.GameStates; +using Content.Shared.Humanoid.Markings; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; + +namespace Content.Shared.Body.Organ; + +[RegisterComponent, NetworkedComponent] +public sealed partial class MarkingContainerComponent : Component +{ + [DataField(required: true, customTypeSerializer: typeof(PrototypeIdSerializer))] + public string Marking = default!; + +} diff --git a/Content.Shared/Body/Organ/OrganComponent.cs b/Content.Shared/Body/Organ/OrganComponent.cs index 3048927b5fb..f0e8c22eba5 100644 --- a/Content.Shared/Body/Organ/OrganComponent.cs +++ b/Content.Shared/Body/Organ/OrganComponent.cs @@ -1,16 +1,70 @@ using Content.Shared.Body.Systems; using Robust.Shared.Containers; using Robust.Shared.GameStates; +using Content.Shared.Medical.Surgery; +using Content.Shared.Medical.Surgery.Tools; +using Robust.Shared.Prototypes; namespace Content.Shared.Body.Organ; [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] -[Access(typeof(SharedBodySystem))] -public sealed partial class OrganComponent : Component +[Access(typeof(SharedBodySystem), typeof(SharedSurgerySystem))] +public sealed partial class OrganComponent : Component, ISurgeryToolComponent { /// /// Relevant body this organ is attached to. /// [DataField, AutoNetworkedField] public EntityUid? Body; + + /// + /// Relevant body this organ originally belonged to. + /// /// FOR WHATEVER FUCKING REASON AUTONETWORKING THIS CRASHES GIBTEST AAAAAAAAAAAAAAA + /// + [DataField] + public EntityUid? OriginalBody; + + /// + /// Shitcodey solution to not being able to know what name corresponds to each organ's slot ID + /// without referencing the prototype or hardcoding. + /// + + [DataField, AlwaysPushInheritance] + public string SlotId = ""; + + [DataField, AlwaysPushInheritance] + public string ToolName { get; set; } = "An organ"; + + [DataField, AlwaysPushInheritance] + public float Speed { get; set; } = 1f; + + /// + /// If true, the organ will not heal an entity when transplanted into them. + /// + [DataField, AutoNetworkedField] + public bool? Used { get; set; } + + /// + /// When attached, the organ will ensure these components on the entity, and delete them on removal. + /// + [DataField] + public ComponentRegistry? OnAdd; + + /// + /// When removed, the organ will ensure these components on the entity, and delete them on insertion. + /// + [DataField] + public ComponentRegistry? OnRemove; + + /// + /// Is this organ working or not? + /// + [DataField, AutoNetworkedField] + public bool Enabled = true; + + /// + /// Can this organ be enabled or disabled? Used mostly for prop, damaged or useless organs. + /// + [DataField] + public bool CanEnable = true; } diff --git a/Content.Shared/Body/Organ/OrganEvents.cs b/Content.Shared/Body/Organ/OrganEvents.cs new file mode 100644 index 00000000000..b94df359d4c --- /dev/null +++ b/Content.Shared/Body/Organ/OrganEvents.cs @@ -0,0 +1,12 @@ +namespace Content.Shared.Body.Organ; + +public readonly record struct OrganComponentsModifyEvent(EntityUid Body, bool Add); + +[ByRefEvent] +public readonly record struct OrganEnableChangedEvent(bool Enabled); + +[ByRefEvent] +public readonly record struct OrganEnabledEvent(Entity Organ); + +[ByRefEvent] +public readonly record struct OrganDisabledEvent(Entity Organ); diff --git a/Content.Shared/Body/Organ/TailComponent.cs b/Content.Shared/Body/Organ/TailComponent.cs new file mode 100644 index 00000000000..3cd8da87b5a --- /dev/null +++ b/Content.Shared/Body/Organ/TailComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Body.Organ; + +[RegisterComponent] +public sealed partial class TailComponent : Component; diff --git a/Content.Shared/Body/Part/BodyPartAppearanceComponent.cs b/Content.Shared/Body/Part/BodyPartAppearanceComponent.cs new file mode 100644 index 00000000000..1769d68ec76 --- /dev/null +++ b/Content.Shared/Body/Part/BodyPartAppearanceComponent.cs @@ -0,0 +1,45 @@ +using Content.Shared.Humanoid; +using Content.Shared.Humanoid.Prototypes; +using Content.Shared.Humanoid.Markings; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; +using Robust.Shared.GameStates; + +namespace Content.Shared.Body.Part; + +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState(true)] +public sealed partial class BodyPartAppearanceComponent : Component +{ + /// + /// HumanoidVisualLayer type for this body part. + /// + [DataField, AutoNetworkedField] + public HumanoidVisualLayers Type { get; set; } + + /// + /// Relevant markings for this body part that will be applied on attachment. + /// + [DataField, AutoNetworkedField] + public Dictionary> Markings = new(); + + /// + /// ID of this custom base layer. Must be a . + /// I don't actually know if these serializer props are necessary. I just lifted this from MS14 lol. + /// + [DataField(customTypeSerializer: typeof(PrototypeIdSerializer)), AutoNetworkedField] + public string? ID { get; set; } + + /// + /// Color of this custom base layer. Null implies skin colour if the corresponding is set to match skin. + /// + [DataField, AutoNetworkedField] + public Color? Color { get; set; } + + /// + /// Color of this custom base eye layer. Null implies eye colour if the corresponding is set to match skin. + /// + [DataField, AutoNetworkedField] + public Color? EyeColor { get; set; } + + [DataField, AutoNetworkedField] + public EntityUid? OriginalBody { get; set; } +} diff --git a/Content.Shared/Body/Part/BodyPartComponent.cs b/Content.Shared/Body/Part/BodyPartComponent.cs index c4e65c06a3f..85fa74c1f78 100644 --- a/Content.Shared/Body/Part/BodyPartComponent.cs +++ b/Content.Shared/Body/Part/BodyPartComponent.cs @@ -1,14 +1,20 @@ using Content.Shared.Body.Components; using Content.Shared.Body.Systems; +using Content.Shared.Containers.ItemSlots; +using Content.Shared.Damage; +using Content.Shared.FixedPoint; +using Content.Shared.Medical.Surgery.Tools; +using Content.Shared.Targeting; using Robust.Shared.Containers; using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; using Robust.Shared.Serialization; namespace Content.Shared.Body.Part; [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] [Access(typeof(SharedBodySystem))] -public sealed partial class BodyPartComponent : Component +public sealed partial class BodyPartComponent : Component, ISurgeryToolComponent { // Need to set this on container changes as it may be several transform parents up the hierarchy. /// @@ -18,6 +24,12 @@ public sealed partial class BodyPartComponent : Component public EntityUid? Body; [DataField, AutoNetworkedField] + public EntityUid? OriginalBody; + + [DataField, AutoNetworkedField] + public BodyPartSlot? ParentSlot; + + [DataField, AutoNetworkedField, AlwaysPushInheritance] public BodyPartType PartType = BodyPartType.Other; // TODO BODY Replace with a simulation of organs @@ -28,9 +40,26 @@ public sealed partial class BodyPartComponent : Component [DataField("vital"), AutoNetworkedField] public bool IsVital; + /// + /// Amount of damage to deal when the part gets removed. + /// Only works if IsVital is true. + /// [DataField, AutoNetworkedField] + public FixedPoint2 VitalDamage = 100; + + + [DataField, AutoNetworkedField, AlwaysPushInheritance] public BodyPartSymmetry Symmetry = BodyPartSymmetry.None; + [DataField, AlwaysPushInheritance] + public string ToolName { get; set; } = "A body part"; + + [DataField, AlwaysPushInheritance] + public float Speed { get; set; } = 1f; + + [DataField, AutoNetworkedField] + public bool? Used { get; set; } = null; + /// /// Child body parts attached to this body part. /// @@ -43,6 +72,113 @@ public sealed partial class BodyPartComponent : Component [DataField, AutoNetworkedField] public Dictionary Organs = new(); + /// + /// What's the max health this body part can have? + /// + [DataField] + public float MinIntegrity; + + /// + /// Whether this body part can be severed or not + /// + [DataField, AutoNetworkedField] + public bool CanSever = true; + + /// + /// Whether this body part is enabled or not. + /// + [DataField, AutoNetworkedField] + public bool Enabled = true; + + /// + /// Whether this body part can be enabled or not. Used for non-functional prosthetics. + /// + [DataField] + public bool CanEnable = true; + + /// + /// Whether this body part can attach children or not. + /// + [DataField] + public bool CanAttachChildren = true; + + /// + /// How long it takes to run another self heal tick on the body part. + /// + [DataField] + public float HealingTime = 30; + + /// + /// How long it has been since the last self heal tick on the body part. + /// + public float HealingTimer; + + /// + /// How much health to heal on the body part per tick. + /// + [DataField] + public float SelfHealingAmount = 5; + + /// + /// The name of the container for this body part. Used in insertion surgeries. + /// + [DataField] + public string ContainerName { get; set; } = "part_slot"; + + /// + /// The slot for item insertion. + /// + [DataField, AutoNetworkedField] + public ItemSlot ItemInsertionSlot = new(); + + /// + /// Current species. Dictates things like body part sprites. + /// + [DataField, AutoNetworkedField] + public string Species { get; set; } = ""; + + /// + /// The total damage that has to be dealt to a body part + /// to make possible severing it. + /// + [DataField, AutoNetworkedField] + public float SeverIntegrity = 90; + + /// + /// The ID of the base layer for this body part. + /// + [DataField, AutoNetworkedField, AlwaysPushInheritance] + public string? BaseLayerId; + + /// + /// On what TargetIntegrity we should re-enable the part. + /// + [DataField, AutoNetworkedField] + public TargetIntegrity EnableIntegrity = TargetIntegrity.ModeratelyWounded; + + [DataField, AutoNetworkedField] + public Dictionary IntegrityThresholds = new() + { + { TargetIntegrity.CriticallyWounded, 90 }, + { TargetIntegrity.HeavilyWounded, 75 }, + { TargetIntegrity.ModeratelyWounded, 60 }, + { TargetIntegrity.SomewhatWounded, 40}, + { TargetIntegrity.LightlyWounded, 20 }, + { TargetIntegrity.Healthy, 10 }, + }; + + /// + /// When attached, the part will ensure these components on the entity, and delete them on removal. + /// + [DataField, AlwaysPushInheritance] + public ComponentRegistry? OnAdd; + + /// + /// When removed, the part will ensure these components on the entity, and add them on removal. + /// + [DataField, AlwaysPushInheritance] + public ComponentRegistry? OnRemove; + /// /// These are only for VV/Debug do not use these for gameplay/systems /// diff --git a/Content.Shared/Body/Part/BodyPartEvents.cs b/Content.Shared/Body/Part/BodyPartEvents.cs index 0d8d2c8a268..8246a9b0043 100644 --- a/Content.Shared/Body/Part/BodyPartEvents.cs +++ b/Content.Shared/Body/Part/BodyPartEvents.cs @@ -1,7 +1,29 @@ +using Content.Shared.Humanoid; + namespace Content.Shared.Body.Part; [ByRefEvent] public readonly record struct BodyPartAddedEvent(string Slot, Entity Part); +// Kind of a clone of the above for surgical reattachment specifically. +[ByRefEvent] +public readonly record struct BodyPartAttachedEvent(Entity Part); + [ByRefEvent] public readonly record struct BodyPartRemovedEvent(string Slot, Entity Part); + +// Kind of a clone of the above for any instances where we call DropPart(), reasoning being that RemovedEvent fires off +// a lot more often than what I'd like due to PVS. +[ByRefEvent] +public readonly record struct BodyPartDroppedEvent(Entity Part); + +[ByRefEvent] +public readonly record struct BodyPartEnableChangedEvent(bool Enabled); + +[ByRefEvent] +public readonly record struct BodyPartEnabledEvent(Entity Part); + +[ByRefEvent] +public readonly record struct BodyPartDisabledEvent(Entity Part); + +public readonly record struct BodyPartComponentsModifyEvent(EntityUid Body, bool Add); diff --git a/Content.Shared/Body/Systems/SharedBodySystem.Body.cs b/Content.Shared/Body/Systems/SharedBodySystem.Body.cs index 1a35afdbe00..a56504b5f0d 100644 --- a/Content.Shared/Body/Systems/SharedBodySystem.Body.cs +++ b/Content.Shared/Body/Systems/SharedBodySystem.Body.cs @@ -4,17 +4,25 @@ using Content.Shared.Body.Organ; using Content.Shared.Body.Part; using Content.Shared.Body.Prototypes; +using Content.Shared.Containers.ItemSlots; +using Content.Shared.Damage; using Content.Shared.DragDrop; +using Content.Shared.FixedPoint; using Content.Shared.Gibbing.Components; using Content.Shared.Gibbing.Events; using Content.Shared.Gibbing.Systems; +using Content.Shared.Humanoid; +using Content.Shared.Humanoid.Events; using Content.Shared.Inventory; +using Content.Shared.Rejuvenate; +using Content.Shared.Standing; +using Content.Shared.Targeting; using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; using Robust.Shared.Containers; using Robust.Shared.Map; using Robust.Shared.Utility; - +using Robust.Shared.Timing; namespace Content.Shared.Body.Systems; public partial class SharedBodySystem @@ -27,9 +35,10 @@ public partial class SharedBodySystem */ [Dependency] private readonly InventorySystem _inventory = default!; + [Dependency] private readonly ItemSlotsSystem _slots = default!; [Dependency] private readonly GibbingSystem _gibbingSystem = default!; [Dependency] private readonly SharedAudioSystem _audioSystem = default!; - + [Dependency] private readonly IGameTiming _gameTiming = default!; private const float GibletLaunchImpulse = 8; private const float GibletLaunchImpulseVariance = 3; @@ -42,6 +51,8 @@ private void InitializeBody() SubscribeLocalEvent(OnBodyInit); SubscribeLocalEvent(OnBodyMapInit); SubscribeLocalEvent(OnBodyCanDrag); + SubscribeLocalEvent(OnStandAttempt); + SubscribeLocalEvent(OnProfileLoadFinished); } private void OnBodyInserted(Entity ent, ref EntInsertedIntoContainerMessage args) @@ -115,11 +126,11 @@ private void MapInitBody(EntityUid bodyEntity, BodyPrototype prototype) var rootPartUid = SpawnInContainerOrDrop(protoRoot.Part, bodyEntity, BodyRootContainerId); var rootPart = Comp(rootPartUid); rootPart.Body = bodyEntity; + rootPart.OriginalBody = bodyEntity; Dirty(rootPartUid, rootPart); - // Setup the rest of the body entities. SetupOrgans((rootPartUid, rootPart), protoRoot.Organs); - MapInitParts(rootPartUid, prototype); + MapInitParts(rootPartUid, rootPart, prototype); } private void OnBodyCanDrag(Entity ent, ref CanDragEvent args) @@ -127,10 +138,16 @@ private void OnBodyCanDrag(Entity ent, ref CanDragEvent args) args.Handled = true; } + private void OnStandAttempt(Entity ent, ref StandAttemptEvent args) + { + if (ent.Comp.LegEntities.Count == 0) + args.Cancel(); + } + /// /// Sets up all of the relevant body parts for a particular body entity and root part. /// - private void MapInitParts(EntityUid rootPartId, BodyPrototype prototype) + private void MapInitParts(EntityUid rootPartId, BodyPartComponent rootPart, BodyPrototype prototype) { // Start at the root part and traverse the body graph, setting up parts as we go. // Basic BFS pathfind. @@ -168,6 +185,9 @@ private void MapInitParts(EntityUid rootPartId, BodyPrototype prototype) var childPartComponent = Comp(childPart); var partSlot = CreatePartSlot(parentEntity, connection, childPartComponent.PartType, parentPartComponent); + childPartComponent.ParentSlot = partSlot; + childPartComponent.OriginalBody = rootPart.Body; + Dirty(childPart, childPartComponent); var cont = Containers.GetContainer(parentEntity, GetPartSlotContainerId(connection)); if (partSlot is null || !Containers.Insert(childPart, cont)) @@ -233,11 +253,11 @@ public IEnumerable GetBodyContainers( { if (id is null || !Resolve(id.Value, ref body, logMissing: false) + || body is null + || body.RootContainer == default || body.RootContainer.ContainedEntity is null || !Resolve(body.RootContainer.ContainedEntity.Value, ref rootPart)) - { yield break; - } foreach (var child in GetBodyPartChildren(body.RootContainer.ContainedEntity.Value, rootPart)) { @@ -291,7 +311,9 @@ public virtual HashSet GibBody( Vector2? splatDirection = null, float splatModifier = 1, Angle splatCone = default, - SoundSpecifier? gibSoundOverride = null) + SoundSpecifier? gibSoundOverride = null, + GibType gib = GibType.Gib, + GibContentsOption contents = GibContentsOption.Drop) { var gibs = new HashSet(); @@ -308,9 +330,9 @@ public virtual HashSet GibBody( foreach (var part in parts) { - _gibbingSystem.TryGibEntityWithRef(bodyId, part.Id, GibType.Gib, GibContentsOption.Skip, ref gibs, - playAudio: false, launchGibs:true, launchDirection:splatDirection, launchImpulse: GibletLaunchImpulse * splatModifier, - launchImpulseVariance:GibletLaunchImpulseVariance, launchCone: splatCone); + _gibbingSystem.TryGibEntityWithRef(bodyId, part.Id, gib, contents, ref gibs, + playAudio: false, launchGibs: true, launchDirection: splatDirection, launchImpulse: GibletLaunchImpulse * splatModifier, + launchImpulseVariance: GibletLaunchImpulseVariance, launchCone: splatCone); if (!gibOrgans) continue; @@ -319,7 +341,7 @@ public virtual HashSet GibBody( { _gibbingSystem.TryGibEntityWithRef(bodyId, organ.Id, GibType.Drop, GibContentsOption.Skip, ref gibs, playAudio: false, launchImpulse: GibletLaunchImpulse * splatModifier, - launchImpulseVariance:GibletLaunchImpulseVariance, launchCone: splatCone); + launchImpulseVariance: GibletLaunchImpulseVariance, launchCone: splatCone); } } if (TryComp(bodyId, out var inventory)) @@ -333,4 +355,82 @@ public virtual HashSet GibBody( _audioSystem.PlayPredicted(gibSoundOverride, Transform(bodyId).Coordinates, null); return gibs; } + + public virtual HashSet GibPart( + EntityUid partId, + BodyPartComponent? part = null, + bool launchGibs = true, + Vector2? splatDirection = null, + float splatModifier = 1, + Angle splatCone = default, + SoundSpecifier? gibSoundOverride = null) + { + var gibs = new HashSet(); + + if (!Resolve(partId, ref part, logMissing: false)) + return gibs; + + if (part.Body is { } bodyEnt) + { + if (IsPartRoot(bodyEnt, partId, part: part) || !part.CanSever) + return gibs; + + ChangeSlotState((partId, part), true); + + RemovePartChildren((partId, part), bodyEnt); + foreach (var organ in GetPartOrgans(partId, part)) + { + _gibbingSystem.TryGibEntityWithRef(bodyEnt, organ.Id, GibType.Drop, GibContentsOption.Skip, + ref gibs, playAudio: false, launchImpulse: GibletLaunchImpulse * splatModifier, + launchImpulseVariance: GibletLaunchImpulseVariance, launchCone: splatCone); + } + var ev = new BodyPartDroppedEvent((partId, part)); + RaiseLocalEvent(bodyEnt, ref ev); + } + + _gibbingSystem.TryGibEntityWithRef(partId, partId, GibType.Gib, GibContentsOption.Drop, ref gibs, + playAudio: true, launchGibs: true, launchDirection: splatDirection, launchImpulse: GibletLaunchImpulse * splatModifier, + launchImpulseVariance: GibletLaunchImpulseVariance, launchCone: splatCone); + + + if (HasComp(partId)) + { + foreach (var item in _inventory.GetHandOrInventoryEntities(partId)) + { + SharedTransform.AttachToGridOrMap(item); + gibs.Add(item); + } + } + _audioSystem.PlayPredicted(gibSoundOverride, Transform(partId).Coordinates, null); + return gibs; + } + + public virtual bool BurnPart(EntityUid partId, + BodyPartComponent? part = null) + { + if (!Resolve(partId, ref part, logMissing: false)) + return false; + + if (part.Body is { } bodyEnt) + { + if (IsPartRoot(bodyEnt, partId, part: part)) + return false; + + ChangeSlotState((partId, part), true); + RemovePartChildren((partId, part), bodyEnt); + QueueDel(partId); + return true; + } + + return false; + } + + private void OnProfileLoadFinished(EntityUid uid, BodyComponent component, ProfileLoadFinishedEvent args) + { + if (!HasComp(uid) + || TerminatingOrDeleted(uid)) + + foreach (var part in GetBodyChildren(uid, component)) + EnsureComp(part.Id); + } } diff --git a/Content.Shared/Body/Systems/SharedBodySystem.Organs.cs b/Content.Shared/Body/Systems/SharedBodySystem.Organs.cs index efabebfc858..9c9fdc57276 100644 --- a/Content.Shared/Body/Systems/SharedBodySystem.Organs.cs +++ b/Content.Shared/Body/Systems/SharedBodySystem.Organs.cs @@ -3,12 +3,26 @@ using Content.Shared.Body.Events; using Content.Shared.Body.Organ; using Content.Shared.Body.Part; +using Content.Shared.BodyEffects; +using Content.Shared.Damage; using Robust.Shared.Containers; namespace Content.Shared.Body.Systems; public partial class SharedBodySystem { + private void InitializeOrgans() + { + SubscribeLocalEvent(OnMapInit); + SubscribeLocalEvent(OnOrganEnableChanged); + } + + private void OnMapInit(Entity ent, ref MapInitEvent args) + { + if (ent.Comp.OnAdd is not null || ent.Comp.OnRemove is not null) + EnsureComp(ent); + } + private void AddOrgan( Entity organEnt, EntityUid bodyUid, @@ -20,8 +34,11 @@ private void AddOrgan( if (organEnt.Comp.Body is not null) { + organEnt.Comp.OriginalBody = organEnt.Comp.Body; var addedInBodyEv = new OrganAddedToBodyEvent(bodyUid, parentPartUid); RaiseLocalEvent(organEnt, ref addedInBodyEv); + var organEnabledEv = new OrganEnableChangedEvent(true); + RaiseLocalEvent(organEnt, ref organEnabledEv); } Dirty(organEnt, organEnt.Comp); @@ -34,10 +51,17 @@ private void RemoveOrgan(Entity organEnt, EntityUid parentPartUi if (organEnt.Comp.Body is { Valid: true } bodyUid) { + organEnt.Comp.OriginalBody = organEnt.Comp.Body; + var organDisabledEv = new OrganEnableChangedEvent(false); + RaiseLocalEvent(organEnt, ref organDisabledEv); var removedInBodyEv = new OrganRemovedFromBodyEvent(bodyUid, parentPartUid); RaiseLocalEvent(organEnt, ref removedInBodyEv); } + if (TryComp(parentPartUid, out DamageableComponent? damageable) + && damageable.TotalDamage > 200) + TrySetOrganUsed(organEnt, true, organEnt.Comp); + organEnt.Comp.Body = null; Dirty(organEnt, organEnt.Comp); } @@ -212,4 +236,59 @@ public bool TryGetBodyOrganComponents( comps = null; return false; } + + public bool TrySetOrganUsed(EntityUid organId, bool used, OrganComponent? organ = null) + { + if (!Resolve(organId, ref organ) + || organ.Used == used) + return false; + + organ.Used = used; + Dirty(organId, organ); + return true; + } + + private void OnOrganEnableChanged(Entity organEnt, ref OrganEnableChangedEvent args) + { + if (!organEnt.Comp.CanEnable && args.Enabled) + return; + + organEnt.Comp.Enabled = args.Enabled; + + if (args.Enabled) + EnableOrgan(organEnt); + else + DisableOrgan(organEnt); + + if (organEnt.Comp.Body is { Valid: true } bodyEnt) + RaiseLocalEvent(organEnt, new OrganComponentsModifyEvent(bodyEnt, args.Enabled)); + + Dirty(organEnt, organEnt.Comp); + } + + private void EnableOrgan(Entity organEnt) + { + if (!TryComp(organEnt.Comp.Body, out BodyComponent? body)) + return; + + // I hate having to hardcode these checks so much. + if (HasComp(organEnt)) + { + var ev = new OrganEnabledEvent(organEnt); + RaiseLocalEvent(organEnt, ref ev); + } + } + + private void DisableOrgan(Entity organEnt) + { + if (!TryComp(organEnt.Comp.Body, out BodyComponent? body)) + return; + + // I hate having to hardcode these checks so much. + if (HasComp(organEnt)) + { + var ev = new OrganDisabledEvent(organEnt); + RaiseLocalEvent(organEnt, ref ev); + } + } } diff --git a/Content.Shared/Body/Systems/SharedBodySystem.PartAppearance.cs b/Content.Shared/Body/Systems/SharedBodySystem.PartAppearance.cs new file mode 100644 index 00000000000..347ec487aba --- /dev/null +++ b/Content.Shared/Body/Systems/SharedBodySystem.PartAppearance.cs @@ -0,0 +1,200 @@ +using System.Diagnostics; +using System.Linq; +using Content.Shared.Body.Components; +using Content.Shared.Body.Part; +using Content.Shared.Humanoid; +using Content.Shared.Humanoid.Markings; +using Content.Shared.Humanoid.Prototypes; +using Robust.Shared.Prototypes; +using Robust.Shared.Utility; + +namespace Content.Shared.Body.Systems; +public partial class SharedBodySystem +{ + [Dependency] private readonly SharedHumanoidAppearanceSystem _humanoid = default!; + [Dependency] private readonly MarkingManager _markingManager = default!; + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + private void InitializePartAppearances() + { + base.Initialize(); + + SubscribeLocalEvent(OnPartAppearanceStartup); + SubscribeLocalEvent(HandleState); + SubscribeLocalEvent(OnPartAttachedToBody); + SubscribeLocalEvent(OnPartDroppedFromBody); + } + + private void OnPartAppearanceStartup(EntityUid uid, BodyPartAppearanceComponent component, ComponentStartup args) + { + if (!TryComp(uid, out BodyPartComponent? part) + || part.ToHumanoidLayers() is not { } relevantLayer) + + return; + + if (part.OriginalBody == null + || TerminatingOrDeleted(part.OriginalBody.Value) + || !TryComp(part.OriginalBody.Value, out HumanoidAppearanceComponent? bodyAppearance)) + { + component.ID = part.BaseLayerId; + component.Type = relevantLayer; + return; + } + + var customLayers = bodyAppearance.CustomBaseLayers; + var spriteLayers = bodyAppearance.BaseLayers; + component.Type = relevantLayer; + component.OriginalBody = part.OriginalBody.Value; + + part.Species = bodyAppearance.Species; + + if (customLayers.ContainsKey(component.Type)) + { + component.ID = customLayers[component.Type].Id; + component.Color = customLayers[component.Type].Color; + } + else if (spriteLayers.ContainsKey(component.Type)) + { + component.ID = spriteLayers[component.Type].ID; + component.Color = bodyAppearance.SkinColor; + } + else + { + component.ID = CreateIdFromPart(bodyAppearance, relevantLayer); + component.Color = bodyAppearance.SkinColor; + } + + // I HATE HARDCODED CHECKS I HATE HARDCODED CHECKS I HATE HARDCODED CHECKS + if (part.PartType == BodyPartType.Head) + component.EyeColor = bodyAppearance.EyeColor; + + var markingsByLayer = new Dictionary>(); + + foreach (var layer in HumanoidVisualLayersExtension.Sublayers(relevantLayer)) + { + var category = MarkingCategoriesConversion.FromHumanoidVisualLayers(layer); + if (bodyAppearance.MarkingSet.Markings.TryGetValue(category, out var markingList)) + markingsByLayer[layer] = markingList.Select(m => new Marking(m.MarkingId, m.MarkingColors.ToList())).ToList(); + } + + component.Markings = markingsByLayer; + } + + private string? CreateIdFromPart(HumanoidAppearanceComponent bodyAppearance, HumanoidVisualLayers part) + { + var speciesProto = _prototypeManager.Index(bodyAppearance.Species); + var baseSprites = _prototypeManager.Index(speciesProto.SpriteSet); + + if (!baseSprites.Sprites.ContainsKey(part)) + return null; + + return HumanoidVisualLayersExtension.GetSexMorph(part, bodyAppearance.Sex, baseSprites.Sprites[part]); + } + + public void ModifyMarkings(EntityUid uid, + Entity partAppearance, + HumanoidAppearanceComponent bodyAppearance, + HumanoidVisualLayers targetLayer, + string markingId, + bool remove = false) + { + + if (!Resolve(partAppearance, ref partAppearance.Comp)) + return; + + if (!remove) + { + + if (!_markingManager.Markings.TryGetValue(markingId, out var prototype)) + return; + + var markingColors = MarkingColoring.GetMarkingLayerColors( + prototype, + bodyAppearance.SkinColor, + bodyAppearance.EyeColor, + bodyAppearance.MarkingSet + ); + + var marking = new Marking(markingId, markingColors); + + _humanoid.SetLayerVisibility(uid, targetLayer, true, true, bodyAppearance); + _humanoid.AddMarking(uid, markingId, markingColors, true, true, bodyAppearance); + if (!partAppearance.Comp.Markings.ContainsKey(targetLayer)) + partAppearance.Comp.Markings[targetLayer] = new List(); + + partAppearance.Comp.Markings[targetLayer].Add(marking); + } + //else + //RemovePartMarkings(uid, component, bodyAppearance); + } + + private void HandleState(EntityUid uid, BodyPartAppearanceComponent component, ref AfterAutoHandleStateEvent args) => + ApplyPartMarkings(uid, component); + + private void OnPartAttachedToBody(EntityUid uid, BodyComponent component, ref BodyPartAddedEvent args) + { + if (!TryComp(args.Part, out BodyPartAppearanceComponent? partAppearance) + || !TryComp(uid, out HumanoidAppearanceComponent? bodyAppearance)) + return; + + if (partAppearance.ID != null) + _humanoid.SetBaseLayerId(uid, partAppearance.Type, partAppearance.ID, sync: true, bodyAppearance); + + UpdateAppearance(uid, partAppearance); + } + + private void OnPartDroppedFromBody(EntityUid uid, BodyComponent component, ref BodyPartRemovedEvent args) + { + if (TerminatingOrDeleted(uid) + || TerminatingOrDeleted(args.Part) + || !TryComp(uid, out HumanoidAppearanceComponent? bodyAppearance)) + return; + + // We check for this conditional here since some entities may not have a profile... If they dont + // have one, and their part is gibbed, the markings will not be removed or applied properly. + if (!HasComp(args.Part)) + EnsureComp(args.Part); + + if (TryComp(args.Part, out var partAppearance)) + RemoveAppearance(uid, partAppearance, args.Part); + } + + protected void UpdateAppearance(EntityUid target, + BodyPartAppearanceComponent component) + { + if (!TryComp(target, out HumanoidAppearanceComponent? bodyAppearance)) + return; + + if (component.EyeColor != null) + bodyAppearance.EyeColor = component.EyeColor.Value; + + if (component.Color != null) + _humanoid.SetBaseLayerColor(target, component.Type, component.Color, true, bodyAppearance); + + _humanoid.SetLayerVisibility(target, component.Type, true, true, bodyAppearance); + + foreach (var (visualLayer, markingList) in component.Markings) + { + _humanoid.SetLayerVisibility(target, visualLayer, true, true, bodyAppearance); + foreach (var marking in markingList) + _humanoid.AddMarking(target, marking.MarkingId, marking.MarkingColors, false, true, bodyAppearance); + } + + Dirty(target, bodyAppearance); + } + + protected void RemoveAppearance(EntityUid entity, BodyPartAppearanceComponent component, EntityUid partEntity) + { + if (!TryComp(entity, out HumanoidAppearanceComponent? bodyAppearance)) + return; + + foreach (var (visualLayer, markingList) in component.Markings) + { + _humanoid.SetLayerVisibility(entity, visualLayer, false, true, bodyAppearance); + } + RemoveBodyMarkings(entity, component, bodyAppearance); + } + + protected abstract void ApplyPartMarkings(EntityUid target, BodyPartAppearanceComponent component); + + protected abstract void RemoveBodyMarkings(EntityUid target, BodyPartAppearanceComponent partAppearance, HumanoidAppearanceComponent bodyAppearance); +} diff --git a/Content.Shared/Body/Systems/SharedBodySystem.Parts.cs b/Content.Shared/Body/Systems/SharedBodySystem.Parts.cs index ee79faa0b8e..dc088542279 100644 --- a/Content.Shared/Body/Systems/SharedBodySystem.Parts.cs +++ b/Content.Shared/Body/Systems/SharedBodySystem.Parts.cs @@ -1,28 +1,64 @@ -using System.Diagnostics.CodeAnalysis; -using System.Linq; using Content.Shared.Body.Components; using Content.Shared.Body.Events; using Content.Shared.Body.Organ; using Content.Shared.Body.Part; +using Content.Shared.BodyEffects; using Content.Shared.Damage; using Content.Shared.Damage.Prototypes; +using Content.Shared.Humanoid; +using Content.Shared.Inventory; using Content.Shared.Movement.Components; +using Content.Shared.Random; +using Content.Shared.Targeting.Events; using Robust.Shared.Containers; using Robust.Shared.Utility; +using System.Diagnostics.CodeAnalysis; +using System.Linq; namespace Content.Shared.Body.Systems; public partial class SharedBodySystem { + [Dependency] private readonly RandomHelperSystem _randomHelper = default!; + [Dependency] private readonly InventorySystem _inventorySystem = default!; private void InitializeParts() { // TODO: This doesn't handle comp removal on child ents. // If you modify this also see the Body partial for root parts. + SubscribeLocalEvent(OnMapInit); + SubscribeLocalEvent(OnBodyPartRemove); SubscribeLocalEvent(OnBodyPartInserted); SubscribeLocalEvent(OnBodyPartRemoved); + SubscribeLocalEvent(OnAmputateAttempt); + SubscribeLocalEvent(OnPartEnableChanged); + } + + private void OnMapInit(Entity ent, ref MapInitEvent args) + { + if (ent.Comp.PartType == BodyPartType.Torso) + { + // For whatever reason this slot is initialized properly on the server, but not on the client. + // This seems to be an issue due to wiz-merge, on my old branch it was properly instantiating + // ItemInsertionSlot's container on both ends. It does show up properly on ItemSlotsComponent though. + _slots.AddItemSlot(ent, ent.Comp.ContainerName, ent.Comp.ItemInsertionSlot); + Dirty(ent, ent.Comp); + } + + if (ent.Comp.OnAdd is not null || ent.Comp.OnRemove is not null) + EnsureComp(ent); + + foreach (var connection in ent.Comp.Children.Keys) + { + Containers.EnsureContainer(ent, GetPartSlotContainerId(connection)); + } } + private void OnBodyPartRemove(Entity ent, ref ComponentRemove args) + { + if (ent.Comp.PartType == BodyPartType.Torso) + _slots.RemoveItemSlot(ent, ent.Comp.ItemInsertionSlot); + } private void OnBodyPartInserted(Entity ent, ref EntInsertedIntoContainerMessage args) { // Body part inserted into another body part. @@ -47,12 +83,12 @@ private void OnBodyPartRemoved(Entity ent, ref EntRemovedFrom // Body part removed from another body part. var removedUid = args.Entity; var slotId = args.Container.ID; - DebugTools.Assert(!TryComp(removedUid, out BodyPartComponent? b) || b.Body == ent.Comp.Body); DebugTools.Assert(!TryComp(removedUid, out OrganComponent? o) || o.Body == ent.Comp.Body); if (TryComp(removedUid, out BodyPartComponent? part) && part.Body is not null) { + CheckBodyPart((removedUid, part), GetTargetBodyPart(part), true); RemovePart(part.Body.Value, (removedUid, part), slotId); RecursiveBodyUpdate((removedUid, part), null); } @@ -93,6 +129,8 @@ private void RecursiveBodyUpdate(Entity ent, EntityUid? bodyU } } + // The code for RemovePartEffect() should live here, because it literally is the point of this recursive function. + // But the debug asserts at the top plus existing tests need refactoring for this. So we'll be lazy. foreach (var slotId in ent.Comp.Children.Keys) { if (!Containers.TryGetContainer(ent, GetPartSlotContainerId(slotId), out var container)) @@ -114,9 +152,11 @@ protected virtual void AddPart( Dirty(partEnt, partEnt.Comp); partEnt.Comp.Body = bodyEnt; + if (partEnt.Comp.Enabled && partEnt.Comp.Body is { Valid: true } body) + RaiseLocalEvent(partEnt, new BodyPartComponentsModifyEvent(body, true)); + var ev = new BodyPartAddedEvent(slotId, partEnt); RaiseLocalEvent(bodyEnt, ref ev); - AddLeg(partEnt, bodyEnt); } @@ -127,15 +167,41 @@ protected virtual void RemovePart( { Resolve(bodyEnt, ref bodyEnt.Comp, logMissing: false); Dirty(partEnt, partEnt.Comp); - partEnt.Comp.Body = null; + + partEnt.Comp.ParentSlot = null; + partEnt.Comp.OriginalBody = partEnt.Comp.Body; + + if (partEnt.Comp.Body is { Valid: true } body) + RaiseLocalEvent(partEnt, new BodyPartComponentsModifyEvent(body, false)); var ev = new BodyPartRemovedEvent(slotId, partEnt); RaiseLocalEvent(bodyEnt, ref ev); - RemoveLeg(partEnt, bodyEnt); + RemovePartEffect(partEnt, bodyEnt); PartRemoveDamage(bodyEnt, partEnt); } + protected virtual void DropPart(Entity partEnt) + { + ChangeSlotState(partEnt, true); + // I don't know if this can cause issues, since any part that's being detached HAS to have a Body. + // though I really just want the compiler to shut the fuck up. + var body = partEnt.Comp.Body.GetValueOrDefault(); + if (TryComp(partEnt, out TransformComponent? transform) && _gameTiming.IsFirstTimePredicted) + { + var enableEvent = new BodyPartEnableChangedEvent(false); + RaiseLocalEvent(partEnt, ref enableEvent); + var droppedEvent = new BodyPartDroppedEvent(partEnt); + RaiseLocalEvent(body, ref droppedEvent); + SharedTransform.AttachToGridOrMap(partEnt, transform); + _randomHelper.RandomOffset(partEnt, 0.5f); + } + + } + + private void OnAmputateAttempt(Entity partEnt, ref AmputateAttemptEvent args) => + DropPart(partEnt); + private void AddLeg(Entity legEnt, Entity bodyEnt) { if (!Resolve(bodyEnt, ref bodyEnt.Comp, logMissing: false)) @@ -159,11 +225,41 @@ private void RemoveLeg(Entity legEnt, Entity bodyEnt.Comp.LegEntities.Remove(legEnt); UpdateMovementSpeed(bodyEnt); Dirty(bodyEnt, bodyEnt.Comp); + Standing.Down(bodyEnt); + } + } - if (!bodyEnt.Comp.LegEntities.Any()) + // TODO: Refactor this crap. + private void RemovePartEffect(Entity partEnt, Entity bodyEnt) + { + if (TerminatingOrDeleted(bodyEnt) + || !Resolve(bodyEnt, ref bodyEnt.Comp, logMissing: false)) + return; + + RemovePartChildren(partEnt, bodyEnt, bodyEnt.Comp); + } + + protected void RemovePartChildren(Entity partEnt, EntityUid bodyEnt, BodyComponent? body = null) + { + if (!Resolve(bodyEnt, ref body, logMissing: false)) + return; + + if (partEnt.Comp.Children.Any()) + { + foreach (var slotId in partEnt.Comp.Children.Keys) { - Standing.Down(bodyEnt); + if (Containers.TryGetContainer(partEnt, GetPartSlotContainerId(slotId), out var container) && + container is ContainerSlot slot && + slot.ContainedEntity is { } childEntity && + TryComp(childEntity, out BodyPartComponent? childPart)) + { + var ev = new BodyPartEnableChangedEvent(false); + RaiseLocalEvent(childEntity, ref ev); + DropPart((childEntity, childPart)); + } } + + Dirty(bodyEnt, body); } } @@ -177,9 +273,103 @@ private void PartRemoveDamage(Entity bodyEnt, Entity("Bloodloss"), 300); - Damageable.TryChangeDamage(bodyEnt, damage); + var damage = new DamageSpecifier(Prototypes.Index("Bloodloss"), partEnt.Comp.VitalDamage); + Damageable.TryChangeDamage(bodyEnt, damage, partMultiplier: 0f); + } + } + + private void OnPartEnableChanged(Entity partEnt, ref BodyPartEnableChangedEvent args) + { + if (!partEnt.Comp.CanEnable && args.Enabled) + return; + + partEnt.Comp.Enabled = args.Enabled; + + if (args.Enabled) + { + EnablePart(partEnt); + if (partEnt.Comp.Body is { Valid: true } bodyEnt) + RaiseLocalEvent(partEnt, new BodyPartComponentsModifyEvent(bodyEnt, true)); + } + else + { + DisablePart(partEnt); + if (partEnt.Comp.Body is { Valid: true } bodyEnt) + RaiseLocalEvent(partEnt, new BodyPartComponentsModifyEvent(bodyEnt, false)); + } + + Dirty(partEnt, partEnt.Comp); + } + private void EnablePart(Entity partEnt) + { + if (!TryComp(partEnt.Comp.Body, out BodyComponent? body)) + return; + + // I hate having to hardcode these checks so much. + if (partEnt.Comp.PartType == BodyPartType.Leg) + AddLeg(partEnt, (partEnt.Comp.Body.Value, body)); + + if (partEnt.Comp.PartType == BodyPartType.Arm) + { + var hand = GetBodyChildrenOfType(partEnt.Comp.Body.Value, BodyPartType.Hand, symmetry: partEnt.Comp.Symmetry).FirstOrDefault(); + if (hand != default) + { + var ev = new BodyPartEnabledEvent(hand); + RaiseLocalEvent(partEnt.Comp.Body.Value, ref ev); + } + } + + if (partEnt.Comp.PartType == BodyPartType.Hand) + { + var ev = new BodyPartEnabledEvent(partEnt); + RaiseLocalEvent(partEnt.Comp.Body.Value, ref ev); + } + } + + /// + /// This function handles disabling or enabling equipment slots when an entity is + /// missing all of a given part type, or they get one added to them. + /// It is called right before dropping a part, or right after adding one. + /// + public void ChangeSlotState(Entity partEnt, bool disable) + { + if (partEnt.Comp.Body is not null + && TryComp(partEnt.Comp.Body, out var inventory) + && GetBodyPartCount(partEnt.Comp.Body.Value, partEnt.Comp.PartType) == 1 + && TryGetPartSlotContainerName(partEnt.Comp.PartType, out var containerNames)) + { + foreach (var containerName in containerNames) + { + _inventorySystem.SetSlotStatus(partEnt.Comp.Body.Value, containerName, disable, inventory); + var ev = new RefreshInventorySlotsEvent(containerName); + RaiseLocalEvent(partEnt.Comp.Body.Value, ev); + } + } + + } + + private void DisablePart(Entity partEnt) + { + if (!TryComp(partEnt.Comp.Body, out BodyComponent? body)) + return; + + if (partEnt.Comp.PartType == BodyPartType.Leg) + RemoveLeg(partEnt, (partEnt.Comp.Body.Value, body)); + + if (partEnt.Comp.PartType == BodyPartType.Arm) + { + var hand = GetBodyChildrenOfType(partEnt.Comp.Body.Value, BodyPartType.Hand, symmetry: partEnt.Comp.Symmetry).FirstOrDefault(); + if (hand != default) + { + var ev = new BodyPartDisabledEvent(hand); + RaiseLocalEvent(partEnt.Comp.Body.Value, ref ev); + } + } + + if (partEnt.Comp.PartType == BodyPartType.Hand) + { + var ev = new BodyPartDisabledEvent(partEnt); + RaiseLocalEvent(partEnt.Comp.Body.Value, ref ev); } } @@ -401,6 +591,18 @@ public bool AttachPartToRoot( && Containers.Insert(partId, body.RootContainer); } + /// + /// Returns true if this parentId supports attaching a new part to the specified slot. + /// + public bool CanAttachToSlot( + EntityUid parentId, + string slotId, + BodyPartComponent? parentPart = null) + { + return Resolve(parentId, ref parentPart, logMissing: false) + && parentPart.Children.ContainsKey(slotId); + } + #endregion #region Attach/Detach @@ -438,12 +640,21 @@ public bool AttachPart( return false; } + if (!Containers.TryGetContainer(parentPartId, GetPartSlotContainerId(slot.Id), out var container)) { DebugTools.Assert($"Unable to find body slot {slot.Id} for {ToPrettyString(parentPartId)}"); return false; } + part.ParentSlot = slot; + + if (TryComp(parentPart.Body, out HumanoidAppearanceComponent? bodyAppearance) + && !HasComp(partId) + && !TerminatingOrDeleted(parentPartId) + && !TerminatingOrDeleted(partId)) // Saw some exceptions involving these due to the spawn menu. + EnsureComp(partId); + return Containers.Insert(partId, container); } @@ -656,11 +867,12 @@ public bool BodyHasChild( public IEnumerable<(EntityUid Id, BodyPartComponent Component)> GetBodyChildrenOfType( EntityUid bodyId, BodyPartType type, - BodyComponent? body = null) + BodyComponent? body = null, + BodyPartSymmetry? symmetry = null) { foreach (var part in GetBodyChildren(bodyId, body)) { - if (part.Component.PartType == type) + if (part.Component.PartType == type && (symmetry == null || part.Component.Symmetry == symmetry)) yield return part; } } @@ -722,6 +934,49 @@ public bool TryGetBodyPartOrganComponents( return false; } + /// + /// Tries to get a list of ValueTuples of EntityUid and OrganComponent on each organ + /// in the given part. + /// + /// The part entity id to check on. + /// The type of component to check for. + /// The part to check for organs on. + /// The organs found on the body part. + /// Whether any were found. + /// + /// This method is somewhat of a copout to the fact that we can't use reflection to generically + /// get the type of component on runtime due to sandboxing. So we simply do a HasComp check for each organ. + /// + public bool TryGetBodyPartOrgans( + EntityUid uid, + Type type, + [NotNullWhen(true)] out List<(EntityUid Id, OrganComponent Organ)>? organs, + BodyPartComponent? part = null) + { + if (!Resolve(uid, ref part)) + { + organs = null; + return false; + } + + var list = new List<(EntityUid Id, OrganComponent Organ)>(); + + foreach (var organ in GetPartOrgans(uid, part)) + { + if (HasComp(organ.Id, type)) + list.Add((organ.Id, organ.Component)); + } + + if (list.Count != 0) + { + organs = list; + return true; + } + + organs = null; + return false; + } + /// /// Gets the parent body part and all immediate child body parts for the partId. /// @@ -790,5 +1045,39 @@ public bool TryGetBodyPartAdjacentPartsComponents( return false; } + private bool TryGetPartSlotContainerName(BodyPartType partType, out HashSet containerNames) + { + containerNames = partType switch + { + BodyPartType.Hand => new() { "gloves" }, + BodyPartType.Foot => new() { "shoes" }, + BodyPartType.Head => new() { "eyes", "ears", "head", "mask" }, + _ => new() + }; + return containerNames.Count > 0; + } + + public int GetBodyPartCount(EntityUid bodyId, BodyPartType partType, BodyComponent? body = null) + { + if (!Resolve(bodyId, ref body, logMissing: false)) + return 0; + + int count = 0; + foreach (var part in GetBodyChildren(bodyId, body)) + { + if (part.Component.PartType == partType) + count++; + } + return count; + } + + public string GetSlotFromBodyPart(BodyPartComponent part) + { + if (part.Symmetry != BodyPartSymmetry.None) + return $"{part.Symmetry.ToString().ToLower()} {part.PartType.ToString().ToLower()}"; + else + return part.PartType.ToString().ToLower(); + } + #endregion } diff --git a/Content.Shared/Body/Systems/SharedBodySystem.Targeting.cs b/Content.Shared/Body/Systems/SharedBodySystem.Targeting.cs new file mode 100644 index 00000000000..202353d3eef --- /dev/null +++ b/Content.Shared/Body/Systems/SharedBodySystem.Targeting.cs @@ -0,0 +1,504 @@ +using Content.Shared.Body.Components; +using Content.Shared.Body.Part; +using Content.Shared.Damage; +using Content.Shared.Damage.Prototypes; +using Content.Shared.FixedPoint; +using Content.Shared.IdentityManagement; +using Content.Shared.Medical.Surgery.Steps.Parts; +using Content.Shared.Mobs.Components; +using Content.Shared.Mobs.Systems; +using Content.Shared.Popups; +using Content.Shared.Standing; +using Content.Shared.Targeting; +using Content.Shared.Targeting.Events; +using Robust.Shared.CPUJob.JobQueues; +using Robust.Shared.CPUJob.JobQueues.Queues; +using Robust.Shared.Network; +using Robust.Shared.Prototypes; +using Robust.Shared.Random; +using Robust.Shared.Timing; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; + +namespace Content.Shared.Body.Systems; + +public partial class SharedBodySystem +{ + [Dependency] private readonly INetManager _net = default!; + [Dependency] private readonly MobStateSystem _mobState = default!; + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly DamageableSystem _damageable = default!; + + [Dependency] private readonly SharedPopupSystem _popup = default!; + private readonly string[] _severingDamageTypes = { "Slash", "Piercing", "Blunt" }; + private const double IntegrityJobTime = 0.005; + private readonly JobQueue _integrityJobQueue = new(IntegrityJobTime); + public sealed class IntegrityJob : Job + { + private readonly SharedBodySystem _self; + private readonly Entity _ent; + public IntegrityJob(SharedBodySystem self, Entity ent, double maxTime, CancellationToken cancellation = default) : base(maxTime, cancellation) + { + _self = self; + _ent = ent; + } + + public IntegrityJob(SharedBodySystem self, Entity ent, double maxTime, IStopwatch stopwatch, CancellationToken cancellation = default) : base(maxTime, stopwatch, cancellation) + { + _self = self; + _ent = ent; + } + + protected override Task Process() + { + _self.ProcessIntegrityTick(_ent); + + return Task.FromResult(null); + } + } + + private EntityQuery _queryTargeting; + private void InitializeIntegrityQueue() + { + _queryTargeting = GetEntityQuery(); + SubscribeLocalEvent(OnTryChangePartDamage); + SubscribeLocalEvent(OnBodyDamageModify); + SubscribeLocalEvent(OnPartDamageModify); + SubscribeLocalEvent(OnDamageChanged); + } + + private void ProcessIntegrityTick(Entity entity) + { + if (!TryComp(entity, out var damageable)) + return; + + var damage = damageable.TotalDamage; + + if (entity.Comp is { Body: { } body } + && damage > entity.Comp.MinIntegrity + && damage <= entity.Comp.IntegrityThresholds[TargetIntegrity.HeavilyWounded] + && _queryTargeting.HasComp(body) + && !_mobState.IsDead(body)) + _damageable.TryChangeDamage(entity, GetHealingSpecifier(entity), canSever: false, targetPart: GetTargetBodyPart(entity)); + } + + public override void Update(float frameTime) + { + base.Update(frameTime); + _integrityJobQueue.Process(); + + if (!_timing.IsFirstTimePredicted) + return; + + using var query = EntityQueryEnumerator(); + while (query.MoveNext(out var ent, out var part)) + { + part.HealingTimer += frameTime; + + if (part.HealingTimer >= part.HealingTime) + { + part.HealingTimer = 0; + _integrityJobQueue.EnqueueJob(new IntegrityJob(this, (ent, part), IntegrityJobTime)); + } + } + } + + private void OnTryChangePartDamage(Entity ent, ref TryChangePartDamageEvent args) + { + // If our target has a TargetingComponent, that means they will take limb damage + // And if their attacker also has one, then we use that part. + if (_queryTargeting.TryComp(ent, out var targetEnt)) + { + var damage = args.Damage; + TargetBodyPart? targetPart = null; + + if (args.TargetPart != null) + { + targetPart = args.TargetPart; + } + else if (args.Origin.HasValue && _queryTargeting.TryComp(args.Origin.Value, out var targeter)) + { + targetPart = targeter.Target; + // If the target is Torso then have a 33% chance to hit another part + if (targetPart.Value == TargetBodyPart.Torso) + { + var additionalPart = GetRandomPartSpread(_random, 10); + targetPart = targetPart.Value | additionalPart; + } + } + else + { + // If there's an origin in this case, that means it comes from an entity without TargetingComponent, + // such as an animal, so we attack a random part. + if (args.Origin.HasValue) + { + targetPart = GetRandomBodyPart(ent, targetEnt); + } + // Otherwise we damage all parts equally (barotrauma, explosions, etc). + else if (damage != null) + { + // Division by 2 cuz damaging all parts by the same damage by default is too much. + damage /= 2; + targetPart = TargetBodyPart.All; + } + } + + if (targetPart == null) + return; + + if (!TryChangePartDamage(ent, args.Damage, args.CanSever, args.CanEvade, args.PartMultiplier, targetPart.Value) + && args.CanEvade) + { + if (_net.IsServer) + _popup.PopupEntity(Loc.GetString("surgery-part-damage-evaded", ("user", Identity.Entity(ent, EntityManager))), ent); + + args.Evaded = true; + } + } + } + + private void OnBodyDamageModify(Entity bodyEnt, ref DamageModifyEvent args) + { + if (args.TargetPart != null) + { + var (targetType, _) = ConvertTargetBodyPart(args.TargetPart.Value); + args.Damage = args.Damage * GetPartDamageModifier(targetType); + } + } + + private void OnPartDamageModify(Entity partEnt, ref DamageModifyEvent args) + { + if (partEnt.Comp.Body != null + && TryComp(partEnt.Comp.Body.Value, out DamageableComponent? damageable) + && damageable.DamageModifierSetId != null + && _prototypeManager.TryIndex(damageable.DamageModifierSetId, out var modifierSet)) + // TODO: We need to add a check to see if the given armor covers this part to cancel or not. + args.Damage = DamageSpecifier.ApplyModifierSet(args.Damage, modifierSet); + + if (_prototypeManager.TryIndex("PartDamage", out var partModifierSet)) + args.Damage = DamageSpecifier.ApplyModifierSet(args.Damage, partModifierSet); + + args.Damage = args.Damage * GetPartDamageModifier(partEnt.Comp.PartType); + } + + private bool TryChangePartDamage(EntityUid entity, + DamageSpecifier damage, + bool canSever, + bool canEvade, + float partMultiplier, + TargetBodyPart targetParts) + { + var landed = false; + var targets = SharedTargetingSystem.GetValidParts(); + foreach (var target in targets) + { + if (!targetParts.HasFlag(target)) + continue; + + var (targetType, targetSymmetry) = ConvertTargetBodyPart(target); + if (GetBodyChildrenOfType(entity, targetType, symmetry: targetSymmetry) is { } part) + { + if (canEvade && TryEvadeDamage(entity, GetEvadeChance(targetType))) + continue; + + var damageResult = _damageable.TryChangeDamage(part.FirstOrDefault().Id, damage * partMultiplier, canSever: canSever); + if (damageResult != null && damageResult.GetTotal() != 0) + landed = true; + } + } + + return landed; + } + + private void OnDamageChanged(Entity partEnt, ref DamageChangedEvent args) + { + if (!TryComp(partEnt, out var damageable)) + return; + + var severed = false; + var partIdSlot = GetParentPartAndSlotOrNull(partEnt)?.Slot; + var delta = args.DamageDelta; + + if (args.CanSever + && partEnt.Comp.CanSever + && partIdSlot is not null + && delta != null + && !HasComp(partEnt) + && !partEnt.Comp.Enabled + && damageable.TotalDamage >= partEnt.Comp.SeverIntegrity + && _severingDamageTypes.Any(damageType => delta.DamageDict.TryGetValue(damageType, out var value) && value > 0)) + severed = true; + + CheckBodyPart(partEnt, GetTargetBodyPart(partEnt), severed, damageable); + + if (severed) + DropPart(partEnt); + + Dirty(partEnt, partEnt.Comp); + } + + /// + /// Gets the random body part rolling a number between 1 and 9, and returns + /// Torso if the result is 9 or more. The higher torsoWeight is, the higher chance to return it. + /// By default, the chance to return Torso is 50%. + /// + private static TargetBodyPart GetRandomPartSpread(IRobustRandom random, ushort torsoWeight = 9) + { + const int targetPartsAmount = 9; + // 5 = amount of target parts except Torso + return random.Next(1, targetPartsAmount + torsoWeight) switch + { + 1 => TargetBodyPart.Head, + 2 => TargetBodyPart.RightArm, + 3 => TargetBodyPart.RightHand, + 4 => TargetBodyPart.LeftArm, + 5 => TargetBodyPart.LeftHand, + 6 => TargetBodyPart.RightLeg, + 7 => TargetBodyPart.RightFoot, + 8 => TargetBodyPart.LeftLeg, + 9 => TargetBodyPart.LeftFoot, + _ => TargetBodyPart.Torso, + }; + } + + public TargetBodyPart? GetRandomBodyPart(EntityUid uid, TargetingComponent? target = null) + { + if (!Resolve(uid, ref target, false)) + return null; + + var totalWeight = target.TargetOdds.Values.Sum(); + var randomValue = _random.NextFloat() * totalWeight; + + foreach (var (part, weight) in target.TargetOdds) + { + if (randomValue <= weight) + return part; + randomValue -= weight; + } + + return TargetBodyPart.Torso; // Default to torso if something goes wrong + } + + /// + /// This should be called after body part damage was changed. + /// + protected void CheckBodyPart( + Entity partEnt, + TargetBodyPart? targetPart, + bool severed, + DamageableComponent? damageable = null) + { + if (!Resolve(partEnt, ref damageable)) + return; + + var integrity = damageable.TotalDamage; + + // KILL the body part + if (partEnt.Comp.Enabled && integrity >= partEnt.Comp.IntegrityThresholds[TargetIntegrity.CriticallyWounded]) + { + var ev = new BodyPartEnableChangedEvent(false); + RaiseLocalEvent(partEnt, ref ev); + } + + // LIVE the body part + if (!partEnt.Comp.Enabled && integrity <= partEnt.Comp.IntegrityThresholds[partEnt.Comp.EnableIntegrity] && !severed) + { + var ev = new BodyPartEnableChangedEvent(true); + RaiseLocalEvent(partEnt, ref ev); + } + + if (_queryTargeting.TryComp(partEnt.Comp.Body, out var targeting) + && HasComp(partEnt.Comp.Body)) + { + var newIntegrity = GetIntegrityThreshold(partEnt.Comp, integrity.Float(), severed); + // We need to check if the part is dead to prevent the UI from showing dead parts as alive. + if (targetPart is not null && + targeting.BodyStatus.ContainsKey(targetPart.Value) && + targeting.BodyStatus[targetPart.Value] != TargetIntegrity.Dead) + { + targeting.BodyStatus[targetPart.Value] = newIntegrity; + if (targetPart.Value == TargetBodyPart.Torso) + targeting.BodyStatus[TargetBodyPart.Groin] = newIntegrity; + + Dirty(partEnt.Comp.Body.Value, targeting); + } + // Revival events are handled by the server, so we end up being locked to a network event. + // I hope you like the _net.IsServer, Remuchi :) + if (_net.IsServer) + RaiseNetworkEvent(new TargetIntegrityChangeEvent(GetNetEntity(partEnt.Comp.Body.Value)), partEnt.Comp.Body.Value); + } + } + + /// + /// Gets the integrity of all body parts in the entity. + /// + public Dictionary GetBodyPartStatus(EntityUid entityUid) + { + var result = new Dictionary(); + + if (!TryComp(entityUid, out var body)) + return result; + + foreach (var part in SharedTargetingSystem.GetValidParts()) + { + result[part] = TargetIntegrity.Severed; + } + + foreach (var partComponent in GetBodyChildren(entityUid, body)) + { + var targetBodyPart = GetTargetBodyPart(partComponent.Component.PartType, partComponent.Component.Symmetry); + + if (targetBodyPart != null && TryComp(partComponent.Id, out var damageable)) + result[targetBodyPart.Value] = GetIntegrityThreshold(partComponent.Component, damageable.TotalDamage.Float(), false); + } + + // Hardcoded shitcode for Groin :) + result[TargetBodyPart.Groin] = result[TargetBodyPart.Torso]; + + return result; + } + + public TargetBodyPart? GetTargetBodyPart(Entity part) => GetTargetBodyPart(part.Comp.PartType, part.Comp.Symmetry); + public TargetBodyPart? GetTargetBodyPart(BodyPartComponent part) => GetTargetBodyPart(part.PartType, part.Symmetry); + + /// + /// Converts Enums from BodyPartType to their Targeting system equivalent. + /// + public TargetBodyPart? GetTargetBodyPart(BodyPartType type, BodyPartSymmetry symmetry) + { + return (type, symmetry) switch + { + (BodyPartType.Head, _) => TargetBodyPart.Head, + (BodyPartType.Torso, _) => TargetBodyPart.Torso, + (BodyPartType.Arm, BodyPartSymmetry.Left) => TargetBodyPart.LeftArm, + (BodyPartType.Arm, BodyPartSymmetry.Right) => TargetBodyPart.RightArm, + (BodyPartType.Hand, BodyPartSymmetry.Left) => TargetBodyPart.LeftHand, + (BodyPartType.Hand, BodyPartSymmetry.Right) => TargetBodyPart.RightHand, + (BodyPartType.Leg, BodyPartSymmetry.Left) => TargetBodyPart.LeftLeg, + (BodyPartType.Leg, BodyPartSymmetry.Right) => TargetBodyPart.RightLeg, + (BodyPartType.Foot, BodyPartSymmetry.Left) => TargetBodyPart.LeftFoot, + (BodyPartType.Foot, BodyPartSymmetry.Right) => TargetBodyPart.RightFoot, + _ => null + }; + } + + /// + /// Converts Enums from Targeting system to their BodyPartType equivalent. + /// + public (BodyPartType Type, BodyPartSymmetry Symmetry) ConvertTargetBodyPart(TargetBodyPart targetPart) + { + return targetPart switch + { + TargetBodyPart.Head => (BodyPartType.Head, BodyPartSymmetry.None), + TargetBodyPart.Torso => (BodyPartType.Torso, BodyPartSymmetry.None), + TargetBodyPart.Groin => (BodyPartType.Torso, BodyPartSymmetry.None), // TODO: Groin is not a part type yet + TargetBodyPart.LeftArm => (BodyPartType.Arm, BodyPartSymmetry.Left), + TargetBodyPart.LeftHand => (BodyPartType.Hand, BodyPartSymmetry.Left), + TargetBodyPart.RightArm => (BodyPartType.Arm, BodyPartSymmetry.Right), + TargetBodyPart.RightHand => (BodyPartType.Hand, BodyPartSymmetry.Right), + TargetBodyPart.LeftLeg => (BodyPartType.Leg, BodyPartSymmetry.Left), + TargetBodyPart.LeftFoot => (BodyPartType.Foot, BodyPartSymmetry.Left), + TargetBodyPart.RightLeg => (BodyPartType.Leg, BodyPartSymmetry.Right), + TargetBodyPart.RightFoot => (BodyPartType.Foot, BodyPartSymmetry.Right), + _ => (BodyPartType.Torso, BodyPartSymmetry.None) + }; + + } + + public DamageSpecifier GetHealingSpecifier(BodyPartComponent part) + { + var damage = new DamageSpecifier() + { + DamageDict = new Dictionary() + { + { "Blunt", -part.SelfHealingAmount }, + { "Slash", -part.SelfHealingAmount }, + { "Piercing", -part.SelfHealingAmount }, + { "Heat", -part.SelfHealingAmount }, + { "Cold", -part.SelfHealingAmount }, + { "Shock", -part.SelfHealingAmount }, + { "Caustic", -part.SelfHealingAmount * 0.1}, // not much caustic healing + } + }; + + return damage; + } + + /// + /// Fetches the damage multiplier for part integrity based on part types. + /// + /// TODO: Serialize this per body part. + public static float GetPartDamageModifier(BodyPartType partType) + { + return partType switch + { + BodyPartType.Head => 0.5f, // 50% damage, necks are hard to cut + BodyPartType.Torso => 1.0f, // 100% damage + BodyPartType.Arm => 0.7f, // 70% damage + BodyPartType.Hand => 0.7f, // 70% damage + BodyPartType.Leg => 0.7f, // 70% damage + BodyPartType.Foot => 0.7f, // 70% damage + _ => 0.5f + }; + } + + /// + /// Fetches the TargetIntegrity equivalent of the current integrity value for the body part. + /// + public static TargetIntegrity GetIntegrityThreshold(BodyPartComponent component, float integrity, bool severed) + { + if (severed) + return TargetIntegrity.Severed; + else if (!component.Enabled) + return TargetIntegrity.Disabled; + + var targetIntegrity = TargetIntegrity.Healthy; + foreach (var threshold in component.IntegrityThresholds) + { + if (integrity <= threshold.Value) + targetIntegrity = threshold.Key; + } + + return targetIntegrity; + } + + /// + /// Fetches the chance to evade integrity damage for a body part. + /// Used when the entity is not dead, laying down, or incapacitated. + /// + public static float GetEvadeChance(BodyPartType partType) + { + return partType switch + { + BodyPartType.Head => 0.70f, // 70% chance to evade + BodyPartType.Arm => 0.20f, // 20% chance to evade + BodyPartType.Hand => 0.20f, // 20% chance to evade + BodyPartType.Leg => 0.20f, // 20% chance to evade + BodyPartType.Foot => 0.20f, // 20% chance to evade + BodyPartType.Torso => 0f, // 0% chance to evade + _ => 0f + }; + } + + public bool CanEvadeDamage(EntityUid uid) + { + if (!TryComp(uid, out var mobState) + || !TryComp(uid, out var standingState) + || _mobState.IsCritical(uid, mobState) + || _mobState.IsDead(uid, mobState) + || standingState.CurrentState == StandingState.Lying) + return false; + + return true; + } + + public bool TryEvadeDamage(EntityUid uid, float evadeChance) + { + if (!CanEvadeDamage(uid)) + return false; + + return _random.NextFloat() < evadeChance; + } + +} diff --git a/Content.Shared/Body/Systems/SharedBodySystem.cs b/Content.Shared/Body/Systems/SharedBodySystem.cs index a45966fcc37..966d2fa95b3 100644 --- a/Content.Shared/Body/Systems/SharedBodySystem.cs +++ b/Content.Shared/Body/Systems/SharedBodySystem.cs @@ -1,5 +1,6 @@ using Content.Shared.Damage; using Content.Shared.Movement.Systems; +using Content.Shared.Body.Part; using Content.Shared.Standing; using Robust.Shared.Containers; using Robust.Shared.Prototypes; @@ -28,7 +29,7 @@ public abstract partial class SharedBodySystem : EntitySystem /// public const string OrganSlotContainerIdPrefix = "body_organ_slot_"; - [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly IGameTiming _timing = default!; [Dependency] protected readonly IPrototypeManager Prototypes = default!; [Dependency] protected readonly DamageableSystem Damageable = default!; [Dependency] protected readonly MovementSpeedModifierSystem Movement = default!; @@ -42,6 +43,10 @@ public override void Initialize() InitializeBody(); InitializeParts(); + InitializeOrgans(); + // To try and mitigate the server load due to integrity checks, we set up a Job Queue. + InitializeIntegrityQueue(); + InitializePartAppearances(); } /// diff --git a/Content.Shared/BodyEffects/BodyPartEffectComponent.cs b/Content.Shared/BodyEffects/BodyPartEffectComponent.cs new file mode 100644 index 00000000000..72269be1f22 --- /dev/null +++ b/Content.Shared/BodyEffects/BodyPartEffectComponent.cs @@ -0,0 +1,26 @@ +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; + +namespace Content.Shared.BodyEffects; + +[RegisterComponent, NetworkedComponent] +[AutoGenerateComponentPause] +public sealed partial class BodyPartEffectComponent : Component +{ + /// + /// The components that are active on the part and will be refreshed every 5s + /// + [DataField] + public ComponentRegistry Active = new(); + + /// + /// How long to wait between each refresh. + /// Effects can only last at most this long once the organ is removed. + /// + [DataField] + public TimeSpan Delay = TimeSpan.FromSeconds(5); + + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoPausedField] + public TimeSpan NextUpdate = TimeSpan.Zero; +} diff --git a/Content.Shared/BodyEffects/BodyPartEffectSystem.cs b/Content.Shared/BodyEffects/BodyPartEffectSystem.cs new file mode 100644 index 00000000000..c814f6dd3b9 --- /dev/null +++ b/Content.Shared/BodyEffects/BodyPartEffectSystem.cs @@ -0,0 +1,95 @@ +using Content.Shared.Body.Part; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.Manager; +using Robust.Shared.Timing; +using System.Linq; + +namespace Content.Shared.BodyEffects; +public partial class BodyPartEffectSystem : EntitySystem +{ + [Dependency] private readonly IComponentFactory _compFactory = default!; + [Dependency] private readonly ISerializationManager _serManager = default!; + [Dependency] private readonly IGameTiming _gameTiming = default!; + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnPartComponentsModify); + } + + // While I would love to kill this function, problem is that if we happen to have two parts that add the same + // effect, removing one will remove both of them, since we cant tell what the source of a Component is. + public override void Update(float frameTime) + { + base.Update(frameTime); + + var query = EntityQueryEnumerator(); + var now = _gameTiming.CurTime; + while (query.MoveNext(out var uid, out var comp, out var part)) + { + if (now < comp.NextUpdate || !comp.Active.Any() || part.Body is not { } body) + continue; + + comp.NextUpdate = now + comp.Delay; + AddComponents(body, uid, comp.Active); + } + } + + private void OnPartComponentsModify(Entity partEnt, + ref BodyPartComponentsModifyEvent ev) + { + if (partEnt.Comp.OnAdd != null) + { + if (ev.Add) + AddComponents(ev.Body, partEnt, partEnt.Comp.OnAdd); + else + RemoveComponents(ev.Body, partEnt, partEnt.Comp.OnAdd); + } + + if (partEnt.Comp.OnRemove != null) + { + if (ev.Add) + AddComponents(ev.Body, partEnt, partEnt.Comp.OnRemove); + else + RemoveComponents(ev.Body, partEnt, partEnt.Comp.OnRemove); + } + + Dirty(partEnt, partEnt.Comp); + } + + private void AddComponents(EntityUid body, + EntityUid part, + ComponentRegistry reg, + BodyPartEffectComponent? effectComp = null) + { + if (!Resolve(part, ref effectComp, logMissing: false)) + return; + + foreach (var (key, comp) in reg) + { + var compType = comp.Component.GetType(); + if (HasComp(body, compType)) + continue; + + var newComp = (Component) _serManager.CreateCopy(comp.Component, notNullableOverride: true); + EntityManager.AddComponent(body, newComp, true); + + effectComp.Active[key] = comp; + } + } + + private void RemoveComponents(EntityUid body, + EntityUid part, + ComponentRegistry reg, + BodyPartEffectComponent? effectComp = null) + { + if (!Resolve(part, ref effectComp, logMissing: false)) + return; + + foreach (var (key, comp) in reg) + { + RemComp(body, comp.Component.GetType()); + effectComp.Active.Remove(key); + } + } +} diff --git a/Content.Shared/BodyEffects/OrganEffectComponent.cs b/Content.Shared/BodyEffects/OrganEffectComponent.cs new file mode 100644 index 00000000000..ee6990b2c5e --- /dev/null +++ b/Content.Shared/BodyEffects/OrganEffectComponent.cs @@ -0,0 +1,27 @@ +// We keep this clone of the other component since I don't know yet if I'll need organ specific functions in the future. +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; + +namespace Content.Shared.BodyEffects; + +[RegisterComponent, NetworkedComponent] +[AutoGenerateComponentPause] +public sealed partial class OrganEffectComponent : Component +{ + /// + /// The components that are active on the part and will be refreshed every 5s + /// + [DataField] + public ComponentRegistry Active = new(); + + /// + /// How long to wait between each refresh. + /// Effects can only last at most this long once the organ is removed. + /// + [DataField] + public TimeSpan Delay = TimeSpan.FromSeconds(5); + + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoPausedField] + public TimeSpan NextUpdate = TimeSpan.Zero; +} diff --git a/Content.Shared/BodyEffects/OrganEffectSystem.cs b/Content.Shared/BodyEffects/OrganEffectSystem.cs new file mode 100644 index 00000000000..679d9ddef08 --- /dev/null +++ b/Content.Shared/BodyEffects/OrganEffectSystem.cs @@ -0,0 +1,109 @@ +// We keep this clone of the other system since I don't know yet if I'll need organ specific functions in the future. +// will delete or refactor as time goes on. +using Content.Shared.Body.Organ; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.Manager; +using Robust.Shared.Timing; +using System.Linq; +using Robust.Shared.Network; + + +namespace Content.Shared.BodyEffects; +public partial class OrganEffectSystem : EntitySystem +{ + [Dependency] private readonly IComponentFactory _compFactory = default!; + [Dependency] private readonly ISerializationManager _serManager = default!; + [Dependency] private readonly IGameTiming _gameTiming = default!; + [Dependency] private readonly INetManager _net = default!; + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnOrganComponentsModify); + } + + // While I would love to kill this function, problem is that if we happen to have two parts that add the same + // effect, removing one will remove both of them, since we cant tell what the source of a Component is. + public override void Update(float frameTime) + { + base.Update(frameTime); + + if (!_net.IsServer) // TODO: Kill this once I figure out whats breaking the Diagnostic Cybernetics. + return; + + var query = EntityQueryEnumerator(); + var now = _gameTiming.CurTime; + while (query.MoveNext(out var uid, out var comp, out var part)) + { + if (now < comp.NextUpdate || !comp.Active.Any() || part.Body is not { } body) + continue; + + comp.NextUpdate = now + comp.Delay; + AddComponents(body, uid, comp.Active); + } + } + + private void OnOrganComponentsModify(Entity organEnt, + ref OrganComponentsModifyEvent ev) + { + if (!_net.IsServer) // TODO: Kill this once I figure out whats breaking the Diagnostic Cybernetics. + return; + + if (organEnt.Comp.OnAdd != null) + { + if (ev.Add) + AddComponents(ev.Body, organEnt, organEnt.Comp.OnAdd); + else + RemoveComponents(ev.Body, organEnt, organEnt.Comp.OnAdd); + } + + if (organEnt.Comp.OnRemove != null) + { + if (ev.Add) + AddComponents(ev.Body, organEnt, organEnt.Comp.OnRemove); + else + RemoveComponents(ev.Body, organEnt, organEnt.Comp.OnRemove); + } + } + + private void AddComponents(EntityUid body, + EntityUid part, + ComponentRegistry reg, + OrganEffectComponent? effectComp = null) + { + if (!Resolve(part, ref effectComp, logMissing: false)) + return; + + foreach (var (key, comp) in reg) + { + var compType = comp.Component.GetType(); + if (HasComp(body, compType)) + continue; + + var newComp = (Component) _serManager.CreateCopy(comp.Component, notNullableOverride: true); + newComp.Owner = body; + EntityManager.AddComponent(body, newComp, true); + effectComp.Active[key] = comp; + if (newComp.NetSyncEnabled) + { + Dirty(body, newComp); + Dirty(part, effectComp); + } + } + } + + private void RemoveComponents(EntityUid body, + EntityUid part, + ComponentRegistry reg, + OrganEffectComponent? effectComp = null) + { + if (!Resolve(part, ref effectComp, logMissing: false)) + return; + + foreach (var (key, comp) in reg) + { + RemComp(body, comp.Component.GetType()); + effectComp.Active.Remove(key); + } + } +} diff --git a/Content.Shared/BodyEffects/Subsystems/GenerateChildPart/GenerateChildPartComponent.cs b/Content.Shared/BodyEffects/Subsystems/GenerateChildPart/GenerateChildPartComponent.cs new file mode 100644 index 00000000000..289c4c47492 --- /dev/null +++ b/Content.Shared/BodyEffects/Subsystems/GenerateChildPart/GenerateChildPartComponent.cs @@ -0,0 +1,18 @@ +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared.BodyEffects.Subsystems; + +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class GenerateChildPartComponent : Component +{ + + [DataField(required: true)] + public EntProtoId Id = ""; + + [DataField, AutoNetworkedField] + public EntityUid? ChildPart; + + [DataField] + public bool Destroyed = false; +} diff --git a/Content.Shared/BodyEffects/Subsystems/GenerateChildPart/GenerateChildPartSystem.cs b/Content.Shared/BodyEffects/Subsystems/GenerateChildPart/GenerateChildPartSystem.cs new file mode 100644 index 00000000000..74455802f96 --- /dev/null +++ b/Content.Shared/BodyEffects/Subsystems/GenerateChildPart/GenerateChildPartSystem.cs @@ -0,0 +1,65 @@ +using Content.Shared.Body.Part; +using Content.Shared.Body.Systems; +using Content.Shared.Body.Events; +using Robust.Shared.Map; +using Robust.Shared.Timing; +using Robust.Shared.Network; +using System.Numerics; + +namespace Content.Shared.BodyEffects.Subsystems; + +public sealed class GenerateChildPartSystem : EntitySystem +{ + [Dependency] private readonly SharedBodySystem _bodySystem = default!; + [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly INetManager _net = default!; + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnPartComponentsModify); + } + + private void OnPartComponentsModify(EntityUid uid, GenerateChildPartComponent component, ref BodyPartComponentsModifyEvent args) + { + if (args.Add) + CreatePart(uid, component); + //else + //DeletePart(uid, component); + } + + private void CreatePart(EntityUid uid, GenerateChildPartComponent component) + { + if (!TryComp(uid, out BodyPartComponent? partComp) + || partComp.Body is null) + return; + + if (_net.IsServer) + { + var childPart = Spawn(component.Id, new EntityCoordinates(partComp.Body.Value, Vector2.Zero)); + + if (!TryComp(childPart, out BodyPartComponent? childPartComp)) + return; + + var slotName = _bodySystem.GetSlotFromBodyPart(childPartComp); + _bodySystem.TryCreatePartSlot(uid, slotName, childPartComp.PartType, out var _); + _bodySystem.AttachPart(uid, slotName, childPart, partComp, childPartComp); + component.ChildPart = childPart; + Dirty(childPart, childPartComp); + } + + _bodySystem.ChangeSlotState((uid, partComp), false); + } + + private void DeletePart(EntityUid uid, GenerateChildPartComponent component) + { + if (!TryComp(uid, out BodyPartComponent? partComp)) + return; + + _bodySystem.ChangeSlotState((uid, partComp), true); + var ev = new BodyPartDroppedEvent((uid, partComp)); + RaiseLocalEvent(uid, ref ev); + QueueDel(uid); + } +} + diff --git a/Content.Shared/Buckle/Components/BuckleComponent.cs b/Content.Shared/Buckle/Components/BuckleComponent.cs index cf28b56d51f..55831515ede 100644 --- a/Content.Shared/Buckle/Components/BuckleComponent.cs +++ b/Content.Shared/Buckle/Components/BuckleComponent.cs @@ -1,10 +1,15 @@ +using System.Diagnostics.CodeAnalysis; using Content.Shared.Interaction; using Robust.Shared.GameStates; using Robust.Shared.Serialization; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Shared.Buckle.Components; -[RegisterComponent, NetworkedComponent, AutoGenerateComponentState(true)] +/// +/// This component allows an entity to be buckled to an entity with a . +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState, AutoGenerateComponentPause] [Access(typeof(SharedBuckleSystem))] public sealed partial class BuckleComponent : Component { @@ -14,31 +19,23 @@ public sealed partial class BuckleComponent : Component /// across a table two tiles away" problem. /// [DataField] - [ViewVariables(VVAccess.ReadWrite)] - public float Range = SharedInteractionSystem.InteractionRange / 1.4f; + public float Range = SharedInteractionSystem.InteractionRange; /// /// True if the entity is buckled, false otherwise. /// - [ViewVariables(VVAccess.ReadWrite)] - [AutoNetworkedField] - public bool Buckled; - - [ViewVariables] - [AutoNetworkedField] - public EntityUid? LastEntityBuckledTo; + [MemberNotNullWhen(true, nameof(BuckledTo))] + public bool Buckled => BuckledTo != null; /// /// Whether or not collisions should be possible with the entity we are strapped to /// - [ViewVariables(VVAccess.ReadWrite)] [DataField, AutoNetworkedField] public bool DontCollide; /// /// Whether or not we should be allowed to pull the entity we are strapped to /// - [ViewVariables(VVAccess.ReadWrite)] [DataField] public bool PullStrap; @@ -47,20 +44,18 @@ public sealed partial class BuckleComponent : Component /// be able to unbuckle after recently buckling. /// [DataField] - [ViewVariables(VVAccess.ReadWrite)] public TimeSpan Delay = TimeSpan.FromSeconds(0.25f); /// /// The time that this entity buckled at. /// - [ViewVariables] - public TimeSpan BuckleTime; + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoPausedField, AutoNetworkedField] + public TimeSpan? BuckleTime; /// /// The strap that this component is buckled to. /// - [ViewVariables] - [AutoNetworkedField] + [DataField, AutoNetworkedField] public EntityUid? BuckledTo; /// @@ -68,7 +63,6 @@ public sealed partial class BuckleComponent : Component /// . /// [DataField] - [ViewVariables(VVAccess.ReadWrite)] public int Size = 100; /// @@ -77,11 +71,81 @@ public sealed partial class BuckleComponent : Component [ViewVariables] public int? OriginalDrawDepth; } +/// +/// Event raised directed at a strap entity before some entity gets buckled to it. +/// +[ByRefEvent] +public record struct StrapAttemptEvent( + Entity Strap, + Entity Buckle, + EntityUid? User, + bool Popup) +{ + public bool Cancelled; +} + +/// +/// Event raised directed at a buckle entity before it gets buckled to some strap entity. +/// +[ByRefEvent] +public record struct BuckleAttemptEvent( + Entity Strap, + Entity Buckle, + EntityUid? User, + bool Popup) +{ + public bool Cancelled; +} + +/// +/// Event raised directed at a strap entity before some entity gets unbuckled from it. +/// +[ByRefEvent] +public record struct UnstrapAttemptEvent( + Entity Strap, + Entity Buckle, + EntityUid? User, + bool Popup) +{ + public bool Cancelled; +} + +/// +/// Event raised directed at a buckle entity before it gets unbuckled. +/// +[ByRefEvent] +public record struct UnbuckleAttemptEvent( + Entity Strap, + Entity Buckle, + EntityUid? User, + bool Popup) +{ + public bool Cancelled; +} + +/// +/// Event raised directed at a strap entity after something has been buckled to it. +/// +[ByRefEvent] +public readonly record struct StrappedEvent(Entity Strap, Entity Buckle); + +/// +/// Event raised directed at a buckle entity after it has been buckled. +/// +[ByRefEvent] +public readonly record struct BuckledEvent(Entity Strap, Entity Buckle); + +/// +/// Event raised directed at a strap entity after something has been unbuckled from it. +/// [ByRefEvent] -public record struct BuckleAttemptEvent(EntityUid StrapEntity, EntityUid BuckledEntity, EntityUid UserEntity, bool Buckling, bool Cancelled = false); +public readonly record struct UnstrappedEvent(Entity Strap, Entity Buckle); +/// +/// Event raised directed at a buckle entity after it has been unbuckled from some strap entity. +/// [ByRefEvent] -public readonly record struct BuckleChangeEvent(EntityUid StrapEntity, EntityUid BuckledEntity, bool Buckling); +public readonly record struct UnbuckledEvent(Entity Strap, Entity Buckle); [Serializable, NetSerializable] public enum BuckleVisuals diff --git a/Content.Shared/Buckle/Components/StrapComponent.cs b/Content.Shared/Buckle/Components/StrapComponent.cs index 72c92ebf84b..79dc686c7d8 100644 --- a/Content.Shared/Buckle/Components/StrapComponent.cs +++ b/Content.Shared/Buckle/Components/StrapComponent.cs @@ -3,6 +3,7 @@ using Content.Shared.Whitelist; using Robust.Shared.Audio; using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; using Robust.Shared.Serialization; namespace Content.Shared.Buckle.Components; @@ -12,117 +13,77 @@ namespace Content.Shared.Buckle.Components; public sealed partial class StrapComponent : Component { /// - /// The entities that are currently buckled + /// The entities that are currently buckled to this strap. /// - [AutoNetworkedField] - [ViewVariables] // TODO serialization + [ViewVariables, AutoNetworkedField] public HashSet BuckledEntities = new(); /// /// Entities that this strap accepts and can buckle /// If null it accepts any entity /// - [DataField, ViewVariables(VVAccess.ReadWrite)] + [DataField] public EntityWhitelist? Whitelist; /// /// Entities that this strap does not accept and cannot buckle. /// - [DataField, ViewVariables(VVAccess.ReadWrite)] + [DataField] public EntityWhitelist? Blacklist; /// /// The change in position to the strapped mob /// [DataField, AutoNetworkedField] - [ViewVariables(VVAccess.ReadWrite)] public StrapPosition Position = StrapPosition.None; - /// - /// The distance above which a buckled entity will be automatically unbuckled. - /// Don't change it unless you really have to - /// - /// - /// Dont set this below 0.2 because that causes audio issues with - /// My guess after testing is that the client sets BuckledTo to the strap in *some* ticks for some reason - /// whereas the server doesnt, thus the client tries to unbuckle like 15 times because it passes the strap null check - /// This is why this needs to be above 0.1 to make the InRange check fail in both client and server. - /// - [DataField, AutoNetworkedField] - [ViewVariables(VVAccess.ReadWrite)] - public float MaxBuckleDistance = 0.2f; - - /// - /// Gets and clamps the buckle offset to MaxBuckleDistance - /// - [ViewVariables] - public Vector2 BuckleOffsetClamped => Vector2.Clamp( - BuckleOffset, - Vector2.One * -MaxBuckleDistance, - Vector2.One * MaxBuckleDistance); - /// /// The buckled entity will be offset by this amount from the center of the strap object. - /// If this offset it too big, it will be clamped to /// [DataField, AutoNetworkedField] - [ViewVariables(VVAccess.ReadWrite)] public Vector2 BuckleOffset = Vector2.Zero; /// /// The angle to rotate the player by when they get strapped /// [DataField] - [ViewVariables(VVAccess.ReadWrite)] public Angle Rotation; /// /// The size of the strap which is compared against when buckling entities /// [DataField] - [ViewVariables(VVAccess.ReadWrite)] public int Size = 100; /// /// If disabled, nothing can be buckled on this object, and it will unbuckle anything that's already buckled /// - [ViewVariables] + [DataField, AutoNetworkedField] public bool Enabled = true; - /// - /// You can specify the offset the entity will have after unbuckling. - /// - [DataField] - [ViewVariables(VVAccess.ReadWrite)] - public Vector2 UnbuckleOffset = Vector2.Zero; - /// /// The sound to be played when a mob is buckled /// [DataField] - [ViewVariables(VVAccess.ReadWrite)] public SoundSpecifier BuckleSound = new SoundPathSpecifier("/Audio/Effects/buckle.ogg"); /// /// The sound to be played when a mob is unbuckled /// [DataField] - [ViewVariables(VVAccess.ReadWrite)] public SoundSpecifier UnbuckleSound = new SoundPathSpecifier("/Audio/Effects/unbuckle.ogg"); /// /// ID of the alert to show when buckled /// [DataField] - [ViewVariables(VVAccess.ReadWrite)] - public AlertType BuckledAlertType = AlertType.Buckled; + public ProtoId BuckledAlertType = "Buckled"; /// - /// The sum of the sizes of all the buckled entities in this strap + /// Whether InteractHand will buckle the user to the strap. /// - [AutoNetworkedField] - [ViewVariables] - public int OccupiedSize; + [DataField] + public bool BuckleOnInteractHand = true; } public enum StrapPosition diff --git a/Content.Shared/Buckle/SharedBuckleSystem.Buckle.cs b/Content.Shared/Buckle/SharedBuckleSystem.Buckle.cs index c07d90b3a2b..59241499a11 100644 --- a/Content.Shared/Buckle/SharedBuckleSystem.Buckle.cs +++ b/Content.Shared/Buckle/SharedBuckleSystem.Buckle.cs @@ -1,36 +1,49 @@ using System.Diagnostics.CodeAnalysis; using System.Numerics; using Content.Shared.Alert; -using Content.Shared.Bed.Sleep; using Content.Shared.Buckle.Components; +using Content.Shared.Cuffs.Components; using Content.Shared.Database; +using Content.Shared.DoAfter; using Content.Shared.Hands.Components; using Content.Shared.IdentityManagement; -using Content.Shared.Interaction; -using Content.Shared.Mobs.Components; using Content.Shared.Movement.Events; +using Content.Shared.Movement.Pulling.Events; using Content.Shared.Popups; +using Content.Shared.Pulling.Events; +using Content.Shared.Rotation; using Content.Shared.Standing; using Content.Shared.Storage.Components; using Content.Shared.Stunnable; using Content.Shared.Throwing; -using Content.Shared.Verbs; +using Content.Shared.Whitelist; +using Robust.Shared.Containers; +using Robust.Shared.GameStates; +using Robust.Shared.Map; using Robust.Shared.Physics.Components; using Robust.Shared.Physics.Events; +using Robust.Shared.Prototypes; using Robust.Shared.Utility; -using PullableComponent = Content.Shared.Movement.Pulling.Components.PullableComponent; namespace Content.Shared.Buckle; public abstract partial class SharedBuckleSystem { + public static ProtoId BuckledAlertCategory = "Buckled"; + + [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; + private void InitializeBuckle() { - SubscribeLocalEvent(OnBuckleComponentStartup); SubscribeLocalEvent(OnBuckleComponentShutdown); SubscribeLocalEvent(OnBuckleMove); - SubscribeLocalEvent(OnBuckleInteractHand); - SubscribeLocalEvent>(AddUnbuckleVerb); + SubscribeLocalEvent(OnParentChanged); + SubscribeLocalEvent(OnInserted); + + SubscribeLocalEvent(OnPullAttempt); + SubscribeLocalEvent(OnBeingPulledAttempt); + SubscribeLocalEvent(OnPullStarted); + SubscribeLocalEvent(OnBuckleInsertIntoEntityStorageAttempt); SubscribeLocalEvent(OnBucklePreventCollide); @@ -40,64 +53,82 @@ private void InitializeBuckle() SubscribeLocalEvent(OnBuckleUpdateCanMove); } - private void OnBuckleComponentStartup(EntityUid uid, BuckleComponent component, ComponentStartup args) + private void OnBuckleComponentShutdown(Entity ent, ref ComponentShutdown args) + => Unbuckle(ent!, null); + + #region Pulling + + private void OnPullAttempt(Entity ent, ref StartPullAttemptEvent args) { - UpdateBuckleStatus(uid, component); + // Prevent people pulling the chair they're on, etc. + if (ent.Comp.BuckledTo == args.Pulled && !ent.Comp.PullStrap) + args.Cancel(); } - private void OnBuckleComponentShutdown(EntityUid uid, BuckleComponent component, ComponentShutdown args) + private void OnBeingPulledAttempt(Entity ent, ref BeingPulledAttemptEvent args) { - TryUnbuckle(uid, uid, true, component); + if (args.Cancelled || !ent.Comp.Buckled) + return; - component.BuckleTime = default; + if (!CanUnbuckle(ent!, args.Puller, false)) + args.Cancel(); } - private void OnBuckleMove(EntityUid uid, BuckleComponent component, ref MoveEvent ev) + private void OnPullStarted(Entity ent, ref PullStartedMessage args) { - if (component.BuckledTo is not {} strapUid) - return; + Unbuckle(ent!, args.PullerUid); + } - if (!TryComp(strapUid, out var strapComp)) - return; + #endregion - var strapPosition = Transform(strapUid).Coordinates; - if (ev.NewPosition.EntityId.IsValid() && ev.NewPosition.InRange(EntityManager, _transform, strapPosition, strapComp.MaxBuckleDistance)) - return; + #region Transform - TryUnbuckle(uid, uid, true, component); + private void OnParentChanged(Entity ent, ref EntParentChangedMessage args) + { + BuckleTransformCheck(ent, args.Transform); } - private void OnBuckleInteractHand(EntityUid uid, BuckleComponent component, InteractHandEvent args) + private void OnInserted(Entity ent, ref EntGotInsertedIntoContainerMessage args) { - if (!component.Buckled) - return; + BuckleTransformCheck(ent, Transform(ent)); + } - if (TryUnbuckle(uid, args.User, buckleComp: component)) - args.Handled = true; + private void OnBuckleMove(Entity ent, ref MoveEvent ev) + { + BuckleTransformCheck(ent, ev.Component); } - private void AddUnbuckleVerb(EntityUid uid, BuckleComponent component, GetVerbsEvent args) + /// + /// Check if the entity should get unbuckled as a result of transform or container changes. + /// + private void BuckleTransformCheck(Entity buckle, TransformComponent xform) { - if (!args.CanAccess || !args.CanInteract || !component.Buckled) + if (_gameTiming.ApplyingState) return; - InteractionVerb verb = new() + if (buckle.Comp.BuckledTo is not { } strapUid) + return; + + if (!TryComp(strapUid, out var strapComp)) { - Act = () => TryUnbuckle(uid, args.User, buckleComp: component), - Text = Loc.GetString("verb-categories-unbuckle"), - Icon = new SpriteSpecifier.Texture(new ("/Textures/Interface/VerbIcons/unbuckle.svg.192dpi.png")) - }; + Log.Error($"Encountered buckle entity {ToPrettyString(buckle)} without a valid strap entity {ToPrettyString(strapUid)}"); + SetBuckledTo(buckle, null); + return; + } - if (args.Target == args.User && args.Using == null) + if (xform.ParentUid != strapUid || _container.IsEntityInContainer(buckle)) { - // A user is left clicking themselves with an empty hand, while buckled. - // It is very likely they are trying to unbuckle themselves. - verb.Priority = 1; + Unbuckle(buckle, (strapUid, strapComp), null); + return; } - args.Verbs.Add(verb); + var delta = (xform.LocalPosition - strapComp.BuckleOffset).LengthSquared(); + if (delta > 1e-5) + Unbuckle(buckle, (strapUid, strapComp), null); } + #endregion + private void OnBuckleInsertIntoEntityStorageAttempt(EntityUid uid, BuckleComponent component, ref InsertIntoEntityStorageAttemptEvent args) { if (component.Buckled) @@ -106,10 +137,7 @@ private void OnBuckleInsertIntoEntityStorageAttempt(EntityUid uid, BuckleCompone private void OnBucklePreventCollide(EntityUid uid, BuckleComponent component, ref PreventCollideEvent args) { - if (args.OtherEntity != component.BuckledTo) - return; - - if (component.Buckled || component.DontCollide) + if (args.OtherEntity == component.BuckledTo && component.DontCollide) args.Cancelled = true; } @@ -133,10 +161,7 @@ private void OnBuckleThrowPushbackAttempt(EntityUid uid, BuckleComponent compone private void OnBuckleUpdateCanMove(EntityUid uid, BuckleComponent component, UpdateCanMoveEvent args) { - if (component.LifeStage > ComponentLifeStage.Running) - return; - - if (component.Buckled) // buckle shitcode + if (component.Buckled) args.Cancel(); } @@ -145,162 +170,146 @@ public bool IsBuckled(EntityUid uid, BuckleComponent? component = null) return Resolve(uid, ref component, false) && component.Buckled; } - /// - /// Shows or hides the buckled status effect depending on if the - /// entity is buckled or not. - /// - /// Entity that we want to show the alert - /// buckle component of the entity - /// strap component of the thing we are strapping to - private void UpdateBuckleStatus(EntityUid uid, BuckleComponent buckleComp, StrapComponent? strapComp = null) + protected void SetBuckledTo(Entity buckle, Entity? strap) { - Appearance.SetData(uid, StrapVisuals.State, buckleComp.Buckled); - if (buckleComp.BuckledTo != null) + if (TryComp(buckle.Comp.BuckledTo, out StrapComponent? old)) { - if (!Resolve(buckleComp.BuckledTo.Value, ref strapComp)) - return; - - var alertType = strapComp.BuckledAlertType; - _alerts.ShowAlert(uid, alertType); + old.BuckledEntities.Remove(buckle); + Dirty(buckle.Comp.BuckledTo.Value, old); } - else - { - _alerts.ClearAlertCategory(uid, AlertCategory.Buckled); - } - } - /// - /// Sets the field in the component to a value - /// - /// Value tat with be assigned to the field - private void SetBuckledTo(EntityUid buckleUid, EntityUid? strapUid, StrapComponent? strapComp, BuckleComponent buckleComp) - { - buckleComp.BuckledTo = strapUid; - - if (strapUid == null) + if (strap is {} strapEnt && Resolve(strapEnt.Owner, ref strapEnt.Comp)) { - buckleComp.Buckled = false; + strapEnt.Comp.BuckledEntities.Add(buckle); + Dirty(strapEnt); + _alerts.ShowAlert(buckle, strapEnt.Comp.BuckledAlertType); } else { - buckleComp.LastEntityBuckledTo = strapUid; - buckleComp.DontCollide = true; - buckleComp.Buckled = true; - buckleComp.BuckleTime = _gameTiming.CurTime; + _alerts.ClearAlertCategory(buckle, BuckledAlertCategory); } - ActionBlocker.UpdateCanMove(buckleUid); - UpdateBuckleStatus(buckleUid, buckleComp, strapComp); - Dirty(buckleComp); + buckle.Comp.BuckledTo = strap; + buckle.Comp.BuckleTime = _gameTiming.CurTime; + ActionBlocker.UpdateCanMove(buckle); + Appearance.SetData(buckle, StrapVisuals.State, buckle.Comp.Buckled); + Dirty(buckle); } /// /// Checks whether or not buckling is possible /// /// Uid of the owner of BuckleComponent - /// - /// Uid of a third party entity, - /// i.e, the uid of someone else you are dragging to a chair. - /// Can equal buckleUid sometimes + /// + /// Uid of a third party entity, + /// i.e, the uid of someone else you are dragging to a chair. + /// Can equal buckleUid sometimes /// /// Uid of the owner of strap component - private bool CanBuckle( - EntityUid buckleUid, - EntityUid userUid, + /// + /// + private bool CanBuckle(EntityUid buckleUid, + EntityUid? user, EntityUid strapUid, + bool popup, [NotNullWhen(true)] out StrapComponent? strapComp, - BuckleComponent? buckleComp = null) + BuckleComponent buckleComp) { strapComp = null; - - if (userUid == strapUid || - !Resolve(buckleUid, ref buckleComp, false) || - !Resolve(strapUid, ref strapComp, false)) - { + if (!Resolve(strapUid, ref strapComp, false)) return false; - } // Does it pass the Whitelist if (strapComp.Whitelist != null && - !strapComp.Whitelist.IsValid(buckleUid, EntityManager) || strapComp.Blacklist?.IsValid(buckleUid, EntityManager) == true) + !_whitelistSystem.IsValid(strapComp.Whitelist, buckleUid) || strapComp.Blacklist != null && _whitelistSystem.IsValid(strapComp.Blacklist, buckleUid)) { - if (_netManager.IsServer) - _popup.PopupEntity(Loc.GetString("buckle-component-cannot-fit-message"), userUid, buckleUid, PopupType.Medium); + if (popup) + _popup.PopupClient(Loc.GetString("buckle-component-cannot-fit-message"), user, PopupType.Medium); + return false; } - // Is it within range - bool Ignored(EntityUid entity) => entity == buckleUid || entity == userUid || entity == strapUid; - - if (!_interaction.InRangeUnobstructed(buckleUid, strapUid, buckleComp.Range, predicate: Ignored, + if (!_interaction.InRangeUnobstructed(buckleUid, + strapUid, + buckleComp.Range, + predicate: entity => entity == buckleUid || entity == user || entity == strapUid, popup: true)) { return false; } - // If in a container - if (_container.TryGetContainingContainer(buckleUid, out var ownerContainer)) - { - // And not in the same container as the strap - if (!_container.TryGetContainingContainer(strapUid, out var strapContainer) || - ownerContainer != strapContainer) - { - return false; - } - } + if (!_container.IsInSameOrNoContainer((buckleUid, null, null), (strapUid, null, null))) + return false; - if (!HasComp(userUid)) + if (user != null && !HasComp(user)) { - // PopupPredicted when - if (_netManager.IsServer) - _popup.PopupEntity(Loc.GetString("buckle-component-no-hands-message"), userUid, userUid); + if (popup) + _popup.PopupClient(Loc.GetString("buckle-component-no-hands-message"), user); + return false; } - if (buckleComp.Buckled) + if (buckleComp.Buckled && !TryUnbuckle(buckleUid, user, buckleComp)) { - var message = Loc.GetString(buckleUid == userUid + if (popup) + { + var message = Loc.GetString(buckleUid == user ? "buckle-component-already-buckled-message" : "buckle-component-other-already-buckled-message", ("owner", Identity.Entity(buckleUid, EntityManager))); - if (_netManager.IsServer) - _popup.PopupEntity(message, userUid, userUid); + + _popup.PopupClient(message, user); + } return false; } + // Check whether someone is attempting to buckle something to their own child var parent = Transform(strapUid).ParentUid; while (parent.IsValid()) { - if (parent == userUid) + if (parent != buckleUid) + { + parent = Transform(parent).ParentUid; + continue; + } + + if (popup) { - var message = Loc.GetString(buckleUid == userUid + var message = Loc.GetString(buckleUid == user ? "buckle-component-cannot-buckle-message" - : "buckle-component-other-cannot-buckle-message", ("owner", Identity.Entity(buckleUid, EntityManager))); - if (_netManager.IsServer) - _popup.PopupEntity(message, userUid, userUid); + : "buckle-component-other-cannot-buckle-message", + ("owner", Identity.Entity(buckleUid, EntityManager))); - return false; + _popup.PopupClient(message, user); } - parent = Transform(parent).ParentUid; + return false; } if (!StrapHasSpace(strapUid, buckleComp, strapComp)) { - var message = Loc.GetString(buckleUid == userUid - ? "buckle-component-cannot-fit-message" - : "buckle-component-other-cannot-fit-message", ("owner", Identity.Entity(buckleUid, EntityManager))); - if (_netManager.IsServer) - _popup.PopupEntity(message, userUid, userUid); + if (popup) + { + var message = Loc.GetString(buckleUid == user + ? "buckle-component-cannot-buckle-message" + : "buckle-component-other-cannot-buckle-message", + ("owner", Identity.Entity(buckleUid, EntityManager))); + + _popup.PopupClient(message, user); + } return false; } - var attemptEvent = new BuckleAttemptEvent(strapUid, buckleUid, userUid, true); - RaiseLocalEvent(attemptEvent.BuckledEntity, ref attemptEvent); - RaiseLocalEvent(attemptEvent.StrapEntity, ref attemptEvent); - if (attemptEvent.Cancelled) + var buckleAttempt = new BuckleAttemptEvent((strapUid, strapComp), (buckleUid, buckleComp), user, popup); + RaiseLocalEvent(buckleUid, ref buckleAttempt); + if (buckleAttempt.Cancelled) + return false; + + var strapAttempt = new StrapAttemptEvent((strapUid, strapComp), (buckleUid, buckleComp), user, popup); + RaiseLocalEvent(strapUid, ref strapAttempt); + if (strapAttempt.Cancelled) return false; return true; @@ -309,217 +318,198 @@ private bool CanBuckle( /// /// Attempts to buckle an entity to a strap /// - /// Uid of the owner of BuckleComponent - /// + /// Uid of the owner of BuckleComponent + /// /// Uid of a third party entity, /// i.e, the uid of someone else you are dragging to a chair. /// Can equal buckleUid sometimes /// - /// Uid of the owner of strap component - public bool TryBuckle(EntityUid buckleUid, EntityUid userUid, EntityUid strapUid, BuckleComponent? buckleComp = null) + /// Uid of the owner of strap component + public bool TryBuckle(EntityUid buckle, EntityUid? user, EntityUid strap, BuckleComponent? buckleComp = null, bool popup = true) { - if (!Resolve(buckleUid, ref buckleComp, false)) + if (!Resolve(buckle, ref buckleComp, false)) return false; - if (!CanBuckle(buckleUid, userUid, strapUid, out var strapComp, buckleComp)) + if (!CanBuckle(buckle, user, strap, popup, out var strapComp, buckleComp)) return false; - if (!StrapTryAdd(strapUid, buckleUid, buckleComp, false, strapComp)) - { - var message = Loc.GetString(buckleUid == userUid - ? "buckle-component-cannot-buckle-message" - : "buckle-component-other-cannot-buckle-message", ("owner", Identity.Entity(buckleUid, EntityManager))); - if (_netManager.IsServer) - _popup.PopupEntity(message, userUid, userUid); - return false; - } + Buckle((buckle, buckleComp), (strap, strapComp), user); + return true; + } - if (TryComp(buckleUid, out var appearance)) - Appearance.SetData(buckleUid, BuckleVisuals.Buckled, true, appearance); + private void Buckle(Entity buckle, Entity strap, EntityUid? user) + { + if (user == buckle.Owner) + _adminLogger.Add(LogType.Action, LogImpact.Low, $"{ToPrettyString(user):player} buckled themselves to {ToPrettyString(strap)}"); + else if (user != null) + _adminLogger.Add(LogType.Action, LogImpact.Low, $"{ToPrettyString(user):player} buckled {ToPrettyString(buckle)} to {ToPrettyString(strap)}"); - _rotationVisuals.SetHorizontalAngle(buckleUid, strapComp.Rotation); + _audio.PlayPredicted(strap.Comp.BuckleSound, strap, user); - ReAttach(buckleUid, strapUid, buckleComp, strapComp); - SetBuckledTo(buckleUid, strapUid, strapComp, buckleComp); - // TODO user is currently set to null because if it isn't the sound fails to play in some situations, fix that - _audio.PlayPredicted(strapComp.BuckleSound, strapUid, userUid); + SetBuckledTo(buckle, strap!); + Appearance.SetData(strap, StrapVisuals.State, true); + Appearance.SetData(buckle, BuckleVisuals.Buckled, true); + _rotationVisuals.SetHorizontalAngle(buckle.Owner, strap.Comp.Rotation); - var ev = new BuckleChangeEvent(strapUid, buckleUid, true); - RaiseLocalEvent(ev.BuckledEntity, ref ev); - RaiseLocalEvent(ev.StrapEntity, ref ev); + var xform = Transform(buckle); + var coords = new EntityCoordinates(strap, strap.Comp.BuckleOffset); - if (TryComp(buckleUid, out var ownerPullable)) - { - if (ownerPullable.Puller != null) - { - _pulling.TryStopPull(buckleUid, ownerPullable); - } - } + _transform.SetCoordinates(buckle, xform, coords, rotation: Angle.Zero); + _joints.SetRelay(buckle, strap); - if (TryComp(buckleUid, out var physics)) + switch (strap.Comp.Position) { - _physics.ResetDynamics(buckleUid, physics); + case StrapPosition.Stand: + _standing.Stand(buckle); + break; + case StrapPosition.Down: + _standing.Down(buckle, false, false); + break; } - if (!buckleComp.PullStrap && TryComp(strapUid, out var toPullable)) - { - if (toPullable.Puller == buckleUid) - { - // can't pull it and buckle to it at the same time - _pulling.TryStopPull(strapUid, toPullable); - } - } + var ev = new StrappedEvent(strap, buckle); + RaiseLocalEvent(strap, ref ev); - // Logging - if (userUid != buckleUid) - _adminLogger.Add(LogType.Action, LogImpact.Low, $"{ToPrettyString(userUid):player} buckled {ToPrettyString(buckleUid)} to {ToPrettyString(strapUid)}"); - else - _adminLogger.Add(LogType.Action, LogImpact.Low, $"{ToPrettyString(userUid):player} buckled themselves to {ToPrettyString(strapUid)}"); + var gotEv = new BuckledEvent(strap, buckle); + RaiseLocalEvent(buckle, ref gotEv); - return true; + if (TryComp(buckle, out var physics)) + _physics.ResetDynamics(buckle, physics); + + DebugTools.AssertEqual(xform.ParentUid, strap.Owner); } /// /// Tries to unbuckle the Owner of this component from its current strap. /// /// The entity to unbuckle. - /// The entity doing the unbuckling. - /// - /// Whether to force the unbuckling or not. Does not guarantee true to - /// be returned, but guarantees the owner to be unbuckled afterwards. - /// + /// The entity doing the unbuckling. /// The buckle component of the entity to unbuckle. /// /// true if the owner was unbuckled, otherwise false even if the owner /// was previously already unbuckled. /// - public bool TryUnbuckle(EntityUid buckleUid, EntityUid userUid, bool force = false, BuckleComponent? buckleComp = null) + public bool TryUnbuckle(EntityUid buckleUid, + EntityUid? user, + BuckleComponent? buckleComp = null, + bool popup = true) { - if (!Resolve(buckleUid, ref buckleComp, false) || - buckleComp.BuckledTo is not { } strapUid) + return TryUnbuckle((buckleUid, buckleComp), user, popup); + } + + public bool TryUnbuckle(Entity buckle, EntityUid? user, bool popup) + { + if (!Resolve(buckle.Owner, ref buckle.Comp)) return false; - if (!force) - { - var attemptEvent = new BuckleAttemptEvent(strapUid, buckleUid, userUid, false); - RaiseLocalEvent(attemptEvent.BuckledEntity, ref attemptEvent); - RaiseLocalEvent(attemptEvent.StrapEntity, ref attemptEvent); - if (attemptEvent.Cancelled) - return false; + if (!CanUnbuckle(buckle, user, popup, out var strap)) + return false; - if (_gameTiming.CurTime < buckleComp.BuckleTime + buckleComp.Delay) - return false; + Unbuckle(buckle!, strap, user); + return true; + } - if (!_interaction.InRangeUnobstructed(userUid, strapUid, buckleComp.Range, popup: true)) - return false; + public void Unbuckle(Entity buckle, EntityUid? user) + { + if (!Resolve(buckle.Owner, ref buckle.Comp, false)) + return; - if (HasComp(buckleUid) && buckleUid == userUid) - return false; + if (buckle.Comp.BuckledTo is not { } strap) + return; - // If the person is crit or dead in any kind of strap, return. This prevents people from unbuckling themselves while incapacitated. - if (_mobState.IsIncapacitated(buckleUid) && userUid == buckleUid) - return false; + if (!TryComp(strap, out StrapComponent? strapComp)) + { + Log.Error($"Encountered buckle {ToPrettyString(buckle.Owner)} with invalid strap entity {ToPrettyString(strap)}"); + SetBuckledTo(buckle!, null); + return; } - // Logging - if (userUid != buckleUid) - _adminLogger.Add(LogType.Action, LogImpact.Low, $"{ToPrettyString(userUid):player} unbuckled {ToPrettyString(buckleUid)} from {ToPrettyString(strapUid)}"); - else - _adminLogger.Add(LogType.Action, LogImpact.Low, $"{ToPrettyString(userUid):player} unbuckled themselves from {ToPrettyString(strapUid)}"); + Unbuckle(buckle!, (strap, strapComp), user); + } - SetBuckledTo(buckleUid, null, null, buckleComp); + private void Unbuckle(Entity buckle, Entity strap, EntityUid? user) + { + if (user == buckle.Owner) + _adminLogger.Add(LogType.Action, LogImpact.Low, $"{user} unbuckled themselves from {strap}"); + else if (user != null) + _adminLogger.Add(LogType.Action, LogImpact.Low, $"{user} unbuckled {buckle} from {strap}"); - if (!TryComp(strapUid, out var strapComp)) - return false; + _audio.PlayPredicted(strap.Comp.UnbuckleSound, strap, user); + + SetBuckledTo(buckle, null); - var buckleXform = Transform(buckleUid); - var oldBuckledXform = Transform(strapUid); + var buckleXform = Transform(buckle); + var oldBuckledXform = Transform(strap); - if (buckleXform.ParentUid == strapUid && !Terminating(buckleXform.ParentUid)) + if (buckleXform.ParentUid == strap.Owner && !Terminating(buckleXform.ParentUid)) { - _container.AttachParentToContainerOrGrid((buckleUid, buckleXform)); + _transform.PlaceNextTo((buckle, buckleXform), (strap.Owner, oldBuckledXform)); + buckleXform.ActivelyLerping = false; - var oldBuckledToWorldRot = _transform.GetWorldRotation(strapUid); - _transform.SetWorldRotation(buckleXform, oldBuckledToWorldRot); + var oldBuckledToWorldRot = _transform.GetWorldRotation(strap); + _transform.SetWorldRotationNoLerp((buckle, buckleXform), oldBuckledToWorldRot); - if (strapComp.UnbuckleOffset != Vector2.Zero) - buckleXform.Coordinates = oldBuckledXform.Coordinates.Offset(strapComp.UnbuckleOffset); + // TODO: This is doing 4 moveevents this is why I left the warning in, if you're going to remove it make it only do 1 moveevent. + if (strap.Comp.BuckleOffset != Vector2.Zero) + { + buckleXform.Coordinates = oldBuckledXform.Coordinates.Offset(strap.Comp.BuckleOffset); + } } - if (TryComp(buckleUid, out AppearanceComponent? appearance)) - Appearance.SetData(buckleUid, BuckleVisuals.Buckled, false, appearance); - _rotationVisuals.ResetHorizontalAngle(buckleUid); + _rotationVisuals.ResetHorizontalAngle(buckle.Owner); + Appearance.SetData(strap, StrapVisuals.State, strap.Comp.BuckledEntities.Count != 0); + Appearance.SetData(buckle, BuckleVisuals.Buckled, false); - if (TryComp(buckleUid, out var mobState) - && _mobState.IsIncapacitated(buckleUid, mobState) - || HasComp(buckleUid)) - { - _standing.Down(buckleUid); - } + if (HasComp(buckle) || _mobState.IsIncapacitated(buckle)) + _standing.Down(buckle, playSound: false); else - { - _standing.Stand(buckleUid); - } + _standing.Stand(buckle); - if (_mobState.IsIncapacitated(buckleUid, mobState)) - { - _standing.Down(buckleUid); - } - if (strapComp.BuckledEntities.Remove(buckleUid)) - { - strapComp.OccupiedSize -= buckleComp.Size; - //Dirty(strapUid); - Dirty(strapComp); - } - - _joints.RefreshRelay(buckleUid); - Appearance.SetData(strapUid, StrapVisuals.State, strapComp.BuckledEntities.Count != 0); + _joints.RefreshRelay(buckle); - // TODO: Buckle listening to moveevents is sussy anyway. - if (!TerminatingOrDeleted(strapUid)) - _audio.PlayPredicted(strapComp.UnbuckleSound, strapUid, userUid); + var buckleEv = new UnbuckledEvent(strap, buckle); + RaiseLocalEvent(buckle, ref buckleEv); - var ev = new BuckleChangeEvent(strapUid, buckleUid, false); - RaiseLocalEvent(buckleUid, ref ev); - RaiseLocalEvent(strapUid, ref ev); + var strapEv = new UnstrappedEvent(strap, buckle); + RaiseLocalEvent(strap, ref strapEv); + } - return true; + public bool CanUnbuckle(Entity buckle, EntityUid user, bool popup) + { + return CanUnbuckle(buckle, user, popup, out _); } - /// - /// Makes an entity toggle the buckling status of the owner to a - /// specific entity. - /// - /// The entity to buckle/unbuckle from . - /// The entity doing the buckling/unbuckling. - /// - /// The entity to toggle the buckle status of the owner to. - /// - /// - /// Whether to force the unbuckling or not, if it happens. Does not - /// guarantee true to be returned, but guarantees the owner to be - /// unbuckled afterwards. - /// - /// The buckle component of the entity to buckle/unbuckle from . - /// true if the buckling status was changed, false otherwise. - public bool ToggleBuckle( - EntityUid buckleUid, - EntityUid userUid, - EntityUid strapUid, - bool force = false, - BuckleComponent? buckle = null) + private bool CanUnbuckle(Entity buckle, EntityUid? user, bool popup, out Entity strap) { - if (!Resolve(buckleUid, ref buckle, false)) + strap = default; + if (!Resolve(buckle.Owner, ref buckle.Comp)) return false; - if (!buckle.Buckled) - { - return TryBuckle(buckleUid, userUid, strapUid, buckle); - } - else + if (buckle.Comp.BuckledTo is not { } strapUid) + return false; + + if (!TryComp(strapUid, out StrapComponent? strapComp)) { - return TryUnbuckle(buckleUid, userUid, force, buckle); + Log.Error($"Encountered buckle {ToPrettyString(buckle.Owner)} with invalid strap entity {ToPrettyString(strap)}"); + SetBuckledTo(buckle!, null); + return false; } + strap = (strapUid, strapComp); + if (_gameTiming.CurTime < buckle.Comp.BuckleTime + buckle.Comp.Delay) + return false; + + if (user != null && !_interaction.InRangeUnobstructed(user.Value, strap.Owner, buckle.Comp.Range, popup: popup)) + return false; + + var unbuckleAttempt = new UnbuckleAttemptEvent(strap, buckle!, user, popup); + RaiseLocalEvent(buckle, ref unbuckleAttempt); + if (unbuckleAttempt.Cancelled) + return false; + + var unstrapAttempt = new UnstrapAttemptEvent(strap, buckle!, user, popup); + RaiseLocalEvent(strap, ref unstrapAttempt); + return !unstrapAttempt.Cancelled; } -} + +} \ No newline at end of file diff --git a/Content.Shared/Buckle/SharedBuckleSystem.Interaction.cs b/Content.Shared/Buckle/SharedBuckleSystem.Interaction.cs new file mode 100644 index 00000000000..ffd1680f975 --- /dev/null +++ b/Content.Shared/Buckle/SharedBuckleSystem.Interaction.cs @@ -0,0 +1,200 @@ +using System.Linq; +using Content.Shared.Buckle.Components; +using Content.Shared.DoAfter; +using Content.Shared.DragDrop; +using Content.Shared.IdentityManagement; +using Content.Shared.Interaction; +using Content.Shared.Verbs; +using Robust.Shared.Utility; + +namespace Content.Shared.Buckle; + +// Partial class containing interaction & verb event handlers +public abstract partial class SharedBuckleSystem +{ + private void InitializeInteraction() + { + SubscribeLocalEvent>(AddStrapVerbs); + SubscribeLocalEvent(OnStrapInteractHand); + SubscribeLocalEvent(OnStrapDragDropTarget); + SubscribeLocalEvent(OnCanDropTarget); + + SubscribeLocalEvent(OnBuckleInteractHand); + SubscribeLocalEvent>(AddUnbuckleVerb); + } + + private void OnCanDropTarget(EntityUid uid, StrapComponent component, ref CanDropTargetEvent args) + { + args.CanDrop = StrapCanDragDropOn(uid, args.User, uid, args.Dragged, component); + args.Handled = true; + } + + private void OnStrapDragDropTarget(EntityUid uid, StrapComponent component, ref DragDropTargetEvent args) + { + if (!StrapCanDragDropOn(uid, args.User, uid, args.Dragged, component)) + return; + + args.Handled = TryBuckle(args.Dragged, args.User, uid, popup: false); + } + + private bool StrapCanDragDropOn( + EntityUid strapUid, + EntityUid userUid, + EntityUid targetUid, + EntityUid buckleUid, + StrapComponent? strapComp = null, + BuckleComponent? buckleComp = null) + { + if (!Resolve(strapUid, ref strapComp, false) || + !Resolve(buckleUid, ref buckleComp, false)) + { + return false; + } + + bool Ignored(EntityUid entity) => entity == userUid || entity == buckleUid || entity == targetUid; + + return _interaction.InRangeUnobstructed(targetUid, buckleUid, buckleComp.Range, predicate: Ignored); + } + + private void OnStrapInteractHand(EntityUid uid, StrapComponent component, InteractHandEvent args) + { + if (args.Handled) + return; + + if (!TryComp(args.User, out BuckleComponent? buckle)) + return; + + // Buckle self + if (buckle.BuckledTo == null && component.BuckleOnInteractHand && StrapHasSpace(uid, buckle, component)) + { + TryBuckle(args.User, args.User, uid, buckle, popup: true); + args.Handled = true; + return; + } + + // Unbuckle self + if (buckle.BuckledTo == uid && TryUnbuckle(args.User, args.User, buckle, popup: true)) + { + args.Handled = true; + return; + } + + // Unbuckle others + if (component.BuckledEntities.TryFirstOrNull(out var buckled) && TryUnbuckle(buckled.Value, args.User)) + { + args.Handled = true; + return; + } + + // TODO BUCKLE add out bool for whether a pop-up was generated or not. + } + + private void OnBuckleInteractHand(Entity ent, ref InteractHandEvent args) + { + if (args.Handled) + return; + + if (ent.Comp.BuckledTo != null) + args.Handled = TryUnbuckle(ent!, args.User, popup: true); + + // TODO BUCKLE add out bool for whether a pop-up was generated or not. + } + + private void AddStrapVerbs(EntityUid uid, StrapComponent component, GetVerbsEvent args) + { + if (args.Hands == null || !args.CanAccess || !args.CanInteract || !component.Enabled) + return; + + // Note that for whatever bloody reason, buckle component has its own interaction range. Additionally, this + // range can be set per-component, so we have to check a modified InRangeUnobstructed for every verb. + + // Add unstrap verbs for every strapped entity. + foreach (var entity in component.BuckledEntities) + { + var buckledComp = Comp(entity); + + if (!_interaction.InRangeUnobstructed(args.User, args.Target, range: buckledComp.Range)) + continue; + + var verb = new InteractionVerb() + { + Act = () => TryUnbuckle(entity, args.User, buckleComp: buckledComp), + Category = VerbCategory.Unbuckle, + Text = entity == args.User + ? Loc.GetString("verb-self-target-pronoun") + : Identity.Name(entity, EntityManager) + }; + + // In the event that you have more than once entity with the same name strapped to the same object, + // these two verbs will be identical according to Verb.CompareTo, and only one with actually be added to + // the verb list. However this should rarely ever be a problem. If it ever is, it could be fixed by + // appending an integer to verb.Text to distinguish the verbs. + + args.Verbs.Add(verb); + } + + // Add a verb to buckle the user. + if (TryComp(args.User, out var buckle) && + buckle.BuckledTo != uid && + args.User != uid && + StrapHasSpace(uid, buckle, component) && + _interaction.InRangeUnobstructed(args.User, args.Target, range: buckle.Range)) + { + InteractionVerb verb = new() + { + Act = () => TryBuckle(args.User, args.User, args.Target, buckle), + Category = VerbCategory.Buckle, + Text = Loc.GetString("verb-self-target-pronoun") + }; + args.Verbs.Add(verb); + } + + // If the user is currently holding/pulling an entity that can be buckled, add a verb for that. + if (args.Using is { Valid: true } @using && + TryComp(@using, out var usingBuckle) && + StrapHasSpace(uid, usingBuckle, component) && + _interaction.InRangeUnobstructed(@using, args.Target, range: usingBuckle.Range)) + { + // Check that the entity is unobstructed from the target (ignoring the user). + bool Ignored(EntityUid entity) => entity == args.User || entity == args.Target || entity == @using; + if (!_interaction.InRangeUnobstructed(@using, args.Target, usingBuckle.Range, predicate: Ignored)) + return; + + var isPlayer = _playerManager.TryGetSessionByEntity(@using, out var _); + InteractionVerb verb = new() + { + Act = () => TryBuckle(@using, args.User, args.Target, usingBuckle), + Category = VerbCategory.Buckle, + Text = Identity.Name(@using, EntityManager), + // just a held object, the user is probably just trying to sit down. + // If the used entity is a person being pulled, prioritize this verb. Conversely, if it is + Priority = isPlayer ? 1 : -1 + }; + + args.Verbs.Add(verb); + } + } + + private void AddUnbuckleVerb(EntityUid uid, BuckleComponent component, GetVerbsEvent args) + { + if (!args.CanAccess || !args.CanInteract || !component.Buckled) + return; + + InteractionVerb verb = new() + { + Act = () => TryUnbuckle(uid, args.User, buckleComp: component), + Text = Loc.GetString("verb-categories-unbuckle"), + Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/unbuckle.svg.192dpi.png")) + }; + + if (args.Target == args.User && args.Using == null) + { + // A user is left clicking themselves with an empty hand, while buckled. + // It is very likely they are trying to unbuckle themselves. + verb.Priority = 1; + } + + args.Verbs.Add(verb); + } + +} diff --git a/Content.Shared/Buckle/SharedBuckleSystem.Strap.cs b/Content.Shared/Buckle/SharedBuckleSystem.Strap.cs index 7be54360741..bfb0cd9cd6f 100644 --- a/Content.Shared/Buckle/SharedBuckleSystem.Strap.cs +++ b/Content.Shared/Buckle/SharedBuckleSystem.Strap.cs @@ -2,40 +2,26 @@ using Content.Shared.Buckle.Components; using Content.Shared.Construction; using Content.Shared.Destructible; -using Content.Shared.DragDrop; using Content.Shared.Foldable; -using Content.Shared.Interaction; -using Content.Shared.Rotation; using Content.Shared.Storage; -using Content.Shared.Verbs; using Robust.Shared.Containers; namespace Content.Shared.Buckle; public abstract partial class SharedBuckleSystem { - [Dependency] private readonly SharedRotationVisualsSystem _rotationVisuals = default!; - private void InitializeStrap() { SubscribeLocalEvent(OnStrapStartup); SubscribeLocalEvent(OnStrapShutdown); - SubscribeLocalEvent((_, c, _) => StrapRemoveAll(c)); + SubscribeLocalEvent((e, c, _) => StrapRemoveAll(e, c)); - SubscribeLocalEvent(OnStrapEntModifiedFromContainer); - SubscribeLocalEvent(OnStrapEntModifiedFromContainer); - SubscribeLocalEvent>(AddStrapVerbs); SubscribeLocalEvent(OnStrapContainerGettingInsertedAttempt); - SubscribeLocalEvent(OnStrapInteractHand); - SubscribeLocalEvent((_,c,_) => StrapRemoveAll(c)); - SubscribeLocalEvent((_, c, _) => StrapRemoveAll(c)); + SubscribeLocalEvent((e, c, _) => StrapRemoveAll(e, c)); + SubscribeLocalEvent((e, c, _) => StrapRemoveAll(e, c)); - SubscribeLocalEvent(OnStrapDragDropTarget); - SubscribeLocalEvent(OnCanDropTarget); SubscribeLocalEvent(OnAttemptFold); - - SubscribeLocalEvent(OnStrapMoveEvent); - SubscribeLocalEvent((_, c, _) => StrapRemoveAll(c)); + SubscribeLocalEvent((e, c, _) => StrapRemoveAll(e, c)); } private void OnStrapStartup(EntityUid uid, StrapComponent component, ComponentStartup args) @@ -45,145 +31,17 @@ private void OnStrapStartup(EntityUid uid, StrapComponent component, ComponentSt private void OnStrapShutdown(EntityUid uid, StrapComponent component, ComponentShutdown args) { - if (LifeStage(uid) > EntityLifeStage.MapInitialized) - return; - - StrapRemoveAll(component); - } - - private void OnStrapEntModifiedFromContainer(EntityUid uid, StrapComponent component, ContainerModifiedMessage message) - { - if (_gameTiming.ApplyingState) - return; - - foreach (var buckledEntity in component.BuckledEntities) - { - if (!TryComp(buckledEntity, out var buckleComp)) - { - continue; - } - - ContainerModifiedReAttach(buckledEntity, uid, buckleComp, component); - } - } - - private void ContainerModifiedReAttach(EntityUid buckleUid, EntityUid strapUid, BuckleComponent? buckleComp = null, StrapComponent? strapComp = null) - { - if (!Resolve(buckleUid, ref buckleComp, false) || - !Resolve(strapUid, ref strapComp, false)) - return; - - var contained = _container.TryGetContainingContainer(buckleUid, out var ownContainer); - var strapContained = _container.TryGetContainingContainer(strapUid, out var strapContainer); - - if (contained != strapContained || ownContainer != strapContainer) - { - TryUnbuckle(buckleUid, buckleUid, true, buckleComp); - return; - } - - if (!contained) - { - ReAttach(buckleUid, strapUid, buckleComp, strapComp); - } + if (!TerminatingOrDeleted(uid)) + StrapRemoveAll(uid, component); } private void OnStrapContainerGettingInsertedAttempt(EntityUid uid, StrapComponent component, ContainerGettingInsertedAttemptEvent args) { // If someone is attempting to put this item inside of a backpack, ensure that it has no entities strapped to it. - if (HasComp(args.Container.Owner) && component.BuckledEntities.Count != 0) + if (args.Container.ID == StorageComponent.ContainerId && component.BuckledEntities.Count != 0) args.Cancel(); } - private void OnStrapInteractHand(EntityUid uid, StrapComponent component, InteractHandEvent args) - { - if (args.Handled) - return; - - args.Handled = ToggleBuckle(args.User, args.User, uid); - } - - private void AddStrapVerbs(EntityUid uid, StrapComponent component, GetVerbsEvent args) - { - if (args.Hands == null || !args.CanAccess || !args.CanInteract || !component.Enabled) - return; - - // Note that for whatever bloody reason, buckle component has its own interaction range. Additionally, this - // range can be set per-component, so we have to check a modified InRangeUnobstructed for every verb. - - // Add unstrap verbs for every strapped entity. - foreach (var entity in component.BuckledEntities) - { - var buckledComp = Comp(entity); - - if (!_interaction.InRangeUnobstructed(args.User, args.Target, range: buckledComp.Range)) - continue; - - var verb = new InteractionVerb() - { - Act = () => TryUnbuckle(entity, args.User, buckleComp: buckledComp), - Category = VerbCategory.Unbuckle, - Text = entity == args.User - ? Loc.GetString("verb-self-target-pronoun") - : Comp(entity).EntityName - }; - - // In the event that you have more than once entity with the same name strapped to the same object, - // these two verbs will be identical according to Verb.CompareTo, and only one with actually be added to - // the verb list. However this should rarely ever be a problem. If it ever is, it could be fixed by - // appending an integer to verb.Text to distinguish the verbs. - - args.Verbs.Add(verb); - } - - // Add a verb to buckle the user. - if (TryComp(args.User, out var buckle) && - buckle.BuckledTo != uid && - args.User != uid && - StrapHasSpace(uid, buckle, component) && - _interaction.InRangeUnobstructed(args.User, args.Target, range: buckle.Range)) - { - InteractionVerb verb = new() - { - Act = () => TryBuckle(args.User, args.User, args.Target, buckle), - Category = VerbCategory.Buckle, - Text = Loc.GetString("verb-self-target-pronoun") - }; - args.Verbs.Add(verb); - } - - // If the user is currently holding/pulling an entity that can be buckled, add a verb for that. - if (args.Using is {Valid: true} @using && - TryComp(@using, out var usingBuckle) && - StrapHasSpace(uid, usingBuckle, component) && - _interaction.InRangeUnobstructed(@using, args.Target, range: usingBuckle.Range)) - { - // Check that the entity is unobstructed from the target (ignoring the user). - bool Ignored(EntityUid entity) => entity == args.User || entity == args.Target || entity == @using; - if (!_interaction.InRangeUnobstructed(@using, args.Target, usingBuckle.Range, predicate: Ignored)) - return; - - var isPlayer = _playerManager.TryGetSessionByEntity(@using, out var _); - InteractionVerb verb = new() - { - Act = () => TryBuckle(@using, args.User, args.Target, usingBuckle), - Category = VerbCategory.Buckle, - Text = Comp(@using).EntityName, - // just a held object, the user is probably just trying to sit down. - // If the used entity is a person being pulled, prioritize this verb. Conversely, if it is - Priority = isPlayer ? 1 : -1 - }; - - args.Verbs.Add(verb); - } - } - - private void OnCanDropTarget(EntityUid uid, StrapComponent component, ref CanDropTargetEvent args) - { - args.CanDrop = StrapCanDragDropOn(uid, args.User, uid, args.Dragged, component); - args.Handled = true; - } - private void OnAttemptFold(EntityUid uid, StrapComponent component, ref FoldAttemptEvent args) { if (args.Cancelled) @@ -192,82 +50,15 @@ private void OnAttemptFold(EntityUid uid, StrapComponent component, ref FoldAtte args.Cancelled = component.BuckledEntities.Count != 0; } - private void OnStrapDragDropTarget(EntityUid uid, StrapComponent component, ref DragDropTargetEvent args) - { - if (!StrapCanDragDropOn(uid, args.User, uid, args.Dragged, component)) - return; - - args.Handled = TryBuckle(args.Dragged, args.User, uid); - } - - private void OnStrapMoveEvent(EntityUid uid, StrapComponent component, ref MoveEvent args) - { - // TODO: This looks dirty af. - // On rotation of a strap, reattach all buckled entities. - // This fixes buckle offsets and draw depths. - // This is mega cursed. Please somebody save me from Mr Buckle's wild ride. - // Oh god I'm back here again. Send help. - - // Consider a chair that has a player strapped to it. Then the client receives a new server state, showing - // that the player entity has moved elsewhere, and the chair has rotated. If the client applies the player - // state, then the chairs transform comp state, and then the buckle state. The transform state will - // forcefully teleport the player back to the chair (client-side only). This causes even more issues if the - // chair was teleporting in from nullspace after having left PVS. - // - // One option is to just never trigger re-buckles during state application. - // another is to.. just not do this? Like wtf is this code. But I CBF with buckle atm. - - if (_gameTiming.ApplyingState || args.NewRotation == args.OldRotation) - return; - - foreach (var buckledEntity in component.BuckledEntities) - { - if (!TryComp(buckledEntity, out var buckled)) - continue; - - if (!buckled.Buckled || buckled.LastEntityBuckledTo != uid) - { - Log.Error($"A moving strap entity {ToPrettyString(uid)} attempted to re-parent an entity that does not 'belong' to it {ToPrettyString(buckledEntity)}"); - continue; - } - - ReAttach(buckledEntity, uid, buckled, component); - Dirty(buckled); - } - } - - private bool StrapCanDragDropOn( - EntityUid strapUid, - EntityUid userUid, - EntityUid targetUid, - EntityUid buckleUid, - StrapComponent? strapComp = null, - BuckleComponent? buckleComp = null) - { - if (!Resolve(strapUid, ref strapComp, false) || - !Resolve(buckleUid, ref buckleComp, false)) - { - return false; - } - - bool Ignored(EntityUid entity) => entity == userUid || entity == buckleUid || entity == targetUid; - - return _interaction.InRangeUnobstructed(targetUid, buckleUid, buckleComp.Range, predicate: Ignored); - } - /// /// Remove everything attached to the strap /// - private void StrapRemoveAll(StrapComponent strapComp) + private void StrapRemoveAll(EntityUid uid, StrapComponent strapComp) { foreach (var entity in strapComp.BuckledEntities.ToArray()) { - TryUnbuckle(entity, entity, true); + Unbuckle(entity, entity); } - - strapComp.BuckledEntities.Clear(); - strapComp.OccupiedSize = 0; - Dirty(strapComp); } private bool StrapHasSpace(EntityUid strapUid, BuckleComponent buckleComp, StrapComponent? strapComp = null) @@ -275,30 +66,13 @@ private bool StrapHasSpace(EntityUid strapUid, BuckleComponent buckleComp, Strap if (!Resolve(strapUid, ref strapComp, false)) return false; - return strapComp.OccupiedSize + buckleComp.Size <= strapComp.Size; - } - - /// - /// Try to add an entity to the strap - /// - private bool StrapTryAdd(EntityUid strapUid, EntityUid buckleUid, BuckleComponent buckleComp, bool force = false, StrapComponent? strapComp = null) - { - if (!Resolve(strapUid, ref strapComp, false) || - !strapComp.Enabled) - return false; - - if (!force && !StrapHasSpace(strapUid, buckleComp, strapComp)) - return false; - - if (!strapComp.BuckledEntities.Add(buckleUid)) - return false; - - strapComp.OccupiedSize += buckleComp.Size; - - Appearance.SetData(strapUid, StrapVisuals.State, true); + var avail = strapComp.Size; + foreach (var buckle in strapComp.BuckledEntities) + { + avail -= CompOrNull(buckle)?.Size ?? 0; + } - Dirty(strapUid, strapComp); - return true; + return avail >= buckleComp.Size; } /// @@ -311,8 +85,9 @@ public void StrapSetEnabled(EntityUid strapUid, bool enabled, StrapComponent? st return; strapComp.Enabled = enabled; + Dirty(strapUid, strapComp); if (!enabled) - StrapRemoveAll(strapComp); + StrapRemoveAll(strapUid, strapComp); } } diff --git a/Content.Shared/Buckle/SharedBuckleSystem.cs b/Content.Shared/Buckle/SharedBuckleSystem.cs index 67218657e52..770fababded 100644 --- a/Content.Shared/Buckle/SharedBuckleSystem.cs +++ b/Content.Shared/Buckle/SharedBuckleSystem.cs @@ -1,21 +1,17 @@ using Content.Shared.ActionBlocker; using Content.Shared.Administration.Logs; using Content.Shared.Alert; -using Content.Shared.Buckle.Components; using Content.Shared.Interaction; using Content.Shared.Mobs.Systems; using Content.Shared.Popups; -using Content.Shared.Pulling; +using Content.Shared.Rotation; using Content.Shared.Standing; -using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; using Robust.Shared.Containers; -using Robust.Shared.Map; using Robust.Shared.Network; using Robust.Shared.Physics.Systems; using Robust.Shared.Player; using Robust.Shared.Timing; -using PullingSystem = Content.Shared.Movement.Pulling.Systems.PullingSystem; namespace Content.Shared.Buckle; @@ -36,10 +32,10 @@ public abstract partial class SharedBuckleSystem : EntitySystem [Dependency] private readonly SharedInteractionSystem _interaction = default!; [Dependency] private readonly SharedJointSystem _joints = default!; [Dependency] private readonly SharedPopupSystem _popup = default!; - [Dependency] private readonly PullingSystem _pulling = default!; [Dependency] private readonly SharedTransformSystem _transform = default!; [Dependency] private readonly StandingStateSystem _standing = default!; [Dependency] private readonly SharedPhysicsSystem _physics = default!; + [Dependency] private readonly SharedRotationVisualsSystem _rotationVisuals = default!; /// public override void Initialize() @@ -51,45 +47,6 @@ public override void Initialize() InitializeBuckle(); InitializeStrap(); - } - - /// - /// Reattaches this entity to the strap, modifying its position and rotation. - /// - /// The entity to reattach. - /// The entity to reattach the buckleUid entity to. - private void ReAttach( - EntityUid buckleUid, - EntityUid strapUid, - BuckleComponent? buckleComp = null, - StrapComponent? strapComp = null) - { - if (!Resolve(strapUid, ref strapComp, false) - || !Resolve(buckleUid, ref buckleComp, false)) - return; - - _transform.SetCoordinates(buckleUid, new EntityCoordinates(strapUid, strapComp.BuckleOffsetClamped)); - - var buckleTransform = Transform(buckleUid); - - // Buckle subscribes to move for so this might fail. - // TODO: Make buckle not do that. - if (buckleTransform.ParentUid != strapUid) - return; - - _transform.SetLocalRotation(buckleUid, Angle.Zero, buckleTransform); - _joints.SetRelay(buckleUid, strapUid); - - switch (strapComp.Position) - { - case StrapPosition.None: - break; - case StrapPosition.Stand: - _standing.Stand(buckleUid); - break; - case StrapPosition.Down: - _standing.Down(buckleUid, false, false); - break; - } + InitializeInteraction(); } } diff --git a/Content.Shared/Burial/BurialSystem.cs b/Content.Shared/Burial/BurialSystem.cs index 76336e13989..1116c6797b2 100644 --- a/Content.Shared/Burial/BurialSystem.cs +++ b/Content.Shared/Burial/BurialSystem.cs @@ -84,10 +84,11 @@ private void OnAfterInteractUsing(EntityUid uid, GraveComponent component, After private void OnActivate(EntityUid uid, GraveComponent component, ActivateInWorldEvent args) { - if (args.Handled) + if (args.Handled || !args.Complex) return; _popupSystem.PopupClient(Loc.GetString("grave-digging-requires-tool", ("grave", args.Target)), uid, args.User); + args.Handled = true; } private void OnGraveDigging(EntityUid uid, GraveComponent component, GraveDiggingDoAfterEvent args) diff --git a/Content.Shared/CCVar/CCVars.cs b/Content.Shared/CCVar/CCVars.cs index ccef09000f3..a02cbb6419f 100644 --- a/Content.Shared/CCVar/CCVars.cs +++ b/Content.Shared/CCVar/CCVars.cs @@ -21,16 +21,10 @@ public sealed class CCVars : CVars CVarDef.Create("server.id", "unknown_server_id", CVar.REPLICATED | CVar.SERVER); /// - /// Name of the rules txt file in the "Resources/Server Info" dir. Include the extension. + /// Guide Entry Prototype ID to be displayed as the server rules. /// public static readonly CVarDef RulesFile = - CVarDef.Create("server.rules_file", "Rules.txt", CVar.REPLICATED | CVar.SERVER); - - /// - /// A loc string for what should be displayed as the title on the Rules window. - /// - public static readonly CVarDef RulesHeader = - CVarDef.Create("server.rules_header", "ui-rules-header", CVar.REPLICATED | CVar.SERVER); + CVarDef.Create("server.rules_file", "DefaultRuleset", CVar.REPLICATED | CVar.SERVER); /* * Ambience @@ -387,6 +381,13 @@ public static readonly CVarDef public static readonly CVarDef GameTraitsDefaultPoints = CVarDef.Create("game.traits_default_points", 10, CVar.REPLICATED); + /// + /// Whether the game will SMITE people who used cheat engine to spawn with all of the traits. + /// Illegal trait totals will still be logged even if this is disabled. + /// If you are intending to decrease the trait points availability, or modify the costs of traits, consider temporarily disabling this. + /// + public static readonly CVarDef TraitsPunishCheaters = + CVarDef.Create("game.traits_punish_cheaters", true, CVar.REPLICATED); /// /// Whether to allow characters to select loadout items. @@ -506,6 +507,18 @@ public static readonly CVarDef * Discord */ + /// + /// The role that will get mentioned if a new SOS ahelp comes in. + /// + public static readonly CVarDef DiscordAhelpMention = + CVarDef.Create("discord.on_call_ping", string.Empty, CVar.SERVERONLY | CVar.CONFIDENTIAL); + + /// + /// URL of the discord webhook to relay unanswered ahelp messages. + /// + public static readonly CVarDef DiscordOnCallWebhook = + CVarDef.Create("discord.on_call_webhook", string.Empty, CVar.SERVERONLY | CVar.CONFIDENTIAL); + /// /// URL of the Discord webhook which will relay all ahelp messages. /// @@ -956,6 +969,99 @@ public static readonly CVarDef public static readonly CVarDef AdminAfkTime = CVarDef.Create("admin.afk_time", 600f, CVar.SERVERONLY); + /// + /// If true, admins are able to connect even if + /// would otherwise block regular players. + /// + public static readonly CVarDef AdminBypassMaxPlayers = + CVarDef.Create("admin.bypass_max_players", true, CVar.SERVERONLY); + + /// + /// Determine if custom rank names are used. + /// If it is false, it'd use the actual rank name regardless of the individual's title. + /// + /// + /// + public static readonly CVarDef AdminUseCustomNamesAdminRank = + CVarDef.Create("admin.use_custom_names_admin_rank", true, CVar.SERVERONLY); + + /* + * AHELP + */ + + /// + /// Ahelp rate limit values are accounted in periods of this size (seconds). + /// After the period has passed, the count resets. + /// + /// + public static readonly CVarDef AhelpRateLimitPeriod = + CVarDef.Create("ahelp.rate_limit_period", 2f, CVar.SERVERONLY); + + /// + /// How many ahelp messages are allowed in a single rate limit period. + /// + /// + public static readonly CVarDef AhelpRateLimitCount = + CVarDef.Create("ahelp.rate_limit_count", 10, CVar.SERVERONLY); + + /// + /// Should the administrator's position be displayed in ahelp. + /// If it is is false, only the admin's ckey will be displayed in the ahelp. + /// + /// + /// + public static readonly CVarDef AhelpAdminPrefix = + CVarDef.Create("ahelp.admin_prefix", true, CVar.SERVERONLY); + + /// + /// Should the administrator's position be displayed in the webhook. + /// If it is is false, only the admin's ckey will be displayed in webhook. + /// + /// + /// + public static readonly CVarDef AhelpAdminPrefixWebhook = + CVarDef.Create("ahelp.admin_prefix_webhook", true, CVar.SERVERONLY); + + /// + /// If an admin replies to users from discord, should it use their discord role color? (if applicable) + /// Overrides DiscordReplyColor and AdminBwoinkColor. + /// + public static readonly CVarDef UseDiscordRoleColor = + CVarDef.Create("admin.use_discord_role_color", false, CVar.SERVERONLY); + + /// + /// If an admin replies to users from discord, should it use their discord role color? (if applicable) + /// Overrides DiscordReplyColor and AdminBwoinkColor. + /// + public static readonly CVarDef UseDiscordRoleName = + CVarDef.Create("admin.use_discord_role_name", false, CVar.SERVERONLY); + + /// + /// The text before an admin's name when replying from discord to indicate they're speaking from discord. + /// + public static readonly CVarDef DiscordReplyPrefix = + CVarDef.Create("admin.discord_reply_prefix", "(DC) ", CVar.SERVERONLY); + + /// + /// The color of the names of admins. This is the fallback color for admins. + /// + public static readonly CVarDef AdminBwoinkColor = + CVarDef.Create("admin.admin_bwoink_color", "red", CVar.SERVERONLY); + + /// + /// The color of the names of admins who reply from discord. Leave empty to disable. + /// Overrides AdminBwoinkColor. + /// + public static readonly CVarDef DiscordReplyColor = + CVarDef.Create("admin.discord_reply_color", string.Empty, CVar.SERVERONLY); + + /// + /// Use the admin's Admin OOC color in bwoinks. + /// If either the ooc color or this is not set, uses the admin.admin_bwoink_color value. + /// + public static readonly CVarDef UseAdminOOCColorInBwoinks = + CVarDef.Create("admin.bwoink_use_admin_ooc_color", false, CVar.SERVERONLY); + /* * Explosions */ @@ -1890,8 +1996,8 @@ public static readonly CVarDef /// After the period has passed, the count resets. /// /// - public static readonly CVarDef ChatRateLimitPeriod = - CVarDef.Create("chat.rate_limit_period", 2, CVar.SERVERONLY); + public static readonly CVarDef ChatRateLimitPeriod = + CVarDef.Create("chat.rate_limit_period", 2f, CVar.SERVERONLY); /// /// How many chat messages are allowed in a single rate limit period. @@ -1901,19 +2007,12 @@ public static readonly CVarDef /// divided by . /// /// - /// public static readonly CVarDef ChatRateLimitCount = CVarDef.Create("chat.rate_limit_count", 10, CVar.SERVERONLY); /// - /// If true, announce when a player breached chat rate limit to game administrators. - /// - /// - public static readonly CVarDef ChatRateLimitAnnounceAdmins = - CVarDef.Create("chat.rate_limit_announce_admins", true, CVar.SERVERONLY); - - /// - /// Minimum delay (in seconds) between announcements from . + /// Minimum delay (in seconds) between notifying admins about chat message rate limit violations. + /// A negative value disables admin announcements. /// public static readonly CVarDef ChatRateLimitAnnounceAdminsDelay = CVarDef.Create("chat.rate_limit_announce_admins_delay", 15, CVar.SERVERONLY); @@ -2071,7 +2170,13 @@ public static readonly CVarDef /// Don't show rules to localhost/loopback interface. /// public static readonly CVarDef RulesExemptLocal = - CVarDef.Create("rules.exempt_local", true, CVar.SERVERONLY); + CVarDef.Create("rules.exempt_local", true, CVar.CLIENT); + + /// + /// The next time the rules will popup for this client, expressed in minutes + /// + public static readonly CVarDef RulesNextPopupTime = + CVarDef.Create("rules.next_popup_time", "Jan 1, 1997", CVar.CLIENTONLY | CVar.ARCHIVE); /* @@ -2121,6 +2226,34 @@ public static readonly CVarDef public static readonly CVarDef DefaultWalk = CVarDef.Create("control.default_walk", true, CVar.CLIENT | CVar.REPLICATED | CVar.ARCHIVE); + /* + * Interactions + */ + + // The rationale behind the default limit is simply that I can easily get to 7 interactions per second by just + // trying to spam toggle a light switch or lever (though the UseDelay component limits the actual effect of the + // interaction). I don't want to accidentally spam admins with alerts just because somebody is spamming a + // key manually, nor do we want to alert them just because the player is having network issues and the server + // receives multiple interactions at once. But we also want to try catch people with modified clients that spam + // many interactions on the same tick. Hence, a very short period, with a relatively high count. + + /// + /// Maximum number of interactions that a player can perform within seconds + /// + public static readonly CVarDef InteractionRateLimitCount = + CVarDef.Create("interaction.rate_limit_count", 5, CVar.SERVER | CVar.REPLICATED); + + /// + public static readonly CVarDef InteractionRateLimitPeriod = + CVarDef.Create("interaction.rate_limit_period", 0.5f, CVar.SERVER | CVar.REPLICATED); + + /// + /// Minimum delay (in seconds) between notifying admins about interaction rate limit violations. A negative + /// value disables admin announcements. + /// + public static readonly CVarDef InteractionRateLimitAnnounceAdminsDelay = + CVarDef.Create("interaction.rate_limit_announce_admins_delay", 120, CVar.SERVERONLY); + /* * STORAGE */ @@ -2567,7 +2700,11 @@ public static readonly CVarDef #region Mood System public static readonly CVarDef MoodEnabled = + #if RELEASE CVarDef.Create("mood.enabled", true, CVar.SERVER); + #else + CVarDef.Create("mood.enabled", false, CVar.SERVER); + #endif public static readonly CVarDef MoodIncreasesSpeed = CVarDef.Create("mood.increases_speed", true, CVar.SERVER); @@ -2635,10 +2772,76 @@ public static readonly CVarDef #endregion + #region Surgery + + public static readonly CVarDef CanOperateOnSelf = + CVarDef.Create("surgery.can_operate_on_self", false, CVar.SERVERONLY); + + #endregion /// /// Set to true to disable parallel processing in the pow3r solver. /// public static readonly CVarDef DebugPow3rDisableParallel = CVarDef.Create("debug.pow3r_disable_parallel", true, CVar.SERVERONLY); + + /* + * AUTOVOTE SYSTEM + */ + + /// Enables the automatic voting system. + public static readonly CVarDef AutoVoteEnabled = + CVarDef.Create("vote.autovote_enabled", false, CVar.SERVERONLY); + + /// Automatically starts a map vote when returning to the lobby. + /// Requires auto voting to be enabled. + public static readonly CVarDef MapAutoVoteEnabled = + CVarDef.Create("vote.map_autovote_enabled", true, CVar.SERVERONLY); + + /// Automatically starts a gamemode vote when returning to the lobby. + /// Requires auto voting to be enabled. + public static readonly CVarDef PresetAutoVoteEnabled = + CVarDef.Create("vote.preset_autovote_enabled", true, CVar.SERVERONLY); + + #region Psionics + + /// + /// When mindbroken, permanently eject the player from their own body, and turn their character into an NPC. + /// Congratulations, now they *actually* aren't a person anymore. + /// For people who complained that it wasn't obvious enough from the text that Mindbreaking is a form of Murder. + /// + public static readonly CVarDef ScarierMindbreaking = + CVarDef.Create("psionics.scarier_mindbreaking", false, CVar.SERVERONLY); + #endregion + + /// + /// Set to true to enable the dynamic hostname system. + /// Automatically updates the hostname to include current map and preset. + /// Configure what that looks like for you in Resources/Prototypes/Locale/en-US/dynamichostname/hostname.ftl + /// + public static readonly CVarDef UseDynamicHostname = + CVarDef.Create("game.use_dynamic_hostname", false, CVar.SERVERONLY); + + #region SoftCrit + + /// + /// Used for basic Soft-Crit implementation. Entities are allowed to crawl when in crit, as this CVar intercepts the mover controller check for incapacitation, + /// and prevents it from stopping movement if this CVar is set to true and the user is Crit but Not Dead. This is only for movement, + /// you still can't stand up while crit, and you're still more or less helpless. + /// + public static readonly CVarDef AllowMovementWhileCrit = + CVarDef.Create("mobstate.allow_movement_while_crit", true, CVar.REPLICATED); + + public static readonly CVarDef AllowTalkingWhileCrit = + CVarDef.Create("mobstate.allow_talking_while_crit", true, CVar.REPLICATED); + + /// + /// Currently does nothing because I would have to figure out WHERE I would even put this check, and the mover controller is fairly complicated. + /// The goal is to make it so that attempting to move while in 'soft crit' can potentially cause further injury, causing you to die faster. Ideally there would be special + /// actions that can be performed in soft crit, such as applying pressure to your own injuries to slow down the bleedout, or other varieties of "Will To Live". + /// + public static readonly CVarDef DamageWhileCritMove = + CVarDef.Create("mobstate.damage_while_crit_move", false, CVar.REPLICATED); + + #endregion } } diff --git a/Content.Shared/Chapel/SharedSacrificialAltarSystem.cs b/Content.Shared/Chapel/SharedSacrificialAltarSystem.cs index 92df7e0f6bf..61e9a68817c 100644 --- a/Content.Shared/Chapel/SharedSacrificialAltarSystem.cs +++ b/Content.Shared/Chapel/SharedSacrificialAltarSystem.cs @@ -15,7 +15,7 @@ public override void Initialize() base.Initialize(); SubscribeLocalEvent(OnExamined); - SubscribeLocalEvent(OnUnstrapped); + SubscribeLocalEvent(OnUnstrapped); SubscribeLocalEvent>(OnGetVerbs); } @@ -24,7 +24,7 @@ private void OnExamined(Entity ent, ref ExaminedEvent args.PushMarkup(Loc.GetString("altar-examine")); } - private void OnUnstrapped(Entity ent, ref BuckleChangeEvent args) + private void OnUnstrapped(Entity ent, ref UnbuckledEvent args) { if (ent.Comp.DoAfter is not { } id) return; diff --git a/Content.Shared/Chat/ISharedChatManager.cs b/Content.Shared/Chat/ISharedChatManager.cs new file mode 100644 index 00000000000..39c1d85dd25 --- /dev/null +++ b/Content.Shared/Chat/ISharedChatManager.cs @@ -0,0 +1,8 @@ +namespace Content.Shared.Chat; + +public interface ISharedChatManager +{ + void Initialize(); + void SendAdminAlert(string message); + void SendAdminAlert(EntityUid player, string message); +} diff --git a/Content.Shared/Chat/Prototypes/EmotePrototype.cs b/Content.Shared/Chat/Prototypes/EmotePrototype.cs index 7ee958ee6a7..34d54bc3600 100644 --- a/Content.Shared/Chat/Prototypes/EmotePrototype.cs +++ b/Content.Shared/Chat/Prototypes/EmotePrototype.cs @@ -68,6 +68,10 @@ public sealed partial class EmotePrototype : IPrototype /// [DataField] public HashSet ChatTriggers = new(); + + // goob edit - animations + [DataField] + public object? Event = null; } /// diff --git a/Content.Shared/Chemistry/EntitySystems/SharedSolutionContainerMixerSystem.cs b/Content.Shared/Chemistry/EntitySystems/SharedSolutionContainerMixerSystem.cs index 87957066125..c8e8e89ce53 100644 --- a/Content.Shared/Chemistry/EntitySystems/SharedSolutionContainerMixerSystem.cs +++ b/Content.Shared/Chemistry/EntitySystems/SharedSolutionContainerMixerSystem.cs @@ -31,7 +31,11 @@ public override void Initialize() private void OnActivateInWorld(Entity entity, ref ActivateInWorldEvent args) { + if (args.Handled || !args.Complex) + return; + TryStartMix(entity, args.User); + args.Handled = true; } private void OnRemoveAttempt(Entity ent, ref ContainerIsRemovingAttemptEvent args) diff --git a/Content.Shared/Climbing/Systems/ClimbSystem.cs b/Content.Shared/Climbing/Systems/ClimbSystem.cs index c570a821a6f..d2b5a25aee7 100644 --- a/Content.Shared/Climbing/Systems/ClimbSystem.cs +++ b/Content.Shared/Climbing/Systems/ClimbSystem.cs @@ -59,7 +59,7 @@ public override void Initialize() SubscribeLocalEvent(OnParentChange); SubscribeLocalEvent(OnDoAfter); SubscribeLocalEvent(OnClimbEndCollide); - SubscribeLocalEvent(OnBuckleChange); + SubscribeLocalEvent(OnBuckled); SubscribeLocalEvent(OnCanDragDropOn); SubscribeLocalEvent>(AddClimbableVerb); @@ -479,10 +479,8 @@ public void ForciblyStopClimbing(EntityUid uid, ClimbingComponent? climbing = nu StopClimb(uid, climbing, fixtures); } - private void OnBuckleChange(EntityUid uid, ClimbingComponent component, ref BuckleChangeEvent args) + private void OnBuckled(EntityUid uid, ClimbingComponent component, ref BuckledEvent args) { - if (!args.Buckling) - return; StopClimb(uid, component); } diff --git a/Content.Shared/Clothing/ClothingEvents.cs b/Content.Shared/Clothing/ClothingEvents.cs index 83afea45973..1e74b4b56c7 100644 --- a/Content.Shared/Clothing/ClothingEvents.cs +++ b/Content.Shared/Clothing/ClothingEvents.cs @@ -4,18 +4,11 @@ namespace Content.Shared.Clothing; -/// -/// Raised directed at a piece of clothing to get the set of layers to show on the wearer's sprite -/// -public sealed class GetEquipmentVisualsEvent : EntityEventArgs +/// Raised directed at a piece of clothing to get the set of layers to show on the wearer's sprite +public sealed class GetEquipmentVisualsEvent(EntityUid equipee, string slot) : EntityEventArgs { - /// - /// Entity that is wearing the item. - /// - public readonly EntityUid Equipee; - - public readonly string Slot; - + public readonly EntityUid Equipee = equipee; + public readonly string Slot = slot; /// /// The layers that will be added to the entity that is wearing this item. /// @@ -23,12 +16,6 @@ public sealed class GetEquipmentVisualsEvent : EntityEventArgs /// Note that the actual ordering of the layers depends on the order in which they are added to this list; /// public List<(string, PrototypeLayerData)> Layers = new(); - - public GetEquipmentVisualsEvent(EntityUid equipee, string slot) - { - Equipee = equipee; - Slot = slot; - } } /// @@ -37,26 +24,12 @@ public GetEquipmentVisualsEvent(EntityUid equipee, string slot) /// /// Useful for systems/components that modify the visual layers that an item adds to a player. (e.g. RGB memes) /// -public sealed class EquipmentVisualsUpdatedEvent : EntityEventArgs +public sealed class EquipmentVisualsUpdatedEvent(EntityUid equipee, string slot, HashSet revealedLayers) : EntityEventArgs { - /// - /// Entity that is wearing the item. - /// - public readonly EntityUid Equipee; - - public readonly string Slot; - - /// - /// The layers that this item is now revealing. - /// - public HashSet RevealedLayers; - - public EquipmentVisualsUpdatedEvent(EntityUid equipee, string slot, HashSet revealedLayers) - { - Equipee = equipee; - Slot = slot; - RevealedLayers = revealedLayers; - } + public readonly EntityUid Equipee = equipee; + public readonly string Slot = slot; + /// The layers that this item is now revealing. + public HashSet RevealedLayers = revealedLayers; } public sealed partial class ToggleMaskEvent : InstantActionEvent { } diff --git a/Content.Shared/Clothing/EntitySystems/SharedChameleonClothingSystem.cs b/Content.Shared/Clothing/EntitySystems/SharedChameleonClothingSystem.cs index a447a54df17..5bf1e6739e9 100644 --- a/Content.Shared/Clothing/EntitySystems/SharedChameleonClothingSystem.cs +++ b/Content.Shared/Clothing/EntitySystems/SharedChameleonClothingSystem.cs @@ -77,7 +77,7 @@ protected virtual void UpdateSprite(EntityUid uid, EntityPrototype proto) { } public bool IsValidTarget(EntityPrototype proto, SlotFlags chameleonSlot = SlotFlags.NONE) { // check if entity is valid - if (proto.Abstract || proto.NoSpawn) + if (proto.Abstract || proto.HideSpawnMenu) return false; // check if it is marked as valid chameleon target diff --git a/Content.Shared/Clothing/Loadouts/Prototypes/LoadoutPrototype.cs b/Content.Shared/Clothing/Loadouts/Prototypes/LoadoutPrototype.cs index 19c2bf59f1f..ecb3c3fd6c5 100644 --- a/Content.Shared/Clothing/Loadouts/Prototypes/LoadoutPrototype.cs +++ b/Content.Shared/Clothing/Loadouts/Prototypes/LoadoutPrototype.cs @@ -1,8 +1,6 @@ -using Content.Shared.Clothing.Loadouts.Systems; using Content.Shared.Customization.Systems; using Robust.Shared.Prototypes; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; +using Robust.Shared.Serialization.Manager; namespace Content.Shared.Clothing.Loadouts.Prototypes; @@ -10,27 +8,57 @@ namespace Content.Shared.Clothing.Loadouts.Prototypes; [Prototype] public sealed partial class LoadoutPrototype : IPrototype { - /// - /// Formatted like "Loadout[Department/ShortHeadName][CommonClothingSlot][SimplifiedClothingId]", example: "LoadoutScienceOuterLabcoatSeniorResearcher" - /// + /// Formatted like "Loadout[Department/ShortHeadName][CommonClothingSlot][SimplifiedClothingId]", example: "LoadoutScienceOuterLabcoatSeniorResearcher" [IdDataField] public string ID { get; } = default!; - [DataField, ValidatePrototypeId] + [DataField] public ProtoId Category = "Uncategorized"; [DataField(required: true)] public List> Items = new(); + /// Components to give each item on spawn + [DataField] + public ComponentRegistry Components = new(); + [DataField] public int Cost = 1; - /// - /// Should this item override other items in the same slot? - /// + /// Should this item override other items in the same slot [DataField] public bool Exclusive; + [DataField] + public bool CustomName = true; + + [DataField] + public bool CustomDescription = true; + + [DataField] + public bool CustomColorTint = false; + + [DataField] + public bool CanBeHeirloom = false; + [DataField] public List Requirements = new(); + + [DataField] + public string GuideEntry { get; } = ""; + + [DataField(serverOnly: true)] + public LoadoutFunction[] Functions { get; private set; } = Array.Empty(); +} + +/// This serves as a hook for loadout functions to modify one or more entities upon spawning in. +[ImplicitDataDefinitionForInheritors] +public abstract partial class LoadoutFunction +{ + public abstract void OnPlayerSpawn( + EntityUid character, + EntityUid loadoutEntity, + IComponentFactory factory, + IEntityManager entityManager, + ISerializationManager serializationManager); } diff --git a/Content.Shared/Clothing/Loadouts/Systems/LoadoutSystem.cs b/Content.Shared/Clothing/Loadouts/Systems/SharedLoadoutSystem.cs similarity index 56% rename from Content.Shared/Clothing/Loadouts/Systems/LoadoutSystem.cs rename to Content.Shared/Clothing/Loadouts/Systems/SharedLoadoutSystem.cs index 7ee0676f9ef..97e92d9228a 100644 --- a/Content.Shared/Clothing/Loadouts/Systems/LoadoutSystem.cs +++ b/Content.Shared/Clothing/Loadouts/Systems/SharedLoadoutSystem.cs @@ -2,18 +2,23 @@ using Content.Shared.Clothing.Components; using Content.Shared.Clothing.Loadouts.Prototypes; using Content.Shared.Customization.Systems; +using Content.Shared.GameTicking; using Content.Shared.Inventory; +using Content.Shared.Paint; using Content.Shared.Preferences; using Content.Shared.Roles; using Content.Shared.Station; +using Content.Shared.Traits.Assorted.Components; using Robust.Shared.Configuration; +using Robust.Shared.Network; using Robust.Shared.Prototypes; using Robust.Shared.Random; -using Robust.Shared.Utility; +using Robust.Shared.Serialization; + namespace Content.Shared.Clothing.Loadouts.Systems; -public sealed class LoadoutSystem : EntitySystem +public sealed class SharedLoadoutSystem : EntitySystem { [Dependency] private readonly SharedStationSpawningSystem _station = default!; [Dependency] private readonly IPrototypeManager _prototype = default!; @@ -21,6 +26,10 @@ public sealed class LoadoutSystem : EntitySystem [Dependency] private readonly InventorySystem _inventory = default!; [Dependency] private readonly IConfigurationManager _configuration = default!; [Dependency] private readonly CharacterRequirementsSystem _characterRequirements = default!; + [Dependency] private readonly SharedAppearanceSystem _appearance = default!; + [Dependency] private readonly INetManager _net = default!; + + [Dependency] private readonly SharedTransformSystem _sharedTransformSystem = default!; public override void Initialize() { @@ -40,11 +49,16 @@ private void OnMapInit(EntityUid uid, LoadoutComponent component, MapInitEvent a } - public List ApplyCharacterLoadout(EntityUid uid, ProtoId job, HumanoidCharacterProfile profile, - Dictionary playTimes, bool whitelisted) + public (List, List<(EntityUid, LoadoutPreference, int)>) ApplyCharacterLoadout( + EntityUid uid, + ProtoId job, + HumanoidCharacterProfile profile, + Dictionary playTimes, + bool whitelisted, + out List<(EntityUid, LoadoutPreference)> heirlooms) { var jobPrototype = _prototype.Index(job); - return ApplyCharacterLoadout(uid, jobPrototype, profile, playTimes, whitelisted); + return ApplyCharacterLoadout(uid, jobPrototype, profile, playTimes, whitelisted, out heirlooms); } /// @@ -55,18 +69,26 @@ public List ApplyCharacterLoadout(EntityUid uid, ProtoIdThe profile to get loadout items from (should be the entity's, or at least have the same species as the entity) /// Playtime for the player for use with playtime requirements /// If the player is whitelisted + /// Every entity the player selected as a potential heirloom /// A list of loadout items that couldn't be equipped but passed checks - public List ApplyCharacterLoadout(EntityUid uid, JobPrototype job, HumanoidCharacterProfile profile, - Dictionary playTimes, bool whitelisted) + public (List, List<(EntityUid, LoadoutPreference, int)>) ApplyCharacterLoadout( + EntityUid uid, + JobPrototype job, + HumanoidCharacterProfile profile, + Dictionary playTimes, + bool whitelisted, + out List<(EntityUid, LoadoutPreference)> heirlooms) { var failedLoadouts = new List(); + var allLoadouts = new List<(EntityUid, LoadoutPreference, int)>(); + heirlooms = new(); foreach (var loadout in profile.LoadoutPreferences) { var slot = ""; // Ignore loadouts that don't exist - if (!_prototype.TryIndex(loadout, out var loadoutProto)) + if (!_prototype.TryIndex(loadout.LoadoutName, out var loadoutProto)) continue; @@ -79,11 +101,17 @@ public List ApplyCharacterLoadout(EntityUid uid, JobPrototype job, Hu // Spawn the loadout items var spawned = EntityManager.SpawnEntities( - EntityManager.GetComponent(uid).Coordinates.ToMap(EntityManager), + _sharedTransformSystem.GetMapCoordinates(uid), loadoutProto.Items.Select(p => (string?) p.ToString()).ToList()); // Dumb cast + var i = 0; // If someone wants to add multi-item support to the editor foreach (var item in spawned) { + allLoadouts.Add((item, loadout, i)); + if (loadout.CustomHeirloom == true) + heirlooms.Add((item, loadout)); + + // Equip it if (EntityManager.TryGetComponent(item, out var clothingComp) && _characterRequirements.CanEntityWearItem(uid, item) && _inventory.TryGetSlots(uid, out var slotDefinitions)) @@ -110,15 +138,68 @@ public List ApplyCharacterLoadout(EntityUid uid, JobPrototype job, Hu } } + // Color it + if (loadout.CustomColorTint != null) + { + EnsureComp(item); + EnsureComp(item, out var paint); + paint.Color = Color.FromHex(loadout.CustomColorTint); + paint.Enabled = true; + _appearance.TryGetData(item, PaintVisuals.Painted, out bool data); + _appearance.SetData(item, PaintVisuals.Painted, !data); + } + // Equip the loadout if (!_inventory.TryEquip(uid, item, slot, true, !string.IsNullOrEmpty(slot), true)) failedLoadouts.Add(item); + + i++; } } // Return a list of items that couldn't be equipped so the server can handle it if it wants // The server has more information about the inventory system than the client does and the client doesn't need to put loadouts in backpacks - return failedLoadouts; + return (failedLoadouts, allLoadouts); + } +} + + +[Serializable, NetSerializable, ImplicitDataDefinitionForInheritors] +public abstract partial class Loadout +{ + [DataField] public string LoadoutName { get; set; } + [DataField] public string? CustomName { get; set; } + [DataField] public string? CustomDescription { get; set; } + [DataField] public string? CustomColorTint { get; set; } + [DataField] public bool? CustomHeirloom { get; set; } + + protected Loadout( + string loadoutName, + string? customName = null, + string? customDescription = null, + string? customColorTint = null, + bool? customHeirloom = null + ) + { + LoadoutName = loadoutName; + CustomName = customName; + CustomDescription = customDescription; + CustomColorTint = customColorTint; + CustomHeirloom = customHeirloom; } } + +[Serializable, NetSerializable] +public sealed partial class LoadoutPreference : Loadout +{ + [DataField] public bool Selected; + + public LoadoutPreference( + string loadoutName, + string? customName = null, + string? customDescription = null, + string? customColorTint = null, + bool? customHeirloom = null + ) : base(loadoutName, customName, customDescription, customColorTint, customHeirloom) { } +} diff --git a/Content.Shared/Clothing/MagbootsComponent.cs b/Content.Shared/Clothing/MagbootsComponent.cs index 0d0d59f89f5..0d074ff38b6 100644 --- a/Content.Shared/Clothing/MagbootsComponent.cs +++ b/Content.Shared/Clothing/MagbootsComponent.cs @@ -1,3 +1,4 @@ +using Content.Shared.Alert; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; @@ -16,4 +17,7 @@ public sealed partial class MagbootsComponent : Component [DataField("on"), AutoNetworkedField] public bool On; + + [DataField] + public ProtoId MagbootsAlert = "Magboots"; } diff --git a/Content.Shared/CombatMode/Pacification/PacificationSystem.cs b/Content.Shared/CombatMode/Pacification/PacificationSystem.cs index 6d94c087af6..a927e1a6970 100644 --- a/Content.Shared/CombatMode/Pacification/PacificationSystem.cs +++ b/Content.Shared/CombatMode/Pacification/PacificationSystem.cs @@ -7,7 +7,6 @@ using Content.Shared.Popups; using Content.Shared.Throwing; using Content.Shared.Weapons.Ranged.Events; -using Content.Shared.Weapons.Ranged.Systems; using Robust.Shared.Timing; namespace Content.Shared.CombatMode.Pacification; @@ -109,7 +108,7 @@ private void OnStartup(EntityUid uid, PacifiedComponent component, ComponentStar _actionsSystem.SetEnabled(combatMode.CombatToggleActionEntity, false); } - _alertsSystem.ShowAlert(uid, AlertType.Pacified); + _alertsSystem.ShowAlert(uid, component.PacifiedAlert); } private void OnShutdown(EntityUid uid, PacifiedComponent component, ComponentShutdown args) @@ -121,7 +120,7 @@ private void OnShutdown(EntityUid uid, PacifiedComponent component, ComponentShu _combatSystem.SetCanDisarm(uid, true, combatMode); _actionsSystem.SetEnabled(combatMode.CombatToggleActionEntity, true); - _alertsSystem.ClearAlert(uid, AlertType.Pacified); + _alertsSystem.ClearAlert(uid, component.PacifiedAlert); } private void OnBeforeThrow(Entity ent, ref BeforeThrowEvent args) diff --git a/Content.Shared/CombatMode/Pacification/PacifiedComponent.cs b/Content.Shared/CombatMode/Pacification/PacifiedComponent.cs index 464ef778851..96081e5dc67 100644 --- a/Content.Shared/CombatMode/Pacification/PacifiedComponent.cs +++ b/Content.Shared/CombatMode/Pacification/PacifiedComponent.cs @@ -1,4 +1,6 @@ +using Content.Shared.Alert; using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; namespace Content.Shared.CombatMode.Pacification; @@ -42,4 +44,6 @@ public sealed partial class PacifiedComponent : Component [DataField] public EntityUid? LastAttackedEntity = null; + [DataField] + public ProtoId PacifiedAlert = "Pacified"; } diff --git a/Content.Shared/Containers/ContainerFillSystem.cs b/Content.Shared/Containers/ContainerFillSystem.cs index e120b6bc883..51c7c48e40f 100644 --- a/Content.Shared/Containers/ContainerFillSystem.cs +++ b/Content.Shared/Containers/ContainerFillSystem.cs @@ -1,4 +1,5 @@ using System.Numerics; +using Content.Shared.EntityTable; using Robust.Shared.Containers; using Robust.Shared.Map; @@ -7,11 +8,14 @@ namespace Content.Shared.Containers; public sealed class ContainerFillSystem : EntitySystem { [Dependency] private readonly SharedContainerSystem _containerSystem = default!; + [Dependency] private readonly EntityTableSystem _entityTable = default!; + [Dependency] private readonly SharedTransformSystem _transform = default!; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnMapInit); + SubscribeLocalEvent(OnTableMapInit); } private void OnMapInit(EntityUid uid, ContainerFillComponent component, MapInitEvent args) @@ -42,4 +46,37 @@ private void OnMapInit(EntityUid uid, ContainerFillComponent component, MapInitE } } } + + private void OnTableMapInit(Entity ent, ref MapInitEvent args) + { + if (!TryComp(ent, out ContainerManagerComponent? containerComp)) + return; + + if (TerminatingOrDeleted(ent) || !Exists(ent)) + return; + + var xform = Transform(ent); + var coords = new EntityCoordinates(ent, Vector2.Zero); + + foreach (var (containerId, table) in ent.Comp.Containers) + { + if (!_containerSystem.TryGetContainer(ent, containerId, out var container, containerComp)) + { + Log.Error($"Entity {ToPrettyString(ent)} with a {nameof(EntityTableContainerFillComponent)} is missing a container ({containerId})."); + continue; + } + + var spawns = _entityTable.GetSpawns(table); + foreach (var proto in spawns) + { + var spawn = Spawn(proto, coords); + if (!_containerSystem.Insert(spawn, container, containerXform: xform)) + { + Log.Error($"Entity {ToPrettyString(ent)} with a {nameof(EntityTableContainerFillComponent)} failed to insert an entity: {ToPrettyString(spawn)}."); + _transform.AttachToGridOrMap(spawn); + break; + } + } + } + } } diff --git a/Content.Shared/Containers/EntityTableContainerFillComponent.cs b/Content.Shared/Containers/EntityTableContainerFillComponent.cs new file mode 100644 index 00000000000..3f30dc86d6d --- /dev/null +++ b/Content.Shared/Containers/EntityTableContainerFillComponent.cs @@ -0,0 +1,13 @@ +using Content.Shared.EntityTable.EntitySelectors; + +namespace Content.Shared.Containers; + +/// +/// Version of that utilizes +/// +[RegisterComponent, Access(typeof(ContainerFillSystem))] +public sealed partial class EntityTableContainerFillComponent : Component +{ + [DataField] + public Dictionary Containers = new(); +} diff --git a/Content.Shared/Containers/ItemSlot/ItemSlotsSystem.cs b/Content.Shared/Containers/ItemSlot/ItemSlotsSystem.cs index cb6b2a747bc..c8745d17d49 100644 --- a/Content.Shared/Containers/ItemSlot/ItemSlotsSystem.cs +++ b/Content.Shared/Containers/ItemSlot/ItemSlotsSystem.cs @@ -10,6 +10,7 @@ using Content.Shared.Interaction.Events; using Content.Shared.Popups; using Content.Shared.Verbs; +using Content.Shared.Whitelist; using Robust.Shared.Audio.Systems; using Robust.Shared.Configuration; using Robust.Shared.Containers; @@ -34,6 +35,7 @@ public sealed class ItemSlotsSystem : EntitySystem [Dependency] private readonly SharedPopupSystem _popupSystem = default!; [Dependency] private readonly SharedHandsSystem _handsSystem = default!; [Dependency] private readonly SharedAudioSystem _audioSystem = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; private bool _defaultQuickSwap; @@ -96,7 +98,7 @@ private void Oninitialize(EntityUid uid, ItemSlotsComponent itemSlots, Component /// public void AddItemSlot(EntityUid uid, string id, ItemSlot slot, ItemSlotsComponent? itemSlots = null) { - itemSlots ??= EntityManager.EnsureComponent(uid); + itemSlots ??= EnsureComp(uid); DebugTools.AssertOwner(uid, itemSlots); if (itemSlots.Slots.TryGetValue(id, out var existing)) @@ -110,7 +112,7 @@ public void AddItemSlot(EntityUid uid, string id, ItemSlot slot, ItemSlotsCompon slot.ContainerSlot = _containers.EnsureContainer(uid, id); itemSlots.Slots[id] = slot; - Dirty(itemSlots); + Dirty(uid, itemSlots); } /// @@ -134,7 +136,7 @@ public void RemoveItemSlot(EntityUid uid, ItemSlot slot, ItemSlotsComponent? ite if (itemSlots.Slots.Count == 0) EntityManager.RemoveComponent(uid, itemSlots); else - Dirty(itemSlots); + Dirty(uid, itemSlots); } public bool TryGetSlot(EntityUid uid, string slotId, [NotNullWhen(true)] out ItemSlot? itemSlot, ItemSlotsComponent? component = null) @@ -262,8 +264,7 @@ public bool CanInsert(EntityUid uid, EntityUid usedUid, EntityUid? user, ItemSlo if (slot.ContainerSlot == null) return false; - if ((!slot.Whitelist?.IsValid(usedUid) ?? false) || - (slot.Blacklist?.IsValid(usedUid) ?? false)) + if (_whitelistSystem.IsWhitelistFail(slot.Whitelist, usedUid) || _whitelistSystem.IsBlacklistPass(slot.Blacklist, usedUid)) { if (popup.HasValue && slot.WhitelistFailPopup.HasValue) _popupSystem.PopupClient(Loc.GetString(slot.WhitelistFailPopup), uid, popup.Value); diff --git a/Content.Shared/Cuffs/Components/CuffableComponent.cs b/Content.Shared/Cuffs/Components/CuffableComponent.cs index 5da6fa41a5f..4ddfe1b53ee 100644 --- a/Content.Shared/Cuffs/Components/CuffableComponent.cs +++ b/Content.Shared/Cuffs/Components/CuffableComponent.cs @@ -1,6 +1,8 @@ +using Content.Shared.Alert; using Content.Shared.Damage; using Robust.Shared.Containers; using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; using Robust.Shared.Serialization; using Robust.Shared.Utility; @@ -39,6 +41,9 @@ public sealed partial class CuffableComponent : Component /// [DataField("canStillInteract"), ViewVariables(VVAccess.ReadWrite)] public bool CanStillInteract = true; + + [DataField] + public ProtoId CuffedAlert = "Handcuffed"; } [Serializable, NetSerializable] diff --git a/Content.Shared/Cuffs/SharedCuffableSystem.cs b/Content.Shared/Cuffs/SharedCuffableSystem.cs index 9777b239884..297fe095f8c 100644 --- a/Content.Shared/Cuffs/SharedCuffableSystem.cs +++ b/Content.Shared/Cuffs/SharedCuffableSystem.cs @@ -75,6 +75,7 @@ public override void Initialize() SubscribeLocalEvent(OnUnequipAttempt); SubscribeLocalEvent(OnBeingPulledAttempt); SubscribeLocalEvent(OnBuckleAttemptEvent); + SubscribeLocalEvent(OnUnbuckleAttemptEvent); SubscribeLocalEvent>(AddUncuffVerb); SubscribeLocalEvent(OnCuffableDoAfter); SubscribeLocalEvent(OnPull); @@ -177,12 +178,13 @@ public void UpdateCuffState(EntityUid uid, CuffableComponent component) if (component.CanStillInteract) { - _alerts.ClearAlert(uid, AlertType.Handcuffed); + _alerts.ClearAlert(uid, component.CuffedAlert); RaiseLocalEvent(uid, new MoodRemoveEffectEvent("Handcuffed")); } + else { - _alerts.ShowAlert(uid, AlertType.Handcuffed); + _alerts.ShowAlert(uid, component.CuffedAlert); RaiseLocalEvent(uid, new MoodEffectEvent("Handcuffed")); } @@ -199,21 +201,33 @@ private void OnBeingPulledAttempt(EntityUid uid, CuffableComponent component, Be args.Cancel(); } - private void OnBuckleAttemptEvent(EntityUid uid, CuffableComponent component, ref BuckleAttemptEvent args) + private void OnBuckleAttempt(Entity ent, EntityUid? user, ref bool cancelled, bool buckling, bool popup) { - // if someone else is doing it, let it pass. - if (args.UserEntity != uid) + if (cancelled || user != ent.Owner) + return; + + if (!TryComp(ent, out var hands) || ent.Comp.CuffedHandCount != hands.Count) return; - if (!TryComp(uid, out var hands) || component.CuffedHandCount != hands.Count) + cancelled = true; + if (!popup) return; - args.Cancelled = true; - var message = args.Buckling + var message = buckling ? Loc.GetString("handcuff-component-cuff-interrupt-buckled-message") : Loc.GetString("handcuff-component-cuff-interrupt-unbuckled-message"); - _popup.PopupClient(message, uid, args.UserEntity); + _popup.PopupClient(message, ent, user); + } + + private void OnBuckleAttemptEvent(Entity ent, ref BuckleAttemptEvent args) + { + OnBuckleAttempt(ent, args.User, ref args.Cancelled, true, args.Popup); + } + + private void OnUnbuckleAttemptEvent(Entity ent, ref UnbuckleAttemptEvent args) + { + OnBuckleAttempt(ent, args.User, ref args.Cancelled, false, args.Popup); } private void OnPull(EntityUid uid, CuffableComponent component, PullMessage args) @@ -652,8 +666,11 @@ public void Uncuff(EntityUid target, EntityUid? user, EntityUid cuffsToRemove, C if (cuff.BreakOnRemove) { QueueDel(cuffsToRemove); - var trash = Spawn(cuff.BrokenPrototype, Transform(cuffsToRemove).Coordinates); - _hands.PickupOrDrop(user, trash); + if (cuff.BrokenPrototype.HasValue) + { + var trash = Spawn(cuff.BrokenPrototype, Transform(cuffsToRemove).Coordinates); + _hands.PickupOrDrop(user, trash); + } } else { @@ -739,4 +756,4 @@ private sealed partial class AddCuffDoAfterEvent : SimpleDoAfterEvent { } } -} \ No newline at end of file +} diff --git a/Content.Shared/Customization/Systems/CharacterRequirements.Job.cs b/Content.Shared/Customization/Systems/CharacterRequirements.Job.cs index f9a060b7380..c57d870a377 100644 --- a/Content.Shared/Customization/Systems/CharacterRequirements.Job.cs +++ b/Content.Shared/Customization/Systems/CharacterRequirements.Job.cs @@ -23,12 +23,19 @@ public sealed partial class CharacterJobRequirement : CharacterRequirement [DataField(required: true)] public List> Jobs; - public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, - Dictionary playTimes, bool whitelisted, IPrototype prototype, - IEntityManager entityManager, IPrototypeManager prototypeManager, IConfigurationManager configManager, - out FormattedMessage? reason, int depth = 0) + public override bool IsValid(JobPrototype job, + HumanoidCharacterProfile profile, + Dictionary playTimes, + bool whitelisted, + IPrototype prototype, + IEntityManager entityManager, + IPrototypeManager prototypeManager, + IConfigurationManager configManager, + out string? reason, + int depth = 0) { - var jobs = new List(); + var jobs = new List(); + var depts = prototypeManager.EnumeratePrototypes(); // Get the job names and department colors foreach (var j in Jobs) @@ -36,8 +43,7 @@ public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, var jobProto = prototypeManager.Index(j); var color = Color.LightBlue; - foreach (var dept in prototypeManager.EnumeratePrototypes() - .OrderBy(d => Loc.GetString($"department-{d.ID}"))) + foreach (var dept in depts.ToList().OrderBy(d => Loc.GetString($"department-{d.ID}"))) { if (!dept.Roles.Contains(j)) continue; @@ -46,15 +52,14 @@ public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, break; } - jobs.Add(FormattedMessage.FromMarkup($"[color={color.ToHex()}]{Loc.GetString(jobProto.Name)}[/color]")); + jobs.Add($"[color={color.ToHex()}]{Loc.GetString(jobProto.Name)}[/color]"); } // Join the job names - var jobsList = string.Join(", ", jobs.Select(j => j.ToMarkup())); var jobsString = Loc.GetString("character-job-requirement", - ("inverted", Inverted), ("jobs", jobsList)); + ("inverted", Inverted), ("jobs", string.Join(", ", jobs))); - reason = FormattedMessage.FromMarkup(jobsString); + reason = jobsString; return Jobs.Contains(job.ID); } } @@ -69,12 +74,18 @@ public sealed partial class CharacterDepartmentRequirement : CharacterRequiremen [DataField(required: true)] public List> Departments; - public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, - Dictionary playTimes, bool whitelisted, IPrototype prototype, - IEntityManager entityManager, IPrototypeManager prototypeManager, IConfigurationManager configManager, - out FormattedMessage? reason, int depth = 0) + public override bool IsValid(JobPrototype job, + HumanoidCharacterProfile profile, + Dictionary playTimes, + bool whitelisted, + IPrototype prototype, + IEntityManager entityManager, + IPrototypeManager prototypeManager, + IConfigurationManager configManager, + out string? reason, + int depth = 0) { - var departments = new List(); + var departments = new List(); // Get the department names and colors foreach (var d in Departments) @@ -82,15 +93,14 @@ public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, var deptProto = prototypeManager.Index(d); var color = deptProto.Color; - departments.Add(FormattedMessage.FromMarkup($"[color={color.ToHex()}]{Loc.GetString($"department-{deptProto.ID}")}[/color]")); + departments.Add($"[color={color.ToHex()}]{Loc.GetString($"department-{deptProto.ID}")}[/color]"); } // Join the department names - var departmentsList = string.Join(", ", departments.Select(d => d.ToMarkup())); var departmentsString = Loc.GetString("character-department-requirement", - ("inverted", Inverted), ("departments", departmentsList)); + ("inverted", Inverted), ("departments", string.Join(", ", departments))); - reason = FormattedMessage.FromMarkup(departmentsString); + reason = departmentsString; return Departments.Any(d => prototypeManager.Index(d).Roles.Contains(job.ID)); } } @@ -111,10 +121,16 @@ public sealed partial class CharacterDepartmentTimeRequirement : CharacterRequir [DataField(required: true)] public ProtoId Department; - public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, - Dictionary playTimes, bool whitelisted, IPrototype prototype, - IEntityManager entityManager, IPrototypeManager prototypeManager, IConfigurationManager configManager, - out FormattedMessage? reason, int depth = 0) + public override bool IsValid(JobPrototype job, + HumanoidCharacterProfile profile, + Dictionary playTimes, + bool whitelisted, + IPrototype prototype, + IEntityManager entityManager, + IPrototypeManager prototypeManager, + IConfigurationManager configManager, + out string? reason, + int depth = 0) { // Disable the requirement if the role timers are disabled if (!configManager.GetCVar(CCVars.GameRoleTimers)) @@ -140,10 +156,10 @@ public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, // Show the reason if invalid reason = Inverted ? null - : FormattedMessage.FromMarkup(Loc.GetString("character-timer-department-too-high", + : Loc.GetString("character-timer-department-too-high", ("time", playtime.TotalMinutes - Max.TotalMinutes), ("department", Loc.GetString($"department-{department.ID}")), - ("departmentColor", department.Color))); + ("departmentColor", department.Color)); return false; } @@ -152,10 +168,10 @@ public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, // Show the reason if invalid reason = Inverted ? null - : FormattedMessage.FromMarkup(Loc.GetString("character-timer-department-insufficient", + : Loc.GetString("character-timer-department-insufficient", ("time", Min.TotalMinutes - playtime.TotalMinutes), ("department", Loc.GetString($"department-{department.ID}")), - ("departmentColor", department.Color))); + ("departmentColor", department.Color)); return false; } @@ -177,10 +193,16 @@ public sealed partial class CharacterOverallTimeRequirement : CharacterRequireme [DataField] public TimeSpan Max = TimeSpan.MaxValue; - public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, - Dictionary playTimes, bool whitelisted, IPrototype prototype, - IEntityManager entityManager, IPrototypeManager prototypeManager, IConfigurationManager configManager, - out FormattedMessage? reason, int depth = 0) + public override bool IsValid(JobPrototype job, + HumanoidCharacterProfile profile, + Dictionary playTimes, + bool whitelisted, + IPrototype prototype, + IEntityManager entityManager, + IPrototypeManager prototypeManager, + IConfigurationManager configManager, + out string? reason, + int depth = 0) { // Disable the requirement if the role timers are disabled if (!configManager.GetCVar(CCVars.GameRoleTimers)) @@ -197,8 +219,8 @@ public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, // Show the reason if invalid reason = Inverted ? null - : FormattedMessage.FromMarkup(Loc.GetString("character-timer-overall-too-high", - ("time", overallTime.TotalMinutes - Max.TotalMinutes))); + : Loc.GetString("character-timer-overall-too-high", + ("time", overallTime.TotalMinutes - Max.TotalMinutes)); return false; } @@ -207,8 +229,8 @@ public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, // Show the reason if invalid reason = Inverted ? null - : FormattedMessage.FromMarkup(Loc.GetString("character-timer-overall-insufficient", - ("time", Min.TotalMinutes - overallTime.TotalMinutes))); + : Loc.GetString("character-timer-overall-insufficient", + ("time", Min.TotalMinutes - overallTime.TotalMinutes)); return false; } @@ -233,10 +255,16 @@ public sealed partial class CharacterPlaytimeRequirement : CharacterRequirement [DataField(required: true)] public ProtoId Tracker; - public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, - Dictionary playTimes, bool whitelisted, IPrototype prototype, - IEntityManager entityManager, IPrototypeManager prototypeManager, IConfigurationManager configManager, - out FormattedMessage? reason, int depth = 0) + public override bool IsValid(JobPrototype job, + HumanoidCharacterProfile profile, + Dictionary playTimes, + bool whitelisted, + IPrototype prototype, + IEntityManager entityManager, + IPrototypeManager prototypeManager, + IConfigurationManager configManager, + out string? reason, + int depth = 0) { // Disable the requirement if the role timers are disabled if (!configManager.GetCVar(CCVars.GameRoleTimers)) @@ -275,10 +303,10 @@ public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, // Show the reason if invalid reason = Inverted ? null - : FormattedMessage.FromMarkup(Loc.GetString("character-timer-role-too-high", + : Loc.GetString("character-timer-role-too-high", ("time", time.TotalMinutes - Max.TotalMinutes), ("job", jobStr), - ("departmentColor", department.Color))); + ("departmentColor", department.Color)); return false; } @@ -287,10 +315,10 @@ public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, // Show the reason if invalid reason = Inverted ? null - : FormattedMessage.FromMarkup(Loc.GetString("character-timer-role-insufficient", + : Loc.GetString("character-timer-role-insufficient", ("time", Min.TotalMinutes - time.TotalMinutes), ("job", jobStr), - ("departmentColor", department.Color))); + ("departmentColor", department.Color)); return false; } diff --git a/Content.Shared/Customization/Systems/CharacterRequirements.Logic.cs b/Content.Shared/Customization/Systems/CharacterRequirements.Logic.cs index 397e74bc8b3..4f6f96bc650 100644 --- a/Content.Shared/Customization/Systems/CharacterRequirements.Logic.cs +++ b/Content.Shared/Customization/Systems/CharacterRequirements.Logic.cs @@ -1,4 +1,5 @@ using System.Linq; +using System.Text; using Content.Shared.Preferences; using Content.Shared.Roles; using JetBrains.Annotations; @@ -20,10 +21,16 @@ public sealed partial class CharacterLogicAndRequirement : CharacterRequirement [DataField] public List Requirements { get; private set; } = new(); - public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, - Dictionary playTimes, bool whitelisted, IPrototype prototype, - IEntityManager entityManager, IPrototypeManager prototypeManager, IConfigurationManager configManager, - out FormattedMessage? reason, int depth = 0) + public override bool IsValid(JobPrototype job, + HumanoidCharacterProfile profile, + Dictionary playTimes, + bool whitelisted, + IPrototype prototype, + IEntityManager entityManager, + IPrototypeManager prototypeManager, + IConfigurationManager configManager, + out string? reason, + int depth = 0) { var succeeded = entityManager.EntitySysManager.GetEntitySystem() .CheckRequirementsValid(Requirements, job, profile, playTimes, whitelisted, prototype, entityManager, @@ -35,12 +42,12 @@ public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, return succeeded; } - reason = new FormattedMessage(); + var reasonBuilder = new StringBuilder(); foreach (var message in reasons) - reason.AddMessage(FormattedMessage.FromMarkup( - Loc.GetString("character-logic-and-requirement-listprefix", ("indent", new string(' ', depth * 2))) + message.ToMarkup())); - reason = FormattedMessage.FromMarkup(Loc.GetString("character-logic-and-requirement", - ("inverted", Inverted), ("options", reason.ToMarkup()))); + reasonBuilder.Append(Loc.GetString("character-logic-and-requirement-listprefix", + ("indent", new string(' ', depth * 2))) + message); + reason = Loc.GetString("character-logic-and-requirement", + ("inverted", Inverted), ("options", reasonBuilder.ToString())); return succeeded; } @@ -56,13 +63,19 @@ public sealed partial class CharacterLogicOrRequirement : CharacterRequirement [DataField] public List Requirements { get; private set; } = new(); - public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, - Dictionary playTimes, bool whitelisted, IPrototype prototype, - IEntityManager entityManager, IPrototypeManager prototypeManager, IConfigurationManager configManager, - out FormattedMessage? reason, int depth = 0) + public override bool IsValid(JobPrototype job, + HumanoidCharacterProfile profile, + Dictionary playTimes, + bool whitelisted, + IPrototype prototype, + IEntityManager entityManager, + IPrototypeManager prototypeManager, + IConfigurationManager configManager, + out string? reason, + int depth = 0) { var succeeded = false; - var reasons = new List(); + var reasons = new List(); var characterRequirements = entityManager.EntitySysManager.GetEntitySystem(); foreach (var requirement in Requirements) @@ -84,12 +97,12 @@ public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, return succeeded; } - reason = new FormattedMessage(); + var reasonBuilder = new StringBuilder(); foreach (var message in reasons) - reason.AddMessage(FormattedMessage.FromMarkup( - Loc.GetString("character-logic-or-requirement-listprefix", ("indent", new string(' ', depth * 2))) + message.ToMarkup())); - reason = FormattedMessage.FromMarkup(Loc.GetString("character-logic-or-requirement", - ("inverted", Inverted), ("options", reason.ToMarkup()))); + reasonBuilder.Append(Loc.GetString("character-logic-or-requirement-listprefix", + ("indent", new string(' ', depth * 2))) + message); + reason = Loc.GetString("character-logic-or-requirement", + ("inverted", Inverted), ("options", reasonBuilder.ToString())); return succeeded; } @@ -105,12 +118,18 @@ public sealed partial class CharacterLogicXorRequirement : CharacterRequirement [DataField] public List Requirements { get; private set; } = new(); - public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, - Dictionary playTimes, bool whitelisted, IPrototype prototype, - IEntityManager entityManager, IPrototypeManager prototypeManager, IConfigurationManager configManager, - out FormattedMessage? reason, int depth = 0) + public override bool IsValid(JobPrototype job, + HumanoidCharacterProfile profile, + Dictionary playTimes, + bool whitelisted, + IPrototype prototype, + IEntityManager entityManager, + IPrototypeManager prototypeManager, + IConfigurationManager configManager, + out string? reason, + int depth = 0) { - var reasons = new List(); + var reasons = new List(); var succeeded = false; var characterRequirements = entityManager.EntitySysManager.GetEntitySystem(); @@ -138,12 +157,12 @@ public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, return succeeded; } - reason = new FormattedMessage(); + var reasonBuilder = new StringBuilder(); foreach (var message in reasons) - reason.AddMessage(FormattedMessage.FromMarkup( - Loc.GetString("character-logic-xor-requirement-listprefix", ("indent", new string(' ', depth * 2))) + message.ToMarkup())); - reason = FormattedMessage.FromMarkup(Loc.GetString("character-logic-xor-requirement", - ("inverted", Inverted), ("options", reason.ToMarkup()))); + reasonBuilder.Append(Loc.GetString("character-logic-xor-requirement-listprefix", + ("indent", new string(' ', depth * 2))) + message); + reason = Loc.GetString("character-logic-xor-requirement", + ("inverted", Inverted), ("options", reasonBuilder.ToString())); return succeeded; } diff --git a/Content.Shared/Customization/Systems/CharacterRequirements.Misc.cs b/Content.Shared/Customization/Systems/CharacterRequirements.Misc.cs new file mode 100644 index 00000000000..f13cb94f397 --- /dev/null +++ b/Content.Shared/Customization/Systems/CharacterRequirements.Misc.cs @@ -0,0 +1,55 @@ +using Content.Shared.Customization.Systems; +using Content.Shared.Preferences; +using Content.Shared.Roles; +using JetBrains.Annotations; +using Robust.Shared.Configuration; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; + +namespace Content.Shared.Customization.Systems; + +/// +/// Requires the server to have a specific CVar value. +/// +[UsedImplicitly, Serializable, NetSerializable,] +public sealed partial class CVarRequirement : CharacterRequirement +{ + [DataField("cvar", required: true)] + public string CVar; + + [DataField(required: true)] + public string RequiredValue; + + public override bool IsValid( + JobPrototype job, + HumanoidCharacterProfile profile, + Dictionary playTimes, + bool whitelisted, + IPrototype prototype, + IEntityManager entityManager, + IPrototypeManager prototypeManager, + IConfigurationManager configManager, + out string? reason, + int depth = 0 + ) + { + if (!configManager.IsCVarRegistered(CVar)) + { + reason = null; + return true; + } + + const string color = "lightblue"; + var cvar = configManager.GetCVar(CVar); + var isValid = cvar.ToString()! == RequiredValue; + + reason = Loc.GetString( + "character-cvar-requirement", + ("inverted", Inverted), + ("color", color), + ("cvar", CVar), + ("value", RequiredValue)); + + return isValid; + } +} diff --git a/Content.Shared/Customization/Systems/CharacterRequirements.Profile.cs b/Content.Shared/Customization/Systems/CharacterRequirements.Profile.cs index 568a7f1b61d..d250b46b1a8 100644 --- a/Content.Shared/Customization/Systems/CharacterRequirements.Profile.cs +++ b/Content.Shared/Customization/Systems/CharacterRequirements.Profile.cs @@ -12,7 +12,6 @@ using Robust.Shared.Physics; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; -using Robust.Shared.Utility; namespace Content.Shared.Customization.Systems; @@ -20,8 +19,7 @@ namespace Content.Shared.Customization.Systems; /// /// Requires the profile to be within an age range /// -[UsedImplicitly] -[Serializable, NetSerializable] +[UsedImplicitly, Serializable, NetSerializable] public sealed partial class CharacterAgeRequirement : CharacterRequirement { [DataField(required: true)] @@ -30,13 +28,24 @@ public sealed partial class CharacterAgeRequirement : CharacterRequirement [DataField(required: true)] public int Max; - public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, - Dictionary playTimes, bool whitelisted, IPrototype prototype, - IEntityManager entityManager, IPrototypeManager prototypeManager, IConfigurationManager configManager, - out FormattedMessage? reason, int depth = 0) + public override bool IsValid( + JobPrototype job, + HumanoidCharacterProfile profile, + Dictionary playTimes, + bool whitelisted, + IPrototype prototype, + IEntityManager entityManager, + IPrototypeManager prototypeManager, + IConfigurationManager configManager, + out string? reason, + int depth = 0 + ) { - reason = FormattedMessage.FromMarkup(Loc.GetString("character-age-requirement", - ("inverted", Inverted), ("min", Min), ("max", Max))); + reason = Loc.GetString( + "character-age-requirement", + ("inverted", Inverted), + ("min", Min), + ("max", Max)); return profile.Age >= Min && profile.Age <= Max; } } @@ -44,21 +53,29 @@ public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, /// /// Requires the profile to be a certain gender /// -[UsedImplicitly] -[Serializable, NetSerializable] +[UsedImplicitly, Serializable, NetSerializable] public sealed partial class CharacterGenderRequirement : CharacterRequirement { [DataField(required: true)] public Gender Gender; - public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, - Dictionary playTimes, bool whitelisted, IPrototype prototype, - IEntityManager entityManager, IPrototypeManager prototypeManager, IConfigurationManager configManager, - out FormattedMessage? reason, int depth = 0) + public override bool IsValid( + JobPrototype job, + HumanoidCharacterProfile profile, + Dictionary playTimes, + bool whitelisted, + IPrototype prototype, + IEntityManager entityManager, + IPrototypeManager prototypeManager, + IConfigurationManager configManager, + out string? reason, + int depth = 0 + ) { - reason = FormattedMessage.FromMarkup(Loc.GetString("character-gender-requirement", + reason = Loc.GetString( + "character-gender-requirement", ("inverted", Inverted), - ("gender", Loc.GetString($"humanoid-profile-editor-pronouns-{Gender.ToString().ToLower()}-text")))); + ("gender", Loc.GetString($"humanoid-profile-editor-pronouns-{Gender.ToString().ToLower()}-text"))); return profile.Gender == Gender; } } @@ -66,21 +83,29 @@ public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, /// /// Requires the profile to be a certain sex /// -[UsedImplicitly] -[Serializable, NetSerializable] +[UsedImplicitly, Serializable, NetSerializable] public sealed partial class CharacterSexRequirement : CharacterRequirement { [DataField(required: true)] public Sex Sex; - public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, - Dictionary playTimes, bool whitelisted, IPrototype prototype, - IEntityManager entityManager, IPrototypeManager prototypeManager, IConfigurationManager configManager, - out FormattedMessage? reason, int depth = 0) + public override bool IsValid( + JobPrototype job, + HumanoidCharacterProfile profile, + Dictionary playTimes, + bool whitelisted, + IPrototype prototype, + IEntityManager entityManager, + IPrototypeManager prototypeManager, + IConfigurationManager configManager, + out string? reason, + int depth = 0 + ) { - reason = FormattedMessage.FromMarkup(Loc.GetString("character-sex-requirement", + reason = Loc.GetString( + "character-sex-requirement", ("inverted", Inverted), - ("sex", Loc.GetString($"humanoid-profile-editor-sex-{Sex.ToString().ToLower()}-text")))); + ("sex", Loc.GetString($"humanoid-profile-editor-sex-{Sex.ToString().ToLower()}-text"))); return profile.Sex == Sex; } } @@ -88,33 +113,40 @@ public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, /// /// Requires the profile to be a certain species /// -[UsedImplicitly] -[Serializable, NetSerializable] +[UsedImplicitly, Serializable, NetSerializable] public sealed partial class CharacterSpeciesRequirement : CharacterRequirement { [DataField(required: true)] public List> Species; - public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, - Dictionary playTimes, bool whitelisted, IPrototype prototype, - IEntityManager entityManager, IPrototypeManager prototypeManager, IConfigurationManager configManager, - out FormattedMessage? reason, int depth = 0) + public override bool IsValid( + JobPrototype job, + HumanoidCharacterProfile profile, + Dictionary playTimes, + bool whitelisted, + IPrototype prototype, + IEntityManager entityManager, + IPrototypeManager prototypeManager, + IConfigurationManager configManager, + out string? reason, + int depth = 0 + ) { const string color = "green"; - reason = FormattedMessage.FromMarkup(Loc.GetString("character-species-requirement", + reason = Loc.GetString( + "character-species-requirement", ("inverted", Inverted), ("species", $"[color={color}]{string.Join($"[/color], [color={color}]", - Species.Select(s => Loc.GetString(prototypeManager.Index(s).Name)))}[/color]"))); + Species.Select(s => Loc.GetString(prototypeManager.Index(s).Name)))}[/color]")); return Species.Contains(profile.Species); } } /// -/// Requires the profile to be within a certain height range +/// Requires the profile to be within a certain height range /// -[UsedImplicitly] -[Serializable, NetSerializable] +[UsedImplicitly, Serializable, NetSerializable] public sealed partial class CharacterHeightRequirement : CharacterRequirement { /// @@ -129,16 +161,28 @@ public sealed partial class CharacterHeightRequirement : CharacterRequirement [DataField] public float Max = int.MaxValue; - public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, - Dictionary playTimes, bool whitelisted, IPrototype prototype, - IEntityManager entityManager, IPrototypeManager prototypeManager, IConfigurationManager configManager, - out FormattedMessage? reason, int depth = 0) + public override bool IsValid( + JobPrototype job, + HumanoidCharacterProfile profile, + Dictionary playTimes, + bool whitelisted, + IPrototype prototype, + IEntityManager entityManager, + IPrototypeManager prototypeManager, + IConfigurationManager configManager, + out string? reason, + int depth = 0 + ) { const string color = "yellow"; var species = prototypeManager.Index(profile.Species); - reason = FormattedMessage.FromMarkup(Loc.GetString("character-height-requirement", - ("inverted", Inverted), ("color", color), ("min", Min), ("max", Max))); + reason = Loc.GetString( + "character-height-requirement", + ("inverted", Inverted), + ("color", color), + ("min", Min), + ("max", Max)); var height = profile.Height * species.AverageHeight; return height >= Min && height <= Max; @@ -148,8 +192,7 @@ public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, /// /// Requires the profile to be within a certain width range /// -[UsedImplicitly] -[Serializable, NetSerializable] +[UsedImplicitly, Serializable, NetSerializable] public sealed partial class CharacterWidthRequirement : CharacterRequirement { /// @@ -164,16 +207,28 @@ public sealed partial class CharacterWidthRequirement : CharacterRequirement [DataField] public float Max = int.MaxValue; - public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, - Dictionary playTimes, bool whitelisted, IPrototype prototype, - IEntityManager entityManager, IPrototypeManager prototypeManager, IConfigurationManager configManager, - out FormattedMessage? reason, int depth = 0) + public override bool IsValid( + JobPrototype job, + HumanoidCharacterProfile profile, + Dictionary playTimes, + bool whitelisted, + IPrototype prototype, + IEntityManager entityManager, + IPrototypeManager prototypeManager, + IConfigurationManager configManager, + out string? reason, + int depth = 0 + ) { const string color = "yellow"; var species = prototypeManager.Index(profile.Species); - reason = FormattedMessage.FromMarkup(Loc.GetString("character-width-requirement", - ("inverted", Inverted), ("color", color), ("min", Min), ("max", Max))); + reason = Loc.GetString( + "character-width-requirement", + ("inverted", Inverted), + ("color", color), + ("min", Min), + ("max", Max)); var width = profile.Width * species.AverageWidth; return width >= Min && width <= Max; @@ -183,8 +238,7 @@ public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, /// /// Requires the profile to be within a certain weight range /// -[UsedImplicitly] -[Serializable, NetSerializable] +[UsedImplicitly, Serializable, NetSerializable] public sealed partial class CharacterWeightRequirement : CharacterRequirement { /// @@ -199,10 +253,18 @@ public sealed partial class CharacterWeightRequirement : CharacterRequirement [DataField] public float Max = int.MaxValue; - public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, - Dictionary playTimes, bool whitelisted, IPrototype prototype, - IEntityManager entityManager, IPrototypeManager prototypeManager, IConfigurationManager configManager, - out FormattedMessage? reason, int depth = 0) + public override bool IsValid( + JobPrototype job, + HumanoidCharacterProfile profile, + Dictionary playTimes, + bool whitelisted, + IPrototype prototype, + IEntityManager entityManager, + IPrototypeManager prototypeManager, + IConfigurationManager configManager, + out string? reason, + int depth = 0 + ) { const string color = "green"; var species = prototypeManager.Index(profile.Species); @@ -217,37 +279,49 @@ public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, var weight = MathF.Round( MathF.PI * MathF.Pow( fixture.Fixtures["fix1"].Shape.Radius - * ((profile.Width + profile.Height) / 2), 2) - * fixture.Fixtures["fix1"].Density); + * ((profile.Width + profile.Height) / 2), + 2) + * fixture.Fixtures["fix1"].Density); - reason = FormattedMessage.FromMarkup(Loc.GetString("character-weight-requirement", - ("inverted", Inverted), ("color", color), ("min", Min), ("max", Max))); + reason = Loc.GetString( + "character-weight-requirement", + ("inverted", Inverted), + ("color", color), + ("min", Min), + ("max", Max)); return weight >= Min && weight <= Max; } } - /// /// Requires the profile to have one of the specified traits /// -[UsedImplicitly] -[Serializable, NetSerializable] +[UsedImplicitly, Serializable, NetSerializable] public sealed partial class CharacterTraitRequirement : CharacterRequirement { [DataField(required: true)] public List> Traits; - public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, - Dictionary playTimes, bool whitelisted, IPrototype prototype, - IEntityManager entityManager, IPrototypeManager prototypeManager, IConfigurationManager configManager, - out FormattedMessage? reason, int depth = 0) + public override bool IsValid( + JobPrototype job, + HumanoidCharacterProfile profile, + Dictionary playTimes, + bool whitelisted, + IPrototype prototype, + IEntityManager entityManager, + IPrototypeManager prototypeManager, + IConfigurationManager configManager, + out string? reason, + int depth = 0 + ) { const string color = "lightblue"; - reason = FormattedMessage.FromMarkup(Loc.GetString("character-trait-requirement", + reason = Loc.GetString( + "character-trait-requirement", ("inverted", Inverted), ("traits", $"[color={color}]{string.Join($"[/color], [color={color}]", - Traits.Select(t => Loc.GetString($"trait-name-{t}")))}[/color]"))); + Traits.Select(t => Loc.GetString($"trait-name-{t}")))}[/color]")); return Traits.Any(t => profile.TraitPreferences.Contains(t.ToString())); } @@ -256,58 +330,76 @@ public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, /// /// Requires the profile to have one of the specified loadouts /// -[UsedImplicitly] -[Serializable, NetSerializable] +[UsedImplicitly, Serializable, NetSerializable] public sealed partial class CharacterLoadoutRequirement : CharacterRequirement { [DataField(required: true)] public List> Loadouts; - public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, - Dictionary playTimes, bool whitelisted, IPrototype prototype, - IEntityManager entityManager, IPrototypeManager prototypeManager, IConfigurationManager configManager, - out FormattedMessage? reason, int depth = 0) + public override bool IsValid( + JobPrototype job, + HumanoidCharacterProfile profile, + Dictionary playTimes, + bool whitelisted, + IPrototype prototype, + IEntityManager entityManager, + IPrototypeManager prototypeManager, + IConfigurationManager configManager, + out string? reason, + int depth = 0 + ) { const string color = "lightblue"; - reason = FormattedMessage.FromMarkup(Loc.GetString("character-loadout-requirement", + reason = Loc.GetString( + "character-loadout-requirement", ("inverted", Inverted), ("loadouts", $"[color={color}]{string.Join($"[/color], [color={color}]", - Loadouts.Select(l => Loc.GetString($"loadout-name-{l}")))}[/color]"))); + Loadouts.Select(l => Loc.GetString($"loadout-name-{l}")))}[/color]")); - return Loadouts.Any(l => profile.LoadoutPreferences.Contains(l.ToString())); + return Loadouts.Any(l => profile.LoadoutPreferences.Select(l => l.LoadoutName).Contains(l.ToString())); } } /// /// Requires the profile to not have any more than X of the specified traits, loadouts, etc, in a group /// -[UsedImplicitly] -[Serializable, NetSerializable] +[UsedImplicitly, Serializable, NetSerializable] public sealed partial class CharacterItemGroupRequirement : CharacterRequirement { [DataField(required: true)] public ProtoId Group; - public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, - Dictionary playTimes, bool whitelisted, IPrototype prototype, - IEntityManager entityManager, IPrototypeManager prototypeManager, IConfigurationManager configManager, - out FormattedMessage? reason, int depth = 0) + public override bool IsValid( + JobPrototype job, + HumanoidCharacterProfile profile, + Dictionary playTimes, + bool whitelisted, + IPrototype prototype, + IEntityManager entityManager, + IPrototypeManager prototypeManager, + IConfigurationManager configManager, + out string? reason, + int depth = 0 + ) { var group = prototypeManager.Index(Group); // Get the count of items in the group that are in the profile - var items = group.Items.Select(item => item.TryGetValue(profile, prototypeManager, out _) ? item.ID : null).Where(id => id != null).ToList(); + var items = group.Items.Select(item => item.TryGetValue(profile, prototypeManager, out _) ? item.ID : null) + .Where(id => id != null) + .ToList(); var count = items.Count; // If prototype is selected, remove one from the count if (items.ToList().Contains(prototype.ID)) count--; - reason = FormattedMessage.FromMarkup(Loc.GetString("character-item-group-requirement", + reason = Loc.GetString( + "character-item-group-requirement", ("inverted", Inverted), ("group", Loc.GetString($"character-item-group-{Group}")), - ("max", group.MaxItems))); + ("max", group.MaxItems)); return count < group.MaxItems; } -} +} \ No newline at end of file diff --git a/Content.Shared/Customization/Systems/CharacterRequirements.Whitelist.cs b/Content.Shared/Customization/Systems/CharacterRequirements.Whitelist.cs index 78a520ca8d9..515263c6db2 100644 --- a/Content.Shared/Customization/Systems/CharacterRequirements.Whitelist.cs +++ b/Content.Shared/Customization/Systems/CharacterRequirements.Whitelist.cs @@ -18,12 +18,18 @@ namespace Content.Shared.Customization.Systems; [Serializable, NetSerializable] public sealed partial class CharacterWhitelistRequirement : CharacterRequirement { - public override bool IsValid(JobPrototype job, HumanoidCharacterProfile profile, - Dictionary playTimes, bool whitelisted, IPrototype prototype, - IEntityManager entityManager, IPrototypeManager prototypeManager, IConfigurationManager configManager, - out FormattedMessage? reason, int depth = 0) + public override bool IsValid(JobPrototype job, + HumanoidCharacterProfile profile, + Dictionary playTimes, + bool whitelisted, + IPrototype prototype, + IEntityManager entityManager, + IPrototypeManager prototypeManager, + IConfigurationManager configManager, + out string? reason, + int depth = 0) { - reason = FormattedMessage.FromMarkup(Loc.GetString("character-whitelist-requirement", ("inverted", Inverted))); + reason = Loc.GetString("character-whitelist-requirement", ("inverted", Inverted)); return !configManager.GetCVar(CCVars.WhitelistEnabled) || whitelisted; } } diff --git a/Content.Shared/Customization/Systems/CharacterRequirements.cs b/Content.Shared/Customization/Systems/CharacterRequirements.cs index 2bf24700a6d..c0acb5ddb8a 100644 --- a/Content.Shared/Customization/Systems/CharacterRequirements.cs +++ b/Content.Shared/Customization/Systems/CharacterRequirements.cs @@ -35,7 +35,7 @@ public abstract bool IsValid( IEntityManager entityManager, IPrototypeManager prototypeManager, IConfigurationManager configManager, - out FormattedMessage? reason, + out string? reason, int depth = 0 ); } diff --git a/Content.Shared/Customization/Systems/CharacterRequirementsSystem.cs b/Content.Shared/Customization/Systems/CharacterRequirementsSystem.cs index 9becb640d16..24e7b81e242 100644 --- a/Content.Shared/Customization/Systems/CharacterRequirementsSystem.cs +++ b/Content.Shared/Customization/Systems/CharacterRequirementsSystem.cs @@ -18,7 +18,7 @@ public sealed class CharacterRequirementsSystem : EntitySystem public bool CheckRequirementValid(CharacterRequirement requirement, JobPrototype job, HumanoidCharacterProfile profile, Dictionary playTimes, bool whitelisted, IPrototype prototype, IEntityManager entityManager, IPrototypeManager prototypeManager, IConfigurationManager configManager, - out FormattedMessage? reason, int depth = 0) + out string? reason, int depth = 0) { // Return false if the requirement is invalid and not inverted // If it's inverted return false when it's valid @@ -33,9 +33,9 @@ public bool CheckRequirementValid(CharacterRequirement requirement, JobPrototype public bool CheckRequirementsValid(List requirements, JobPrototype job, HumanoidCharacterProfile profile, Dictionary playTimes, bool whitelisted, IPrototype prototype, IEntityManager entityManager, IPrototypeManager prototypeManager, IConfigurationManager configManager, - out List reasons, int depth = 0) + out List reasons, int depth = 0) { - reasons = new List(); + reasons = new List(); var valid = true; foreach (var requirement in requirements) @@ -66,7 +66,7 @@ public bool CheckRequirementsValid(List requirements, JobP /// /// Gets the reason text from as a . /// - public FormattedMessage GetRequirementsText(List reasons) + public FormattedMessage GetRequirementsText(List reasons) { return FormattedMessage.FromMarkup(GetRequirementsMarkup(reasons)); } @@ -74,11 +74,11 @@ public FormattedMessage GetRequirementsText(List reasons) /// /// Gets the reason text from as a markup string. /// - public string GetRequirementsMarkup(List reasons) + public string GetRequirementsMarkup(List reasons) { var text = new StringBuilder(); foreach (var reason in reasons) - text.Append($"\n{reason.ToMarkup()}"); + text.Append($"\n{reason}"); return text.ToString().Trim(); } diff --git a/Content.Shared/Cybernetics/CyberneticsComponent.cs b/Content.Shared/Cybernetics/CyberneticsComponent.cs new file mode 100644 index 00000000000..36c9754cce6 --- /dev/null +++ b/Content.Shared/Cybernetics/CyberneticsComponent.cs @@ -0,0 +1,16 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Cybernetics; + +/// +/// Component for cybernetic implants that can be installed in entities +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class CyberneticsComponent : Component { + + /// + /// Is the cybernetic implant disabled by EMPs, etc? + /// + [DataField, AutoNetworkedField] + public bool Disabled = false; +} diff --git a/Content.Shared/Damage/Components/ClothingSlowOnDamageModifierComponent.cs b/Content.Shared/Damage/Components/ClothingSlowOnDamageModifierComponent.cs new file mode 100644 index 00000000000..3d4bdd597c3 --- /dev/null +++ b/Content.Shared/Damage/Components/ClothingSlowOnDamageModifierComponent.cs @@ -0,0 +1,17 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Damage.Components; + +/// +/// This is used for a clothing item that modifies the slowdown from taking damage. +/// Used for entities with +/// +[RegisterComponent, NetworkedComponent, Access(typeof(SlowOnDamageSystem))] +public sealed partial class ClothingSlowOnDamageModifierComponent : Component +{ + /// + /// A coefficient modifier for the slowdown + /// + [DataField] + public float Modifier = 1; +} diff --git a/Content.Shared/Damage/Components/DamageOtherOnHitComponent.cs b/Content.Shared/Damage/Components/DamageOtherOnHitComponent.cs new file mode 100644 index 00000000000..ca5179fe29d --- /dev/null +++ b/Content.Shared/Damage/Components/DamageOtherOnHitComponent.cs @@ -0,0 +1,75 @@ +using Content.Shared.Contests; +using Content.Shared.Damage.Systems; +using Content.Shared.Damage; +using Robust.Shared.Audio; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Damage.Components; + +/// +/// Deals damage when thrown. +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class DamageOtherOnHitComponent : Component +{ + [DataField, AutoNetworkedField] + public bool IgnoreResistances = false; + + /// + /// The damage that a throw deals. + /// + [DataField, AutoNetworkedField] + public DamageSpecifier Damage = new(); + + /// + /// The stamina cost of throwing this entity. + /// + [DataField, AutoNetworkedField] + public float StaminaCost = 3.5f; + + /// + /// The maximum amount of hits per throw before landing on the floor. + /// + [DataField, AutoNetworkedField] + public int MaxHitQuantity = 1; + + /// + /// The tracked amount of hits in a single throw. + /// + [DataField, AutoNetworkedField] + public int HitQuantity = 0; + + /// + /// The multiplier to apply to the entity's light attack damage to calculate the throwing damage. + /// Only used if this component has a MeleeWeaponComponent and Damage is not set on the prototype. + /// + [DataField, AutoNetworkedField] + public float MeleeDamageMultiplier = 1f; + + /// + /// The sound to play when this entity hits on a throw. + /// If null, attempts to retrieve the SoundHit from MeleeWeaponComponent. + /// + [DataField, AutoNetworkedField] + public SoundSpecifier? SoundHit; + + /// + /// Arguments for modifying the throwing weapon damage with contests. + /// These are the same ContestArgs in MeleeWeaponComponent. + /// + [DataField] + public ContestArgs ContestArgs = new ContestArgs + { + DoStaminaInteraction = true, + StaminaDisadvantage = true, + DoHealthInteraction = true, + }; + + /// + /// Plays if no damage is done to the target entity. + /// If null, attempts to retrieve the SoundNoDamage from MeleeWeaponComponent. + /// + [DataField, AutoNetworkedField] + public SoundSpecifier SoundNoDamage { get; set; } = new SoundCollectionSpecifier("WeakHit"); +} diff --git a/Content.Shared/Damage/Components/DamageOtherOnHitImmuneComponent.cs b/Content.Shared/Damage/Components/DamageOtherOnHitImmuneComponent.cs new file mode 100644 index 00000000000..2be4886fbd8 --- /dev/null +++ b/Content.Shared/Damage/Components/DamageOtherOnHitImmuneComponent.cs @@ -0,0 +1,7 @@ +namespace Content.Shared.Damage.Components; + +/// +/// This is used for entities that are immune to getting hit by DamageOtherOnHit, and getting embedded from EmbeddableProjectile. +/// +[RegisterComponent] +public sealed partial class DamageOtherOnHitImmuneComponent : Component {} diff --git a/Content.Shared/Damage/Components/DamageableComponent.cs b/Content.Shared/Damage/Components/DamageableComponent.cs index be66d51e3bc..3c3a27c5fac 100644 --- a/Content.Shared/Damage/Components/DamageableComponent.cs +++ b/Content.Shared/Damage/Components/DamageableComponent.cs @@ -40,6 +40,12 @@ public sealed partial class DamageableComponent : Component [DataField("damageModifierSet", customTypeSerializer: typeof(PrototypeIdSerializer))] public string? DamageModifierSetId; + /// + /// List of all Modifier Sets stored by this entity. The above single format is a deprecated function used only to support legacy yml. + /// + [DataField] + public List DamageModifierSets = new(); + /// /// All the damage information is stored in this . /// diff --git a/Content.Shared/Damage/Components/StaminaComponent.cs b/Content.Shared/Damage/Components/StaminaComponent.cs index b78fe978090..46eaa9f1f05 100644 --- a/Content.Shared/Damage/Components/StaminaComponent.cs +++ b/Content.Shared/Damage/Components/StaminaComponent.cs @@ -1,4 +1,6 @@ +using Content.Shared.Alert; using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Shared.Damage.Components; @@ -70,4 +72,7 @@ public sealed partial class StaminaComponent : Component /// [DataField, AutoNetworkedField] public float SlowdownMultiplier = 0.75f; -} \ No newline at end of file + + [DataField] + public ProtoId StaminaAlert = "Stamina"; +} diff --git a/Content.Shared/Damage/Events/DamageOtherOnHitEvents.cs b/Content.Shared/Damage/Events/DamageOtherOnHitEvents.cs new file mode 100644 index 00000000000..512546fda50 --- /dev/null +++ b/Content.Shared/Damage/Events/DamageOtherOnHitEvents.cs @@ -0,0 +1,21 @@ +using Content.Shared.Damage; +using Content.Shared.Damage.Components; +using Content.Shared.Item.ItemToggle.Components; + +namespace Content.Shared.Damage.Events; + +/// +/// Raised on a throwing weapon to calculate potential damage bonuses or decreases. +/// +[ByRefEvent] +public record struct GetThrowingDamageEvent(EntityUid Weapon, DamageSpecifier Damage, List Modifiers, EntityUid? User); + +/// +/// Raised on a throwing weapon when DamageOtherOnHit has been successfully initialized. +/// +public record struct DamageOtherOnHitStartupEvent(Entity Weapon); + +/// +/// Raised on a throwing weapon when ItemToggleDamageOtherOnHit has been successfully initialized. +/// +public record struct ItemToggleDamageOtherOnHitStartupEvent(Entity Weapon); diff --git a/Content.Shared/Damage/Systems/DamageContactsSystem.cs b/Content.Shared/Damage/Systems/DamageContactsSystem.cs index aec3d0766ae..b08ef77fed5 100644 --- a/Content.Shared/Damage/Systems/DamageContactsSystem.cs +++ b/Content.Shared/Damage/Systems/DamageContactsSystem.cs @@ -1,4 +1,5 @@ using Content.Shared.Damage.Components; +using Content.Shared.Whitelist; using Robust.Shared.Physics.Components; using Robust.Shared.Physics.Events; using Robust.Shared.Physics.Systems; @@ -11,6 +12,7 @@ public sealed class DamageContactsSystem : EntitySystem [Dependency] private readonly IGameTiming _timing = default!; [Dependency] private readonly DamageableSystem _damageable = default!; [Dependency] private readonly SharedPhysicsSystem _physics = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; public override void Initialize() { @@ -63,7 +65,7 @@ private void OnEntityEnter(EntityUid uid, DamageContactsComponent component, ref if (HasComp(otherUid)) return; - if (component.IgnoreWhitelist?.IsValid(otherUid) ?? false) + if (_whitelistSystem.IsWhitelistFail(component.IgnoreWhitelist, otherUid)) return; var damagedByContact = EnsureComp(otherUid); diff --git a/Content.Shared/Damage/Systems/DamageableSystem.cs b/Content.Shared/Damage/Systems/DamageableSystem.cs index 4aaf380c47d..4e42fc5d251 100644 --- a/Content.Shared/Damage/Systems/DamageableSystem.cs +++ b/Content.Shared/Damage/Systems/DamageableSystem.cs @@ -6,11 +6,14 @@ using Content.Shared.Mind.Components; using Content.Shared.Mobs.Components; using Content.Shared.Mobs.Systems; +using Content.Shared.Body.Systems; using Content.Shared.Radiation.Events; using Content.Shared.Rejuvenate; +using Content.Shared.Targeting; using Robust.Shared.GameStates; using Robust.Shared.Network; using Robust.Shared.Prototypes; +using Robust.Shared.Random; using Robust.Shared.Utility; namespace Content.Shared.Damage @@ -22,6 +25,8 @@ public sealed class DamageableSystem : EntitySystem [Dependency] private readonly INetManager _netMan = default!; [Dependency] private readonly MobThresholdSystem _mobThreshold = default!; + [Dependency] private readonly SharedBodySystem _body = default!; + [Dependency] private readonly IRobustRandom _random = default!; private EntityQuery _appearanceQuery; private EntityQuery _damageableQuery; private EntityQuery _mindContainerQuery; @@ -98,7 +103,8 @@ public void SetDamage(EntityUid uid, DamageableComponent damageable, DamageSpeci /// The damage changed event is used by other systems, such as damage thresholds. /// public void DamageChanged(EntityUid uid, DamageableComponent component, DamageSpecifier? damageDelta = null, - bool interruptsDoAfters = true, EntityUid? origin = null) + bool interruptsDoAfters = true, EntityUid? origin = null, bool? canSever = null) + { component.Damage.GetDamagePerGroup(_prototypeManager, component.DamagePerGroup); component.TotalDamage = component.Damage.GetTotal(); @@ -109,7 +115,7 @@ public void DamageChanged(EntityUid uid, DamageableComponent component, DamageSp var data = new DamageVisualizerGroupData(component.DamagePerGroup.Keys.ToList()); _appearance.SetData(uid, DamageVisualizerKeys.DamageUpdateGroups, data, appearance); } - RaiseLocalEvent(uid, new DamageChangedEvent(component, damageDelta, interruptsDoAfters, origin)); + RaiseLocalEvent(uid, new DamageChangedEvent(component, damageDelta, interruptsDoAfters, origin, canSever ?? true)); } /// @@ -125,7 +131,8 @@ public void DamageChanged(EntityUid uid, DamageableComponent component, DamageSp /// null if the user had no applicable components that can take damage. /// public DamageSpecifier? TryChangeDamage(EntityUid? uid, DamageSpecifier damage, bool ignoreResistances = false, - bool interruptsDoAfters = true, DamageableComponent? damageable = null, EntityUid? origin = null) + bool interruptsDoAfters = true, DamageableComponent? damageable = null, EntityUid? origin = null, + bool? canSever = true, bool? canEvade = false, float? partMultiplier = 1.00f, TargetBodyPart? targetPart = null) { if (!uid.HasValue || !_damageableQuery.Resolve(uid.Value, ref damageable, false)) { @@ -138,12 +145,18 @@ public void DamageChanged(EntityUid uid, DamageableComponent component, DamageSp return damage; } - var before = new BeforeDamageChangedEvent(damage, origin); + var before = new BeforeDamageChangedEvent(damage, origin, targetPart); RaiseLocalEvent(uid.Value, ref before); if (before.Cancelled) return null; + var partDamage = new TryChangePartDamageEvent(damage, origin, targetPart, canSever ?? true, canEvade ?? false, partMultiplier ?? 1.00f); + RaiseLocalEvent(uid.Value, ref partDamage); + + if (partDamage.Evaded || partDamage.Cancelled) + return null; + // Apply resistances if (!ignoreResistances) { @@ -152,10 +165,17 @@ public void DamageChanged(EntityUid uid, DamageableComponent component, DamageSp { // TODO DAMAGE PERFORMANCE // use a local private field instead of creating a new dictionary here.. + // TODO: We need to add a check to see if the given armor covers the targeted part (if any) to modify or not. damage = DamageSpecifier.ApplyModifierSet(damage, modifierSet); } - var ev = new DamageModifyEvent(damage, origin); + // From Solidus: If you are reading this, I owe you a more comprehensive refactor of this entire system. + if (damageable.DamageModifierSets.Count > 0) + foreach (var enumerableModifierSet in damageable.DamageModifierSets) + if (_prototypeManager.TryIndex(enumerableModifierSet, out var enumerableModifier)) + damage = DamageSpecifier.ApplyModifierSet(damage, enumerableModifier); + + var ev = new DamageModifyEvent(damage, origin, targetPart); RaiseLocalEvent(uid.Value, ev); damage = ev.Damage; @@ -187,7 +207,7 @@ public void DamageChanged(EntityUid uid, DamageableComponent component, DamageSp } if (delta.DamageDict.Count > 0) - DamageChanged(uid.Value, damageable, delta, interruptsDoAfters, origin); + DamageChanged(uid.Value, damageable, delta, interruptsDoAfters, origin, canSever); return delta; } @@ -214,6 +234,17 @@ public void SetAllDamage(EntityUid uid, DamageableComponent component, FixedPoin // Setting damage does not count as 'dealing' damage, even if it is set to a larger value, so we pass an // empty damage delta. DamageChanged(uid, component, new DamageSpecifier()); + + // Shitmed Start + if (HasComp(uid)) + foreach (var (part, _) in _body.GetBodyChildren(uid)) + { + if (!TryComp(part, out DamageableComponent? damageComp)) + continue; + + SetAllDamage(part, damageComp, newValue); + } + // Shitmed End } public void SetDamageModifierSetId(EntityUid uid, string damageModifierSetId, DamageableComponent? comp = null) @@ -286,7 +317,25 @@ private void DamageableHandleState(EntityUid uid, DamageableComponent component, /// Raised before damage is done, so stuff can cancel it if necessary. /// [ByRefEvent] - public record struct BeforeDamageChangedEvent(DamageSpecifier Damage, EntityUid? Origin = null, bool Cancelled = false); + public record struct BeforeDamageChangedEvent( + DamageSpecifier Damage, + EntityUid? Origin = null, + TargetBodyPart? TargetPart = null, + bool Cancelled = false); + + /// + /// Raised on parts before damage is done so we can cancel the damage if they evade. + /// + [ByRefEvent] + public record struct TryChangePartDamageEvent( + DamageSpecifier Damage, + EntityUid? Origin = null, + TargetBodyPart? TargetPart = null, + bool CanSever = true, + bool CanEvade = false, + float PartMultiplier = 1.00f, + bool Evaded = false, + bool Cancelled = false); /// /// Raised on an entity when damage is about to be dealt, @@ -299,16 +348,17 @@ public sealed class DamageModifyEvent : EntityEventArgs, IInventoryRelayEvent { // Whenever locational damage is a thing, this should just check only that bit of armour. public SlotFlags TargetSlots { get; } = ~SlotFlags.POCKET; - public readonly DamageSpecifier OriginalDamage; public DamageSpecifier Damage; public EntityUid? Origin; + public readonly TargetBodyPart? TargetPart; - public DamageModifyEvent(DamageSpecifier damage, EntityUid? origin = null) + public DamageModifyEvent(DamageSpecifier damage, EntityUid? origin = null, TargetBodyPart? targetPart = null) { OriginalDamage = damage; Damage = damage; Origin = origin; + TargetPart = targetPart; } } @@ -347,11 +397,17 @@ public sealed class DamageChangedEvent : EntityEventArgs /// public readonly EntityUid? Origin; - public DamageChangedEvent(DamageableComponent damageable, DamageSpecifier? damageDelta, bool interruptsDoAfters, EntityUid? origin) + /// + /// Can this damage event sever parts? + /// + public readonly bool CanSever; + + public DamageChangedEvent(DamageableComponent damageable, DamageSpecifier? damageDelta, bool interruptsDoAfters, EntityUid? origin, bool canSever = true) { Damageable = damageable; DamageDelta = damageDelta; Origin = origin; + CanSever = canSever; if (DamageDelta == null) return; diff --git a/Content.Shared/Damage/Systems/SharedDamageOtherOnHitSystem.cs b/Content.Shared/Damage/Systems/SharedDamageOtherOnHitSystem.cs new file mode 100644 index 00000000000..8b3d29d7349 --- /dev/null +++ b/Content.Shared/Damage/Systems/SharedDamageOtherOnHitSystem.cs @@ -0,0 +1,201 @@ +using Content.Shared.Administration.Logs; +using Content.Shared.Camera; +using Content.Shared.Contests; +using Content.Shared.Damage; +using Content.Shared.Damage.Components; +using Content.Shared.Damage.Events; +using Content.Shared.Database; +using Content.Shared.Effects; +using Content.Shared.Item.ItemToggle.Components; +using Content.Shared.Mobs.Components; +using Content.Shared.Projectiles; +using Content.Shared.Popups; +using Content.Shared.Throwing; +using Content.Shared.Weapons.Melee; +using Robust.Shared.GameObjects; +using Robust.Shared.Audio; +using Robust.Shared.Physics.Components; +using Robust.Shared.Physics.Systems; +using Robust.Shared.Player; +using Robust.Shared.Prototypes; +using Robust.Shared.Utility; + +namespace Content.Shared.Damage.Systems +{ + public abstract partial class SharedDamageOtherOnHitSystem : EntitySystem + { + [Dependency] private readonly ISharedAdminLogManager _adminLogger = default!; + [Dependency] private readonly DamageableSystem _damageable = default!; + [Dependency] private readonly SharedCameraRecoilSystem _sharedCameraRecoil = default!; + [Dependency] private readonly SharedColorFlashEffectSystem _color = default!; + [Dependency] private readonly ThrownItemSystem _thrownItem = default!; + [Dependency] private readonly SharedPhysicsSystem _physics = default!; + [Dependency] private readonly MeleeSoundSystem _meleeSound = default!; + [Dependency] private readonly IPrototypeManager _protoManager = default!; + [Dependency] private readonly ContestsSystem _contests = default!; + + public override void Initialize() + { + SubscribeLocalEvent(OnMapInit); + SubscribeLocalEvent(OnDoHit); + SubscribeLocalEvent(OnThrown); + + SubscribeLocalEvent(OnItemToggleMapInit); + SubscribeLocalEvent(OnItemToggle); + } + + /// + /// Inherit stats from MeleeWeapon. + /// + private void OnMapInit(EntityUid uid, DamageOtherOnHitComponent component, MapInitEvent args) + { + if (!TryComp(uid, out var melee)) + return; + + if (component.Damage.Empty) + component.Damage = melee.Damage * component.MeleeDamageMultiplier; + if (component.SoundHit == null) + component.SoundHit = melee.SoundHit; + if (component.SoundNoDamage == null) + { + if (melee.SoundNoDamage != null) + component.SoundNoDamage = melee.SoundNoDamage; + else + component.SoundNoDamage = new SoundCollectionSpecifier("WeakHit"); + } + + RaiseLocalEvent(uid, new DamageOtherOnHitStartupEvent((uid, component))); + } + + /// + /// Inherit stats from ItemToggleMeleeWeaponComponent. + /// + private void OnItemToggleMapInit(EntityUid uid, ItemToggleDamageOtherOnHitComponent component, MapInitEvent args) + { + if (!TryComp(uid, out var itemToggleMelee) || + !TryComp(uid, out var damage)) + return; + + if (component.ActivatedDamage == null && itemToggleMelee.ActivatedDamage is {} activatedDamage) + component.ActivatedDamage = activatedDamage * damage.MeleeDamageMultiplier; + if (component.ActivatedSoundHit == null) + component.ActivatedSoundHit = itemToggleMelee.ActivatedSoundOnHit; + if (component.ActivatedSoundNoDamage == null && itemToggleMelee.ActivatedSoundOnHitNoDamage is {} activatedSoundOnHitNoDamage) + component.ActivatedSoundNoDamage = activatedSoundOnHitNoDamage; + + RaiseLocalEvent(uid, new ItemToggleDamageOtherOnHitStartupEvent((uid, component))); + } + + private void OnDoHit(EntityUid uid, DamageOtherOnHitComponent component, ThrowDoHitEvent args) + { + if (component.HitQuantity >= component.MaxHitQuantity) + return; + + var modifiedDamage = _damageable.TryChangeDamage(args.Target, GetDamage(uid, component, args.Component.Thrower), + component.IgnoreResistances, origin: args.Component.Thrower, targetPart: args.TargetPart); + + // Log damage only for mobs. Useful for when people throw spears at each other, but also avoids log-spam when explosions send glass shards flying. + if (modifiedDamage != null) + { + if (HasComp(args.Target)) + _adminLogger.Add(LogType.ThrowHit, $"{ToPrettyString(args.Target):target} received {modifiedDamage.GetTotal():damage} damage from collision"); + + _meleeSound.PlayHitSound(args.Target, null, SharedMeleeWeaponSystem.GetHighestDamageSound(modifiedDamage, _protoManager), null, + component.SoundHit, component.SoundNoDamage); + } + + if (modifiedDamage is { Empty: false }) + _color.RaiseEffect(Color.Red, new List() { args.Target }, Filter.Pvs(args.Target, entityManager: EntityManager)); + + if (TryComp(uid, out var body) && body.LinearVelocity.LengthSquared() > 0f) + { + var direction = body.LinearVelocity.Normalized(); + _sharedCameraRecoil.KickCamera(args.Target, direction); + } + + // TODO: If more stuff touches this then handle it after. + if (TryComp(uid, out var physics)) + { + _thrownItem.LandComponent(args.Thrown, args.Component, physics, false); + + if (!HasComp(args.Thrown)) + { + var newVelocity = physics.LinearVelocity; + newVelocity.X = -newVelocity.X / 4; + newVelocity.Y = -newVelocity.Y / 4; + _physics.SetLinearVelocity(uid, newVelocity, body: physics); + } + } + + component.HitQuantity += 1; + } + + /// + /// Used to update the DamageOtherOnHit component on item toggle. + /// + private void OnItemToggle(EntityUid uid, DamageOtherOnHitComponent component, ItemToggledEvent args) + { + if (!TryComp(uid, out var itemToggle)) + return; + + if (args.Activated) + { + if (itemToggle.ActivatedDamage is {} activatedDamage) + { + itemToggle.DeactivatedDamage ??= component.Damage; + component.Damage = activatedDamage * component.MeleeDamageMultiplier; + } + + if (itemToggle.ActivatedStaminaCost is {} activatedStaminaCost) + { + itemToggle.DeactivatedStaminaCost ??= component.StaminaCost; + component.StaminaCost = activatedStaminaCost; + } + + itemToggle.DeactivatedSoundHit ??= component.SoundHit; + component.SoundHit = itemToggle.ActivatedSoundHit; + + if (itemToggle.ActivatedSoundNoDamage is {} activatedSoundNoDamage) + { + itemToggle.DeactivatedSoundNoDamage ??= component.SoundNoDamage; + component.SoundNoDamage = activatedSoundNoDamage; + } + } + else + { + if (itemToggle.DeactivatedDamage is {} deactivatedDamage) + component.Damage = deactivatedDamage; + + if (itemToggle.DeactivatedStaminaCost is {} deactivatedStaminaCost) + component.StaminaCost = deactivatedStaminaCost; + + component.SoundHit = itemToggle.DeactivatedSoundHit; + + if (itemToggle.DeactivatedSoundNoDamage is {} deactivatedSoundNoDamage) + component.SoundNoDamage = deactivatedSoundNoDamage; + } + } + + private void OnThrown(EntityUid uid, DamageOtherOnHitComponent component, ThrownEvent args) + { + component.HitQuantity = 0; + } + + /// + /// Gets the total damage a throwing weapon does. + /// + public DamageSpecifier GetDamage(EntityUid uid, DamageOtherOnHitComponent? component = null, EntityUid? user = null) + { + if (!Resolve(uid, ref component, false)) + return new DamageSpecifier(); + + var ev = new GetThrowingDamageEvent(uid, component.Damage, new(), user); + RaiseLocalEvent(uid, ref ev); + + if (component.ContestArgs is not null && user is EntityUid userUid) + ev.Damage *= _contests.ContestConstructor(userUid, component.ContestArgs); + + return DamageSpecifier.ApplyModifierSets(ev.Damage, ev.Modifiers); + } + } +} diff --git a/Content.Shared/Damage/Systems/SharedGodmodeSystem.cs b/Content.Shared/Damage/Systems/SharedGodmodeSystem.cs index d904c211eea..ab46684a6f7 100644 --- a/Content.Shared/Damage/Systems/SharedGodmodeSystem.cs +++ b/Content.Shared/Damage/Systems/SharedGodmodeSystem.cs @@ -2,13 +2,15 @@ using Content.Shared.Rejuvenate; using Content.Shared.Slippery; using Content.Shared.StatusEffect; +using Content.Shared.Body.Systems; +using Content.Shared.Targeting; namespace Content.Shared.Damage.Systems; public abstract class SharedGodmodeSystem : EntitySystem { [Dependency] private readonly DamageableSystem _damageable = default!; - + [Dependency] private readonly SharedBodySystem _bodySystem = default!; public override void Initialize() { base.Initialize(); @@ -49,7 +51,12 @@ public virtual void EnableGodmode(EntityUid uid, GodmodeComponent? godmode = nul } // Rejuv to cover other stuff + RaiseLocalEvent(uid, new RejuvenateEvent()); + foreach (var (id, _) in _bodySystem.GetBodyChildren(uid)) + { + EnableGodmode(id); + } } public virtual void DisableGodmode(EntityUid uid, GodmodeComponent? godmode = null) @@ -63,6 +70,10 @@ public virtual void DisableGodmode(EntityUid uid, GodmodeComponent? godmode = nu } RemComp(uid); + foreach (var (id, _) in _bodySystem.GetBodyChildren(uid)) + { + DisableGodmode(id); + } } /// diff --git a/Content.Shared/Damage/Systems/SlowOnDamageSystem.cs b/Content.Shared/Damage/Systems/SlowOnDamageSystem.cs index 833883c144c..3e50ee35572 100644 --- a/Content.Shared/Damage/Systems/SlowOnDamageSystem.cs +++ b/Content.Shared/Damage/Systems/SlowOnDamageSystem.cs @@ -1,5 +1,8 @@ +using Content.Shared.Clothing; using Content.Shared.Damage.Components; +using Content.Shared.Examine; using Content.Shared.FixedPoint; +using Content.Shared.Inventory; using Content.Shared.Movement.Systems; namespace Content.Shared.Damage @@ -14,6 +17,11 @@ public override void Initialize() SubscribeLocalEvent(OnDamageChanged); SubscribeLocalEvent(OnRefreshMovespeed); + + SubscribeLocalEvent>(OnModifySpeed); + SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnGotEquipped); + SubscribeLocalEvent(OnGotUnequipped); } private void OnRefreshMovespeed(EntityUid uid, SlowOnDamageComponent component, RefreshMovementSpeedModifiersEvent args) @@ -36,7 +44,10 @@ private void OnRefreshMovespeed(EntityUid uid, SlowOnDamageComponent component, if (closest != FixedPoint2.Zero) { var speed = component.SpeedModifierThresholds[closest]; - args.ModifySpeed(speed, speed); + + var ev = new ModifySlowOnDamageSpeedEvent(speed); + RaiseLocalEvent(uid, ref ev); + args.ModifySpeed(ev.Speed, ev.Speed); } } @@ -47,5 +58,37 @@ private void OnDamageChanged(EntityUid uid, SlowOnDamageComponent component, Dam _movementSpeedModifierSystem.RefreshMovementSpeedModifiers(uid); } + + private void OnModifySpeed(Entity ent, ref InventoryRelayedEvent args) + { + var dif = 1 - args.Args.Speed; + if (dif <= 0) + return; + + // reduces the slowness modifier by the given coefficient + args.Args.Speed += dif * ent.Comp.Modifier; + } + + private void OnExamined(Entity ent, ref ExaminedEvent args) + { + var msg = Loc.GetString("slow-on-damage-modifier-examine", ("mod", (1 - ent.Comp.Modifier) * 100)); + args.PushMarkup(msg); + } + + private void OnGotEquipped(Entity ent, ref ClothingGotEquippedEvent args) + { + _movementSpeedModifierSystem.RefreshMovementSpeedModifiers(args.Wearer); + } + + private void OnGotUnequipped(Entity ent, ref ClothingGotUnequippedEvent args) + { + _movementSpeedModifierSystem.RefreshMovementSpeedModifiers(args.Wearer); + } + } + + [ByRefEvent] + public record struct ModifySlowOnDamageSpeedEvent(float Speed) : IInventoryRelayEvent + { + public SlotFlags TargetSlots => SlotFlags.WITHOUT_POCKET; } } diff --git a/Content.Shared/Damage/Systems/StaminaSystem.cs b/Content.Shared/Damage/Systems/StaminaSystem.cs index e4840a6630b..4f0b0061916 100644 --- a/Content.Shared/Damage/Systems/StaminaSystem.cs +++ b/Content.Shared/Damage/Systems/StaminaSystem.cs @@ -231,12 +231,12 @@ private void SetStaminaAlert(EntityUid uid, StaminaComponent? component = null) { if (!Resolve(uid, ref component, false) || component.Deleted) { - _alerts.ClearAlert(uid, AlertType.Stamina); + _alerts.ClearAlert(uid, "Stamina"); return; } var severity = ContentHelpers.RoundToLevels(MathF.Max(0f, component.CritThreshold - component.StaminaDamage), component.CritThreshold, 7); - _alerts.ShowAlert(uid, AlertType.Stamina, (short) severity); + _alerts.ShowAlert(uid, component.StaminaAlert, (short) severity); } /// @@ -304,7 +304,7 @@ public void TakeStaminaDamage(EntityUid uid, float value, StaminaComponent? comp } EnsureComp(uid); - Dirty(component); + Dirty(uid, component); if (value <= 0) return; @@ -410,7 +410,7 @@ private void EnterStamCrit(EntityUid uid, StaminaComponent? component = null) // Give them buffer before being able to be re-stunned component.NextUpdate = _timing.CurTime + component.StunTime + StamCritBufferTime; EnsureComp(uid); - Dirty(component); + Dirty(uid, component); _adminLogger.Add(LogType.Stamina, LogImpact.Medium, $"{ToPrettyString(uid):user} entered stamina crit"); } @@ -424,7 +424,7 @@ private void ExitStamCrit(EntityUid uid, StaminaComponent? component = null) component.NextUpdate = _timing.CurTime; _movementSpeed.RefreshMovementSpeedModifiers(uid); SetStaminaAlert(uid, component); - Dirty(component); + Dirty(uid, component); _adminLogger.Add(LogType.Stamina, LogImpact.Low, $"{ToPrettyString(uid):user} recovered from stamina crit"); } } diff --git a/Content.Shared/Decals/SharedDecalSystem.cs b/Content.Shared/Decals/SharedDecalSystem.cs index 9dbef60f0da..0a2349ea299 100644 --- a/Content.Shared/Decals/SharedDecalSystem.cs +++ b/Content.Shared/Decals/SharedDecalSystem.cs @@ -69,7 +69,7 @@ private void OnCompStartup(EntityUid uid, DecalGridComponent component, Componen // This **shouldn't** be required, but just in case we ever get entity prototypes that have decal grids, we // need to ensure that we send an initial full state to players. - Dirty(component); + Dirty(uid, component); } protected Dictionary? ChunkCollection(EntityUid gridEuid, DecalGridComponent? comp = null) diff --git a/Content.Shared/DeltaV/CCVars/DCCVars.cs b/Content.Shared/DeltaV/CCVars/DCCVars.cs index 89a14275bef..58c4186ff61 100644 --- a/Content.Shared/DeltaV/CCVars/DCCVars.cs +++ b/Content.Shared/DeltaV/CCVars/DCCVars.cs @@ -15,4 +15,10 @@ public sealed class DCCVars /// public static readonly CVarDef RoundEndPacifist = CVarDef.Create("game.round_end_pacifist", false, CVar.SERVERONLY); + + /// + /// Whether the Shipyard is enabled. + /// + public static readonly CVarDef Shipyard = + CVarDef.Create("shuttle.shipyard", true, CVar.SERVERONLY); } diff --git a/Content.Shared/Destructible/Thresholds/MinMax.cs b/Content.Shared/Destructible/Thresholds/MinMax.cs new file mode 100644 index 00000000000..e086a0f61c3 --- /dev/null +++ b/Content.Shared/Destructible/Thresholds/MinMax.cs @@ -0,0 +1,24 @@ +using Robust.Shared.Random; + +namespace Content.Shared.Destructible.Thresholds; + +[DataDefinition, Serializable] +public partial struct MinMax +{ + [DataField] + public int Min; + + [DataField] + public int Max; + + public MinMax(int min, int max) + { + Min = min; + Max = max; + } + + public int Next(IRobustRandom random) + { + return random.Next(Min, Max + 1); + } +} diff --git a/Content.Shared/DeviceLinking/Systems/TwoWayLeverSystem.cs b/Content.Shared/DeviceLinking/Systems/TwoWayLeverSystem.cs index c8783b05fc7..7e665dc1906 100644 --- a/Content.Shared/DeviceLinking/Systems/TwoWayLeverSystem.cs +++ b/Content.Shared/DeviceLinking/Systems/TwoWayLeverSystem.cs @@ -28,7 +28,7 @@ private void OnInit(EntityUid uid, TwoWayLeverComponent component, ComponentInit private void OnActivated(EntityUid uid, TwoWayLeverComponent component, ActivateInWorldEvent args) { - if (args.Handled) + if (args.Handled || !args.Complex) return; component.State = component.State switch diff --git a/Content.Shared/Devour/SharedDevourSystem.cs b/Content.Shared/Devour/SharedDevourSystem.cs index a2b788f3f38..124daeffaaa 100644 --- a/Content.Shared/Devour/SharedDevourSystem.cs +++ b/Content.Shared/Devour/SharedDevourSystem.cs @@ -4,6 +4,7 @@ using Content.Shared.Mobs; using Content.Shared.Mobs.Components; using Content.Shared.Popups; +using Content.Shared.Whitelist; using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; using Robust.Shared.Containers; @@ -18,6 +19,7 @@ public abstract class SharedDevourSystem : EntitySystem [Dependency] private readonly SharedPopupSystem _popupSystem = default!; [Dependency] private readonly SharedActionsSystem _actionsSystem = default!; [Dependency] protected readonly SharedContainerSystem ContainerSystem = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; public override void Initialize() { @@ -41,7 +43,7 @@ protected void OnInit(EntityUid uid, DevourerComponent component, MapInitEvent a /// protected void OnDevourAction(EntityUid uid, DevourerComponent component, DevourActionEvent args) { - if (args.Handled || component.Whitelist?.IsValid(args.Target, EntityManager) != true) + if (args.Handled || _whitelistSystem.IsWhitelistFailOrNull(component.Whitelist, args.Target)) return; args.Handled = true; diff --git a/Content.Shared/Dice/SharedDiceSystem.cs b/Content.Shared/Dice/SharedDiceSystem.cs index defb3d5f0e3..8e2868e791d 100644 --- a/Content.Shared/Dice/SharedDiceSystem.cs +++ b/Content.Shared/Dice/SharedDiceSystem.cs @@ -59,7 +59,7 @@ public void SetCurrentSide(EntityUid uid, int side, DiceComponent? die = null) } die.CurrentValue = (side - die.Offset) * die.Multiplier; - Dirty(die); + Dirty(uid, die); UpdateVisuals(uid, die); } diff --git a/Content.Shared/Disposal/SharedDisposalUnitSystem.cs b/Content.Shared/Disposal/SharedDisposalUnitSystem.cs index c39139f9a57..9fdb4a6a804 100644 --- a/Content.Shared/Disposal/SharedDisposalUnitSystem.cs +++ b/Content.Shared/Disposal/SharedDisposalUnitSystem.cs @@ -6,6 +6,7 @@ using Content.Shared.Emag.Systems; using Content.Shared.Item; using Content.Shared.Throwing; +using Content.Shared.Whitelist; using Robust.Shared.Audio; using Robust.Shared.Physics.Components; using Robust.Shared.Physics.Events; @@ -25,6 +26,7 @@ public abstract class SharedDisposalUnitSystem : EntitySystem [Dependency] protected readonly IGameTiming GameTiming = default!; [Dependency] protected readonly MetaDataSystem Metadata = default!; [Dependency] protected readonly SharedJointSystem Joints = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; protected static TimeSpan ExitAttemptDelay = TimeSpan.FromSeconds(0.5); @@ -113,10 +115,8 @@ public virtual bool CanInsert(EntityUid uid, SharedDisposalUnitComponent compone if (!storable && !HasComp(entity)) return false; - if (component.Blacklist?.IsValid(entity, EntityManager) == true) - return false; - - if (component.Whitelist != null && component.Whitelist?.IsValid(entity, EntityManager) != true) + if (_whitelistSystem.IsBlacklistPass(component.Blacklist, entity) || + _whitelistSystem.IsWhitelistFail(component.Whitelist, entity)) return false; if (TryComp(entity, out var physics) && (physics.CanCollide) || storable) diff --git a/Content.Shared/Doors/DoorEvents.cs b/Content.Shared/Doors/DoorEvents.cs index 08a2c8b18b1..e8d880f1b5d 100644 --- a/Content.Shared/Doors/DoorEvents.cs +++ b/Content.Shared/Doors/DoorEvents.cs @@ -37,6 +37,7 @@ public sealed class BeforeDoorOpenedEvent : CancellableEntityEventArgs public sealed class BeforeDoorClosedEvent : CancellableEntityEventArgs { public bool PerformCollisionCheck; + public EntityUid? User = null; public BeforeDoorClosedEvent(bool performCollisionCheck) { diff --git a/Content.Shared/Doors/Systems/SharedDoorSystem.cs b/Content.Shared/Doors/Systems/SharedDoorSystem.cs index b58b7b265e9..4e493f158be 100644 --- a/Content.Shared/Doors/Systems/SharedDoorSystem.cs +++ b/Content.Shared/Doors/Systems/SharedDoorSystem.cs @@ -216,7 +216,7 @@ protected bool SetState(EntityUid uid, DoorState state, DoorComponent? door = nu #region Interactions protected void OnActivate(EntityUid uid, DoorComponent door, ActivateInWorldEvent args) { - if (args.Handled || !door.ClickOpen) + if (args.Handled || !args.Complex || !door.ClickOpen) return; if (!TryToggleDoor(uid, door, args.User, predicted: true)) @@ -430,7 +430,11 @@ public bool CanClose(EntityUid uid, DoorComponent? door = null, EntityUid? user if (door.State is DoorState.Welded or DoorState.Closed) return false; - var ev = new BeforeDoorClosedEvent(door.PerformCollisionCheck); + var ev = new BeforeDoorClosedEvent(door.PerformCollisionCheck) + { + User = user + }; + RaiseLocalEvent(uid, ev); if (ev.Cancelled) return false; diff --git a/Content.Shared/Electrocution/SharedElectrocutionSystem.cs b/Content.Shared/Electrocution/SharedElectrocutionSystem.cs index 5031d8a9115..b228a987af4 100644 --- a/Content.Shared/Electrocution/SharedElectrocutionSystem.cs +++ b/Content.Shared/Electrocution/SharedElectrocutionSystem.cs @@ -20,7 +20,7 @@ public void SetInsulatedSiemensCoefficient(EntityUid uid, float siemensCoefficie return; insulated.Coefficient = siemensCoefficient; - Dirty(insulated); + Dirty(uid, insulated); } /// Entity being electrocuted. diff --git a/Content.Shared/Emoting/AnimatedEmotesComponent.cs b/Content.Shared/Emoting/AnimatedEmotesComponent.cs new file mode 100644 index 00000000000..fc8121bbe5a --- /dev/null +++ b/Content.Shared/Emoting/AnimatedEmotesComponent.cs @@ -0,0 +1,28 @@ +using Content.Shared.Chat.Prototypes; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; + +namespace Content.Shared.Emoting; + +// use as a template +//[Serializable, NetSerializable, DataDefinition] public sealed partial class AnimationNameEmoteEvent : EntityEventArgs { } + +[Serializable, NetSerializable, DataDefinition] public sealed partial class AnimationFlipEmoteEvent : EntityEventArgs { } +[Serializable, NetSerializable, DataDefinition] public sealed partial class AnimationSpinEmoteEvent : EntityEventArgs { } +[Serializable, NetSerializable, DataDefinition] public sealed partial class AnimationJumpEmoteEvent : EntityEventArgs { } + +[RegisterComponent, NetworkedComponent] public sealed partial class AnimatedEmotesComponent : Component +{ + [DataField] public ProtoId? Emote; +} + +[Serializable, NetSerializable] public sealed partial class AnimatedEmotesComponentState : ComponentState +{ + public ProtoId? Emote; + + public AnimatedEmotesComponentState(ProtoId? emote) + { + Emote = emote; + } +} diff --git a/Content.Shared/Emoting/EmoteSystem.cs b/Content.Shared/Emoting/EmoteSystem.cs index fd6361245b1..fea322e950c 100644 --- a/Content.Shared/Emoting/EmoteSystem.cs +++ b/Content.Shared/Emoting/EmoteSystem.cs @@ -1,4 +1,4 @@ -namespace Content.Shared.Emoting; +namespace Content.Shared.Emoting; public sealed class EmoteSystem : EntitySystem { @@ -19,7 +19,7 @@ public void SetEmoting(EntityUid uid, bool value, EmotingComponent? component = if (component.Enabled == value) return; - Dirty(component); + Dirty(uid, component); } private void OnEmoteAttempt(EmoteAttemptEvent args) diff --git a/Content.Shared/Emoting/SharedAnimatedEmotesSystem.cs b/Content.Shared/Emoting/SharedAnimatedEmotesSystem.cs new file mode 100644 index 00000000000..b19e8c26a1e --- /dev/null +++ b/Content.Shared/Emoting/SharedAnimatedEmotesSystem.cs @@ -0,0 +1,18 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Emoting; + +public abstract class SharedAnimatedEmotesSystem : EntitySystem +{ + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnGetState); + } + + private void OnGetState(Entity ent, ref ComponentGetState args) + { + args.State = new AnimatedEmotesComponentState(ent.Comp.Emote); + } +} diff --git a/Content.Shared/Ensnaring/Components/EnsnareableComponent.cs b/Content.Shared/Ensnaring/Components/EnsnareableComponent.cs index 553f6df1c77..2536fac4edc 100644 --- a/Content.Shared/Ensnaring/Components/EnsnareableComponent.cs +++ b/Content.Shared/Ensnaring/Components/EnsnareableComponent.cs @@ -1,5 +1,7 @@ +using Content.Shared.Alert; using Robust.Shared.Containers; using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; using Robust.Shared.Serialization; namespace Content.Shared.Ensnaring.Components; @@ -40,6 +42,9 @@ public sealed partial class EnsnareableComponent : Component [DataField("state")] public string? State; + + [DataField] + public ProtoId EnsnaredAlert = "Ensnared"; } [Serializable, NetSerializable] diff --git a/Content.Shared/Ensnaring/Components/EnsnaringComponent.cs b/Content.Shared/Ensnaring/Components/EnsnaringComponent.cs index fe415e0f4a8..98b4d387fb8 100644 --- a/Content.Shared/Ensnaring/Components/EnsnaringComponent.cs +++ b/Content.Shared/Ensnaring/Components/EnsnaringComponent.cs @@ -1,7 +1,9 @@ using System.Threading; +using Content.Shared.Whitelist; using Robust.Shared.GameStates; namespace Content.Shared.Ensnaring.Components; + /// /// Use this on something you want to use to ensnare an entity with /// @@ -61,7 +63,12 @@ public sealed partial class EnsnaringComponent : Component /// [DataField] public bool DestroyOnRemove = false; - + + /// + /// Entites which bola will pass through. + /// + [DataField] + public EntityWhitelist? IgnoredTargets; } /// diff --git a/Content.Shared/EntityTable/EntitySelectors/AllSelector.cs b/Content.Shared/EntityTable/EntitySelectors/AllSelector.cs new file mode 100644 index 00000000000..8fb8b5e546e --- /dev/null +++ b/Content.Shared/EntityTable/EntitySelectors/AllSelector.cs @@ -0,0 +1,25 @@ +using Robust.Shared.Prototypes; + +namespace Content.Shared.EntityTable.EntitySelectors; + +/// +/// Gets spawns from all of the child selectors +/// +public sealed partial class AllSelector : EntityTableSelector +{ + [DataField(required: true)] + public List Children; + + protected override IEnumerable GetSpawnsImplementation(System.Random rand, + IEntityManager entMan, + IPrototypeManager proto) + { + foreach (var child in Children) + { + foreach (var spawn in child.GetSpawns(rand, entMan, proto)) + { + yield return spawn; + } + } + } +} diff --git a/Content.Shared/EntityTable/EntitySelectors/EntSelector.cs b/Content.Shared/EntityTable/EntitySelectors/EntSelector.cs new file mode 100644 index 00000000000..b1e712b4b3a --- /dev/null +++ b/Content.Shared/EntityTable/EntitySelectors/EntSelector.cs @@ -0,0 +1,27 @@ +using Content.Shared.EntityTable.ValueSelector; +using Robust.Shared.Prototypes; + +namespace Content.Shared.EntityTable.EntitySelectors; + +/// +/// Gets the spawn for the entity prototype specified at whatever count specified. +/// +public sealed partial class EntSelector : EntityTableSelector +{ + [DataField(required: true)] + public EntProtoId Id; + + [DataField] + public NumberSelector Amount = new ConstantNumberSelector(1); + + protected override IEnumerable GetSpawnsImplementation(System.Random rand, + IEntityManager entMan, + IPrototypeManager proto) + { + var num = (int) Math.Round(Amount.Get(rand, entMan, proto)); + for (var i = 0; i < num; i++) + { + yield return Id; + } + } +} diff --git a/Content.Shared/EntityTable/EntitySelectors/EntityTableSelector.cs b/Content.Shared/EntityTable/EntitySelectors/EntityTableSelector.cs new file mode 100644 index 00000000000..2533f17dc51 --- /dev/null +++ b/Content.Shared/EntityTable/EntitySelectors/EntityTableSelector.cs @@ -0,0 +1,49 @@ +using Content.Shared.EntityTable.ValueSelector; +using JetBrains.Annotations; +using Robust.Shared.Prototypes; +using Robust.Shared.Random; + +namespace Content.Shared.EntityTable.EntitySelectors; + +[ImplicitDataDefinitionForInheritors, UsedImplicitly(ImplicitUseTargetFlags.WithInheritors)] +public abstract partial class EntityTableSelector +{ + /// + /// The number of times this selector is run + /// + [DataField] + public NumberSelector Rolls = new ConstantNumberSelector(1); + + /// + /// A weight used to pick between selectors. + /// + [DataField] + public float Weight = 1; + + /// + /// A simple chance that the selector will run. + /// + [DataField] + public double Prob = 1; + + public IEnumerable GetSpawns(System.Random rand, + IEntityManager entMan, + IPrototypeManager proto) + { + var rolls = Rolls.Get(rand, entMan, proto); + for (var i = 0; i < rolls; i++) + { + if (!rand.Prob(Prob)) + continue; + + foreach (var spawn in GetSpawnsImplementation(rand, entMan, proto)) + { + yield return spawn; + } + } + } + + protected abstract IEnumerable GetSpawnsImplementation(System.Random rand, + IEntityManager entMan, + IPrototypeManager proto); +} diff --git a/Content.Shared/EntityTable/EntitySelectors/GroupSelector.cs b/Content.Shared/EntityTable/EntitySelectors/GroupSelector.cs new file mode 100644 index 00000000000..8f761f9866e --- /dev/null +++ b/Content.Shared/EntityTable/EntitySelectors/GroupSelector.cs @@ -0,0 +1,28 @@ +using Content.Shared.Random.Helpers; +using Robust.Shared.Prototypes; + +namespace Content.Shared.EntityTable.EntitySelectors; + +/// +/// Gets the spawns from one of the child selectors, based on the weight of the children +/// +public sealed partial class GroupSelector : EntityTableSelector +{ + [DataField(required: true)] + public List Children = new(); + + protected override IEnumerable GetSpawnsImplementation(System.Random rand, + IEntityManager entMan, + IPrototypeManager proto) + { + var children = new Dictionary(Children.Count); + foreach (var child in Children) + { + children.Add(child, child.Weight); + } + + var pick = SharedRandomExtensions.Pick(children, rand); + + return pick.GetSpawns(rand, entMan, proto); + } +} diff --git a/Content.Shared/EntityTable/EntitySelectors/NestedSelector.cs b/Content.Shared/EntityTable/EntitySelectors/NestedSelector.cs new file mode 100644 index 00000000000..fc8d8f08d37 --- /dev/null +++ b/Content.Shared/EntityTable/EntitySelectors/NestedSelector.cs @@ -0,0 +1,20 @@ +using Robust.Shared.Prototypes; + +namespace Content.Shared.EntityTable.EntitySelectors; + +/// +/// Gets the spawns from the entity table prototype specified. +/// Can be used to reuse common tables. +/// +public sealed partial class NestedSelector : EntityTableSelector +{ + [DataField(required: true)] + public ProtoId TableId; + + protected override IEnumerable GetSpawnsImplementation(System.Random rand, + IEntityManager entMan, + IPrototypeManager proto) + { + return proto.Index(TableId).Table.GetSpawns(rand, entMan, proto); + } +} diff --git a/Content.Shared/EntityTable/EntitySelectors/NoneSelector.cs b/Content.Shared/EntityTable/EntitySelectors/NoneSelector.cs new file mode 100644 index 00000000000..21fcb6d2792 --- /dev/null +++ b/Content.Shared/EntityTable/EntitySelectors/NoneSelector.cs @@ -0,0 +1,16 @@ +using Robust.Shared.Prototypes; + +namespace Content.Shared.EntityTable.EntitySelectors; + +/// +/// Selects nothing. +/// +public sealed partial class NoneSelector : EntityTableSelector +{ + protected override IEnumerable GetSpawnsImplementation(System.Random rand, + IEntityManager entMan, + IPrototypeManager proto) + { + yield break; + } +} diff --git a/Content.Shared/EntityTable/EntityTablePrototype.cs b/Content.Shared/EntityTable/EntityTablePrototype.cs new file mode 100644 index 00000000000..63cebe9aeb7 --- /dev/null +++ b/Content.Shared/EntityTable/EntityTablePrototype.cs @@ -0,0 +1,18 @@ +using Content.Shared.EntityTable.EntitySelectors; +using Robust.Shared.Prototypes; + +namespace Content.Shared.EntityTable; + +/// +/// This is a prototype for... +/// +[Prototype] +public sealed partial class EntityTablePrototype : IPrototype +{ + /// + [IdDataField] + public string ID { get; } = default!; + + [DataField(required: true)] + public EntityTableSelector Table = default!; +} diff --git a/Content.Shared/EntityTable/EntityTableSystem.cs b/Content.Shared/EntityTable/EntityTableSystem.cs new file mode 100644 index 00000000000..ff499e67604 --- /dev/null +++ b/Content.Shared/EntityTable/EntityTableSystem.cs @@ -0,0 +1,20 @@ +using Content.Shared.EntityTable.EntitySelectors; +using Robust.Shared.Prototypes; +using Robust.Shared.Random; + +namespace Content.Shared.EntityTable; + +public sealed class EntityTableSystem : EntitySystem +{ + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + [Dependency] private readonly IRobustRandom _random = default!; + + public IEnumerable GetSpawns(EntityTableSelector? table, System.Random? rand = null) + { + if (table == null) + return new List(); + + rand ??= _random.GetRandom(); + return table.GetSpawns(rand, EntityManager, _prototypeManager); + } +} diff --git a/Content.Shared/EntityTable/ValueSelector/ConstantNumberSelector.cs b/Content.Shared/EntityTable/ValueSelector/ConstantNumberSelector.cs new file mode 100644 index 00000000000..0baf6785f4f --- /dev/null +++ b/Content.Shared/EntityTable/ValueSelector/ConstantNumberSelector.cs @@ -0,0 +1,22 @@ +using Robust.Shared.Prototypes; + +namespace Content.Shared.EntityTable.ValueSelector; + +/// +/// Gives a constant value. +/// +public sealed partial class ConstantNumberSelector : NumberSelector +{ + [DataField] + public float Value = 1; + + public ConstantNumberSelector(float value) + { + Value = value; + } + + public override float Get(System.Random rand, IEntityManager entMan, IPrototypeManager proto) + { + return Value; + } +} diff --git a/Content.Shared/EntityTable/ValueSelector/NumberSelector.cs b/Content.Shared/EntityTable/ValueSelector/NumberSelector.cs new file mode 100644 index 00000000000..8a7743c9dd8 --- /dev/null +++ b/Content.Shared/EntityTable/ValueSelector/NumberSelector.cs @@ -0,0 +1,16 @@ +using Content.Shared.EntityTable.EntitySelectors; +using JetBrains.Annotations; +using Robust.Shared.Prototypes; + +namespace Content.Shared.EntityTable.ValueSelector; + +/// +/// Used for implementing custom value selection for +/// +[ImplicitDataDefinitionForInheritors, UsedImplicitly(ImplicitUseTargetFlags.WithInheritors)] +public abstract partial class NumberSelector +{ + public abstract float Get(System.Random rand, + IEntityManager entMan, + IPrototypeManager proto); +} diff --git a/Content.Shared/EntityTable/ValueSelector/RangeNumberSelector.cs b/Content.Shared/EntityTable/ValueSelector/RangeNumberSelector.cs new file mode 100644 index 00000000000..e8356fcbb72 --- /dev/null +++ b/Content.Shared/EntityTable/ValueSelector/RangeNumberSelector.cs @@ -0,0 +1,19 @@ +using System.Numerics; +using Robust.Shared.Prototypes; +using Robust.Shared.Random; + +namespace Content.Shared.EntityTable.ValueSelector; + +/// +/// Gives a value between the two numbers specified, inclusive. +/// +public sealed partial class RangeNumberSelector : NumberSelector +{ + [DataField] + public Vector2 Range = new(1, 1); + + public override float Get(System.Random rand, IEntityManager entMan, IPrototypeManager proto) + { + return rand.NextFloat(Range.X, Range.Y + 1); + } +} diff --git a/Content.Shared/Examine/ExamineSystemShared.cs b/Content.Shared/Examine/ExamineSystemShared.cs index f792862be14..397a8f74484 100644 --- a/Content.Shared/Examine/ExamineSystemShared.cs +++ b/Content.Shared/Examine/ExamineSystemShared.cs @@ -175,9 +175,9 @@ public bool InRangeUnOccluded(MapCoordinates origin, MapCoordinates othe length = MaxRaycastRange; } - var occluderSystem = Get(); IoCManager.Resolve(ref entMan); + var occluderSystem = EntityManager.System(); var ray = new Ray(origin.Position, dir.Normalized()); var rayResults = occluderSystem .IntersectRayWithPredicate(origin.MapId, ray, length, state, predicate, false).ToList(); @@ -194,7 +194,7 @@ public bool InRangeUnOccluded(MapCoordinates origin, MapCoordinates othe } var bBox = o.BoundingBox; - bBox = bBox.Translated(entMan.GetComponent(result.HitEntity).WorldPosition); + bBox = bBox.Translated(_transform.GetWorldPosition(result.HitEntity)); if (bBox.Contains(origin.Position) || bBox.Contains(other.Position)) { @@ -210,8 +210,8 @@ public bool InRangeUnOccluded(MapCoordinates origin, MapCoordinates othe public bool InRangeUnOccluded(EntityUid origin, EntityUid other, float range = ExamineRange, Ignored? predicate = null, bool ignoreInsideBlocker = true) { var entMan = IoCManager.Resolve(); - var originPos = entMan.GetComponent(origin).MapPosition; - var otherPos = entMan.GetComponent(other).MapPosition; + var originPos = _transform.GetMapCoordinates(origin); + var otherPos = _transform.GetMapCoordinates(other); return InRangeUnOccluded(originPos, otherPos, range, predicate, ignoreInsideBlocker); } @@ -219,8 +219,8 @@ public bool InRangeUnOccluded(EntityUid origin, EntityUid other, float range = E public bool InRangeUnOccluded(EntityUid origin, EntityCoordinates other, float range = ExamineRange, Ignored? predicate = null, bool ignoreInsideBlocker = true) { var entMan = IoCManager.Resolve(); - var originPos = entMan.GetComponent(origin).MapPosition; - var otherPos = other.ToMap(entMan); + var originPos = _transform.GetMapCoordinates(origin); + var otherPos = _transform.ToMapCoordinates(other); return InRangeUnOccluded(originPos, otherPos, range, predicate, ignoreInsideBlocker); } @@ -228,7 +228,7 @@ public bool InRangeUnOccluded(EntityUid origin, EntityCoordinates other, float r public bool InRangeUnOccluded(EntityUid origin, MapCoordinates other, float range = ExamineRange, Ignored? predicate = null, bool ignoreInsideBlocker = true) { var entMan = IoCManager.Resolve(); - var originPos = entMan.GetComponent(origin).MapPosition; + var originPos = _transform.GetMapCoordinates(origin); return InRangeUnOccluded(originPos, other, range, predicate, ignoreInsideBlocker); } @@ -370,7 +370,7 @@ int Comparison(ExamineMessagePart a, ExamineMessagePart b) /// sort messages the same as well as grouped together properly, even if subscriptions are different. /// You should wrap it in a using() block so popping automatically occurs. /// - public ExamineGroupDisposable PushGroup(string groupName, int priority=0) + public ExamineGroupDisposable PushGroup(string groupName, int priority = 0) { // Ensure that other examine events correctly ended their groups. DebugTools.Assert(_currentGroupPart == null); @@ -398,7 +398,7 @@ private void PopGroup() /// /// /// - public void PushMessage(FormattedMessage message, int priority=0) + public void PushMessage(FormattedMessage message, int priority = 0) { if (message.Nodes.Count == 0) return; @@ -421,9 +421,9 @@ public void PushMessage(FormattedMessage message, int priority=0) /// /// /// - public void PushMarkup(string markup, int priority=0) + public void PushMarkup(string markup, int priority = 0) { - PushMessage(FormattedMessage.FromMarkup(markup), priority); + PushMessage(FormattedMessage.FromMarkupPermissive(markup), priority); } /// @@ -433,7 +433,7 @@ public void PushMarkup(string markup, int priority=0) /// /// /// - public void PushText(string text, int priority=0) + public void PushText(string text, int priority = 0) { var msg = new FormattedMessage(); msg.AddText(text); @@ -469,9 +469,9 @@ public void AddMessage(FormattedMessage message, int priority = 0) /// /// /// - public void AddMarkup(string markup, int priority=0) + public void AddMarkup(string markup, int priority = 0) { - AddMessage(FormattedMessage.FromMarkup(markup), priority); + AddMessage(FormattedMessage.FromMarkupPermissive(markup), priority); } /// @@ -481,7 +481,7 @@ public void AddMarkup(string markup, int priority=0) /// /// /// - public void AddText(string text, int priority=0) + public void AddText(string text, int priority = 0) { var msg = new FormattedMessage(); msg.AddText(text); diff --git a/Content.Shared/Explosion/Components/OnTrigger/SmokeOnTriggerComponent.cs b/Content.Shared/Explosion/Components/OnTrigger/SmokeOnTriggerComponent.cs index 80d65f4c2cd..1138e74af8f 100644 --- a/Content.Shared/Explosion/Components/OnTrigger/SmokeOnTriggerComponent.cs +++ b/Content.Shared/Explosion/Components/OnTrigger/SmokeOnTriggerComponent.cs @@ -29,7 +29,7 @@ public sealed partial class SmokeOnTriggerComponent : Component /// Defaults to smoke but you can use foam if you want. /// [DataField, ViewVariables(VVAccess.ReadWrite)] - public ProtoId SmokePrototype = "Smoke"; + public EntProtoId SmokePrototype = "Smoke"; /// /// Solution to add to each smoke cloud. diff --git a/Content.Shared/Eye/Blinding/Systems/BlindableSystem.cs b/Content.Shared/Eye/Blinding/Systems/BlindableSystem.cs index 24eed3adcf5..57d087125d2 100644 --- a/Content.Shared/Eye/Blinding/Systems/BlindableSystem.cs +++ b/Content.Shared/Eye/Blinding/Systems/BlindableSystem.cs @@ -87,6 +87,17 @@ public void SetMinDamage(Entity blindable, int amount) blindable.Comp.MinDamage = amount; UpdateEyeDamage(blindable, false); } + + public void TransferBlindness(BlindableComponent newSight, BlindableComponent oldSight, EntityUid newEntity) + { + newSight.IsBlind = oldSight.IsBlind; + newSight.EyeDamage = oldSight.EyeDamage; + newSight.LightSetup = oldSight.LightSetup; + newSight.GraceFrame = oldSight.GraceFrame; + newSight.MinDamage = oldSight.MinDamage; + newSight.MaxDamage = oldSight.MaxDamage; + UpdateEyeDamage((newEntity, newSight), true); + } } /// diff --git a/Content.Shared/Fluids/Components/PreventSpillerComponent.cs b/Content.Shared/Fluids/Components/PreventSpillerComponent.cs deleted file mode 100644 index e396d9faf52..00000000000 --- a/Content.Shared/Fluids/Components/PreventSpillerComponent.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Robust.Shared.GameStates; - -namespace Content.Shared.Fluids.Components; - -/// -/// Blocks this entity's ability to spill solution containing entities via the verb menu. -/// -[RegisterComponent, NetworkedComponent] -public sealed partial class PreventSpillerComponent : Component -{ - -} diff --git a/Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs b/Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs index 52e6a6cb980..767d30389ac 100644 --- a/Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs +++ b/Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs @@ -34,7 +34,7 @@ private void OnExamined(Entity entity, ref ExaminedEvent arg private void AddSpillVerb(Entity entity, ref GetVerbsEvent args) { - if (!args.CanAccess || !args.CanInteract) + if (!args.CanAccess || !args.CanInteract || args.Hands == null) return; if (!_solutionContainerSystem.TryGetSolution(args.Target, entity.Comp.SolutionName, out var soln, out var solution)) @@ -46,10 +46,6 @@ private void AddSpillVerb(Entity entity, ref GetVerbsEvent(args.User)) - return; - - Verb verb = new() { Text = Loc.GetString("spill-target-verb-get-data-text") diff --git a/Content.Shared/Foldable/FoldableSystem.cs b/Content.Shared/Foldable/FoldableSystem.cs index 10baf8165b5..2a846f4f234 100644 --- a/Content.Shared/Foldable/FoldableSystem.cs +++ b/Content.Shared/Foldable/FoldableSystem.cs @@ -26,7 +26,7 @@ public override void Initialize() SubscribeLocalEvent(OnStoreThisAttempt); SubscribeLocalEvent(OnFoldableOpenAttempt); - SubscribeLocalEvent(OnBuckleAttempt); + SubscribeLocalEvent(OnStrapAttempt); } private void OnHandleState(EntityUid uid, FoldableComponent component, ref AfterAutoHandleStateEvent args) @@ -53,9 +53,9 @@ public void OnStoreThisAttempt(EntityUid uid, FoldableComponent comp, ref StoreM args.Cancelled = true; } - public void OnBuckleAttempt(EntityUid uid, FoldableComponent comp, ref BuckleAttemptEvent args) + public void OnStrapAttempt(EntityUid uid, FoldableComponent comp, ref StrapAttemptEvent args) { - if (args.Buckling && comp.IsFolded) + if (comp.IsFolded) args.Cancelled = true; } diff --git a/Content.Shared/Friction/TileFrictionController.cs b/Content.Shared/Friction/TileFrictionController.cs index 3583947ee36..930de07dab9 100644 --- a/Content.Shared/Friction/TileFrictionController.cs +++ b/Content.Shared/Friction/TileFrictionController.cs @@ -214,7 +214,7 @@ public void SetModifier(EntityUid entityUid, float value, TileFrictionModifierCo return; friction.Modifier = value; - Dirty(friction); + Dirty(entityUid, friction); } } } diff --git a/Content.Server/GameTicking/Components/ActiveGameRuleComponent.cs b/Content.Shared/GameTicking/Components/ActiveGameRuleComponent.cs similarity index 67% rename from Content.Server/GameTicking/Components/ActiveGameRuleComponent.cs rename to Content.Shared/GameTicking/Components/ActiveGameRuleComponent.cs index b9e6fa5d4b8..51bdd1c0371 100644 --- a/Content.Server/GameTicking/Components/ActiveGameRuleComponent.cs +++ b/Content.Shared/GameTicking/Components/ActiveGameRuleComponent.cs @@ -1,10 +1,8 @@ -namespace Content.Server.GameTicking.Components; +namespace Content.Shared.GameTicking.Components; /// /// Added to game rules before and removed before . /// Mutually exclusive with . /// [RegisterComponent] -public sealed partial class ActiveGameRuleComponent : Component -{ -} +public sealed partial class ActiveGameRuleComponent : Component; diff --git a/Content.Server/GameTicking/Components/DelayedStartRuleComponent.cs b/Content.Shared/GameTicking/Components/DelayedStartRuleComponent.cs similarity index 91% rename from Content.Server/GameTicking/Components/DelayedStartRuleComponent.cs rename to Content.Shared/GameTicking/Components/DelayedStartRuleComponent.cs index de4be83627d..9275da29b01 100644 --- a/Content.Server/GameTicking/Components/DelayedStartRuleComponent.cs +++ b/Content.Shared/GameTicking/Components/DelayedStartRuleComponent.cs @@ -1,6 +1,6 @@ using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; -namespace Content.Server.GameTicking.Components; +namespace Content.Shared.GameTicking.Components; /// /// Generic component used to track a gamerule that's start has been delayed. diff --git a/Content.Server/GameTicking/Components/EndedGameRuleComponent.cs b/Content.Shared/GameTicking/Components/EndedGameRuleComponent.cs similarity index 61% rename from Content.Server/GameTicking/Components/EndedGameRuleComponent.cs rename to Content.Shared/GameTicking/Components/EndedGameRuleComponent.cs index 3234bfff3a0..5e209ed78a2 100644 --- a/Content.Server/GameTicking/Components/EndedGameRuleComponent.cs +++ b/Content.Shared/GameTicking/Components/EndedGameRuleComponent.cs @@ -1,10 +1,8 @@ -namespace Content.Server.GameTicking.Components; +namespace Content.Shared.GameTicking.Components; /// /// Added to game rules before . /// Mutually exclusive with . /// [RegisterComponent] -public sealed partial class EndedGameRuleComponent : Component -{ -} +public sealed partial class EndedGameRuleComponent : Component; diff --git a/Content.Server/GameTicking/Components/GameRuleComponent.cs b/Content.Shared/GameTicking/Components/GameRuleComponent.cs similarity index 92% rename from Content.Server/GameTicking/Components/GameRuleComponent.cs rename to Content.Shared/GameTicking/Components/GameRuleComponent.cs index 1e6c3f0ab1d..28ea435f1b7 100644 --- a/Content.Server/GameTicking/Components/GameRuleComponent.cs +++ b/Content.Shared/GameTicking/Components/GameRuleComponent.cs @@ -1,7 +1,8 @@ -using Content.Server.Destructible.Thresholds; +using Content.Shared.Destructible.Thresholds; +using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; -namespace Content.Server.GameTicking.Components; +namespace Content.Shared.GameTicking.Components; /// /// Component attached to all gamerule entities. diff --git a/Content.Shared/Gravity/SharedFloatingVisualizerSystem.cs b/Content.Shared/Gravity/SharedFloatingVisualizerSystem.cs index 8fe9e00e7eb..9d8aa4f146e 100644 --- a/Content.Shared/Gravity/SharedFloatingVisualizerSystem.cs +++ b/Content.Shared/Gravity/SharedFloatingVisualizerSystem.cs @@ -35,7 +35,7 @@ protected bool CanFloat(EntityUid uid, FloatingVisualsComponent component, Trans return false; component.CanFloat = GravitySystem.IsWeightless(uid, xform: transform); - Dirty(component); + Dirty(uid, component); return component.CanFloat; } diff --git a/Content.Shared/Gravity/SharedGravitySystem.Shake.cs b/Content.Shared/Gravity/SharedGravitySystem.Shake.cs index ad2e0e3ad57..41cf616cc4b 100644 --- a/Content.Shared/Gravity/SharedGravitySystem.Shake.cs +++ b/Content.Shared/Gravity/SharedGravitySystem.Shake.cs @@ -24,7 +24,7 @@ private void UpdateShake() ShakeGrid(uid, gravity); comp.ShakeTimes--; comp.NextShake += TimeSpan.FromSeconds(ShakeCooldown); - Dirty(comp); + Dirty(uid, comp); } } } @@ -44,7 +44,7 @@ public void StartGridShake(EntityUid uid, GravityComponent? gravity = null) } shake.ShakeTimes = 10; - Dirty(shake); + Dirty(uid, shake); } protected virtual void ShakeGrid(EntityUid uid, GravityComponent? comp = null) {} diff --git a/Content.Shared/Gravity/SharedGravitySystem.cs b/Content.Shared/Gravity/SharedGravitySystem.cs index 55187bf14ac..59d75e453af 100644 --- a/Content.Shared/Gravity/SharedGravitySystem.cs +++ b/Content.Shared/Gravity/SharedGravitySystem.cs @@ -18,6 +18,9 @@ public abstract partial class SharedGravitySystem : EntitySystem [Dependency] private readonly AlertsSystem _alerts = default!; [Dependency] private readonly InventorySystem _inventory = default!; + [ValidatePrototypeId] + public const string WeightlessAlert = "Weightless"; + public bool IsWeightless(EntityUid uid, PhysicsComponent? body = null, TransformComponent? xform = null) { Resolve(uid, ref body, false); @@ -97,11 +100,11 @@ private void OnGravityChange(ref GravityChangedEvent ev) if (!ev.HasGravity) { - _alerts.ShowAlert(uid, AlertType.Weightless); + _alerts.ShowAlert(uid, WeightlessAlert); } else { - _alerts.ClearAlert(uid, AlertType.Weightless); + _alerts.ClearAlert(uid, WeightlessAlert); } } } @@ -110,11 +113,11 @@ private void OnAlertsSync(AlertSyncEvent ev) { if (IsWeightless(ev.Euid)) { - _alerts.ShowAlert(ev.Euid, AlertType.Weightless); + _alerts.ShowAlert(ev.Euid, WeightlessAlert); } else { - _alerts.ClearAlert(ev.Euid, AlertType.Weightless); + _alerts.ClearAlert(ev.Euid, WeightlessAlert); } } @@ -122,11 +125,11 @@ private void OnAlertsParentChange(EntityUid uid, AlertsComponent component, ref { if (IsWeightless(uid)) { - _alerts.ShowAlert(uid, AlertType.Weightless); + _alerts.ShowAlert(uid, WeightlessAlert); } else { - _alerts.ClearAlert(uid, AlertType.Weightless); + _alerts.ClearAlert(uid, WeightlessAlert); } } diff --git a/Content.Shared/Hands/Components/HandsComponent.cs b/Content.Shared/Hands/Components/HandsComponent.cs index 919d55f294a..a7464e5bac7 100644 --- a/Content.Shared/Hands/Components/HandsComponent.cs +++ b/Content.Shared/Hands/Components/HandsComponent.cs @@ -29,6 +29,7 @@ public sealed partial class HandsComponent : Component /// /// List of hand-names. These are keys for . The order of this list determines the order in which hands are iterated over. /// + [ViewVariables] public List SortedHands = new(); /// diff --git a/Content.Shared/Hands/EntitySystems/SharedHandsSystem.Drop.cs b/Content.Shared/Hands/EntitySystems/SharedHandsSystem.Drop.cs index 7b169b5d0a6..4d7a0f377f5 100644 --- a/Content.Shared/Hands/EntitySystems/SharedHandsSystem.Drop.cs +++ b/Content.Shared/Hands/EntitySystems/SharedHandsSystem.Drop.cs @@ -128,7 +128,7 @@ public bool TryDrop(EntityUid uid, Hand hand, EntityCoordinates? targetDropLocat // TODO recursively check upwards for containers if (!isInContainer - || !ContainerSystem.TryGetContainingContainer(userXform.ParentUid, uid, out var container, skipExistCheck: true) + || !ContainerSystem.TryGetContainingContainer(userXform.ParentUid, uid, out var container) || !ContainerSystem.Insert((entity, itemXform), container)) TransformSystem.AttachToGridOrMap(entity, itemXform); return true; @@ -136,7 +136,7 @@ public bool TryDrop(EntityUid uid, Hand hand, EntityCoordinates? targetDropLocat var (itemPos, itemRot) = TransformSystem.GetWorldPositionRotation(entity); var origin = new MapCoordinates(itemPos, itemXform.MapID); - var target = targetDropLocation.Value.ToMap(EntityManager, TransformSystem); + var target = TransformSystem.ToMapCoordinates(targetDropLocation.Value); TransformSystem.SetWorldPositionRotation(entity, GetFinalDropCoordinates(uid, origin, target), itemRot); return true; } diff --git a/Content.Shared/Hands/EntitySystems/SharedHandsSystem.Interactions.cs b/Content.Shared/Hands/EntitySystems/SharedHandsSystem.Interactions.cs index 6d4d332479f..ae22efcd6a5 100644 --- a/Content.Shared/Hands/EntitySystems/SharedHandsSystem.Interactions.cs +++ b/Content.Shared/Hands/EntitySystems/SharedHandsSystem.Interactions.cs @@ -3,6 +3,7 @@ using Content.Shared.Hands.Components; using Content.Shared.IdentityManagement; using Content.Shared.Input; +using Content.Shared.Interaction; using Content.Shared.Inventory.VirtualItem; using Content.Shared.Localizations; using Robust.Shared.Input.Binding; @@ -23,6 +24,7 @@ private void InitializeInteractions() SubscribeAllEvent(HandleMoveItemFromHand); SubscribeAllEvent(HandleHandAltInteract); + SubscribeLocalEvent(OnGetUsedEntity); SubscribeLocalEvent(HandleExamined); CommandBinds.Builder @@ -181,6 +183,18 @@ public bool TryMoveHeldEntityToActiveHand(EntityUid uid, string handName, bool c return true; } + private void OnGetUsedEntity(EntityUid uid, HandsComponent component, ref GetUsedEntityEvent args) + { + if (args.Handled) + return; + + // TODO: this pattern is super uncommon, but it might be worth changing GetUsedEntityEvent to be recursive. + if (TryComp(component.ActiveHandEntity, out var virtualItem)) + args.Used = virtualItem.BlockingEntity; + else + args.Used = component.ActiveHandEntity; + } + //TODO: Actually shows all items/clothing/etc. private void HandleExamined(EntityUid examinedUid, HandsComponent handsComp, ExaminedEvent args) { diff --git a/Content.Shared/Hands/EntitySystems/SharedHandsSystem.cs b/Content.Shared/Hands/EntitySystems/SharedHandsSystem.cs index 40f2c5bbd59..ead824e712e 100644 --- a/Content.Shared/Hands/EntitySystems/SharedHandsSystem.cs +++ b/Content.Shared/Hands/EntitySystems/SharedHandsSystem.cs @@ -4,6 +4,7 @@ using Content.Shared.Administration.Logs; using Content.Shared.Hands.Components; using Content.Shared.Interaction; +using Content.Shared.Inventory; using Content.Shared.Inventory.VirtualItem; using Content.Shared.Storage.EntitySystems; using Robust.Shared.Containers; @@ -17,6 +18,7 @@ public abstract partial class SharedHandsSystem [Dependency] private readonly ActionBlockerSystem _actionBlocker = default!; [Dependency] protected readonly SharedContainerSystem ContainerSystem = default!; [Dependency] private readonly SharedInteractionSystem _interactionSystem = default!; + [Dependency] private readonly InventorySystem _inventorySystem = default!; [Dependency] private readonly SharedStorageSystem _storage = default!; [Dependency] protected readonly SharedTransformSystem TransformSystem = default!; [Dependency] private readonly SharedVirtualItemSystem _virtualSystem = default!; diff --git a/Content.Shared/Humanoid/Events/ProfileLoadFinishedEvent.cs b/Content.Shared/Humanoid/Events/ProfileLoadFinishedEvent.cs new file mode 100644 index 00000000000..afe78a15172 --- /dev/null +++ b/Content.Shared/Humanoid/Events/ProfileLoadFinishedEvent.cs @@ -0,0 +1,7 @@ +namespace Content.Shared.Humanoid.Events; + +/// +/// Raised on an entity when their profile has finished being loaded +/// +public sealed class ProfileLoadFinishedEvent : EntityEventArgs { } + diff --git a/Content.Shared/Humanoid/HumanoidVisualLayersExtension.cs b/Content.Shared/Humanoid/HumanoidVisualLayersExtension.cs index 0f8b940bd66..17912e400a5 100644 --- a/Content.Shared/Humanoid/HumanoidVisualLayersExtension.cs +++ b/Content.Shared/Humanoid/HumanoidVisualLayersExtension.cs @@ -47,18 +47,30 @@ public static IEnumerable Sublayers(HumanoidVisualLayers l yield return HumanoidVisualLayers.LArm; yield return HumanoidVisualLayers.LHand; break; + case HumanoidVisualLayers.LHand: + yield return HumanoidVisualLayers.LHand; + break; case HumanoidVisualLayers.RArm: yield return HumanoidVisualLayers.RArm; yield return HumanoidVisualLayers.RHand; break; + case HumanoidVisualLayers.RHand: + yield return HumanoidVisualLayers.RHand; + break; case HumanoidVisualLayers.LLeg: yield return HumanoidVisualLayers.LLeg; yield return HumanoidVisualLayers.LFoot; break; + case HumanoidVisualLayers.LFoot: + yield return HumanoidVisualLayers.LFoot; + break; case HumanoidVisualLayers.RLeg: yield return HumanoidVisualLayers.RLeg; yield return HumanoidVisualLayers.RFoot; break; + case HumanoidVisualLayers.RFoot: + yield return HumanoidVisualLayers.RFoot; + break; case HumanoidVisualLayers.Chest: yield return HumanoidVisualLayers.Chest; yield return HumanoidVisualLayers.Tail; diff --git a/Content.Shared/Humanoid/Markings/MarkingsSet.cs b/Content.Shared/Humanoid/Markings/MarkingsSet.cs index d389e194150..689b93bfd7d 100644 --- a/Content.Shared/Humanoid/Markings/MarkingsSet.cs +++ b/Content.Shared/Humanoid/Markings/MarkingsSet.cs @@ -283,8 +283,9 @@ public void EnsureDefault(Color? skinColor = null, Color? eyeColor = null, Marki continue; } - var index = 0; - while (points.Points > 0 || index < points.DefaultMarkings.Count) + var index = Markings.TryGetValue(category, out var markings) ? markings.Count : 0; + + while (points.Points > 0 && index < points.DefaultMarkings.Count) { if (markingManager.Markings.TryGetValue(points.DefaultMarkings[index], out var prototype)) { diff --git a/Content.Shared/Humanoid/SharedHumanoidAppearanceSystem.cs b/Content.Shared/Humanoid/SharedHumanoidAppearanceSystem.cs index a1e8bec2cd8..bf3addea99e 100644 --- a/Content.Shared/Humanoid/SharedHumanoidAppearanceSystem.cs +++ b/Content.Shared/Humanoid/SharedHumanoidAppearanceSystem.cs @@ -5,6 +5,7 @@ using Content.Shared.Examine; using Content.Shared.Humanoid.Markings; using Content.Shared.Humanoid.Prototypes; +using Content.Shared.Humanoid.Events; using Content.Shared.IdentityManagement; using Content.Shared.Preferences; using Content.Shared.HeightAdjust; @@ -156,7 +157,7 @@ public void SetLayersVisibility(EntityUid uid, IEnumerable SetLayerVisibility(uid, humanoid, layer, visible, permanent, ref dirty); if (dirty) - Dirty(humanoid); + Dirty(uid, humanoid); } protected virtual void SetLayerVisibility( @@ -202,7 +203,7 @@ public void SetSpecies(EntityUid uid, string species, bool sync = true, Humanoid humanoid.MarkingSet = new(oldMarkings, prototype.MarkingPoints, _markingManager, _proto); if (sync) - Dirty(humanoid); + Dirty(uid, humanoid); } /// @@ -228,7 +229,7 @@ public virtual void SetSkinColor(EntityUid uid, Color skinColor, bool sync = tru humanoid.SkinColor = skinColor; if (sync) - Dirty(humanoid); + Dirty(uid, humanoid); } /// @@ -252,7 +253,7 @@ public void SetBaseLayerId(EntityUid uid, HumanoidVisualLayers layer, string? id humanoid.CustomBaseLayers[layer] = new(id); if (sync) - Dirty(humanoid); + Dirty(uid, humanoid); } /// @@ -273,7 +274,7 @@ public void SetBaseLayerColor(EntityUid uid, HumanoidVisualLayers layer, Color? humanoid.CustomBaseLayers[layer] = new(null, color); if (sync) - Dirty(humanoid); + Dirty(uid, humanoid); } /// @@ -294,7 +295,7 @@ public void SetSex(EntityUid uid, Sex sex, bool sync = true, HumanoidAppearanceC RaiseLocalEvent(uid, new SexChangedEvent(oldSex, sex)); if (sync) - Dirty(humanoid); + Dirty(uid, humanoid); } /// @@ -313,7 +314,7 @@ public void SetHeight(EntityUid uid, float height, bool sync = true, HumanoidApp humanoid.Height = Math.Clamp(height, species.MinHeight, species.MaxHeight); if (sync) - Dirty(humanoid); + Dirty(uid, humanoid); } /// @@ -332,7 +333,7 @@ public void SetWidth(EntityUid uid, float width, bool sync = true, HumanoidAppea humanoid.Width = Math.Clamp(width, species.MinWidth, species.MaxWidth); if (sync) - Dirty(humanoid); + Dirty(uid, humanoid); } /// @@ -352,7 +353,7 @@ public void SetScale(EntityUid uid, Vector2 scale, bool sync = true, HumanoidApp humanoid.Width = Math.Clamp(scale.X, species.MinWidth, species.MaxWidth); if (sync) - Dirty(humanoid); + Dirty(uid, humanoid); } /// @@ -439,7 +440,8 @@ public virtual void LoadProfile(EntityUid uid, HumanoidCharacterProfile profile, humanoid.LastProfileLoaded = profile; // DeltaV - let paradox anomaly be cloned - Dirty(humanoid); + Dirty(uid, humanoid); + RaiseLocalEvent(uid, new ProfileLoadFinishedEvent()); } /// @@ -470,7 +472,7 @@ public void AddMarking(EntityUid uid, string marking, Color? color = null, bool humanoid.MarkingSet.AddBack(prototype.MarkingCategory, markingObject); if (sync) - Dirty(humanoid); + Dirty(uid, humanoid); } private void EnsureDefaultMarkings(EntityUid uid, HumanoidAppearanceComponent? humanoid) @@ -500,7 +502,7 @@ public void AddMarking(EntityUid uid, string marking, IReadOnlyList color humanoid.MarkingSet.AddBack(prototype.MarkingCategory, markingObject); if (sync) - Dirty(humanoid); + Dirty(uid, humanoid); } /// diff --git a/Content.Shared/Implants/SharedImplanterSystem.cs b/Content.Shared/Implants/SharedImplanterSystem.cs index 36a31bac1d2..44803e721c0 100644 --- a/Content.Shared/Implants/SharedImplanterSystem.cs +++ b/Content.Shared/Implants/SharedImplanterSystem.cs @@ -20,6 +20,7 @@ public abstract class SharedImplanterSystem : EntitySystem [Dependency] private readonly ItemSlotsSystem _itemSlots = default!; [Dependency] private readonly SharedAppearanceSystem _appearance = default!; [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; public override void Initialize() { @@ -77,7 +78,7 @@ public void Implant(EntityUid user, EntityUid target, EntityUid implanter, Impla var ev = new TransferDnaEvent { Donor = target, Recipient = implanter }; RaiseLocalEvent(target, ref ev); - Dirty(component); + Dirty(implanter, component); } public bool CanImplant( @@ -105,8 +106,8 @@ public bool CanImplant( protected bool CheckTarget(EntityUid target, EntityWhitelist? whitelist, EntityWhitelist? blacklist) { - return whitelist?.IsValid(target, EntityManager) != false && - blacklist?.IsValid(target, EntityManager) != true; + return _whitelistSystem.IsWhitelistPassOrNull(whitelist, target) && + _whitelistSystem.IsBlacklistFailOrNull(blacklist, target); } //Draw the implant out of the target @@ -156,7 +157,7 @@ public void Draw(EntityUid implanter, EntityUid user, EntityUid target, Implante if (component.CurrentMode == ImplanterToggleMode.Draw && !component.ImplantOnly && !permanentFound) ImplantMode(implanter, component); - Dirty(component); + Dirty(implanter, component); } } diff --git a/Content.Shared/Info/RulesMessages.cs b/Content.Shared/Info/RulesMessages.cs new file mode 100644 index 00000000000..9cb73c9aa86 --- /dev/null +++ b/Content.Shared/Info/RulesMessages.cs @@ -0,0 +1,25 @@ +using Lidgren.Network; +using Robust.Shared.Network; +using Robust.Shared.Serialization; + +namespace Content.Shared.Info; + +/// +/// Sent by the server to show the rules to the client instantly. +/// +public sealed class ShowRulesPopupMessage : NetMessage +{ + public override MsgGroups MsgGroup => MsgGroups.Command; + + public float PopupTime { get; set; } + + public override void ReadFromBuffer(NetIncomingMessage buffer, IRobustSerializer serializer) + { + PopupTime = buffer.ReadFloat(); + } + + public override void WriteToBuffer(NetOutgoingMessage buffer, IRobustSerializer serializer) + { + buffer.Write(PopupTime); + } +} diff --git a/Content.Shared/Info/SharedInfo.cs b/Content.Shared/Info/SharedInfo.cs deleted file mode 100644 index 4a0e688cf9a..00000000000 --- a/Content.Shared/Info/SharedInfo.cs +++ /dev/null @@ -1,28 +0,0 @@ -using Robust.Shared.Serialization; - -namespace Content.Shared.Info -{ - /// - /// A client request for server rules. - /// - [Serializable, NetSerializable] - public sealed class RequestRulesMessage : EntityEventArgs - { - } - - /// - /// A server response with server rules. - /// - [Serializable, NetSerializable] - public sealed class RulesMessage : EntityEventArgs - { - public string Title; - public string Text; - - public RulesMessage(string title, string rules) - { - Title = title; - Text = rules; - } - } -} diff --git a/Content.Shared/Info/SharedRulesManager.cs b/Content.Shared/Info/SharedRulesManager.cs deleted file mode 100644 index 932150d58ef..00000000000 --- a/Content.Shared/Info/SharedRulesManager.cs +++ /dev/null @@ -1,60 +0,0 @@ -using Lidgren.Network; -using Robust.Shared.Network; -using Robust.Shared.Serialization; - -namespace Content.Shared.Info; - -public abstract class SharedRulesManager -{ - /// - /// Sent by the server to show the rules to the client instantly. - /// - public sealed class ShowRulesPopupMessage : NetMessage - { - public override MsgGroups MsgGroup => MsgGroups.Command; - - public float PopupTime { get; set; } - - public override void ReadFromBuffer(NetIncomingMessage buffer, IRobustSerializer serializer) - { - PopupTime = buffer.ReadFloat(); - } - - public override void WriteToBuffer(NetOutgoingMessage buffer, IRobustSerializer serializer) - { - buffer.Write(PopupTime); - } - } - - /// - /// Sent by the server when the client needs to display the rules on join. - /// - public sealed class ShouldShowRulesPopupMessage : NetMessage - { - public override MsgGroups MsgGroup => MsgGroups.Command; - - public override void ReadFromBuffer(NetIncomingMessage buffer, IRobustSerializer serializer) - { - } - - public override void WriteToBuffer(NetOutgoingMessage buffer, IRobustSerializer serializer) - { - } - } - - /// - /// Sent by the client when it has accepted the rules. - /// - public sealed class RulesAcceptedMessage : NetMessage - { - public override MsgGroups MsgGroup => MsgGroups.Command; - - public override void ReadFromBuffer(NetIncomingMessage buffer, IRobustSerializer serializer) - { - } - - public override void WriteToBuffer(NetOutgoingMessage buffer, IRobustSerializer serializer) - { - } - } -} diff --git a/Content.Shared/Input/ContentKeyFunctions.cs b/Content.Shared/Input/ContentKeyFunctions.cs index 3f88ca4e20a..2727a400a40 100644 --- a/Content.Shared/Input/ContentKeyFunctions.cs +++ b/Content.Shared/Input/ContentKeyFunctions.cs @@ -61,7 +61,16 @@ public static class ContentKeyFunctions public static readonly BoundKeyFunction ToggleStanding = "ToggleStanding"; public static readonly BoundKeyFunction ToggleCrawlingUnder = "ToggleCrawlingUnder"; public static readonly BoundKeyFunction LookUp = "LookUp"; - + public static readonly BoundKeyFunction TargetHead = "TargetHead"; + public static readonly BoundKeyFunction TargetTorso = "TargetTorso"; + public static readonly BoundKeyFunction TargetLeftArm = "TargetLeftArm"; + public static readonly BoundKeyFunction TargetLeftHand = "TargetLeftHand"; + public static readonly BoundKeyFunction TargetRightArm = "TargetRightArm"; + public static readonly BoundKeyFunction TargetRightHand = "TargetRightHand"; + public static readonly BoundKeyFunction TargetLeftLeg = "TargetLeftLeg"; + public static readonly BoundKeyFunction TargetLeftFoot = "TargetLeftFoot"; + public static readonly BoundKeyFunction TargetRightLeg = "TargetRightLeg"; + public static readonly BoundKeyFunction TargetRightFoot = "TargetRightFoot"; public static readonly BoundKeyFunction ArcadeUp = "ArcadeUp"; public static readonly BoundKeyFunction ArcadeDown = "ArcadeDown"; public static readonly BoundKeyFunction ArcadeLeft = "ArcadeLeft"; diff --git a/Content.Shared/Instruments/SharedInstrumentSystem.cs b/Content.Shared/Instruments/SharedInstrumentSystem.cs index 87e3a69489c..23bcf67de0e 100644 --- a/Content.Shared/Instruments/SharedInstrumentSystem.cs +++ b/Content.Shared/Instruments/SharedInstrumentSystem.cs @@ -12,10 +12,10 @@ public virtual void EndRenderer(EntityUid uid, bool fromStateChange, SharedInstr { } - public void SetInstrumentProgram(SharedInstrumentComponent component, byte program, byte bank) + public void SetInstrumentProgram(EntityUid uid, SharedInstrumentComponent component, byte program, byte bank) { component.InstrumentBank = bank; component.InstrumentProgram = program; - Dirty(component); + Dirty(uid, component); } } diff --git a/Content.Shared/Interaction/ActivateInWorldEvent.cs b/Content.Shared/Interaction/ActivateInWorldEvent.cs index 9dbd636c48f..f7a1b7a799d 100644 --- a/Content.Shared/Interaction/ActivateInWorldEvent.cs +++ b/Content.Shared/Interaction/ActivateInWorldEvent.cs @@ -18,14 +18,49 @@ public sealed class ActivateInWorldEvent : HandledEntityEventArgs, ITargetedInte /// public EntityUid Target { get; } + /// + /// Whether or not can perform complex interactions or only basic ones. + /// + public bool Complex; + /// /// Set to true when the activation is logged by a specific logger. /// public bool WasLogged { get; set; } - public ActivateInWorldEvent(EntityUid user, EntityUid target) + public ActivateInWorldEvent(EntityUid user, EntityUid target, bool complex) + { + User = user; + Target = target; + Complex = complex; + } +} + +/// +/// Event raised on the user when it activates something in the world +/// +[PublicAPI] +public sealed class UserActivateInWorldEvent : HandledEntityEventArgs, ITargetedInteractEventArgs +{ + /// + /// Entity that activated the target world entity. + /// + public EntityUid User { get; } + + /// + /// Entity that was activated in the world. + /// + public EntityUid Target { get; } + + /// + /// Whether or not can perform complex interactions or only basic ones. + /// + public bool Complex; + + public UserActivateInWorldEvent(EntityUid user, EntityUid target, bool complex) { User = user; Target = target; + Complex = complex; } } diff --git a/Content.Shared/Interaction/Components/BypassInteractionChecksComponent.cs b/Content.Shared/Interaction/Components/BypassInteractionChecksComponent.cs new file mode 100644 index 00000000000..ca0ff963151 --- /dev/null +++ b/Content.Shared/Interaction/Components/BypassInteractionChecksComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Interaction.Components; + +[RegisterComponent, NetworkedComponent] +public sealed partial class BypassInteractionChecksComponent : Component; diff --git a/Content.Shared/Interaction/Components/ComplexInteractionComponent.cs b/Content.Shared/Interaction/Components/ComplexInteractionComponent.cs new file mode 100644 index 00000000000..ae7d65de366 --- /dev/null +++ b/Content.Shared/Interaction/Components/ComplexInteractionComponent.cs @@ -0,0 +1,9 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Interaction.Components; + +/// +/// This is used for identifying entities as being able to use complex interactions with the environment. +/// +[RegisterComponent, NetworkedComponent, Access(typeof(SharedInteractionSystem))] +public sealed partial class ComplexInteractionComponent : Component; diff --git a/Content.Shared/Interaction/Events/ContactInteractionEvent.cs b/Content.Shared/Interaction/Events/ContactInteractionEvent.cs index c9d5fba2ed0..7be1c01c4ad 100644 --- a/Content.Shared/Interaction/Events/ContactInteractionEvent.cs +++ b/Content.Shared/Interaction/Events/ContactInteractionEvent.cs @@ -8,7 +8,7 @@ namespace Content.Shared.Interaction.Events; /// public sealed class ContactInteractionEvent : HandledEntityEventArgs { - public readonly EntityUid Other; + public EntityUid Other; public ContactInteractionEvent(EntityUid other) { diff --git a/Content.Shared/Interaction/Events/UseAttemptEvent.cs b/Content.Shared/Interaction/Events/UseAttemptEvent.cs index 3db185ed172..c28f2b65177 100644 --- a/Content.Shared/Interaction/Events/UseAttemptEvent.cs +++ b/Content.Shared/Interaction/Events/UseAttemptEvent.cs @@ -1,12 +1,9 @@ namespace Content.Shared.Interaction.Events { - public sealed class UseAttemptEvent : CancellableEntityEventArgs + public sealed class UseAttemptEvent(EntityUid uid, EntityUid used) : CancellableEntityEventArgs { - public UseAttemptEvent(EntityUid uid) - { - Uid = uid; - } + public EntityUid Uid { get; } = uid; - public EntityUid Uid { get; } + public EntityUid Used = used; } } diff --git a/Content.Shared/Interaction/InteractHand.cs b/Content.Shared/Interaction/InteractHand.cs index 63ea3b6f30d..1d2df4c28b2 100644 --- a/Content.Shared/Interaction/InteractHand.cs +++ b/Content.Shared/Interaction/InteractHand.cs @@ -51,58 +51,4 @@ public BeforeInteractHandEvent(EntityUid target) Target = target; } } - - /// - /// Low-level interaction event used for entities without hands. - /// - /// - /// SHIT IS CURSED. - /// - //TODO: KILLLLLLL - public sealed class InteractNoHandEvent : HandledEntityEventArgs - { - /// - /// Entity that triggered the interaction. - /// - public EntityUid User; - - /// - /// Entity that was interacted on. - /// - public EntityUid? Target; - - public EntityCoordinates ClickLocation; - - public InteractNoHandEvent(EntityUid user, EntityUid? target, EntityCoordinates clickLocation) - { - User = user; - Target = target; - ClickLocation = clickLocation; - } - } - - /// - /// Reverse of the InteractNoHandEvent - raised on what was interacted on, rather than the other way around. - /// - public sealed class InteractedNoHandEvent : HandledEntityEventArgs - { - /// - /// Entity that was interacted on - /// - public EntityUid Target; - - /// - /// Entity that triggered this interaction - /// - public EntityUid User; - - public EntityCoordinates ClickLocation; - - public InteractedNoHandEvent(EntityUid target, EntityUid user, EntityCoordinates clickLocation) - { - Target = target; - User = user; - ClickLocation = clickLocation; - } - } } diff --git a/Content.Shared/Interaction/RotateToFaceSystem.cs b/Content.Shared/Interaction/RotateToFaceSystem.cs index ed950240af6..fa213011ef1 100644 --- a/Content.Shared/Interaction/RotateToFaceSystem.cs +++ b/Content.Shared/Interaction/RotateToFaceSystem.cs @@ -1,7 +1,6 @@ using System.Numerics; using Content.Shared.ActionBlocker; using Content.Shared.Buckle.Components; -using Content.Shared.Mobs.Systems; using Content.Shared.Rotatable; using JetBrains.Annotations; @@ -83,24 +82,21 @@ public bool TryFaceAngle(EntityUid user, Angle diffAngle, TransformComponent? xf if (!_actionBlockerSystem.CanChangeDirection(user)) return false; - if (EntityManager.TryGetComponent(user, out BuckleComponent? buckle) && buckle.Buckled) + if (TryComp(user, out BuckleComponent? buckle) && buckle.BuckledTo is {} strap) { - var suid = buckle.LastEntityBuckledTo; - if (suid != null) - { - // We're buckled to another object. Is that object rotatable? - if (TryComp(suid.Value, out var rotatable) && rotatable.RotateWhileAnchored) - { - // Note the assumption that even if unanchored, user can only do spinnychair with an "independent wheel". - // (Since the user being buckled to it holds it down with their weight.) - // This is logically equivalent to RotateWhileAnchored. - // Barstools and office chairs have independent wheels, while regular chairs don't. - _transform.SetWorldRotation(Transform(suid.Value), diffAngle); - return true; - } - } - - return false; + // What if a person is strapped to a borg? + // I'm pretty sure this would allow them to be partially ratatouille'd + + // We're buckled to another object. Is that object rotatable? + if (!TryComp(strap, out var rotatable) || !rotatable.RotateWhileAnchored) + return false; + + // Note the assumption that even if unanchored, user can only do spinnychair with an "independent wheel". + // (Since the user being buckled to it holds it down with their weight.) + // This is logically equivalent to RotateWhileAnchored. + // Barstools and office chairs have independent wheels, while regular chairs don't. + _transform.SetWorldRotation(Transform(strap), diffAngle); + return true; } // user is not buckled in; apply to their transform diff --git a/Content.Shared/Interaction/SharedInteractionSystem.cs b/Content.Shared/Interaction/SharedInteractionSystem.cs index 4c22bcb14e4..cc548fd4b16 100644 --- a/Content.Shared/Interaction/SharedInteractionSystem.cs +++ b/Content.Shared/Interaction/SharedInteractionSystem.cs @@ -2,6 +2,8 @@ using System.Linq; using Content.Shared.ActionBlocker; using Content.Shared.Administration.Logs; +using Content.Shared.CCVar; +using Content.Shared.Chat; using Content.Shared.CombatMode; using Content.Shared.Database; using Content.Shared.Ghost; @@ -16,6 +18,7 @@ using Content.Shared.Movement.Components; using Content.Shared.Movement.Pulling.Systems; using Content.Shared.Physics; +using Content.Shared.Players.RateLimiting; using Content.Shared.Popups; using Content.Shared.Storage; using Content.Shared.Tag; @@ -24,6 +27,7 @@ using Content.Shared.Verbs; using Content.Shared.Wall; using JetBrains.Annotations; +using Robust.Shared.Configuration; using Robust.Shared.Containers; using Robust.Shared.Input; using Robust.Shared.Input.Binding; @@ -65,6 +69,9 @@ public abstract partial class SharedInteractionSystem : EntitySystem [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly TagSystem _tagSystem = default!; [Dependency] private readonly SharedUserInterfaceSystem _ui = default!; + [Dependency] private readonly SharedPlayerRateLimitManager _rateLimit = default!; + [Dependency] private readonly IConfigurationManager _cfg = default!; + [Dependency] private readonly ISharedChatManager _chat = default!; private EntityQuery _ignoreUiRangeQuery; private EntityQuery _fixtureQuery; @@ -76,13 +83,14 @@ public abstract partial class SharedInteractionSystem : EntitySystem private EntityQuery _wallMountQuery; private EntityQuery _delayQuery; private EntityQuery _uiQuery; + private EntityQuery _complexInteractionQuery; private const CollisionGroup InRangeUnobstructedMask = CollisionGroup.Impassable | CollisionGroup.InteractImpassable; public const float InteractionRange = 1.5f; public const float InteractionRangeSquared = InteractionRange * InteractionRange; - public const float MaxRaycastRange = 100f; + public const string RateLimitKey = "Interaction"; public delegate bool Ignored(EntityUid entity); @@ -98,6 +106,7 @@ public override void Initialize() _wallMountQuery = GetEntityQuery(); _delayQuery = GetEntityQuery(); _uiQuery = GetEntityQuery(); + _complexInteractionQuery = GetEntityQuery(); SubscribeLocalEvent(HandleUserInterfaceRangeCheck); SubscribeLocalEvent(OnBoundInterfaceInteractAttempt); @@ -110,19 +119,36 @@ public override void Initialize() SubscribeLocalEvent(OnDropped); CommandBinds.Builder - .Bind(ContentKeyFunctions.AltActivateItemInWorld, + .Bind( + ContentKeyFunctions.AltActivateItemInWorld, new PointerInputCmdHandler(HandleAltUseInteraction)) - .Bind(EngineKeyFunctions.Use, + .Bind( + EngineKeyFunctions.Use, new PointerInputCmdHandler(HandleUseInteraction)) - .Bind(ContentKeyFunctions.ActivateItemInWorld, + .Bind( + ContentKeyFunctions.ActivateItemInWorld, new PointerInputCmdHandler(HandleActivateItemInWorld)) - .Bind(ContentKeyFunctions.TryPullObject, + .Bind( + ContentKeyFunctions.TryPullObject, new PointerInputCmdHandler(HandleTryPullObject)) .Register(); + _rateLimit.Register(RateLimitKey, + new RateLimitRegistration(CCVars.InteractionRateLimitPeriod, + CCVars.InteractionRateLimitCount, + null, + CCVars.InteractionRateLimitAnnounceAdminsDelay, + RateLimitAlertAdmins) + ); + InitializeBlocking(); } + private void RateLimitAlertAdmins(ICommonSession session) + { + _chat.SendAdminAlert(Loc.GetString("interaction-rate-limit-admin-announcement", ("player", session.Name))); + } + public override void Shutdown() { CommandBinds.Unregister(); @@ -360,8 +386,13 @@ public void UserInteraction( // TODO this needs to be handled better. This probably bypasses many complex can-interact checks in weird roundabout ways. if (_actionBlockerSystem.CanInteract(user, target)) { - UserInteraction(relay.RelayEntity.Value, coordinates, target, altInteract, checkCanInteract, - checkAccess, checkCanUse); + UserInteraction(relay.RelayEntity.Value, + coordinates, + target, + altInteract, + checkCanInteract, + checkAccess, + checkCanUse); return; } } @@ -398,25 +429,10 @@ public void UserInteraction( ? !checkAccess || InRangeUnobstructed(user, coordinates) : !checkAccess || InRangeUnobstructed(user, target.Value); // permits interactions with wall mounted entities - // Does the user have hands? - if (!_handsQuery.TryComp(user, out var hands) || hands.ActiveHand == null) - { - var ev = new InteractNoHandEvent(user, target, coordinates); - RaiseLocalEvent(user, ev); - - if (target != null) - { - var interactedEv = new InteractedNoHandEvent(target.Value, user, coordinates); - RaiseLocalEvent(target.Value, interactedEv); - DoContactInteraction(user, target.Value, ev); - } - return; - } - // empty-hand interactions // combat mode hand interactions will always be true here -- since // they check this earlier before returning in - if (hands.ActiveHandEntity is not { } held) + if (!TryGetUsedEntity(user, out var used, checkCanUse)) { if (inRangeUnobstructed && target != null) InteractHand(user, target.Value); @@ -424,11 +440,7 @@ public void UserInteraction( return; } - // Can the user use the held entity? - if (checkCanUse && !_actionBlockerSystem.CanUseHeldEntity(user)) - return; - - if (target == held) + if (target == used) { UseInHandInteraction(user, target.Value, checkCanUse: false, checkCanInteract: false); return; @@ -438,7 +450,7 @@ public void UserInteraction( { InteractUsing( user, - held, + used.Value, target.Value, coordinates, checkCanInteract: false, @@ -449,14 +461,40 @@ public void UserInteraction( InteractUsingRanged( user, - held, + used.Value, target, coordinates, inRangeUnobstructed); } + private bool IsDeleted(EntityUid uid) + { + return TerminatingOrDeleted(uid) || EntityManager.IsQueuedForDeletion(uid); + } + + private bool IsDeleted(EntityUid? uid) + { + //optional / null entities can pass this validation check. I.e., is-deleted returns false for null uids + return uid != null && IsDeleted(uid.Value); + } + public void InteractHand(EntityUid user, EntityUid target) { + if (IsDeleted(user) || IsDeleted(target)) + return; + + var complexInteractions = SupportsComplexInteractions(user); + if (!complexInteractions) + { + InteractionActivate(user, + target, + checkCanInteract: false, + checkUseDelay: true, + checkAccess: false, + complexInteractions: complexInteractions); + return; + } + // allow for special logic before main interaction var ev = new BeforeInteractHandEvent(target); RaiseLocalEvent(user, ev); @@ -466,6 +504,8 @@ public void InteractHand(EntityUid user, EntityUid target) return; } + DebugTools.Assert(!IsDeleted(user) && !IsDeleted(target)); + // all interactions should only happen when in range / unobstructed, so no range check is needed var message = new InteractHandEvent(user, target); RaiseLocalEvent(target, message, true); @@ -474,19 +514,29 @@ public void InteractHand(EntityUid user, EntityUid target) if (message.Handled) return; + DebugTools.Assert(!IsDeleted(user) && !IsDeleted(target)); + // Else we run Activate. - InteractionActivate(user, target, + InteractionActivate(user, + target, checkCanInteract: false, checkUseDelay: true, - checkAccess: false); + checkAccess: false, + complexInteractions: complexInteractions, + checkDeletion: false); } public void InteractUsingRanged(EntityUid user, EntityUid used, EntityUid? target, EntityCoordinates clickLocation, bool inRangeUnobstructed) { - if (RangedInteractDoBefore(user, used, target, clickLocation, inRangeUnobstructed)) + if (IsDeleted(user) || IsDeleted(used) || IsDeleted(target)) + return; + + if (RangedInteractDoBefore(user, used, target, clickLocation, inRangeUnobstructed, checkDeletion: true)) return; + DebugTools.Assert(!IsDeleted(user) && !IsDeleted(used) && !IsDeleted(target)); + if (target != null) { var rangedMsg = new RangedInteractEvent(user, used, target.Value, clickLocation); @@ -499,7 +549,8 @@ public void InteractUsingRanged(EntityUid user, EntityUid used, EntityUid? targe return; } - InteractDoAfter(user, used, target, clickLocation, inRangeUnobstructed); + DebugTools.Assert(!IsDeleted(user) && !IsDeleted(used) && !IsDeleted(target)); + InteractDoAfter(user, used, target, clickLocation, inRangeUnobstructed, checkDeletion: false); } protected bool ValidateInteractAndFace(EntityUid user, EntityCoordinates coordinates) @@ -895,8 +946,12 @@ public bool RangedInteractDoBefore( EntityUid used, EntityUid? target, EntityCoordinates clickLocation, - bool canReach) + bool canReach, + bool checkDeletion = false) { + if (checkDeletion && (IsDeleted(user) || IsDeleted(used) || IsDeleted(target))) + return false; + var ev = new BeforeRangedInteractEvent(user, used, target, clickLocation, canReach); RaiseLocalEvent(used, ev); @@ -918,10 +973,13 @@ public void InteractUsing( bool checkCanInteract = true, bool checkCanUse = true) { + if (IsDeleted(user) || IsDeleted(used) || IsDeleted(target)) + return; + if (checkCanInteract && !_actionBlockerSystem.CanInteract(user, target)) return; - if (checkCanUse && !_actionBlockerSystem.CanUseHeldEntity(user)) + if (checkCanUse && !_actionBlockerSystem.CanUseHeldEntity(user, used)) return; if (RangedInteractDoBefore(user, used, target, clickLocation, true)) @@ -932,7 +990,7 @@ public void InteractUsing( RaiseLocalEvent(target, interactUsingEvent, true); DoContactInteraction(user, used, interactUsingEvent); DoContactInteraction(user, target, interactUsingEvent); - DoContactInteraction(used, target, interactUsingEvent); + if (interactUsingEvent.Handled) return; @@ -942,19 +1000,26 @@ public void InteractUsing( /// /// Used when clicking on an entity resulted in no other interaction. Used for low-priority interactions. /// - public void InteractDoAfter(EntityUid user, EntityUid used, EntityUid? target, EntityCoordinates clickLocation, bool canReach) + public void InteractDoAfter( + EntityUid user, + EntityUid used, + EntityUid? target, + EntityCoordinates clickLocation, + bool canReach, + bool checkDeletion = false + ) { if (target is {Valid: false}) target = null; + if (checkDeletion && (IsDeleted(user) || IsDeleted(used) || IsDeleted(target))) + return; + var afterInteractEvent = new AfterInteractEvent(user, used, target, clickLocation, canReach); RaiseLocalEvent(used, afterInteractEvent); DoContactInteraction(user, used, afterInteractEvent); if (canReach) - { DoContactInteraction(user, target, afterInteractEvent); - DoContactInteraction(used, target, afterInteractEvent); - } if (afterInteractEvent.Handled) return; @@ -967,10 +1032,7 @@ public void InteractDoAfter(EntityUid user, EntityUid used, EntityUid? target, E DoContactInteraction(user, used, afterInteractUsingEvent); if (canReach) - { DoContactInteraction(user, target, afterInteractUsingEvent); - DoContactInteraction(used, target, afterInteractUsingEvent); - } } #region ActivateItemInWorld @@ -1001,7 +1063,10 @@ public bool InteractionActivate( EntityUid used, bool checkCanInteract = true, bool checkUseDelay = true, - bool checkAccess = true) + bool checkAccess = true, + bool? complexInteractions = null, + bool checkDeletion = true + ) { _delayQuery.TryComp(used, out var delayComponent); if (checkUseDelay && delayComponent != null && _useDelay.IsDelayed((used, delayComponent))) @@ -1018,16 +1083,18 @@ public bool InteractionActivate( if (checkAccess && !IsAccessible(user, used)) return false; - // Does the user have hands? - if (!_handsQuery.HasComp(user)) - return false; - - var activateMsg = new ActivateInWorldEvent(user, used); + complexInteractions ??= SupportsComplexInteractions(user); + var activateMsg = new ActivateInWorldEvent(user, used, complexInteractions.Value); RaiseLocalEvent(used, activateMsg, true); - if (!activateMsg.Handled) + var userEv = new UserActivateInWorldEvent(user, used, complexInteractions.Value); + + RaiseLocalEvent(user, userEv, true); + if (!activateMsg.Handled && !userEv.Handled) return false; + DebugTools.Assert(!IsDeleted(user) && !IsDeleted(used)); DoContactInteraction(user, used, activateMsg); + // Still need to call this even without checkUseDelay in case this gets relayed from Activate. if (delayComponent != null) _useDelay.TryResetDelay(used, component: delayComponent); @@ -1052,6 +1119,9 @@ public bool UseInHandInteraction( bool checkCanInteract = true, bool checkUseDelay = true) { + if (IsDeleted(user) || IsDeleted(used)) + return false; + _delayQuery.TryComp(used, out var delayComponent); if (checkUseDelay && delayComponent != null && _useDelay.IsDelayed((used, delayComponent))) return true; // if the item is on cooldown, we consider this handled. @@ -1059,7 +1129,7 @@ public bool UseInHandInteraction( if (checkCanInteract && !_actionBlockerSystem.CanInteract(user, used)) return false; - if (checkCanUse && !_actionBlockerSystem.CanUseHeldEntity(user)) + if (checkCanUse && !_actionBlockerSystem.CanUseHeldEntity(user, used)) return false; var useMsg = new UseInHandEvent(user); @@ -1098,6 +1168,9 @@ public bool AltInteract(EntityUid user, EntityUid target) public void DroppedInteraction(EntityUid user, EntityUid item) { + if (IsDeleted(user) || IsDeleted(item)) + return; + var dropMsg = new DroppedEvent(user); RaiseLocalEvent(item, dropMsg, true); if (dropMsg.Handled) @@ -1167,7 +1240,7 @@ public bool CanAccessViaStorage(EntityUid user, EntityUid target, BaseContainer return false; // we don't check if the user can access the storage entity itself. This should be handed by the UI system. - return _ui.IsUiOpen(target, StorageComponent.StorageUiKey.Key, user); + return _ui.IsUiOpen(container.Owner, StorageComponent.StorageUiKey.Key, user); } /// @@ -1196,8 +1269,11 @@ public bool CanAccessEquipment(EntityUid user, EntityUid target) return InRangeUnobstructed(user, wearer) && _containerSystem.IsInSameOrParentContainer(user, wearer); } - protected bool ValidateClientInput(ICommonSession? session, EntityCoordinates coords, - EntityUid uid, [NotNullWhen(true)] out EntityUid? userEntity) + protected bool ValidateClientInput( + ICommonSession? session, + EntityCoordinates coords, + EntityUid uid, + [NotNullWhen(true)] out EntityUid? userEntity) { userEntity = null; @@ -1227,7 +1303,7 @@ protected bool ValidateClientInput(ICommonSession? session, EntityCoordinates co return false; } - return true; + return _rateLimit.CountAction(session!, RateLimitKey) == RateLimitStatus.Allowed; } /// @@ -1238,15 +1314,21 @@ public void DoContactInteraction(EntityUid uidA, EntityUid? uidB, HandledEntityE if (uidB == null || args?.Handled == false) return; - // Entities may no longer exist (banana was eaten, or human was exploded)? - if (!Exists(uidA) || !Exists(uidB)) + if (uidA == uidB.Value) return; - if (Paused(uidA) || Paused(uidB.Value)) + if (!TryComp(uidA, out MetaDataComponent? metaA) || metaA.EntityPaused) return; - RaiseLocalEvent(uidA, new ContactInteractionEvent(uidB.Value)); - RaiseLocalEvent(uidB.Value, new ContactInteractionEvent(uidA)); + if (!TryComp(uidB, out MetaDataComponent? metaB) || metaB.EntityPaused) + return ; + + // TODO Struct event + var ev = new ContactInteractionEvent(uidB.Value); + RaiseLocalEvent(uidA, ev); + + ev.Other = uidA; + RaiseLocalEvent(uidB.Value, ev); } @@ -1259,6 +1341,39 @@ private void HandleUserInterfaceRangeCheck(ref BoundUserInterfaceCheckRangeEvent ? BoundUserInterfaceRangeResult.Pass : BoundUserInterfaceRangeResult.Fail; } + + /// + /// Gets the entity that is currently being "used" for the interaction. + /// In most cases, this refers to the entity in the character's active hand. + /// + /// If there is an entity being used. + public bool TryGetUsedEntity(EntityUid user, [NotNullWhen(true)] out EntityUid? used, bool checkCanUse = true) + { + var ev = new GetUsedEntityEvent(); + RaiseLocalEvent(user, ref ev); + + used = ev.Used; + if (!ev.Handled) + return false; + + // Can the user use the held entity? + if (checkCanUse && !_actionBlockerSystem.CanUseHeldEntity(user, ev.Used!.Value)) + { + used = null; + return false; + } + + return ev.Handled; + } + + /// + /// Checks if a given entity is able to do specific complex interactions. + /// This is used to gate manipulation to general humanoids. If a mouse shouldn't be able to do something, then it's complex. + /// + public bool SupportsComplexInteractions(EntityUid user) + { + return _complexInteractionQuery.HasComp(user); + } } /// @@ -1284,6 +1399,24 @@ public InteractInventorySlotEvent(NetEntity itemUid, bool altInteract = false) } } + /// + /// Raised directed by-ref on an entity to determine what item will be used in interactions. + /// + [ByRefEvent] + public record struct GetUsedEntityEvent() + { + public EntityUid? Used = null; + + public bool Handled => Used != null; + }; + + /// + /// Raised directed by-ref on an item and a user to determine if interactions can occur. + /// + /// Whether the hand interaction should be cancelled. + [ByRefEvent] + public record struct AttemptUseInteractEvent(EntityUid User, EntityUid Used, bool Cancelled = false); + /// /// Raised directed by-ref on an item to determine if hand interactions should go through. /// Defaults to allowing hand interactions to go through. Cancel to force the item to be attacked instead. diff --git a/Content.Shared/Interaction/SmartEquipSystem.cs b/Content.Shared/Interaction/SmartEquipSystem.cs index fb2bc3c4609..bba294db28d 100644 --- a/Content.Shared/Interaction/SmartEquipSystem.cs +++ b/Content.Shared/Interaction/SmartEquipSystem.cs @@ -1,4 +1,4 @@ -using Content.Shared.ActionBlocker; +using Content.Shared.ActionBlocker; using Content.Shared.Containers.ItemSlots; using Content.Shared.Hands.Components; using Content.Shared.Hands.EntitySystems; @@ -7,6 +7,7 @@ using Content.Shared.Popups; using Content.Shared.Storage; using Content.Shared.Storage.EntitySystems; +using Content.Shared.Whitelist; using Robust.Shared.Containers; using Robust.Shared.Input.Binding; using Robust.Shared.Player; @@ -25,6 +26,7 @@ public sealed class SmartEquipSystem : EntitySystem [Dependency] private readonly SharedContainerSystem _container = default!; [Dependency] private readonly SharedPopupSystem _popup = default!; [Dependency] private readonly ActionBlockerSystem _actionBlocker = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; /// public override void Initialize() @@ -182,7 +184,7 @@ private void HandleSmartEquip(ICommonSession? session, string equipmentSlot) foreach (var slot in slots.Slots.Values) { if (!slot.HasItem - && (slot.Whitelist?.IsValid(handItem.Value, EntityManager) ?? true) + && _whitelistSystem.IsWhitelistPassOrNull(slot.Whitelist, handItem.Value) && slot.Priority > (toInsertTo?.Priority ?? int.MinValue)) { toInsertTo = slot; diff --git a/Content.Shared/Inventory/InventoryComponent.cs b/Content.Shared/Inventory/InventoryComponent.cs index 02b3a5b2583..edc8e6641c1 100644 --- a/Content.Shared/Inventory/InventoryComponent.cs +++ b/Content.Shared/Inventory/InventoryComponent.cs @@ -16,6 +16,7 @@ public sealed partial class InventoryComponent : Component [DataField] public Dictionary Displacements = []; public SlotDefinition[] Slots = Array.Empty(); + public ContainerSlot[] Containers = Array.Empty(); [DataDefinition] diff --git a/Content.Shared/Inventory/InventorySystem.Relay.cs b/Content.Shared/Inventory/InventorySystem.Relay.cs index 39e10415f8e..44892a617e0 100644 --- a/Content.Shared/Inventory/InventorySystem.Relay.cs +++ b/Content.Shared/Inventory/InventorySystem.Relay.cs @@ -34,6 +34,7 @@ public void InitializeRelay() // by-ref events SubscribeLocalEvent(RefRelayInventoryEvent); + SubscribeLocalEvent(RefRelayInventoryEvent); // Eye/vision events SubscribeLocalEvent(RelayInventoryEvent); diff --git a/Content.Shared/Inventory/InventorySystem.Slots.cs b/Content.Shared/Inventory/InventorySystem.Slots.cs index e0f2a695576..201a06fb501 100644 --- a/Content.Shared/Inventory/InventorySystem.Slots.cs +++ b/Content.Shared/Inventory/InventorySystem.Slots.cs @@ -1,17 +1,21 @@ +using Content.Shared.Random; using System.Diagnostics.CodeAnalysis; using Content.Shared.Inventory.Events; using Content.Shared.Storage; using Robust.Shared.Containers; using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.Manager; using Robust.Shared.Utility; +using System.Diagnostics.CodeAnalysis; +using System.Linq; namespace Content.Shared.Inventory; - public partial class InventorySystem : EntitySystem { [Dependency] private readonly IPrototypeManager _prototypeManager = default!; [Dependency] private readonly IViewVariablesManager _vvm = default!; - + [Dependency] private readonly RandomHelperSystem _randomHelper = default!; + [Dependency] private readonly ISerializationManager _serializationManager = default!; private void InitializeSlots() { SubscribeLocalEvent(OnInit); @@ -57,7 +61,8 @@ protected virtual void OnInit(EntityUid uid, InventoryComponent component, Compo if (!_prototypeManager.TryIndex(component.TemplateId, out InventoryTemplatePrototype? invTemplate)) return; - component.Slots = invTemplate.Slots; + _serializationManager.CopyTo(invTemplate.Slots, ref component.Slots, notNullableOverride: true); + component.Containers = new ContainerSlot[component.Slots.Length]; for (var i = 0; i < component.Containers.Length; i++) { @@ -75,7 +80,7 @@ private void OnOpenSlotStorage(OpenSlotStorageNetworkMessage ev, EntitySessionEv if (TryGetSlotEntity(uid, ev.Slot, out var entityUid) && TryComp(entityUid, out var storageComponent)) { - _storageSystem.OpenStorageUI(entityUid.Value, uid, storageComponent); + _storageSystem.OpenStorageUI(entityUid.Value, uid, storageComponent, false); } } @@ -115,7 +120,7 @@ public bool TryGetSlot(EntityUid uid, string slot, [NotNullWhen(true)] out SlotD foreach (var slotDef in inventory.Slots) { - if (!slotDef.Name.Equals(slot)) + if (!slotDef.Name.Equals(slot) || slotDef.Disabled) continue; slotDefinition = slotDef; return true; @@ -170,6 +175,34 @@ private IEnumerable ListViewVariablesSlots(EntityUid uid, InventoryCompo } } + public void SetSlotStatus(EntityUid uid, string slotName, bool isDisabled, InventoryComponent? inventory = null) + { + if (!Resolve(uid, ref inventory)) + return; + + foreach (var slot in inventory.Slots) + { + if (slot.Name != slotName) + continue; + + if (isDisabled) + { + if (!TryGetSlotContainer(uid, slotName, out var container, out _, inventory)) + break; + + if (container.ContainedEntity is { } entityUid && TryComp(entityUid, out TransformComponent? transform) && _gameTiming.IsFirstTimePredicted) + { + _transform.AttachToGridOrMap(entityUid, transform); + _randomHelper.RandomOffset(entityUid, 0.5f); + } + } + slot.Disabled = isDisabled; + break; + } + + Dirty(uid, inventory); + } + /// /// Enumerator for iterating over an inventory's slot containers. Also has methods that skip empty containers. /// It should be safe to add or remove items while enumerating. @@ -182,12 +215,12 @@ public struct InventorySlotEnumerator private int _nextIdx = 0; public static InventorySlotEnumerator Empty = new(Array.Empty(), Array.Empty()); - public InventorySlotEnumerator(InventoryComponent inventory, SlotFlags flags = SlotFlags.All) + public InventorySlotEnumerator(InventoryComponent inventory, SlotFlags flags = SlotFlags.All) : this(inventory.Slots, inventory.Containers, flags) { } - public InventorySlotEnumerator(SlotDefinition[] slots, ContainerSlot[] containers, SlotFlags flags = SlotFlags.All) + public InventorySlotEnumerator(SlotDefinition[] slots, ContainerSlot[] containers, SlotFlags flags = SlotFlags.All) { DebugTools.Assert(flags != SlotFlags.NONE); DebugTools.AssertEqual(slots.Length, containers.Length); @@ -203,7 +236,7 @@ public bool MoveNext([NotNullWhen(true)] out ContainerSlot? container) var i = _nextIdx++; var slot = _slots[i]; - if ((slot.SlotFlags & _flags) == 0) + if ((slot.SlotFlags & _flags) == 0 || slot.Disabled) continue; container = _containers[i]; @@ -221,7 +254,7 @@ public bool NextItem(out EntityUid item) var i = _nextIdx++; var slot = _slots[i]; - if ((slot.SlotFlags & _flags) == 0) + if ((slot.SlotFlags & _flags) == 0 || slot.Disabled) continue; var container = _containers[i]; diff --git a/Content.Shared/Inventory/InventoryTemplatePrototype.cs b/Content.Shared/Inventory/InventoryTemplatePrototype.cs index a4d77767e37..0d900688fcc 100644 --- a/Content.Shared/Inventory/InventoryTemplatePrototype.cs +++ b/Content.Shared/Inventory/InventoryTemplatePrototype.cs @@ -55,4 +55,9 @@ public sealed partial class SlotDefinition /// Entity blacklist for CanEquip checks. /// [DataField("blacklist")] public EntityWhitelist? Blacklist = null; + + /// + /// Is this slot disabled? Could be due to severing or other reasons. + /// + [DataField] public bool Disabled; } diff --git a/Content.Shared/Item/ItemToggle/Components/ItemToggleDamageOtherOnHitComponent.cs b/Content.Shared/Item/ItemToggle/Components/ItemToggleDamageOtherOnHitComponent.cs new file mode 100644 index 00000000000..844582f6fa8 --- /dev/null +++ b/Content.Shared/Item/ItemToggle/Components/ItemToggleDamageOtherOnHitComponent.cs @@ -0,0 +1,60 @@ +using Content.Shared.Damage.Systems; +using Content.Shared.Damage; +using Robust.Shared.Audio; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Item.ItemToggle.Components; + +/// +/// Handles changes to DamageOtherOnHitComponent when the item is toggled. +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class ItemToggleDamageOtherOnHitComponent : Component +{ + /// + /// The stamina cost of throwing this entity when activated. + /// + [DataField, AutoNetworkedField] + public float? ActivatedStaminaCost = null; + + /// + /// The stamina cost of throwing this entity when deactivated. + /// + [DataField, AutoNetworkedField] + public float? DeactivatedStaminaCost = null; + + /// + /// Damage done by this item when activated. + /// + [DataField, AutoNetworkedField] + public DamageSpecifier? ActivatedDamage = null; + + /// + /// Damage done by this item when deactivated. + /// + [DataField, AutoNetworkedField] + public DamageSpecifier? DeactivatedDamage = null; + + /// + /// The noise this item makes when hitting something with it on. + /// + [DataField, AutoNetworkedField] + public SoundSpecifier? ActivatedSoundHit; + + /// + /// The noise this item makes when hitting something with it off. + /// + public SoundSpecifier? DeactivatedSoundHit; + + /// + /// The noise this item makes when hitting something with it off and it does no damage. + /// + [DataField, AutoNetworkedField] + public SoundSpecifier ActivatedSoundNoDamage { get; set; } = new SoundCollectionSpecifier("WeakHit"); + + /// + /// The noise this item makes when hitting something with it off and it does no damage. + /// + public SoundSpecifier? DeactivatedSoundNoDamage; +} diff --git a/Content.Shared/Item/ItemToggle/Components/ItemToggleEmbedPassiveDamageComponent.cs b/Content.Shared/Item/ItemToggle/Components/ItemToggleEmbedPassiveDamageComponent.cs new file mode 100644 index 00000000000..76ecbec3604 --- /dev/null +++ b/Content.Shared/Item/ItemToggle/Components/ItemToggleEmbedPassiveDamageComponent.cs @@ -0,0 +1,23 @@ +using Content.Shared.Damage; +using Robust.Shared.GameStates; + +namespace Content.Shared.Item.ItemToggle.Components; + +/// +/// Handles the changes to the embed passive damage when toggled. +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class ItemToggleEmbedPassiveDamageComponent : Component +{ + /// + /// Damage per interval dealt to the entity every interval when activated. + /// + [DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField] + public DamageSpecifier? ActivatedDamage = null; + + /// + /// Damage per interval dealt to the entity every interval when deactivated. + /// + [DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField] + public DamageSpecifier? DeactivatedDamage = null; +} diff --git a/Content.Shared/Item/ItemToggle/Components/ItemToggleEmbeddableProjectileComponent.cs b/Content.Shared/Item/ItemToggle/Components/ItemToggleEmbeddableProjectileComponent.cs new file mode 100644 index 00000000000..bd8f68402dc --- /dev/null +++ b/Content.Shared/Item/ItemToggle/Components/ItemToggleEmbeddableProjectileComponent.cs @@ -0,0 +1,60 @@ +using System.Numerics; +using Robust.Shared.Audio; +using Robust.Shared.GameStates; + +namespace Content.Shared.Item.ItemToggle.Components; + +/// +/// Handles the embeddable stats for activated items. +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class ItemToggleEmbeddableProjectileComponent : Component +{ + /// + /// The removal time when this item is activated. + /// + [DataField, AutoNetworkedField] + public float? ActivatedRemovalTime; + + /// + /// The offset of the sprite when this item is activated. + /// + [DataField, AutoNetworkedField] + public Vector2? ActivatedOffset; + + /// + /// Whether this entity will embed when thrown when this item is activated. + /// + [DataField, AutoNetworkedField] + public bool? ActivatedEmbedOnThrow; + + /// + /// The sound to play after embedding when this item is activated. + /// + [DataField, AutoNetworkedField] + public SoundSpecifier? ActivatedSound; + + /// + /// The removal time when this item is deactivated. + /// + [DataField, AutoNetworkedField] + public float? DeactivatedRemovalTime; + + /// + /// The offset of the sprite when this item is deactivated. + /// + [DataField, AutoNetworkedField] + public Vector2? DeactivatedOffset; + + /// + /// Whether this entity will embed when thrown when this item is deactivated. + /// + [DataField, AutoNetworkedField] + public bool? DeactivatedEmbedOnThrow; + + /// + /// The sound to play after embedding when this item is deactivated. + /// + [DataField, AutoNetworkedField] + public SoundSpecifier? DeactivatedSound; +} diff --git a/Content.Shared/Item/ItemToggle/Components/ItemToggleThrowingAngleComponent.cs b/Content.Shared/Item/ItemToggle/Components/ItemToggleThrowingAngleComponent.cs new file mode 100644 index 00000000000..38590621c37 --- /dev/null +++ b/Content.Shared/Item/ItemToggle/Components/ItemToggleThrowingAngleComponent.cs @@ -0,0 +1,41 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Item.ItemToggle.Components; + +/// +/// Handles the changes to the throwing angle when the item is toggled. +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class ItemToggleThrowingAngleComponent : Component +{ + /// + /// Item's throwing spin status when activated. + /// + [DataField, AutoNetworkedField] + public bool? ActivatedAngularVelocity = null; + + /// + /// Item's angle when activated. + /// + [DataField, AutoNetworkedField] + public Angle? ActivatedAngle = null; + + /// + /// Item's throwing spin status when deactivated. + /// + [DataField, AutoNetworkedField] + public bool? DeactivatedAngularVelocity = null; + + /// + /// Item's angle when deactivated. + /// + [DataField, AutoNetworkedField] + public Angle? DeactivatedAngle = null; + + /// + /// When this is true, adds the ThrowingAngle component on activation + /// and deletes it on deactivation. + /// + [DataField, AutoNetworkedField] + public bool DeleteOnDeactivate = false; +} diff --git a/Content.Shared/Item/ItemToggle/SharedItemToggleSystem.cs b/Content.Shared/Item/ItemToggle/SharedItemToggleSystem.cs index 523f67bac3d..d07fd5a735e 100644 --- a/Content.Shared/Item/ItemToggle/SharedItemToggleSystem.cs +++ b/Content.Shared/Item/ItemToggle/SharedItemToggleSystem.cs @@ -1,12 +1,15 @@ using Content.Shared.Interaction.Events; using Content.Shared.Item.ItemToggle.Components; using Content.Shared.Popups; +using Content.Shared.Projectiles; using Content.Shared.Temperature; +using Content.Shared.Throwing; using Content.Shared.Toggleable; using Content.Shared.Wieldable; using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; using Robust.Shared.Network; +using System.Numerics; namespace Content.Shared.Item.ItemToggle; /// @@ -35,6 +38,8 @@ public override void Initialize() SubscribeLocalEvent(OnIsHotEvent); SubscribeLocalEvent(UpdateActiveSound); + SubscribeLocalEvent(UpdateThrowingAngle); + SubscribeLocalEvent(UpdateEmbeddableProjectile); } private void OnStartup(Entity ent, ref ComponentStartup args) @@ -245,9 +250,22 @@ private void UpdateActiveSound(EntityUid uid, ItemToggleActiveSoundComponent act if (activeSound.ActiveSound != null && activeSound.PlayingStream == null) { if (args.Predicted) - activeSound.PlayingStream = _audio.PlayPredicted(activeSound.ActiveSound, uid, args.User, AudioParams.Default.WithLoop(true)).Value.Entity; - else - activeSound.PlayingStream = _audio.PlayPvs(activeSound.ActiveSound, uid, AudioParams.Default.WithLoop(true)).Value.Entity; + { + var playingStream = _audio.PlayPredicted(activeSound.ActiveSound, uid, args.User, AudioParams.Default.WithLoop(true)); + + if (playingStream == null) + return; + + activeSound.PlayingStream = playingStream!.Value.Entity; + } else + { + var playingStream = _audio.PlayPvs(activeSound.ActiveSound, uid, AudioParams.Default.WithLoop(true)); + + if (playingStream == null) + return; + + activeSound.PlayingStream = playingStream!.Value.Entity; + } } } else @@ -255,4 +273,93 @@ private void UpdateActiveSound(EntityUid uid, ItemToggleActiveSoundComponent act activeSound.PlayingStream = _audio.Stop(activeSound.PlayingStream); } } + + /// + /// Used to update the throwing angle on item toggle. + /// + private void UpdateThrowingAngle(EntityUid uid, ItemToggleThrowingAngleComponent component, ItemToggledEvent args) + { + if (component.DeleteOnDeactivate) + { + if (args.Activated) + { + var newThrowingAngle = new ThrowingAngleComponent(); + + if (component.ActivatedAngle is {} activatedAngle) + newThrowingAngle.Angle = activatedAngle; + + if (component.ActivatedAngularVelocity is {} activatedAngularVelocity) + newThrowingAngle.AngularVelocity = activatedAngularVelocity; + + AddComp(uid, newThrowingAngle); + } + else + RemCompDeferred(uid); + return; + } + + if (!TryComp(uid, out var throwingAngle)) + return; + + if (args.Activated) + { + component.DeactivatedAngle ??= throwingAngle.Angle; + if (component.ActivatedAngle is {} activatedAngle) + throwingAngle.Angle = activatedAngle; + + component.DeactivatedAngularVelocity ??= throwingAngle.AngularVelocity; + if (component.ActivatedAngularVelocity is {} activatedAngularVelocity) + throwingAngle.AngularVelocity = activatedAngularVelocity; + } + else + { + if (component.DeactivatedAngle is {} deactivatedAngle) + throwingAngle.Angle = deactivatedAngle; + + if (component.DeactivatedAngularVelocity is {} deactivatedAngularVelocity) + throwingAngle.AngularVelocity = deactivatedAngularVelocity; + } + } + + /// + /// Used to update the embeddable stats on item toggle. + /// + private void UpdateEmbeddableProjectile(EntityUid uid, ItemToggleEmbeddableProjectileComponent component, ItemToggledEvent args) + { + if (!TryComp(uid, out var embeddable)) + return; + + if (args.Activated) + { + component.DeactivatedRemovalTime ??= embeddable.RemovalTime; + if (component.ActivatedRemovalTime is {} activatedRemovalTime) + embeddable.RemovalTime = activatedRemovalTime; + + component.DeactivatedOffset ??= embeddable.Offset; + if (component.ActivatedOffset is {} activatedOffset) + embeddable.Offset = activatedOffset; + + component.DeactivatedEmbedOnThrow ??= embeddable.EmbedOnThrow; + if (component.ActivatedEmbedOnThrow is {} activatedEmbedOnThrow) + embeddable.EmbedOnThrow = activatedEmbedOnThrow; + + component.DeactivatedSound ??= embeddable.Sound; + if (component.ActivatedSound is {} activatedSound) + embeddable.Sound = activatedSound; + } + else + { + if (component.DeactivatedRemovalTime is {} deactivatedRemovalTime) + embeddable.RemovalTime = deactivatedRemovalTime; + + if (component.DeactivatedOffset is {} deactivatedOffset) + embeddable.Offset = deactivatedOffset; + + if (component.DeactivatedEmbedOnThrow is {} deactivatedEmbedOnThrow) + embeddable.EmbedOnThrow = deactivatedEmbedOnThrow; + + if (component.DeactivatedSound is {} deactivatedSound) + embeddable.Sound = deactivatedSound; + } + } } diff --git a/Content.Shared/Light/SharedHandheldLightSystem.cs b/Content.Shared/Light/SharedHandheldLightSystem.cs index 2fa15800a31..9bec37a3140 100644 --- a/Content.Shared/Light/SharedHandheldLightSystem.cs +++ b/Content.Shared/Light/SharedHandheldLightSystem.cs @@ -29,7 +29,7 @@ private void OnInit(EntityUid uid, HandheldLightComponent component, ComponentIn UpdateVisuals(uid, component); // Want to make sure client has latest data on level so battery displays properly. - Dirty(component); + Dirty(uid, component); } private void OnHandleState(EntityUid uid, HandheldLightComponent component, ref ComponentHandleState args) diff --git a/Content.Shared/Light/SharedRgbLightControllerSystem.cs b/Content.Shared/Light/SharedRgbLightControllerSystem.cs index 1bba91c5e7b..7d4928f5bc1 100644 --- a/Content.Shared/Light/SharedRgbLightControllerSystem.cs +++ b/Content.Shared/Light/SharedRgbLightControllerSystem.cs @@ -17,13 +17,13 @@ private void OnGetState(EntityUid uid, RgbLightControllerComponent component, re args.State = new RgbLightControllerState(component.CycleRate, component.Layers); } - public void SetLayers(EntityUid uid, List? layers, RgbLightControllerComponent? rgb = null) + public void SetLayers(EntityUid uid, List? layers, RgbLightControllerComponent? rgb = null) { if (!Resolve(uid, ref rgb)) return; rgb.Layers = layers; - Dirty(rgb); + Dirty(uid, rgb); } public void SetCycleRate(EntityUid uid, float rate, RgbLightControllerComponent? rgb = null) @@ -32,6 +32,6 @@ public void SetCycleRate(EntityUid uid, float rate, RgbLightControllerComponent? return; rgb.CycleRate = Math.Clamp(0.01f, rate, 1); // lets not give people seizures - Dirty(rgb); + Dirty(uid, rgb); } } diff --git a/Content.Shared/ListViewSelector/ListViewSelectorEntry.cs b/Content.Shared/ListViewSelector/ListViewSelectorEntry.cs new file mode 100644 index 00000000000..f34e9e3924d --- /dev/null +++ b/Content.Shared/ListViewSelector/ListViewSelectorEntry.cs @@ -0,0 +1,33 @@ +using Robust.Shared.Serialization; + +namespace Content.Shared.ListViewSelector; + +[Serializable, NetSerializable] +public record ListViewSelectorEntry(string Id, string Name = "", string Description = ""); + +[Serializable, NetSerializable] +public enum ListViewSelectorUiKey +{ + Key +} + +[Serializable, NetSerializable] +public sealed class ListViewSelectorState( + List items, + Dictionary? metaData = null) : BoundUserInterfaceState +{ + public List Items { get; } = items; + public Dictionary MetaData = metaData ?? new(); +} + +[Serializable, NetSerializable] +public sealed class ListViewItemSelectedMessage( + ListViewSelectorEntry selectedItem, + int index, + Dictionary metaData = default!) + : BoundUserInterfaceMessage +{ + public ListViewSelectorEntry SelectedItem { get; private set; } = selectedItem; + public int Index { get; private set; } = index; + public Dictionary MetaData = metaData; +} diff --git a/Content.Shared/Lock/LockSystem.cs b/Content.Shared/Lock/LockSystem.cs index 9296a354d2c..bfdfc77bc21 100644 --- a/Content.Shared/Lock/LockSystem.cs +++ b/Content.Shared/Lock/LockSystem.cs @@ -8,6 +8,7 @@ using Content.Shared.IdentityManagement; using Content.Shared.Interaction; using Content.Shared.Popups; +using Content.Shared.Storage; using Content.Shared.Storage.Components; using Content.Shared.Verbs; using Content.Shared.Wires; @@ -42,11 +43,13 @@ public override void Initialize() SubscribeLocalEvent(OnEmagged); SubscribeLocalEvent(OnDoAfterLock); SubscribeLocalEvent(OnDoAfterUnlock); + SubscribeLocalEvent(OnStorageInteractAttempt); SubscribeLocalEvent(OnLockToggleAttempt); SubscribeLocalEvent(OnAttemptChangePanel); SubscribeLocalEvent(OnUnanchorAttempt); } + private void OnStartup(EntityUid uid, LockComponent lockComp, ComponentStartup args) { _appearanceSystem.SetData(uid, LockVisuals.Locked, lockComp.Locked); @@ -54,7 +57,7 @@ private void OnStartup(EntityUid uid, LockComponent lockComp, ComponentStartup a private void OnActivated(EntityUid uid, LockComponent lockComp, ActivateInWorldEvent args) { - if (args.Handled) + if (args.Handled || !args.Complex) return; // Only attempt an unlock by default on Activate @@ -295,6 +298,12 @@ private void OnDoAfterUnlock(EntityUid uid, LockComponent component, UnlockDoAft TryUnlock(uid, args.User, skipDoAfter: true); } + private void OnStorageInteractAttempt(Entity ent, ref StorageInteractAttemptEvent args) + { + if (ent.Comp.Locked) + args.Cancelled = true; + } + private void OnLockToggleAttempt(Entity ent, ref LockToggleAttemptEvent args) { if (args.Cancelled) diff --git a/Content.Shared/Magic/Events/ChangeComponentSpellEvent.cs b/Content.Shared/Magic/Events/ChangeComponentSpellEvent.cs index 61e75c8b1aa..1f09bfd3b2d 100644 --- a/Content.Shared/Magic/Events/ChangeComponentSpellEvent.cs +++ b/Content.Shared/Magic/Events/ChangeComponentSpellEvent.cs @@ -1,4 +1,5 @@ using Content.Shared.Actions; +using Content.Shared.Chat; using Robust.Shared.Prototypes; namespace Content.Shared.Magic.Events; @@ -21,4 +22,6 @@ public sealed partial class ChangeComponentsSpellEvent : EntityTargetActionEvent [DataField("speech")] public string? Speech { get; private set; } + + public InGameICChatType ChatType { get; } = InGameICChatType.Speak; } diff --git a/Content.Shared/Magic/Events/ChargeSpellEvent.cs b/Content.Shared/Magic/Events/ChargeSpellEvent.cs index 8898761ec2a..57e1eb880dd 100644 --- a/Content.Shared/Magic/Events/ChargeSpellEvent.cs +++ b/Content.Shared/Magic/Events/ChargeSpellEvent.cs @@ -1,4 +1,5 @@ using Content.Shared.Actions; +using Content.Shared.Chat; namespace Content.Shared.Magic.Events; @@ -15,4 +16,6 @@ public sealed partial class ChargeSpellEvent : InstantActionEvent, ISpeakSpell [DataField] public string? Speech { get; private set; } + + public InGameICChatType ChatType { get; } = InGameICChatType.Speak; } diff --git a/Content.Shared/Magic/Events/InstantSpawnSpellEvent.cs b/Content.Shared/Magic/Events/InstantSpawnSpellEvent.cs index 1405b158271..66337839596 100644 --- a/Content.Shared/Magic/Events/InstantSpawnSpellEvent.cs +++ b/Content.Shared/Magic/Events/InstantSpawnSpellEvent.cs @@ -1,4 +1,5 @@ using Content.Shared.Actions; +using Content.Shared.Chat; using Robust.Shared.Prototypes; namespace Content.Shared.Magic.Events; @@ -17,6 +18,8 @@ public sealed partial class InstantSpawnSpellEvent : InstantActionEvent, ISpeakS [DataField] public string? Speech { get; private set; } + public InGameICChatType ChatType { get; } = InGameICChatType.Speak; + /// /// Gets the targeted spawn positons; may lead to multiple entities being spawned. /// diff --git a/Content.Shared/Magic/Events/KnockSpellEvent.cs b/Content.Shared/Magic/Events/KnockSpellEvent.cs index 24a1700d21f..6775a679ab8 100644 --- a/Content.Shared/Magic/Events/KnockSpellEvent.cs +++ b/Content.Shared/Magic/Events/KnockSpellEvent.cs @@ -1,4 +1,5 @@ using Content.Shared.Actions; +using Content.Shared.Chat; namespace Content.Shared.Magic.Events; @@ -14,4 +15,6 @@ public sealed partial class KnockSpellEvent : InstantActionEvent, ISpeakSpell [DataField] public string? Speech { get; private set; } + + public InGameICChatType ChatType { get; } = InGameICChatType.Speak; } diff --git a/Content.Shared/Magic/Events/ProjectileSpellEvent.cs b/Content.Shared/Magic/Events/ProjectileSpellEvent.cs index 336ea03346b..439b09e7afb 100644 --- a/Content.Shared/Magic/Events/ProjectileSpellEvent.cs +++ b/Content.Shared/Magic/Events/ProjectileSpellEvent.cs @@ -1,4 +1,5 @@ using Content.Shared.Actions; +using Content.Shared.Chat; using Robust.Shared.Prototypes; namespace Content.Shared.Magic.Events; @@ -11,6 +12,11 @@ public sealed partial class ProjectileSpellEvent : WorldTargetActionEvent, ISpea [DataField(required: true)] public EntProtoId Prototype; + [DataField] + public float ProjectileSpeed = 20; + [DataField] public string? Speech { get; private set; } + + public InGameICChatType ChatType { get; } = InGameICChatType.Speak; } diff --git a/Content.Shared/Magic/Events/SmiteSpellEvent.cs b/Content.Shared/Magic/Events/SmiteSpellEvent.cs index 74ca116ad59..35d9a5b1cf8 100644 --- a/Content.Shared/Magic/Events/SmiteSpellEvent.cs +++ b/Content.Shared/Magic/Events/SmiteSpellEvent.cs @@ -1,4 +1,5 @@ using Content.Shared.Actions; +using Content.Shared.Chat; namespace Content.Shared.Magic.Events; @@ -13,4 +14,6 @@ public sealed partial class SmiteSpellEvent : EntityTargetActionEvent, ISpeakSpe [DataField] public string? Speech { get; private set; } + + public InGameICChatType ChatType { get; } = InGameICChatType.Speak; } diff --git a/Content.Shared/Magic/Events/SpeakSpellEvent.cs b/Content.Shared/Magic/Events/SpeakSpellEvent.cs index 1b3f7af63c3..d04daf139d8 100644 --- a/Content.Shared/Magic/Events/SpeakSpellEvent.cs +++ b/Content.Shared/Magic/Events/SpeakSpellEvent.cs @@ -1,8 +1,11 @@ -namespace Content.Shared.Magic.Events; +using Content.Shared.Chat; + +namespace Content.Shared.Magic.Events; [ByRefEvent] -public readonly struct SpeakSpellEvent(EntityUid performer, string speech) +public readonly struct SpeakSpellEvent(EntityUid performer, string speech, InGameICChatType chatType) { public readonly EntityUid Performer = performer; public readonly string Speech = speech; + public readonly InGameICChatType ChatType = chatType; } diff --git a/Content.Shared/Magic/Events/TeleportSpellEvent.cs b/Content.Shared/Magic/Events/TeleportSpellEvent.cs index 525c1e51052..2f07cab2016 100644 --- a/Content.Shared/Magic/Events/TeleportSpellEvent.cs +++ b/Content.Shared/Magic/Events/TeleportSpellEvent.cs @@ -1,4 +1,5 @@ using Content.Shared.Actions; +using Content.Shared.Chat; namespace Content.Shared.Magic.Events; @@ -8,6 +9,8 @@ public sealed partial class TeleportSpellEvent : WorldTargetActionEvent, ISpeakS [DataField] public string? Speech { get; private set; } + public InGameICChatType ChatType { get; } = InGameICChatType.Speak; + // TODO: Move to magic component // TODO: Maybe not since sound specifier is a thing // Keep here to remind what the volume was set as diff --git a/Content.Shared/Magic/Events/WorldSpawnSpellEvent.cs b/Content.Shared/Magic/Events/WorldSpawnSpellEvent.cs index 2f50c67b3e7..01d5af8fd78 100644 --- a/Content.Shared/Magic/Events/WorldSpawnSpellEvent.cs +++ b/Content.Shared/Magic/Events/WorldSpawnSpellEvent.cs @@ -1,5 +1,6 @@ using System.Numerics; using Content.Shared.Actions; +using Content.Shared.Chat; using Content.Shared.Storage; namespace Content.Shared.Magic.Events; @@ -31,4 +32,6 @@ public sealed partial class WorldSpawnSpellEvent : WorldTargetActionEvent, ISpea [DataField] public string? Speech { get; private set; } + + public InGameICChatType ChatType { get; } = InGameICChatType.Speak; } diff --git a/Content.Shared/Magic/ISpeakSpell.cs b/Content.Shared/Magic/ISpeakSpell.cs index 954b99417fc..30e7f5a2dea 100644 --- a/Content.Shared/Magic/ISpeakSpell.cs +++ b/Content.Shared/Magic/ISpeakSpell.cs @@ -1,4 +1,6 @@ -namespace Content.Shared.Magic; +using Content.Shared.Chat; + +namespace Content.Shared.Magic; public interface ISpeakSpell // The speak n spell interface { @@ -6,4 +8,6 @@ public interface ISpeakSpell // The speak n spell interface /// Localized string spoken by the caster when casting this spell. /// public string? Speech { get; } + + public InGameICChatType ChatType { get; } } diff --git a/Content.Shared/Magic/SharedMagicSystem.cs b/Content.Shared/Magic/SharedMagicSystem.cs index cc7a297aa40..cae581298a6 100644 --- a/Content.Shared/Magic/SharedMagicSystem.cs +++ b/Content.Shared/Magic/SharedMagicSystem.cs @@ -344,7 +344,7 @@ private void OnProjectileSpell(ProjectileSpellEvent ev) var ent = Spawn(ev.Prototype, spawnCoords); var direction = toCoords.ToMapPos(EntityManager, _transform) - spawnCoords.ToMapPos(EntityManager, _transform); - _gunSystem.ShootProjectile(ent, direction, userVelocity, ev.Performer, ev.Performer); + _gunSystem.ShootProjectile(ent, direction, userVelocity, ev.Performer, ev.Performer, ev.ProjectileSpeed); } // End Projectile Spells #endregion @@ -513,7 +513,7 @@ private void Speak(BaseActionEvent args) if (args is not ISpeakSpell speak || string.IsNullOrWhiteSpace(speak.Speech)) return; - var ev = new SpeakSpellEvent(args.Performer, speak.Speech); + var ev = new SpeakSpellEvent(args.Performer, speak.Speech, speak.ChatType); RaiseLocalEvent(ref ev); } } diff --git a/Content.Shared/MagicMirror/MagicMirrorComponent.cs b/Content.Shared/MagicMirror/MagicMirrorComponent.cs index 63575439052..95b17369795 100644 --- a/Content.Shared/MagicMirror/MagicMirrorComponent.cs +++ b/Content.Shared/MagicMirror/MagicMirrorComponent.cs @@ -47,5 +47,5 @@ public sealed partial class MagicMirrorComponent : Component /// Sound emitted when slots are changed /// [DataField, ViewVariables(VVAccess.ReadWrite)] - public SoundSpecifier ChangeHairSound = new SoundPathSpecifier("/Audio/Items/scissors.ogg"); + public SoundSpecifier? ChangeHairSound = new SoundPathSpecifier("/Audio/Items/scissors.ogg"); } diff --git a/Content.Shared/MagicMirror/SharedMagicMirrorSystem.cs b/Content.Shared/MagicMirror/SharedMagicMirrorSystem.cs index ea5838a723e..ea96d504c6e 100644 --- a/Content.Shared/MagicMirror/SharedMagicMirrorSystem.cs +++ b/Content.Shared/MagicMirror/SharedMagicMirrorSystem.cs @@ -1,6 +1,8 @@ using Content.Shared.DoAfter; +using Content.Shared.Humanoid; using Content.Shared.Humanoid.Markings; using Content.Shared.Interaction; +using Content.Shared.UserInterface; using Robust.Shared.Serialization; using Robust.Shared.Utility; @@ -9,13 +11,27 @@ namespace Content.Shared.MagicMirror; public abstract class SharedMagicMirrorSystem : EntitySystem { [Dependency] private readonly SharedInteractionSystem _interaction = default!; + [Dependency] protected readonly SharedUserInterfaceSystem UISystem = default!; public override void Initialize() { base.Initialize(); + SubscribeLocalEvent(OnMagicMirrorInteract); + SubscribeLocalEvent(OnBeforeUIOpen); SubscribeLocalEvent(OnMirrorRangeCheck); } + private void OnMagicMirrorInteract(Entity mirror, ref AfterInteractEvent args) + { + if (!args.CanReach || args.Target == null) + return; + + if (!UISystem.TryOpenUi(mirror.Owner, MagicMirrorUiKey.Key, args.User)) + return; + + UpdateInterface(mirror, args.Target.Value, mirror); + } + private void OnMirrorRangeCheck(EntityUid uid, MagicMirrorComponent component, ref BoundUserInterfaceCheckRangeEvent args) { if (args.Result == BoundUserInterfaceRangeResult.Fail) @@ -26,6 +42,41 @@ private void OnMirrorRangeCheck(EntityUid uid, MagicMirrorComponent component, r if (!_interaction.InRangeUnobstructed(uid, component.Target.Value)) args.Result = BoundUserInterfaceRangeResult.Fail; } + + private void OnBeforeUIOpen(Entity ent, ref BeforeActivatableUIOpenEvent args) + { + if (args.User != ent.Comp.Target && ent.Comp.Target != null) + return; + + UpdateInterface(ent, args.User, ent); + } + + protected void UpdateInterface(EntityUid mirrorUid, EntityUid targetUid, MagicMirrorComponent component) + { + if (!TryComp(targetUid, out var humanoid)) + return; + component.Target ??= targetUid; + + var hair = humanoid.MarkingSet.TryGetCategory(MarkingCategories.Hair, out var hairMarkings) + ? new List(hairMarkings) + : new(); + + var facialHair = humanoid.MarkingSet.TryGetCategory(MarkingCategories.FacialHair, out var facialHairMarkings) + ? new List(facialHairMarkings) + : new(); + + var state = new MagicMirrorUiState( + humanoid.Species, + hair, + humanoid.MarkingSet.PointsLeft(MarkingCategories.Hair) + hair.Count, + facialHair, + humanoid.MarkingSet.PointsLeft(MarkingCategories.FacialHair) + facialHair.Count); + + // TODO: Component states + component.Target = targetUid; + UISystem.SetUiState(mirrorUid, MagicMirrorUiKey.Key, state); + Dirty(mirrorUid, component); + } } [Serializable, NetSerializable] diff --git a/Content.Shared/Materials/SharedMaterialStorageSystem.cs b/Content.Shared/Materials/SharedMaterialStorageSystem.cs index b1de77d971a..a27e0fb9cf0 100644 --- a/Content.Shared/Materials/SharedMaterialStorageSystem.cs +++ b/Content.Shared/Materials/SharedMaterialStorageSystem.cs @@ -2,6 +2,7 @@ using Content.Shared.Interaction; using Content.Shared.Interaction.Components; using Content.Shared.Stacks; +using Content.Shared.Whitelist; using JetBrains.Annotations; using Robust.Shared.Prototypes; using Robust.Shared.Timing; @@ -17,6 +18,7 @@ public abstract class SharedMaterialStorageSystem : EntitySystem [Dependency] private readonly SharedAppearanceSystem _appearance = default!; [Dependency] private readonly IGameTiming _timing = default!; [Dependency] private readonly IPrototypeManager _prototype = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; /// /// Default volume for a sheet if the material's entity prototype has no material composition. @@ -121,7 +123,7 @@ public bool CanChangeMaterialAmount(EntityUid uid, string materialId, int volume if (!CanTakeVolume(uid, volume, component)) return false; - if (component.MaterialWhiteList != null && !component.MaterialWhiteList.Contains(materialId)) + if (component.MaterialWhiteList == null ? false : !component.MaterialWhiteList.Contains(materialId)) return false; var amount = component.Storage.GetValueOrDefault(materialId); @@ -239,7 +241,7 @@ public virtual bool TryInsertMaterialEntity(EntityUid user, if (!Resolve(toInsert, ref material, ref composition, false)) return false; - if (storage.Whitelist?.IsValid(toInsert) == false) + if (_whitelistSystem.IsWhitelistFail(storage.Whitelist, toInsert)) return false; if (HasComp(toInsert)) diff --git a/Content.Shared/Mech/EntitySystems/SharedMechSystem.cs b/Content.Shared/Mech/EntitySystems/SharedMechSystem.cs index 7e44dea5078..04926c34562 100644 --- a/Content.Shared/Mech/EntitySystems/SharedMechSystem.cs +++ b/Content.Shared/Mech/EntitySystems/SharedMechSystem.cs @@ -43,7 +43,7 @@ public override void Initialize() { SubscribeLocalEvent(OnToggleEquipmentAction); SubscribeLocalEvent(OnEjectPilotEvent); - SubscribeLocalEvent(RelayInteractionEvent); + SubscribeLocalEvent(RelayInteractionEvent); SubscribeLocalEvent(OnStartup); SubscribeLocalEvent(OnDestruction); SubscribeLocalEvent(OnGetAdditionalAccess); @@ -71,7 +71,7 @@ private void OnEjectPilotEvent(EntityUid uid, MechComponent component, MechEject TryEject(uid, component); } - private void RelayInteractionEvent(EntityUid uid, MechComponent component, InteractNoHandEvent args) + private void RelayInteractionEvent(EntityUid uid, MechComponent component, UserActivateInWorldEvent args) { var pilot = component.PilotSlot.ContainedEntity; if (pilot == null) @@ -194,7 +194,7 @@ public void CycleEquipment(EntityUid uid, MechComponent? component = null) if (_net.IsServer) _popup.PopupEntity(popupString, uid); - Dirty(component); + Dirty(uid, component); } /// @@ -278,7 +278,7 @@ public virtual bool TryChangeEnergy(EntityUid uid, FixedPoint2 delta, MechCompon return false; component.Energy = FixedPoint2.Clamp(component.Energy + delta, 0, component.MaxEnergy); - Dirty(component); + Dirty(uid, component); UpdateUserInterface(uid, component); return true; } @@ -306,7 +306,7 @@ public void SetIntegrity(EntityUid uid, FixedPoint2 value, MechComponent? compon UpdateAppearance(uid, component); } - Dirty(component); + Dirty(uid, component); UpdateUserInterface(uid, component); } diff --git a/Content.Shared/Medical/CPR/Systems/CPRSystem.cs b/Content.Shared/Medical/CPR/Systems/CPRSystem.cs index 799c0664a66..e050f1b4e1d 100644 --- a/Content.Shared/Medical/CPR/Systems/CPRSystem.cs +++ b/Content.Shared/Medical/CPR/Systems/CPRSystem.cs @@ -84,7 +84,13 @@ private void StartCPR(EntityUid performer, EntityUid target, CPRTrainingComponen { _popupSystem.PopupEntity(Loc.GetString("cpr-start-second-person", ("target", target)), target, performer, PopupType.Medium); _popupSystem.PopupEntity(Loc.GetString("cpr-start-second-person-patient", ("user", performer)), target, target, PopupType.Medium); - cprComponent.CPRPlayingStream = _audio.PlayPvs(cprComponent.CPRSound, performer).Value.Entity; + + var playingStream = _audio.PlayPvs(cprComponent.CPRSound, performer); + + if (playingStream == null) + return; + + cprComponent.CPRPlayingStream = _audio.PlayPvs(cprComponent.CPRSound, performer)!.Value.Entity; } _doAfterSystem.TryStartDoAfter(new DoAfterArgs(EntityManager, performer, cprComponent.DoAfterDuration, new CPRDoAfterEvent(), performer, target, performer) diff --git a/Content.Shared/Medical/Surgery/Conditions/SurgeryBodyComponentConditionComponent.cs b/Content.Shared/Medical/Surgery/Conditions/SurgeryBodyComponentConditionComponent.cs new file mode 100644 index 00000000000..26b364c2cdb --- /dev/null +++ b/Content.Shared/Medical/Surgery/Conditions/SurgeryBodyComponentConditionComponent.cs @@ -0,0 +1,24 @@ +using Content.Shared.Body.Part; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Medical.Surgery.Conditions; + +// +// What components are necessary in the body for the surgery to be valid. +// +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgeryBodyComponentConditionComponent : Component +{ + // + // The components to check for. + // + [DataField(required: true)] + public ComponentRegistry Components; + + // + // If true, the lack of these components will instead make the surgery valid. + // + [DataField] + public bool Inverse = false; +} diff --git a/Content.Shared/Medical/Surgery/Conditions/SurgeryCloseIncisionConditionComponent.cs b/Content.Shared/Medical/Surgery/Conditions/SurgeryCloseIncisionConditionComponent.cs new file mode 100644 index 00000000000..bab7e405ad5 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Conditions/SurgeryCloseIncisionConditionComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Conditions; + +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgeryCloseIncisionConditionComponent : Component; \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Conditions/SurgeryLarvaConditionComponent.cs b/Content.Shared/Medical/Surgery/Conditions/SurgeryLarvaConditionComponent.cs new file mode 100644 index 00000000000..3aac5951c6f --- /dev/null +++ b/Content.Shared/Medical/Surgery/Conditions/SurgeryLarvaConditionComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Conditions; + +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgeryLarvaConditionComponent : Component; \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Conditions/SurgeryMarkingConditionComponent.cs b/Content.Shared/Medical/Surgery/Conditions/SurgeryMarkingConditionComponent.cs new file mode 100644 index 00000000000..f22b1f682e2 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Conditions/SurgeryMarkingConditionComponent.cs @@ -0,0 +1,27 @@ +using Content.Shared.Body.Organ; +using Content.Shared.Humanoid; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Medical.Surgery.Conditions; + +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgeryMarkingConditionComponent : Component +{ + + [DataField] + public bool Inverse; + + /// + /// The marking category to check for. + /// + [DataField] + public HumanoidVisualLayers MarkingCategory = default!; + + /// + /// Can be either a segment of a marking ID, or an entire ID that will be checked + /// against the entity to validate that the marking is not already present. + /// + [DataField] + public String MatchString = ""; +} diff --git a/Content.Shared/Medical/Surgery/Conditions/SurgeryOperatingTableConditionComponent.cs b/Content.Shared/Medical/Surgery/Conditions/SurgeryOperatingTableConditionComponent.cs new file mode 100644 index 00000000000..0c43549e669 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Conditions/SurgeryOperatingTableConditionComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Conditions; + +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgeryOperatingTableConditionComponent : Component; \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Conditions/SurgeryOrganConditionComponent.cs b/Content.Shared/Medical/Surgery/Conditions/SurgeryOrganConditionComponent.cs new file mode 100644 index 00000000000..c8c475f115a --- /dev/null +++ b/Content.Shared/Medical/Surgery/Conditions/SurgeryOrganConditionComponent.cs @@ -0,0 +1,18 @@ +using Content.Shared.Body.Organ; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Medical.Surgery.Conditions; + +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgeryOrganConditionComponent : Component +{ + [DataField] + public ComponentRegistry? Organ; + + [DataField] + public bool Inverse; + + [DataField] + public bool Reattaching; +} \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Conditions/SurgeryOrganOnAddConditionComponent.cs b/Content.Shared/Medical/Surgery/Conditions/SurgeryOrganOnAddConditionComponent.cs new file mode 100644 index 00000000000..62d94649711 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Conditions/SurgeryOrganOnAddConditionComponent.cs @@ -0,0 +1,26 @@ +using Content.Shared.Body.Part; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Medical.Surgery.Conditions; + +// +// What components are necessary in the part's organs' OnAdd fields for the surgery to be valid. +// +// Not all components need to be present (or missing for Inverse = true). At least one component matching (or missing) can make the surgery valid. +// +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgeryOrganOnAddConditionComponent : Component +{ + // + // The components to check for on each organ, with the key being the organ's SlotId. + // + [DataField(required: true)] + public Dictionary Components; + + // + // If true, the lack of these components will instead make the surgery valid. + // + [DataField] + public bool Inverse = false; +} diff --git a/Content.Shared/Medical/Surgery/Conditions/SurgeryPartComponentConditionComponent.cs b/Content.Shared/Medical/Surgery/Conditions/SurgeryPartComponentConditionComponent.cs new file mode 100644 index 00000000000..474cb9e0ece --- /dev/null +++ b/Content.Shared/Medical/Surgery/Conditions/SurgeryPartComponentConditionComponent.cs @@ -0,0 +1,24 @@ +using Content.Shared.Body.Part; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Medical.Surgery.Conditions; + +// +// What components are necessary in the targeted body part for the surgery to be valid. +// +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgeryPartComponentConditionComponent : Component +{ + // + // The components to check for. + // + [DataField(required: true)] + public ComponentRegistry Components; + + // + // If true, the lack of these components will instead make the surgery valid. + // + [DataField] + public bool Inverse = false; +} diff --git a/Content.Shared/Medical/Surgery/Conditions/SurgeryPartConditionComponent.cs b/Content.Shared/Medical/Surgery/Conditions/SurgeryPartConditionComponent.cs new file mode 100644 index 00000000000..08a89eb9e1b --- /dev/null +++ b/Content.Shared/Medical/Surgery/Conditions/SurgeryPartConditionComponent.cs @@ -0,0 +1,17 @@ +using Content.Shared.Body.Part; +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Conditions; + +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgeryPartConditionComponent : Component +{ + [DataField] + public BodyPartType Part; + + [DataField] + public BodyPartSymmetry? Symmetry; + + [DataField] + public bool Inverse; +} \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Conditions/SurgeryPartPresentCondition.cs b/Content.Shared/Medical/Surgery/Conditions/SurgeryPartPresentCondition.cs new file mode 100644 index 00000000000..608f90ba4cb --- /dev/null +++ b/Content.Shared/Medical/Surgery/Conditions/SurgeryPartPresentCondition.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Conditions; + +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgeryPartPresentConditionComponent : Component; \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Conditions/SurgeryPartRemovedConditionComponent.cs b/Content.Shared/Medical/Surgery/Conditions/SurgeryPartRemovedConditionComponent.cs new file mode 100644 index 00000000000..1ad5025480b --- /dev/null +++ b/Content.Shared/Medical/Surgery/Conditions/SurgeryPartRemovedConditionComponent.cs @@ -0,0 +1,20 @@ +using Content.Shared.Body.Part; +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Conditions; + +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgeryPartRemovedConditionComponent : Component +{ + /// + /// Requires that the parent part can attach a new part to this slot. + /// + [DataField(required: true)] + public string Connection = string.Empty; + + [DataField] + public BodyPartType Part; + + [DataField] + public BodyPartSymmetry? Symmetry; +} diff --git a/Content.Shared/Medical/Surgery/Conditions/SurgeryValidEvent.cs b/Content.Shared/Medical/Surgery/Conditions/SurgeryValidEvent.cs new file mode 100644 index 00000000000..da769a457ac --- /dev/null +++ b/Content.Shared/Medical/Surgery/Conditions/SurgeryValidEvent.cs @@ -0,0 +1,9 @@ +using Content.Shared.Body.Part; + +namespace Content.Shared.Medical.Surgery.Conditions; + +/// +/// Raised on the entity that is receiving surgery. +/// +[ByRefEvent] +public record struct SurgeryValidEvent(EntityUid Body, EntityUid Part, bool Cancelled = false, BodyPartType PartType = default, BodyPartSymmetry? Symmetry = default); \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Conditions/SurgeryWoundedConditionComponent.cs b/Content.Shared/Medical/Surgery/Conditions/SurgeryWoundedConditionComponent.cs new file mode 100644 index 00000000000..2279fcd0440 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Conditions/SurgeryWoundedConditionComponent.cs @@ -0,0 +1,7 @@ +using Content.Shared.Body.Part; +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Conditions; + +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgeryWoundedConditionComponent : Component; \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Effects/Complete/SurgeryCompletedEvent.cs b/Content.Shared/Medical/Surgery/Effects/Complete/SurgeryCompletedEvent.cs new file mode 100644 index 00000000000..a0e040fbe7a --- /dev/null +++ b/Content.Shared/Medical/Surgery/Effects/Complete/SurgeryCompletedEvent.cs @@ -0,0 +1,7 @@ +namespace Content.Shared.Medical.Surgery.Effects.Complete; + +/// +/// Raised on the entity that received the surgery. +/// +[ByRefEvent] +public record struct SurgeryCompletedEvent; \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Effects/Complete/SurgeryRemoveLarvaComponent.cs b/Content.Shared/Medical/Surgery/Effects/Complete/SurgeryRemoveLarvaComponent.cs new file mode 100644 index 00000000000..2077dfa53b8 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Effects/Complete/SurgeryRemoveLarvaComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Effects.Complete; + +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgeryRemoveLarvaComponent : Component; \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Effects/Step/SurgeryDamageChangeEffectComponent.cs b/Content.Shared/Medical/Surgery/Effects/Step/SurgeryDamageChangeEffectComponent.cs new file mode 100644 index 00000000000..0db43011a08 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Effects/Step/SurgeryDamageChangeEffectComponent.cs @@ -0,0 +1,17 @@ +using Content.Shared.Damage; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; +namespace Content.Shared.Medical.Surgery.Effects.Step; + +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgeryDamageChangeEffectComponent : Component +{ + [DataField] + public DamageSpecifier Damage = default!; + + [DataField] + public float SleepModifier = 0.5f; + + [DataField] + public bool IsConsumable; +} \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Effects/Step/SurgerySpecialDamageChangeEffectComponent.cs b/Content.Shared/Medical/Surgery/Effects/Step/SurgerySpecialDamageChangeEffectComponent.cs new file mode 100644 index 00000000000..e375865277f --- /dev/null +++ b/Content.Shared/Medical/Surgery/Effects/Step/SurgerySpecialDamageChangeEffectComponent.cs @@ -0,0 +1,14 @@ +using Content.Shared.Damage; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; +namespace Content.Shared.Medical.Surgery.Effects.Step; + +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgerySpecialDamageChangeEffectComponent : Component +{ + [DataField] + public string DamageType = ""; + + [DataField] + public bool IsConsumable; +} \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Effects/Step/SurgeryStepCavityEffectComponent.cs b/Content.Shared/Medical/Surgery/Effects/Step/SurgeryStepCavityEffectComponent.cs new file mode 100644 index 00000000000..61300425a7d --- /dev/null +++ b/Content.Shared/Medical/Surgery/Effects/Step/SurgeryStepCavityEffectComponent.cs @@ -0,0 +1,10 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Effects.Step; + +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgeryStepCavityEffectComponent : Component +{ + [DataField] + public string Action = "Insert"; +} \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Effects/Step/SurgeryStepEmoteEffectComponent.cs b/Content.Shared/Medical/Surgery/Effects/Step/SurgeryStepEmoteEffectComponent.cs new file mode 100644 index 00000000000..02e8b749eed --- /dev/null +++ b/Content.Shared/Medical/Surgery/Effects/Step/SurgeryStepEmoteEffectComponent.cs @@ -0,0 +1,12 @@ +using Content.Shared.Chat.Prototypes; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Medical.Surgery.Effects.Step; + +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class SurgeryStepEmoteEffectComponent : Component +{ + [DataField, AutoNetworkedField] + public ProtoId Emote = "Scream"; +} \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Effects/Step/SurgeryStepSpawnEffect.cs b/Content.Shared/Medical/Surgery/Effects/Step/SurgeryStepSpawnEffect.cs new file mode 100644 index 00000000000..766713c6f68 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Effects/Step/SurgeryStepSpawnEffect.cs @@ -0,0 +1,13 @@ +using Content.Shared.Chat.Prototypes; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; +using System.ComponentModel.DataAnnotations; + +namespace Content.Shared.Medical.Surgery.Effects.Step; + +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class SurgeryStepSpawnEffectComponent : Component +{ + [DataField(required: true), AutoNetworkedField] + public EntProtoId Entity; +} \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Effects/Step/SurgeryTendWoundsEffectComponent.cs b/Content.Shared/Medical/Surgery/Effects/Step/SurgeryTendWoundsEffectComponent.cs new file mode 100644 index 00000000000..58db1422d8f --- /dev/null +++ b/Content.Shared/Medical/Surgery/Effects/Step/SurgeryTendWoundsEffectComponent.cs @@ -0,0 +1,20 @@ +using Content.Shared.Damage; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; +namespace Content.Shared.Medical.Surgery.Effects.Step; + +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class SurgeryTendWoundsEffectComponent : Component +{ + [DataField, AutoNetworkedField] + public string MainGroup = "Brute"; + + [DataField, AutoNetworkedField] + public bool IsAutoRepeatable = true; + + [DataField, AutoNetworkedField] + public DamageSpecifier Damage = default!; + + [DataField, AutoNetworkedField] + public float HealMultiplier = 0.07f; +} \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/OperatingTableComponent.cs b/Content.Shared/Medical/Surgery/OperatingTableComponent.cs new file mode 100644 index 00000000000..fa0ccf72580 --- /dev/null +++ b/Content.Shared/Medical/Surgery/OperatingTableComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery; + +[RegisterComponent, NetworkedComponent] +public sealed partial class OperatingTableComponent : Component; \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/SharedSurgerySystem.Steps.cs b/Content.Shared/Medical/Surgery/SharedSurgerySystem.Steps.cs new file mode 100644 index 00000000000..c914c135142 --- /dev/null +++ b/Content.Shared/Medical/Surgery/SharedSurgerySystem.Steps.cs @@ -0,0 +1,898 @@ +using Content.Shared.Humanoid; +using Content.Shared.Humanoid.Markings; +using Content.Shared.Bed.Sleep; +using Content.Shared.Body.Part; +using Content.Shared.Body.Organ; +using Content.Shared.Body.Events; +using Content.Shared.BodyEffects; +using Content.Shared.Buckle.Components; +using Content.Shared.Containers.ItemSlots; +using Content.Shared.Damage; +using Content.Shared.Damage.Prototypes; +using Content.Shared.DoAfter; +using Content.Shared.IdentityManagement; +using Content.Shared.Medical.Surgery.Conditions; +using Content.Shared.Medical.Surgery.Effects.Step; +using Content.Shared.Medical.Surgery.Steps; +using Content.Shared.Medical.Surgery.Steps.Parts; +using Content.Shared.Medical.Surgery.Tools; +using Content.Shared.Mood; +using Content.Shared.Inventory; +using Content.Shared.Item; +using Content.Shared.Popups; +using Robust.Shared.Prototypes; +using Robust.Shared.Toolshed.TypeParsers; +using System.Linq; + +namespace Content.Shared.Medical.Surgery; + +public abstract partial class SharedSurgerySystem +{ + private static readonly string[] BruteDamageTypes = { "Slash", "Blunt", "Piercing" }; + private static readonly string[] BurnDamageTypes = { "Heat", "Shock", "Cold", "Caustic" }; + private void InitializeSteps() + { + SubscribeLocalEvent(OnToolStep); + SubscribeLocalEvent(OnToolCheck); + SubscribeLocalEvent(OnToolCanPerform); + + //SubSurgery(OnCutLarvaRootsStep, OnCutLarvaRootsCheck); + + /* Abandon all hope ye who enter here. Now I am become shitcoder, the bloater of files. + On a serious note, I really hate how much bloat this pattern of subscribing to a StepEvent and a CheckEvent + creates in terms of readability. And while Check DOES only run on the server side, it's still annoying to parse through.*/ + + SubSurgery(OnTendWoundsStep, OnTendWoundsCheck); + SubSurgery(OnCavityStep, OnCavityCheck); + SubSurgery(OnAddPartStep, OnAddPartCheck); + SubSurgery(OnAffixPartStep, OnAffixPartCheck); + SubSurgery(OnRemovePartStep, OnRemovePartCheck); + SubSurgery(OnAddOrganStep, OnAddOrganCheck); + SubSurgery(OnRemoveOrganStep, OnRemoveOrganCheck); + SubSurgery(OnAffixOrganStep, OnAffixOrganCheck); + SubSurgery(OnAddMarkingStep, OnAddMarkingCheck); + SubSurgery(OnRemoveMarkingStep, OnRemoveMarkingCheck); + Subs.BuiEvents(SurgeryUIKey.Key, subs => + { + subs.Event(OnSurgeryTargetStepChosen); + }); + } + + private void SubSurgery(EntityEventRefHandler onStep, + EntityEventRefHandler onComplete) where TComp : IComponent + { + SubscribeLocalEvent(onStep); + SubscribeLocalEvent(onComplete); + } + + private void OnToolStep(Entity ent, ref SurgeryStepEvent args) + { + if (ent.Comp.Tool != null) + { + foreach (var reg in ent.Comp.Tool.Values) + { + if (!AnyHaveComp(args.Tools, reg.Component, out var tool, out _)) + return; + + if (_net.IsServer && + TryComp(tool, out SurgeryToolComponent? toolComp) && + toolComp.EndSound != null) + { + _audio.PlayEntity(toolComp.EndSound, args.User, tool); + } + } + } + + if (ent.Comp.Add != null) + { + foreach (var reg in ent.Comp.Add.Values) + { + var compType = reg.Component.GetType(); + if (HasComp(args.Part, compType)) + continue; + AddComp(args.Part, _compFactory.GetComponent(compType)); + } + } + + if (ent.Comp.BodyAdd != null) + { + foreach (var reg in ent.Comp.BodyAdd.Values) + { + var compType = reg.Component.GetType(); + if (HasComp(args.Body, compType)) + continue; + AddComp(args.Body, _compFactory.GetComponent(compType)); + } + } + + if (ent.Comp.Remove != null) + { + foreach (var reg in ent.Comp.Remove.Values) + { + RemComp(args.Part, reg.Component.GetType()); + } + } + + if (ent.Comp.BodyRemove != null) + { + foreach (var reg in ent.Comp.BodyRemove.Values) + { + RemComp(args.Body, reg.Component.GetType()); + } + } + + if (ent.Comp.AddOrganOnAdd != null) + { + var organSlotIdToOrgan = _body.GetPartOrgans(args.Part).ToDictionary(o => o.Item2.SlotId, o => o); + + foreach (var (organSlotId, compsToAdd) in ent.Comp.AddOrganOnAdd) + { + if (!organSlotIdToOrgan.TryGetValue(organSlotId, out var organValue)) + continue; + var (organId, organ) = organValue; + + organ.OnAdd ??= new(); + + foreach (var (key, compToAdd) in compsToAdd) + organ.OnAdd[key] = compToAdd; + + EnsureComp(organId); + RaiseLocalEvent(organId, new OrganComponentsModifyEvent(args.Body, true)); + } + } + + if (ent.Comp.RemoveOrganOnAdd != null) + { + var organSlotIdToOrgan = _body.GetPartOrgans(args.Part).ToDictionary(o => o.Item2.SlotId, o => o); + + foreach (var (organSlotId, compsToRemove) in ent.Comp.RemoveOrganOnAdd) + { + if (!organSlotIdToOrgan.TryGetValue(organSlotId, out var organValue) || + organValue.Item2.OnAdd == null) + continue; + var (organId, organ) = organValue; + + // Need to raise this event first before removing the component entries so + // OrganEffectSystem still knows which components on the body to remove + RaiseLocalEvent(organId, new OrganComponentsModifyEvent(args.Body, false)); + foreach (var key in compsToRemove.Keys) + organ.OnAdd.Remove(key); + } + } + + if (!HasComp(args.Body)) + RaiseLocalEvent(args.Body, new MoodEffectEvent("SurgeryPain")); + + if (!_inventory.TryGetSlotEntity(args.User, "gloves", out var _) + || !_inventory.TryGetSlotEntity(args.User, "mask", out var _)) + { + var sepsis = new DamageSpecifier(_prototypes.Index("Poison"), 5); + var ev = new SurgeryStepDamageEvent(args.User, args.Body, args.Part, args.Surgery, sepsis, 0.5f); + RaiseLocalEvent(args.Body, ref ev); + } + } + + private void OnToolCheck(Entity ent, ref SurgeryStepCompleteCheckEvent args) + { + // Lord this function is fucking bloated now. Need to clean it up so its less spammy. + if (ent.Comp.Add != null) + { + foreach (var reg in ent.Comp.Add.Values) + { + if (!HasComp(args.Part, reg.Component.GetType())) + { + args.Cancelled = true; + return; + } + } + } + + if (ent.Comp.Remove != null) + { + foreach (var reg in ent.Comp.Remove.Values) + { + if (HasComp(args.Part, reg.Component.GetType())) + { + args.Cancelled = true; + return; + } + } + } + + if (ent.Comp.BodyAdd != null) + { + foreach (var reg in ent.Comp.BodyAdd.Values) + { + if (!HasComp(args.Body, reg.Component.GetType())) + { + args.Cancelled = true; + return; + } + } + } + + if (ent.Comp.BodyRemove != null) + { + foreach (var reg in ent.Comp.BodyRemove.Values) + { + if (HasComp(args.Body, reg.Component.GetType())) + { + args.Cancelled = true; + return; + } + } + } + + if (ent.Comp.AddOrganOnAdd != null) + { + var organSlotIdToOrgan = _body.GetPartOrgans(args.Part).ToDictionary(o => o.Item2.SlotId, o => o.Item2); + foreach (var (organSlotId, compsToAdd) in ent.Comp.AddOrganOnAdd) + { + if (!organSlotIdToOrgan.TryGetValue(organSlotId, out var organ)) + continue; + + if (organ.OnAdd == null || compsToAdd.Keys.Any(key => !organ.OnAdd.ContainsKey(key))) + { + args.Cancelled = true; + return; + } + } + } + + if (ent.Comp.RemoveOrganOnAdd != null) + { + var organSlotIdToOrgan = _body.GetPartOrgans(args.Part).ToDictionary(o => o.Item2.SlotId, o => o.Item2); + foreach (var (organSlotId, compsToRemove) in ent.Comp.RemoveOrganOnAdd) + { + if (!organSlotIdToOrgan.TryGetValue(organSlotId, out var organ) || organ.OnAdd == null) + continue; + + if (compsToRemove.Keys.Any(key => organ.OnAdd.ContainsKey(key))) + { + args.Cancelled = true; + return; + } + } + } + } + + private void OnToolCanPerform(Entity ent, ref SurgeryCanPerformStepEvent args) + { + if (HasComp(ent)) + { + if (!TryComp(args.Body, out BuckleComponent? buckle) || + !HasComp(buckle.BuckledTo)) + { + args.Invalid = StepInvalidReason.NeedsOperatingTable; + return; + } + } + + if (_inventory.TryGetContainerSlotEnumerator(args.Body, out var containerSlotEnumerator, args.TargetSlots)) + { + while (containerSlotEnumerator.MoveNext(out var containerSlot)) + { + if (!containerSlot.ContainedEntity.HasValue) + continue; + + args.Invalid = StepInvalidReason.Armor; + args.Popup = Loc.GetString("surgery-ui-window-steps-error-armor"); + return; + } + } + + RaiseLocalEvent(args.Body, ref args); + + if (args.Invalid != StepInvalidReason.None) + return; + + if (ent.Comp.Tool != null) + { + args.ValidTools ??= new Dictionary(); + + foreach (var reg in ent.Comp.Tool.Values) + { + if (!AnyHaveComp(args.Tools, reg.Component, out var tool, out var speed)) + { + args.Invalid = StepInvalidReason.MissingTool; + + if (reg.Component is ISurgeryToolComponent required) + args.Popup = $"You need {required.ToolName} to perform this step!"; + + return; + } + + args.ValidTools[tool] = speed; + } + } + } + + private EntProtoId? GetProtoId(EntityUid entityUid) + { + if (!TryComp(entityUid, out var metaData)) + return null; + + return metaData.EntityPrototype?.ID; + } + + // I wonder if theres not a function that can do this already. + private bool HasDamageGroup(EntityUid entity, string[] group, out DamageableComponent? damageable) + { + if (!TryComp(entity, out var damageableComp)) + { + damageable = null; + return false; + } + + damageable = damageableComp; + return group.Any(damageType => damageableComp.Damage.DamageDict.TryGetValue(damageType, out var value) && value > 0); + + } + + private void OnTendWoundsStep(Entity ent, ref SurgeryStepEvent args) + { + var group = ent.Comp.MainGroup == "Brute" ? BruteDamageTypes : BurnDamageTypes; + + if (!HasDamageGroup(args.Body, group, out var damageable) + && !HasDamageGroup(args.Part, group, out var _) + || damageable == null) // This shouldnt be possible but the compiler doesn't shut up. + return; + + + // Right now the bonus is based off the body's total damage, maybe we could make it based off each part in the future. + var bonus = ent.Comp.HealMultiplier * damageable.DamagePerGroup[ent.Comp.MainGroup]; + if (_mobState.IsDead(args.Body)) + bonus *= 0.2; + + var adjustedDamage = new DamageSpecifier(ent.Comp.Damage); + + foreach (var type in group) + { + adjustedDamage.DamageDict[type] -= bonus; + } + + var ev = new SurgeryStepDamageEvent(args.User, args.Body, args.Part, args.Surgery, adjustedDamage, 0.5f); + RaiseLocalEvent(args.Body, ref ev); + } + + private void OnTendWoundsCheck(Entity ent, ref SurgeryStepCompleteCheckEvent args) + { + var group = ent.Comp.MainGroup == "Brute" ? BruteDamageTypes : BurnDamageTypes; + + if (HasDamageGroup(args.Body, group, out var _) + || HasDamageGroup(args.Part, group, out var _)) + args.Cancelled = true; + } + + /*private void OnCutLarvaRootsStep(Entity ent, ref SurgeryStepEvent args) + { + if (TryComp(args.Body, out VictimInfectedComponent? infected) && + infected.BurstAt > _timing.CurTime && + infected.SpawnedLarva == null) + { + infected.RootsCut = true; + } + } + + private void OnCutLarvaRootsCheck(Entity ent, ref SurgeryStepCompleteCheckEvent args) + { + if (!TryComp(args.Body, out VictimInfectedComponent? infected) || !infected.RootsCut) + args.Cancelled = true; + + // The larva has fully developed and surgery is now impossible + // TODO: Surgery should still be possible, but the fully developed larva should escape while also saving the hosts life + if (infected != null && infected.SpawnedLarva != null) + args.Cancelled = true; + }*/ + + private void OnCavityStep(Entity ent, ref SurgeryStepEvent args) + { + if (!TryComp(args.Part, out BodyPartComponent? partComp) || partComp.PartType != BodyPartType.Torso) + return; + + var activeHandEntity = _hands.EnumerateHeld(args.User).FirstOrDefault(); + if (activeHandEntity != default + && ent.Comp.Action == "Insert" + && TryComp(activeHandEntity, out ItemComponent? itemComp) + && (itemComp.Size.Id == "Tiny" + || itemComp.Size.Id == "Small")) + _itemSlotsSystem.TryInsert(ent, partComp.ItemInsertionSlot, activeHandEntity, args.User); + else if (ent.Comp.Action == "Remove") + _itemSlotsSystem.TryEjectToHands(ent, partComp.ItemInsertionSlot, args.User); + } + + private void OnCavityCheck(Entity ent, ref SurgeryStepCompleteCheckEvent args) + { + // Normally this check would simply be partComp.ItemInsertionSlot.HasItem, but as mentioned before, + // For whatever reason it's not instantiating the field on the clientside after the wizmerge. + if (!TryComp(args.Part, out BodyPartComponent? partComp) + || !TryComp(args.Part, out ItemSlotsComponent? itemComp) + || ent.Comp.Action == "Insert" + && !itemComp.Slots[partComp.ContainerName].HasItem + || ent.Comp.Action == "Remove" + && itemComp.Slots[partComp.ContainerName].HasItem) + args.Cancelled = true; + } + + private void OnAddPartStep(Entity ent, ref SurgeryStepEvent args) + { + if (!TryComp(args.Surgery, out SurgeryPartRemovedConditionComponent? removedComp)) + return; + + foreach (var tool in args.Tools) + { + if (TryComp(tool, out BodyPartComponent? partComp) + && partComp.PartType == removedComp.Part + && (removedComp.Symmetry == null || partComp.Symmetry == removedComp.Symmetry)) + { + var slotName = removedComp.Symmetry != null + ? $"{removedComp.Symmetry?.ToString().ToLower()} {removedComp.Part.ToString().ToLower()}" + : removedComp.Part.ToString().ToLower(); + _body.TryCreatePartSlot(args.Part, slotName, partComp.PartType, out var _); + _body.AttachPart(args.Part, slotName, tool); + _body.ChangeSlotState((tool, partComp), false); + EnsureComp(tool); + var ev = new BodyPartAttachedEvent((tool, partComp)); + RaiseLocalEvent(args.Body, ref ev); + } + } + } + + private void OnAffixPartStep(Entity ent, ref SurgeryStepEvent args) + { + if (!TryComp(args.Surgery, out SurgeryPartRemovedConditionComponent? removedComp)) + return; + + var targetPart = _body.GetBodyChildrenOfType(args.Body, removedComp.Part, symmetry: removedComp.Symmetry).FirstOrDefault(); + + if (targetPart != default) + { + // We reward players for properly affixing the parts by healing a little bit of damage, and enabling the part temporarily. + var ev = new BodyPartEnableChangedEvent(true); + RaiseLocalEvent(targetPart.Id, ref ev); + _damageable.TryChangeDamage(args.Body, + _body.GetHealingSpecifier(targetPart.Component) * 2, + canSever: false, // Just in case we heal a brute damage specifier and the logic gets fucky lol + targetPart: _body.GetTargetBodyPart(targetPart.Component.PartType, targetPart.Component.Symmetry)); + RemComp(targetPart.Id); + } + } + + private void OnAffixPartCheck(Entity ent, ref SurgeryStepCompleteCheckEvent args) + { + if (!TryComp(args.Surgery, out SurgeryPartRemovedConditionComponent? removedComp)) + return; + + var targetPart = _body.GetBodyChildrenOfType(args.Body, removedComp.Part, symmetry: removedComp.Symmetry).FirstOrDefault(); + + if (targetPart != default + && HasComp(targetPart.Id)) + args.Cancelled = true; + } + + private void OnAddPartCheck(Entity ent, ref SurgeryStepCompleteCheckEvent args) + { + if (!TryComp(args.Surgery, out SurgeryPartRemovedConditionComponent? removedComp) + || !_body.GetBodyChildrenOfType(args.Body, removedComp.Part, symmetry: removedComp.Symmetry).Any()) + args.Cancelled = true; + } + + private void OnRemovePartStep(Entity ent, ref SurgeryStepEvent args) + { + if (!TryComp(args.Part, out BodyPartComponent? partComp) + || partComp.Body != args.Body) + return; + + var ev = new AmputateAttemptEvent(args.Part); + RaiseLocalEvent(args.Part, ref ev); + _hands.TryPickupAnyHand(args.User, args.Part); + } + + private void OnRemovePartCheck(Entity ent, ref SurgeryStepCompleteCheckEvent args) + { + if (!TryComp(args.Part, out BodyPartComponent? partComp) + || partComp.Body == args.Body) + args.Cancelled = true; + } + + private void OnAddOrganStep(Entity ent, ref SurgeryStepEvent args) + { + if (!TryComp(args.Part, out BodyPartComponent? partComp) + || partComp.Body != args.Body + || !TryComp(args.Surgery, out SurgeryOrganConditionComponent? organComp) + || organComp.Organ == null) + return; + + // Adding organs is generally done for a single one at a time, so we only need to check for the first. + var firstOrgan = organComp.Organ.Values.FirstOrDefault(); + if (firstOrgan == default) + return; + + foreach (var tool in args.Tools) + { + if (HasComp(tool, firstOrgan.Component.GetType()) + && TryComp(tool, out var insertedOrgan) + && _body.InsertOrgan(args.Part, tool, insertedOrgan.SlotId, partComp, insertedOrgan)) + { + EnsureComp(tool); + if (_body.TrySetOrganUsed(tool, true, insertedOrgan) + && insertedOrgan.OriginalBody != args.Body) + { + var ev = new SurgeryStepDamageChangeEvent(args.User, args.Body, args.Part, ent); + RaiseLocalEvent(ent, ref ev); + } + break; + } + } + } + + private void OnAddOrganCheck(Entity ent, ref SurgeryStepCompleteCheckEvent args) + { + if (!TryComp(args.Surgery, out var organComp) + || organComp.Organ is null + || !TryComp(args.Part, out BodyPartComponent? partComp) + || partComp.Body != args.Body) + return; + + // For now we naively assume that every entity will only have one of each organ type. + // that we do surgery on, but in the future we'll need to reference their prototype somehow + // to know if they need 2 hearts, 2 lungs, etc. + foreach (var reg in organComp.Organ.Values) + { + if (!_body.TryGetBodyPartOrgans(args.Part, reg.Component.GetType(), out var _)) + { + args.Cancelled = true; + } + } + } + + private void OnAffixOrganStep(Entity ent, ref SurgeryStepEvent args) + { + if (!TryComp(args.Surgery, out SurgeryOrganConditionComponent? removedOrganComp) + || removedOrganComp.Organ == null + || !removedOrganComp.Reattaching) + return; + + foreach (var reg in removedOrganComp.Organ.Values) + { + _body.TryGetBodyPartOrgans(args.Part, reg.Component.GetType(), out var organs); + if (organs != null && organs.Count > 0) + RemComp(organs[0].Id); + } + + } + + private void OnAffixOrganCheck(Entity ent, ref SurgeryStepCompleteCheckEvent args) + { + if (!TryComp(args.Surgery, out SurgeryOrganConditionComponent? removedOrganComp) + || removedOrganComp.Organ == null + || !removedOrganComp.Reattaching) + return; + + foreach (var reg in removedOrganComp.Organ.Values) + { + _body.TryGetBodyPartOrgans(args.Part, reg.Component.GetType(), out var organs); + if (organs != null + && organs.Count > 0 + && organs.Any(organ => HasComp(organ.Id))) + args.Cancelled = true; + } + } + + private void OnRemoveOrganStep(Entity ent, ref SurgeryStepEvent args) + { + if (!TryComp(args.Surgery, out var organComp) + || organComp.Organ == null) + return; + + foreach (var reg in organComp.Organ.Values) + { + _body.TryGetBodyPartOrgans(args.Part, reg.Component.GetType(), out var organs); + if (organs != null && organs.Count > 0) + { + _body.RemoveOrgan(organs[0].Id, organs[0].Organ); + _hands.TryPickupAnyHand(args.User, organs[0].Id); + } + } + } + + private void OnRemoveOrganCheck(Entity ent, ref SurgeryStepCompleteCheckEvent args) + { + if (!TryComp(args.Surgery, out var organComp) + || organComp.Organ == null + || !TryComp(args.Part, out BodyPartComponent? partComp) + || partComp.Body != args.Body) + return; + + foreach (var reg in organComp.Organ.Values) + { + if (_body.TryGetBodyPartOrgans(args.Part, reg.Component.GetType(), out var organs) + && organs != null + && organs.Count > 0) + { + args.Cancelled = true; + return; + } + } + } + + // TODO: Refactor bodies to include ears as a prototype instead of doing whatever the hell this is. + private void OnAddMarkingStep(Entity ent, ref SurgeryStepEvent args) + { + if (!TryComp(args.Body, out HumanoidAppearanceComponent? bodyAppearance) + || ent.Comp.Organ == null) + return; + + var organType = ent.Comp.Organ.Values.FirstOrDefault(); + if (organType == default) + return; + + var markingCategory = MarkingCategoriesConversion.FromHumanoidVisualLayers(ent.Comp.MarkingCategory); + foreach (var tool in args.Tools) + { + if (TryComp(tool, out MarkingContainerComponent? markingComp) + && HasComp(tool, organType.Component.GetType())) + { + if (!bodyAppearance.MarkingSet.Markings.TryGetValue(markingCategory, out var markingList) + || !markingList.Any(marking => marking.MarkingId.Contains(ent.Comp.MatchString))) + { + EnsureComp(args.Part); + _body.ModifyMarkings(args.Body, args.Part, bodyAppearance, ent.Comp.MarkingCategory, markingComp.Marking); + + if (ent.Comp.Accent != null + && ent.Comp.Accent.Values.FirstOrDefault() is { } accent) + { + var compType = accent.Component.GetType(); + if (!HasComp(args.Body, compType)) + AddComp(args.Body, _compFactory.GetComponent(compType)); + } + + QueueDel(tool); // Again since this isnt actually being inserted we just delete it lol. + } + } + } + + } + + private void OnAddMarkingCheck(Entity ent, ref SurgeryStepCompleteCheckEvent args) + { + var markingCategory = MarkingCategoriesConversion.FromHumanoidVisualLayers(ent.Comp.MarkingCategory); + + if (!TryComp(args.Body, out HumanoidAppearanceComponent? bodyAppearance) + || !bodyAppearance.MarkingSet.Markings.TryGetValue(markingCategory, out var markingList) + || !markingList.Any(marking => marking.MarkingId.Contains(ent.Comp.MatchString))) + args.Cancelled = true; + } + + private void OnRemoveMarkingStep(Entity ent, ref SurgeryStepEvent args) + { + + } + + private void OnRemoveMarkingCheck(Entity ent, ref SurgeryStepCompleteCheckEvent args) + { + + } + + private void OnSurgeryTargetStepChosen(Entity ent, ref SurgeryStepChosenBuiMsg args) + { + var user = args.Actor; + if (GetEntity(args.Entity) is not { Valid: true } body || + GetEntity(args.Part) is not { Valid: true } targetPart || + !IsSurgeryValid(body, targetPart, args.Surgery, args.Step, user, out var surgery, out var part, out var step)) + { + return; + } + + if (!PreviousStepsComplete(body, part, surgery, args.Step) || + IsStepComplete(body, part, args.Step, surgery)) + return; + + if (!CanPerformStep(user, body, part, step, true, out _, out _, out var validTools)) + return; + + // make the doafter longer for ghetto tools, or shorter for advanced ones + var speed = 1f; + var usedEv = new SurgeryToolUsedEvent(user, body); + // We need to check for nullability because of surgeries that dont require a tool, like Cavity Implants + if (validTools?.Count > 0) + { + foreach (var (tool, toolSpeed) in validTools) + { + RaiseLocalEvent(tool, ref usedEv); + if (usedEv.Cancelled) + return; + + speed *= toolSpeed; + } + + if (_net.IsServer) + { + foreach (var tool in validTools.Keys) + { + if (TryComp(tool, out SurgeryToolComponent? toolComp) && + toolComp.EndSound != null) + { + _audio.PlayEntity(toolComp.StartSound, user, tool); + } + } + } + } + + + if (TryComp(body, out TransformComponent? xform)) + _rotateToFace.TryFaceCoordinates(user, _transform.GetMapCoordinates(body, xform).Position); + + var ev = new SurgeryDoAfterEvent(args.Surgery, args.Step); + // TODO: Serialize each surgery with a custom duration. + var duration = GetSurgeryDuration(step, user, body, speed); + var doAfter = new DoAfterArgs(EntityManager, user, TimeSpan.FromSeconds(duration), ev, body, part) + { + BreakOnUserMove = true, + BreakOnTargetMove = true, + CancelDuplicate = true, + DuplicateCondition = DuplicateConditions.SameEvent, + NeedHand = true, + BreakOnHandChange = true, + }; + + if (_doAfter.TryStartDoAfter(doAfter)) + { + var userName = Identity.Entity(user, EntityManager); + var targetName = Identity.Entity(ent.Owner, EntityManager); + + var locName = $"surgery-popup-procedure-{args.Surgery}-step-{args.Step}"; + var locResult = Loc.GetString(locName, + ("user", userName), ("target", targetName), ("part", part)); + + if (locResult == locName) + locResult = Loc.GetString($"surgery-popup-step-{args.Step}", + ("user", userName), ("target", targetName), ("part", part)); + + _popup.PopupEntity(locResult, user); + } + } + + private float GetSurgeryDuration(EntityUid surgeryStep, EntityUid user, EntityUid target, float toolSpeed) + { + if (!TryComp(surgeryStep, out SurgeryStepComponent? stepComp)) + return 2f; // Shouldnt really happen but just a failsafe. + + var speed = toolSpeed; + + if (TryComp(user, out SurgerySpeedModifierComponent? surgerySpeedMod)) + speed *= surgerySpeedMod.SpeedModifier; + + return stepComp.Duration / speed; + } + + private (Entity Surgery, int Step)? GetNextStep(EntityUid body, EntityUid part, Entity surgery, List requirements) + { + if (!Resolve(surgery, ref surgery.Comp)) + return null; + + if (requirements.Contains(surgery)) + throw new ArgumentException($"Surgery {surgery} has a requirement loop: {string.Join(", ", requirements)}"); + + requirements.Add(surgery); + + if (surgery.Comp.Requirement is { } requirementId && + GetSingleton(requirementId) is { } requirement && + GetNextStep(body, part, requirement, requirements) is { } requiredNext) + { + return requiredNext; + } + + for (var i = 0; i < surgery.Comp.Steps.Count; i++) + { + var surgeryStep = surgery.Comp.Steps[i]; + if (!IsStepComplete(body, part, surgeryStep, surgery)) + return ((surgery, surgery.Comp), i); + } + + return null; + } + + public (Entity Surgery, int Step)? GetNextStep(EntityUid body, EntityUid part, EntityUid surgery) + { + return GetNextStep(body, part, surgery, new List()); + } + + public bool PreviousStepsComplete(EntityUid body, EntityUid part, Entity surgery, EntProtoId step) + { + // TODO RMC14 use index instead of the prototype id + if (surgery.Comp.Requirement is { } requirement) + { + if (GetSingleton(requirement) is not { } requiredEnt || + !TryComp(requiredEnt, out SurgeryComponent? requiredComp) || + !PreviousStepsComplete(body, part, (requiredEnt, requiredComp), step)) + { + return false; + } + } + + foreach (var surgeryStep in surgery.Comp.Steps) + { + if (surgeryStep == step) + break; + + if (!IsStepComplete(body, part, surgeryStep, surgery)) + return false; + } + + return true; + } + + public bool CanPerformStep(EntityUid user, EntityUid body, EntityUid part, + EntityUid step, bool doPopup, out string? popup, out StepInvalidReason reason, + out Dictionary? validTools) + { + var type = BodyPartType.Other; + if (TryComp(part, out BodyPartComponent? partComp)) + { + type = partComp.PartType; + } + + var slot = type switch + { + BodyPartType.Head => SlotFlags.HEAD, + BodyPartType.Torso => SlotFlags.OUTERCLOTHING | SlotFlags.INNERCLOTHING, + BodyPartType.Arm => SlotFlags.OUTERCLOTHING | SlotFlags.INNERCLOTHING, + BodyPartType.Hand => SlotFlags.GLOVES, + BodyPartType.Leg => SlotFlags.OUTERCLOTHING | SlotFlags.LEGS, + BodyPartType.Foot => SlotFlags.FEET, + BodyPartType.Tail => SlotFlags.NONE, + BodyPartType.Other => SlotFlags.NONE, + _ => SlotFlags.NONE + }; + + var check = new SurgeryCanPerformStepEvent(user, body, GetTools(user), slot); + RaiseLocalEvent(step, ref check); + popup = check.Popup; + validTools = check.ValidTools; + + if (check.Invalid != StepInvalidReason.None) + { + if (doPopup && check.Popup != null) + _popup.PopupEntity(check.Popup, user, user, PopupType.SmallCaution); + + reason = check.Invalid; + return false; + } + + reason = default; + return true; + } + + public bool CanPerformStep(EntityUid user, EntityUid body, EntityUid part, EntityUid step, bool doPopup) + { + return CanPerformStep(user, body, part, step, doPopup, out _, out _, out _); + } + + public bool IsStepComplete(EntityUid body, EntityUid part, EntProtoId step, EntityUid surgery) + { + if (GetSingleton(step) is not { } stepEnt) + return false; + + var ev = new SurgeryStepCompleteCheckEvent(body, part, surgery); + RaiseLocalEvent(stepEnt, ref ev); + return !ev.Cancelled; + } + + private bool AnyHaveComp(List tools, IComponent component, out EntityUid withComp, out float speed) + { + foreach (var tool in tools) + { + if (EntityManager.TryGetComponent(tool, component.GetType(), out var found) && found is ISurgeryToolComponent toolComp) + { + withComp = tool; + speed = toolComp.Speed; + return true; + } + } + + withComp = EntityUid.Invalid; + speed = 1f; + return false; + } +} diff --git a/Content.Shared/Medical/Surgery/SharedSurgerySystem.cs b/Content.Shared/Medical/Surgery/SharedSurgerySystem.cs new file mode 100644 index 00000000000..74b4ce96489 --- /dev/null +++ b/Content.Shared/Medical/Surgery/SharedSurgerySystem.cs @@ -0,0 +1,360 @@ +using System.Linq; +using Content.Shared.Medical.Surgery.Conditions; +using Content.Shared.Medical.Surgery.Effects.Complete; +using Content.Shared.Body.Systems; +using Content.Shared.Medical.Surgery.Steps; +using Content.Shared.Medical.Surgery.Steps.Parts; +//using Content.Shared._RMC14.Xenonids.Parasite; +using Content.Shared.Body.Part; +using Content.Shared.Damage; +using Content.Shared.Containers.ItemSlots; +using Content.Shared.Body.Components; +using Content.Shared.Buckle.Components; +using Content.Shared.DoAfter; +using Content.Shared.Mobs.Systems; +using Content.Shared.GameTicking; +using Content.Shared.Hands.EntitySystems; +using Content.Shared.Humanoid; +using Content.Shared.Humanoid.Markings; +using Content.Shared.Interaction; +using Content.Shared.Inventory; +using Content.Shared.Popups; +using Content.Shared.Standing; +using Robust.Shared.Audio.Systems; +using Robust.Shared.Map; +using Robust.Shared.Network; +using Robust.Shared.Prototypes; +using Robust.Shared.Timing; + +namespace Content.Shared.Medical.Surgery; + +public abstract partial class SharedSurgerySystem : EntitySystem +{ + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly IComponentFactory _compFactory = default!; + [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; + [Dependency] private readonly SharedHandsSystem _hands = default!; + [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly SharedBodySystem _body = default!; + [Dependency] private readonly DamageableSystem _damageable = default!; + [Dependency] private readonly INetManager _net = default!; + [Dependency] private readonly InventorySystem _inventory = default!; + [Dependency] private readonly ItemSlotsSystem _itemSlotsSystem = default!; + [Dependency] private readonly MobStateSystem _mobState = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly IPrototypeManager _prototypes = default!; + [Dependency] private readonly RotateToFaceSystem _rotateToFace = default!; + [Dependency] private readonly StandingStateSystem _standing = default!; + [Dependency] private readonly SharedTransformSystem _transform = default!; + + private readonly Dictionary _surgeries = new(); + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnRoundRestartCleanup); + + SubscribeLocalEvent(OnTargetDoAfter); + SubscribeLocalEvent(OnCloseIncisionValid); + //SubscribeLocalEvent(OnLarvaValid); + SubscribeLocalEvent(OnBodyComponentConditionValid); + SubscribeLocalEvent(OnPartComponentConditionValid); + SubscribeLocalEvent(OnPartConditionValid); + SubscribeLocalEvent(OnOrganConditionValid); + SubscribeLocalEvent(OnOrganOnAddConditionValid); + SubscribeLocalEvent(OnWoundedValid); + SubscribeLocalEvent(OnPartRemovedConditionValid); + SubscribeLocalEvent(OnPartPresentConditionValid); + SubscribeLocalEvent(OnMarkingPresentValid); + //SubscribeLocalEvent(OnRemoveLarva); + + InitializeSteps(); + } + + private void OnRoundRestartCleanup(RoundRestartCleanupEvent ev) + { + _surgeries.Clear(); + } + + private void OnTargetDoAfter(Entity ent, ref SurgeryDoAfterEvent args) + { + if (!_timing.IsFirstTimePredicted) + return; + + if (args.Cancelled + || args.Handled + || args.Target is not { } target + || !IsSurgeryValid(ent, target, args.Surgery, args.Step, args.User, out var surgery, out var part, out var step) + || !PreviousStepsComplete(ent, part, surgery, args.Step) + || !CanPerformStep(args.User, ent, part, step, false)) + { + Log.Warning($"{ToPrettyString(args.User)} tried to start invalid surgery."); + return; + } + + args.Repeat = (HasComp(step) && !IsStepComplete(ent, part, args.Step, surgery)); + var ev = new SurgeryStepEvent(args.User, ent, part, GetTools(args.User), surgery); + RaiseLocalEvent(step, ref ev); + RefreshUI(ent); + } + + private void OnCloseIncisionValid(Entity ent, ref SurgeryValidEvent args) + { + if (!HasComp(args.Part) || + !HasComp(args.Part) || + !HasComp(args.Part) || + !HasComp(args.Part) || + !HasComp(args.Part)) + { + args.Cancelled = true; + } + } + + private void OnWoundedValid(Entity ent, ref SurgeryValidEvent args) + { + if (!TryComp(args.Body, out DamageableComponent? damageable) + || !TryComp(args.Part, out DamageableComponent? partDamageable) + || damageable.TotalDamage <= 0 + && partDamageable.TotalDamage <= 0 + && !HasComp(args.Part)) + args.Cancelled = true; + } + + /*private void OnLarvaValid(Entity ent, ref SurgeryValidEvent args) + { + if (!TryComp(args.Body, out VictimInfectedComponent? infected)) + args.Cancelled = true; + + // The larva has fully developed and surgery is now impossible + if (infected != null && infected.SpawnedLarva != null) + args.Cancelled = true; + }*/ + + private void OnBodyComponentConditionValid(Entity ent, ref SurgeryValidEvent args) + { + var present = true; + foreach (var reg in ent.Comp.Components.Values) + { + var compType = reg.Component.GetType(); + if (!HasComp(args.Body, compType)) + present = false; + } + + if (ent.Comp.Inverse ? present : !present) + args.Cancelled = true; + } + + private void OnPartComponentConditionValid(Entity ent, ref SurgeryValidEvent args) + { + var present = true; + foreach (var reg in ent.Comp.Components.Values) + { + var compType = reg.Component.GetType(); + if (!HasComp(args.Part, compType)) + present = false; + } + + if (ent.Comp.Inverse ? present : !present) + args.Cancelled = true; + } + + private void OnPartConditionValid(Entity ent, ref SurgeryValidEvent args) + { + if (!TryComp(args.Part, out var part)) + { + args.Cancelled = true; + return; + } + + var typeMatch = part.PartType == ent.Comp.Part; + var symmetryMatch = ent.Comp.Symmetry == null || part.Symmetry == ent.Comp.Symmetry; + var valid = typeMatch && symmetryMatch; + + if (ent.Comp.Inverse ? valid : !valid) + args.Cancelled = true; + } + + private void OnOrganConditionValid(Entity ent, ref SurgeryValidEvent args) + { + if (!TryComp(args.Part, out var partComp) + || partComp.Body != args.Body + || ent.Comp.Organ == null) + { + args.Cancelled = true; + return; + } + + foreach (var reg in ent.Comp.Organ.Values) + { + if (_body.TryGetBodyPartOrgans(args.Part, reg.Component.GetType(), out var organs) + && organs.Count > 0) + { + if (ent.Comp.Inverse + && (!ent.Comp.Reattaching + || ent.Comp.Reattaching + && !organs.Any(organ => HasComp(organ.Id)))) + args.Cancelled = true; + } + else if (!ent.Comp.Inverse) + args.Cancelled = true; + } + } + + // This is literally a duplicate of the checks in OnToolCheck for SurgeryStepComponent.AddOrganOnAdd + private void OnOrganOnAddConditionValid(Entity ent, ref SurgeryValidEvent args) + { + if (!TryComp(args.Part, out var part) + || part.Body != args.Body) + { + args.Cancelled = true; + return; + } + + var organSlotIdToOrgan = _body.GetPartOrgans(args.Part, part).ToDictionary(o => o.Item2.SlotId, o => o.Item2); + + var allOnAddFound = true; + var zeroOnAddFound = true; + + foreach (var (organSlotId, components) in ent.Comp.Components) + { + if (!organSlotIdToOrgan.TryGetValue(organSlotId, out var organ)) + continue; + + if (organ.OnAdd == null) + { + allOnAddFound = false; + continue; + } + + foreach (var key in components.Keys) + { + if (!organ.OnAdd.ContainsKey(key)) + allOnAddFound = false; + else + zeroOnAddFound = false; + } + } + + if (ent.Comp.Inverse ? allOnAddFound : zeroOnAddFound) + args.Cancelled = true; + } + + private void OnPartRemovedConditionValid(Entity ent, ref SurgeryValidEvent args) + { + if (!_body.CanAttachToSlot(args.Part, ent.Comp.Connection)) + { + args.Cancelled = true; + return; + } + + var results = _body.GetBodyChildrenOfType(args.Body, ent.Comp.Part, symmetry: ent.Comp.Symmetry).ToList(); + if (results is not { } || !results.Any()) + return; + + if (!results.Any(part => HasComp(part.Id))) + args.Cancelled = true; + } + + private void OnPartPresentConditionValid(Entity ent, ref SurgeryValidEvent args) + { + if (args.Part == EntityUid.Invalid + || !HasComp(args.Part)) + args.Cancelled = true; + } + + private void OnMarkingPresentValid(Entity ent, ref SurgeryValidEvent args) + { + var markingCategory = MarkingCategoriesConversion.FromHumanoidVisualLayers(ent.Comp.MarkingCategory); + + var hasMarking = TryComp(args.Body, out HumanoidAppearanceComponent? bodyAppearance) + && bodyAppearance.MarkingSet.Markings.TryGetValue(markingCategory, out var markingList) + && markingList.Any(marking => marking.MarkingId.Contains(ent.Comp.MatchString)); + + if ((!ent.Comp.Inverse && hasMarking) || (ent.Comp.Inverse && !hasMarking)) + args.Cancelled = true; + } + + /*private void OnRemoveLarva(Entity ent, ref SurgeryCompletedEvent args) + { + RemCompDeferred(ent); + }*/ + + protected bool IsSurgeryValid(EntityUid body, EntityUid targetPart, EntProtoId surgery, EntProtoId stepId, + EntityUid user, out Entity surgeryEnt, out EntityUid part, out EntityUid step) + { + surgeryEnt = default; + part = default; + step = default; + + if (!HasComp(body) || + !IsLyingDown(body, user) || + GetSingleton(surgery) is not { } surgeryEntId || + !TryComp(surgeryEntId, out SurgeryComponent? surgeryComp) || + !surgeryComp.Steps.Contains(stepId) || + GetSingleton(stepId) is not { } stepEnt + || !HasComp(targetPart) + && !HasComp(targetPart)) + return false; + + + var ev = new SurgeryValidEvent(body, targetPart); + if (_timing.IsFirstTimePredicted) + { + RaiseLocalEvent(stepEnt, ref ev); + RaiseLocalEvent(surgeryEntId, ref ev); + } + + if (ev.Cancelled) + return false; + + surgeryEnt = (surgeryEntId, surgeryComp); + part = targetPart; + step = stepEnt; + return true; + } + + public EntityUid? GetSingleton(EntProtoId surgeryOrStep) + { + if (!_prototypes.HasIndex(surgeryOrStep)) + return null; + + // This (for now) assumes that surgery entity data remains unchanged between client + // and server + // if it does not you get the bullet + if (!_surgeries.TryGetValue(surgeryOrStep, out var ent) || TerminatingOrDeleted(ent)) + { + ent = Spawn(surgeryOrStep, MapCoordinates.Nullspace); + _surgeries[surgeryOrStep] = ent; + } + + return ent; + } + + private List GetTools(EntityUid surgeon) + { + return _hands.EnumerateHeld(surgeon).ToList(); + } + + public bool IsLyingDown(EntityUid entity, EntityUid user) + { + if (_standing.IsDown(entity)) + return true; + + if (TryComp(entity, out BuckleComponent? buckle) && + TryComp(buckle.BuckledTo, out StrapComponent? strap)) + { + var rotation = strap.Rotation; + if (rotation.GetCardinalDir() is Direction.West or Direction.East) + return true; + } + + _popup.PopupEntity(Loc.GetString("surgery-error-laying"), user, user); + + return false; + } + + protected virtual void RefreshUI(EntityUid body) + { + } +} diff --git a/Content.Shared/Medical/Surgery/StepInvalidReason.cs b/Content.Shared/Medical/Surgery/StepInvalidReason.cs new file mode 100644 index 00000000000..dbea495d088 --- /dev/null +++ b/Content.Shared/Medical/Surgery/StepInvalidReason.cs @@ -0,0 +1,10 @@ +namespace Content.Shared.Medical.Surgery; + +public enum StepInvalidReason +{ + None, + MissingSkills, + NeedsOperatingTable, + Armor, + MissingTool, +} \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Steps/Parts/BleedersClampedComponent.cs b/Content.Shared/Medical/Surgery/Steps/Parts/BleedersClampedComponent.cs new file mode 100644 index 00000000000..24d4fd99354 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Steps/Parts/BleedersClampedComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Steps.Parts; + +[RegisterComponent, NetworkedComponent] +public sealed partial class BleedersClampedComponent : Component; \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Steps/Parts/BodyPartReattachedComponent.cs b/Content.Shared/Medical/Surgery/Steps/Parts/BodyPartReattachedComponent.cs new file mode 100644 index 00000000000..30739c821b4 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Steps/Parts/BodyPartReattachedComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Steps.Parts; + +[RegisterComponent, NetworkedComponent] +public sealed partial class BodyPartReattachedComponent : Component; \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Steps/Parts/BodyPartSawedComponent.cs b/Content.Shared/Medical/Surgery/Steps/Parts/BodyPartSawedComponent.cs new file mode 100644 index 00000000000..0838175d9a1 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Steps/Parts/BodyPartSawedComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Steps.Parts; + +[RegisterComponent, NetworkedComponent] +public sealed partial class BodyPartSawedComponent : Component; \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Steps/Parts/IncisionOpenComponent.cs b/Content.Shared/Medical/Surgery/Steps/Parts/IncisionOpenComponent.cs new file mode 100644 index 00000000000..f41319549cd --- /dev/null +++ b/Content.Shared/Medical/Surgery/Steps/Parts/IncisionOpenComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Steps.Parts; + +[RegisterComponent, NetworkedComponent] +public sealed partial class IncisionOpenComponent : Component; \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Steps/Parts/InternalBleedersClampedComponent.cs b/Content.Shared/Medical/Surgery/Steps/Parts/InternalBleedersClampedComponent.cs new file mode 100644 index 00000000000..7e597e88ef9 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Steps/Parts/InternalBleedersClampedComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Steps.Parts; + +[RegisterComponent, NetworkedComponent] +public sealed partial class InternalBleedersClampedComponent : Component; \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Steps/Parts/OrganReattachedComponent.cs b/Content.Shared/Medical/Surgery/Steps/Parts/OrganReattachedComponent.cs new file mode 100644 index 00000000000..9e034598e68 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Steps/Parts/OrganReattachedComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Steps.Parts; + +[RegisterComponent, NetworkedComponent] +public sealed partial class OrganReattachedComponent : Component; \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Steps/Parts/PartRemovedComponent.cs b/Content.Shared/Medical/Surgery/Steps/Parts/PartRemovedComponent.cs new file mode 100644 index 00000000000..ced1d1b9848 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Steps/Parts/PartRemovedComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Steps.Parts; + +[RegisterComponent, NetworkedComponent] +public sealed partial class PartsRemovedComponent : Component; \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Steps/Parts/RibcageOpenComponent.cs b/Content.Shared/Medical/Surgery/Steps/Parts/RibcageOpenComponent.cs new file mode 100644 index 00000000000..d8942bd9665 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Steps/Parts/RibcageOpenComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Steps.Parts; + +[RegisterComponent, NetworkedComponent] +public sealed partial class RibcageOpenComponent : Component; \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Steps/Parts/RibcageSawedComponent.cs b/Content.Shared/Medical/Surgery/Steps/Parts/RibcageSawedComponent.cs new file mode 100644 index 00000000000..527b3dc99aa --- /dev/null +++ b/Content.Shared/Medical/Surgery/Steps/Parts/RibcageSawedComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Steps.Parts; + +[RegisterComponent, NetworkedComponent] +public sealed partial class RibcageSawedComponent : Component; \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Steps/Parts/SkinRetractedComponent.cs b/Content.Shared/Medical/Surgery/Steps/Parts/SkinRetractedComponent.cs new file mode 100644 index 00000000000..6f75a83f17f --- /dev/null +++ b/Content.Shared/Medical/Surgery/Steps/Parts/SkinRetractedComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Steps.Parts; + +[RegisterComponent, NetworkedComponent] +public sealed partial class SkinRetractedComponent : Component; \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Steps/SurgeryAddMarkingStepComponent.cs b/Content.Shared/Medical/Surgery/Steps/SurgeryAddMarkingStepComponent.cs new file mode 100644 index 00000000000..b945c8d909e --- /dev/null +++ b/Content.Shared/Medical/Surgery/Steps/SurgeryAddMarkingStepComponent.cs @@ -0,0 +1,34 @@ +using Content.Shared.Humanoid; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Medical.Surgery.Steps; + +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgeryAddMarkingStepComponent : Component +{ + /// + /// The marking category to add the marking to. + /// + [DataField] + public HumanoidVisualLayers MarkingCategory = default!; + + /// + /// Can be either a segment of a marking ID, or an entire ID that will be checked + /// against the entity to validate that the marking is not already present. + /// + [DataField] + public String MatchString = ""; + + /// + /// What type of organ is required for this surgery? + /// + [DataField] + public ComponentRegistry? Organ; + + /// + /// Component name for accent that will be applied. + /// + [DataField] + public ComponentRegistry? Accent; +} diff --git a/Content.Shared/Medical/Surgery/Steps/SurgeryAddOrganStepComponent.cs b/Content.Shared/Medical/Surgery/Steps/SurgeryAddOrganStepComponent.cs new file mode 100644 index 00000000000..2d169879f9c --- /dev/null +++ b/Content.Shared/Medical/Surgery/Steps/SurgeryAddOrganStepComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Steps; + +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgeryAddOrganStepComponent : Component; \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Steps/SurgeryAddPartStepComponent.cs b/Content.Shared/Medical/Surgery/Steps/SurgeryAddPartStepComponent.cs new file mode 100644 index 00000000000..0229552ae8a --- /dev/null +++ b/Content.Shared/Medical/Surgery/Steps/SurgeryAddPartStepComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Steps; + +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgeryAddPartStepComponent : Component; \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Steps/SurgeryAffixOrganStepComponent.cs b/Content.Shared/Medical/Surgery/Steps/SurgeryAffixOrganStepComponent.cs new file mode 100644 index 00000000000..5f82cbe4251 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Steps/SurgeryAffixOrganStepComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Steps; + +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgeryAffixOrganStepComponent : Component; diff --git a/Content.Shared/Medical/Surgery/Steps/SurgeryAffixPartStepComponent.cs b/Content.Shared/Medical/Surgery/Steps/SurgeryAffixPartStepComponent.cs new file mode 100644 index 00000000000..cc080e8be0b --- /dev/null +++ b/Content.Shared/Medical/Surgery/Steps/SurgeryAffixPartStepComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Steps; + +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgeryAffixPartStepComponent : Component; diff --git a/Content.Shared/Medical/Surgery/Steps/SurgeryCanPerformStepEvent.cs b/Content.Shared/Medical/Surgery/Steps/SurgeryCanPerformStepEvent.cs new file mode 100644 index 00000000000..49f49b52103 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Steps/SurgeryCanPerformStepEvent.cs @@ -0,0 +1,14 @@ +using Content.Shared.Inventory; + +namespace Content.Shared.Medical.Surgery.Steps; + +[ByRefEvent] +public record struct SurgeryCanPerformStepEvent( + EntityUid User, + EntityUid Body, + List Tools, + SlotFlags TargetSlots, + string? Popup = null, + StepInvalidReason Invalid = StepInvalidReason.None, + Dictionary? ValidTools = null +) : IInventoryRelayEvent; diff --git a/Content.Shared/Medical/Surgery/Steps/SurgeryCutLarvaRootsStepComponent.cs b/Content.Shared/Medical/Surgery/Steps/SurgeryCutLarvaRootsStepComponent.cs new file mode 100644 index 00000000000..349815379b7 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Steps/SurgeryCutLarvaRootsStepComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Steps; + +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgeryCutLarvaRootsStepComponent : Component; \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Steps/SurgeryRemoveMarkingStepComponent.cs b/Content.Shared/Medical/Surgery/Steps/SurgeryRemoveMarkingStepComponent.cs new file mode 100644 index 00000000000..47368a154c0 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Steps/SurgeryRemoveMarkingStepComponent.cs @@ -0,0 +1,29 @@ +using Robust.Shared.Prototypes; +using Content.Shared.Humanoid; +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Steps; + +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgeryRemoveMarkingStepComponent : Component +{ + /// + /// The category the marking belongs to. + /// + [DataField] + public HumanoidVisualLayers MarkingCategory = default!; + + /// + /// Can be either a segment of a marking ID, or an entire ID that will be checked + /// against the entity to validate that the marking is present. + /// + [DataField] + public String MatchString = ""; + + /// + /// Will this step spawn an item as a result of removing the markings? If so, which? + /// + [DataField] + public EntProtoId? ItemSpawn = default!; + +} diff --git a/Content.Shared/Medical/Surgery/Steps/SurgeryRemoveOrganStepComponent.cs b/Content.Shared/Medical/Surgery/Steps/SurgeryRemoveOrganStepComponent.cs new file mode 100644 index 00000000000..66f2ea62fd3 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Steps/SurgeryRemoveOrganStepComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Steps; + +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgeryRemoveOrganStepComponent : Component; \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Steps/SurgeryRemovePartStepComponent.cs b/Content.Shared/Medical/Surgery/Steps/SurgeryRemovePartStepComponent.cs new file mode 100644 index 00000000000..f55f3d1b7bf --- /dev/null +++ b/Content.Shared/Medical/Surgery/Steps/SurgeryRemovePartStepComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Steps; + +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgeryRemovePartStepComponent : Component; \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Steps/SurgeryRepeatableStepComponent.cs b/Content.Shared/Medical/Surgery/Steps/SurgeryRepeatableStepComponent.cs new file mode 100644 index 00000000000..14010b7e962 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Steps/SurgeryRepeatableStepComponent.cs @@ -0,0 +1,6 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Steps; + +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgeryRepeatableStepComponent : Component; diff --git a/Content.Shared/Medical/Surgery/Steps/SurgeryStepCompleteCheckEvent.cs b/Content.Shared/Medical/Surgery/Steps/SurgeryStepCompleteCheckEvent.cs new file mode 100644 index 00000000000..ed28aab1db7 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Steps/SurgeryStepCompleteCheckEvent.cs @@ -0,0 +1,4 @@ +namespace Content.Shared.Medical.Surgery.Steps; + +[ByRefEvent] +public record struct SurgeryStepCompleteCheckEvent(EntityUid Body, EntityUid Part, EntityUid Surgery, bool Cancelled = false); \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/Steps/SurgeryStepComponent.cs b/Content.Shared/Medical/Surgery/Steps/SurgeryStepComponent.cs new file mode 100644 index 00000000000..9c46333fdc3 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Steps/SurgeryStepComponent.cs @@ -0,0 +1,46 @@ +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Medical.Surgery.Steps; + +[RegisterComponent, NetworkedComponent] +[Prototype("SurgerySteps")] +public sealed partial class SurgeryStepComponent : Component +{ + + [DataField] + public ComponentRegistry? Tool; + + [DataField] + public ComponentRegistry? Add; + + [DataField] + public ComponentRegistry? BodyAdd; + + [DataField] + public ComponentRegistry? Remove; + + [DataField] + public ComponentRegistry? BodyRemove; + + /// + /// These components will be added to the body part's organs' OnAdd field. + /// Each key is the SlotId of the organ to look for. + /// + /// Used to make organs add components to whatever body it's residing in. + /// + [DataField] + public Dictionary? AddOrganOnAdd; + + /// + /// These components will be removed from the body part's organs' OnAdd field. + /// Each key is the SlotId of the organ to look for. + /// + /// Used to stop organs from adding components to whatever body it's residing in. + /// + [DataField] + public Dictionary? RemoveOrganOnAdd; + + [DataField] + public float Duration = 2f; +} diff --git a/Content.Shared/Medical/Surgery/SurgeryComponent.cs b/Content.Shared/Medical/Surgery/SurgeryComponent.cs new file mode 100644 index 00000000000..3d3c8952344 --- /dev/null +++ b/Content.Shared/Medical/Surgery/SurgeryComponent.cs @@ -0,0 +1,18 @@ +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Medical.Surgery; + +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +[Prototype("Surgeries")] +public sealed partial class SurgeryComponent : Component +{ + [DataField, AutoNetworkedField] + public int Priority; + + [DataField, AutoNetworkedField] + public EntProtoId? Requirement; + + [DataField(required: true), AutoNetworkedField] + public List Steps = new(); +} \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/SurgeryDoAfterEvent.cs b/Content.Shared/Medical/Surgery/SurgeryDoAfterEvent.cs new file mode 100644 index 00000000000..e61cfbd8e47 --- /dev/null +++ b/Content.Shared/Medical/Surgery/SurgeryDoAfterEvent.cs @@ -0,0 +1,18 @@ +using Content.Shared.DoAfter; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; + +namespace Content.Shared.Medical.Surgery; + +[Serializable, NetSerializable] +public sealed partial class SurgeryDoAfterEvent : SimpleDoAfterEvent +{ + public readonly EntProtoId Surgery; + public readonly EntProtoId Step; + + public SurgeryDoAfterEvent(EntProtoId surgery, EntProtoId step) + { + Surgery = surgery; + Step = step; + } +} \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/SurgerySpeedModifierComponent.cs b/Content.Shared/Medical/Surgery/SurgerySpeedModifierComponent.cs new file mode 100644 index 00000000000..b9b586b8f58 --- /dev/null +++ b/Content.Shared/Medical/Surgery/SurgerySpeedModifierComponent.cs @@ -0,0 +1,11 @@ +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Medical.Surgery; + +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgerySpeedModifierComponent : Component +{ + [DataField] + public float SpeedModifier = 1.5f; +} \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/SurgeryStepDamageChangeEvent.cs b/Content.Shared/Medical/Surgery/SurgeryStepDamageChangeEvent.cs new file mode 100644 index 00000000000..e8f0a34cde3 --- /dev/null +++ b/Content.Shared/Medical/Surgery/SurgeryStepDamageChangeEvent.cs @@ -0,0 +1,9 @@ +using Content.Shared.Damage; + +namespace Content.Shared.Medical.Surgery; + +/// +/// Raised on the target entity. +/// +[ByRefEvent] +public record struct SurgeryStepDamageChangeEvent(EntityUid User, EntityUid Body, EntityUid Part, EntityUid Step); diff --git a/Content.Shared/Medical/Surgery/SurgeryStepDamageEvent.cs b/Content.Shared/Medical/Surgery/SurgeryStepDamageEvent.cs new file mode 100644 index 00000000000..781cf81acf6 --- /dev/null +++ b/Content.Shared/Medical/Surgery/SurgeryStepDamageEvent.cs @@ -0,0 +1,9 @@ +using Content.Shared.Damage; + +namespace Content.Shared.Medical.Surgery; + +/// +/// Raised on the target entity. +/// +[ByRefEvent] +public record struct SurgeryStepDamageEvent(EntityUid User, EntityUid Body, EntityUid Part, EntityUid Surgery, DamageSpecifier Damage, float PartMultiplier); \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/SurgeryStepEvent.cs b/Content.Shared/Medical/Surgery/SurgeryStepEvent.cs new file mode 100644 index 00000000000..9123c6d0d50 --- /dev/null +++ b/Content.Shared/Medical/Surgery/SurgeryStepEvent.cs @@ -0,0 +1,7 @@ +namespace Content.Shared.Medical.Surgery; + +/// +/// Raised on the step entity. +/// +[ByRefEvent] +public record struct SurgeryStepEvent(EntityUid User, EntityUid Body, EntityUid Part, List Tools, EntityUid Surgery); \ No newline at end of file diff --git a/Content.Shared/Medical/Surgery/SurgeryTargetComponent.cs b/Content.Shared/Medical/Surgery/SurgeryTargetComponent.cs new file mode 100644 index 00000000000..d2d7f8d4620 --- /dev/null +++ b/Content.Shared/Medical/Surgery/SurgeryTargetComponent.cs @@ -0,0 +1,10 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery; + +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgeryTargetComponent : Component +{ + [DataField] + public bool CanOperate = true; +} diff --git a/Content.Shared/Medical/Surgery/SurgeryUI.cs b/Content.Shared/Medical/Surgery/SurgeryUI.cs new file mode 100644 index 00000000000..2572aaca65a --- /dev/null +++ b/Content.Shared/Medical/Surgery/SurgeryUI.cs @@ -0,0 +1,32 @@ +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; + +namespace Content.Shared.Medical.Surgery; + +[Serializable, NetSerializable] +public enum SurgeryUIKey +{ + Key +} + +[Serializable, NetSerializable] +public sealed class SurgeryBuiState(Dictionary> choices) : BoundUserInterfaceState +{ + public readonly Dictionary> Choices = choices; +} + +[Serializable, NetSerializable] +public sealed class SurgeryBuiRefreshMessage : BoundUserInterfaceMessage +{ +} + +[Serializable, NetSerializable] +public sealed class SurgeryStepChosenBuiMsg(NetEntity part, EntProtoId surgery, EntProtoId step, bool isBody) : BoundUserInterfaceMessage +{ + public readonly NetEntity Part = part; + public readonly EntProtoId Surgery = surgery; + public readonly EntProtoId Step = step; + + // Used as a marker for whether or not we're hijacking surgery by applying it on the body itself. + public readonly bool IsBody = isBody; +} diff --git a/Content.Shared/Medical/Surgery/SurgeryUiRefreshEvent.cs b/Content.Shared/Medical/Surgery/SurgeryUiRefreshEvent.cs new file mode 100644 index 00000000000..9d41401d7f8 --- /dev/null +++ b/Content.Shared/Medical/Surgery/SurgeryUiRefreshEvent.cs @@ -0,0 +1,14 @@ +using Robust.Shared.Serialization; + +namespace Content.Shared.Medical.Surgery; + +[Serializable, NetSerializable] +public sealed class SurgeryUiRefreshEvent : EntityEventArgs +{ + public NetEntity Uid { get; } + + public SurgeryUiRefreshEvent(NetEntity uid) + { + Uid = uid; + } +} diff --git a/Content.Shared/Medical/Surgery/Tools/BoneGelComponent.cs b/Content.Shared/Medical/Surgery/Tools/BoneGelComponent.cs new file mode 100644 index 00000000000..601c8bc8a46 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Tools/BoneGelComponent.cs @@ -0,0 +1,14 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Tools; + +[RegisterComponent, NetworkedComponent] +public sealed partial class BoneGelComponent : Component, ISurgeryToolComponent +{ + public string ToolName => "bone gel"; + + public bool? Used { get; set; } = null; + + [DataField] + public float Speed { get; set; } = 1f; +} diff --git a/Content.Shared/Medical/Surgery/Tools/BoneSawComponent.cs b/Content.Shared/Medical/Surgery/Tools/BoneSawComponent.cs new file mode 100644 index 00000000000..8392dad89bf --- /dev/null +++ b/Content.Shared/Medical/Surgery/Tools/BoneSawComponent.cs @@ -0,0 +1,12 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Tools; + +[RegisterComponent, NetworkedComponent] +public sealed partial class BoneSawComponent : Component, ISurgeryToolComponent +{ + public string ToolName => "a bone saw"; + public bool? Used { get; set; } = null; + [DataField] + public float Speed { get; set; } = 1f; +} diff --git a/Content.Shared/Medical/Surgery/Tools/BoneSetterComponent.cs b/Content.Shared/Medical/Surgery/Tools/BoneSetterComponent.cs new file mode 100644 index 00000000000..2a4edc4680b --- /dev/null +++ b/Content.Shared/Medical/Surgery/Tools/BoneSetterComponent.cs @@ -0,0 +1,12 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Tools; + +[RegisterComponent, NetworkedComponent] +public sealed partial class BoneSetterComponent : Component, ISurgeryToolComponent +{ + public string ToolName => "a bone setter"; + public bool? Used { get; set; } = null; + [DataField] + public float Speed { get; set; } = 1f; +} diff --git a/Content.Shared/Medical/Surgery/Tools/CauteryComponent.cs b/Content.Shared/Medical/Surgery/Tools/CauteryComponent.cs new file mode 100644 index 00000000000..a81315d69fc --- /dev/null +++ b/Content.Shared/Medical/Surgery/Tools/CauteryComponent.cs @@ -0,0 +1,12 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Tools; + +[RegisterComponent, NetworkedComponent] +public sealed partial class CauteryComponent : Component, ISurgeryToolComponent +{ + public string ToolName => "a cautery"; + public bool? Used { get; set; } = null; + [DataField] + public float Speed { get; set; } = 1f; +} diff --git a/Content.Shared/Medical/Surgery/Tools/DrillComponent.cs b/Content.Shared/Medical/Surgery/Tools/DrillComponent.cs new file mode 100644 index 00000000000..1fa7c0726cb --- /dev/null +++ b/Content.Shared/Medical/Surgery/Tools/DrillComponent.cs @@ -0,0 +1,12 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Tools; + +[RegisterComponent, NetworkedComponent] +public sealed partial class DrillComponent : Component, ISurgeryToolComponent +{ + public string ToolName => "a drill"; + public bool? Used { get; set; } = null; + [DataField] + public float Speed { get; set; } = 1f; +} diff --git a/Content.Shared/Medical/Surgery/Tools/HemostatComponent.cs b/Content.Shared/Medical/Surgery/Tools/HemostatComponent.cs new file mode 100644 index 00000000000..76934fff083 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Tools/HemostatComponent.cs @@ -0,0 +1,12 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Tools; + +[RegisterComponent, NetworkedComponent] +public sealed partial class HemostatComponent : Component, ISurgeryToolComponent +{ + public string ToolName => "a hemostat"; + public bool? Used { get; set; } = null; + [DataField] + public float Speed { get; set; } = 1f; +} diff --git a/Content.Shared/Medical/Surgery/Tools/ISurgeryToolComponent.cs b/Content.Shared/Medical/Surgery/Tools/ISurgeryToolComponent.cs new file mode 100644 index 00000000000..af9eb37e5a8 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Tools/ISurgeryToolComponent.cs @@ -0,0 +1,18 @@ +namespace Content.Shared.Medical.Surgery.Tools; + +public interface ISurgeryToolComponent +{ + [DataField] + public string ToolName { get; } + + // Mostly intended for discardable or non-reusable tools. + [DataField] + public bool? Used { get; set; } + + /// + /// Divide the doafter's duration by this value. + /// This is per-type so you can have something that's a good scalpel but a bad retractor. + /// + [DataField] + public float Speed { get; set; } +} diff --git a/Content.Shared/Medical/Surgery/Tools/RetractorComponent.cs b/Content.Shared/Medical/Surgery/Tools/RetractorComponent.cs new file mode 100644 index 00000000000..a81f6d6eb60 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Tools/RetractorComponent.cs @@ -0,0 +1,12 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Tools; + +[RegisterComponent, NetworkedComponent] +public sealed partial class RetractorComponent : Component, ISurgeryToolComponent +{ + public string ToolName => "a retractor"; + public bool? Used { get; set; } = null; + [DataField] + public float Speed { get; set; } = 1f; +} diff --git a/Content.Shared/Medical/Surgery/Tools/ScalpelComponent.cs b/Content.Shared/Medical/Surgery/Tools/ScalpelComponent.cs new file mode 100644 index 00000000000..394692c838a --- /dev/null +++ b/Content.Shared/Medical/Surgery/Tools/ScalpelComponent.cs @@ -0,0 +1,12 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Tools; + +[RegisterComponent, NetworkedComponent] +public sealed partial class ScalpelComponent : Component, ISurgeryToolComponent +{ + public string ToolName => "a scalpel"; + public bool? Used { get; set; } = null; + [DataField] + public float Speed { get; set; } = 1f; +} diff --git a/Content.Shared/Medical/Surgery/Tools/SurgeryToolComponent.cs b/Content.Shared/Medical/Surgery/Tools/SurgeryToolComponent.cs new file mode 100644 index 00000000000..de999ed9285 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Tools/SurgeryToolComponent.cs @@ -0,0 +1,23 @@ +using Robust.Shared.Audio; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Medical.Surgery.Tools; + +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class SurgeryToolComponent : Component +{ + + [DataField, AutoNetworkedField] + public SoundSpecifier? StartSound; + + [DataField, AutoNetworkedField] + public SoundSpecifier? EndSound; +} + +/// +/// Raised on a tool to see if it can be used in a surgery step. +/// If this is cancelled the step can't be completed. +/// +[ByRefEvent] +public record struct SurgeryToolUsedEvent(EntityUid User, EntityUid Target, bool Cancelled = false); diff --git a/Content.Shared/Medical/Surgery/Tools/SurgeryToolExamineSystem.cs b/Content.Shared/Medical/Surgery/Tools/SurgeryToolExamineSystem.cs new file mode 100644 index 00000000000..6bfbc59b5fe --- /dev/null +++ b/Content.Shared/Medical/Surgery/Tools/SurgeryToolExamineSystem.cs @@ -0,0 +1,65 @@ +using Content.Shared.Body.Organ; +using Content.Shared.Body.Part; +using Content.Shared.Examine; +using Content.Shared.Verbs; +using Robust.Shared.Utility; + +namespace Content.Shared.Medical.Surgery.Tools; + +/// +/// Examining a surgical or ghetto tool shows everything it can be used for. +/// +public sealed class SurgeryToolExamineSystem : EntitySystem +{ + [Dependency] private readonly ExamineSystemShared _examine = default!; + + public override void Initialize() + { + SubscribeLocalEvent>(OnGetVerbs); + + SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnExamined); + + SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnExamined); + } + + private void OnGetVerbs(Entity ent, ref GetVerbsEvent args) + { + if (!args.CanInteract || !args.CanAccess) + return; + + var msg = FormattedMessage.FromMarkupOrThrow(Loc.GetString("surgery-tool-header")); + msg.PushNewline(); + var ev = new SurgeryToolExaminedEvent(msg); + RaiseLocalEvent(ent, ref ev); + + _examine.AddDetailedExamineVerb(args, ent.Comp, ev.Message, + Loc.GetString("surgery-tool-examinable-verb-text"), "/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/scalpel.png", + Loc.GetString("surgery-tool-examinable-verb-message")); + } + + private void OnExamined(EntityUid uid, ISurgeryToolComponent comp, ref SurgeryToolExaminedEvent args) + { + var msg = args.Message; + var color = comp.Speed switch + { + < 1f => "red", + > 1f => "green", + _ => "white" + }; + var key = "surgery-tool-" + (comp.Used == true ? "used" : "unlimited"); + var speed = comp.Speed.ToString("N2"); // 2 decimal places to not get trolled by float + msg.PushMarkup(Loc.GetString(key, ("tool", comp.ToolName), ("speed", speed), ("color", color))); + } +} + +[ByRefEvent] +public record struct SurgeryToolExaminedEvent(FormattedMessage Message); diff --git a/Content.Shared/Medical/Surgery/Tools/SurgeryToolsConditionsSystem.cs b/Content.Shared/Medical/Surgery/Tools/SurgeryToolsConditionsSystem.cs new file mode 100644 index 00000000000..4e86b764d9e --- /dev/null +++ b/Content.Shared/Medical/Surgery/Tools/SurgeryToolsConditionsSystem.cs @@ -0,0 +1,57 @@ +using Content.Shared.Item.ItemToggle.Components; +using Content.Shared.Popups; +using Content.Shared.Smoking; +using Content.Shared.Smoking.Components; +using Content.Shared.Weapons.Ranged; +using Content.Shared.Weapons.Ranged.Components; +using Content.Shared.Weapons.Ranged.Events; + +namespace Content.Shared.Medical.Surgery.Tools; + +/// +/// Prevents using esword or welder when off, laser when no charges. +/// +public sealed class SurgeryToolConditionsSystem : EntitySystem +{ + [Dependency] private readonly SharedPopupSystem _popup = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnToggleUsed); + SubscribeLocalEvent(OnGunUsed); + SubscribeLocalEvent(OnMatchUsed); + } + + private void OnToggleUsed(Entity ent, ref SurgeryToolUsedEvent args) + { + if (ent.Comp.Activated) + return; + + _popup.PopupEntity(Loc.GetString("surgery-tool-turn-on"), ent, args.User); + args.Cancelled = true; + } + + private void OnGunUsed(Entity ent, ref SurgeryToolUsedEvent args) + { + var coords = Transform(args.User).Coordinates; + var ev = new TakeAmmoEvent(1, new List<(EntityUid? Entity, IShootable Shootable)>(), coords, args.User); + if (ev.Ammo.Count > 0) + return; + + _popup.PopupEntity(Loc.GetString("surgery-tool-reload"), ent, args.User); + args.Cancelled = true; + } + + private void OnMatchUsed(Entity ent, ref SurgeryToolUsedEvent args) + { + var state = ent.Comp.CurrentState; + if (state == SmokableState.Lit) + return; + + var key = "surgery-tool-match-" + (state == SmokableState.Burnt ? "replace" : "light"); + _popup.PopupEntity(Loc.GetString(key), ent, args.User); + args.Cancelled = true; + } +} diff --git a/Content.Shared/Medical/Surgery/Tools/TendingComponent.cs b/Content.Shared/Medical/Surgery/Tools/TendingComponent.cs new file mode 100644 index 00000000000..365af320040 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Tools/TendingComponent.cs @@ -0,0 +1,15 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Tools; + +/// +/// Like Hemostat but lets ghetto tools be used differently for clamping and tending wounds. +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class TendingComponent : Component, ISurgeryToolComponent +{ + public string ToolName => "a wound tender"; + public bool? Used { get; set; } = null; + [DataField] + public float Speed { get; set; } = 1f; +} diff --git a/Content.Shared/Medical/Surgery/Tools/TweezersComponent.cs b/Content.Shared/Medical/Surgery/Tools/TweezersComponent.cs new file mode 100644 index 00000000000..6f0c8b4d294 --- /dev/null +++ b/Content.Shared/Medical/Surgery/Tools/TweezersComponent.cs @@ -0,0 +1,15 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Medical.Surgery.Tools; + +/// +/// Like Hemostat but lets ghetto tools be used differently for clamping and removing organs. +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class TweezersComponent : Component, ISurgeryToolComponent +{ + public string ToolName => "tweezers"; + public bool? Used { get; set; } = null; + [DataField] + public float Speed { get; set; } = 1f; +} diff --git a/Content.Shared/MedicalScanner/HealthAnalyzerScannedUserMessage.cs b/Content.Shared/MedicalScanner/HealthAnalyzerScannedUserMessage.cs index 08af1a36a7b..14e7c2a3fcf 100644 --- a/Content.Shared/MedicalScanner/HealthAnalyzerScannedUserMessage.cs +++ b/Content.Shared/MedicalScanner/HealthAnalyzerScannedUserMessage.cs @@ -1,3 +1,5 @@ +using Content.Shared.Targeting; +using Content.Shared.Body.Components; using Robust.Shared.Serialization; namespace Content.Shared.MedicalScanner; @@ -14,8 +16,10 @@ public sealed class HealthAnalyzerScannedUserMessage : BoundUserInterfaceMessage public bool? ScanMode; public bool? Bleeding; public bool? Unrevivable; + public Dictionary? Body; // Shitmed + public NetEntity? Part; // Shitmed - public HealthAnalyzerScannedUserMessage(NetEntity? targetEntity, float temperature, float bloodLevel, bool? scanMode, bool? bleeding, bool? unrevivable) + public HealthAnalyzerScannedUserMessage(NetEntity? targetEntity, float temperature, float bloodLevel, bool? scanMode, bool? bleeding, bool? unrevivable, Dictionary? body, NetEntity? part = null) { TargetEntity = targetEntity; Temperature = temperature; @@ -23,6 +27,16 @@ public HealthAnalyzerScannedUserMessage(NetEntity? targetEntity, float temperatu ScanMode = scanMode; Bleeding = bleeding; Unrevivable = unrevivable; + Body = body; // Shitmed + Part = part; // Shitmed } } +[Serializable, NetSerializable] +public sealed class HealthAnalyzerPartMessage(NetEntity? owner, TargetBodyPart? bodyPart) : BoundUserInterfaceMessage +{ + public readonly NetEntity? Owner = owner; + public readonly TargetBodyPart? BodyPart = bodyPart; + +} + diff --git a/Content.Shared/Mobs/Components/MobThresholdsComponent.cs b/Content.Shared/Mobs/Components/MobThresholdsComponent.cs index e97d3672a21..0e37cf9b10e 100644 --- a/Content.Shared/Mobs/Components/MobThresholdsComponent.cs +++ b/Content.Shared/Mobs/Components/MobThresholdsComponent.cs @@ -2,6 +2,7 @@ using Content.Shared.FixedPoint; using Content.Shared.Mobs.Systems; using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; using Robust.Shared.Serialization; namespace Content.Shared.Mobs.Components; @@ -24,13 +25,16 @@ public sealed partial class MobThresholdsComponent : Component /// Used for alternate health alerts (silicons, for example) /// [DataField("stateAlertDict")] - public Dictionary StateAlertDict = new() + public Dictionary> StateAlertDict = new() { - {MobState.Alive, AlertType.HumanHealth}, - {MobState.Critical, AlertType.HumanCrit}, - {MobState.Dead, AlertType.HumanDead}, + {MobState.Alive, "HumanHealth"}, + {MobState.Critical, "HumanCrit"}, + {MobState.Dead, "HumanDead"}, }; + [DataField] + public ProtoId HealthAlertCategory = "Health"; + /// /// Whether or not this entity should display damage overlays (robots don't feel pain, black out etc.) /// @@ -53,19 +57,19 @@ public sealed class MobThresholdsComponentState : ComponentState public MobState CurrentThresholdState; - public Dictionary StateAlertDict = new() - { - {MobState.Alive, AlertType.HumanHealth}, - {MobState.Critical, AlertType.HumanCrit}, - {MobState.Dead, AlertType.HumanDead}, - }; + public Dictionary> StateAlertDict; public bool ShowOverlays; public bool AllowRevives; - public MobThresholdsComponentState(Dictionary unsortedThresholds, bool triggersAlerts, MobState currentThresholdState, - Dictionary stateAlertDict, bool showOverlays, bool allowRevives) + public MobThresholdsComponentState(Dictionary unsortedThresholds, + bool triggersAlerts, + MobState currentThresholdState, + Dictionary> stateAlertDict, + bool showOverlays, + bool allowRevives) { UnsortedThresholds = unsortedThresholds; TriggersAlerts = triggersAlerts; diff --git a/Content.Shared/Mobs/Systems/MobStateSystem.StateMachine.cs b/Content.Shared/Mobs/Systems/MobStateSystem.StateMachine.cs index 2fa522dea59..b65d970eb96 100644 --- a/Content.Shared/Mobs/Systems/MobStateSystem.StateMachine.cs +++ b/Content.Shared/Mobs/Systems/MobStateSystem.StateMachine.cs @@ -1,5 +1,6 @@ using Content.Shared.Database; using Content.Shared.Mobs.Components; +using Content.Shared.Body.Organ; namespace Content.Shared.Mobs.Systems; @@ -102,6 +103,9 @@ private void ChangeState(EntityUid target, MobStateComponent component, MobState if (oldState == newState || !component.AllowedStates.Contains(newState)) return; + if (oldState == MobState.Dead && HasComp(target)) + return; + OnExitState(target, component, oldState); component.CurrentState = newState; OnEnterState(target, component, newState); diff --git a/Content.Shared/Mobs/Systems/MobStateSystem.Subscribers.cs b/Content.Shared/Mobs/Systems/MobStateSystem.Subscribers.cs index d9ef671afe2..3728813406c 100644 --- a/Content.Shared/Mobs/Systems/MobStateSystem.Subscribers.cs +++ b/Content.Shared/Mobs/Systems/MobStateSystem.Subscribers.cs @@ -1,4 +1,6 @@ using Content.Shared.Bed.Sleep; +using Content.Shared.Buckle.Components; +using Content.Shared.CCVar; using Content.Shared.CombatMode.Pacification; using Content.Shared.Damage.ForceSay; using Content.Shared.Emoting; @@ -10,25 +12,25 @@ using Content.Shared.Mobs.Components; using Content.Shared.Movement.Events; using Content.Shared.Pointing; -using Content.Shared.Projectiles; using Content.Shared.Pulling.Events; using Content.Shared.Speech; using Content.Shared.Standing; using Content.Shared.Strip.Components; using Content.Shared.Throwing; -using Content.Shared.Weapons.Ranged.Components; +using Robust.Shared.Configuration; using Robust.Shared.Physics.Components; -using Robust.Shared.Physics.Events; namespace Content.Shared.Mobs.Systems; public partial class MobStateSystem { + [Dependency] private readonly IConfigurationManager _configurationManager = default!; + //General purpose event subscriptions. If you can avoid it register these events inside their own systems private void SubscribeEvents() { SubscribeLocalEvent(OnGettingStripped); - SubscribeLocalEvent(CheckAct); + SubscribeLocalEvent(OnDirectionAttempt); SubscribeLocalEvent(CheckAct); SubscribeLocalEvent(CheckAct); SubscribeLocalEvent(CheckAct); @@ -40,12 +42,39 @@ private void SubscribeEvents() SubscribeLocalEvent(CheckAct); SubscribeLocalEvent(CheckAct); SubscribeLocalEvent(CheckAct); - SubscribeLocalEvent(CheckAct); + SubscribeLocalEvent(OnMoveAttempt); SubscribeLocalEvent(CheckAct); SubscribeLocalEvent(CheckAct); SubscribeLocalEvent(OnSleepAttempt); SubscribeLocalEvent(OnCombatModeShouldHandInteract); SubscribeLocalEvent(OnAttemptPacifiedAttack); + + SubscribeLocalEvent(OnUnbuckleAttempt); + } + + private void OnDirectionAttempt(Entity ent, ref ChangeDirectionAttemptEvent args) + { + if (ent.Comp.CurrentState is MobState.Critical && _configurationManager.GetCVar(CCVars.AllowMovementWhileCrit)) + return; + + CheckAct(ent.Owner, ent.Comp, args); + } + + private void OnMoveAttempt(Entity ent, ref UpdateCanMoveEvent args) + { + if (ent.Comp.CurrentState is MobState.Critical && _configurationManager.GetCVar(CCVars.AllowMovementWhileCrit)) + return; + + CheckAct(ent.Owner, ent.Comp, args); + } + + + private void OnUnbuckleAttempt(Entity ent, ref UnbuckleAttemptEvent args) + { + // TODO is this necessary? + // Shouldn't the interaction have already been blocked by a general interaction check? + if (args.User == ent.Owner && IsIncapacitated(ent)) + args.Cancelled = true; } private void OnStateExitSubscribers(EntityUid target, MobStateComponent component, MobState state) @@ -90,12 +119,12 @@ private void OnStateEnteredSubscribers(EntityUid target, MobStateComponent compo _appearance.SetData(target, MobStateVisuals.State, MobState.Alive); break; case MobState.Critical: - _standing.Down(target, setDrawDepth: true); + _standing.Down(target); _appearance.SetData(target, MobStateVisuals.State, MobState.Critical); break; case MobState.Dead: EnsureComp(target); - _standing.Down(target, setDrawDepth: true); + _standing.Down(target); if (_standing.IsDown(target) && TryComp(target, out var physics)) { @@ -137,6 +166,9 @@ private void OnSpeakAttempt(EntityUid uid, MobStateComponent component, SpeakAtt return; } + if (component.CurrentState is MobState.Critical && _configurationManager.GetCVar(CCVars.AllowTalkingWhileCrit)) + return; + CheckAct(uid, component, args); } diff --git a/Content.Shared/Mobs/Systems/MobThresholdSystem.cs b/Content.Shared/Mobs/Systems/MobThresholdSystem.cs index 59d9fb4c239..b11de9eac56 100644 --- a/Content.Shared/Mobs/Systems/MobThresholdSystem.cs +++ b/Content.Shared/Mobs/Systems/MobThresholdSystem.cs @@ -431,7 +431,7 @@ private void MobThresholdStartup(EntityUid target, MobThresholdsComponent thresh private void MobThresholdShutdown(EntityUid target, MobThresholdsComponent component, ComponentShutdown args) { if (component.TriggersAlerts) - _alerts.ClearAlertCategory(target, AlertCategory.Health); + _alerts.ClearAlertCategory(target, component.HealthAlertCategory); } private void OnUpdateMobState(EntityUid target, MobThresholdsComponent component, ref UpdateMobStateEvent args) diff --git a/Content.Shared/Movement/Pulling/Components/PullableComponent.cs b/Content.Shared/Movement/Pulling/Components/PullableComponent.cs index 01ce0efaae6..9d342fec3cf 100644 --- a/Content.Shared/Movement/Pulling/Components/PullableComponent.cs +++ b/Content.Shared/Movement/Pulling/Components/PullableComponent.cs @@ -1,4 +1,6 @@ +using Content.Shared.Alert; using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; namespace Content.Shared.Movement.Pulling.Components; @@ -43,4 +45,6 @@ public sealed partial class PullableComponent : Component /// [DataField, AutoNetworkedField] public bool BeingActivelyPushed = false; + [DataField] + public ProtoId PulledAlert = "Pulled"; } diff --git a/Content.Shared/Movement/Pulling/Components/PullerComponent.cs b/Content.Shared/Movement/Pulling/Components/PullerComponent.cs index 648f06086ba..80a12be690a 100644 --- a/Content.Shared/Movement/Pulling/Components/PullerComponent.cs +++ b/Content.Shared/Movement/Pulling/Components/PullerComponent.cs @@ -1,6 +1,8 @@ -using Content.Shared.Movement.Pulling.Systems; +using Content.Shared.Alert; +using Content.Shared.Movement.Pulling.Systems; using Robust.Shared.GameStates; using Robust.Shared.Map; +using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Shared.Movement.Pulling.Components; @@ -64,4 +66,6 @@ public sealed partial class PullerComponent : Component /// [DataField] public float MaxPushRange = 2f; + [DataField] + public ProtoId PullingAlert = "Pulling"; } diff --git a/Content.Shared/Movement/Pulling/Events/PullStartedMessage.cs b/Content.Shared/Movement/Pulling/Events/PullStartedMessage.cs index 29460e1dfc1..c0775b4ce2d 100644 --- a/Content.Shared/Movement/Pulling/Events/PullStartedMessage.cs +++ b/Content.Shared/Movement/Pulling/Events/PullStartedMessage.cs @@ -1,9 +1,6 @@ namespace Content.Shared.Movement.Pulling.Events; -public sealed class PullStartedMessage : PullMessage -{ - public PullStartedMessage(EntityUid pullerUid, EntityUid pullableUid) : - base(pullerUid, pullableUid) - { - } -} +/// +/// Event raised directed BOTH at the puller and pulled entity when a pull starts. +/// +public sealed class PullStartedMessage(EntityUid pullerUid, EntityUid pullableUid) : PullMessage(pullerUid, pullableUid); diff --git a/Content.Shared/Movement/Pulling/Events/PullStoppedMessage.cs b/Content.Shared/Movement/Pulling/Events/PullStoppedMessage.cs index 47aa34562fb..6df4d174839 100644 --- a/Content.Shared/Movement/Pulling/Events/PullStoppedMessage.cs +++ b/Content.Shared/Movement/Pulling/Events/PullStoppedMessage.cs @@ -1,13 +1,6 @@ -using Robust.Shared.Physics.Components; - -namespace Content.Shared.Movement.Pulling.Events; +namespace Content.Shared.Movement.Pulling.Events; /// -/// Raised directed on both puller and pullable. +/// Event raised directed BOTH at the puller and pulled entity when a pull starts. /// -public sealed class PullStoppedMessage : PullMessage -{ - public PullStoppedMessage(EntityUid pullerUid, EntityUid pulledUid) : base(pullerUid, pulledUid) - { - } -} +public sealed class PullStoppedMessage(EntityUid pullerUid, EntityUid pulledUid) : PullMessage(pullerUid, pulledUid); diff --git a/Content.Shared/Movement/Pulling/Systems/PullingSystem.cs b/Content.Shared/Movement/Pulling/Systems/PullingSystem.cs index 4bf53c8dbdd..f766e55211f 100644 --- a/Content.Shared/Movement/Pulling/Systems/PullingSystem.cs +++ b/Content.Shared/Movement/Pulling/Systems/PullingSystem.cs @@ -1,3 +1,4 @@ +using System.Diagnostics.CodeAnalysis; using System.Numerics; using Content.Shared.ActionBlocker; using Content.Shared.Administration.Logs; @@ -17,7 +18,6 @@ using Content.Shared.Projectiles; using Content.Shared.Pulling.Events; using Content.Shared.Standing; -using Content.Shared.Throwing; using Content.Shared.Verbs; using Robust.Shared.Containers; using Robust.Shared.Input.Binding; @@ -29,6 +29,8 @@ using Robust.Shared.Physics.Systems; using Robust.Shared.Player; using Robust.Shared.Timing; +using Content.Shared.Throwing; +using System.Numerics; namespace Content.Shared.Movement.Pulling.Systems; @@ -73,11 +75,25 @@ public override void Initialize() SubscribeLocalEvent(OnRefreshMovespeed); SubscribeLocalEvent(OnDropHandItems); + SubscribeLocalEvent(OnBuckled); + SubscribeLocalEvent(OnGotBuckled); + CommandBinds.Builder .Bind(ContentKeyFunctions.MovePulledObject, new PointerInputCmdHandler(OnRequestMovePulledObject)) .Bind(ContentKeyFunctions.ReleasePulledObject, InputCmdHandler.FromDelegate(OnReleasePulledObject, handle: false)) .Register(); } + private void OnBuckled(Entity ent, ref StrappedEvent args) + { + // Prevent people from pulling the entity they are buckled to + if (ent.Comp.Puller == args.Buckle.Owner && !args.Buckle.Comp.PullStrap) + StopPulling(ent, ent); + } + + private void OnGotBuckled(Entity ent, ref BuckledEvent args) + { + StopPulling(ent, ent); + } public override void Shutdown() { @@ -174,7 +190,8 @@ private void OnDropHandItems(EntityUid uid, PullerComponent pullerComp, DropHand private void OnPullerContainerInsert(Entity ent, ref EntGotInsertedIntoContainerMessage args) { - if (ent.Comp.Pulling == null) return; + if (ent.Comp.Pulling == null) + return; if (!TryComp(ent.Comp.Pulling.Value, out PullableComponent? pulling)) return; @@ -307,8 +324,18 @@ private void OnJointRemoved(EntityUid uid, PullableComponent component, JointRem /// private void StopPulling(EntityUid pullableUid, PullableComponent pullableComp) { + if (pullableComp.Puller == null) + return; + if (!_timing.ApplyingState) { + // Joint shutdown + if (pullableComp.PullJointId != null) + { + _joints.RemoveJoint(pullableUid, pullableComp.PullJointId); + pullableComp.PullJointId = null; + } + if (TryComp(pullableUid, out var pullablePhysics)) { _physics.SetFixedRotation(pullableUid, pullableComp.PrevFixedRotation, body: pullablePhysics); @@ -325,7 +352,7 @@ private void StopPulling(EntityUid pullableUid, PullableComponent pullableComp) if (TryComp(oldPuller, out var pullerComp)) { var pullerUid = oldPuller.Value; - _alertsSystem.ClearAlert(pullerUid, AlertType.Pulling); + _alertsSystem.ClearAlert(pullerUid, pullerComp.PullingAlert); pullerComp.Pulling = null; Dirty(oldPuller.Value, pullerComp); @@ -339,7 +366,7 @@ private void StopPulling(EntityUid pullableUid, PullableComponent pullableComp) } - _alertsSystem.ClearAlert(pullableUid, AlertType.Pulled); + _alertsSystem.ClearAlert(pullableUid, pullableComp.PulledAlert); } public bool IsPulled(EntityUid uid, PullableComponent? component = null) @@ -380,6 +407,16 @@ private bool OnRequestMovePulledObject(ICommonSession? session, EntityCoordinate return false; } + public bool TryGetPulledEntity(EntityUid puller, [NotNullWhen(true)] out EntityUid? pulling, PullerComponent? component = null) + { + pulling = null; + if (!Resolve(puller, ref component, false) || !component.Pulling.HasValue) + return false; + + pulling = component.Pulling; + return true; + } + public bool IsPulling(EntityUid puller, PullerComponent? component = null) { return Resolve(puller, ref component, false) && component.Pulling != null; @@ -440,15 +477,6 @@ public bool CanPull(EntityUid puller, EntityUid pullableUid, PullerComponent? pu return false; } - if (EntityManager.TryGetComponent(puller, out BuckleComponent? buckle)) - { - // Prevent people pulling the chair they're on, etc. - if (buckle is { PullStrap: false, Buckled: true } && (buckle.LastEntityBuckledTo == pullableUid)) - { - return false; - } - } - var getPulled = new BeingPulledAttemptEvent(puller, pullableUid); RaiseLocalEvent(pullableUid, getPulled, true); var startPull = new StartPullAttemptEvent(puller, pullableUid); @@ -492,11 +520,8 @@ public bool TryStartPull(EntityUid pullerUid, EntityUid pullableUid, if (!CanPull(pullerUid, pullableUid)) return false; - if (!EntityManager.TryGetComponent(pullerUid, out var pullerPhysics) || - !EntityManager.TryGetComponent(pullableUid, out var pullablePhysics)) - { + if (!HasComp(pullerUid) || !TryComp(pullableUid, out PhysicsComponent? pullablePhysics)) return false; - } // Ensure that the puller is not currently pulling anything. if (TryComp(pullerComp.Pulling, out var oldPullable) @@ -540,7 +565,7 @@ public bool TryStartPull(EntityUid pullerUid, EntityUid pullableUid, { // Joint startup var union = _physics.GetHardAABB(pullerUid).Union(_physics.GetHardAABB(pullableUid, body: pullablePhysics)); - var length = Math.Max((float) union.Size.X, (float) union.Size.Y) * 0.75f; + var length = Math.Max(union.Size.X, union.Size.Y) * 0.75f; var joint = _joints.CreateDistanceJoint(pullableUid, pullerUid, id: pullableComp.PullJointId); joint.CollideConnected = false; @@ -557,8 +582,8 @@ public bool TryStartPull(EntityUid pullerUid, EntityUid pullableUid, // Messaging var message = new PullStartedMessage(pullerUid, pullableUid); - _alertsSystem.ShowAlert(pullerUid, AlertType.Pulling); - _alertsSystem.ShowAlert(pullableUid, AlertType.Pulled); + _alertsSystem.ShowAlert(pullerUid, pullerComp.PullingAlert); + _alertsSystem.ShowAlert(pullableUid, pullableComp.PulledAlert); RaiseLocalEvent(pullerUid, message); RaiseLocalEvent(pullableUid, message); @@ -571,8 +596,11 @@ public bool TryStartPull(EntityUid pullerUid, EntityUid pullableUid, return true; } - public bool TryStopPull(EntityUid pullableUid, PullableComponent pullable, EntityUid? user = null) + public bool TryStopPull(EntityUid pullableUid, PullableComponent? pullable = null, EntityUid? user = null) { + if (!Resolve(pullableUid, ref pullable, false)) + return false; + var pullerUidNull = pullable.Puller; if (pullerUidNull == null) @@ -584,17 +612,6 @@ public bool TryStopPull(EntityUid pullableUid, PullableComponent pullable, Entit if (msg.Cancelled) return false; - // Stop pulling confirmed! - if (!_timing.ApplyingState) - { - // Joint shutdown - if (pullable.PullJointId != null) - { - _joints.RemoveJoint(pullableUid, pullable.PullJointId); - pullable.PullJointId = null; - } - } - StopPulling(pullableUid, pullable); return true; } diff --git a/Content.Shared/Movement/Systems/SharedMoverController.Input.cs b/Content.Shared/Movement/Systems/SharedMoverController.Input.cs index 1c097ce17bc..2ea60155570 100644 --- a/Content.Shared/Movement/Systems/SharedMoverController.Input.cs +++ b/Content.Shared/Movement/Systems/SharedMoverController.Input.cs @@ -305,8 +305,11 @@ private void HandleDirChange(EntityUid entity, Direction dir, ushort subTick, bo if (MoverQuery.TryGetComponent(entity, out var mover)) SetMoveInput(mover, MoveButtons.None); - if (!_mobState.IsIncapacitated(entity)) - HandleDirChange(relayMover.RelayEntity, dir, subTick, state); + if (_mobState.IsDead(entity) + || _mobState.IsCritical(entity) && !_configManager.GetCVar(CCVars.AllowMovementWhileCrit)) + return; + + HandleDirChange(relayMover.RelayEntity, dir, subTick, state); return; } diff --git a/Content.Shared/Movement/Systems/SharedMoverController.cs b/Content.Shared/Movement/Systems/SharedMoverController.cs index 00afa3a4fb8..46ee949a4e2 100644 --- a/Content.Shared/Movement/Systems/SharedMoverController.cs +++ b/Content.Shared/Movement/Systems/SharedMoverController.cs @@ -125,9 +125,10 @@ protected void HandleMobMovement( var canMove = mover.CanMove; if (RelayTargetQuery.TryGetComponent(uid, out var relayTarget)) { - if (_mobState.IsIncapacitated(relayTarget.Source) || - TryComp(relayTarget.Source, out _) || - !MoverQuery.TryGetComponent(relayTarget.Source, out var relayedMover)) + if (_mobState.IsDead(relayTarget.Source) + || TryComp(relayTarget.Source, out _) + || !MoverQuery.TryGetComponent(relayTarget.Source, out var relayedMover) + || _mobState.IsCritical(relayTarget.Source) && !_configManager.GetCVar(CCVars.AllowMovementWhileCrit)) { canMove = false; } @@ -296,7 +297,7 @@ protected void HandleMobMovement( private void WalkingAlert(EntityUid player, InputMoverComponent component) { - _alerts.ShowAlert(player, AlertType.Walking, component.Sprinting ? (short) 1 : (short) 0); + _alerts.ShowAlert(player, component.WalkingAlert, component.Sprinting ? (short) 1 : (short) 0); } public void LerpRotation(EntityUid uid, InputMoverComponent mover, float frameTime) diff --git a/Content.Shared/Movement/Systems/SpeedModifierContactsSystem.cs b/Content.Shared/Movement/Systems/SpeedModifierContactsSystem.cs index f9f6b82bb18..400a675cd25 100644 --- a/Content.Shared/Movement/Systems/SpeedModifierContactsSystem.cs +++ b/Content.Shared/Movement/Systems/SpeedModifierContactsSystem.cs @@ -58,7 +58,7 @@ public void ChangeModifiers(EntityUid uid, float walkSpeed, float sprintSpeed, S } component.WalkSpeedModifier = walkSpeed; component.SprintSpeedModifier = sprintSpeed; - Dirty(component); + Dirty(uid, component); _toUpdate.UnionWith(_physics.GetContactingEntities(uid)); } diff --git a/Content.Shared/Ninja/Components/SpaceNinjaComponent.cs b/Content.Shared/Ninja/Components/SpaceNinjaComponent.cs index 0f3bff265cb..91c816df5c9 100644 --- a/Content.Shared/Ninja/Components/SpaceNinjaComponent.cs +++ b/Content.Shared/Ninja/Components/SpaceNinjaComponent.cs @@ -1,3 +1,4 @@ +using Content.Shared.Alert; using Content.Shared.Ninja.Systems; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; @@ -53,4 +54,7 @@ public sealed partial class SpaceNinjaComponent : Component /// [DataField] public EntProtoId SpiderChargeObjective = "SpiderChargeObjective"; + + [DataField] + public ProtoId SuitPowerAlert = "SuitPower"; } diff --git a/Content.Shared/Nutrition/Components/HungerComponent.cs b/Content.Shared/Nutrition/Components/HungerComponent.cs index 9ac82ba283c..79d895ddae6 100644 --- a/Content.Shared/Nutrition/Components/HungerComponent.cs +++ b/Content.Shared/Nutrition/Components/HungerComponent.cs @@ -2,6 +2,7 @@ using Content.Shared.Damage; using Content.Shared.Nutrition.EntitySystems; using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; using Robust.Shared.Serialization; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; using Robust.Shared.Serialization.TypeSerializers.Implementations.Generic; @@ -65,15 +66,18 @@ public sealed partial class HungerComponent : Component /// /// A dictionary relating hunger thresholds to corresponding alerts. /// - [DataField("hungerThresholdAlerts", customTypeSerializer: typeof(DictionarySerializer))] + [DataField("hungerThresholdAlerts")] [AutoNetworkedField] - public Dictionary HungerThresholdAlerts = new() + public Dictionary> HungerThresholdAlerts = new() { - { HungerThreshold.Peckish, AlertType.Peckish }, - { HungerThreshold.Starving, AlertType.Starving }, - { HungerThreshold.Dead, AlertType.Starving } + { HungerThreshold.Peckish, "Peckish" }, + { HungerThreshold.Starving, "Starving" }, + { HungerThreshold.Dead, "Starving" } }; + [DataField] + public ProtoId HungerAlertCategory = "Hunger"; + /// /// A dictionary relating HungerThreshold to how much they modify . /// diff --git a/Content.Shared/Nutrition/Components/ThirstComponent.cs b/Content.Shared/Nutrition/Components/ThirstComponent.cs index 731346401fd..f3ac881361f 100644 --- a/Content.Shared/Nutrition/Components/ThirstComponent.cs +++ b/Content.Shared/Nutrition/Components/ThirstComponent.cs @@ -1,6 +1,7 @@ using Content.Shared.Alert; using Content.Shared.Nutrition.EntitySystems; using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Shared.Nutrition.Components; @@ -56,11 +57,14 @@ public sealed partial class ThirstComponent : Component {ThirstThreshold.Dead, 0.0f}, }; - public static readonly Dictionary ThirstThresholdAlertTypes = new() + [DataField] + public ProtoId ThirstyCategory = "Thirst"; + + public static readonly Dictionary> ThirstThresholdAlertTypes = new() { - {ThirstThreshold.Thirsty, AlertType.Thirsty}, - {ThirstThreshold.Parched, AlertType.Parched}, - {ThirstThreshold.Dead, AlertType.Parched}, + {ThirstThreshold.Thirsty, "Thirsty"}, + {ThirstThreshold.Parched, "Parched"}, + {ThirstThreshold.Dead, "Parched"}, }; } diff --git a/Content.Shared/Nutrition/EntitySystems/HungerSystem.cs b/Content.Shared/Nutrition/EntitySystems/HungerSystem.cs index e6d82553336..6535390d646 100644 --- a/Content.Shared/Nutrition/EntitySystems/HungerSystem.cs +++ b/Content.Shared/Nutrition/EntitySystems/HungerSystem.cs @@ -67,7 +67,7 @@ private void OnMapInit(EntityUid uid, HungerComponent component, MapInitEvent ar private void OnShutdown(EntityUid uid, HungerComponent component, ComponentShutdown args) { - _alerts.ClearAlertCategory(uid, AlertCategory.Hunger); + _alerts.ClearAlertCategory(uid, component.HungerAlertCategory); } private void OnRefreshMovespeed(EntityUid uid, HungerComponent component, RefreshMovementSpeedModifiersEvent args) @@ -112,7 +112,7 @@ public void SetHunger(EntityUid uid, float amount, HungerComponent? component = component.Thresholds[HungerThreshold.Dead], component.Thresholds[HungerThreshold.Overfed]); UpdateCurrentThreshold(uid, component); - Dirty(component); + Dirty(uid, component); } private void UpdateCurrentThreshold(EntityUid uid, HungerComponent? component = null) @@ -125,7 +125,7 @@ private void UpdateCurrentThreshold(EntityUid uid, HungerComponent? component = return; component.CurrentThreshold = calculatedHungerThreshold; DoHungerThresholdEffects(uid, component); - Dirty(component); + Dirty(uid, component); } private void DoHungerThresholdEffects(EntityUid uid, HungerComponent? component = null, bool force = false) @@ -153,7 +153,7 @@ private void DoHungerThresholdEffects(EntityUid uid, HungerComponent? component } else { - _alerts.ClearAlertCategory(uid, AlertCategory.Hunger); + _alerts.ClearAlertCategory(uid, component.HungerAlertCategory); } if (component.HungerThresholdDecayModifiers.TryGetValue(component.CurrentThreshold, out var modifier)) diff --git a/Content.Shared/Nutrition/EntitySystems/ThirstSystem.cs b/Content.Shared/Nutrition/EntitySystems/ThirstSystem.cs index a068b19104c..4ff49e795c2 100644 --- a/Content.Shared/Nutrition/EntitySystems/ThirstSystem.cs +++ b/Content.Shared/Nutrition/EntitySystems/ThirstSystem.cs @@ -171,7 +171,7 @@ private void UpdateEffects(EntityUid uid, ThirstComponent component) } else { - _alerts.ClearAlertCategory(uid, AlertCategory.Thirst); + _alerts.ClearAlertCategory(uid, component.ThirstyCategory); } var ev = new MoodEffectEvent("Thirst" + component.CurrentThirstThreshold); diff --git a/Content.Shared/Nyanotrasen/Kitchen/SharedDeepfryerSystem.cs b/Content.Shared/Nyanotrasen/Kitchen/SharedDeepfryerSystem.cs index efc177de916..e12d57d7075 100644 --- a/Content.Shared/Nyanotrasen/Kitchen/SharedDeepfryerSystem.cs +++ b/Content.Shared/Nyanotrasen/Kitchen/SharedDeepfryerSystem.cs @@ -1,5 +1,34 @@ -namespace Content.Shared.Nyanotrasen.Kitchen; +using Content.Shared.DragDrop; +using Robust.Shared.Physics.Components; +using Robust.Shared.Physics.Events; +using Robust.Shared.Physics.Systems; +using Content.Shared.Nyanotrasen.Kitchen.Components; +using Content.Shared.Item; +using Content.Shared.Body.Components; + +namespace Content.Shared.Nyanotrasen.Kitchen; public abstract class SharedDeepfryerSystem : EntitySystem { + protected void OnCanDragDropOn(EntityUid uid, SharedDeepFryerComponent component, ref CanDropTargetEvent args) + { + if (args.Handled) + return; + + args.CanDrop = CanInsert(uid, args.Dragged); + args.Handled = true; + } + + public virtual bool CanInsert(EntityUid uid, EntityUid entity) + { + if (!Transform(uid).Anchored + || !TryComp(entity, out PhysicsComponent? physics)) + return false; + + var storable = HasComp(entity); + if (!storable && !HasComp(entity)) + return false; + + return physics.CanCollide || storable; + } } diff --git a/Content.Shared/OfferItem/OfferItemComponent.cs b/Content.Shared/OfferItem/OfferItemComponent.cs index eb4d84932e5..f9f55291ddc 100644 --- a/Content.Shared/OfferItem/OfferItemComponent.cs +++ b/Content.Shared/OfferItem/OfferItemComponent.cs @@ -1,4 +1,6 @@ using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; +using Content.Shared.Alert; namespace Content.Shared.OfferItem; @@ -23,4 +25,7 @@ public sealed partial class OfferItemComponent : Component [DataField] public float MaxOfferDistance = 2f; + + [DataField] + public ProtoId OfferAlert = "Offer"; } diff --git a/Content.Shared/Overlays/ShowHealthBarsComponent.cs b/Content.Shared/Overlays/ShowHealthBarsComponent.cs index 48e3162269a..ed9ce4b7653 100644 --- a/Content.Shared/Overlays/ShowHealthBarsComponent.cs +++ b/Content.Shared/Overlays/ShowHealthBarsComponent.cs @@ -7,12 +7,12 @@ namespace Content.Shared.Overlays; /// /// This component allows you to see health bars above damageable mobs. /// -[RegisterComponent, NetworkedComponent] +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class ShowHealthBarsComponent : Component { /// /// Displays health bars of the damage containers. /// - [DataField("damageContainers", customTypeSerializer: typeof(PrototypeIdListSerializer))] + [DataField("damageContainers", customTypeSerializer: typeof(PrototypeIdListSerializer)), AutoNetworkedField] public List DamageContainers = new(); } diff --git a/Content.Shared/Overlays/ShowHealthIconsComponent.cs b/Content.Shared/Overlays/ShowHealthIconsComponent.cs index c2526c2f401..b212b77289e 100644 --- a/Content.Shared/Overlays/ShowHealthIconsComponent.cs +++ b/Content.Shared/Overlays/ShowHealthIconsComponent.cs @@ -7,12 +7,12 @@ namespace Content.Shared.Overlays; /// /// This component allows you to see health status icons above damageable mobs. /// -[RegisterComponent, NetworkedComponent] +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class ShowHealthIconsComponent : Component { /// /// Displays health status icons of the damage containers. /// - [DataField("damageContainers", customTypeSerializer: typeof(PrototypeIdListSerializer))] + [DataField("damageContainers", customTypeSerializer: typeof(PrototypeIdListSerializer)), AutoNetworkedField] public List DamageContainers = new(); } diff --git a/Content.Shared/PAI/PAIComponent.cs b/Content.Shared/PAI/PAIComponent.cs index b4e4c927354..9d5be302758 100644 --- a/Content.Shared/PAI/PAIComponent.cs +++ b/Content.Shared/PAI/PAIComponent.cs @@ -31,7 +31,7 @@ public sealed partial class PAIComponent : Component public EntityUid? MidiAction; [DataField] - public ProtoId MapActionId = "ActionPAIOpenMap"; + public EntProtoId MapActionId = "ActionPAIOpenMap"; [DataField, AutoNetworkedField] public EntityUid? MapAction; diff --git a/Content.Shared/Paint/PaintComponent.cs b/Content.Shared/Paint/PaintComponent.cs new file mode 100644 index 00000000000..dc35b8fd438 --- /dev/null +++ b/Content.Shared/Paint/PaintComponent.cs @@ -0,0 +1,46 @@ +using Content.Shared.Chemistry.Reagent; +using Content.Shared.FixedPoint; +using Robust.Shared.Audio; +using Content.Shared.Whitelist; +using Robust.Shared.Prototypes; +using Robust.Shared.GameStates; + +namespace Content.Shared.Paint; + +/// Entity when used on another entity will paint target entity +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +[Access(typeof(SharedPaintSystem))] +public sealed partial class PaintComponent : Component +{ + /// Noise made when paint gets applied + [DataField] + public SoundSpecifier Spray = new SoundPathSpecifier("/Audio/Effects/spray2.ogg"); + + [DataField, ViewVariables(VVAccess.ReadWrite)] + public EntityWhitelist? Whitelist; + + [DataField, ViewVariables(VVAccess.ReadWrite)] + public EntityWhitelist? Blacklist; + + /// How long the doafter will take + [DataField] + public int Delay = 2; + + [DataField, AutoNetworkedField] + public Color Color = Color.FromHex("#c62121"); + + /// Solution on the entity that contains the paint + [DataField] + public string Solution = "drink"; + + /// Reagent that will be used as paint + [DataField, AutoNetworkedField] + public ProtoId Reagent = "SpaceGlue"; + + /// Reagent consumption per use + [DataField] + public FixedPoint2 ConsumptionUnit = FixedPoint2.New(5); + + [DataField] + public TimeSpan DurationPerUnit = TimeSpan.FromSeconds(6); +} diff --git a/Content.Shared/Paint/PaintDoAfterEvent.cs b/Content.Shared/Paint/PaintDoAfterEvent.cs new file mode 100644 index 00000000000..a6f7b951ec4 --- /dev/null +++ b/Content.Shared/Paint/PaintDoAfterEvent.cs @@ -0,0 +1,7 @@ +using Content.Shared.DoAfter; +using Robust.Shared.Serialization; + +namespace Content.Shared.Paint; + +[Serializable, NetSerializable] +public sealed partial class PaintDoAfterEvent : SimpleDoAfterEvent; diff --git a/Content.Shared/Paint/PaintRemoverComponent.cs b/Content.Shared/Paint/PaintRemoverComponent.cs new file mode 100644 index 00000000000..9fee3c90cb7 --- /dev/null +++ b/Content.Shared/Paint/PaintRemoverComponent.cs @@ -0,0 +1,17 @@ +using Robust.Shared.GameStates; +using Robust.Shared.Audio; + +namespace Content.Shared.Paint; + +/// Removes paint from an entity that was painted with spray paint +[RegisterComponent, NetworkedComponent] +[Access(typeof(PaintRemoverSystem))] +public sealed partial class PaintRemoverComponent : Component +{ + /// Sound played when target is cleaned + [DataField] + public SoundSpecifier Sound = new SoundPathSpecifier("/Audio/Effects/Fluids/watersplash.ogg"); + + [DataField] + public float CleanDelay = 2f; +} diff --git a/Content.Shared/Paint/PaintRemoverDoAfterEvent.cs b/Content.Shared/Paint/PaintRemoverDoAfterEvent.cs new file mode 100644 index 00000000000..ec2a2e0324a --- /dev/null +++ b/Content.Shared/Paint/PaintRemoverDoAfterEvent.cs @@ -0,0 +1,7 @@ +using Content.Shared.DoAfter; +using Robust.Shared.Serialization; + +namespace Content.Shared.Paint; + +[Serializable, NetSerializable] +public sealed partial class PaintRemoverDoAfterEvent : SimpleDoAfterEvent; diff --git a/Content.Shared/Paint/PaintRemoverSystem.cs b/Content.Shared/Paint/PaintRemoverSystem.cs new file mode 100644 index 00000000000..e2565e0f220 --- /dev/null +++ b/Content.Shared/Paint/PaintRemoverSystem.cs @@ -0,0 +1,96 @@ +using Content.Shared.Popups; +using Content.Shared.Interaction; +using Content.Shared.DoAfter; +using Content.Shared.Verbs; +using Content.Shared.Sprite; +using Robust.Shared.Audio.Systems; +using Robust.Shared.Timing; + +namespace Content.Shared.Paint; + +public sealed class PaintRemoverSystem : SharedPaintSystem +{ + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly SharedAppearanceSystem _appearanceSystem = default!; + + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnInteract); + SubscribeLocalEvent(OnDoAfter); + SubscribeLocalEvent>(OnPaintRemoveVerb); + } + + + private void OnInteract(EntityUid uid, PaintRemoverComponent component, AfterInteractEvent args) + { + if (args.Handled + || !args.CanReach + || args.Target is not { Valid: true } target + || !HasComp(target)) + return; + + _doAfter.TryStartDoAfter(new DoAfterArgs(EntityManager, args.User, component.CleanDelay, new PaintRemoverDoAfterEvent(), uid, args.Target, uid) + { + BreakOnUserMove = true, + BreakOnTargetMove = true, + BreakOnDamage = true, + MovementThreshold = 1.0f, + }); + args.Handled = true; + } + + private void OnDoAfter(EntityUid uid, PaintRemoverComponent component, DoAfterEvent args) + { + if (args.Cancelled + || args.Handled + || args.Args.Target == null + || args.Target is not { Valid: true } target + || !TryComp(target, out PaintedComponent? paint)) + return; + + paint.Enabled = false; + _audio.PlayPredicted(component.Sound, target, args.User); + _popup.PopupClient(Loc.GetString("paint-removed", ("target", target)), args.User, args.User, PopupType.Medium); + _appearanceSystem.SetData(target, PaintVisuals.Painted, false); + RemComp(target); + Dirty(target, paint); + + args.Handled = true; + } + + private void OnPaintRemoveVerb(EntityUid uid, PaintRemoverComponent component, GetVerbsEvent args) + { + if (!args.CanInteract || !args.CanAccess) + return; + + var verb = new UtilityVerb() + { + Text = Loc.GetString("paint-remove-verb"), + Act = () => + { + _doAfter.TryStartDoAfter( + new DoAfterArgs( + EntityManager, + args.User, + component.CleanDelay, + new PaintRemoverDoAfterEvent(), + uid, + args.Target, + uid) + { + BreakOnUserMove = true, + BreakOnTargetMove = true, + BreakOnDamage = true, + MovementThreshold = 1.0f, + }); + }, + }; + + args.Verbs.Add(verb); + } +} diff --git a/Content.Shared/Paint/PaintedComponent.cs b/Content.Shared/Paint/PaintedComponent.cs new file mode 100644 index 00000000000..3d2deee45e3 --- /dev/null +++ b/Content.Shared/Paint/PaintedComponent.cs @@ -0,0 +1,29 @@ +using Robust.Shared.GameStates; +using Robust.Shared.Serialization; + +namespace Content.Shared.Paint; + +/// Component applied to target entity when painted +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class PaintedComponent : Component +{ + [DataField, AutoNetworkedField] + public Color Color = Color.FromHex("#2cdbd5"); + + /// Used to remove the color when the component is removed + [DataField, AutoNetworkedField] + public Color BeforeColor; + + [DataField, AutoNetworkedField] + public bool Enabled; + + // Not using ProtoId because ShaderPrototype is in Robust.Client + [DataField, AutoNetworkedField] + public string ShaderName = "Greyscale"; +} + +[Serializable, NetSerializable] +public enum PaintVisuals : byte +{ + Painted, +} diff --git a/Content.Shared/Paint/SharedPaintSystem.cs b/Content.Shared/Paint/SharedPaintSystem.cs new file mode 100644 index 00000000000..4707e942777 --- /dev/null +++ b/Content.Shared/Paint/SharedPaintSystem.cs @@ -0,0 +1,6 @@ +namespace Content.Shared.Paint; + +public abstract class SharedPaintSystem : EntitySystem +{ + public virtual void UpdateAppearance(EntityUid uid, PaintedComponent? component = null) { } +} diff --git a/Content.Shared/Physics/Controllers/SharedConveyorController.cs b/Content.Shared/Physics/Controllers/SharedConveyorController.cs index c9ec77ba1c9..e3b22d84319 100644 --- a/Content.Shared/Physics/Controllers/SharedConveyorController.cs +++ b/Content.Shared/Physics/Controllers/SharedConveyorController.cs @@ -101,10 +101,10 @@ private void Convey(EntityUid uid, ConveyorComponent comp, EntityQuery [ViewVariables] public Dictionary Beacons = new(); + + /// + /// Describes the properties of a region on the station. + /// It is indexed by the entity assigned as the region owner. + /// + [ViewVariables(VVAccess.ReadOnly)] + public Dictionary RegionProperties = new(); + + /// + /// All flood filled regions, ready for display on a NavMapControl. + /// It is indexed by the entity assigned as the region owner. + /// + /// + /// For client use only + /// + [ViewVariables(VVAccess.ReadOnly)] + public Dictionary RegionOverlays = new(); + + /// + /// A queue of all region owners that are waiting their associated regions to be floodfilled. + /// + /// + /// For client use only + /// + [ViewVariables(VVAccess.ReadOnly)] + public Queue QueuedRegionsToFlood = new(); + + /// + /// A look up table to get a list of region owners associated with a flood filled chunk. + /// + /// + /// For client use only + /// + [ViewVariables(VVAccess.ReadOnly)] + public Dictionary> ChunkToRegionOwnerTable = new(); + + /// + /// A look up table to find flood filled chunks associated with a given region owner. + /// + /// + /// For client use only + /// + [ViewVariables(VVAccess.ReadOnly)] + public Dictionary> RegionOwnerToChunkTable = new(); } [Serializable, NetSerializable] @@ -51,10 +95,30 @@ public sealed class NavMapChunk(Vector2i origin) public GameTick LastUpdate; } +[Serializable, NetSerializable] +public sealed class NavMapRegionOverlay(Enum uiKey, List<(Vector2i, Vector2i)> gridCoords) +{ + /// + /// The key to the UI that will be displaying this region on its navmap + /// + public Enum UiKey = uiKey; + + /// + /// The local grid coordinates of the rectangles that make up the region + /// Item1 is the top left corner, Item2 is the bottom right corner + /// + public List<(Vector2i, Vector2i)> GridCoords = gridCoords; + + /// + /// Color of the region + /// + public Color Color = Color.White; +} + public enum NavMapChunkType : byte { // Values represent bit shift offsets when retrieving data in the tile array. - Invalid = byte.MaxValue, + Invalid = byte.MaxValue, Floor = 0, // I believe floors have directional information for diagonal tiles? Wall = SharedNavMapSystem.Directions, Airlock = 2 * SharedNavMapSystem.Directions, diff --git a/Content.Shared/Pinpointer/SharedNavMapSystem.cs b/Content.Shared/Pinpointer/SharedNavMapSystem.cs index 7c12321b5db..8575d121f39 100644 --- a/Content.Shared/Pinpointer/SharedNavMapSystem.cs +++ b/Content.Shared/Pinpointer/SharedNavMapSystem.cs @@ -3,9 +3,9 @@ using System.Runtime.CompilerServices; using Content.Shared.Tag; using Robust.Shared.GameStates; +using Robust.Shared.Network; +using Robust.Shared.Prototypes; using Robust.Shared.Serialization; -using Robust.Shared.Timing; -using Robust.Shared.Utility; namespace Content.Shared.Pinpointer; @@ -15,7 +15,7 @@ public abstract class SharedNavMapSystem : EntitySystem public const int Directions = 4; // Not directly tied to number of atmos directions public const int ChunkSize = 8; - public const int ArraySize = ChunkSize* ChunkSize; + public const int ArraySize = ChunkSize * ChunkSize; public const int AllDirMask = (1 << Directions) - 1; public const int AirlockMask = AllDirMask << (int) NavMapChunkType.Airlock; @@ -23,6 +23,7 @@ public abstract class SharedNavMapSystem : EntitySystem public const int FloorMask = AllDirMask << (int) NavMapChunkType.Floor; [Robust.Shared.IoC.Dependency] private readonly TagSystem _tagSystem = default!; + [Robust.Shared.IoC.Dependency] private readonly INetManager _net = default!; private readonly string[] _wallTags = ["Wall", "Window"]; private EntityQuery _doorQuery; @@ -56,7 +57,7 @@ public static Vector2i GetTileFromIndex(int index) public NavMapChunkType GetEntityType(EntityUid uid) { if (_doorQuery.HasComp(uid)) - return NavMapChunkType.Airlock; + return NavMapChunkType.Airlock; if (_tagSystem.HasAnyTag(uid, _wallTags)) return NavMapChunkType.Wall; @@ -80,6 +81,57 @@ protected bool TryCreateNavMapBeaconData(EntityUid uid, NavMapBeaconComponent co return true; } + public void AddOrUpdateNavMapRegion(EntityUid uid, NavMapComponent component, NetEntity regionOwner, NavMapRegionProperties regionProperties) + { + // Check if a new region has been added or an existing one has been altered + var isDirty = !component.RegionProperties.TryGetValue(regionOwner, out var oldProperties) || oldProperties != regionProperties; + + if (isDirty) + { + component.RegionProperties[regionOwner] = regionProperties; + + if (_net.IsServer) + Dirty(uid, component); + } + } + + public void RemoveNavMapRegion(EntityUid uid, NavMapComponent component, NetEntity regionOwner) + { + bool regionOwnerRemoved = component.RegionProperties.Remove(regionOwner) | component.RegionOverlays.Remove(regionOwner); + + if (regionOwnerRemoved) + { + if (component.RegionOwnerToChunkTable.TryGetValue(regionOwner, out var affectedChunks)) + { + foreach (var affectedChunk in affectedChunks) + { + if (component.ChunkToRegionOwnerTable.TryGetValue(affectedChunk, out var regionOwners)) + regionOwners.Remove(regionOwner); + } + + component.RegionOwnerToChunkTable.Remove(regionOwner); + } + + if (_net.IsServer) + Dirty(uid, component); + } + } + + public Dictionary GetNavMapRegionOverlays(EntityUid uid, NavMapComponent component, Enum uiKey) + { + var regionOverlays = new Dictionary(); + + foreach (var (regionOwner, regionOverlay) in component.RegionOverlays) + { + if (!regionOverlay.UiKey.Equals(uiKey)) + continue; + + regionOverlays.Add(regionOwner, regionOverlay); + } + + return regionOverlays; + } + #region: Event handling private void OnGetState(EntityUid uid, NavMapComponent component, ref ComponentGetState args) @@ -96,7 +148,7 @@ private void OnGetState(EntityUid uid, NavMapComponent component, ref ComponentG chunks.Add(origin, chunk.TileData); } - args.State = new NavMapState(chunks, component.Beacons); + args.State = new NavMapState(chunks, component.Beacons, component.RegionProperties); return; } @@ -109,7 +161,7 @@ private void OnGetState(EntityUid uid, NavMapComponent component, ref ComponentG chunks.Add(origin, chunk.TileData); } - args.State = new NavMapDeltaState(chunks, component.Beacons, new(component.Chunks.Keys)); + args.State = new NavMapDeltaState(chunks, component.Beacons, component.RegionProperties, new(component.Chunks.Keys)); } #endregion @@ -119,22 +171,26 @@ private void OnGetState(EntityUid uid, NavMapComponent component, ref ComponentG [Serializable, NetSerializable] protected sealed class NavMapState( Dictionary chunks, - Dictionary beacons) + Dictionary beacons, + Dictionary regions) : ComponentState { public Dictionary Chunks = chunks; public Dictionary Beacons = beacons; + public Dictionary Regions = regions; } [Serializable, NetSerializable] protected sealed class NavMapDeltaState( Dictionary modifiedChunks, Dictionary beacons, + Dictionary regions, HashSet allChunks) : ComponentState, IComponentDeltaState { public Dictionary ModifiedChunks = modifiedChunks; public Dictionary Beacons = beacons; + public Dictionary Regions = regions; public HashSet AllChunks = allChunks; public void ApplyToFullState(NavMapState state) @@ -158,11 +214,18 @@ public void ApplyToFullState(NavMapState state) { state.Beacons.Add(nuid, beacon); } + + state.Regions.Clear(); + foreach (var (nuid, region) in Regions) + { + state.Regions.Add(nuid, region); + } } public NavMapState CreateNewFullState(NavMapState state) { var chunks = new Dictionary(state.Chunks.Count); + foreach (var (index, data) in state.Chunks) { if (!AllChunks!.Contains(index)) @@ -176,12 +239,25 @@ public NavMapState CreateNewFullState(NavMapState state) Array.Copy(newData, data, ArraySize); } - return new NavMapState(chunks, new(Beacons)); + return new NavMapState(chunks, new(Beacons), new(Regions)); } } [Serializable, NetSerializable] public record struct NavMapBeacon(NetEntity NetEnt, Color Color, string Text, Vector2 Position); + [Serializable, NetSerializable] + public record struct NavMapRegionProperties(NetEntity Owner, Enum UiKey, HashSet Seeds) + { + // Server defined color for the region + public Color Color = Color.White; + + // The maximum number of tiles that can be assigned to this region + public int MaxArea = 625; + + // The maximum distance this region can propagate from its seeds + public int MaxRadius = 25; + } + #endregion } diff --git a/Content.Shared/Players/RateLimiting/RateLimitRegistration.cs b/Content.Shared/Players/RateLimiting/RateLimitRegistration.cs new file mode 100644 index 00000000000..6bcf15d30b6 --- /dev/null +++ b/Content.Shared/Players/RateLimiting/RateLimitRegistration.cs @@ -0,0 +1,76 @@ +using Content.Shared.Database; +using Robust.Shared.Configuration; +using Robust.Shared.Player; + +namespace Content.Shared.Players.RateLimiting; + +/// +/// Contains all data necessary to register a rate limit with . +/// +public sealed class RateLimitRegistration( + CVarDef cVarLimitPeriodLength, + CVarDef cVarLimitCount, + Action? playerLimitedAction, + CVarDef? cVarAdminAnnounceDelay = null, + Action? adminAnnounceAction = null, + LogType adminLogType = LogType.RateLimited) +{ + /// + /// CVar that controls the period over which the rate limit is counted, measured in seconds. + /// + public readonly CVarDef CVarLimitPeriodLength = cVarLimitPeriodLength; + + /// + /// CVar that controls how many actions are allowed in a single rate limit period. + /// + public readonly CVarDef CVarLimitCount = cVarLimitCount; + + /// + /// An action that gets invoked when this rate limit has been breached by a player. + /// + /// + /// This can be used for informing players or taking administrative action. + /// + public readonly Action? PlayerLimitedAction = playerLimitedAction; + + /// + /// CVar that controls the minimum delay between admin notifications, measured in seconds. + /// This can be omitted to have no admin notification system. + /// If the cvar is set to 0, there every breach will be reported. + /// If the cvar is set to a negative number, admin announcements are disabled. + /// + /// + /// If set, must be set too. + /// + public readonly CVarDef? CVarAdminAnnounceDelay = cVarAdminAnnounceDelay; + + /// + /// An action that gets invoked when a rate limit was breached and admins should be notified. + /// + /// + /// If set, must be set too. + /// + public readonly Action? AdminAnnounceAction = adminAnnounceAction; + + /// + /// Log type used to log rate limit violations to the admin logs system. + /// + public readonly LogType AdminLogType = adminLogType; +} + +/// +/// Result of a rate-limited operation. +/// +/// +public enum RateLimitStatus : byte +{ + /// + /// The action was not blocked by the rate limit. + /// + Allowed, + + /// + /// The action was blocked by the rate limit. + /// + Blocked, +} diff --git a/Content.Shared/Players/RateLimiting/SharedPlayerRateLimitManager.cs b/Content.Shared/Players/RateLimiting/SharedPlayerRateLimitManager.cs new file mode 100644 index 00000000000..addb1dee373 --- /dev/null +++ b/Content.Shared/Players/RateLimiting/SharedPlayerRateLimitManager.cs @@ -0,0 +1,55 @@ +using Robust.Shared.Player; + +namespace Content.Shared.Players.RateLimiting; + +/// +/// General-purpose system to rate limit actions taken by clients, such as chat messages. +/// +/// +/// +/// Different categories of rate limits must be registered ahead of time by calling . +/// Once registered, you can simply call to count a rate-limited action for a player. +/// +/// +/// This system is intended for rate limiting player actions over short periods, +/// to ward against spam that can cause technical issues such as admin client load. +/// It should not be used for in-game actions or similar. +/// +/// +/// Rate limits are reset when a client reconnects. +/// This should not be an issue for the reasonably short rate limit periods this system is intended for. +/// +/// +/// +public abstract class SharedPlayerRateLimitManager +{ + /// + /// Count and validate an action performed by a player against rate limits. + /// + /// The player performing the action. + /// The key string that was previously used to register a rate limit category. + /// Whether the action counted should be blocked due to surpassing rate limits or not. + /// + /// is not a connected player + /// OR is not a registered rate limit category. + /// + /// + public abstract RateLimitStatus CountAction(ICommonSession player, string key); + + /// + /// Register a new rate limit category. + /// + /// + /// The key string that will be referred to later with . + /// Must be unique and should probably just be a constant somewhere. + /// + /// The data specifying the rate limit's parameters. + /// has already been registered. + /// is invalid. + public abstract void Register(string key, RateLimitRegistration registration); + + /// + /// Initialize the manager's functionality at game startup. + /// + public abstract void Initialize(); +} diff --git a/Content.Shared/Polymorph/PolymorphPrototype.cs b/Content.Shared/Polymorph/PolymorphPrototype.cs index 6d010711d2e..e1bc3b0ba03 100644 --- a/Content.Shared/Polymorph/PolymorphPrototype.cs +++ b/Content.Shared/Polymorph/PolymorphPrototype.cs @@ -115,6 +115,17 @@ public sealed partial record PolymorphConfiguration [DataField(serverOnly: true)] [ViewVariables(VVAccess.ReadWrite)] public TimeSpan Cooldown = TimeSpan.Zero; + + /// + /// The exact names of components to copy over when this polymorph is applied. + /// + [DataField(serverOnly: true)] + public HashSet CopiedComponents = new() + { + "LanguageKnowledge", + "LanguageSpeaker", + "Grammar" + }; } public enum PolymorphInventoryChange : byte diff --git a/Content.Shared/Polymorph/Systems/SharedChameleonProjectorSystem.cs b/Content.Shared/Polymorph/Systems/SharedChameleonProjectorSystem.cs index c1abfc526f5..0e96132b0be 100644 --- a/Content.Shared/Polymorph/Systems/SharedChameleonProjectorSystem.cs +++ b/Content.Shared/Polymorph/Systems/SharedChameleonProjectorSystem.cs @@ -6,6 +6,7 @@ using Robust.Shared.Serialization.Manager; using Robust.Shared.Prototypes; using System.Diagnostics.CodeAnalysis; +using Content.Shared.Whitelist; namespace Content.Shared.Polymorph.Systems; @@ -18,6 +19,8 @@ public abstract class SharedChameleonProjectorSystem : EntitySystem [Dependency] private readonly IPrototypeManager _proto = default!; [Dependency] private readonly ISerializationManager _serMan = default!; [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly SharedTransformSystem _xform = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; public override void Initialize() { @@ -49,8 +52,8 @@ private void OnInteract(Entity ent, ref AfterIntera /// public bool IsInvalid(ChameleonProjectorComponent comp, EntityUid target) { - return (comp.Whitelist?.IsValid(target, EntityManager) == false) - || (comp.Blacklist?.IsValid(target, EntityManager) == true); + return _whitelistSystem.IsWhitelistFail(comp.Whitelist, target) + || _whitelistSystem.IsBlacklistPass(comp.Blacklist, target); } /// diff --git a/Content.Shared/Preferences/HumanoidCharacterProfile.cs b/Content.Shared/Preferences/HumanoidCharacterProfile.cs index 4feb193a65c..499da11babc 100644 --- a/Content.Shared/Preferences/HumanoidCharacterProfile.cs +++ b/Content.Shared/Preferences/HumanoidCharacterProfile.cs @@ -2,6 +2,7 @@ using System.Text.RegularExpressions; using Content.Shared.CCVar; using Content.Shared.Clothing.Loadouts.Prototypes; +using Content.Shared.Clothing.Loadouts.Systems; using Content.Shared.GameTicking; using Content.Shared.Humanoid; using Content.Shared.Humanoid.Prototypes; @@ -46,10 +47,10 @@ public sealed partial class HumanoidCharacterProfile : ICharacterProfile private HashSet _traitPreferences = new(); /// - public HashSet LoadoutPreferences => _loadoutPreferences; + public HashSet LoadoutPreferences => _loadoutPreferences; [DataField] - private HashSet _loadoutPreferences = new(); + private HashSet _loadoutPreferences = new(); [DataField] public string Name { get; set; } = "John Doe"; @@ -128,7 +129,7 @@ public HumanoidCharacterProfile( PreferenceUnavailableMode preferenceUnavailable, HashSet antagPreferences, HashSet traitPreferences, - HashSet loadoutPreferences) + HashSet loadoutPreferences) { Name = name; FlavorText = flavortext; @@ -170,7 +171,7 @@ public HumanoidCharacterProfile(HumanoidCharacterProfile other) other.PreferenceUnavailable, new HashSet(other.AntagPreferences), new HashSet(other.TraitPreferences), - new HashSet(other.LoadoutPreferences)) + new HashSet(other.LoadoutPreferences)) { } @@ -255,7 +256,7 @@ public static HumanoidCharacterProfile RandomWithSpecies(string species = Shared public HumanoidCharacterProfile WithSex(Sex sex) => new(this) { Sex = sex }; public HumanoidCharacterProfile WithGender(Gender gender) => new(this) { Gender = gender }; public HumanoidCharacterProfile WithSpecies(string species) => new(this) { Species = species }; - public HumanoidCharacterProfile WithCustomSpeciesName(string customspeciename) => new(this) { Customspeciename = customspeciename}; + public HumanoidCharacterProfile WithCustomSpeciesName(string customspeciename) => new(this) { Customspeciename = customspeciename }; public HumanoidCharacterProfile WithHeight(float height) => new(this) { Height = height }; public HumanoidCharacterProfile WithWidth(float width) => new(this) { Width = width }; @@ -309,14 +310,19 @@ public HumanoidCharacterProfile WithTraitPreference(string traitId, bool pref) return new(this) { _traitPreferences = list }; } - public HumanoidCharacterProfile WithLoadoutPreference(string loadoutId, bool pref) + public HumanoidCharacterProfile WithLoadoutPreference( + string loadoutId, + bool pref, + string? customName = null, + string? customDescription = null, + string? customColor = null, + bool? customHeirloom = null) { - var list = new HashSet(_loadoutPreferences); + var list = new HashSet(_loadoutPreferences); + list.RemoveWhere(l => l.LoadoutName == loadoutId); if (pref) - list.Add(loadoutId); - else - list.Remove(loadoutId); + list.Add(new(loadoutId, customName, customDescription, customColor, customHeirloom) { Selected = pref }); return new HumanoidCharacterProfile(this) { _loadoutPreferences = list }; } @@ -368,7 +374,9 @@ public void EnsureValid(ICommonSession session, IDependencyCollection collection // ensure the species can be that sex and their age fits the founds if (!speciesPrototype.Sexes.Contains(sex)) + { sex = speciesPrototype.Sexes[0]; + } var age = Math.Clamp(Age, speciesPrototype.MinAge, speciesPrototype.MaxAge); @@ -383,16 +391,24 @@ public void EnsureValid(ICommonSession session, IDependencyCollection collection string name; if (string.IsNullOrEmpty(Name)) + { name = GetName(Species, gender); + } else if (Name.Length > MaxNameLength) + { name = Name[..MaxNameLength]; + } else + { name = Name; + } name = name.Trim(); if (configManager.GetCVar(CCVars.RestrictedNames)) + { name = RestrictedNameRegex.Replace(name, string.Empty); + } if (configManager.GetCVar(CCVars.ICNameCase)) { @@ -405,17 +421,23 @@ public void EnsureValid(ICommonSession session, IDependencyCollection collection || string.IsNullOrEmpty(Customspeciename) ? "" : Customspeciename.Length > MaxNameLength - ? FormattedMessage.RemoveMarkup(Customspeciename)[..MaxNameLength] - : FormattedMessage.RemoveMarkup(Customspeciename); + ? FormattedMessage.RemoveMarkupPermissive(Customspeciename)[..MaxNameLength] + : FormattedMessage.RemoveMarkupPermissive(Customspeciename); if (string.IsNullOrEmpty(name)) + { name = GetName(Species, gender); + } string flavortext; if (FlavorText.Length > MaxDescLength) - flavortext = FormattedMessage.RemoveMarkup(FlavorText)[..MaxDescLength]; + { + flavortext = FormattedMessage.RemoveMarkupPermissive(FlavorText)[..MaxDescLength]; + } else - flavortext = FormattedMessage.RemoveMarkup(FlavorText); + { + flavortext = FormattedMessage.RemoveMarkupPermissive(FlavorText); + } var appearance = HumanoidCharacterAppearance.EnsureValid(Appearance, Species, Sex); @@ -453,7 +475,7 @@ public void EnsureValid(ICommonSession session, IDependencyCollection collection .ToList(); var loadouts = LoadoutPreferences - .Where(prototypeManager.HasIndex) + .Where(l => prototypeManager.HasIndex(l.LoadoutName)) .ToList(); Name = name; @@ -468,7 +490,9 @@ public void EnsureValid(ICommonSession session, IDependencyCollection collection _jobPriorities.Clear(); foreach (var (job, priority) in priorities) + { _jobPriorities.Add(job, priority); + } PreferenceUnavailable = prefsUnavailableMode; @@ -513,11 +537,11 @@ public override int GetHashCode() hashCode.Add(FlavorText); hashCode.Add(Species); hashCode.Add(Age); - hashCode.Add((int)Sex); - hashCode.Add((int)Gender); + hashCode.Add((int) Sex); + hashCode.Add((int) Gender); hashCode.Add(Appearance); - hashCode.Add((int)SpawnPriority); - hashCode.Add((int)PreferenceUnavailable); + hashCode.Add((int) SpawnPriority); + hashCode.Add((int) PreferenceUnavailable); hashCode.Add(Customspeciename); return hashCode.ToHashCode(); } diff --git a/Content.Shared/Projectiles/EmbedEvent.cs b/Content.Shared/Projectiles/EmbedEvent.cs index 521a691f45a..9d47a815d3c 100644 --- a/Content.Shared/Projectiles/EmbedEvent.cs +++ b/Content.Shared/Projectiles/EmbedEvent.cs @@ -1,10 +1,12 @@ +using Content.Shared.Targeting; + namespace Content.Shared.Projectiles; /// /// Raised directed on an entity when it embeds in another entity. /// [ByRefEvent] -public readonly record struct EmbedEvent(EntityUid? Shooter, EntityUid Embedded) +public readonly record struct EmbedEvent(EntityUid? Shooter, EntityUid Embedded, TargetBodyPart? BodyPart) { public readonly EntityUid? Shooter = Shooter; @@ -12,4 +14,18 @@ public readonly record struct EmbedEvent(EntityUid? Shooter, EntityUid Embedded) /// Entity that is embedded in. /// public readonly EntityUid Embedded = Embedded; + + /// + /// Body part that has the embedded entity. + /// + public readonly TargetBodyPart? BodyPart = BodyPart; +} + +/// +/// Raised on an entity when it stops embedding in another entity. +/// +[ByRefEvent] +public readonly record struct RemoveEmbedEvent(EntityUid? Remover) +{ + public readonly EntityUid? Remover = Remover; } diff --git a/Content.Shared/Projectiles/EmbedPassiveDamageComponent.cs b/Content.Shared/Projectiles/EmbedPassiveDamageComponent.cs new file mode 100644 index 00000000000..cfb08fcf7be --- /dev/null +++ b/Content.Shared/Projectiles/EmbedPassiveDamageComponent.cs @@ -0,0 +1,57 @@ +using Content.Shared.Damage; +using Content.Shared.Damage.Components; +using Content.Shared.FixedPoint; +using Content.Shared.Mobs.Components; +using Content.Shared.Targeting; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; +using Robust.Shared.GameStates; + +namespace Content.Shared.Projectiles; + +/// +/// Passively damages the mob this embeddable is attached to. +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class EmbedPassiveDamageComponent : Component +{ + /// + /// The entity this embeddable is attached to. + /// + [ViewVariables(VVAccess.ReadWrite)] + public EntityUid? Embedded = null; + + /// + /// The damage component to deal damage to. + /// + [ViewVariables(VVAccess.ReadOnly)] + public DamageableComponent? EmbeddedDamageable = null; + + /// + /// The MobState component to check if the target is still alive. + /// + [ViewVariables(VVAccess.ReadOnly)] + public MobStateComponent? EmbeddedMobState = null; + + /// + /// The body part to apply damage to. + /// + [ViewVariables(VVAccess.ReadOnly)] + public TargetBodyPart? EmbeddedBodyPart = null; + + /// + /// Damage per interval dealt to the entity every interval. + /// If this is set manually, DamageMultiplier will be ignored. + /// + [DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField] + public DamageSpecifier Damage = new(); + + /// + /// Multiplier to be applied to the damage of DamageOtherOnHit to + /// calculate the damage per second. + /// + [DataField, ViewVariables(VVAccess.ReadWrite)] + public float ThrowingDamageMultiplier = 0.05f; + + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), ViewVariables(VVAccess.ReadWrite)] + public TimeSpan NextDamage = TimeSpan.Zero; +} diff --git a/Content.Shared/Projectiles/EmbedPassiveDamageSystem.cs b/Content.Shared/Projectiles/EmbedPassiveDamageSystem.cs new file mode 100644 index 00000000000..55733ac5bb3 --- /dev/null +++ b/Content.Shared/Projectiles/EmbedPassiveDamageSystem.cs @@ -0,0 +1,115 @@ +using Content.Shared.Damage; +using Content.Shared.Damage.Components; +using Content.Shared.Damage.Events; +using Content.Shared.Item.ItemToggle.Components; +using Content.Shared.Mobs; +using Content.Shared.Mobs.Systems; +using Content.Shared.Mobs.Components; +using Content.Shared.FixedPoint; +using Robust.Shared.Timing; + +namespace Content.Shared.Projectiles; + +public sealed class EmbedPassiveDamageSystem : EntitySystem +{ + [Dependency] private readonly DamageableSystem _damageable = default!; + [Dependency] private readonly IGameTiming _timing = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnDamageOtherOnHitStartup); + SubscribeLocalEvent(OnItemToggleStartup); + SubscribeLocalEvent(OnEmbed); + SubscribeLocalEvent(OnRemoveEmbed); + SubscribeLocalEvent(OnItemToggle); + } + + /// + /// Inherit stats from DamageOtherOnHit. + /// + private void OnDamageOtherOnHitStartup(EntityUid uid, EmbedPassiveDamageComponent component, DamageOtherOnHitStartupEvent args) + { + if (component.Damage.Empty) + component.Damage = args.Weapon.Comp.Damage * component.ThrowingDamageMultiplier; + } + + /// + /// Inherit stats from ItemToggleDamageOtherOnHit. + /// + private void OnItemToggleStartup(EntityUid uid, ItemToggleEmbedPassiveDamageComponent component, ItemToggleDamageOtherOnHitStartupEvent args) + { + if (!TryComp(uid, out var embedPassiveDamage) || + component.ActivatedDamage != null || + !(args.Weapon.Comp.ActivatedDamage is {} activatedDamage)) + return; + + component.ActivatedDamage = activatedDamage * embedPassiveDamage.ThrowingDamageMultiplier; + } + + private void OnEmbed(EntityUid uid, EmbedPassiveDamageComponent component, EmbedEvent args) + { + if (component.Damage.Empty || component.Damage.GetTotal() == 0 || + !TryComp(args.Embedded, out var mobState) || + !TryComp(args.Embedded, out var damageable)) + return; + + component.Embedded = args.Embedded; + component.EmbeddedDamageable = damageable; + component.EmbeddedMobState = mobState; + component.EmbeddedBodyPart = args.BodyPart; + component.NextDamage = _timing.CurTime + TimeSpan.FromSeconds(1f); + + Dirty(uid, component); + } + + private void OnRemoveEmbed(EntityUid uid, EmbedPassiveDamageComponent component, RemoveEmbedEvent args) + { + component.Embedded = null; + component.EmbeddedDamageable = null; + component.EmbeddedMobState = null; + component.EmbeddedBodyPart = null; + component.NextDamage = TimeSpan.Zero; + + Dirty(uid, component); + } + + /// + /// Used to update the EmbedPassiveDamageComponent component on item toggle. + /// + private void OnItemToggle(EntityUid uid, EmbedPassiveDamageComponent component, ItemToggledEvent args) + { + if (!TryComp(uid, out var itemTogglePassiveDamage)) + return; + + if (args.Activated && itemTogglePassiveDamage.ActivatedDamage is {} activatedDamage) + { + itemTogglePassiveDamage.DeactivatedDamage ??= component.Damage; + component.Damage = activatedDamage; + } + else if (itemTogglePassiveDamage.DeactivatedDamage is {} deactivatedDamage) + component.Damage = deactivatedDamage; + } + + public override void Update(float frameTime) + { + base.Update(frameTime); + var curTime = _timing.CurTime; + + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var comp)) + { + if (comp.Embedded is null || + comp.EmbeddedDamageable is null || + comp.NextDamage > curTime || // Make sure they're up for a damage tick + comp.EmbeddedMobState is null || + comp.EmbeddedMobState.CurrentState == MobState.Dead) // Don't damage dead mobs, they've already gone through too much + continue; + + comp.NextDamage = curTime + TimeSpan.FromSeconds(1f); + + _damageable.TryChangeDamage(comp.Embedded, comp.Damage, false, false, comp.EmbeddedDamageable, targetPart: comp.EmbeddedBodyPart); + } + } +} diff --git a/Content.Shared/Projectiles/EmbeddableProjectileComponent.cs b/Content.Shared/Projectiles/EmbeddableProjectileComponent.cs index 008b7c2ced4..2a0dc1b1da1 100644 --- a/Content.Shared/Projectiles/EmbeddableProjectileComponent.cs +++ b/Content.Shared/Projectiles/EmbeddableProjectileComponent.cs @@ -1,5 +1,7 @@ +using Content.Shared.Targeting; using System.Numerics; using Robust.Shared.Audio; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; using Robust.Shared.GameStates; namespace Content.Shared.Projectiles; @@ -27,7 +29,7 @@ public sealed partial class EmbeddableProjectileComponent : Component /// How long it takes to remove the embedded object. /// [ViewVariables(VVAccess.ReadWrite), DataField, AutoNetworkedField] - public float? RemovalTime = 3f; + public float? RemovalTime = 5f; /// /// Whether this entity will embed when thrown, or only when shot as a projectile. @@ -46,4 +48,28 @@ public sealed partial class EmbeddableProjectileComponent : Component /// [ViewVariables(VVAccess.ReadWrite), DataField, AutoNetworkedField] public SoundSpecifier? Sound; + + /// + /// The entity this embeddable is attached to. + /// + [ViewVariables(VVAccess.ReadWrite), AutoNetworkedField] + public EntityUid? Target = null; + + /// + /// The body part of the target this embeddable is attached to. + /// + [ViewVariables(VVAccess.ReadWrite), AutoNetworkedField] + public TargetBodyPart? TargetBodyPart = null; + + /// + /// How much time before this entity automatically falls off? (0 is never) + /// + [ViewVariables(VVAccess.ReadWrite), DataField, AutoNetworkedField] + public float AutoRemoveDuration = 40f; + + /// + /// The time when this entity automatically falls off after being attached. + /// + [ViewVariables(VVAccess.ReadWrite), DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoNetworkedField] + public TimeSpan? AutoRemoveTime = null; } diff --git a/Content.Shared/Projectiles/SharedProjectileSystem.cs b/Content.Shared/Projectiles/SharedProjectileSystem.cs index f40a7a0363b..960dab84611 100644 --- a/Content.Shared/Projectiles/SharedProjectileSystem.cs +++ b/Content.Shared/Projectiles/SharedProjectileSystem.cs @@ -1,10 +1,15 @@ using System.Numerics; +using Content.Shared.Body.Systems; using Content.Shared.CombatMode.Pacification; using Content.Shared.Damage; using Content.Shared.DoAfter; +using Content.Shared.Examine; +using Content.Shared.IdentityManagement; using Content.Shared.Hands.EntitySystems; using Content.Shared.Interaction; using Content.Shared.Mobs.Components; +using Content.Shared.Popups; +using Content.Shared.Targeting; using Content.Shared.Throwing; using Robust.Shared.Audio.Systems; using Robust.Shared.Map; @@ -15,6 +20,7 @@ using Robust.Shared.Physics.Events; using Robust.Shared.Physics.Systems; using Robust.Shared.Serialization; +using Robust.Shared.Timing; namespace Content.Shared.Projectiles; @@ -28,6 +34,9 @@ public abstract partial class SharedProjectileSystem : EntitySystem [Dependency] private readonly SharedHandsSystem _hands = default!; [Dependency] private readonly SharedPhysicsSystem _physics = default!; [Dependency] private readonly SharedTransformSystem _transform = default!; + [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly SharedBodySystem _body = default!; public override void Initialize() { @@ -39,6 +48,27 @@ public override void Initialize() SubscribeLocalEvent(OnEmbedActivate); SubscribeLocalEvent(OnEmbedRemove); SubscribeLocalEvent(OnAttemptPacifiedThrow); + SubscribeLocalEvent(OnExamined); + } + + // TODO: rename Embedded to Target in every context + public override void Update(float frameTime) + { + base.Update(frameTime); + + var query = EntityQueryEnumerator(); + var curTime = _timing.CurTime; + + while (query.MoveNext(out var uid, out var comp)) + { + if (comp.AutoRemoveTime == null || comp.AutoRemoveTime > curTime) + continue; + + if (comp.Target is {} targetUid) + _popup.PopupClient(Loc.GetString("throwing-embed-falloff", ("item", uid)), targetUid, targetUid); + + RemoveEmbed(uid, comp); + } } private void OnEmbedActivate(EntityUid uid, EmbeddableProjectileComponent component, ActivateInWorldEvent args) @@ -47,22 +77,44 @@ private void OnEmbedActivate(EntityUid uid, EmbeddableProjectileComponent compon if (component.RemovalTime == null) return; - if (args.Handled || !TryComp(uid, out var physics) || physics.BodyType != BodyType.Static) + if (args.Handled || !args.Complex || !TryComp(uid, out var physics) || physics.BodyType != BodyType.Static) return; args.Handled = true; + if (component.Target is {} targetUid) + _popup.PopupClient(Loc.GetString("throwing-embed-remove-alert-owner", ("item", uid), ("other", args.User)), + args.User, targetUid); + _doAfter.TryStartDoAfter(new DoAfterArgs(EntityManager, args.User, component.RemovalTime.Value, new RemoveEmbeddedProjectileEvent(), eventTarget: uid, target: uid) { DistanceThreshold = SharedInteractionSystem.InteractionRange, + BreakOnUserMove = true, + BreakOnTargetMove = true, + NeedHand = true, }); } private void OnEmbedRemove(EntityUid uid, EmbeddableProjectileComponent component, RemoveEmbeddedProjectileEvent args) { + if (args.Cancelled) + return; + + RemoveEmbed(uid, component, args.User); + } + + private void RemoveEmbed(EntityUid uid, EmbeddableProjectileComponent component, EntityUid? remover = null) + { + component.AutoRemoveTime = null; + component.Target = null; + component.TargetBodyPart = null; + + var ev = new RemoveEmbedEvent(remover); + RaiseLocalEvent(uid, ref ev); + // Whacky prediction issues. - if (args.Cancelled || _netManager.IsClient) + if (_netManager.IsClient) return; if (component.DeleteOnRemove) @@ -85,20 +137,22 @@ private void OnEmbedRemove(EntityUid uid, EmbeddableProjectileComponent componen } // Land it just coz uhhh yeah - var landEv = new LandEvent(args.User, true); + var landEv = new LandEvent(remover, true); RaiseLocalEvent(uid, ref landEv); _physics.WakeBody(uid, body: physics); // try place it in the user's hand - _hands.TryPickupAnyHand(args.User, uid); + if (remover is {} removerUid) + _hands.TryPickupAnyHand(removerUid, uid); } private void OnEmbedThrowDoHit(EntityUid uid, EmbeddableProjectileComponent component, ThrowDoHitEvent args) { - if (!component.EmbedOnThrow) + if (!component.EmbedOnThrow || + HasComp(args.Target)) return; - Embed(uid, args.Target, null, component); + Embed(uid, args.Target, null, component, args.TargetPart); } private void OnEmbedProjectileHit(EntityUid uid, EmbeddableProjectileComponent component, ref ProjectileHitEvent args) @@ -113,7 +167,7 @@ private void OnEmbedProjectileHit(EntityUid uid, EmbeddableProjectileComponent c } } - private void Embed(EntityUid uid, EntityUid target, EntityUid? user, EmbeddableProjectileComponent component) + private void Embed(EntityUid uid, EntityUid target, EntityUid? user, EmbeddableProjectileComponent component, TargetBodyPart? targetPart = null) { TryComp(uid, out var physics); _physics.SetLinearVelocity(uid, Vector2.Zero, body: physics); @@ -128,8 +182,17 @@ private void Embed(EntityUid uid, EntityUid target, EntityUid? user, EmbeddableP } _audio.PlayPredicted(component.Sound, uid, null); - var ev = new EmbedEvent(user, target); + + component.TargetBodyPart = targetPart; + var ev = new EmbedEvent(user, target, targetPart); RaiseLocalEvent(uid, ref ev); + + if (component.AutoRemoveDuration != 0) + component.AutoRemoveTime = _timing.CurTime + TimeSpan.FromSeconds(component.AutoRemoveDuration); + + component.Target = target; + + Dirty(uid, component); } private void PreventCollision(EntityUid uid, ProjectileComponent component, ref PreventCollideEvent args) @@ -149,12 +212,6 @@ public void SetShooter(EntityUid id, ProjectileComponent component, EntityUid sh Dirty(id, component); } - [Serializable, NetSerializable] - private sealed partial class RemoveEmbeddedProjectileEvent : DoAfterEvent - { - public override DoAfterEvent Clone() => this; - } - /// /// Prevent players with the Pacified status effect from throwing embeddable projectiles. /// @@ -162,6 +219,31 @@ private void OnAttemptPacifiedThrow(Entity ent, r { args.Cancel("pacified-cannot-throw-embed"); } + + private void OnExamined(EntityUid uid, EmbeddableProjectileComponent component, ExaminedEvent args) + { + if (!(component.Target is {} target)) + return; + + var targetIdentity = Identity.Entity(target, EntityManager); + + var loc = component.TargetBodyPart == null + ? Loc.GetString("throwing-examine-embedded", + ("embedded", uid), + ("target", targetIdentity)) + : Loc.GetString("throwing-examine-embedded-part", + ("embedded", uid), + ("target", targetIdentity), + ("targetPart", Loc.GetString($"body-part-{component.TargetBodyPart.ToString()}"))); + + args.PushMarkup(loc); + } + + [Serializable, NetSerializable] + private sealed partial class RemoveEmbeddedProjectileEvent : DoAfterEvent + { + public override DoAfterEvent Clone() => this; + } } [Serializable, NetSerializable] diff --git a/Content.Shared/Prototypes/CharacterItemGroupPrototype.cs b/Content.Shared/Prototypes/CharacterItemGroupPrototype.cs index c303f4f7d52..995ffa7ac05 100644 --- a/Content.Shared/Prototypes/CharacterItemGroupPrototype.cs +++ b/Content.Shared/Prototypes/CharacterItemGroupPrototype.cs @@ -1,5 +1,6 @@ using System.Diagnostics.CodeAnalysis; using Content.Shared.Clothing.Loadouts.Prototypes; +using Content.Shared.Clothing.Loadouts.Systems; using Content.Shared.Customization.Systems; using Content.Shared.Preferences; using Content.Shared.Traits; @@ -46,7 +47,7 @@ public bool TryGetValue(HumanoidCharacterProfile profile, IPrototypeManager prot p => protoMan.Index((string) p).ID == ID, out value); case "loadout": return profile.LoadoutPreferences.TryFirstOrDefault( - p => protoMan.Index((string) p).ID == ID, out value); + p => protoMan.Index(((Loadout) p).LoadoutName).ID == ID, out value); default: DebugTools.Assert($"Invalid CharacterItemGroupItem Type: {Type}"); return false; diff --git a/Content.Shared/Prying/Components/PryingComponent.cs b/Content.Shared/Prying/Components/PryingComponent.cs index 7a7f304d8f8..650c998f0df 100644 --- a/Content.Shared/Prying/Components/PryingComponent.cs +++ b/Content.Shared/Prying/Components/PryingComponent.cs @@ -3,13 +3,13 @@ namespace Content.Shared.Prying.Components; -[RegisterComponent, NetworkedComponent] +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class PryingComponent : Component { /// /// Whether the entity can pry open powered doors /// - [DataField("pryPowered")] + [DataField("pryPowered"), AutoNetworkedField] public bool PryPowered = false; /// @@ -22,7 +22,7 @@ public sealed partial class PryingComponent : Component /// Modifier on the prying time. /// Lower values result in more time. /// - [DataField("speedModifier")] + [DataField("speedModifier"), AutoNetworkedField] public float SpeedModifier = 1.0f; /// diff --git a/Content.Shared/Psionics/PsionicPowerPoolPrototype.cs b/Content.Shared/Psionics/PsionicPowerPoolPrototype.cs new file mode 100644 index 00000000000..9c505a07775 --- /dev/null +++ b/Content.Shared/Psionics/PsionicPowerPoolPrototype.cs @@ -0,0 +1,15 @@ +using Robust.Shared.Prototypes; + +namespace Content.Shared.Psionics; + +[Prototype("psionicPowerPool")] +public sealed partial class PsionicPowerPoolPrototype : IPrototype +{ + [ViewVariables] + [IdDataField] + public string ID { get; private set; } = default!; + + [ViewVariables] + [DataField] + public List Powers = new(); +} diff --git a/Content.Shared/RCD/Systems/RCDAmmoSystem.cs b/Content.Shared/RCD/Systems/RCDAmmoSystem.cs index 9481d299aaa..9cb3c264851 100644 --- a/Content.Shared/RCD/Systems/RCDAmmoSystem.cs +++ b/Content.Shared/RCD/Systems/RCDAmmoSystem.cs @@ -36,7 +36,7 @@ private void OnAfterInteract(EntityUid uid, RCDAmmoComponent comp, AfterInteract if (args.Handled || !args.CanReach || !_timing.IsFirstTimePredicted) return; - if (args.Target is not {Valid: true} target || + if (args.Target is not { Valid: true } target || !HasComp(target) || !TryComp(target, out var charges)) return; @@ -53,7 +53,7 @@ private void OnAfterInteract(EntityUid uid, RCDAmmoComponent comp, AfterInteract _popup.PopupClient(Loc.GetString("rcd-ammo-component-after-interact-refilled"), target, user); _charges.AddCharges(target, count, charges); comp.Charges -= count; - Dirty(comp); + Dirty(uid, comp); // prevent having useless ammo with 0 charges if (comp.Charges <= 0) diff --git a/Content.Shared/Random/Helpers/SharedRandomExtensions.cs b/Content.Shared/Random/Helpers/SharedRandomExtensions.cs index 20e57e94212..3941c2859bc 100644 --- a/Content.Shared/Random/Helpers/SharedRandomExtensions.cs +++ b/Content.Shared/Random/Helpers/SharedRandomExtensions.cs @@ -1,3 +1,4 @@ +using System.Diagnostics.CodeAnalysis; using System.Linq; using Content.Shared.Dataset; using Content.Shared.FixedPoint; @@ -41,7 +42,7 @@ public static string Pick(this IWeightedRandomPrototype prototype, IRobustRandom var sum = picks.Values.Sum(); var accumulated = 0f; - var rand = random.NextFloat() * sum; + var rand = random!.NextFloat() * sum; foreach (var (key, weight) in picks) { @@ -78,6 +79,47 @@ public static T Pick(this IRobustRandom random, Dictionary weights) throw new InvalidOperationException("Invalid weighted pick"); } + public static T PickAndTake(this IRobustRandom random, Dictionary weights) + where T : notnull + { + var pick = Pick(random, weights); + weights.Remove(pick); + return pick; + } + + public static bool TryPickAndTake(this IRobustRandom random, Dictionary weights, [NotNullWhen(true)] out T? pick) + where T : notnull + { + if (weights.Count == 0) + { + pick = default; + return false; + } + pick = PickAndTake(random, weights); + return true; + } + + public static T Pick(Dictionary weights, System.Random random) + where T : notnull + { + var sum = weights.Values.Sum(); + var accumulated = 0f; + + var rand = random.NextFloat() * sum; + + foreach (var (key, weight) in weights) + { + accumulated += weight; + + if (accumulated >= rand) + { + return key; + } + } + + throw new InvalidOperationException("Invalid weighted pick"); + } + public static (string reagent, FixedPoint2 quantity) Pick(this WeightedRandomFillSolutionPrototype prototype, IRobustRandom? random = null) { var randomFill = prototype.PickRandomFill(random); @@ -87,7 +129,7 @@ public static (string reagent, FixedPoint2 quantity) Pick(this WeightedRandomFil var sum = randomFill.Reagents.Count; var accumulated = 0f; - var rand = random.NextFloat() * sum; + var rand = random!.NextFloat() * sum; foreach (var reagent in randomFill.Reagents) { @@ -118,7 +160,7 @@ public static RandomFillSolution PickRandomFill(this WeightedRandomFillSolutionP var sum = picks.Values.Sum(); var accumulated = 0f; - var rand = random.NextFloat() * sum; + var rand = random!.NextFloat() * sum; foreach (var (randSolution, weight) in picks) { diff --git a/Content.Shared/Repulsor/RepulseComponent.cs b/Content.Shared/Repulsor/RepulseComponent.cs new file mode 100644 index 00000000000..cef64458e27 --- /dev/null +++ b/Content.Shared/Repulsor/RepulseComponent.cs @@ -0,0 +1,19 @@ +namespace Content.Shared.Repulsor; + +[RegisterComponent] +public sealed partial class RepulseComponent : Component +{ + [DataField] + public float ForceMultiplier = 13000; + + [DataField] + public TimeSpan KnockdownDuration = TimeSpan.FromSeconds(3); + + [DataField] + public TimeSpan StunDuration = TimeSpan.FromSeconds(3); +} + +public sealed class BeforeRepulseEvent(EntityUid target) : CancellableEntityEventArgs +{ + public EntityUid Target = target; +} diff --git a/Content.Shared/Repulsor/RepulseOnTouchComponent.cs b/Content.Shared/Repulsor/RepulseOnTouchComponent.cs new file mode 100644 index 00000000000..a210f40d785 --- /dev/null +++ b/Content.Shared/Repulsor/RepulseOnTouchComponent.cs @@ -0,0 +1,4 @@ +namespace Content.Shared.Repulsor; + +[RegisterComponent] +public sealed partial class RepulseOnTouchComponent : Component; diff --git a/Content.Shared/Repulsor/RepulseSystem.cs b/Content.Shared/Repulsor/RepulseSystem.cs new file mode 100644 index 00000000000..70e39bad5ba --- /dev/null +++ b/Content.Shared/Repulsor/RepulseSystem.cs @@ -0,0 +1,50 @@ +using Content.Shared.Interaction; +using Content.Shared.Standing; +using Content.Shared.Stunnable; +using Robust.Shared.Physics.Events; +using Robust.Shared.Physics.Systems; + +namespace Content.Shared.Repulsor; + +public sealed class RepulseSystem : EntitySystem +{ + [Dependency] private readonly SharedTransformSystem _transform = default!; + [Dependency] private readonly SharedStunSystem _stunSystem = default!; + [Dependency] private readonly SharedPhysicsSystem _physics = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(HandleCollision); + SubscribeLocalEvent(OnHandInteract); + } + + private void HandleCollision(Entity touchRepulsor, ref StartCollideEvent args) + { + if (!TryComp(touchRepulsor, out RepulseComponent? repulse)) + return; + + Repulse((touchRepulsor.Owner, repulse), args.OtherEntity); + } + + private void OnHandInteract(Entity repulsor, ref InteractHandEvent args) + { + Repulse(repulsor, args.User); + } + + public void Repulse(Entity repulsor, EntityUid user) + { + var ev = new BeforeRepulseEvent(user); + RaiseLocalEvent(repulsor, ev); + if (ev.Cancelled) + return; + + var direction = _transform.GetMapCoordinates(user).Position - _transform.GetMapCoordinates(repulsor).Position; + var impulse = direction * repulsor.Comp.ForceMultiplier; + + _physics.ApplyLinearImpulse(user, impulse); + _stunSystem.TryStun(user, repulsor.Comp.StunDuration, true); + _stunSystem.TryKnockdown(user, repulsor.Comp.KnockdownDuration, true, DropHeldItemsBehavior.DropIfStanding); + } +} diff --git a/Content.Shared/Revenant/Components/RevenantComponent.cs b/Content.Shared/Revenant/Components/RevenantComponent.cs index 947c1a4b3fc..d7fb28ef136 100644 --- a/Content.Shared/Revenant/Components/RevenantComponent.cs +++ b/Content.Shared/Revenant/Components/RevenantComponent.cs @@ -1,4 +1,5 @@ using System.Numerics; +using Content.Shared.Alert; using Content.Shared.FixedPoint; using Content.Shared.Store; using Content.Shared.Whitelist; @@ -200,6 +201,9 @@ public sealed partial class RevenantComponent : Component public EntityWhitelist? MalfunctionBlacklist; #endregion + [DataField] + public ProtoId EssenceAlert = "Essence"; + #region Visualizer [DataField("state")] public string State = "idle"; diff --git a/Content.Shared/Salvage/Fulton/SharedFultonSystem.cs b/Content.Shared/Salvage/Fulton/SharedFultonSystem.cs index 0599482bbef..1ada22876b6 100644 --- a/Content.Shared/Salvage/Fulton/SharedFultonSystem.cs +++ b/Content.Shared/Salvage/Fulton/SharedFultonSystem.cs @@ -6,6 +6,7 @@ using Content.Shared.Popups; using Content.Shared.Stacks; using Content.Shared.Verbs; +using Content.Shared.Whitelist; using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; using Robust.Shared.Containers; @@ -30,6 +31,7 @@ public abstract partial class SharedFultonSystem : EntitySystem [Dependency] private readonly SharedPopupSystem _popup = default!; [Dependency] private readonly SharedStackSystem _stack = default!; [Dependency] protected readonly SharedTransformSystem TransformSystem = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; [ValidatePrototypeId] public const string EffectProto = "FultonEffect"; protected static readonly Vector2 EffectOffset = Vector2.Zero; @@ -177,7 +179,7 @@ protected bool CanApplyFulton(EntityUid targetUid, FultonComponent component) if (!CanFulton(targetUid)) return false; - if (component.Whitelist?.IsValid(targetUid, EntityManager) != true) + if (_whitelistSystem.IsWhitelistFailOrNull(component.Whitelist, targetUid)) return false; return true; diff --git a/Content.Shared/Shadowkin/ShadowkinComponent.cs b/Content.Shared/Shadowkin/ShadowkinComponent.cs index b382f3112b7..a2a4fdf334f 100644 --- a/Content.Shared/Shadowkin/ShadowkinComponent.cs +++ b/Content.Shared/Shadowkin/ShadowkinComponent.cs @@ -1,4 +1,6 @@ using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; +using Content.Shared.Alert; namespace Content.Shared.Shadowkin; @@ -39,4 +41,7 @@ public sealed partial class ShadowkinComponent : Component [DataField] public EntityUid? ShadowkinSleepAction; + + [DataField] + public ProtoId ShadowkinPowerAlert = "ShadowkinPower"; } \ No newline at end of file diff --git a/Content.Shared/Shipyard/Prototypes/VesselCategoryPrototype.cs b/Content.Shared/Shipyard/Prototypes/VesselCategoryPrototype.cs new file mode 100644 index 00000000000..c9e55c4643d --- /dev/null +++ b/Content.Shared/Shipyard/Prototypes/VesselCategoryPrototype.cs @@ -0,0 +1,14 @@ +using Robust.Shared.Prototypes; + +namespace Content.Shared.Shipyard.Prototypes; + +/// +/// Like TagPrototype but for vessel categories. +/// Prevents making typos being silently ignored by the linter. +/// +[Prototype("vesselCategory")] +public sealed class VesselCategoryPrototype : IPrototype +{ + [ViewVariables, IdDataField] + public string ID { get; } = default!; +} diff --git a/Content.Shared/Shipyard/Prototypes/VesselPrototype.cs b/Content.Shared/Shipyard/Prototypes/VesselPrototype.cs new file mode 100644 index 00000000000..5bfe8cbdeb0 --- /dev/null +++ b/Content.Shared/Shipyard/Prototypes/VesselPrototype.cs @@ -0,0 +1,48 @@ +using Content.Shared.Whitelist; +using Robust.Shared.Prototypes; +using Robust.Shared.Utility; + +namespace Content.Shared.Shipyard.Prototypes; + +[Prototype("vessel")] +public sealed class VesselPrototype : IPrototype +{ + [ViewVariables, IdDataField] + public string ID { get; } = default!; + + /// + /// Already localized name of the vessel. + /// + [DataField(required: true)] + public string Name = string.Empty; + + /// + /// Already localized short description of the vessel. + /// + [DataField(required: true)] + public string Description = string.Empty; + + /// + /// How much the vessel costs to purchase. + /// + [DataField(required: true)] + public int Price; + + /// + /// Path to the shuttle yml to load, e.g. `/Maps/Shuttles/yourshittle.yml` + /// + [DataField(required: true)] + public ResPath Path = default!; + + /// + /// Categories that can be filtered in the UI. + /// + [DataField] + public List> Categories = new(); + + /// + /// If the console does not match this whitelist, the vessel is hidden and can't be bought. + /// + [DataField] + public EntityWhitelist? Whitelist; +} diff --git a/Content.Shared/Shipyard/SharedShipyardConsoleSystem.cs b/Content.Shared/Shipyard/SharedShipyardConsoleSystem.cs new file mode 100644 index 00000000000..ed04fb4944a --- /dev/null +++ b/Content.Shared/Shipyard/SharedShipyardConsoleSystem.cs @@ -0,0 +1,51 @@ +using Content.Shared.Access.Systems; +using Content.Shared.Popups; +using Content.Shared.Shipyard.Prototypes; +using Content.Shared.Whitelist; +using Robust.Shared.Audio.Systems; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Shipyard; + +/// +/// Handles shipyard console interaction. +/// ShipyardSystem does the heavy lifting serverside. +/// +public abstract class SharedShipyardConsoleSystem : EntitySystem +{ + [Dependency] protected readonly AccessReaderSystem _access = default!; + [Dependency] protected readonly IPrototypeManager _proto = default!; + [Dependency] protected readonly SharedAudioSystem Audio = default!; + [Dependency] protected readonly SharedPopupSystem Popup = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; + + public override void Initialize() + { + base.Initialize(); + + Subs.BuiEvents(ShipyardConsoleUiKey.Key, subs => + { + subs.Event(OnPurchase); + }); + } + + private void OnPurchase(Entity ent, ref ShipyardConsolePurchaseMessage msg) + { + var user = msg.Actor; + if (!_access.IsAllowed(user, ent.Owner)) + { + Popup.PopupClient(Loc.GetString("comms-console-permission-denied"), ent, user); + Audio.PlayPredicted(ent.Comp.DenySound, ent, user); + return; + } + + if (!_proto.TryIndex(msg.Vessel, out var vessel) || _whitelistSystem.IsWhitelistFail(vessel.Whitelist, ent)) + return; + + TryPurchase(ent, user, vessel); + } + + protected virtual void TryPurchase(Entity ent, EntityUid user, VesselPrototype vessel) + { + } +} diff --git a/Content.Shared/Shipyard/ShipyardConsoleComponent.cs b/Content.Shared/Shipyard/ShipyardConsoleComponent.cs new file mode 100644 index 00000000000..c3887e5709a --- /dev/null +++ b/Content.Shared/Shipyard/ShipyardConsoleComponent.cs @@ -0,0 +1,31 @@ +using Content.Shared.Radio; +using Robust.Shared.Audio; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Shipyard; + +/// +/// Component for the shipyard console. +/// +[RegisterComponent, NetworkedComponent, Access(typeof(SharedShipyardConsoleSystem))] +public sealed partial class ShipyardConsoleComponent : Component +{ + /// + /// Sound played when the ship can't be bought for any reason. + /// + [DataField] + public SoundSpecifier DenySound = new SoundPathSpecifier("/Audio/Effects/Cargo/buzz_sigh.ogg"); + + /// + /// Sound played when a ship is purchased. + /// + [DataField] + public SoundSpecifier ConfirmSound = new SoundPathSpecifier("/Audio/Effects/Cargo/ping.ogg"); + + /// + /// Radio channel to send the purchase announcement to. + /// + [DataField] + public ProtoId Channel = "Command"; +} diff --git a/Content.Shared/Shipyard/ShipyardUi.cs b/Content.Shared/Shipyard/ShipyardUi.cs new file mode 100644 index 00000000000..fbe085fb5dd --- /dev/null +++ b/Content.Shared/Shipyard/ShipyardUi.cs @@ -0,0 +1,36 @@ +using Content.Shared.Shipyard.Prototypes; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; + +namespace Content.Shared.Shipyard; + +[Serializable, NetSerializable] +public enum ShipyardConsoleUiKey : byte +{ + Key +} + +[Serializable, NetSerializable] +public sealed class ShipyardConsoleState : BoundUserInterfaceState +{ + public readonly int Balance; + + public ShipyardConsoleState(int balance) + { + Balance = balance; + } +} + +/// +/// Ask the server to purchase a vessel. +/// +[Serializable, NetSerializable] +public sealed class ShipyardConsolePurchaseMessage : BoundUserInterfaceMessage +{ + public readonly ProtoId Vessel; + + public ShipyardConsolePurchaseMessage(string vessel) + { + Vessel = vessel; + } +} diff --git a/Content.Shared/Showers/SharedShowerSystem.cs b/Content.Shared/Showers/SharedShowerSystem.cs index be3af6228f2..138a6869a94 100644 --- a/Content.Shared/Showers/SharedShowerSystem.cs +++ b/Content.Shared/Showers/SharedShowerSystem.cs @@ -79,7 +79,12 @@ private void UpdateAppearance(EntityUid uid, ShowerComponent? component = null) { if (component.PlayingStream == null) { - component.PlayingStream = _audio.PlayPvs(component.LoopingSound, uid, AudioParams.Default.WithLoop(true).WithMaxDistance(5)).Value.Entity; + var audio = _audio.PlayPvs(component.LoopingSound, uid, AudioParams.Default.WithLoop(true).WithMaxDistance(5)); + + if (audio == null) + return; + + component.PlayingStream = audio!.Value.Entity; } } else diff --git a/Content.Server/Shuttles/Components/FTLComponent.cs b/Content.Shared/Shuttles/Components/FTLComponent.cs similarity index 81% rename from Content.Server/Shuttles/Components/FTLComponent.cs rename to Content.Shared/Shuttles/Components/FTLComponent.cs index c9b84064234..9acca7c1d45 100644 --- a/Content.Server/Shuttles/Components/FTLComponent.cs +++ b/Content.Shared/Shuttles/Components/FTLComponent.cs @@ -2,16 +2,16 @@ using Content.Shared.Tag; using Content.Shared.Timing; using Robust.Shared.Audio; +using Robust.Shared.GameStates; using Robust.Shared.Map; using Robust.Shared.Prototypes; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; -namespace Content.Server.Shuttles.Components; +namespace Content.Shared.Shuttles.Components; /// /// Added to a component when it is queued or is travelling via FTL. /// -[RegisterComponent] +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class FTLComponent : Component { // TODO Full game save / add datafields @@ -29,13 +29,19 @@ public sealed partial class FTLComponent : Component [ViewVariables(VVAccess.ReadWrite)] public float TravelTime = 0f; + [DataField] + public EntProtoId? VisualizerProto = "FtlVisualizerEntity"; + + [DataField, AutoNetworkedField] + public EntityUid? VisualizerEntity; + /// /// Coordinates to arrive it: May be relative to another grid (for docking) or map coordinates. /// - [ViewVariables(VVAccess.ReadWrite), DataField] + [DataField, AutoNetworkedField] public EntityCoordinates TargetCoordinates; - [DataField] + [DataField, AutoNetworkedField] public Angle TargetAngle; /// diff --git a/Content.Shared/Shuttles/Components/FtlVisualizerComponent.cs b/Content.Shared/Shuttles/Components/FtlVisualizerComponent.cs new file mode 100644 index 00000000000..628a4f828b2 --- /dev/null +++ b/Content.Shared/Shuttles/Components/FtlVisualizerComponent.cs @@ -0,0 +1,23 @@ +using Robust.Shared.GameStates; +using Robust.Shared.Utility; + +namespace Content.Shared.Shuttles.Components; + +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class FtlVisualizerComponent : Component +{ + /// + /// Clientside time tracker for the animation. + /// + [ViewVariables(VVAccess.ReadWrite)] + public float Elapsed; + + [DataField(required: true)] + public SpriteSpecifier.Rsi Sprite; + + /// + /// Target grid to pull FTL visualization from. + /// + [DataField, AutoNetworkedField] + public EntityUid Grid; +} diff --git a/Content.Shared/Shuttles/Components/PilotComponent.cs b/Content.Shared/Shuttles/Components/PilotComponent.cs index 1a6927cf813..cb42db4436f 100644 --- a/Content.Shared/Shuttles/Components/PilotComponent.cs +++ b/Content.Shared/Shuttles/Components/PilotComponent.cs @@ -1,7 +1,9 @@ using System.Numerics; +using Content.Shared.Alert; using Content.Shared.Movement.Systems; using Robust.Shared.GameStates; using Robust.Shared.Map; +using Robust.Shared.Prototypes; using Robust.Shared.Timing; namespace Content.Shared.Shuttles.Components @@ -32,6 +34,9 @@ public sealed partial class PilotComponent : Component [ViewVariables] public ShuttleButtons HeldButtons = ShuttleButtons.None; + [DataField] + public ProtoId PilotingAlert = "PilotingShuttle"; + public override bool SendOnlyToOwner => true; } } diff --git a/Content.Shared/Shuttles/Systems/SharedShuttleSystem.cs b/Content.Shared/Shuttles/Systems/SharedShuttleSystem.cs index d859d9f4859..a382e943ff9 100644 --- a/Content.Shared/Shuttles/Systems/SharedShuttleSystem.cs +++ b/Content.Shared/Shuttles/Systems/SharedShuttleSystem.cs @@ -2,6 +2,7 @@ using Content.Shared.Shuttles.BUIStates; using Content.Shared.Shuttles.Components; using Content.Shared.Shuttles.UI.MapObjects; +using Content.Shared.Whitelist; using Robust.Shared.Map; using Robust.Shared.Map.Components; using Robust.Shared.Physics.Collision.Shapes; @@ -15,6 +16,7 @@ public abstract partial class SharedShuttleSystem : EntitySystem [Dependency] private readonly ItemSlotsSystem _itemSlots = default!; [Dependency] protected readonly SharedMapSystem Maps = default!; [Dependency] protected readonly SharedTransformSystem XformSystem = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; public const float FTLRange = 512f; public const float FTLBufferRange = 8f; @@ -83,7 +85,7 @@ public bool CanFTLTo(EntityUid shuttleUid, MapId targetMap, EntityUid consoleUid if (HasComp(mapUid)) return false; - return destination.Whitelist?.IsValid(shuttleUid, EntityManager) != false; + return _whitelistSystem.IsWhitelistPassOrNull(destination.Whitelist, shuttleUid); } /// diff --git a/Content.Shared/Silicon/Systems/SharedSiliconSystem.cs b/Content.Shared/Silicon/Systems/SharedSiliconSystem.cs index 8fe87e162bc..37d3bcd5c3b 100644 --- a/Content.Shared/Silicon/Systems/SharedSiliconSystem.cs +++ b/Content.Shared/Silicon/Systems/SharedSiliconSystem.cs @@ -60,12 +60,12 @@ private void OnSiliconInit(EntityUid uid, SiliconComponent component, ComponentI if (!component.BatteryPowered) return; - _alertsSystem.ShowAlert(uid, AlertType.BorgBattery, component.ChargeState); + _alertsSystem.ShowAlert(uid, component.BatteryAlert, component.ChargeState); } private void OnSiliconChargeStateUpdate(EntityUid uid, SiliconComponent component, SiliconChargeStateUpdateEvent ev) { - _alertsSystem.ShowAlert(uid, AlertType.BorgBattery, ev.ChargePercent); + _alertsSystem.ShowAlert(uid, component.BatteryAlert, ev.ChargePercent); } private void OnRefreshMovespeed(EntityUid uid, SiliconComponent component, RefreshMovementSpeedModifiersEvent args) diff --git a/Content.Shared/Silicons/Borgs/Components/BorgChassisComponent.cs b/Content.Shared/Silicons/Borgs/Components/BorgChassisComponent.cs index 71d3a7bd166..e1776873da9 100644 --- a/Content.Shared/Silicons/Borgs/Components/BorgChassisComponent.cs +++ b/Content.Shared/Silicons/Borgs/Components/BorgChassisComponent.cs @@ -1,6 +1,8 @@ -using Content.Shared.Whitelist; +using Content.Shared.Alert; +using Content.Shared.Whitelist; using Robust.Shared.Containers; using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; using Robust.Shared.Serialization; namespace Content.Shared.Silicons.Borgs.Components; @@ -76,6 +78,12 @@ public sealed partial class BorgChassisComponent : Component [DataField("noMindState")] public string NoMindState = string.Empty; #endregion + + [DataField] + public ProtoId BatteryAlert = "BorgBattery"; + + [DataField] + public ProtoId NoBatteryAlert = "BorgBatteryNone"; } [Serializable, NetSerializable] diff --git a/Content.Shared/Singularity/EntitySystems/SharedEventHorizonSystem.cs b/Content.Shared/Singularity/EntitySystems/SharedEventHorizonSystem.cs index f31dd8776a4..c2b52c5af35 100644 --- a/Content.Shared/Singularity/EntitySystems/SharedEventHorizonSystem.cs +++ b/Content.Shared/Singularity/EntitySystems/SharedEventHorizonSystem.cs @@ -66,7 +66,7 @@ public void SetRadius(EntityUid uid, float value, bool updateFixture = true, Eve return; eventHorizon.Radius = value; - Dirty(eventHorizon); + Dirty(uid, eventHorizon); if (updateFixture) UpdateEventHorizonFixture(uid, eventHorizon: eventHorizon); } @@ -89,7 +89,7 @@ public void SetCanBreachContainment(EntityUid uid, bool value, bool updateFixtur return; eventHorizon.CanBreachContainment = value; - Dirty(eventHorizon); + Dirty(uid, eventHorizon); if (updateFixture) UpdateEventHorizonFixture(uid, eventHorizon: eventHorizon); } @@ -112,7 +112,7 @@ public void SetColliderFixtureId(EntityUid uid, string? value, bool updateFixtur return; eventHorizon.ColliderFixtureId = value; - Dirty(eventHorizon); + Dirty(uid, eventHorizon); if (updateFixture) UpdateEventHorizonFixture(uid, eventHorizon: eventHorizon); } @@ -135,7 +135,7 @@ public void SetConsumerFixtureId(EntityUid uid, string? value, bool updateFixtur return; eventHorizon.ConsumerFixtureId = value; - Dirty(eventHorizon); + Dirty(uid, eventHorizon); if (updateFixture) UpdateEventHorizonFixture(uid, eventHorizon: eventHorizon); } diff --git a/Content.Shared/Smoking/Components/MatchstickComponent.cs b/Content.Shared/Smoking/Components/MatchstickComponent.cs new file mode 100644 index 00000000000..527553549b5 --- /dev/null +++ b/Content.Shared/Smoking/Components/MatchstickComponent.cs @@ -0,0 +1,28 @@ +using Content.Shared.Smoking.Systems; +using Robust.Shared.Audio; +using Robust.Shared.GameStates; + +namespace Content.Shared.Smoking.Components; + +[RegisterComponent, NetworkedComponent, Access(typeof(SharedMatchstickSystem))] +[AutoGenerateComponentState] +public sealed partial class MatchstickComponent : Component +{ + /// + /// Current state to matchstick. Can be Unlit, Lit or Burnt. + /// + [DataField("state"), AutoNetworkedField] + public SmokableState CurrentState = SmokableState.Unlit; + + /// + /// How long will matchstick last in seconds. + /// + [DataField] + public int Duration = 10; + + /// + /// Sound played when you ignite the matchstick. + /// + [DataField(required: true)] + public SoundSpecifier IgniteSound = default!; +} diff --git a/Content.Shared/Smoking/Systems/SharedMatchstickSystem.cs b/Content.Shared/Smoking/Systems/SharedMatchstickSystem.cs new file mode 100644 index 00000000000..bda75c42d29 --- /dev/null +++ b/Content.Shared/Smoking/Systems/SharedMatchstickSystem.cs @@ -0,0 +1,16 @@ +using Content.Shared.Smoking.Components; + +namespace Content.Shared.Smoking.Systems; + +public abstract class SharedMatchstickSystem : EntitySystem +{ + public virtual bool SetState(Entity ent, SmokableState state) + { + if (ent.Comp.CurrentState == state) + return false; + + ent.Comp.CurrentState = state; + Dirty(ent); + return true; + } +} diff --git a/Content.Shared/SprayPainter/SharedSprayPainterSystem.cs b/Content.Shared/SprayPainter/SharedSprayPainterSystem.cs index 529e321f8da..fa04a50f8b0 100644 --- a/Content.Shared/SprayPainter/SharedSprayPainterSystem.cs +++ b/Content.Shared/SprayPainter/SharedSprayPainterSystem.cs @@ -4,6 +4,7 @@ using Content.Shared.Doors.Components; using Content.Shared.Interaction; using Content.Shared.Popups; +using Content.Shared.Paint; using Content.Shared.SprayPainter.Components; using Content.Shared.SprayPainter.Prototypes; using Robust.Shared.Audio.Systems; @@ -129,6 +130,8 @@ private void OnAirlockInteract(Entity ent, ref Intera return; } + RemComp(ent); + var doAfterEventArgs = new DoAfterArgs(EntityManager, args.User, painter.AirlockSprayTime, new SprayPainterDoorDoAfterEvent(sprite, style.Department), args.Used, target: ent, used: args.Used) { BreakOnTargetMove = true, diff --git a/Content.Shared/Stacks/SharedStackSystem.cs b/Content.Shared/Stacks/SharedStackSystem.cs index 756c84cac55..e12edd323c7 100644 --- a/Content.Shared/Stacks/SharedStackSystem.cs +++ b/Content.Shared/Stacks/SharedStackSystem.cs @@ -23,8 +23,8 @@ public abstract class SharedStackSystem : EntitySystem [Dependency] protected readonly SharedAppearanceSystem Appearance = default!; [Dependency] protected readonly SharedHandsSystem Hands = default!; [Dependency] protected readonly SharedTransformSystem Xform = default!; - [Dependency] private readonly EntityLookupSystem _entityLookup = default!; - [Dependency] private readonly SharedPhysicsSystem _physics = default!; + [Dependency] private readonly EntityLookupSystem _entityLookup = default!; + [Dependency] private readonly SharedPhysicsSystem _physics = default!; [Dependency] protected readonly SharedPopupSystem Popup = default!; [Dependency] private readonly SharedStorageSystem _storage = default!; @@ -175,7 +175,7 @@ public virtual void SetCount(EntityUid uid, int amount, StackComponent? componen // Server-side override deletes the entity if count == 0 component.Count = amount; - Dirty(component); + Dirty(uid, component); Appearance.SetData(uid, StackVisuals.Actual, component.Count); RaiseLocalEvent(uid, new StackCountChangedEvent(old, component.Count)); diff --git a/Content.Shared/Standing/SharedLayingDownSystem.cs b/Content.Shared/Standing/SharedLayingDownSystem.cs index 9fa4717045c..d52986c7a99 100644 --- a/Content.Shared/Standing/SharedLayingDownSystem.cs +++ b/Content.Shared/Standing/SharedLayingDownSystem.cs @@ -5,6 +5,9 @@ using Content.Shared.Input; using Content.Shared.Mobs.Systems; using Content.Shared.Movement.Systems; +using Content.Shared.Body.Components; +using Content.Shared.Body.Organ; +using Content.Shared.Standing; using Content.Shared.Popups; using Content.Shared.Stunnable; using Robust.Shared.Configuration; @@ -141,7 +144,10 @@ public bool TryStandUp(EntityUid uid, LayingDownComponent? layingDown = null, St || !Resolve(uid, ref layingDown, false) || standingState.CurrentState is not StandingState.Lying || !_mobState.IsAlive(uid) - || TerminatingOrDeleted(uid)) + || TerminatingOrDeleted(uid) + || !TryComp(uid, out var body) + || body.LegEntities.Count == 0 + || HasComp(uid)) return false; var args = new DoAfterArgs(EntityManager, uid, layingDown.StandingUpTime, new StandingUpDoAfterEvent(), uid) @@ -170,7 +176,7 @@ public bool TryLieDown(EntityUid uid, LayingDownComponent? layingDown = null, St return false; } - _standing.Down(uid, true, behavior != DropHeldItemsBehavior.NoDrop, standingState, setDrawDepth: true); + _standing.Down(uid, true, behavior != DropHeldItemsBehavior.NoDrop, standingState); return true; } } diff --git a/Content.Shared/Standing/StandingStateSystem.cs b/Content.Shared/Standing/StandingStateSystem.cs index 5abbf53f1b2..562d9fe82b7 100644 --- a/Content.Shared/Standing/StandingStateSystem.cs +++ b/Content.Shared/Standing/StandingStateSystem.cs @@ -24,7 +24,7 @@ public sealed class StandingStateSystem : EntitySystem [Dependency] private readonly ClimbSystem _climb = default!; // If StandingCollisionLayer value is ever changed to more than one layer, the logic needs to be edited. - private const int StandingCollisionLayer = (int)CollisionGroup.MidImpassable; + private const int StandingCollisionLayer = (int) CollisionGroup.MidImpassable; public bool IsDown(EntityUid uid, StandingStateComponent? standingState = null) { @@ -57,7 +57,7 @@ public bool Down(EntityUid uid, bool playSound = true, bool dropHeldItems = true if (dropHeldItems && hands != null) RaiseLocalEvent(uid, new DropHandItemsEvent(), false); - if (TryComp(uid, out BuckleComponent? buckle) && buckle.Buckled && !_buckle.TryUnbuckle(uid, uid, buckleComp: buckle)) + if (TryComp(uid, out BuckleComponent? buckle) && buckle.Buckled) return false; var msg = new DownAttemptEvent(); @@ -67,7 +67,7 @@ public bool Down(EntityUid uid, bool playSound = true, bool dropHeldItems = true return false; standingState.CurrentState = StandingState.Lying; - Dirty(standingState); + Dirty(uid, standingState); RaiseLocalEvent(uid, new DownedEvent(), false); // Seemed like the best place to put it @@ -184,4 +184,4 @@ public sealed class StoodEvent : EntityEventArgs { } /// /// Raised when an entity is not standing /// -public sealed class DownedEvent : EntityEventArgs { } +public sealed class DownedEvent : EntityEventArgs { } \ No newline at end of file diff --git a/Content.Shared/StationRecords/StationRecordKeyStorageSystem.cs b/Content.Shared/StationRecords/StationRecordKeyStorageSystem.cs index 05af0807f21..e9d68721b63 100644 --- a/Content.Shared/StationRecords/StationRecordKeyStorageSystem.cs +++ b/Content.Shared/StationRecords/StationRecordKeyStorageSystem.cs @@ -58,7 +58,7 @@ public void AssignKey(EntityUid uid, StationRecordKey key, StationRecordKeyStora var key = keyStorage.Key; keyStorage.Key = null; - Dirty(keyStorage); + Dirty(uid, keyStorage); return key; } diff --git a/Content.Shared/StatusEffect/StatusEffectPrototype.cs b/Content.Shared/StatusEffect/StatusEffectPrototype.cs index ae9e26879eb..8b1f84e4d81 100644 --- a/Content.Shared/StatusEffect/StatusEffectPrototype.cs +++ b/Content.Shared/StatusEffect/StatusEffectPrototype.cs @@ -10,7 +10,7 @@ public sealed partial class StatusEffectPrototype : IPrototype public string ID { get; private set; } = default!; [DataField("alert")] - public AlertType? Alert { get; private set; } + public ProtoId? Alert { get; private set; } /// /// Whether a status effect should be able to apply to any entity, diff --git a/Content.Shared/StatusEffect/StatusEffectsSystem.cs b/Content.Shared/StatusEffect/StatusEffectsSystem.cs index cc6dedae495..124dcdd8d67 100644 --- a/Content.Shared/StatusEffect/StatusEffectsSystem.cs +++ b/Content.Shared/StatusEffect/StatusEffectsSystem.cs @@ -234,7 +234,7 @@ public bool TryAddStatusEffect(EntityUid uid, string key, TimeSpan time, bool re _alertsSystem.ShowAlert(uid, proto.Alert.Value, null, cooldown1); } - Dirty(status); + Dirty(uid, status); RaiseLocalEvent(uid, new StatusEffectAddedEvent(uid, key)); return true; } @@ -246,7 +246,7 @@ public bool TryAddStatusEffect(EntityUid uid, string key, TimeSpan time, bool re /// This is mostly for stuns, since Stun and Knockdown share an alert key. Other times this pretty much /// will not be useful. /// - private (TimeSpan, TimeSpan)? GetAlertCooldown(EntityUid uid, AlertType alert, StatusEffectsComponent status) + private (TimeSpan, TimeSpan)? GetAlertCooldown(EntityUid uid, ProtoId alert, StatusEffectsComponent status) { (TimeSpan, TimeSpan)? maxCooldown = null; foreach (var kvp in status.ActiveEffects) @@ -310,7 +310,7 @@ public bool TryRemoveStatusEffect(EntityUid uid, string key, RemComp(uid); } - Dirty(status); + Dirty(uid, status); RaiseLocalEvent(uid, new StatusEffectEndedEvent(uid, key)); return true; } @@ -334,7 +334,7 @@ public bool TryRemoveAllStatusEffects(EntityUid uid, failed = true; } - Dirty(status); + Dirty(uid, status); return failed; } @@ -408,7 +408,7 @@ public bool TryAddTime(EntityUid uid, string key, TimeSpan time, _alertsSystem.ShowAlert(uid, proto.Alert.Value, null, cooldown); } - Dirty(status); + Dirty(uid, status); return true; } @@ -444,7 +444,7 @@ public bool TryRemoveTime(EntityUid uid, string key, TimeSpan time, _alertsSystem.ShowAlert(uid, proto.Alert.Value, null, cooldown); } - Dirty(status); + Dirty(uid, status); return true; } @@ -465,7 +465,7 @@ public bool TrySetTime(EntityUid uid, string key, TimeSpan time, status.ActiveEffects[key].Cooldown = (_gameTiming.CurTime, _gameTiming.CurTime + time); - Dirty(status); + Dirty(uid, status); return true; } diff --git a/Content.Shared/Storage/EntitySystems/BinSystem.cs b/Content.Shared/Storage/EntitySystems/BinSystem.cs index 17c3eb4288c..1cc95337ea4 100644 --- a/Content.Shared/Storage/EntitySystems/BinSystem.cs +++ b/Content.Shared/Storage/EntitySystems/BinSystem.cs @@ -135,7 +135,7 @@ public bool TryInsertIntoBin(EntityUid uid, EntityUid toInsert, BinComponent? co _container.Insert(toInsert, component.ItemContainer); component.Items.Add(toInsert); - Dirty(component); + Dirty(uid, component); return true; } @@ -151,7 +151,7 @@ public bool TryRemoveFromBin(EntityUid uid, EntityUid? toRemove, BinComponent? c if (!Resolve(uid, ref component)) return false; - if (!component.Items.Any()) + if (component.Items.Count == 0) return false; if (toRemove == null || toRemove != component.Items.LastOrDefault()) @@ -161,7 +161,7 @@ public bool TryRemoveFromBin(EntityUid uid, EntityUid? toRemove, BinComponent? c return false; component.Items.Remove(toRemove.Value); - Dirty(component); + Dirty(uid, component); return true; } } diff --git a/Content.Shared/Storage/EntitySystems/MagnetPickupSystem.cs b/Content.Shared/Storage/EntitySystems/MagnetPickupSystem.cs index 21861f57dab..bb1efba8692 100644 --- a/Content.Shared/Storage/EntitySystems/MagnetPickupSystem.cs +++ b/Content.Shared/Storage/EntitySystems/MagnetPickupSystem.cs @@ -1,5 +1,6 @@ using Content.Server.Storage.Components; using Content.Shared.Inventory; +using Content.Shared.Whitelist; using Robust.Shared.Map; using Robust.Shared.Physics.Components; using Robust.Shared.Timing; @@ -16,6 +17,8 @@ public sealed class MagnetPickupSystem : EntitySystem [Dependency] private readonly InventorySystem _inventory = default!; [Dependency] private readonly SharedTransformSystem _transform = default!; [Dependency] private readonly SharedStorageSystem _storage = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; + private static readonly TimeSpan ScanDelay = TimeSpan.FromSeconds(1); @@ -63,7 +66,7 @@ public override void Update(float frameTime) foreach (var near in _lookup.GetEntitiesInRange(uid, comp.Range, LookupFlags.Dynamic | LookupFlags.Sundries)) { - if (storage.Whitelist?.IsValid(near, EntityManager) == false) + if (_whitelistSystem.IsWhitelistFail(storage.Whitelist, near)) continue; if (!_physicsQuery.TryGetComponent(near, out var physics) || physics.BodyStatus != BodyStatus.OnGround) diff --git a/Content.Shared/Storage/EntitySystems/SharedEntityStorageSystem.cs b/Content.Shared/Storage/EntitySystems/SharedEntityStorageSystem.cs index 636c6038348..bb49725e047 100644 --- a/Content.Shared/Storage/EntitySystems/SharedEntityStorageSystem.cs +++ b/Content.Shared/Storage/EntitySystems/SharedEntityStorageSystem.cs @@ -15,6 +15,7 @@ using Content.Shared.Tools.Systems; using Content.Shared.Verbs; using Content.Shared.Wall; +using Content.Shared.Whitelist; using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; using Robust.Shared.Containers; @@ -45,6 +46,7 @@ public abstract class SharedEntityStorageSystem : EntitySystem [Dependency] protected readonly SharedPopupSystem Popup = default!; [Dependency] protected readonly SharedTransformSystem TransformSystem = default!; [Dependency] private readonly WeldableSystem _weldable = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; public const string ContainerName = "entity_storage"; @@ -89,7 +91,7 @@ protected virtual void OnComponentStartup(EntityUid uid, SharedEntityStorageComp protected void OnInteract(EntityUid uid, SharedEntityStorageComponent component, ActivateInWorldEvent args) { - if (args.Handled) + if (args.Handled || !args.Complex) return; args.Handled = true; @@ -432,7 +434,7 @@ private bool CanFit(EntityUid toInsert, EntityUid container, SharedEntityStorage var targetIsMob = HasComp(toInsert); var storageIsItem = HasComp(container); - var allowedToEat = component.Whitelist?.IsValid(toInsert) ?? HasComp(toInsert); + var allowedToEat = component.Whitelist == null ? HasComp(toInsert) : _whitelistSystem.IsValid(component.Whitelist, toInsert); // BEFORE REPLACING THIS WITH, I.E. A PROPERTY: // Make absolutely 100% sure you have worked out how to stop people ending up in backpacks. diff --git a/Content.Shared/Storage/EntitySystems/SharedStorageSystem.cs b/Content.Shared/Storage/EntitySystems/SharedStorageSystem.cs index 2e800c386b9..fad9d724388 100644 --- a/Content.Shared/Storage/EntitySystems/SharedStorageSystem.cs +++ b/Content.Shared/Storage/EntitySystems/SharedStorageSystem.cs @@ -2,17 +2,15 @@ using System.Diagnostics.CodeAnalysis; using System.Linq; using Content.Shared.ActionBlocker; -using Content.Shared.Administration; -using Content.Shared.Administration.Managers; using Content.Shared.Containers.ItemSlots; using Content.Shared.Destructible; using Content.Shared.DoAfter; -using Content.Shared.Ghost; using Content.Shared.Hands.Components; using Content.Shared.Hands.EntitySystems; using Content.Shared.Implants.Components; using Content.Shared.Input; using Content.Shared.Interaction; +using Content.Shared.Interaction.Components; using Content.Shared.Inventory; using Content.Shared.Item; using Content.Shared.Lock; @@ -24,6 +22,7 @@ using Content.Shared.Storage.Components; using Content.Shared.Timing; using Content.Shared.Verbs; +using Content.Shared.Whitelist; using Robust.Shared.Audio.Systems; using Robust.Shared.Containers; using Robust.Shared.GameStates; @@ -41,7 +40,6 @@ public abstract class SharedStorageSystem : EntitySystem { [Dependency] private readonly IPrototypeManager _prototype = default!; [Dependency] protected readonly IRobustRandom Random = default!; - [Dependency] private readonly ISharedAdminManager _admin = default!; [Dependency] protected readonly ActionBlockerSystem ActionBlocker = default!; [Dependency] private readonly EntityLookupSystem _entityLookupSystem = default!; [Dependency] private readonly SharedAppearanceSystem _appearance = default!; @@ -58,6 +56,7 @@ public abstract class SharedStorageSystem : EntitySystem [Dependency] protected readonly SharedTransformSystem TransformSystem = default!; [Dependency] private readonly SharedUserInterfaceSystem _ui = default!; [Dependency] protected readonly UseDelaySystem UseDelay = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; private EntityQuery _itemQuery; private EntityQuery _stackQuery; @@ -250,17 +249,8 @@ private void OnBoundUIClosed(EntityUid uid, StorageComponent storageComp, BoundU private void AddUiVerb(EntityUid uid, StorageComponent component, GetVerbsEvent args) { - var silent = false; - if (!args.CanAccess || !args.CanInteract || TryComp(uid, out var lockComponent) && lockComponent.Locked) - { - // we allow admins to open the storage anyways - if (!_admin.HasAdminFlag(args.User, AdminFlags.Admin)) - return; - - silent = true; - } - - silent |= HasComp(args.User); + if (!CanInteract(args.User, (uid, component), args.CanAccess && args.CanInteract)) + return; // Does this player currently have the storage UI open? var uiOpen = _ui.IsUiOpen(uid, StorageComponent.StorageUiKey.Key, args.User); @@ -275,7 +265,7 @@ private void AddUiVerb(EntityUid uid, StorageComponent component, GetVerbsEvent< } else { - OpenStorageUI(uid, args.User, component, silent); + OpenStorageUI(uid, args.User, component); } } }; @@ -299,20 +289,23 @@ private void AddUiVerb(EntityUid uid, StorageComponent component, GetVerbsEvent< /// Opens the storage UI for an entity /// /// The entity to open the UI for - public void OpenStorageUI(EntityUid uid, EntityUid entity, StorageComponent? storageComp = null, bool silent = false) + public void OpenStorageUI(EntityUid uid, EntityUid entity, StorageComponent? storageComp = null, bool silent = true) { if (!Resolve(uid, ref storageComp, false)) return; // prevent spamming bag open / honkerton honk sound - silent |= TryComp(uid, out var useDelay) && UseDelay.IsDelayed((uid, useDelay)); + silent |= TryComp(uid, out var useDelay) && UseDelay.IsDelayed((uid, useDelay), id: OpenUiUseDelayID); + if (!CanInteract(entity, (uid, storageComp), silent: silent)) + return; + if (!silent) { if (!_ui.IsUiOpen(uid, StorageComponent.StorageUiKey.Key)) Audio.PlayPredicted(storageComp.StorageOpenSound, uid, entity); if (useDelay != null) - UseDelay.TryResetDelay((uid, useDelay)); + UseDelay.TryResetDelay((uid, useDelay), id: OpenUiUseDelayID); } _ui.OpenUi(uid, StorageComponent.StorageUiKey.Key, entity); @@ -327,7 +320,7 @@ private void AddTransferVerbs(EntityUid uid, StorageComponent component, GetVerb var entities = component.Container.ContainedEntities; - if (entities.Count == 0 || TryComp(uid, out LockComponent? lockComponent) && lockComponent.Locked) + if (entities.Count == 0 || !CanInteract(args.User, (uid, component))) return; // if the target is storage, add a verb to transfer storage. @@ -338,7 +331,7 @@ private void AddTransferVerbs(EntityUid uid, StorageComponent component, GetVerb { Text = Loc.GetString("storage-component-transfer-verb"), IconEntity = GetNetEntity(args.Using), - Act = () => TransferEntities(uid, args.Target, args.User, component, lockComponent, targetStorage, targetLock) + Act = () => TransferEntities(uid, args.Target, args.User, component, null, targetStorage, targetLock) }; args.Verbs.Add(verb); @@ -351,7 +344,7 @@ private void AddTransferVerbs(EntityUid uid, StorageComponent component, GetVerb /// true if inserted, false otherwise private void OnInteractUsing(EntityUid uid, StorageComponent storageComp, InteractUsingEvent args) { - if (args.Handled || !storageComp.ClickInsert || TryComp(uid, out LockComponent? lockComponent) && lockComponent.Locked) + if (args.Handled || !CanInteract(args.User, (uid, storageComp), storageComp.ClickInsert, false)) return; if (HasComp(uid)) @@ -369,18 +362,14 @@ private void OnInteractUsing(EntityUid uid, StorageComponent storageComp, Intera /// private void OnActivate(EntityUid uid, StorageComponent storageComp, ActivateInWorldEvent args) { - if (args.Handled || TryComp(uid, out var lockComponent) && lockComponent.Locked) + if (args.Handled || !CanInteract(args.User, (uid, storageComp), storageComp.ClickInsert)) return; // Toggle if (_ui.IsUiOpen(uid, StorageComponent.StorageUiKey.Key, args.User)) - { _ui.CloseUi(uid, StorageComponent.StorageUiKey.Key, args.User); - } else - { - OpenStorageUI(uid, args.User, storageComp); - } + OpenStorageUI(uid, args.User, storageComp, false); args.Handled = true; } @@ -393,7 +382,7 @@ private void OnImplantActivate(EntityUid uid, StorageComponent storageComp, Open if (args.Handled) return; - OpenStorageUI(uid, args.Performer, storageComp); + OpenStorageUI(uid, args.Performer, storageComp, false); args.Handled = true; } @@ -868,13 +857,8 @@ public bool CanInsert( return false; } - if (storageComp.Whitelist?.IsValid(insertEnt, EntityManager) == false) - { - reason = "comp-storage-invalid-container"; - return false; - } - - if (storageComp.Blacklist?.IsValid(insertEnt, EntityManager) == true) + if (_whitelistSystem.IsWhitelistFail(storageComp.Whitelist, insertEnt) || + _whitelistSystem.IsBlacklistPass(storageComp.Blacklist, insertEnt)) { reason = "comp-storage-invalid-container"; return false; @@ -1407,7 +1391,7 @@ public ItemSizePrototype GetMaxItemSize(Entity uid) } /// - /// Checks if a storage's UI is open by anyone when locked, and closes it unless they're an admin. + /// Checks if a storage's UI is open by anyone when locked, and closes it. /// private void OnLockToggled(EntityUid uid, StorageComponent component, ref LockToggledEvent args) { @@ -1417,11 +1401,8 @@ private void OnLockToggled(EntityUid uid, StorageComponent component, ref LockTo // Gets everyone looking at the UI foreach (var actor in _ui.GetActors(uid, StorageComponent.StorageUiKey.Key).ToList()) { - if (_admin.HasAdminFlag(actor, AdminFlags.Admin)) - continue; - - // And closes it unless they're an admin - _ui.CloseUi(uid, StorageComponent.StorageUiKey.Key, actor); + if (!CanInteract(actor, (uid, component))) + _ui.CloseUi(uid, StorageComponent.StorageUiKey.Key, actor); } } @@ -1459,7 +1440,10 @@ private void HandleOpenSlotUI(ICommonSession? session, string slot) if (!ActionBlocker.CanInteract(playerEnt, storageEnt)) return; - OpenStorageUI(storageEnt.Value, playerEnt); + if (!_ui.IsUiOpen(storageEnt.Value, StorageComponent.StorageUiKey.Key, playerEnt)) + OpenStorageUI(storageEnt.Value, playerEnt, silent: false); + else + _ui.CloseUi(storageEnt.Value, StorageComponent.StorageUiKey.Key, playerEnt); } protected void ClearCantFillReasons() @@ -1469,6 +1453,20 @@ protected void ClearCantFillReasons() #endif } + private bool CanInteract(EntityUid user, Entity storage, bool canInteract = true, bool silent = true) + { + if (HasComp(user)) + return true; + + if (!canInteract) + return false; + + var ev = new StorageInteractAttemptEvent(silent); + RaiseLocalEvent(storage, ref ev); + + return !ev.Cancelled; + } + /// /// Plays a clientside pickup animation for the specified uid. /// diff --git a/Content.Shared/Storage/StorageComponent.cs b/Content.Shared/Storage/StorageComponent.cs index ef682dd4f94..2860f8dacfe 100644 --- a/Content.Shared/Storage/StorageComponent.cs +++ b/Content.Shared/Storage/StorageComponent.cs @@ -5,7 +5,6 @@ using Robust.Shared.Containers; using Robust.Shared.GameStates; using Robust.Shared.Map; -using Robust.Shared.Player; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; @@ -228,6 +227,9 @@ public AnimateInsertingEntitiesEvent(NetEntity storage, List storedEn } } + [ByRefEvent] + public record struct StorageInteractAttemptEvent(bool Silent, bool Cancelled = false); + [NetSerializable] [Serializable] public enum StorageVisuals : byte diff --git a/Content.Shared/Stunnable/SharedStunSystem.cs b/Content.Shared/Stunnable/SharedStunSystem.cs index 05d6b8ec533..989af647dc8 100644 --- a/Content.Shared/Stunnable/SharedStunSystem.cs +++ b/Content.Shared/Stunnable/SharedStunSystem.cs @@ -1,7 +1,5 @@ using Content.Shared.ActionBlocker; using Content.Shared.Administration.Logs; -using Content.Shared.Audio; -using Content.Shared.DragDrop; using Content.Shared.Interaction; using Content.Shared.Interaction.Events; using Content.Shared.Inventory.Events; @@ -11,13 +9,11 @@ using Content.Shared.Hands; using Content.Shared.Mobs; using Content.Shared.Mobs.Components; -using Content.Shared.Mobs.Systems; using Content.Shared.Movement.Events; using Content.Shared.Movement.Systems; using Content.Shared.Standing; using Content.Shared.StatusEffect; using Content.Shared.Throwing; -using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; using Robust.Shared.Containers; using Robust.Shared.GameStates; @@ -88,15 +84,15 @@ private void OnMobStateChanged(EntityUid uid, MobStateComponent component, MobSt case MobState.Alive: break; case MobState.Critical: - { - _statusEffect.TryRemoveStatusEffect(uid, "Stun"); - break; - } + { + _statusEffect.TryRemoveStatusEffect(uid, "Stun"); + break; + } case MobState.Dead: - { - _statusEffect.TryRemoveStatusEffect(uid, "Stun"); - break; - } + { + _statusEffect.TryRemoveStatusEffect(uid, "Stun"); + break; + } case MobState.Invalid: default: return; @@ -176,8 +172,7 @@ public bool TryStun(EntityUid uid, TimeSpan time, bool refresh, /// /// Knocks down the entity, making it fall to the ground. /// - public bool TryKnockdown(EntityUid uid, TimeSpan time, bool refresh, - DropHeldItemsBehavior behavior = DropHeldItemsBehavior.DropIfStanding, + public bool TryKnockdown(EntityUid uid, TimeSpan time, bool refresh, DropHeldItemsBehavior behavior, StatusEffectsComponent? status = null) { if (time <= TimeSpan.Zero || !Resolve(uid, ref status, false)) @@ -258,11 +253,11 @@ private void OnInteractHand(EntityUid uid, KnockedDownComponent knocked, Interac return; // Set it to half the help interval so helping is actually useful... - knocked.HelpTimer = knocked.HelpInterval/2f; + knocked.HelpTimer = knocked.HelpInterval / 2f; _statusEffect.TryRemoveTime(uid, "KnockedDown", TimeSpan.FromSeconds(knocked.HelpInterval)); _audio.PlayPredicted(knocked.StunAttemptSound, uid, args.User); - Dirty(knocked); + Dirty(uid, knocked); args.Handled = true; } diff --git a/Content.Shared/SubFloor/SharedTrayScannerSystem.cs b/Content.Shared/SubFloor/SharedTrayScannerSystem.cs index 3dc1575ddb9..8903747e430 100644 --- a/Content.Shared/SubFloor/SharedTrayScannerSystem.cs +++ b/Content.Shared/SubFloor/SharedTrayScannerSystem.cs @@ -26,7 +26,11 @@ public override void Initialize() private void OnTrayScannerActivate(EntityUid uid, TrayScannerComponent scanner, ActivateInWorldEvent args) { + if (args.Handled || !args.Complex) + return; + SetScannerEnabled(uid, !scanner.Enabled, scanner); + args.Handled = true; } private void SetScannerEnabled(EntityUid uid, bool enabled, TrayScannerComponent? scanner = null) @@ -35,7 +39,7 @@ private void SetScannerEnabled(EntityUid uid, bool enabled, TrayScannerComponent return; scanner.Enabled = enabled; - Dirty(scanner); + Dirty(uid, scanner); // We don't remove from _activeScanners on disabled, because the update function will handle that, as well as // managing the revealed subfloor entities diff --git a/Content.Shared/Tag/TagSystem.cs b/Content.Shared/Tag/TagSystem.cs index 0707308e486..b9fef076c88 100644 --- a/Content.Shared/Tag/TagSystem.cs +++ b/Content.Shared/Tag/TagSystem.cs @@ -79,7 +79,7 @@ private void AssertValidTag(string id) /// public bool AddTag(EntityUid entity, string id) { - return AddTag(EnsureComp(entity), id); + return AddTag(entity, EnsureComp(entity), id); } /// @@ -95,7 +95,7 @@ public bool AddTag(EntityUid entity, string id) /// public bool AddTags(EntityUid entity, params string[] ids) { - return AddTags(EnsureComp(entity), ids); + return AddTags(entity, EnsureComp(entity), ids); } /// @@ -111,7 +111,7 @@ public bool AddTags(EntityUid entity, params string[] ids) /// public bool AddTags(EntityUid entity, IEnumerable ids) { - return AddTags(EnsureComp(entity), ids); + return AddTags(entity, EnsureComp(entity), ids); } /// @@ -128,8 +128,8 @@ public bool AddTags(EntityUid entity, IEnumerable ids) /// public bool TryAddTag(EntityUid entity, string id) { - return _tagQuery.TryComp(entity, out var component) && - AddTag(component, id); + return TryComp(entity, out var component) && + AddTag(entity, component, id); } /// @@ -146,8 +146,8 @@ public bool TryAddTag(EntityUid entity, string id) /// public bool TryAddTags(EntityUid entity, params string[] ids) { - return _tagQuery.TryComp(entity, out var component) && - AddTags(component, ids); + return TryComp(entity, out var component) && + AddTags(entity, component, ids); } /// @@ -164,8 +164,8 @@ public bool TryAddTags(EntityUid entity, params string[] ids) /// public bool TryAddTags(EntityUid entity, IEnumerable ids) { - return _tagQuery.TryComp(entity, out var component) && - AddTags(component, ids); + return TryComp(entity, out var component) && + AddTags(entity, component, ids); } /// @@ -333,8 +333,8 @@ public bool HasAnyTag(EntityUid entity, IEnumerable ids) /// public bool RemoveTag(EntityUid entity, string id) { - return _tagQuery.TryComp(entity, out var component) && - RemoveTag(component, id); + return TryComp(entity, out var component) && + RemoveTag(entity, component, id); } /// @@ -350,8 +350,8 @@ public bool RemoveTag(EntityUid entity, string id) /// public bool RemoveTags(EntityUid entity, params string[] ids) { - return _tagQuery.TryComp(entity, out var component) && - RemoveTags(component, ids); + return TryComp(entity, out var component) && + RemoveTags(entity, component, ids); } /// @@ -367,8 +367,8 @@ public bool RemoveTags(EntityUid entity, params string[] ids) /// public bool RemoveTags(EntityUid entity, IEnumerable ids) { - return _tagQuery.TryComp(entity, out var component) && - RemoveTags(component, ids); + return TryComp(entity, out var component) && + RemoveTags(entity, component, ids); } /// @@ -379,14 +379,14 @@ public bool RemoveTags(EntityUid entity, IEnumerable ids) /// /// Thrown if no exists with the given id. /// - public bool AddTag(TagComponent component, string id) + public bool AddTag(EntityUid uid, TagComponent component, string id) { AssertValidTag(id); var added = component.Tags.Add(id); if (added) { - Dirty(component); + Dirty(uid, component); return true; } @@ -401,9 +401,9 @@ public bool AddTag(TagComponent component, string id) /// /// Thrown if one of the ids represents an unregistered . /// - public bool AddTags(TagComponent component, params string[] ids) + public bool AddTags(EntityUid uid, TagComponent component, params string[] ids) { - return AddTags(component, ids.AsEnumerable()); + return AddTags(uid, component, ids.AsEnumerable()); } /// @@ -414,7 +414,7 @@ public bool AddTags(TagComponent component, params string[] ids) /// /// Thrown if one of the ids represents an unregistered . /// - public bool AddTags(TagComponent component, IEnumerable ids) + public bool AddTags(EntityUid uid, TagComponent component, IEnumerable ids) { var count = component.Tags.Count; @@ -426,7 +426,7 @@ public bool AddTags(TagComponent component, IEnumerable ids) if (component.Tags.Count > count) { - Dirty(component); + Dirty(uid, component); return true; } @@ -642,13 +642,13 @@ public bool HasAnyTag(TagComponent comp, List> ids) /// /// Thrown if no exists with the given id. /// - public bool RemoveTag(TagComponent component, string id) + public bool RemoveTag(EntityUid uid, TagComponent component, string id) { AssertValidTag(id); if (component.Tags.Remove(id)) { - Dirty(component); + Dirty(uid, component); return true; } @@ -665,9 +665,9 @@ public bool RemoveTag(TagComponent component, string id) /// /// Thrown if one of the ids represents an unregistered . /// - public bool RemoveTags(TagComponent component, params string[] ids) + public bool RemoveTags(EntityUid uid, TagComponent component, params string[] ids) { - return RemoveTags(component, ids.AsEnumerable()); + return RemoveTags(uid, component, ids.AsEnumerable()); } /// @@ -678,7 +678,7 @@ public bool RemoveTags(TagComponent component, params string[] ids) /// /// Thrown if one of the ids represents an unregistered . /// - public bool RemoveTags(TagComponent component, IEnumerable ids) + public bool RemoveTags(EntityUid uid, TagComponent component, IEnumerable ids) { var count = component.Tags.Count; @@ -690,7 +690,7 @@ public bool RemoveTags(TagComponent component, IEnumerable ids) if (component.Tags.Count < count) { - Dirty(component); + Dirty(uid, component); return true; } diff --git a/Content.Shared/Targeting/Events.cs b/Content.Shared/Targeting/Events.cs new file mode 100644 index 00000000000..1b090be3e86 --- /dev/null +++ b/Content.Shared/Targeting/Events.cs @@ -0,0 +1,38 @@ +using Content.Shared.Targeting; +using Robust.Shared.Serialization; + +namespace Content.Shared.Targeting.Events; + +[Serializable, NetSerializable] +public sealed class TargetChangeEvent : EntityEventArgs +{ + public NetEntity Uid { get; } + public TargetBodyPart BodyPart { get; } + public TargetChangeEvent(NetEntity uid, TargetBodyPart bodyPart) + { + Uid = uid; + BodyPart = bodyPart; + } +} + +[Serializable, NetSerializable] +public sealed class TargetIntegrityChangeEvent : EntityEventArgs +{ + public NetEntity Uid { get; } + public bool RefreshUi { get; } + public TargetIntegrityChangeEvent(NetEntity uid, bool refreshUi = true) + { + Uid = uid; + RefreshUi = refreshUi; + } +} + +public sealed class RefreshInventorySlotsEvent : EntityEventArgs +{ + public string SlotName { get; } + + public RefreshInventorySlotsEvent(string slotName) + { + SlotName = slotName; + } +} diff --git a/Content.Shared/Targeting/SharedTargetingSystem.cs b/Content.Shared/Targeting/SharedTargetingSystem.cs new file mode 100644 index 00000000000..4f2248683e6 --- /dev/null +++ b/Content.Shared/Targeting/SharedTargetingSystem.cs @@ -0,0 +1,26 @@ +namespace Content.Shared.Targeting; +public abstract class SharedTargetingSystem : EntitySystem +{ + /// + /// Returns all Valid target body parts as an array. + /// + public static TargetBodyPart[] GetValidParts() + { + var parts = new[] + { + TargetBodyPart.Head, + TargetBodyPart.Torso, + //TargetBodyPart.Groin, + TargetBodyPart.LeftArm, + TargetBodyPart.LeftHand, + TargetBodyPart.LeftLeg, + TargetBodyPart.LeftFoot, + TargetBodyPart.RightArm, + TargetBodyPart.RightHand, + TargetBodyPart.RightLeg, + TargetBodyPart.RightFoot, + }; + + return parts; + } +} diff --git a/Content.Shared/Targeting/TargetBodyPart.cs b/Content.Shared/Targeting/TargetBodyPart.cs new file mode 100644 index 00000000000..dd894545445 --- /dev/null +++ b/Content.Shared/Targeting/TargetBodyPart.cs @@ -0,0 +1,31 @@ +namespace Content.Shared.Targeting; + + +/// +/// Represents and enum of possible target parts. +/// +/// +/// To get all body parts as an Array, use static +/// method in SharedTargetingSystem GetValidParts. +/// +[Flags] +public enum TargetBodyPart : ushort +{ + Head = 1, + Torso = 1 << 1, + Groin = 1 << 2, + LeftArm = 1 << 3, + LeftHand = 1 << 4, + RightArm = 1 << 5, + RightHand = 1 << 6, + LeftLeg = 1 << 7, + LeftFoot = 1 << 8, + RightLeg = 1 << 9, + RightFoot = 1 << 10, + + Hands = LeftHand | RightHand, + Arms = LeftArm | RightArm, + Legs = LeftLeg | RightLeg, + Feet = LeftFoot | RightFoot, + All = Head | Torso | Groin | LeftArm | LeftHand | RightArm | RightHand | LeftLeg | LeftFoot | RightLeg | RightFoot, +} diff --git a/Content.Shared/Targeting/TargetIntegrity.cs b/Content.Shared/Targeting/TargetIntegrity.cs new file mode 100644 index 00000000000..9b4515fcfae --- /dev/null +++ b/Content.Shared/Targeting/TargetIntegrity.cs @@ -0,0 +1,13 @@ +namespace Content.Shared.Targeting; +public enum TargetIntegrity +{ + Healthy = 0, + LightlyWounded = 1, + SomewhatWounded = 2, + ModeratelyWounded = 3, + HeavilyWounded = 4, + CriticallyWounded = 5, + Severed = 6, + Dead = 7, + Disabled = 8, +} \ No newline at end of file diff --git a/Content.Shared/Targeting/TargetingComponent.cs b/Content.Shared/Targeting/TargetingComponent.cs new file mode 100644 index 00000000000..cb74beee32f --- /dev/null +++ b/Content.Shared/Targeting/TargetingComponent.cs @@ -0,0 +1,59 @@ +using Robust.Shared.Audio; +using Robust.Shared.GameObjects; +using Robust.Shared.GameStates; + +namespace Content.Shared.Targeting; + +/// +/// Controls entity limb targeting for actions. +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class TargetingComponent : Component +{ + [ViewVariables, AutoNetworkedField] + public TargetBodyPart Target = TargetBodyPart.Torso; + + /// + /// What odds does the entity have of targeting each body part? + /// + [DataField] + public Dictionary TargetOdds = new() + { + { TargetBodyPart.Head, 0.1f }, + { TargetBodyPart.Torso, 0.3f }, + { TargetBodyPart.Groin, 0.1f }, + { TargetBodyPart.LeftArm, 0.1f }, + { TargetBodyPart.LeftHand, 0.05f }, + { TargetBodyPart.RightArm, 0.1f }, + { TargetBodyPart.RightHand, 0.05f }, + { TargetBodyPart.LeftLeg, 0.1f }, + { TargetBodyPart.LeftFoot, 0.05f }, + { TargetBodyPart.RightLeg, 0.1f }, + { TargetBodyPart.RightFoot, 0.05f } + }; + + /// + /// What is the current integrity of each body part? + /// + [ViewVariables, AutoNetworkedField] + public Dictionary BodyStatus = new() + { + { TargetBodyPart.Head, TargetIntegrity.Healthy }, + { TargetBodyPart.Torso, TargetIntegrity.Healthy }, + { TargetBodyPart.Groin, TargetIntegrity.Healthy }, + { TargetBodyPart.LeftArm, TargetIntegrity.Healthy }, + { TargetBodyPart.LeftHand, TargetIntegrity.Healthy }, + { TargetBodyPart.RightArm, TargetIntegrity.Healthy }, + { TargetBodyPart.RightHand, TargetIntegrity.Healthy }, + { TargetBodyPart.LeftLeg, TargetIntegrity.Healthy }, + { TargetBodyPart.LeftFoot, TargetIntegrity.Healthy }, + { TargetBodyPart.RightLeg, TargetIntegrity.Healthy }, + { TargetBodyPart.RightFoot, TargetIntegrity.Healthy } + }; + + /// + /// What noise does the entity play when swapping targets? + /// + [DataField] + public string SwapSound = "/Audio/Effects/toggleoncombat.ogg"; +} diff --git a/Content.Shared/Teleportation/Systems/LinkedEntitySystem.cs b/Content.Shared/Teleportation/Systems/LinkedEntitySystem.cs index bf2d087c761..35ce5665ddf 100644 --- a/Content.Shared/Teleportation/Systems/LinkedEntitySystem.cs +++ b/Content.Shared/Teleportation/Systems/LinkedEntitySystem.cs @@ -87,7 +87,7 @@ public bool OneWayLink(EntityUid source, EntityUid target, bool deleteOnEmptyLin /// Resolve comp /// Whether unlinking was successful (e.g. they both were actually linked to one another) public bool TryUnlink(EntityUid first, EntityUid second, - LinkedEntityComponent? firstLink=null, LinkedEntityComponent? secondLink=null) + LinkedEntityComponent? firstLink = null, LinkedEntityComponent? secondLink = null) { if (!Resolve(first, ref firstLink)) return false; @@ -101,8 +101,8 @@ public bool TryUnlink(EntityUid first, EntityUid second, _appearance.SetData(first, LinkedEntityVisuals.HasAnyLinks, firstLink.LinkedEntities.Any()); _appearance.SetData(second, LinkedEntityVisuals.HasAnyLinks, secondLink.LinkedEntities.Any()); - Dirty(firstLink); - Dirty(secondLink); + Dirty(first, firstLink); + Dirty(second, secondLink); if (firstLink.LinkedEntities.Count == 0 && firstLink.DeleteOnEmptyLinks) QueueDel(first); diff --git a/Content.Shared/Teleportation/Systems/SwapTeleporterSystem.cs b/Content.Shared/Teleportation/Systems/SwapTeleporterSystem.cs index 62c0b0f44e4..bc73baa61ad 100644 --- a/Content.Shared/Teleportation/Systems/SwapTeleporterSystem.cs +++ b/Content.Shared/Teleportation/Systems/SwapTeleporterSystem.cs @@ -101,6 +101,9 @@ private void OnGetAltVerb(Entity ent, ref GetVerbsEvent private void OnActivateInWorld(Entity ent, ref ActivateInWorldEvent args) { + if (args.Handled || !args.Complex) + return; + var (uid, comp) = ent; var user = args.User; if (comp.TeleportTime != null) @@ -130,6 +133,7 @@ private void OnActivateInWorld(Entity ent, ref Activate comp.NextTeleportUse = _timing.CurTime + comp.Cooldown; comp.TeleportTime = _timing.CurTime + comp.TeleportDelay; Dirty(uid, comp); + args.Handled = true; } public void DoTeleport(Entity ent) diff --git a/Content.Shared/Throwing/BeforeThrowEvent.cs b/Content.Shared/Throwing/BeforeThrowEvent.cs index 36e7dd758b8..f949c16b0ea 100644 --- a/Content.Shared/Throwing/BeforeThrowEvent.cs +++ b/Content.Shared/Throwing/BeforeThrowEvent.cs @@ -20,3 +20,22 @@ public BeforeThrowEvent(EntityUid itemUid, Vector2 direction, float throwStrengt public bool Cancelled = false; } + +[ByRefEvent] +public struct BeforeGettingThrownEvent +{ + public BeforeGettingThrownEvent(EntityUid itemUid, Vector2 direction, float throwStrength, EntityUid playerUid) + { + ItemUid = itemUid; + Direction = direction; + ThrowStrength = throwStrength; + PlayerUid = playerUid; + } + + public EntityUid ItemUid { get; set; } + public Vector2 Direction { get; } + public float ThrowStrength { get; set;} + public EntityUid PlayerUid { get; } + + public bool Cancelled = false; +} diff --git a/Content.Shared/Throwing/ThrowEvents.cs b/Content.Shared/Throwing/ThrowEvents.cs index 5ea78b862ed..ea13a7dbe40 100644 --- a/Content.Shared/Throwing/ThrowEvents.cs +++ b/Content.Shared/Throwing/ThrowEvents.cs @@ -1,3 +1,5 @@ +using Content.Shared.Targeting; + namespace Content.Shared.Throwing { /// @@ -10,17 +12,19 @@ public abstract class ThrowEvent : HandledEntityEventArgs /// The entity that threw . /// public EntityUid? User { get; } - // End Nyano code. + // End Nyano code. public readonly EntityUid Thrown; public readonly EntityUid Target; public ThrownItemComponent Component; + public TargetBodyPart? TargetPart; - public ThrowEvent(EntityUid? user, EntityUid thrown, EntityUid target, ThrownItemComponent component) //Nyano - Summary: User added. + public ThrowEvent(EntityUid? user, EntityUid thrown, EntityUid target, ThrownItemComponent component, TargetBodyPart? targetPart) //Nyano - Summary: User added. { User = user; //Nyano - Summary: User added. Thrown = thrown; Target = target; Component = component; + TargetPart = targetPart; } } @@ -29,7 +33,7 @@ public ThrowEvent(EntityUid? user, EntityUid thrown, EntityUid target, ThrownIte /// public sealed class ThrowHitByEvent : ThrowEvent { - public ThrowHitByEvent(EntityUid? user, EntityUid thrown, EntityUid target, ThrownItemComponent component) : base(user, thrown, target, component) //Nyano - Summary: User added. + public ThrowHitByEvent(EntityUid? user, EntityUid thrown, EntityUid target, ThrownItemComponent component, TargetBodyPart? targetPart) : base(user, thrown, target, component, targetPart) //Nyano - Summary: User added. { } } @@ -39,7 +43,7 @@ public ThrowHitByEvent(EntityUid? user, EntityUid thrown, EntityUid target, Thro /// public sealed class ThrowDoHitEvent : ThrowEvent { - public ThrowDoHitEvent(EntityUid thrown, EntityUid target, ThrownItemComponent component) : base(null, thrown, target, component) //Nyano - Summary: User added. + public ThrowDoHitEvent(EntityUid thrown, EntityUid target, ThrownItemComponent component, TargetBodyPart? targetPart) : base(null, thrown, target, component, targetPart) //Nyano - Summary: User added. { } } diff --git a/Content.Shared/Throwing/ThrownItemImmuneComponent.cs b/Content.Shared/Throwing/ThrownItemImmuneComponent.cs new file mode 100644 index 00000000000..f2bbd29535a --- /dev/null +++ b/Content.Shared/Throwing/ThrownItemImmuneComponent.cs @@ -0,0 +1,10 @@ +namespace Content.Shared.Throwing +{ + /// + /// This is used for entities that are immune to getting hit by thrown items. + /// + [RegisterComponent] + public sealed partial class ThrownItemImmuneComponent : Component + { + } +} diff --git a/Content.Shared/Throwing/ThrownItemSystem.cs b/Content.Shared/Throwing/ThrownItemSystem.cs index ef28db26727..f607a2dc934 100644 --- a/Content.Shared/Throwing/ThrownItemSystem.cs +++ b/Content.Shared/Throwing/ThrownItemSystem.cs @@ -1,5 +1,6 @@ using System.Linq; using Content.Shared.Administration.Logs; +using Content.Shared.Body.Systems; using Content.Shared.Database; using Content.Shared.Gravity; using Content.Shared.Physics; @@ -23,6 +24,7 @@ public sealed class ThrownItemSystem : EntitySystem [Dependency] private readonly FixtureSystem _fixtures = default!; [Dependency] private readonly SharedPhysicsSystem _physics = default!; [Dependency] private readonly SharedGravitySystem _gravity = default!; + [Dependency] private readonly SharedBodySystem _body = default!; private const string ThrowingFixture = "throw-fixture"; @@ -133,15 +135,20 @@ public void LandComponent(EntityUid uid, ThrownItemComponent thrownItem, Physics /// public void ThrowCollideInteraction(ThrownItemComponent component, EntityUid thrown, EntityUid target) { + if (HasComp(target)) + return; + if (component.Thrower is not null) _adminLogger.Add(LogType.ThrowHit, LogImpact.Low, $"{ToPrettyString(thrown):thrown} thrown by {ToPrettyString(component.Thrower.Value):thrower} hit {ToPrettyString(target):target}."); - if (component.Thrower is not null)// Nyano - Summary: Gotta check if there was a thrower. - RaiseLocalEvent(target, new ThrowHitByEvent(component.Thrower.Value, thrown, target, component), true); // Nyano - Summary: Gotta update for who threw it. + var targetPart = _body.GetRandomBodyPart(target); + + if (component.Thrower is not null)// Nyano - Summary: Gotta check if there was a thrower. + RaiseLocalEvent(target, new ThrowHitByEvent(component.Thrower.Value, thrown, target, component, targetPart), true); // Nyano - Summary: Gotta update for who threw it. else - RaiseLocalEvent(target, new ThrowHitByEvent(null, thrown, target, component), true); // Nyano - Summary: No thrower. - RaiseLocalEvent(thrown, new ThrowDoHitEvent(thrown, target, component), true); + RaiseLocalEvent(target, new ThrowHitByEvent(null, thrown, target, component, targetPart), true); // Nyano - Summary: No thrower. + RaiseLocalEvent(thrown, new ThrowDoHitEvent(thrown, target, component, targetPart), true); } public override void Update(float frameTime) diff --git a/Content.Shared/TimeCycle/TimeCycleComponent.cs b/Content.Shared/TimeCycle/TimeCycleComponent.cs new file mode 100644 index 00000000000..21933ee26b6 --- /dev/null +++ b/Content.Shared/TimeCycle/TimeCycleComponent.cs @@ -0,0 +1,27 @@ +namespace Content.Shared.TimeCycle; + +[RegisterComponent] +public sealed partial class TimeCycleComponent : Component +{ + // Delayed time, before minute have been passed + public TimeSpan? DelayTime; + + [DataField] + public bool SpeedUp; + + [DataField] + public bool Paused; + + [DataField] + public TimeSpan MinuteDuration { get; set; } = TimeSpan.FromSeconds(4); + + [DataField] + public TimeSpan SpeedUpMinuteDuration { get; set; } = TimeSpan.FromMilliseconds(10); + + // NOTE: Default time should be is noon + [DataField] + public TimeSpan CurrentTime { get; set; } = TimeSpan.FromHours(12); + + [DataField] + public string PalettePrototype = "DefaultTimeCycle"; +} diff --git a/Content.Shared/TimeCycle/TimeCyclePalettePrototype.cs b/Content.Shared/TimeCycle/TimeCyclePalettePrototype.cs new file mode 100644 index 00000000000..f4c793048e0 --- /dev/null +++ b/Content.Shared/TimeCycle/TimeCyclePalettePrototype.cs @@ -0,0 +1,16 @@ +using Robust.Shared.Prototypes; + +namespace Content.Shared.TimeCycle; + +/// +/// +/// +[Prototype("timeCyclePalette")] +public sealed partial class TimeCyclePalettePrototype : IPrototype +{ + [IdDataField] + public string ID { get; private set; } = default!; + + [DataField] + public Dictionary TimeEntries = default!; +} diff --git a/Content.Shared/Toilet/Systems/SharedToiletSystem.cs b/Content.Shared/Toilet/Systems/SharedToiletSystem.cs index 87df69e88da..f11af335527 100644 --- a/Content.Shared/Toilet/Systems/SharedToiletSystem.cs +++ b/Content.Shared/Toilet/Systems/SharedToiletSystem.cs @@ -79,7 +79,7 @@ private void OnToggleSeatVerb(EntityUid uid, ToiletComponent component, GetVerbs private void OnActivateInWorld(EntityUid uid, ToiletComponent comp, ActivateInWorldEvent args) { - if (args.Handled) + if (args.Handled || !args.Complex) return; args.Handled = true; diff --git a/Content.Shared/Tools/Components/ToolTileCompatibleComponent.cs b/Content.Shared/Tools/Components/ToolTileCompatibleComponent.cs index caac41a3def..272a39cfbc3 100644 --- a/Content.Shared/Tools/Components/ToolTileCompatibleComponent.cs +++ b/Content.Shared/Tools/Components/ToolTileCompatibleComponent.cs @@ -18,7 +18,7 @@ public sealed partial class ToolTileCompatibleComponent : Component /// The time it takes to modify the tile. /// [DataField, ViewVariables(VVAccess.ReadWrite)] - public TimeSpan Delay = TimeSpan.FromSeconds(1); + public TimeSpan Delay = TimeSpan.FromSeconds(0.5); /// /// Whether or not the tile being modified must be unobstructed diff --git a/Content.Shared/Tools/Systems/SharedToolSystem.MultipleTool.cs b/Content.Shared/Tools/Systems/SharedToolSystem.MultipleTool.cs index 9114c62adee..d69f01d762f 100644 --- a/Content.Shared/Tools/Systems/SharedToolSystem.MultipleTool.cs +++ b/Content.Shared/Tools/Systems/SharedToolSystem.MultipleTool.cs @@ -28,7 +28,7 @@ private void OnMultipleToolStartup(EntityUid uid, MultipleToolComponent multiple private void OnMultipleToolActivated(EntityUid uid, MultipleToolComponent multiple, ActivateInWorldEvent args) { - if (args.Handled) + if (args.Handled || !args.Complex) return; args.Handled = CycleMultipleTool(uid, multiple, args.User); diff --git a/Content.Shared/Traits/Assorted/Components/CyberEyesComponent.cs b/Content.Shared/Traits/Assorted/Components/CyberEyesComponent.cs deleted file mode 100644 index 7009077e9cc..00000000000 --- a/Content.Shared/Traits/Assorted/Components/CyberEyesComponent.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace Content.Shared.Traits.Assorted.Components; - -[RegisterComponent] -public sealed partial class CyberEyesComponent : Component -{ - /// - /// The text that will appear when someone with the CyberEyes component is examined at close range - /// - [DataField] - public string CyberEyesExaminationText = "examine-cybereyes-message"; -} diff --git a/Content.Shared/Traits/Assorted/Components/ExtendDescriptionComponent.cs b/Content.Shared/Traits/Assorted/Components/ExtendDescriptionComponent.cs new file mode 100644 index 00000000000..dca8e10d4b3 --- /dev/null +++ b/Content.Shared/Traits/Assorted/Components/ExtendDescriptionComponent.cs @@ -0,0 +1,29 @@ +using Robust.Shared.Serialization; + +namespace Content.Shared.Traits.Assorted.Components; + +[Serializable, NetSerializable, DataDefinition] +public sealed partial class DescriptionExtension +{ + [DataField] + public string Description = ""; + + [DataField] + public int FontSize = 12; + + [DataField] + public string Color = "#ffffff"; + + [DataField] + public bool RequireDetailRange = true; +} + +[RegisterComponent] +public sealed partial class ExtendDescriptionComponent : Component +{ + /// + /// The list of all descriptions to add to an entity when examined at close range. + /// + [DataField] + public List DescriptionList = new(); +} diff --git a/Content.Shared/Traits/Assorted/Components/HeirloomComponents.cs b/Content.Shared/Traits/Assorted/Components/HeirloomComponents.cs new file mode 100644 index 00000000000..5b8e585bf55 --- /dev/null +++ b/Content.Shared/Traits/Assorted/Components/HeirloomComponents.cs @@ -0,0 +1,22 @@ +using Content.Shared.Mood; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared.Traits.Assorted.Components; + +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class HeirloomHaverComponent : Component +{ + [AutoNetworkedField, ViewVariables(VVAccess.ReadOnly)] + public EntityUid Heirloom; + + [AutoNetworkedField, ViewVariables(VVAccess.ReadWrite)] + public ProtoId Moodlet = "HeirloomSecure"; +} + +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class HeirloomComponent : Component +{ + [AutoNetworkedField, ViewVariables(VVAccess.ReadOnly)] + public EntityUid HOwner; +} diff --git a/Content.Shared/Traits/Assorted/Components/SelfAwareComponent.cs b/Content.Shared/Traits/Assorted/Components/SelfAwareComponent.cs index fa2485ac488..fd721c214e3 100644 --- a/Content.Shared/Traits/Assorted/Components/SelfAwareComponent.cs +++ b/Content.Shared/Traits/Assorted/Components/SelfAwareComponent.cs @@ -8,19 +8,19 @@ namespace Content.Shared.Traits.Assorted.Components; /// /// This is used for the Self-Aware trait to enhance the information received from HealthExaminableSystem. /// -[RegisterComponent, NetworkedComponent] +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class SelfAwareComponent : Component { // // Damage types that an entity is able to precisely analyze like a health analyzer when they examine themselves. // - [DataField(required: true, customTypeSerializer:typeof(PrototypeIdHashSetSerializer))] + [DataField(required: true, customTypeSerializer:typeof(PrototypeIdHashSetSerializer)), AutoNetworkedField] public HashSet AnalyzableTypes = default!; // // Damage groups that an entity is able to detect the presence of when they examine themselves. // - [DataField(required: true, customTypeSerializer:typeof(PrototypeIdHashSetSerializer))] + [DataField(required: true, customTypeSerializer:typeof(PrototypeIdHashSetSerializer)), AutoNetworkedField] public HashSet DetectableGroups = default!; // diff --git a/Content.Shared/Traits/Assorted/Systems/CyberEyesSystem.cs b/Content.Shared/Traits/Assorted/Systems/CyberEyesSystem.cs deleted file mode 100644 index 2dde4379720..00000000000 --- a/Content.Shared/Traits/Assorted/Systems/CyberEyesSystem.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Content.Shared.Examine; -using Content.Shared.Traits.Assorted.Components; - -namespace Content.Shared.Traits.Assorted.Systems; - -public sealed class CyberEyesSystem : EntitySystem -{ - public override void Initialize() - { - base.Initialize(); - SubscribeLocalEvent(OnExamined); - } - - private void OnExamined(EntityUid uid, CyberEyesComponent component, ExaminedEvent args) - { - if (!args.IsInDetailsRange) - return; - - args.PushMarkup($"[color=white]{Loc.GetString(component.CyberEyesExaminationText, ("entity", uid))}[/color]"); - } -} diff --git a/Content.Shared/Traits/Assorted/Systems/ExtendDescriptionSystem.cs b/Content.Shared/Traits/Assorted/Systems/ExtendDescriptionSystem.cs new file mode 100644 index 00000000000..0883da1eb86 --- /dev/null +++ b/Content.Shared/Traits/Assorted/Systems/ExtendDescriptionSystem.cs @@ -0,0 +1,27 @@ +using Content.Shared.Examine; +using Content.Shared.Traits.Assorted.Components; + +namespace Content.Shared.Traits.Assorted.Systems; + +public sealed class ExtendDescriptionSystem : EntitySystem +{ + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnExamined); + } + + private void OnExamined(EntityUid uid, ExtendDescriptionComponent component, ExaminedEvent args) + { + if (component.DescriptionList.Count <= 0) + return; + + foreach (var desc in component.DescriptionList) + { + if (!args.IsInDetailsRange && desc.RequireDetailRange) + continue; + + args.PushMarkup($"[font size ={desc.FontSize}][color={desc.Color}]{Loc.GetString(desc.Description, ("entity", uid))}[/color][/font]"); + } + } +} diff --git a/Content.Shared/Traits/Assorted/Systems/LegsParalyzedSystem.cs b/Content.Shared/Traits/Assorted/Systems/LegsParalyzedSystem.cs index 8ae0f251b86..4556d8ee991 100644 --- a/Content.Shared/Traits/Assorted/Systems/LegsParalyzedSystem.cs +++ b/Content.Shared/Traits/Assorted/Systems/LegsParalyzedSystem.cs @@ -17,7 +17,8 @@ public override void Initialize() { SubscribeLocalEvent(OnStartup); SubscribeLocalEvent(OnShutdown); - SubscribeLocalEvent(OnBuckleChange); + SubscribeLocalEvent(OnBuckled); + SubscribeLocalEvent(OnUnbuckled); SubscribeLocalEvent(OnThrowPushbackAttempt); SubscribeLocalEvent(OnUpdateCanMoveEvent); } @@ -34,25 +35,11 @@ private void OnShutdown(EntityUid uid, Components.LegsParalyzedComponent compone _bodySystem.UpdateMovementSpeed(uid); } - private void OnBuckleChange(EntityUid uid, Components.LegsParalyzedComponent component, ref BuckleChangeEvent args) - { - if (args.Buckling) - { - _standingSystem.Stand(args.BuckledEntity); - } - else - { - _standingSystem.Down(args.BuckledEntity); - } - } + private void OnBuckled(EntityUid uid, Components.LegsParalyzedComponent component, ref BuckledEvent args) => _standingSystem.Stand(uid); - private void OnUpdateCanMoveEvent(EntityUid uid, Components.LegsParalyzedComponent component, UpdateCanMoveEvent args) - { - args.Cancel(); - } + private void OnUnbuckled(EntityUid uid, Components.LegsParalyzedComponent component, ref UnbuckledEvent args) => _standingSystem.Down(uid); - private void OnThrowPushbackAttempt(EntityUid uid, Components.LegsParalyzedComponent component, ThrowPushbackAttemptEvent args) - { - args.Cancel(); - } + private void OnUpdateCanMoveEvent(EntityUid uid, Components.LegsParalyzedComponent component, UpdateCanMoveEvent args) => args.Cancel(); + + private void OnThrowPushbackAttempt(EntityUid uid, Components.LegsParalyzedComponent component, ThrowPushbackAttemptEvent args) => args.Cancel(); } diff --git a/Content.Shared/Traits/Assorted/Systems/SharedSingerSystem.cs b/Content.Shared/Traits/Assorted/Systems/SharedSingerSystem.cs index 13270ae45d2..5bf4e0d3789 100644 --- a/Content.Shared/Traits/Assorted/Systems/SharedSingerSystem.cs +++ b/Content.Shared/Traits/Assorted/Systems/SharedSingerSystem.cs @@ -38,7 +38,7 @@ private void OnStartup(Entity ent, ref ComponentStartup args) var instrumentComp = EnsureInstrumentComp(ent); var defaultData = singer.InstrumentList[singer.DefaultInstrument]; - _instrument.SetInstrumentProgram(instrumentComp, defaultData.Item1, defaultData.Item2); + _instrument.SetInstrumentProgram(ent.Owner, instrumentComp, defaultData.Item1, defaultData.Item2); SetUpSwappableInstrument(ent, singer); } diff --git a/Content.Shared/Traits/Assorted/Systems/TraitStatModifierSystem.cs b/Content.Shared/Traits/Assorted/Systems/TraitStatModifierSystem.cs index 85ecf151dd9..97b88f559e1 100644 --- a/Content.Shared/Traits/Assorted/Systems/TraitStatModifierSystem.cs +++ b/Content.Shared/Traits/Assorted/Systems/TraitStatModifierSystem.cs @@ -2,6 +2,7 @@ using Content.Shared.Mobs.Components; using Content.Shared.Mobs.Systems; using Content.Shared.Traits.Assorted.Components; +using Content.Shared.Damage.Events; using Content.Shared.Weapons.Melee.Events; using Content.Shared.Damage.Components; @@ -17,8 +18,10 @@ public override void Initialize() SubscribeLocalEvent(OnCritStartup); SubscribeLocalEvent(OnDeadStartup); SubscribeLocalEvent(OnStaminaCritStartup); - SubscribeLocalEvent(OnAdrenalineGetDamage); - SubscribeLocalEvent(OnPainToleranceGetDamage); + SubscribeLocalEvent(OnAdrenalineGetMeleeDamage); + SubscribeLocalEvent(OnAdrenalineGetThrowingDamage); + SubscribeLocalEvent(OnPainToleranceGetMeleeDamage); + SubscribeLocalEvent(OnPainToleranceGetThrowingDamage); } private void OnCritStartup(EntityUid uid, CritModifierComponent component, ComponentStartup args) @@ -49,15 +52,35 @@ private void OnStaminaCritStartup(EntityUid uid, StaminaCritModifierComponent co stamina.CritThreshold += component.CritThresholdModifier; } - private void OnAdrenalineGetDamage(EntityUid uid, AdrenalineComponent component, ref GetMeleeDamageEvent args) + private void OnAdrenalineGetMeleeDamage(EntityUid uid, AdrenalineComponent component, ref GetMeleeDamageEvent args) + { + args.Damage *= GetAdrenalineMultiplier(uid, component); + } + + private void OnAdrenalineGetThrowingDamage(EntityUid uid, AdrenalineComponent component, ref GetThrowingDamageEvent args) + { + args.Damage *= GetAdrenalineMultiplier(uid, component); + } + + private float GetAdrenalineMultiplier(EntityUid uid, AdrenalineComponent component) { var modifier = _contests.HealthContest(uid, component.BypassClamp, component.RangeModifier); - args.Damage *= component.Inverse ? 1 / modifier : modifier; + return component.Inverse ? 1 / modifier : modifier; + } + + private void OnPainToleranceGetMeleeDamage(EntityUid uid, PainToleranceComponent component, ref GetMeleeDamageEvent args) + { + args.Damage *= GetPainToleranceMultiplier(uid, component); + } + + private void OnPainToleranceGetThrowingDamage(EntityUid uid, PainToleranceComponent component, ref GetThrowingDamageEvent args) + { + args.Damage *= GetPainToleranceMultiplier(uid, component); } - private void OnPainToleranceGetDamage(EntityUid uid, PainToleranceComponent component, ref GetMeleeDamageEvent args) + private float GetPainToleranceMultiplier(EntityUid uid, PainToleranceComponent component) { var modifier = _contests.StaminaContest(uid, component.BypassClamp, component.RangeModifier); - args.Damage *= component.Inverse ? 1 / modifier : modifier; + return component.Inverse ? 1 / modifier : modifier; } } diff --git a/Content.Shared/UserInterface/ActivatableUIComponent.cs b/Content.Shared/UserInterface/ActivatableUIComponent.cs index 93f05acac05..30c07637420 100644 --- a/Content.Shared/UserInterface/ActivatableUIComponent.cs +++ b/Content.Shared/UserInterface/ActivatableUIComponent.cs @@ -45,6 +45,12 @@ public sealed partial class ActivatableUIComponent : Component [DataField, ViewVariables(VVAccess.ReadWrite)] public EntityWhitelist? RequiredItems; + /// + /// Whitelist for the user who is trying to open this UI. + /// + [DataField] + public EntityWhitelist? UserWhitelist; + /// /// If true, then this UI can only be opened via verbs. I.e., normal interactions/activations will not open /// the UI. diff --git a/Content.Shared/UserInterface/ActivatableUISystem.cs b/Content.Shared/UserInterface/ActivatableUISystem.cs index 14ce4f20dce..c620097961d 100644 --- a/Content.Shared/UserInterface/ActivatableUISystem.cs +++ b/Content.Shared/UserInterface/ActivatableUISystem.cs @@ -9,6 +9,8 @@ using Content.Shared.Popups; using Content.Shared.Verbs; using Robust.Shared.Utility; +using Content.Shared.Whitelist; +using Robust.Shared.Containers; namespace Content.Shared.UserInterface; @@ -16,6 +18,7 @@ public sealed partial class ActivatableUISystem : EntitySystem { [Dependency] private readonly ISharedAdminManager _adminManager = default!; [Dependency] private readonly ActionBlockerSystem _blockerSystem = default!; + [Dependency] private readonly EntityWhitelistSystem _entityWhitelist = default!; [Dependency] private readonly SharedUserInterfaceSystem _uiSystem = default!; [Dependency] private readonly SharedPopupSystem _popupSystem = default!; [Dependency] private readonly SharedHandsSystem _hands = default!; @@ -96,7 +99,8 @@ private bool ShouldAddVerb(EntityUid uid, ActivatableUIComponent component, G if (!args.CanAccess) return false; - if (!component.RequiredItems?.IsValid(args.Using ?? default, EntityManager) ?? false) + if (component.RequiredItems is not null && !_entityWhitelist.IsValid(component.RequiredItems, args.Using ?? default) || + component.UserWhitelist is not null && !_entityWhitelist.IsValid(component.UserWhitelist, args.User)) return false; if (component.RequireHands) @@ -133,7 +137,7 @@ private void OnUseInHand(EntityUid uid, ActivatableUIComponent component, UseInH private void OnActivate(EntityUid uid, ActivatableUIComponent component, ActivateInWorldEvent args) { - if (args.Handled) + if (args.Handled || !args.Complex) return; if (component.VerbOnly) @@ -153,10 +157,8 @@ private void OnInteractUsing(EntityUid uid, ActivatableUIComponent component, In if (component.VerbOnly) return; - if (component.RequiredItems == null) - return; - - if (!component.RequiredItems.IsValid(args.Used, EntityManager)) + if (component.RequiredItems is null || !_entityWhitelist.IsValid(component.RequiredItems, args.Used) || + component.UserWhitelist is not null && !_entityWhitelist.IsValid(component.UserWhitelist, args.User)) return; args.Handled = InteractUI(args.User, uid, component); diff --git a/Content.Shared/Verbs/SharedVerbSystem.cs b/Content.Shared/Verbs/SharedVerbSystem.cs index e78fe98f4c3..319f927c7b3 100644 --- a/Content.Shared/Verbs/SharedVerbSystem.cs +++ b/Content.Shared/Verbs/SharedVerbSystem.cs @@ -78,28 +78,8 @@ public SortedSet GetLocalVerbs(EntityUid target, EntityUid user, List(user, out var hands); // TODO: fix this garbage and use proper generics or reflection or something else, not this. if (types.Contains(typeof(InteractionVerb))) diff --git a/Content.Shared/Verbs/VerbCategory.cs b/Content.Shared/Verbs/VerbCategory.cs index 3331cad30b0..38ec881a7ce 100644 --- a/Content.Shared/Verbs/VerbCategory.cs +++ b/Content.Shared/Verbs/VerbCategory.cs @@ -28,10 +28,23 @@ public sealed class VerbCategory /// public readonly bool IconsOnly; - public VerbCategory(string text, string? icon, bool iconsOnly = false) + public VerbCategory(string text, bool iconsOnly = false) { Text = Loc.GetString(text); - Icon = icon == null ? null : new SpriteSpecifier.Texture(new(icon)); + IconsOnly = iconsOnly; + } + + public VerbCategory(string text, string icon, bool iconsOnly = false) + { + Text = Loc.GetString(text); + Icon = new SpriteSpecifier.Texture(new ResPath(icon)); + IconsOnly = iconsOnly; + } + + public VerbCategory(string text, SpriteSpecifier? sprite, bool iconsOnly = false) + { + Text = Loc.GetString(text); + Icon = sprite; IconsOnly = iconsOnly; } @@ -39,7 +52,8 @@ public VerbCategory(string text, string? icon, bool iconsOnly = false) new("verb-categories-admin", "/Textures/Interface/character.svg.192dpi.png"); public static readonly VerbCategory Antag = - new("verb-categories-antag", "/Textures/Interface/VerbIcons/antag-e_sword-temp.192dpi.png", iconsOnly: true) { Columns = 5 }; + new("verb-categories-antag", "/Textures/Interface/VerbIcons/antag-e_sword-temp.192dpi.png", iconsOnly: true) + { Columns = 5 }; public static readonly VerbCategory Examine = new("verb-categories-examine", "/Textures/Interface/VerbIcons/examine.svg.192dpi.png"); @@ -60,32 +74,37 @@ public VerbCategory(string text, string? icon, bool iconsOnly = false) new("verb-categories-unbuckle", "/Textures/Interface/VerbIcons/unbuckle.svg.192dpi.png"); public static readonly VerbCategory Rotate = - new("verb-categories-rotate", "/Textures/Interface/VerbIcons/refresh.svg.192dpi.png", iconsOnly: true) { Columns = 5 }; + new("verb-categories-rotate", "/Textures/Interface/VerbIcons/refresh.svg.192dpi.png", iconsOnly: true) + { Columns = 5 }; public static readonly VerbCategory Smite = - new("verb-categories-smite", "/Textures/Interface/VerbIcons/smite.svg.192dpi.png", iconsOnly: true) { Columns = 6 }; + new("verb-categories-smite", "/Textures/Interface/VerbIcons/smite.svg.192dpi.png", iconsOnly: true) + { Columns = 6 }; + public static readonly VerbCategory Tricks = - new("verb-categories-tricks", "/Textures/Interface/AdminActions/tricks.png", iconsOnly: true) { Columns = 5 }; + new("verb-categories-tricks", "/Textures/Interface/AdminActions/tricks.png", iconsOnly: true) + { Columns = 5 }; public static readonly VerbCategory SetTransferAmount = new("verb-categories-transfer", "/Textures/Interface/VerbIcons/spill.svg.192dpi.png"); - public static readonly VerbCategory Split = - new("verb-categories-split", null); + public static readonly VerbCategory Split = new("verb-categories-split"); + + public static readonly VerbCategory InstrumentStyle = new("verb-categories-instrument-style"); - public static readonly VerbCategory InstrumentStyle = - new("verb-categories-instrument-style", null); + public static readonly VerbCategory ChannelSelect = new("verb-categories-channel-select"); - public static readonly VerbCategory ChannelSelect = new("verb-categories-channel-select", null); + public static readonly VerbCategory SetSensor = new("verb-categories-set-sensor"); - public static readonly VerbCategory SetSensor = new("verb-categories-set-sensor", null); + public static readonly VerbCategory Lever = new("verb-categories-lever"); - public static readonly VerbCategory Lever = new("verb-categories-lever", null); + public static readonly VerbCategory SelectType = new("verb-categories-select-type"); - public static readonly VerbCategory SelectType = new("verb-categories-select-type", null); + public static readonly VerbCategory PowerLevel = new("verb-categories-power-level"); - public static readonly VerbCategory PowerLevel = new("verb-categories-power-level", null); + public static readonly VerbCategory Interaction = new("verb-categories-interaction"); - public static readonly VerbCategory Interaction = new("verb-categories-interaction", null); + public static readonly VerbCategory BloodSpells = new("verb-categories-blood-cult", + new SpriteSpecifier.Rsi(new ResPath("/Textures/WhiteDream/BloodCult/actions.rsi"), "blood_spells")); } } diff --git a/Content.Shared/Weapons/Marker/SharedDamageMarkerSystem.cs b/Content.Shared/Weapons/Marker/SharedDamageMarkerSystem.cs index 63b2d5f2115..eab638a9fc2 100644 --- a/Content.Shared/Weapons/Marker/SharedDamageMarkerSystem.cs +++ b/Content.Shared/Weapons/Marker/SharedDamageMarkerSystem.cs @@ -1,6 +1,7 @@ using Content.Shared.Damage; using Content.Shared.Projectiles; using Content.Shared.Weapons.Melee.Events; +using Content.Shared.Whitelist; using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; using Robust.Shared.Network; @@ -15,6 +16,7 @@ public abstract class SharedDamageMarkerSystem : EntitySystem [Dependency] private readonly INetManager _netManager = default!; [Dependency] private readonly SharedAudioSystem _audio = default!; [Dependency] private readonly DamageableSystem _damageable = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; public override void Initialize() { @@ -58,7 +60,7 @@ private void OnMarkerCollide(EntityUid uid, DamageMarkerOnCollideComponent compo if (!args.OtherFixture.Hard || args.OurFixtureId != SharedProjectileSystem.ProjectileFixture || component.Amount <= 0 || - component.Whitelist?.IsValid(args.OtherEntity, EntityManager) == false || + _whitelistSystem.IsWhitelistFail(component.Whitelist, args.OtherEntity) || !TryComp(uid, out var projectile) || projectile.Weapon == null) { @@ -71,7 +73,7 @@ private void OnMarkerCollide(EntityUid uid, DamageMarkerOnCollideComponent compo marker.Marker = projectile.Weapon.Value; marker.EndTime = _timing.CurTime + component.Duration; component.Amount--; - Dirty(marker); + Dirty(args.OtherEntity, marker); if (_netManager.IsServer) { @@ -81,7 +83,7 @@ private void OnMarkerCollide(EntityUid uid, DamageMarkerOnCollideComponent compo } else { - Dirty(component); + Dirty(uid, component); } } } diff --git a/Content.Shared/Weapons/Melee/Events/AttemptMeleeEvent.cs b/Content.Shared/Weapons/Melee/Events/AttemptMeleeEvent.cs index 2800e3b34da..5f96ab2db05 100644 --- a/Content.Shared/Weapons/Melee/Events/AttemptMeleeEvent.cs +++ b/Content.Shared/Weapons/Melee/Events/AttemptMeleeEvent.cs @@ -4,4 +4,4 @@ namespace Content.Shared.Weapons.Melee.Events; /// Raised directed on a weapon when attempt a melee attack. /// [ByRefEvent] -public record struct AttemptMeleeEvent(bool Cancelled, string? Message); +public record struct AttemptMeleeEvent(bool Cancelled, string? Message, EntityUid PlayerUid); // White Dream: Add PlayerUid argument diff --git a/Content.Shared/Weapons/Melee/MeleeSoundSystem.cs b/Content.Shared/Weapons/Melee/MeleeSoundSystem.cs index 315d752a2c0..6ec55a78846 100644 --- a/Content.Shared/Weapons/Melee/MeleeSoundSystem.cs +++ b/Content.Shared/Weapons/Melee/MeleeSoundSystem.cs @@ -31,11 +31,8 @@ public void PlaySwingSound(EntityUid userUid, EntityUid weaponUid, MeleeWeaponCo /// /// Serves as a lookup key for a hit sound /// A sound can be supplied by the itself to override everything else - public void PlayHitSound(EntityUid targetUid, EntityUid? userUid, string? damageType, SoundSpecifier? hitSoundOverride, MeleeWeaponComponent weaponComponent) + public void PlayHitSound(EntityUid targetUid, EntityUid? userUid, string? damageType, SoundSpecifier? hitSoundOverride, SoundSpecifier? hitSound, SoundSpecifier? noDamageSound) { - var hitSound = weaponComponent.SoundHit; - var noDamageSound = weaponComponent.SoundNoDamage; - var playedSound = false; if (Deleted(targetUid)) diff --git a/Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs b/Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs index 5fc92ce37a9..b698728193f 100644 --- a/Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs +++ b/Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs @@ -41,6 +41,26 @@ public sealed partial class MeleeWeaponComponent : Component [DataField] public bool ResetOnHandSelected = true; + /// + /// If true, swaps the keybinds for light attacks and heavy attacks. + /// + [DataField] + public bool SwapKeys = false; + + /// + /// If true, disables heavy attacks for this weapon, and prevents the heavy damage values appearing + /// when the damage values are examined. + /// + [DataField] + public bool DisableHeavy = false; + + /// + /// If true, disables single-target attacks for this weapon, and prevents the single-target damage values appearing + /// when the damage values are examined. + /// + [DataField] + public bool DisableClick = false; + /* * Melee combat works based around 2 types of attacks: * 1. Click attacks with left-click. This attacks whatever is under your mnouse @@ -48,16 +68,16 @@ public sealed partial class MeleeWeaponComponent : Component */ /// - /// How many times we can attack per second. + /// How many seconds between attacks must you wait in order to swing. /// [DataField, AutoNetworkedField] public float AttackRate = 1f; /// - /// When power attacking, the swing speed (in attacks per second) is multiplied by this amount + /// When power attacking, the required cooldown between swings is multiplied by this amount. /// [DataField, AutoNetworkedField] - public float HeavyRateModifier = 0.8f; + public float HeavyRateModifier = 1.2f; /// /// Are we currently holding down the mouse for an attack. /// Used so we can't just hold the mouse button and attack constantly. @@ -87,6 +107,12 @@ public sealed partial class MeleeWeaponComponent : Component [DataField, AutoNetworkedField] public FixedPoint2 ClickDamageModifier = FixedPoint2.New(1); + /// + /// Part damage is multiplied by this amount for single-target attacks + /// + [DataField, AutoNetworkedField] + public float ClickPartDamageMultiplier = 1.00f; + // TODO: Temporarily 1.5 until interactionoutline is adjusted to use melee, then probably drop to 1.2 /// /// Nearest edge range to hit an entity. @@ -106,6 +132,12 @@ public sealed partial class MeleeWeaponComponent : Component [DataField, AutoNetworkedField] public float HeavyDamageBaseModifier = 1.2f; + /// + /// Part damage is multiplied by this amount for heavy swings + /// + [DataField, AutoNetworkedField] + public float HeavyPartDamageMultiplier = 0.5f; + /// /// Total width of the angle for wide attacks. /// diff --git a/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs b/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs index 45115a72cc7..aa15ecfb286 100644 --- a/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs +++ b/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs @@ -62,8 +62,6 @@ public override void Initialize() base.Initialize(); SubscribeLocalEvent(OnMeleeSelected); - SubscribeLocalEvent(OnMeleeShotAttempted); - SubscribeLocalEvent(OnMeleeShot); SubscribeLocalEvent(OnGetBonusMeleeDamage); SubscribeLocalEvent(OnGetBonusHeavyDamageModifier); SubscribeLocalEvent(OnGetBonusMeleeAttackRate); @@ -86,24 +84,6 @@ private void OnMapInit(EntityUid uid, MeleeWeaponComponent component, MapInitEve #endif } - private void OnMeleeShotAttempted(EntityUid uid, MeleeWeaponComponent comp, ref ShotAttemptedEvent args) - { - if (comp.NextAttack > Timing.CurTime) - args.Cancel(); - } - - private void OnMeleeShot(EntityUid uid, MeleeWeaponComponent component, ref GunShotEvent args) - { - if (!TryComp(uid, out var gun)) - return; - - if (gun.NextFire > component.NextAttack) - { - component.NextAttack = gun.NextFire; - Dirty(uid, component); - } - } - private void OnMeleeSelected(EntityUid uid, MeleeWeaponComponent component, HandSelectedEvent args) { var attackRate = GetAttackRate(uid, args.User, component); @@ -169,29 +149,23 @@ private void OnStopAttack(StopAttackEvent msg, EntitySessionEventArgs args) private void OnLightAttack(LightAttackEvent msg, EntitySessionEventArgs args) { - if (args.SenderSession.AttachedEntity is not {} user) + if (args.SenderSession.AttachedEntity is not {} user || + !TryGetWeapon(user, out var weaponUid, out var weapon) || + weaponUid != GetEntity(msg.Weapon) || + weapon.DisableClick) return; - if (!TryGetWeapon(user, out var weaponUid, out var weapon) || - weaponUid != GetEntity(msg.Weapon)) - { - return; - } - AttemptAttack(user, weaponUid, weapon, msg, args.SenderSession); } private void OnHeavyAttack(HeavyAttackEvent msg, EntitySessionEventArgs args) { - if (args.SenderSession.AttachedEntity is not {} user) + if (args.SenderSession.AttachedEntity is not {} user || + !TryGetWeapon(user, out var weaponUid, out var weapon) || + weaponUid != GetEntity(msg.Weapon) || + weapon.DisableHeavy) return; - if (!TryGetWeapon(user, out var weaponUid, out var weapon) || - weaponUid != GetEntity(msg.Weapon)) - { - return; - } - AttemptAttack(user, weaponUid, weapon, msg, args.SenderSession); } @@ -364,7 +338,7 @@ private bool AttemptAttack(EntityUid user, EntityUid weaponUid, MeleeWeaponCompo return false; break; case HeavyAttackEvent: - fireRateSwingModifier *= weapon.HeavyRateModifier; + fireRateSwingModifier = weapon.HeavyRateModifier; break; default: if (!Blocker.CanAttack(user, weapon: (weaponUid, weapon))) @@ -373,7 +347,7 @@ private bool AttemptAttack(EntityUid user, EntityUid weaponUid, MeleeWeaponCompo } // Windup time checked elsewhere. - var fireRate = TimeSpan.FromSeconds(1f / GetAttackRate(weaponUid, user, weapon) * fireRateSwingModifier); + var fireRate = TimeSpan.FromSeconds(GetAttackRate(weaponUid, user, weapon) * fireRateSwingModifier); var swings = 0; // TODO: If we get autoattacks then probably need a shotcounter like guns so we can do timing properly. @@ -389,7 +363,12 @@ private bool AttemptAttack(EntityUid user, EntityUid weaponUid, MeleeWeaponCompo Dirty(weaponUid, weapon); // Do this AFTER attack so it doesn't spam every tick - var ev = new AttemptMeleeEvent(); + // White Dream: Added PlayerUid + var ev = new AttemptMeleeEvent + { + PlayerUid = user + }; + RaiseLocalEvent(weaponUid, ref ev); if (ev.Cancelled) @@ -501,7 +480,7 @@ protected virtual void DoLightAttack(EntityUid user, LightAttackEvent ev, Entity RaiseLocalEvent(target.Value, attackedEvent); var modifiedDamage = DamageSpecifier.ApplyModifierSets(damage + hitEvent.BonusDamage + attackedEvent.BonusDamage, hitEvent.ModifiersList); - var damageResult = Damageable.TryChangeDamage(target, modifiedDamage, origin:user); + var damageResult = Damageable.TryChangeDamage(target, modifiedDamage, origin: user, partMultiplier: component.ClickPartDamageMultiplier); if (damageResult != null && damageResult.Any()) { @@ -524,7 +503,7 @@ protected virtual void DoLightAttack(EntityUid user, LightAttackEvent ev, Entity } - _meleeSound.PlayHitSound(target.Value, user, GetHighestDamageSound(modifiedDamage, _protoManager), hitEvent.HitSoundOverride, component); + _meleeSound.PlayHitSound(target.Value, user, GetHighestDamageSound(modifiedDamage, _protoManager), hitEvent.HitSoundOverride, component.SoundHit, component.SoundNoDamage); if (damageResult?.GetTotal() > FixedPoint2.Zero) { @@ -545,6 +524,17 @@ private bool DoHeavyAttack(EntityUid user, HeavyAttackEvent ev, EntityUid meleeU if (targetMap.MapId != userXform.MapID) return false; + if (TryComp(user, out var stamina)) + { + if (stamina.CritThreshold - stamina.StaminaDamage <= component.HeavyStaminaCost) + { + PopupSystem.PopupClient(Loc.GetString("melee-heavy-no-stamina"), meleeUid, user); + return false; + } + + _stamina.TakeStaminaDamage(user, component.HeavyStaminaCost, stamina, visual: false); + } + var userPos = TransformSystem.GetWorldPosition(userXform); var direction = targetMap.Position - userPos; var distance = Math.Min(component.Range * component.HeavyRangeModifier, direction.Length()); @@ -640,7 +630,7 @@ private bool DoHeavyAttack(EntityUid user, HeavyAttackEvent ev, EntityUid meleeU RaiseLocalEvent(entity, attackedEvent); var modifiedDamage = DamageSpecifier.ApplyModifierSets(damage + hitEvent.BonusDamage + attackedEvent.BonusDamage, hitEvent.ModifiersList); - var damageResult = Damageable.TryChangeDamage(entity, modifiedDamage, origin:user); + var damageResult = Damageable.TryChangeDamage(entity, modifiedDamage, origin: user, partMultiplier: component.HeavyPartDamageMultiplier); if (damageResult != null && damageResult.GetTotal() > FixedPoint2.Zero) { @@ -662,7 +652,7 @@ private bool DoHeavyAttack(EntityUid user, HeavyAttackEvent ev, EntityUid meleeU if (entities.Count != 0) { var target = entities.First(); - _meleeSound.PlayHitSound(target, user, GetHighestDamageSound(appliedDamage, _protoManager), hitEvent.HitSoundOverride, component); + _meleeSound.PlayHitSound(target, user, GetHighestDamageSound(appliedDamage, _protoManager), hitEvent.HitSoundOverride, component.SoundHit, component.SoundNoDamage); } if (appliedDamage.GetTotal() > FixedPoint2.Zero) @@ -670,10 +660,6 @@ private bool DoHeavyAttack(EntityUid user, HeavyAttackEvent ev, EntityUid meleeU DoDamageEffect(targets, user, Transform(targets[0])); } - if (TryComp(user, out var stamina)) - _stamina.TakeStaminaDamage(user, component.HeavyStaminaCost, stamina); - - return true; } diff --git a/Content.Shared/Weapons/Misc/SharedGrapplingGunSystem.cs b/Content.Shared/Weapons/Misc/SharedGrapplingGunSystem.cs index 41e1895da2c..6feffffbe31 100644 --- a/Content.Shared/Weapons/Misc/SharedGrapplingGunSystem.cs +++ b/Content.Shared/Weapons/Misc/SharedGrapplingGunSystem.cs @@ -116,7 +116,7 @@ private void OnWeightlessMove(ref CanWeightlessMoveEvent ev) private void OnGunActivate(EntityUid uid, GrapplingGunComponent component, ActivateInWorldEvent args) { - if (!Timing.IsFirstTimePredicted || args.Handled) + if (!Timing.IsFirstTimePredicted || args.Handled || !args.Complex) return; if (Deleted(component.Projectile)) diff --git a/Content.Shared/Weapons/Misc/SharedTetherGunSystem.Force.cs b/Content.Shared/Weapons/Misc/SharedTetherGunSystem.Force.cs index eec115b02df..932ef704607 100644 --- a/Content.Shared/Weapons/Misc/SharedTetherGunSystem.Force.cs +++ b/Content.Shared/Weapons/Misc/SharedTetherGunSystem.Force.cs @@ -14,6 +14,9 @@ private void InitializeForce() private void OnForceActivate(EntityUid uid, ForceGunComponent component, ActivateInWorldEvent args) { + if (!args.Complex) + return; + StopTether(uid, component); } diff --git a/Content.Shared/Weapons/Misc/SharedTetherGunSystem.cs b/Content.Shared/Weapons/Misc/SharedTetherGunSystem.cs index 3a950bcd29e..21da0a3ca45 100644 --- a/Content.Shared/Weapons/Misc/SharedTetherGunSystem.cs +++ b/Content.Shared/Weapons/Misc/SharedTetherGunSystem.cs @@ -21,17 +21,17 @@ namespace Content.Shared.Weapons.Misc; public abstract partial class SharedTetherGunSystem : EntitySystem { - [Dependency] private readonly INetManager _netManager = default!; - [Dependency] private readonly ActionBlockerSystem _blocker = default!; - [Dependency] private readonly MobStateSystem _mob = default!; - [Dependency] private readonly SharedAppearanceSystem _appearance = default!; - [Dependency] private readonly SharedAudioSystem _audio = default!; - [Dependency] private readonly SharedContainerSystem _container = default!; - [Dependency] private readonly SharedJointSystem _joints = default!; - [Dependency] private readonly SharedPhysicsSystem _physics = default!; + [Dependency] private readonly INetManager _netManager = default!; + [Dependency] private readonly ActionBlockerSystem _blocker = default!; + [Dependency] private readonly MobStateSystem _mob = default!; + [Dependency] private readonly SharedAppearanceSystem _appearance = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly SharedContainerSystem _container = default!; + [Dependency] private readonly SharedJointSystem _joints = default!; + [Dependency] private readonly SharedPhysicsSystem _physics = default!; [Dependency] protected readonly SharedTransformSystem TransformSystem = default!; - [Dependency] private readonly ThrowingSystem _throwing = default!; - [Dependency] private readonly ThrownItemSystem _thrown = default!; + [Dependency] private readonly ThrowingSystem _throwing = default!; + [Dependency] private readonly ThrownItemSystem _thrown = default!; private const string TetherJoint = "tether"; @@ -152,6 +152,9 @@ protected bool TryGetTetherGun(EntityUid user, [NotNullWhen(true)] out EntityUid private void OnTetherActivate(EntityUid uid, TetherGunComponent component, ActivateInWorldEvent args) { + if (!args.Complex) + return; + StopTether(uid, component); } @@ -282,7 +285,7 @@ protected virtual void StopTether(EntityUid gunUid, BaseForceGunComponent compon RemComp(component.Tethered.Value); _blocker.UpdateCanMove(component.Tethered.Value); component.Tethered = null; - Dirty(component); + Dirty(gunUid, component); } [Serializable, NetSerializable] diff --git a/Content.Shared/Weapons/Ranged/Components/GunComponent.cs b/Content.Shared/Weapons/Ranged/Components/GunComponent.cs index 8d7ecae1a81..d522df5395e 100644 --- a/Content.Shared/Weapons/Ranged/Components/GunComponent.cs +++ b/Content.Shared/Weapons/Ranged/Components/GunComponent.cs @@ -208,6 +208,12 @@ public sealed partial class GunComponent : Component [AutoPausedField] public TimeSpan NextFire = TimeSpan.Zero; + /// + /// After dealing a melee attack with this gun, the minimum cooldown in seconds before the gun can shoot again. + /// + [DataField] + public float MeleeCooldown = 0.528f; + /// /// What firemodes can be selected. /// diff --git a/Content.Shared/Weapons/Ranged/Systems/BatteryWeaponFireModesSystem.cs b/Content.Shared/Weapons/Ranged/Systems/BatteryWeaponFireModesSystem.cs index 68fb2f27c98..8e44576d283 100644 --- a/Content.Shared/Weapons/Ranged/Systems/BatteryWeaponFireModesSystem.cs +++ b/Content.Shared/Weapons/Ranged/Systems/BatteryWeaponFireModesSystem.cs @@ -75,6 +75,9 @@ private void OnGetVerb(EntityUid uid, BatteryWeaponFireModesComponent component, private void OnInteractHandEvent(EntityUid uid, BatteryWeaponFireModesComponent component, ActivateInWorldEvent args) { + if (!args.Complex) + return; + if (component.FireModes.Count < 2) return; diff --git a/Content.Shared/Weapons/Ranged/Systems/RechargeBasicEntityAmmoSystem.cs b/Content.Shared/Weapons/Ranged/Systems/RechargeBasicEntityAmmoSystem.cs index b774c8ab450..9d6d5524001 100644 --- a/Content.Shared/Weapons/Ranged/Systems/RechargeBasicEntityAmmoSystem.cs +++ b/Content.Shared/Weapons/Ranged/Systems/RechargeBasicEntityAmmoSystem.cs @@ -49,19 +49,19 @@ public override void Update(float frameTime) if (ammo.Count == ammo.Capacity) { recharge.NextCharge = null; - Dirty(recharge); + Dirty(uid, recharge); continue; } recharge.NextCharge = recharge.NextCharge.Value + TimeSpan.FromSeconds(recharge.RechargeCooldown); - Dirty(recharge); + Dirty(uid, recharge); } } private void OnInit(EntityUid uid, RechargeBasicEntityAmmoComponent component, MapInitEvent args) { component.NextCharge = _timing.CurTime; - Dirty(component); + Dirty(uid, component); } private void OnExamined(EntityUid uid, RechargeBasicEntityAmmoComponent component, ExaminedEvent args) @@ -86,7 +86,7 @@ public void Reset(EntityUid uid, RechargeBasicEntityAmmoComponent? recharge = nu if (recharge.NextCharge == null || recharge.NextCharge < _timing.CurTime) { recharge.NextCharge = _timing.CurTime + TimeSpan.FromSeconds(recharge.RechargeCooldown); - Dirty(recharge); + Dirty(uid, recharge); } } } diff --git a/Content.Shared/Weapons/Ranged/Systems/RechargeCycleAmmoSystem.cs b/Content.Shared/Weapons/Ranged/Systems/RechargeCycleAmmoSystem.cs index 136e9b59b2f..ee5ca2174f3 100644 --- a/Content.Shared/Weapons/Ranged/Systems/RechargeCycleAmmoSystem.cs +++ b/Content.Shared/Weapons/Ranged/Systems/RechargeCycleAmmoSystem.cs @@ -18,6 +18,9 @@ public override void Initialize() private void OnRechargeCycled(EntityUid uid, RechargeCycleAmmoComponent component, ActivateInWorldEvent args) { + if (!args.Complex) + return; + if (!TryComp(uid, out var basic) || args.Handled) return; @@ -25,7 +28,7 @@ private void OnRechargeCycled(EntityUid uid, RechargeCycleAmmoComponent componen return; _gun.UpdateBasicEntityAmmoCount(uid, basic.Count.Value + 1, basic); - Dirty(basic); + Dirty(uid, basic); args.Handled = true; } } diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs index 91aad895821..88acd81d5bd 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs @@ -41,7 +41,10 @@ private void OnBallisticUse(EntityUid uid, BallisticAmmoProviderComponent compon private void OnBallisticInteractUsing(EntityUid uid, BallisticAmmoProviderComponent component, InteractUsingEvent args) { - if (args.Handled || component.Whitelist?.IsValid(args.Used, EntityManager) != true) + if (args.Handled) + return; + + if (_whitelistSystem.IsWhitelistFailOrNull(component.Whitelist, args.Used)) return; if (GetBallisticShots(component) >= component.Capacity) diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.ChamberMagazine.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.ChamberMagazine.cs index c421c92a9f7..adae26a223a 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.ChamberMagazine.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.ChamberMagazine.cs @@ -51,7 +51,7 @@ private void OnChamberStartup(EntityUid uid, ChamberMagazineAmmoProviderComponen /// private void OnChamberActivate(EntityUid uid, ChamberMagazineAmmoProviderComponent component, ActivateInWorldEvent args) { - if (args.Handled) + if (args.Handled || !args.Complex) return; args.Handled = true; diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Revolver.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Revolver.cs index b8b00799c1b..14aaff5bf70 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Revolver.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Revolver.cs @@ -89,7 +89,7 @@ private void OnRevolverHandleState(EntityUid uid, RevolverAmmoProviderComponent public bool TryRevolverInsert(EntityUid revolverUid, RevolverAmmoProviderComponent component, EntityUid uid, EntityUid? user) { - if (component.Whitelist?.IsValid(uid, EntityManager) == false) + if (_whitelistSystem.IsWhitelistFail(component.Whitelist, uid)) return false; // If it's a speedloader try to get ammo from it. diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs index b714acefbd1..7afb41239c6 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs @@ -22,6 +22,7 @@ using Content.Shared.Weapons.Melee.Events; using Content.Shared.Weapons.Ranged.Components; using Content.Shared.Weapons.Ranged.Events; +using Content.Shared.Whitelist; using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; using Robust.Shared.Containers; @@ -64,6 +65,7 @@ public abstract partial class SharedGunSystem : EntitySystem [Dependency] protected readonly TagSystem TagSystem = default!; [Dependency] protected readonly ThrowingSystem ThrowingSystem = default!; [Dependency] private readonly UseDelaySystem _useDelay = default!; + [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; private const float InteractNextFire = 0.3f; private const double SafetyNextFire = 0.5; @@ -112,14 +114,18 @@ private void OnMapInit(Entity gun, ref MapInitEvent args) private void OnGunMelee(EntityUid uid, GunComponent component, MeleeHitEvent args) { - if (!TryComp(uid, out var melee)) - return; + var curTime = Timing.CurTime; - if (melee.NextAttack > component.NextFire) - { - component.NextFire = melee.NextAttack; - Dirty(component); - } + if (component.NextFire < curTime) + component.NextFire = curTime; + + var meleeCooldown = TimeSpan.FromSeconds(component.MeleeCooldown); + + component.NextFire += meleeCooldown; + while (component.NextFire <= curTime) + component.NextFire += meleeCooldown; + + Dirty(uid, component); } private void OnShootRequest(RequestShootEvent msg, EntitySessionEventArgs args) diff --git a/Content.Shared/Weapons/Reflect/ReflectSystem.cs b/Content.Shared/Weapons/Reflect/ReflectSystem.cs index 36dbedb4cb1..76c98a427f5 100644 --- a/Content.Shared/Weapons/Reflect/ReflectSystem.cs +++ b/Content.Shared/Weapons/Reflect/ReflectSystem.cs @@ -15,6 +15,8 @@ using Content.Shared.Standing; using Content.Shared.Weapons.Ranged.Components; using Content.Shared.Weapons.Ranged.Events; +using Content.Shared.WhiteDream.BloodCult.BloodCultist; +using Content.Shared.WhiteDream.BloodCult.Items; using Robust.Shared.Audio.Systems; using Robust.Shared.Network; using Robust.Shared.Physics.Components; @@ -42,6 +44,9 @@ public sealed class ReflectSystem : EntitySystem [Dependency] private readonly StandingStateSystem _standing = default!; [Dependency] private readonly AlertsSystem _alerts = default!; + [ValidatePrototypeId] + private const string DeflectingAlert = "Deflecting"; + public override void Initialize() { base.Initialize(); @@ -109,6 +114,10 @@ private bool TryReflectProjectile(EntityUid user, EntityUid reflector, EntityUid ) return false; + // Non cultists can't use cult items to reflect anything. + if (HasComp(reflector) && !HasComp(user)) + return false; + if (!_random.Prob(CalcReflectChance(reflector, reflect))) return false; @@ -199,20 +208,19 @@ private bool TryReflectHitscan( Vector2 direction, [NotNullWhen(true)] out Vector2? newDirection) { + newDirection = null; if (!TryComp(reflector, out var reflect) || !reflect.Enabled || TryComp(reflector, out var staminaComponent) && staminaComponent.Critical || _standing.IsDown(reflector)) - { - newDirection = null; return false; - } + + // Non cultists can't use cult items to reflect anything. + if (HasComp(reflector) && !HasComp(user)) + return false; if (!_random.Prob(CalcReflectChance(reflector, reflect))) - { - newDirection = null; return false; - } if (_netManager.IsServer) { @@ -296,11 +304,11 @@ private void RefreshReflectUser(EntityUid user) private void EnableAlert(EntityUid alertee) { - _alerts.ShowAlert(alertee, AlertType.Deflecting); + _alerts.ShowAlert(alertee, DeflectingAlert); } private void DisableAlert(EntityUid alertee) { - _alerts.ClearAlert(alertee, AlertType.Deflecting); + _alerts.ClearAlert(alertee, DeflectingAlert); } } diff --git a/Content.Shared/Weather/SharedWeatherSystem.cs b/Content.Shared/Weather/SharedWeatherSystem.cs index 45a2afe7cd9..19671bd77b0 100644 --- a/Content.Shared/Weather/SharedWeatherSystem.cs +++ b/Content.Shared/Weather/SharedWeatherSystem.cs @@ -15,8 +15,8 @@ public abstract class SharedWeatherSystem : EntitySystem [Dependency] protected readonly IGameTiming Timing = default!; [Dependency] protected readonly IMapManager MapManager = default!; [Dependency] protected readonly IPrototypeManager ProtoMan = default!; - [Dependency] private readonly ITileDefinitionManager _tileDefManager = default!; - [Dependency] private readonly MetaDataSystem _metadata = default!; + [Dependency] private readonly ITileDefinitionManager _tileDefManager = default!; + [Dependency] private readonly MetaDataSystem _metadata = default!; [Dependency] private readonly SharedAudioSystem _audio = default!; private EntityQuery _blockQuery; @@ -129,7 +129,7 @@ public override void Update(float frameTime) // Shutting down if (endTime != null && remainingTime < WeatherComponent.ShutdownTime) { - SetState(WeatherState.Ending, comp, weather, weatherProto); + SetState(uid, WeatherState.Ending, comp, weather, weatherProto); } // Starting up else @@ -139,7 +139,7 @@ public override void Update(float frameTime) if (elapsed < WeatherComponent.StartupTime) { - SetState(WeatherState.Starting, comp, weather, weatherProto); + SetState(uid, WeatherState.Starting, comp, weather, weatherProto); } } @@ -182,15 +182,15 @@ public void SetWeather(MapId mapId, WeatherPrototype? proto, TimeSpan? endTime) } if (proto != null) - StartWeather(weatherComp, proto, endTime); + StartWeather(mapUid, weatherComp, proto, endTime); } /// /// Run every tick when the weather is running. /// - protected virtual void Run(EntityUid uid, WeatherData weather, WeatherPrototype weatherProto, float frameTime) {} + protected virtual void Run(EntityUid uid, WeatherData weather, WeatherPrototype weatherProto, float frameTime) { } - protected void StartWeather(WeatherComponent component, WeatherPrototype weather, TimeSpan? endTime) + protected void StartWeather(EntityUid uid, WeatherComponent component, WeatherPrototype weather, TimeSpan? endTime) { if (component.Weather.ContainsKey(weather.ID)) return; @@ -202,7 +202,7 @@ protected void StartWeather(WeatherComponent component, WeatherPrototype weather }; component.Weather.Add(weather.ID, data); - Dirty(component); + Dirty(uid, component); } protected virtual void EndWeather(EntityUid uid, WeatherComponent component, string proto) @@ -216,13 +216,13 @@ protected virtual void EndWeather(EntityUid uid, WeatherComponent component, str Dirty(uid, component); } - protected virtual bool SetState(WeatherState state, WeatherComponent component, WeatherData weather, WeatherPrototype weatherProto) + protected virtual bool SetState(EntityUid uid, WeatherState state, WeatherComponent component, WeatherData weather, WeatherPrototype weatherProto) { if (weather.State.Equals(state)) return false; weather.State = state; - Dirty(component); + Dirty(uid, component); return true; } diff --git a/Content.Shared/WhiteDream/BloodCult/BloodCultist/BloodCultLeaderComponent.cs b/Content.Shared/WhiteDream/BloodCult/BloodCultist/BloodCultLeaderComponent.cs new file mode 100644 index 00000000000..6c0a118cac5 --- /dev/null +++ b/Content.Shared/WhiteDream/BloodCult/BloodCultist/BloodCultLeaderComponent.cs @@ -0,0 +1,16 @@ +using Content.Shared.Antag; +using Content.Shared.StatusIcon; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared.WhiteDream.BloodCult.BloodCultist; + +[RegisterComponent, NetworkedComponent] +public sealed partial class BloodCultLeaderComponent : Component, IAntagStatusIconComponent +{ + [DataField] + public ProtoId StatusIcon { get; set; } = "BloodCultLeader"; + + [DataField] + public bool IconVisibleToGhost { get; set; } = true; +} diff --git a/Content.Shared/WhiteDream/BloodCult/BloodCultist/BloodCultistComponent.cs b/Content.Shared/WhiteDream/BloodCult/BloodCultist/BloodCultistComponent.cs new file mode 100644 index 00000000000..288d496ee5a --- /dev/null +++ b/Content.Shared/WhiteDream/BloodCult/BloodCultist/BloodCultistComponent.cs @@ -0,0 +1,42 @@ +using System.Threading; +using Content.Shared.Antag; +using Content.Shared.FixedPoint; +using Content.Shared.Language; +using Content.Shared.Mind; +using Content.Shared.StatusIcon; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared.WhiteDream.BloodCult.BloodCultist; + +[RegisterComponent, NetworkedComponent] +public sealed partial class BloodCultistComponent : Component, IAntagStatusIconComponent +{ + [DataField] + public float HolyConvertTime = 15f; + + [DataField] + public int MaximumAllowedEmpowers = 4; + + [DataField] + public ProtoId StatusIcon { get; set; } = "BloodCultMember"; + + [DataField] + public bool IconVisibleToGhost { get; set; } = true; + + [DataField] + public ProtoId CultLanguageId { get; set; } = "Eldritch"; + + [ViewVariables, NonSerialized] + public EntityUid? BloodSpear; + + [ViewVariables, NonSerialized] + public Entity? OriginalMind; + + [ViewVariables(VVAccess.ReadWrite)] + public FixedPoint2 RitesBloodAmount = FixedPoint2.Zero; + + public Color OriginalEyeColor = Color.White; + + public CancellationTokenSource? DeconvertToken { get; set; } +} diff --git a/Content.Shared/WhiteDream/BloodCult/BloodCultist/BloodCultistRoleComponent.cs b/Content.Shared/WhiteDream/BloodCult/BloodCultist/BloodCultistRoleComponent.cs new file mode 100644 index 00000000000..acbb92bba48 --- /dev/null +++ b/Content.Shared/WhiteDream/BloodCult/BloodCultist/BloodCultistRoleComponent.cs @@ -0,0 +1,6 @@ +using Content.Shared.Roles; + +namespace Content.Shared.WhiteDream.BloodCult.BloodCultist; + +[RegisterComponent] +public sealed partial class BloodCultistRoleComponent : AntagonistRoleComponent; diff --git a/Content.Shared/WhiteDream/BloodCult/Components/PentagramComponent.cs b/Content.Shared/WhiteDream/BloodCult/Components/PentagramComponent.cs new file mode 100644 index 00000000000..2d94c1aedb7 --- /dev/null +++ b/Content.Shared/WhiteDream/BloodCult/Components/PentagramComponent.cs @@ -0,0 +1,20 @@ +using Robust.Shared.GameStates; +using Robust.Shared.Utility; + +namespace Content.Shared.WhiteDream.BloodCult.Components; + +[NetworkedComponent, RegisterComponent] +public sealed partial class PentagramComponent : Component +{ + public ResPath RsiPath = new("/Textures/WhiteDream/BloodCult/Effects/pentagram.rsi"); + + public readonly string[] States = + [ + "halo1", + "halo2", + "halo3", + "halo4", + "halo5", + "halo6" + ]; +} diff --git a/Content.Shared/WhiteDream/BloodCult/Components/PylonComponent.cs b/Content.Shared/WhiteDream/BloodCult/Components/PylonComponent.cs new file mode 100644 index 00000000000..2827f357626 --- /dev/null +++ b/Content.Shared/WhiteDream/BloodCult/Components/PylonComponent.cs @@ -0,0 +1,58 @@ +using Content.Shared.Damage; +using Robust.Shared.Audio; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared.WhiteDream.BloodCult.Components; + +[RegisterComponent, NetworkedComponent] +public sealed partial class PylonComponent : Component +{ + [DataField] + public bool IsActive = true; + + [DataField] + public float HealingDelay = 20; + + [DataField] + public float HealingAuraRange = 5; + + [DataField] + public float CorruptionRadius = 5; + + /// + /// Length of the cooldown in between tile corruptions. + /// + [DataField] + public float CorruptionCooldown = 5; + + /// + /// Length of the cooldown in between healinng. + /// + [DataField] + public float HealingCooldown = 20; + + [DataField] + public string CultTile = "CultFloor"; + + [DataField] + public EntProtoId TileCorruptEffect = "CultTileSpawnEffect"; + + [DataField] + public SoundSpecifier BurnHandSound = new SoundPathSpecifier("/Audio/Effects/lightburn.ogg"); + + [DataField] + public SoundSpecifier CorruptTileSound = new SoundPathSpecifier("/Audio/WhiteDream/BloodCult/curse.ogg"); + + [DataField] + public DamageSpecifier Healing = new(); + + [DataField] + public DamageSpecifier DamageOnInteract = new(); + + [ViewVariables(VVAccess.ReadOnly)] + public float CorruptionAccumulator = 0; + + [ViewVariables(VVAccess.ReadOnly)] + public float HealingAccumulator = 0; +} diff --git a/Content.Shared/WhiteDream/BloodCult/Components/TwistedConstructionTargetComponent.cs b/Content.Shared/WhiteDream/BloodCult/Components/TwistedConstructionTargetComponent.cs new file mode 100644 index 00000000000..79eb7d5567a --- /dev/null +++ b/Content.Shared/WhiteDream/BloodCult/Components/TwistedConstructionTargetComponent.cs @@ -0,0 +1,14 @@ +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared.WhiteDream.BloodCult.Components; + +[RegisterComponent, NetworkedComponent] +public sealed partial class TwistedConstructionTargetComponent : Component +{ + [DataField(required: true)] + public EntProtoId ReplacementProto = ""; + + [DataField] + public TimeSpan DoAfterDelay = TimeSpan.FromSeconds(2); +} diff --git a/Content.Shared/WhiteDream/BloodCult/Constructs/ConstructComponent.cs b/Content.Shared/WhiteDream/BloodCult/Constructs/ConstructComponent.cs new file mode 100644 index 00000000000..24d67ed2c8d --- /dev/null +++ b/Content.Shared/WhiteDream/BloodCult/Constructs/ConstructComponent.cs @@ -0,0 +1,29 @@ +using Content.Shared.Antag; +using Content.Shared.StatusIcon; +using Robust.Shared.Prototypes; + +namespace Content.Shared.WhiteDream.BloodCult.Constructs; + +[RegisterComponent] +public sealed partial class ConstructComponent : Component, IAntagStatusIconComponent +{ + [DataField] + public List Actions = new(); + + /// + /// Used by the client to determine how long the transform animation should be played. + /// + [DataField] + public float TransformDelay = 1; + + [DataField] + public ProtoId StatusIcon { get; set; } = "BloodCultMember"; + + [DataField] + public bool IconVisibleToGhost { get; set; } = true; + + public bool Transforming = false; + public float TransformAccumulator = 0; + + public List ActionEntities = new(); +} diff --git a/Content.Shared/WhiteDream/BloodCult/Constructs/PhaseShift/PhaseShiftedComponent.cs b/Content.Shared/WhiteDream/BloodCult/Constructs/PhaseShift/PhaseShiftedComponent.cs new file mode 100644 index 00000000000..15b026b5144 --- /dev/null +++ b/Content.Shared/WhiteDream/BloodCult/Constructs/PhaseShift/PhaseShiftedComponent.cs @@ -0,0 +1,39 @@ +using Content.Shared.Physics; +using Content.Shared.StatusEffect; +using Robust.Shared.Audio; +using Robust.Shared.Prototypes; +using Robust.Shared.Utility; + +namespace Content.Shared.WhiteDream.BloodCult.Constructs.PhaseShift; + +[RegisterComponent] +public sealed partial class PhaseShiftedComponent : Component +{ + [DataField] + public ProtoId StatusEffectId = "PhaseShifted"; + + [DataField] + public float MovementSpeedBuff = 1.5f; + + [DataField] + public int CollisionMask = (int) CollisionGroup.GhostImpassable; + + [DataField] + public int CollisionLayer; + + [DataField] + public EntProtoId PhaseInEffect = "EffectEmpPulseNoSound"; + + [DataField] + public EntProtoId PhaseOutEffect = "EffectEmpPulseNoSound"; + + [DataField] + public SoundSpecifier PhaseInSound = new SoundPathSpecifier(new ResPath("/Audio/WhiteDream/BloodCult/veilin.ogg")); + + [DataField] + public SoundSpecifier PhaseOutSound = + new SoundPathSpecifier(new ResPath("/Audio/WhiteDream/BloodCult/veilout.ogg")); + + public int StoredMask; + public int StoredLayer; +} diff --git a/Content.Shared/WhiteDream/BloodCult/Constructs/PhaseShift/SharedPhaseShiftSystem.cs b/Content.Shared/WhiteDream/BloodCult/Constructs/PhaseShift/SharedPhaseShiftSystem.cs new file mode 100644 index 00000000000..6caf723a8c6 --- /dev/null +++ b/Content.Shared/WhiteDream/BloodCult/Constructs/PhaseShift/SharedPhaseShiftSystem.cs @@ -0,0 +1,95 @@ +using System.Linq; +using Content.Shared.Interaction.Events; +using Content.Shared.Movement.Pulling.Components; +using Content.Shared.Movement.Pulling.Systems; +using Content.Shared.Movement.Systems; +using Content.Shared.StatusEffect; +using Content.Shared.Stealth; +using Content.Shared.Stealth.Components; +using Content.Shared.Throwing; +using Robust.Shared.Audio.Systems; +using Robust.Shared.Physics; +using Robust.Shared.Physics.Systems; + +namespace Content.Shared.WhiteDream.BloodCult.Constructs.PhaseShift; + +public abstract class SharedPhaseShiftSystem : EntitySystem +{ + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly MovementSpeedModifierSystem _movement = default!; + [Dependency] private readonly SharedPhysicsSystem _physics = default!; + [Dependency] private readonly SharedStealthSystem _stealth = default!; + [Dependency] private readonly SharedTransformSystem _transform = default!; + [Dependency] private readonly PullingSystem _pulling = default!; + [Dependency] private readonly StatusEffectsSystem _statusEffects = default!; + + public override void Initialize() + { + SubscribeLocalEvent(OnComponentStartup); + + SubscribeLocalEvent(OnRefresh); + SubscribeLocalEvent(OnAttackAttempt); + SubscribeLocalEvent(OnThrowAttempt); + + SubscribeLocalEvent(OnComponentShutdown); + } + + protected virtual void OnComponentStartup(Entity ent, ref ComponentStartup args) + { + var pos = _transform.GetMapCoordinates(ent); + Spawn(ent.Comp.PhaseInEffect, pos); + _audio.PlayPvs(ent.Comp.PhaseInSound, Transform(ent).Coordinates); + + if (TryComp(ent, out var fixtures) && fixtures.FixtureCount >= 1) + { + var fixture = fixtures.Fixtures.First(); + ent.Comp.StoredMask = fixture.Value.CollisionMask; + ent.Comp.StoredLayer = fixture.Value.CollisionLayer; + _physics.SetCollisionMask(ent, fixture.Key, fixture.Value, ent.Comp.CollisionMask, fixtures); + _physics.SetCollisionLayer(ent, fixture.Key, fixture.Value, ent.Comp.CollisionLayer, fixtures); + } + + var stealth = EnsureComp(ent); + _stealth.SetVisibility(ent, -1, stealth); + + if (TryComp(ent, out PullableComponent? pullable)) + _pulling.TryStopPull(ent, pullable); + + _movement.RefreshMovementSpeedModifiers(ent); + } + + private void OnRefresh(Entity ent, ref RefreshMovementSpeedModifiersEvent args) => + args.ModifySpeed(ent.Comp.MovementSpeedBuff, ent.Comp.MovementSpeedBuff); + + private void OnAttackAttempt(Entity ent, ref AttackAttemptEvent args) + { + if (_statusEffects.HasStatusEffect(ent, ent.Comp.StatusEffectId)) + _statusEffects.TryRemoveStatusEffect(ent, ent.Comp.StatusEffectId); + } + + private void OnThrowAttempt(Entity ent, ref ThrowAttemptEvent args) + { + if (_statusEffects.HasStatusEffect(ent, ent.Comp.StatusEffectId)) + _statusEffects.TryRemoveStatusEffect(ent, ent.Comp.StatusEffectId); + } + + protected virtual void OnComponentShutdown(Entity ent, ref ComponentShutdown args) + { + Spawn(ent.Comp.PhaseOutEffect, _transform.GetMapCoordinates(ent)); + _audio.PlayPvs(ent.Comp.PhaseOutSound, ent); + + if (TryComp(ent, out var fixtures) && fixtures.FixtureCount >= 1) + { + var fixture = fixtures.Fixtures.First(); + + _physics.SetCollisionMask(ent, fixture.Key, fixture.Value, ent.Comp.StoredMask, fixtures); + _physics.SetCollisionLayer(ent, fixture.Key, fixture.Value, ent.Comp.StoredLayer, fixtures); + } + + _stealth.SetVisibility(ent, 1); + RemComp(ent); + + ent.Comp.MovementSpeedBuff = 1; + _movement.RefreshMovementSpeedModifiers(ent); + } +} diff --git a/Content.Shared/WhiteDream/BloodCult/Items/CultItemComponent.cs b/Content.Shared/WhiteDream/BloodCult/Items/CultItemComponent.cs new file mode 100644 index 00000000000..b0a41ed31b8 --- /dev/null +++ b/Content.Shared/WhiteDream/BloodCult/Items/CultItemComponent.cs @@ -0,0 +1,16 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.WhiteDream.BloodCult.Items; + +[RegisterComponent, NetworkedComponent] +public sealed partial class CultItemComponent : Component +{ + /// + /// Allow non-cultists to use this item? + /// + [DataField] + public bool AllowUseToEveryone; + + [DataField] + public TimeSpan KnockdownDuration = TimeSpan.FromSeconds(2); +} diff --git a/Content.Shared/WhiteDream/BloodCult/Items/CultItemSystem.cs b/Content.Shared/WhiteDream/BloodCult/Items/CultItemSystem.cs new file mode 100644 index 00000000000..13e51214e0a --- /dev/null +++ b/Content.Shared/WhiteDream/BloodCult/Items/CultItemSystem.cs @@ -0,0 +1,103 @@ +using Content.Shared.Blocking; +using Content.Shared.Ghost; +using Content.Shared.Hands.EntitySystems; +using Content.Shared.Interaction; +using Content.Shared.Interaction.Events; +using Content.Shared.Inventory.Events; +using Content.Shared.Popups; +using Content.Shared.Projectiles; +using Content.Shared.Stunnable; +using Content.Shared.Throwing; +using Content.Shared.Weapons.Melee.Events; +using Content.Shared.WhiteDream.BloodCult.BloodCultist; +using Robust.Shared.Network; + +namespace Content.Shared.WhiteDream.BloodCult.Items; + +public sealed class CultItemSystem : EntitySystem +{ + [Dependency] private readonly SharedHandsSystem _hands = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly SharedStunSystem _stun = default!; + [Dependency] private readonly INetManager _net = default!; + + public override void Initialize() + { + SubscribeLocalEvent(OnActivate); + SubscribeLocalEvent(OnUseInHand); + SubscribeLocalEvent(OnBeforeGettingThrown); + SubscribeLocalEvent(OnEquipAttempt); + SubscribeLocalEvent(OnMeleeAttempt); + SubscribeLocalEvent(OnBeforeBlocking); + } + + private void OnActivate(Entity item, ref ActivateInWorldEvent args) + { + if (CanUse(args.User)) + return; + + args.Handled = true; + KnockdownAndDropItem(item, args.User, Loc.GetString("cult-item-component-generic")); + } + + private void OnUseInHand(Entity item, ref UseInHandEvent args) + { + if (CanUse(args.User) || + // Allow non-cultists to remove embedded cultist weapons and getting knocked down afterwards on pickup + (TryComp(item.Owner, out var embeddable) && embeddable.Target != null)) + return; + + args.Handled = true; + KnockdownAndDropItem(item, args.User, Loc.GetString("cult-item-component-generic")); + } + + private void OnBeforeGettingThrown(Entity item, ref BeforeGettingThrownEvent args) + { + if (CanUse(args.PlayerUid)) + return; + + args.Cancelled = true; + KnockdownAndDropItem(item, args.PlayerUid, Loc.GetString("cult-item-component-throw-fail"), true); + } + + private void OnEquipAttempt(Entity item, ref BeingEquippedAttemptEvent args) + { + if (CanUse(args.EquipTarget)) + return; + + args.Cancel(); + KnockdownAndDropItem(item, args.Equipee, Loc.GetString("cult-item-component-equip-fail")); + } + + private void OnMeleeAttempt(Entity item, ref AttemptMeleeEvent args) + { + if (CanUse(args.PlayerUid)) + return; + + args.Cancelled = true; + KnockdownAndDropItem(item, args.PlayerUid, Loc.GetString("cult-item-component-attack-fail")); + } + + private void OnBeforeBlocking(Entity item, ref BeforeBlockingEvent args) + { + if (CanUse(args.User)) + return; + + args.Cancel(); + KnockdownAndDropItem(item, args.User, Loc.GetString("cult-item-component-block-fail")); + } + + // serverOnly is a very rough hack to make sure OnBeforeGettingThrown (that is only run server-side) can + // show the popup while not causing several popups to show up with PopupEntity. + private void KnockdownAndDropItem(Entity item, EntityUid user, string message, bool serverOnly = false) + { + if (serverOnly) + _popup.PopupEntity(message, item, user); + else + _popup.PopupPredicted(message, item, user); + _stun.TryKnockdown(user, item.Comp.KnockdownDuration, true); + _hands.TryDrop(user); + } + + private bool CanUse(EntityUid? uid) => HasComp(uid) || HasComp(uid); +} diff --git a/Content.Shared/WhiteDream/BloodCult/Items/VoidTorch/VoidTorchComponent.cs b/Content.Shared/WhiteDream/BloodCult/Items/VoidTorch/VoidTorchComponent.cs new file mode 100644 index 00000000000..572e41c5883 --- /dev/null +++ b/Content.Shared/WhiteDream/BloodCult/Items/VoidTorch/VoidTorchComponent.cs @@ -0,0 +1,21 @@ +using Robust.Shared.Audio; + +namespace Content.Shared.WhiteDream.BloodCult.Items.VoidTorch; + +[RegisterComponent] +public sealed partial class VoidTorchComponent : Component +{ + [DataField] + public int Charges = 5; + + [DataField] + public SoundPathSpecifier TeleportSound = new("/Audio/WhiteDream/BloodCult/veilin.ogg"); + + [DataField] + public string TurnOnLightBehaviour = "turn_on"; + + [DataField] + public string TurnOffLightBehaviour = "fade_out"; + + public EntityUid? TargetItem; +} diff --git a/Content.Shared/WhiteDream/BloodCult/RunedDoor/RunedDoorComponent.cs b/Content.Shared/WhiteDream/BloodCult/RunedDoor/RunedDoorComponent.cs new file mode 100644 index 00000000000..608e427e4cf --- /dev/null +++ b/Content.Shared/WhiteDream/BloodCult/RunedDoor/RunedDoorComponent.cs @@ -0,0 +1,4 @@ +namespace Content.Shared.WhiteDream.BloodCult.RunedDoor; + +[RegisterComponent] +public sealed partial class RunedDoorComponent : Component; diff --git a/Content.Shared/WhiteDream/BloodCult/RunedDoor/RunedDoorSystem.cs b/Content.Shared/WhiteDream/BloodCult/RunedDoor/RunedDoorSystem.cs new file mode 100644 index 00000000000..7d9dc2281cc --- /dev/null +++ b/Content.Shared/WhiteDream/BloodCult/RunedDoor/RunedDoorSystem.cs @@ -0,0 +1,54 @@ +using Content.Shared.Doors; +using Content.Shared.Prying.Components; +using Content.Shared.Repulsor; +using Content.Shared.WhiteDream.BloodCult.BloodCultist; +using Content.Shared.WhiteDream.BloodCult.Constructs; + +namespace Content.Shared.WhiteDream.BloodCult.RunedDoor; + +public sealed class RunedDoorSystem : EntitySystem +{ + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnBeforeDoorOpened); + SubscribeLocalEvent(OnBeforeDoorClosed); + SubscribeLocalEvent(OnBeforePry); + SubscribeLocalEvent(BefoRepulse); + } + + private void OnBeforeDoorOpened(Entity door, ref BeforeDoorOpenedEvent args) + { + if (args.User is not { } user) + return; + + if (!CanInteract(user)) + args.Cancel(); + } + + private void OnBeforeDoorClosed(Entity door, ref BeforeDoorClosedEvent args) + { + if (args.User is not { } user) + return; + + if (!CanInteract(user)) + args.Cancel(); + } + + private void OnBeforePry(Entity door, ref BeforePryEvent args) + { + args.Cancelled = true; + } + + private void BefoRepulse(Entity door, ref BeforeRepulseEvent args) + { + if (HasComp(args.Target) || HasComp(args.Target)) + args.Cancel(); + } + + private bool CanInteract(EntityUid user) + { + return HasComp(user) || HasComp(user); + } +} diff --git a/Content.Shared/WhiteDream/BloodCult/Runes/ApocalypseRune.cs b/Content.Shared/WhiteDream/BloodCult/Runes/ApocalypseRune.cs new file mode 100644 index 00000000000..5488226c4d0 --- /dev/null +++ b/Content.Shared/WhiteDream/BloodCult/Runes/ApocalypseRune.cs @@ -0,0 +1,14 @@ +using Content.Shared.DoAfter; +using Robust.Shared.Serialization; + +namespace Content.Shared.WhiteDream.BloodCult.Runes; + +[Serializable, NetSerializable] +public sealed partial class ApocalypseRuneDoAfter : SimpleDoAfterEvent; + +[Serializable, NetSerializable] +public enum ApocalypseRuneVisuals +{ + Used, + Layer +} diff --git a/Content.Shared/WhiteDream/BloodCult/Runes/RendingRune.cs b/Content.Shared/WhiteDream/BloodCult/Runes/RendingRune.cs new file mode 100644 index 00000000000..431acdaec47 --- /dev/null +++ b/Content.Shared/WhiteDream/BloodCult/Runes/RendingRune.cs @@ -0,0 +1,14 @@ +using Content.Shared.DoAfter; +using Robust.Shared.Serialization; + +namespace Content.Shared.WhiteDream.BloodCult.Runes; + +[Serializable, NetSerializable] +public sealed partial class RendingRuneDoAfter : SimpleDoAfterEvent; + +[Serializable, NetSerializable] +public enum RendingRuneVisuals +{ + Active, + Layer +} diff --git a/Content.Shared/WhiteDream/BloodCult/Runes/RuneDrawerComponent.cs b/Content.Shared/WhiteDream/BloodCult/Runes/RuneDrawerComponent.cs new file mode 100644 index 00000000000..c1388994a4a --- /dev/null +++ b/Content.Shared/WhiteDream/BloodCult/Runes/RuneDrawerComponent.cs @@ -0,0 +1,47 @@ +using Content.Shared.DoAfter; +using Robust.Shared.Audio; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; + +namespace Content.Shared.WhiteDream.BloodCult.Runes; + +[RegisterComponent, NetworkedComponent] +public sealed partial class RuneDrawerComponent : Component +{ + [DataField] + public float EraseTime = 4f; + + [DataField] + public SoundSpecifier StartDrawingSound = new SoundPathSpecifier("/Audio/WhiteDream/BloodCult/butcher.ogg"); + + public SoundSpecifier EndDrawingSound = new SoundPathSpecifier("/Audio/WhiteDream/BloodCult/blood.ogg"); +} + +[Serializable, NetSerializable] +public enum RuneDrawerBuiKey +{ + Key +} + +[Serializable, NetSerializable] +public sealed class RuneDrawerMenuState(List> availalbeRunes) : BoundUserInterfaceState +{ + public List> AvailalbeRunes { get; private set; } = availalbeRunes; +} + +[Serializable, NetSerializable] +public sealed class RuneDrawerSelectedMessage(ProtoId selectedRune) : BoundUserInterfaceMessage +{ + public ProtoId SelectedRune { get; private set; } = selectedRune; +} + +[Serializable, NetSerializable] +public sealed partial class RuneEraseDoAfterEvent : SimpleDoAfterEvent; + +[Serializable, NetSerializable] +public sealed partial class DrawRuneDoAfter : SimpleDoAfterEvent +{ + public ProtoId Rune; + public SoundSpecifier EndDrawingSound; +} diff --git a/Content.Shared/WhiteDream/BloodCult/Runes/RuneSelectorPrototype.cs b/Content.Shared/WhiteDream/BloodCult/Runes/RuneSelectorPrototype.cs new file mode 100644 index 00000000000..12350917d00 --- /dev/null +++ b/Content.Shared/WhiteDream/BloodCult/Runes/RuneSelectorPrototype.cs @@ -0,0 +1,29 @@ +using Content.Shared.Damage; +using Robust.Shared.Prototypes; + +namespace Content.Shared.WhiteDream.BloodCult.Runes; + +[Prototype("runeSelector")] +public sealed class RuneSelectorPrototype : IPrototype +{ + [IdDataField] + public string ID { get; } = default!; + + [DataField(required: true)] + public EntProtoId Prototype; + + [DataField] + public float DrawTime = 4f; + + [DataField] + public bool RequireTargetDead; + + [DataField] + public int RequiredTotalCultists = 1; + + /// + /// Damage dealt on the rune drawing. + /// + [DataField] + public DamageSpecifier DrawDamage = new() { DamageDict = new() { ["Slash"] = 15 } }; +} diff --git a/Content.Shared/WhiteDream/BloodCult/Spells/Events.cs b/Content.Shared/WhiteDream/BloodCult/Spells/Events.cs new file mode 100644 index 00000000000..6b98514d44b --- /dev/null +++ b/Content.Shared/WhiteDream/BloodCult/Spells/Events.cs @@ -0,0 +1,138 @@ +using Content.Shared.Actions; +using Content.Shared.Chat; +using Content.Shared.DoAfter; +using Content.Shared.Magic; +using Content.Shared.StatusEffect; +using Robust.Shared.Audio; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; + +namespace Content.Shared.WhiteDream.BloodCult.Spells; + +public sealed partial class BloodCultStunEvent : EntityTargetActionEvent, ISpeakSpell +{ + [DataField] + public TimeSpan ParalyzeDuration = TimeSpan.FromSeconds(16); + + [DataField] + public TimeSpan MuteDuration = TimeSpan.FromSeconds(12); + + [DataField] + public string? Speech { get; set; } + + public InGameICChatType ChatType => InGameICChatType.Whisper; +} + +public sealed partial class BloodCultTeleportEvent : EntityTargetActionEvent, ISpeakSpell +{ + [DataField] + public float Range = 5; + + [DataField] + public TimeSpan DoAfterDuration = TimeSpan.FromSeconds(2); + + [DataField] + public string? Speech { get; set; } + + public InGameICChatType ChatType => InGameICChatType.Whisper; +} + +public sealed partial class BloodCultEmpEvent : InstantActionEvent, ISpeakSpell +{ + [DataField] + public float Range = 4; + + [DataField] + public float EnergyConsumption = 1000; + + [DataField] + public float Duration = 20; + + [DataField] + public string? Speech { get; set; } + + public InGameICChatType ChatType => InGameICChatType.Whisper; +} + +public sealed partial class BloodCultShacklesEvent : EntityTargetActionEvent, ISpeakSpell +{ + [DataField] + public EntProtoId ShacklesProto = "ShadowShackles"; + + [DataField] + public TimeSpan MuteDuration = TimeSpan.FromSeconds(5); + + [DataField] + public TimeSpan KnockdownDuration = TimeSpan.FromSeconds(1); + + [DataField] + public string? Speech { get; set; } + + public InGameICChatType ChatType => InGameICChatType.Whisper; +} + +public sealed partial class BloodCultTwistedConstructionEvent : EntityTargetActionEvent, ISpeakSpell +{ + [DataField] + public string? Speech { get; set; } + + public InGameICChatType ChatType => InGameICChatType.Whisper; +} + +public sealed partial class SummonEquipmentEvent : InstantActionEvent, ISpeakSpell +{ + /// + /// Slot - EntProtoId + /// + [DataField] + public Dictionary Prototypes = new(); + + [DataField] + public string? Speech { get; set; } + + public InGameICChatType ChatType => InGameICChatType.Whisper; +} + +public sealed partial class BloodSpearRecalledEvent : InstantActionEvent; + +public sealed partial class PlaceTileEntityEvent : WorldTargetActionEvent +{ + [DataField] + public EntProtoId? Entity; + + [DataField] + public string? TileId; + + [DataField] + public SoundSpecifier? Audio; + +} + +public sealed partial class PhaseShiftEvent : InstantActionEvent +{ + [DataField] + public TimeSpan Duration = TimeSpan.FromSeconds(5); + + [DataField] + public ProtoId StatusEffectId = "PhaseShifted"; +} + +[Serializable, NetSerializable] +public sealed partial class TwistedConstructionDoAfterEvent : SimpleDoAfterEvent; + +[Serializable, NetSerializable] +public sealed partial class CreateSpeellDoAfterEvent : SimpleDoAfterEvent +{ + public EntProtoId ActionProtoId; +} + +[Serializable, NetSerializable] +public sealed partial class TeleportActionDoAfterEvent : SimpleDoAfterEvent +{ + public NetEntity Rune; + public SoundPathSpecifier TeleportInSound = new("/Audio/WhiteDream/BloodCult/veilin.ogg"); + public SoundPathSpecifier TeleportOutSound = new("/Audio/WhiteDream/BloodCult/veilout.ogg"); +} + +[Serializable, NetSerializable] +public sealed partial class BloodRitesExtractDoAfterEvent : SimpleDoAfterEvent; diff --git a/Content.Shared/WhiteDream/BloodCult/UI/BloodRites.cs b/Content.Shared/WhiteDream/BloodCult/UI/BloodRites.cs new file mode 100644 index 00000000000..961f2015a4d --- /dev/null +++ b/Content.Shared/WhiteDream/BloodCult/UI/BloodRites.cs @@ -0,0 +1,25 @@ +using Content.Shared.FixedPoint; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; + +namespace Content.Shared.WhiteDream.BloodCult.UI; + +[NetSerializable, Serializable] +public enum BloodRitesUiKey : byte +{ + Key, +} + +[Serializable, NetSerializable] +public sealed class BloodRitesUiState(Dictionary crafts, FixedPoint2 storedBlood) + : BoundUserInterfaceState +{ + public Dictionary Crafts = crafts; + public FixedPoint2 StoredBlood = storedBlood; +} + +[Serializable, NetSerializable] +public sealed class BloodRitesMessage(EntProtoId selectedProto) : BoundUserInterfaceMessage +{ + public EntProtoId SelectedProto = selectedProto; +} diff --git a/Content.Shared/WhiteDream/BloodCult/UI/NameSelector.cs b/Content.Shared/WhiteDream/BloodCult/UI/NameSelector.cs new file mode 100644 index 00000000000..7b2b6c53896 --- /dev/null +++ b/Content.Shared/WhiteDream/BloodCult/UI/NameSelector.cs @@ -0,0 +1,16 @@ +using Robust.Shared.Serialization; + +namespace Content.Shared.WhiteDream.BloodCult.UI; + +[Serializable, NetSerializable] +public enum NameSelectorUiKey +{ + Key +} + +[Serializable, NetSerializable] +public sealed class NameSelectedMessage(string name) + : BoundUserInterfaceMessage +{ + public string Name { get; } = name; +} diff --git a/Content.Shared/WhiteDream/BloodCult/Visuals.cs b/Content.Shared/WhiteDream/BloodCult/Visuals.cs new file mode 100644 index 00000000000..2d01da48c97 --- /dev/null +++ b/Content.Shared/WhiteDream/BloodCult/Visuals.cs @@ -0,0 +1,40 @@ +using Robust.Shared.Serialization; + +namespace Content.Shared.WhiteDream.BloodCult; + +[Serializable, NetSerializable] +public enum SoulShardVisualState : byte +{ + HasMind, + Blessed, + Sprite, + Glow +} + +[Serializable, NetSerializable] +public enum ConstructVisualsState : byte +{ + Transforming, + Sprite, + Glow +} + +[Serializable, NetSerializable] +public enum GenericCultVisuals : byte +{ + State, // True or False + Layer +} + +[Serializable, NetSerializable] +public enum PylonVisuals : byte +{ + Activated, + Layer +} + +[Serializable, NetSerializable] +public enum PentagramKey +{ + Key +} diff --git a/Content.Shared/Whitelist/EntityWhitelistSystem.cs b/Content.Shared/Whitelist/EntityWhitelistSystem.cs index d73646b7e99..f311946cf98 100644 --- a/Content.Shared/Whitelist/EntityWhitelistSystem.cs +++ b/Content.Shared/Whitelist/EntityWhitelistSystem.cs @@ -60,6 +60,90 @@ public bool IsValid(EntityWhitelist list, EntityUid uid) return list.RequireAll; } + /// The following are a list of "helper functions" that are basically the same as each other + /// to help make code that uses EntityWhitelist a bit more readable because at the moment + /// it is quite clunky having to write out component.Whitelist == null ? true : _whitelist.IsValid(component.Whitelist, uid) + /// several times in a row and makes comparisons easier to read + + /// + /// Helper function to determine if Whitelist is not null and entity is on list + /// + public bool IsWhitelistPass(EntityWhitelist? whitelist, EntityUid uid) + { + if (whitelist == null) + return false; + + return IsValid(whitelist, uid); + } + + /// + /// Helper function to determine if Whitelist is not null and entity is not on the list + /// + public bool IsWhitelistFail(EntityWhitelist? whitelist, EntityUid uid) + { + if (whitelist == null) + return false; + + return !IsValid(whitelist, uid); + } + + /// + /// Helper function to determine if Whitelist is either null or the entity is on the list + /// + public bool IsWhitelistPassOrNull(EntityWhitelist? whitelist, EntityUid uid) + { + if (whitelist == null) + return true; + + return IsValid(whitelist, uid); + } + + /// + /// Helper function to determine if Whitelist is either null or the entity is not on the list + /// + public bool IsWhitelistFailOrNull(EntityWhitelist? whitelist, EntityUid uid) + { + if (whitelist == null) + return true; + + return !IsValid(whitelist, uid); + } + + /// + /// Helper function to determine if Blacklist is not null and entity is on list + /// Duplicate of equivalent Whitelist function + /// + public bool IsBlacklistPass(EntityWhitelist? blacklist, EntityUid uid) + { + return IsWhitelistPass(blacklist, uid); + } + + /// + /// Helper function to determine if Blacklist is not null and entity is not on the list + /// Duplicate of equivalent Whitelist function + /// + public bool IsBlacklistFail(EntityWhitelist? blacklist, EntityUid uid) + { + return IsWhitelistFail(blacklist, uid); + } + + /// + /// Helper function to determine if Blacklist is either null or the entity is on the list + /// Duplicate of equivalent Whitelist function + /// + public bool IsBlacklistPassOrNull(EntityWhitelist? blacklist, EntityUid uid) + { + return IsWhitelistPassOrNull(blacklist, uid); + } + + /// + /// Helper function to determine if Blacklist is either null or the entity is not on the list + /// Duplicate of equivalent Whitelist function + /// + public bool IsBlacklistFailOrNull(EntityWhitelist? blacklist, EntityUid uid) + { + return IsWhitelistFailOrNull(blacklist, uid); + } private void EnsureRegistrations(EntityWhitelist list) { diff --git a/Content.Tests/Shared/Alert/AlertManagerTests.cs b/Content.Tests/Shared/Alert/AlertManagerTests.cs index 2d5f6af5a7f..c57df63d5b7 100644 --- a/Content.Tests/Shared/Alert/AlertManagerTests.cs +++ b/Content.Tests/Shared/Alert/AlertManagerTests.cs @@ -1,6 +1,5 @@ using System.IO; using Content.Client.Alerts; -using Content.Server.Alert; using Content.Shared.Alert; using NUnit.Framework; using Robust.Shared.GameObjects; @@ -45,15 +44,15 @@ public void TestAlertManager() prototypeManager.Initialize(); prototypeManager.LoadFromStream(new StringReader(PROTOTYPES)); - Assert.That(alertsSystem.TryGet(AlertType.LowPressure, out var lowPressure)); - Assert.That(lowPressure.Icons[0], Is.EqualTo(new SpriteSpecifier.Texture(new ("/Textures/Interface/Alerts/Pressure/lowpressure.png")))); - Assert.That(alertsSystem.TryGet(AlertType.HighPressure, out var highPressure)); - Assert.That(highPressure.Icons[0], Is.EqualTo(new SpriteSpecifier.Texture(new ("/Textures/Interface/Alerts/Pressure/highpressure.png")))); + Assert.That(alertsSystem.TryGet("LowPressure", out var lowPressure)); + Assert.That(lowPressure!.Icons[0], Is.EqualTo(new SpriteSpecifier.Texture(new ("/Textures/Interface/Alerts/Pressure/lowpressure.png")))); + Assert.That(alertsSystem.TryGet("HighPressure", out var highPressure)); + Assert.That(highPressure!.Icons[0], Is.EqualTo(new SpriteSpecifier.Texture(new ("/Textures/Interface/Alerts/Pressure/highpressure.png")))); - Assert.That(alertsSystem.TryGet(AlertType.LowPressure, out lowPressure)); - Assert.That(lowPressure.Icons[0], Is.EqualTo(new SpriteSpecifier.Texture(new ("/Textures/Interface/Alerts/Pressure/lowpressure.png")))); - Assert.That(alertsSystem.TryGet(AlertType.HighPressure, out highPressure)); - Assert.That(highPressure.Icons[0], Is.EqualTo(new SpriteSpecifier.Texture(new ("/Textures/Interface/Alerts/Pressure/highpressure.png")))); + Assert.That(alertsSystem.TryGet("LowPressure", out lowPressure)); + Assert.That(lowPressure!.Icons[0], Is.EqualTo(new SpriteSpecifier.Texture(new ("/Textures/Interface/Alerts/Pressure/lowpressure.png")))); + Assert.That(alertsSystem.TryGet("HighPressure", out highPressure)); + Assert.That(highPressure!.Icons[0], Is.EqualTo(new SpriteSpecifier.Texture(new ("/Textures/Interface/Alerts/Pressure/highpressure.png")))); } } } diff --git a/Content.Tests/Shared/Alert/AlertOrderPrototypeTests.cs b/Content.Tests/Shared/Alert/AlertOrderPrototypeTests.cs index 56f76d46a92..efcd59acbbb 100644 --- a/Content.Tests/Shared/Alert/AlertOrderPrototypeTests.cs +++ b/Content.Tests/Shared/Alert/AlertOrderPrototypeTests.cs @@ -85,24 +85,24 @@ public void TestAlertOrderPrototype() var alerts = prototypeManager.EnumeratePrototypes(); // ensure they sort according to our expected criteria - var expectedOrder = new List(); - expectedOrder.Add(AlertType.Handcuffed); - expectedOrder.Add(AlertType.Ensnared); - expectedOrder.Add(AlertType.HighPressure); + var expectedOrder = new List(); + expectedOrder.Add("Handcuffed"); + expectedOrder.Add("Ensnared"); + expectedOrder.Add("HighPressure"); // stuff with only category + same category ordered by enum value - expectedOrder.Add(AlertType.Peckish); - expectedOrder.Add(AlertType.Hot); - expectedOrder.Add(AlertType.Stun); - expectedOrder.Add(AlertType.LowPressure); - expectedOrder.Add(AlertType.Cold); - // stuff at end of list ordered by enum value - expectedOrder.Add(AlertType.Weightless); - expectedOrder.Add(AlertType.PilotingShuttle); + expectedOrder.Add("Peckish"); + expectedOrder.Add("Hot"); + expectedOrder.Add("Stun"); + expectedOrder.Add("LowPressure"); + expectedOrder.Add("Cold"); + // stuff at end of list ordered by ID + expectedOrder.Add("PilotingShuttle"); + expectedOrder.Add("Weightless"); var actual = alerts.ToList(); actual.Sort(alertOrder); - Assert.That(actual.Select(a => a.AlertType).ToList(), Is.EqualTo(expectedOrder)); + Assert.That(actual.Select(a => a.ID).ToList(), Is.EqualTo(expectedOrder)); } } } diff --git a/Content.Tests/Shared/Alert/AlertPrototypeTests.cs b/Content.Tests/Shared/Alert/AlertPrototypeTests.cs index d95acb8aff4..43ae98b452b 100644 --- a/Content.Tests/Shared/Alert/AlertPrototypeTests.cs +++ b/Content.Tests/Shared/Alert/AlertPrototypeTests.cs @@ -39,9 +39,9 @@ public void OneTimeSetUp() [Test] public void TestAlertKey() { - Assert.That(new AlertKey(AlertType.HumanHealth, null), Is.Not.EqualTo(AlertKey.ForCategory(AlertCategory.Health))); - Assert.That((new AlertKey(null, AlertCategory.Health)), Is.EqualTo(AlertKey.ForCategory(AlertCategory.Health))); - Assert.That((new AlertKey(AlertType.Buckled, AlertCategory.Health)), Is.EqualTo(AlertKey.ForCategory(AlertCategory.Health))); + Assert.That(new AlertKey("HumanHealth", null), Is.Not.EqualTo(AlertKey.ForCategory("Health"))); + Assert.That((new AlertKey(null, "Health")), Is.EqualTo(AlertKey.ForCategory("Health"))); + Assert.That((new AlertKey("Buckled", "Health")), Is.EqualTo(AlertKey.ForCategory("Health"))); } [TestCase(0, "/Textures/Interface/Alerts/Human/human.rsi/human0.png")] diff --git a/Resources/Audio/Medical/Surgery/attributions.yml b/Resources/Audio/Medical/Surgery/attributions.yml new file mode 100644 index 00000000000..c88a3e0b70f --- /dev/null +++ b/Resources/Audio/Medical/Surgery/attributions.yml @@ -0,0 +1,49 @@ +- files: ["cautery1.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/cautery1.ogg" + +- files: ["cautery2.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/cautery2.ogg" + +- files: ["hemostat.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/hemostat.ogg" + +- files: ["organ1.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/organ1.ogg" + +- files: ["organ2.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/organ2.ogg" + +- files: ["retractor1.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/retractor1.ogg" + +- files: ["retractor2.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/retractor2.ogg" + +- files: ["saw.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/saw.ogg" + +- files: ["scalpel1.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/scalpel1.ogg" + +- files: ["scalpel2.ogg"] + license: "CC-BY-SA-3.0" + copyright: "Taken from cmss13" + source: "https://github.com/cmss13-devs/cmss13/blob/fae73dfa5aedb0a253de04b60085ed8a178d3bf7/sound/surgery/scalpel2.ogg" \ No newline at end of file diff --git a/Resources/Audio/Medical/Surgery/cautery1.ogg b/Resources/Audio/Medical/Surgery/cautery1.ogg new file mode 100644 index 00000000000..fbd9f2b4d86 Binary files /dev/null and b/Resources/Audio/Medical/Surgery/cautery1.ogg differ diff --git a/Resources/Audio/Medical/Surgery/cautery2.ogg b/Resources/Audio/Medical/Surgery/cautery2.ogg new file mode 100644 index 00000000000..cc91e9f3ce6 Binary files /dev/null and b/Resources/Audio/Medical/Surgery/cautery2.ogg differ diff --git a/Resources/Audio/Medical/Surgery/hemostat1.ogg b/Resources/Audio/Medical/Surgery/hemostat1.ogg new file mode 100644 index 00000000000..e624bafafbf Binary files /dev/null and b/Resources/Audio/Medical/Surgery/hemostat1.ogg differ diff --git a/Resources/Audio/Medical/Surgery/organ1.ogg b/Resources/Audio/Medical/Surgery/organ1.ogg new file mode 100644 index 00000000000..37eaffc1a34 Binary files /dev/null and b/Resources/Audio/Medical/Surgery/organ1.ogg differ diff --git a/Resources/Audio/Medical/Surgery/organ2.ogg b/Resources/Audio/Medical/Surgery/organ2.ogg new file mode 100644 index 00000000000..43b22f8354c Binary files /dev/null and b/Resources/Audio/Medical/Surgery/organ2.ogg differ diff --git a/Resources/Audio/Medical/Surgery/retractor1.ogg b/Resources/Audio/Medical/Surgery/retractor1.ogg new file mode 100644 index 00000000000..70625c961cf Binary files /dev/null and b/Resources/Audio/Medical/Surgery/retractor1.ogg differ diff --git a/Resources/Audio/Medical/Surgery/retractor2.ogg b/Resources/Audio/Medical/Surgery/retractor2.ogg new file mode 100644 index 00000000000..94548ec2504 Binary files /dev/null and b/Resources/Audio/Medical/Surgery/retractor2.ogg differ diff --git a/Resources/Audio/Medical/Surgery/saw.ogg b/Resources/Audio/Medical/Surgery/saw.ogg new file mode 100644 index 00000000000..62623f6aa3a Binary files /dev/null and b/Resources/Audio/Medical/Surgery/saw.ogg differ diff --git a/Resources/Audio/Medical/Surgery/scalpel1.ogg b/Resources/Audio/Medical/Surgery/scalpel1.ogg new file mode 100644 index 00000000000..f292d1024da Binary files /dev/null and b/Resources/Audio/Medical/Surgery/scalpel1.ogg differ diff --git a/Resources/Audio/Medical/Surgery/scalpel2.ogg b/Resources/Audio/Medical/Surgery/scalpel2.ogg new file mode 100644 index 00000000000..7335f3d9cef Binary files /dev/null and b/Resources/Audio/Medical/Surgery/scalpel2.ogg differ diff --git a/Resources/Audio/WhiteDream/BloodCult/blood.ogg b/Resources/Audio/WhiteDream/BloodCult/blood.ogg new file mode 100644 index 00000000000..f6024a5ff6a Binary files /dev/null and b/Resources/Audio/WhiteDream/BloodCult/blood.ogg differ diff --git a/Resources/Audio/WhiteDream/BloodCult/blood_cult_greeting.ogg b/Resources/Audio/WhiteDream/BloodCult/blood_cult_greeting.ogg new file mode 100644 index 00000000000..9fa22df51d3 Binary files /dev/null and b/Resources/Audio/WhiteDream/BloodCult/blood_cult_greeting.ogg differ diff --git a/Resources/Audio/WhiteDream/BloodCult/butcher.ogg b/Resources/Audio/WhiteDream/BloodCult/butcher.ogg new file mode 100644 index 00000000000..2e4a0d2ddc7 Binary files /dev/null and b/Resources/Audio/WhiteDream/BloodCult/butcher.ogg differ diff --git a/Resources/Audio/WhiteDream/BloodCult/curse.ogg b/Resources/Audio/WhiteDream/BloodCult/curse.ogg new file mode 100644 index 00000000000..c495f0e4398 Binary files /dev/null and b/Resources/Audio/WhiteDream/BloodCult/curse.ogg differ diff --git a/Resources/Audio/WhiteDream/BloodCult/enter_blood.ogg b/Resources/Audio/WhiteDream/BloodCult/enter_blood.ogg new file mode 100644 index 00000000000..fb1666e48ca Binary files /dev/null and b/Resources/Audio/WhiteDream/BloodCult/enter_blood.ogg differ diff --git a/Resources/Audio/WhiteDream/BloodCult/magic.ogg b/Resources/Audio/WhiteDream/BloodCult/magic.ogg new file mode 100644 index 00000000000..c107743d805 Binary files /dev/null and b/Resources/Audio/WhiteDream/BloodCult/magic.ogg differ diff --git a/Resources/Audio/WhiteDream/BloodCult/narsie_summoned.ogg b/Resources/Audio/WhiteDream/BloodCult/narsie_summoned.ogg new file mode 100644 index 00000000000..fb35af598ed Binary files /dev/null and b/Resources/Audio/WhiteDream/BloodCult/narsie_summoned.ogg differ diff --git a/Resources/Audio/WhiteDream/BloodCult/rending_draw_finished.ogg b/Resources/Audio/WhiteDream/BloodCult/rending_draw_finished.ogg new file mode 100644 index 00000000000..bfca2abf2ca Binary files /dev/null and b/Resources/Audio/WhiteDream/BloodCult/rending_draw_finished.ogg differ diff --git a/Resources/Audio/WhiteDream/BloodCult/rending_ritual.ogg b/Resources/Audio/WhiteDream/BloodCult/rending_ritual.ogg new file mode 100644 index 00000000000..44572f8ed15 Binary files /dev/null and b/Resources/Audio/WhiteDream/BloodCult/rending_ritual.ogg differ diff --git a/Resources/Audio/WhiteDream/BloodCult/resonator_blast.ogg b/Resources/Audio/WhiteDream/BloodCult/resonator_blast.ogg new file mode 100644 index 00000000000..c37c9e903de Binary files /dev/null and b/Resources/Audio/WhiteDream/BloodCult/resonator_blast.ogg differ diff --git a/Resources/Audio/WhiteDream/BloodCult/rites.ogg b/Resources/Audio/WhiteDream/BloodCult/rites.ogg new file mode 100644 index 00000000000..486940a4147 Binary files /dev/null and b/Resources/Audio/WhiteDream/BloodCult/rites.ogg differ diff --git a/Resources/Audio/WhiteDream/BloodCult/smoke.ogg b/Resources/Audio/WhiteDream/BloodCult/smoke.ogg new file mode 100644 index 00000000000..0109e1947c6 Binary files /dev/null and b/Resources/Audio/WhiteDream/BloodCult/smoke.ogg differ diff --git a/Resources/Audio/WhiteDream/BloodCult/startdraw.ogg b/Resources/Audio/WhiteDream/BloodCult/startdraw.ogg new file mode 100644 index 00000000000..e9054093579 Binary files /dev/null and b/Resources/Audio/WhiteDream/BloodCult/startdraw.ogg differ diff --git a/Resources/Audio/WhiteDream/BloodCult/veilin.ogg b/Resources/Audio/WhiteDream/BloodCult/veilin.ogg new file mode 100644 index 00000000000..d14cf85c5d6 Binary files /dev/null and b/Resources/Audio/WhiteDream/BloodCult/veilin.ogg differ diff --git a/Resources/Audio/WhiteDream/BloodCult/veilout.ogg b/Resources/Audio/WhiteDream/BloodCult/veilout.ogg new file mode 100644 index 00000000000..bf69f3c4082 Binary files /dev/null and b/Resources/Audio/WhiteDream/BloodCult/veilout.ogg differ diff --git a/Resources/Audio/WhiteDream/BloodCult/wand_teleport.ogg b/Resources/Audio/WhiteDream/BloodCult/wand_teleport.ogg new file mode 100644 index 00000000000..e16d231dddb Binary files /dev/null and b/Resources/Audio/WhiteDream/BloodCult/wand_teleport.ogg differ diff --git a/Resources/Audio/WhiteDream/BloodCult/wraith_phase.ogg b/Resources/Audio/WhiteDream/BloodCult/wraith_phase.ogg new file mode 100644 index 00000000000..a5672ed7cc9 Binary files /dev/null and b/Resources/Audio/WhiteDream/BloodCult/wraith_phase.ogg differ diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index ff7dce36c26..1e832dea293 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -7885,3 +7885,915 @@ Entries: id: 6518 time: '2024-11-13T23:27:00.0000000+00:00' url: https://github.com/Simple-Station/Einstein-Engines/pull/1188 +- author: sleepyyapril + changes: + - type: Add + message: Added the automatic voting system. + id: 6519 + time: '2024-11-14T02:05:45.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1213 +- author: Mnemotechnician + changes: + - type: Tweak + message: >- + Added languages to certain entities that lacked them, including MMIs and + positronic brains. + - type: Add + message: >- + Polymorphing into another entity now preserves your languages and + grammar. + id: 6520 + time: '2024-11-14T20:03:33.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1223 +- author: DEATHB4DEFEAT + changes: + - type: Add + message: Added spray-painting back + id: 6521 + time: '2024-11-15T14:08:04.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1222 +- author: zelezniciar + changes: + - type: Fix + message: Fixed pengiun cold resistance + id: 6522 + time: '2024-11-16T22:41:37.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1229 +- author: Mocho + changes: + - type: Add + message: A week has passed. Surgery is here. + id: 6523 + time: '2024-11-17T00:32:30.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1159 +- author: sleepyyapril + changes: + - type: Fix + message: Fixed stamina system + id: 6524 + time: '2024-11-18T02:17:27.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1245 +- author: DocNITE + changes: + - type: Add + message: Added Day/Night time cycle for admins and mapers. + id: 6525 + time: '2024-11-18T02:20:45.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1234 +- author: gluesniffler + changes: + - type: Add + message: You can now perform surgery as a monke. Rejoice. + - type: Add + message: >- + You can perform surgery on a lot of animals now, I missed a lot of them + so just ask if you want any particular critter to get it. + - type: Tweak + message: Entities now perish after 60 seconds of losing their heart and/or brain. + - type: Fix + message: Entities properly take asphyxiation damage after losing their brain. + - type: Fix + message: Torsos being gibbable, which would break surgery or just about anything. + - type: Fix + message: >- + Items not being removed from their respective slots if the parts were + gibbed rather than dropped. + - type: Fix + message: Animal organs not being usable properly in surgeries + - type: Fix + message: Cyborg limbs are now usable as pseudo-peg arm/legs. + id: 6526 + time: '2024-11-18T04:03:05.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1240 +- author: Skubman + changes: + - type: Fix + message: >- + Examining yourself with the Self-Aware trait will no longer crash your + game client. + id: 6527 + time: '2024-11-18T04:29:14.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1247 +- author: Skubman + changes: + - type: Add + message: >- + Surgery step descriptions (like making an incision, removing/attaching + limbs and organs) are now shown as popups to everyone in range upon the + start of the step. This makes it clear which surgical procedure is being + done and to which body part. No more stealthy brain-stealing in front of + everyone! + id: 6528 + time: '2024-11-18T15:15:56.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1241 +- author: Skubman + changes: + - type: Add + message: >- + The stamina cost of an object's power attack can now be revealed by + examining its damage values. + - type: Tweak + message: >- + Power attacks can't be done if your stamina is too low, so you can't + accidentally stamcrit yourself with power attacks anymore. + - type: Tweak + message: Power attacks now cost stamina even without hitting anything. + - type: Tweak + message: >- + Prevent power attacks from showing a blue visual effect on the character + who attacked due to stamina damage. + id: 6529 + time: '2024-11-18T15:19:10.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1238 +- author: VMSolidus + changes: + - type: Add + message: >- + Glimmer Wisps now completely obliterate their victim's Personhood, + inflicting the Mindbroken condition on them. + id: 6530 + time: '2024-11-18T22:07:31.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1248 +- author: VMSolidus + changes: + - type: Fix + message: >- + Reorganized Loadouts so that all Jobs now have their own job specific + tabs. The code for them has been thoroughly reorganized too, such that + figuring out which jobs are missing crap is way easier to do. + - type: Add + message: >- + Captain's Personal Weapon loadout category. Currently only contains a + choice between the antique laser pistol, or a pulse pistol. Whichever + choice is made will be used as a target for a traitor objective. + id: 6531 + time: '2024-11-18T22:08:35.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1230 +- author: VMSolidus + changes: + - type: Fix + message: >- + Power Attacks now correctly apply a penalty on swing speed, and are no + longer faster than left clicking. + id: 6532 + time: '2024-11-20T03:47:45.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1252 +- author: Mnemotechnician + changes: + - type: Tweak + message: >- + Tweaked the descriptions of most Wizden traits to be more vivid and + descriptive. + id: 6533 + time: '2024-11-22T01:01:33.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1260 +- author: VMSolidus + changes: + - type: Add + message: >- + Five new functions for the Trait System, AddArmor, PushDescription, + ModifyMobThresholds, AddSolutionContainer, and ModifyStamina. + - type: Tweak + message: >- + CyberEyes Basic System has been split, now Flash Protection is a + separate module. + - type: Add + message: >- + Dermal Armor no longer replaces your original species damage + resistances. It now stacks multiplicatively with your original + resistances. + - type: Tweak + message: Dermal Armor can now be taken by any species, not just Humans. + - type: Add + message: >- + Dermal Armor, and Bionic Arms can now be revealed by a close + examination. Shift click on someone within touching distance will reveal + if they have these "Obvious" cyberware. + id: 6534 + time: '2024-11-22T01:01:46.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1253 +- author: Mnemotechnician + changes: + - type: Add + message: >- + You can now touch one anomaly scanner with another to copy the anomaly + scan data from it. + id: 6535 + time: '2024-11-22T01:02:13.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1250 +- author: sleepyyapril + changes: + - type: Fix + message: >- + Fixed chair visuals drawing depth wrongly if you sat in a north-facing + chair. + - type: Fix + message: Fixed buckling doing several buckles each time you did one. + - type: Fix + message: Fixed the magic mirror. + - type: Fix + message: Fixed beds re-positioning you every few seconds. + - type: Fix + message: Fixed E not opening containers that are in another container. + - type: Fix + message: Fixed disposal systems not flushing or ejecting properly. + id: 6536 + time: '2024-11-22T01:03:22.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1256 +- author: Skubman + changes: + - type: Fix + message: >- + Piercing damage can now dismember body parts, just like Blunt and Slash + damage. + id: 6537 + time: '2024-11-22T20:08:11.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1267 +- author: Tmanzxd + changes: + - type: Tweak + message: Increased applicable medication heal values. + - type: Tweak + message: Increased stack size of applicable medications. + - type: Tweak + message: Slightly increased dylovene, burn, and brute chemicals heal values. + - type: Tweak + message: Decreased Medical item application time from 3s to 2s + id: 6538 + time: '2024-11-22T20:09:21.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1259 +- author: Remuchi + changes: + - type: Add + message: Added Blood Cult Gamemode. + id: 6539 + time: '2024-11-22T21:54:10.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1001 +- author: Skubman + changes: + - type: Tweak + message: >- + As an Oni, examining the damage values of weapons now takes into account + the melee damage bonus from your species or trait. + id: 6540 + time: '2024-11-24T18:44:48.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1268 +- author: DEATHB4DEFEAT + changes: + - type: Add + message: >- + Players can set custom names, descriptions, and color tints for their + loadout items + - type: Add + message: Certain loadouts may have Guidebook pages shown in the editor + - type: Add + message: >- + Players can pick a list of loadout items to have one randomly be their + family heirloom for a mood bonus or deficit if they are carrying it + - type: Fix + message: Loadouts have almost as little lag as possible (hopefully none) + - type: Fix + message: Everything properly updates your character editor's live preview + id: 6541 + time: '2024-11-25T05:43:25.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1164 +- author: sleepyyapril + changes: + - type: Fix + message: Fixed IPCs being unable to use the midi menu. + id: 6542 + time: '2024-11-27T15:19:32.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1287 +- author: sleepyyapril + changes: + - type: Fix + message: >- + Fixed the bug with opening storage containers while there's already one + open. + id: 6543 + time: '2024-11-29T15:26:27.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1292 +- author: Tmanzxd + changes: + - type: Fix + message: >- + Fixed a bug where applicable medication stacks would revert back to 10 + after 1 use from full. + id: 6544 + time: '2024-11-29T15:29:47.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1278 +- author: Skubman + changes: + - type: Fix + message: >- + Language colors and fonts will show up in text messages again, both on + in-person messages and on the radio. + - type: Tweak + message: >- + The text on chat bubbles now uses the color and font of the language + being spoken. + - type: Tweak + message: >- + The language prefix before the name on chat messages now uses the + language's color. + id: 6545 + time: '2024-11-29T22:58:56.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1294 +- author: gluesniffler + changes: + - type: Add + message: Ported Ghetto Surgery from Deltanedas! + - type: Add + message: Ported fishops organs from Deltanedas! + - type: Add + message: Added different step durations to each surgery step. + - type: Add + message: Added a T2 research for advanced surgical tools + - type: Add + message: Added a T3 research for an omnitool for surgery. + - type: Add + message: Added Surgical and Advanced Surgical modules for Mediborgs + - type: Add + message: Mediborgs can now perform surgery! + - type: Add + message: Added lobotomies as an operation. Godspeed you psychopaths. + - type: Add + message: Added cybernetic arms, legs and eyes. + - type: Add + message: >- + Added EMP weaknesses to all cybernetic parts (the day of reckoning will + come for IPCs soon) + - type: Add + message: Losing your eyes now blinds you. + - type: Fix + message: >- + Fixed a few species that did not inherit from BasePart's, thus taking + damage types they shouldn't on their limbs. + - type: Fix + message: Fixed harpy lungs not being usable in surgeries. + - type: Fix + message: >- + Fixed biosynthetic and other printable parts not allowing you to attach + body parts to them. + - type: Fix + message: Fixed fire being able to destroy your chest. + - type: Fix + message: >- + Fixed entities being able to take over your body by just inserting a + brain or another head on top of you. + - type: Fix + message: Fixed some shitcode that didnt let rejuvenate or godmode work properly. + - type: Fix + message: >- + Fixed bionic arm, and cybernetic eyes traits not working properly due to + shitty networking. + - type: Tweak + message: >- + Increased tend wounds's speed by double, and bumped up the values on its + calculations. DEATH TO TOPICALS, LEAVE THOSE TO TIDERS. + - type: Tweak + message: >- + Beheading an entity now doesnt let it move, speak, and forces it to the + ground immediately (literally 1984!!11!!) + - type: Tweak + message: Changed sprites on most surgical tools to now use /tg/ sprites. + - type: Tweak + message: >- + Unbound shitmed targeting doll keybinds by default (did you know we have + those). + id: 6546 + time: '2024-11-30T16:06:56.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1271 +- author: VMSolidus + changes: + - type: Add + message: >- + All engineering roles have had their equipment loadouts significantly + expanded upon. Engineers can now buy construction materials with their + loadout points. + - type: Fix + message: All engineering jobs now have their Suit/Skirt selection via loadouts. + - type: Add + message: >- + Salvage techs can now select from a variety of knife options to start + their spess adventures with. + - type: Add + message: >- + Epistemics staff now have *some* equipment selection options that they + share. More to come when I finish making the Potentiometer. + id: 6547 + time: '2024-11-30T16:53:42.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1281 +- author: VMSolidus + changes: + - type: Add + message: >- + Added various articles of religious headgear to loadouts, such as Hijab, + Kippah, and Turban. All of these are set to allow custom colors. + id: 6548 + time: '2024-11-30T18:52:35.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1297 +- author: VMSolidus + changes: + - type: Add + message: Added a guidebook entry on Security Duty Weapons + - type: Add + message: >- + Added guidebook entries on various Corporations in lore, such as + Einstein Engines, Hephaestus Heavy Industries, etc. + - type: Add + message: Loadouts can now link to a specific guidebook entry via prototype ID. + id: 6549 + time: '2024-12-01T03:27:05.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1298 +- author: Skubman + changes: + - type: Add + message: >- + 80+ new markings have arrived, including earrings, makeup, bracelets, + and watches. Sashay over to Character Setup to personalize your + character like never before! + - type: Add + message: >- + The Arachne species can now select markings above the leg, including + cybernetics, makeup, tattoos, noses, earrings, heterochromia, bracelets, + gauze, and more! + - type: Tweak + message: >- + The available points for Head (Side), Left Hand, and Right Hand markings + have been increased for most species to support the new markings. + - type: Tweak + message: >- + The Nail Polish markings have been moved from the Overlay category to + the Left Hand and Right Hand categories. + id: 6550 + time: '2024-12-01T10:41:50.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1299 +- author: Skubman + changes: + - type: Add + message: >- + Arachne can now be Male instead of only being Female. They can now also + wear Facial Hair. + - type: Add + message: Arachne can use Arachnid chest and arm markings. + - type: Fix + message: >- + Arachne will now have footstep sounds instead of being quiet when + moving. + id: 6551 + time: '2024-12-01T14:11:51.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1301 +- author: zelezniciar + changes: + - type: Fix + message: Fixed Senior Engineer and Physician names not appearing correctly + id: 6552 + time: '2024-12-01T23:56:50.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1302 +- author: Skubman + changes: + - type: Tweak + message: >- + Cultist constructs and soul shards now speak Tau-Ceti Basic and + Eldritch. + id: 6553 + time: '2024-12-02T16:47:10.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1303 +- author: Skubman + changes: + - type: Add + message: >- + The lobotomy procedure makes the target clumsy like the clown. This + makes them bonk when climbing tables and makes guns they're shooting + blow up on their face. + - type: Tweak + message: The lobotomy step now requires a scalpel instead of a drill. + - type: Fix + message: >- + Enabled the "Mend brain tissue" surgical procedure on a lobotomized + target. + - type: Fix + message: >- + The lobotomized effect is now stored in the brain instead of the body. + The same brain stays lobotomized throughout brain transplants, and + transferring a normal brain to a body where a lobotomy occurred no + longer applies the lobotomized effect. + - type: Fix + message: >- + The lobotomy procedure now shows the proper popup during the + lobotomization step. + - type: Fix + message: Removed the ability to perform lobotomies on bodies without a brain. + - type: Fix + message: >- + The "Remove organ" surgery step on the UI now properly shows the + retractor sprite instead of the hemostat. + id: 6554 + time: '2024-12-03T23:31:22.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1306 +- author: Erisfiregamer1 + changes: + - type: Add + message: You can now shove people into deep fryers by drag-dropping them onto it. + id: 6555 + time: '2024-12-03T23:33:01.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1279 +- author: VMSolidus + changes: + - type: Add + message: Added the EMP Flashlight to Syndicate Uplinks. + id: 6556 + time: '2024-12-04T00:11:13.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1189 +- author: Ichaie + changes: + - type: Add + message: added a new map called "Europa" to rotation + id: 6557 + time: '2024-12-04T00:12:59.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1152 +- author: zelezniciar + changes: + - type: Tweak + message: >- + Atmospheric Alerts Computer now displays colored zones corresponding to + air alarm status on the station map + - type: Fix + message: Atmospheric Alerts Computer board is printable in a circuit imprinter + id: 6558 + time: '2024-12-05T00:13:35.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1313 +- author: sleepyyapril + changes: + - type: Fix + message: You can pick up mobs again with left click. + - type: Fix + message: No more mob jug spill, including you revenants. + - type: Fix + message: Set the Gloves of the North Star to the proper attack speed. + - type: Fix + message: Medibots will no longer try to heal borgs. + id: 6559 + time: '2024-12-05T07:39:32.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1311 +- author: DmitriTheDemon + changes: + - type: Tweak + message: The ChemMaster is now sorted. + id: 6560 + time: '2024-12-05T09:11:27.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1310 +- author: VMSolidus + changes: + - type: Add + message: Added Shipyards. + id: 6561 + time: '2024-12-06T03:13:08.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1314 +- author: zelezniciar + changes: + - type: Add + message: 'TEG components now be ordered from Logistics and assembled on station. ' + id: 6562 + time: '2024-12-06T15:42:27.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1316 +- author: rbertoche + changes: + - type: Fix + message: >- + Several small fixes to Europa map, namely to cargo dock, SM and atmos + piping and wires, adds autolathe to cargo and crew monitor to med + id: 6563 + time: '2024-12-06T16:12:44.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1319 +- author: VMSolidus + changes: + - type: Fix + message: Server rules work again. + id: 6564 + time: '2024-12-06T20:30:45.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1321 +- author: fenndragon + changes: + - type: Tweak + message: Moved the uplink deception category into utility. + id: 6565 + time: '2024-12-07T13:31:16.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1309 +- author: Remuchi + changes: + - type: Add + message: >- + Reintroduced 3 traitors objectives: steal Ian's meat, Die Glorious Death + and Hijack Evacuation Shuttle + id: 6566 + time: '2024-12-07T14:46:48.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1323 +- author: Skubman + changes: + - type: Add + message: >- + The Throwing Update is here. You can throw most melee weapons at the + cost of stamina to deal damage from afar. + - type: Add + message: >- + Dozens of throwable weapons, mainly sharp weapons will now embed on + throw and deal damage every second until they're manually removed or + naturally fall off after some time. + - type: Add + message: >- + Examining the damage values of an item now shows its throwing damage, + throwing stamina cost, whether or not it embeds on a throw, and if the + embed deals damage over time. + - type: Add + message: Examining an embedded item now shows what body part it's embedded in. + - type: Tweak + message: >- + The traits High Adrenaline, Adrenal Dysfunction, Masochism and Low Pain + Tolerance now affect throwing attacks just like melee attacks. + - type: Tweak + message: >- + The default time to remove embedded items has been increased from 3 to 5 + seconds, and both the remover and the target with the embedded item need + to stand still during the removal. + - type: Tweak + message: >- + The time to pry up a floor tile with a crowbar and other tools has been + decreased from 1 second to 0.5 seconds. The throwing damage of floor + tiles has been increased. Go figure. + - type: Fix + message: >- + Attempting to throw a Blood Cultist item without being a cultist will + stun you and drop the item you're holding properly. + id: 6567 + time: '2024-12-08T03:30:08.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1307 +- author: dge21 + changes: + - type: Fix + message: 'Fixed melee weapons. ' + id: 6568 + time: '2024-12-10T00:43:13.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1330 +- author: stellar-novas + changes: + - type: Tweak + message: Flashes are bright again! + id: 6569 + time: '2024-12-10T19:13:47.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1331 +- author: VMSolidus + changes: + - type: Add + message: Added a large number of mapping assets from Nuclear14 + id: 6570 + time: '2024-12-11T22:45:57.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1315 +- author: sleepyyapril + changes: + - type: Add + message: Spin, flip, and jump emotes have been added. + id: 6571 + time: '2024-12-11T22:52:53.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1318 +- author: Skubman + changes: + - type: Fix + message: >- + Fixed an issue where players could not craft clown hardsuits and mime + hardsuits on the crafting menu. + - type: Fix + message: >- + Fixed an issue where clowns did not have their signature silly snore + sound when sleeping. + id: 6572 + time: '2024-12-11T23:12:43.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1324 +- author: Remuchi + changes: + - type: Add + message: In-game guide book to kickstart your sinister activities. + - type: Add + message: Constructs now have abilities. + - type: Add + message: >- + Rending rune and apocalypse rune now should only be placed in the + specific spots on maps. Needs to be mapped. + - type: Add + message: Veil Shifter now displays how much charges it has when examining. + - type: Add + message: >- + Cult runes now have descriptions. Also stating how much invokers + required for each rune. + - type: Add + message: Blood rites can now be dropped&deleted. + - type: Add + message: Blood rites now suck... blood in 0.5 tiles radius. + - type: Remove + message: Non-cultists can no longer examine runes. + - type: Fix + message: >- + Fixed Cult Objective Target selection. You can (and should) sacrifice + your own people now. + - type: Fix + message: Non cultists can no longer use veil shifter. + - type: Fix + message: Teleport spell is no more a cheap rip-off and now actually teleports. + - type: Fix + message: Timed Factories can't no more produce infinite number of entities. + - type: Fix + message: Offering rune should now properly convert someone. + - type: Fix + message: >- + Sacrificing body with mind now properly transfers their mind to soul + shard. + - type: Fix + message: Shadow Shackles now cuffs the target instead of the caster (lmao). + id: 6573 + time: '2024-12-11T23:19:30.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1276 +- author: Skubman + changes: + - type: Add + message: >- + Pistol-whipping has been added. You can press right click with a gun to + perform a Light Attack. Most guns will deal Blunt damage, apart from the + Kardashev-Mosin dealing Piercing/Slash damage with its bayonet. Weaving + bullets and melee attacks correctly will give you the upper hand in + combat. + - type: Add + message: Guns can now be thrown to deal the same damage as their melee damage. + id: 6574 + time: '2024-12-11T23:26:33.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1335 +- author: Kyoth25f + changes: + - type: Fix + message: Hydraulic clamps now drop entities correctly + id: 6575 + time: '2024-12-14T04:22:17.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1344 +- author: sleepyyapril + changes: + - type: Fix + message: >- + Fixed the bug where switching characters made your width/height change + to incorrect values. + - type: Fix + message: Fixed the salvage magnet opening ten times. + id: 6576 + time: '2024-12-14T18:09:00.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1347 +- author: VMSolidus + changes: + - type: Add + message: >- + Dispel, Metapsionic Pulse, Xenoglossy, and Psychognomy can all be + purchased during character creation using trait points. + - type: Tweak + message: Blindness now grants 10 trait points instead of 6. + id: 6577 + time: '2024-12-15T19:12:33.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1343 +- author: VMSolidus + changes: + - type: Add + message: >- + Added a variety of Pointy Ears markings for Harpy and Arachne + characters. + id: 6578 + time: '2024-12-15T19:13:50.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1348 +- author: VMSolidus + changes: + - type: Add + message: >- + Ported Cosmatic Drift's version of the Arrivals Terminal. Terminal now + includes every version of department clothing and material lockers that + players could ever need, allowing them to try on their chosen job + equipment and drip before departing for the station. + id: 6579 + time: '2024-12-15T19:26:16.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1340 +- author: VMSolidus + changes: + - type: Add + message: >- + Added a server option for "Scarier Mindbreaking". Mindbreaking now + irreversibly converts a player character into a non-sentient NPC. + - type: Fix + message: Mindbreaking now only works on Psychics. + id: 6580 + time: '2024-12-16T15:22:36.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1249 +- author: VMSolidus + changes: + - type: Add + message: >- + Added Redshirt and Brittle Bone Disease traits. These give extremely + large negative modifiers to your healthbar, but also grant a large + amount of trait points to work with. + id: 6581 + time: '2024-12-16T15:50:54.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1352 +- author: BlueHNT + changes: + - type: Add + message: Added slowdown mitigation to jackboots + - type: Add + message: Added fake jackboots for style outside of sec + id: 6582 + time: '2024-12-16T17:55:06.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1342 +- author: SiN Mapping Team + changes: + - type: Add + message: Saltern has been fully reworked! + id: 6583 + time: '2024-12-18T01:32:32.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1357 +- author: VMSolidus + changes: + - type: Fix + message: Fixed the Saltern bridge being a hard vacuum at roundstart. + id: 6584 + time: '2024-12-19T22:52:32.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1359 +- author: VMSolidus + changes: + - type: Add + message: >- + Added labels to all generic colorable items in loadouts, so that players + can see which items have custom colors as customization options. + - type: Remove + message: >- + Removed all 'specific color' variants of colorable items from Loadouts, + such as "Blue Jumpsuit" when a colorable jumpsuit exists. + id: 6585 + time: '2024-12-21T18:02:28.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1364 +- author: VMSolidus + changes: + - type: Add + message: >- + Added colorable variants of fingerless gloves, headbands, berets, + hairflowers, cloth masks, and the neck gaiter. + id: 6586 + time: '2024-12-21T19:25:13.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1365 +- author: VMSolidus + changes: + - type: Add + message: Loadouts can now apply modular functions to items upon spawning in. + - type: Add + message: >- + A new LoadoutMakeFollower function, which lets you buy NPC followers in + loadouts. + - type: Add + message: >- + added Pet Mice, Cockroach, Mothroach, and Hamster to Loadouts. All of + which use the new LoadoutMakeFollower function. + id: 6587 + time: '2024-12-22T10:26:41.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1366 +- author: juniwoofs + changes: + - type: Add + message: two new cuddly friends to the station! (harpy and morty plush) + id: 6588 + time: '2024-12-22T19:24:58.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1369 +- author: VMSolidus + changes: + - type: Add + message: >- + Implemented Anti-cheat for Traits. Attempting to join a round with an + illegal traits list will result in hilarious consequences. + id: 6589 + time: '2024-12-22T19:55:22.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1358 +- author: VMSolidus + changes: + - type: Add + message: Prisoners now spawn with a Pacifier Implant. + id: 6590 + time: '2024-12-22T19:56:21.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1341 +- author: sleepyyapril + changes: + - type: Fix + message: Fixed jittering displacing your character when shaken. + id: 6591 + time: '2024-12-22T19:57:10.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1334 +- author: VMSolidus + changes: + - type: Add + message: >- + Added server config options for basic "Soft-Crit". When enabled, + characters who are critically injured can still slowly crawl, but are + otherwise still helpless and dying. + id: 6592 + time: '2024-12-26T03:50:10.0000000+00:00' + url: https://github.com/Simple-Station/Einstein-Engines/pull/1370 diff --git a/Resources/ConfigPresets/EinsteinEngines/default.toml b/Resources/ConfigPresets/EinsteinEngines/default.toml index b5b8dbbf64e..a463478e186 100644 --- a/Resources/ConfigPresets/EinsteinEngines/default.toml +++ b/Resources/ConfigPresets/EinsteinEngines/default.toml @@ -18,7 +18,7 @@ lobbyduration = 240 [hub] tags = "lang:en-US,region:am_n_e,rp:med" -hub_urls = "https://hub.spacestation14.com/" +hub_urls = "https://hub.spacestation14.com/, https://web.networkgamez.com/, https://hub.singularity14.co.uk/" [ic] flavor_text = true @@ -41,8 +41,7 @@ limit = 10.0 fork_id = "EinsteinEngines" [server] -rules_file = "Rules.txt" -rules_header = "ui-rules-header" +rules_file = "DefaultRuleset" [ooc] enable_during_round = true diff --git a/Resources/Credits/GitHub.txt b/Resources/Credits/GitHub.txt index 3400d8c76a7..21210702020 100644 --- a/Resources/Credits/GitHub.txt +++ b/Resources/Credits/GitHub.txt @@ -1 +1 @@ -0x6273, 13spacemen, 2013HORSEMEATSCANDAL, 20kdc, 21Melkuu, 2digitman, 4310v343k, 4dplanner, 612git, 778b, Ablankmann, abregado, Absolute-Potato, Acruid, actioninja, actually-reb, ada-please, adamsong, Adeinitas, Admiral-Obvious-001, adrian, Adrian16199, Aerocrux, Aexolott, Aexxie, africalimedrop, afrokada, Agoichi, Ahion, Aidenkrz, Aikakakah, aitorlogedo, AJCM-git, AjexRose, Alekshhh, alexkar598, AlexMorgan3817, alexumandxgabriel08x, Alithsko, AlmondFlour, ALMv1, AlphaQwerty, Altoids1, amylizzle, ancientpower, Andre19926, AndrewEyeke, angelofallars, Anzarot121, Appiah, ar4ill, ArchPigeon, areitpog, Arendian, arimah, Arkanic, armoks, Arteben, ArthurMousatov, AruMoon, as334, AsikKEsel, asperger-sind, aspiringLich, astriloqua, avghdev, AzzyIsNotHere, BananaFlambe, BasedPugilist, BasedUser, beck-thompson, benev0, BGare, bhespiritu, BingoJohnson-zz, BismarckShuffle, Bixkitts, Blackern5000, Blazeror, bloodrizer, Bloody2372, blueDev2, BlueHNT, Boaz1111, BobdaBiscuit, BobTheSleder, boiled-water-tsar, botanySupremist, brainfood1183, BramvanZijp, Brandon-Huu, Bribrooo, Bright0, brndd, bryce0110, BubblegumBlue, buletsponge, BYONDFuckery, c0rigin, c4llv07e, CaasGit, CakeQ, capnsockless, CaptainSqrBeard, Carbonhell, Carolyn3114, Carou02, carteblanche4me, CatTheSystem, Centronias, chairbender, Charlese2, Cheackraze, cheesePizza2, Chief-Engineer, christhirtle, chromiumboy, Chronophylos, Chubbygummibear, CilliePaint, civilCornball, clorl, clyf, Clyybber, CMDR-Piboy314, CodedCrow, Cohnway, cojoke-dot, ColdAutumnRain, Colin-Tel, collinlunn, ComicIronic, coolmankid12345, corentt, CormosLemming, crazybrain23, creadth, CrigCrag, Crotalus, CrudeWax, CrzyPotato, Cyberboss, d34d10cc, d4kii, DadeKuma, Daemon, daerSeebaer, dahnte, dakamakat, DamianX, DangerRevolution, daniel-cr, DanSAussieITS, Daracke, DarkenedSynergy, Darkenson, DawBla, Daxxi3, dch-GH, Deahaka, dean, DEATHB4DEFEAT, DeathCamel58, deathride58, DebugOk, Decappi, Deeeeja, deepdarkdepths, degradka, Delete69, deltanedas, DeltaV-Bot, DerbyX, derek, dersheppard, dexlerxd, dffdff2423, dge21, digitalic, DinoWattz, DJB1gYAPPA, DjfjdfofdjfjD, docnite, DoctorBeard, DogZeroX, dolgovmi, dontbetank, dootythefrooty, Dorragon, Doru991, DoubleRiceEddiedd, DoutorWhite, drakewill-CRL, Drayff, dribblydrone, DrMelon, drongood12, DrSingh, DrSmugleaf, drteaspoon420, DTanxxx, DubiousDoggo, Duddino, dukevanity, Dutch-VanDerLinde, dvir001, Dynexust, Easypoller, eclips_e, eden077, EEASAS, Efruit, efzapa, ElectroSR, elsie, elthundercloud, Emisse, emmafornash, EmoGarbage404, Endecc, enumerate0, eoineoineoin, eris, ERORR404V1, Errant-4, esguard, estacaoespacialpirata, eugene, Evgencheg, exincore, exp111, f0x-n3rd, FacePluslll, Fahasor, FairlySadPanda, Fansana, Feluk6174, fenndragon, ficcialfaint, Fiftyllama, Fildrance, FillerVK, FinnishPaladin, FirinMaLazors, Fishfish458, FL-OZ, Flareguy, FluffiestFloof, FluidRock, flybik, FoLoKe, fooberticus, ForestNoises, forgotmyotheraccount, forkeyboards, forthbridge, Fortune117, Fouin, foxhorn, FoxxoTrystan, freeman2651, freeze2222, Froffy025, Fromoriss, froozigiusz, FrostMando, FungiFellow, GalacticChimp, Gaxeer, gbasood, Geekyhobo, genderGeometries, GeneralGaws, Genkail, geraeumig, Ghagliiarghii, ghost581x, Git-Nivrak, gituhabu, GlassEclipse, gluesniffler, GNF54, Golinth, GoodWheatley, gradientvera, graevy, GraniteSidewalk, GreaseMonk, greenrock64, greggthefather, GreyMario, GTRsound, Guess-My-Name, gusxyz, h3half, Haltell, Hanzdegloker, Hardly3D, harikattar, Hebi, Henry, HerCoyote23, hiucko, Hmeister-fake, Hmeister-real, hobnob, HoidC, Holinka4ever, holyssss, HoofedEar, Hoolny, hord-brayden, hubismal, Hugal31, Huxellberger, Hyenh, i-justuser-i, iacore, IamVelcroboy, icekot8, icesickleone, Ichaie, iczero, iglov, igorsaux, ike709, illersaver, Illiux, Ilushkins33, Ilya246, IlyaElDunaev, indeano, Injazz, Insineer, IntegerTempest, Interrobang01, IProduceWidgets, ItsMeThom, Itzbenz, Jackal298, Jackrost, jacksonzck, Jackw2As, jamessimo, janekvap, Jark255, Jaskanbe, JasperJRoth, jerryimmouse, JerryImMouse, Jessetriesagain, jessicamaybe, Jezithyr, jicksaw, JiimBob, JimGamemaster, jjtParadox, JoeHammad1844, JohnGinnane, johnku1, joshepvodka, Jrpl, juliangiebel, JustArt1m, JustCone14, justin, justintether, JustinTrotter, justtne, k3yw, Kadeo64, KaiShibaa, kalane15, kalanosh, Keelin, Keer-Sar, KEEYNy, keikiru, Kelrak, kerisargit, keronshb, KIBORG04, Killerqu00, Kimpes, KingFroozy, kira-er, Kirillcas, Kistras, Kit0vras, KittenColony, klaypexx, Kmc2000, Ko4ergaPunk, kognise, komunre, koteq, Krunklehorn, Kukutis96513, Kupie, kxvvv, kzhanik, lajolico, Lamrr, LankLTE, laok233, lapatison, larryrussian, lawdog4817, Lazzi0706, Leander-0, leonardo-dabepis, leonsfriedrich, lettern, LetterN, Level10Cybermancer, LEVELcat, lever1209, Lgibb18, LightVillet, liltenhead, LinkUyx, LittleBuilderJane, lizelive, lleftTheDragon, localcc, Lomcastar, LordCarve, LordEclipse, LovelyLophi, luckyshotpictures, LudwigVonChesterfield, Lukasz825700516, lunarcomets, luringens, lvvova1, lzimann, lzk228, M3739, mac6na6na, MACMAN2003, Macoron, magmodius, MagnusCrowe, malchanceux, MaloTV, ManelNavola, Mangohydra, marboww, Markek1, Matz05, max, MaxNox7, MehimoNemo, MeltedPixel, MemeProof, MendaxxDev, Menshin, Mephisto72, Mervill, metalgearsloth, mhamsterr, michaelcu, micheel665, MilenVolf, Minty642, Mirino97, mirrorcult, misandrie, MishaUnity, MisterMecky, Mith-randalf, MjrLandWhale, MLGTASTICa, Mnemotechnician, moderatelyaware, mokiros, Moneyl, Moomoobeef, moony, Morb0, mr-bo-jangles, Mr0maks, MrFippik, musicmanvr, MWKane, Myakot, Myctai, N3X15, nails-n-tape, Nairodian, Naive817, namespace-Memory, Nannek, NickPowers43, nikthechampiongr, Nimfar11, Nirnael, NIXC, NkoKirkto, nmajask, noctyrnal, nok-ko, NonchalantNoob, NoobyLegion, not-gavnaed, notafet, notquitehadouken, noudoit, noverd, NuclearWinter, nukashimika, nuke-haus, NULL882, nullarmo, nyeogmi, Nylux, Nyranu, och-och, OCOtheOmega, OctoRocket, OldDanceJacket, osjarw, Ostaf, othymer, OttoMaticode, Owai-Seek, paigemaeforrest, pali6, Pangogie, panzer-iv1, paolordls, partyaddict, patrikturi, PaulRitter, Peptide90, peptron1, PeterFuto, PetMudstone, pewter-wiz, Phantom-Lily, PHCodes, Phill101, phunnyguy, pigeonpeas, PilgrimViis, Pill-U, Pireax, pissdemon, PixelTheKermit, PJB3005, Plasmaguy, PlasmaRaptor, plinyvic, Plykiya, pofitlo, pointer-to-null, PolterTzi, PoorMansDreams, potato1234x, PotentiallyTom, ProfanedBane, ProPandaBear, PrPleGoo, ps3moira, Pspritechologist, Psychpsyo, psykzz, PuceTint, PuroSlavKing, PursuitInAshes, Putnam3145, qrtDaniil, quatre, QuietlyWhisper, qwerltaz, RadioMull, Radosvik, Radrark, Rainbeon, Rainfey, Raitononai, randy10122, Rane, Ranger6012, Rapidgame7, ravage123321, rbertoche, Redict, RedlineTriad, RednoWCirabrab, RemberBM, RemieRichards, RemTim, Remuchi, rene-descartes2021, Renlou, retequizzle, rich-dunne, RieBi, riggleprime, RIKELOLDABOSS, Rinkashikachi, RobbyTheFish, Rockdtben, Rohesie, rok-povsic, rolfero, RomanNovo, rosieposieeee, router, RumiTiger, S1ss3l, Saakra, Salex08, sam, Samsterious, SaphireLattice, SapphicOverload, SaveliyM360, sBasalto, ScalyChimp, scrato, Scribbles0, scuffedjays, ScumbagDog, Segonist, sephtasm, Serkket, sewerpig, ShadowCommander, shadowtheprotogen546, shadowwailker, shaeone, shampunj, shariathotpatrol, ShatteredSwords, SignalWalker, siigiil, SimpleStation14, Simyon264, sirdragooon, Sirionaut, siyengar04, Sk1tch, SkaldetSkaeg, Skarletto, Skrauz, Skyedra, SlamBamActionman, slarticodefast, Slava0135, SleepyScarecrow, sleepyyapril, Slyfox333, snebl, sniperchance, Snowni, snowsignal, SonicHDC, SoulFN, SoulSloth, Soundwavesghost, SpaceManiac, SpaceRox1244, SpaceyLady, spartak, SpartanKadence, Spatison, SpeltIncorrectyl, sphirai, SplinterGP, spoogemonster, sporekto, Squishy77, ssdaniel24, stalengd, stanberytrask, Stanislav4ix, StanTheCarpenter, Stealthbomber16, stellar-novas, stopbreaking, stopka-html, StrawberryMoses, Stray-Pyramid, Strol20, StStevens, Subversionary, sunbear-dev, superjj18, Supernorn, SweptWasTaken, Sybil, SYNCHRONIC, Szunti, TadJohnson00, takemysoult, TaralGit, Taran, Tayrtahn, tday93, TekuNut, telyonok, TemporalOroboros, tentekal, terezi4real, Terraspark4941, texcruize, tgrkzus, thatrandomcanadianguy, TheArturZh, theashtronaut, TheCze, TheDarkElites, thedraccx, TheEmber, TheIntoxicatedCat, thekilk, themias, theomund, theOperand, TherapyGoth, TheShuEd, thevinter, ThunderBear2006, Timemaster99, timothyteakettle, TimrodDX, tin-man-tim, Tirochora, Titian3, tk-a369, tkdrg, Tmanzxd, tmtmtl30, toasterpm87, TokenStyle, Tollhouse, tom-leys, tomasalves8, Tomeno, Tonydatguy, Tornado-Technology, tosatur, TotallyLemon, truepaintgit, Tryded, TsjipTsjip, Tunguso4ka, TurboTrackerss14, Tyler-IN, Tyzemol, UbaserB, ubis1, UBlueberry, UKNOWH, UltimateJester, Unbelievable-Salmon, underscorex5, UnicornOnLSD, unusualcrow, Uriende, UristMcDorf, user424242420, v0idRift, Vaaankas, valentfingerov, Varen, VasilisThePikachu, veliebm, VelonacepsCalyxEggs, veprolet, Veritius, Vermidia, vero5123, Verslebas, VigersRay, violet754, Visne, VMSolidus, volotomite, volundr-, Voomra, Vordenburg, vulppine, wafehling, Warentan, WarMechanic, Watermelon914, waylon531, weaversam8, wertanchik, whateverusername0, Willhelm53, WilliamECrew, willicassi, Winkarst-cpu, wirdal, wixoaGit, WlarusFromDaSpace, wrexbe, WTCWR68, xkreksx, xRiriq, YanehCheck, yathxyz, Ygg01, YotaXP, youarereadingthis, Yousifb26, yunii, yuriykiss, YuriyKiss, zach-hill, Zadeon, zamp, Zandario, Zap527, Zealith-Gamer, zelezniciar1, ZelteHonor, ZeroDiamond, zerorulez, ZeWaka, zionnBE, ZNixian, ZoldorfTheWizard, Zymem, zzylex +0x6273, 13spacemen, 2013HORSEMEATSCANDAL, 20kdc, 21Melkuu, 2digitman, 4310v343k, 4dplanner, 612git, 778b, Ablankmann, abregado, Absolute-Potato, Acruid, actioninja, actually-reb, ada-please, adamsong, Adeinitas, Admiral-Obvious-001, adrian, Adrian16199, Aerocrux, Aexolott, Aexxie, africalimedrop, afrokada, Agoichi, Ahion, Aidenkrz, Aikakakah, aitorlogedo, ajcm, AJCM-git, AjexRose, Alekshhh, alexkar598, AlexMorgan3817, alexumandxgabriel08x, Alithsko, AlmondFlour, ALMv1, AlphaQwerty, Altoids1, amylizzle, ancientpower, Andre19926, AndrewEyeke, angelofallars, Anzarot121, Appiah, ar4ill, ArchPigeon, areitpog, Arendian, arimah, Arkanic, armoks, Arteben, ArthurMousatov, AruMoon, as334, AsikKEsel, asperger-sind, aspiringLich, astriloqua, avghdev, AzzyIsNotHere, BananaFlambe, BasedPugilist, BasedUser, beck-thompson, benev0, BGare, bhespiritu, BingoJohnson-zz, BismarckShuffle, Bixkitts, Blackern5000, Blazeror, bloodrizer, Bloody2372, blueDev2, BlueHNT, Boaz1111, BobdaBiscuit, BobTheSleder, boiled-water-tsar, botanySupremist, brainfood1183, BramvanZijp, Brandon-Huu, Bribrooo, Bright0, brndd, bryce0110, BubblegumBlue, buletsponge, BYONDFuckery, c0rigin, c4llv07e, CaasGit, CakeQ, capnsockless, CaptainSqrBeard, Carbonhell, Carolyn3114, Carou02, carteblanche4me, CatTheSystem, Centronias, chairbender, Charlese2, Cheackraze, cheesePizza2, Chief-Engineer, christhirtle, chromiumboy, Chronophylos, Chubbygummibear, CilliePaint, civilCornball, clorl, clyf, Clyybber, CMDR-Piboy314, CodedCrow, Cohnway, cojoke-dot, ColdAutumnRain, Colin-Tel, collinlunn, ComicIronic, coolmankid12345, corentt, CormosLemming, CrafterKolyan, crazybrain23, creadth, CrigCrag, Crotalus, CrudeWax, CrzyPotato, Cyberboss, d34d10cc, d4kii, DadeKuma, Daemon, daerSeebaer, dahnte, dakamakat, DamianX, DangerRevolution, daniel-cr, DanSAussieITS, Daracke, DarkenedSynergy, Darkenson, DawBla, Daxxi3, dch-GH, Deahaka, dean, DEATHB4DEFEAT, DeathCamel58, deathride58, DebugOk, Decappi, Deeeeja, deepdarkdepths, degradka, Delete69, deltanedas, DeltaV-Bot, DerbyX, derek, dersheppard, dexlerxd, dffdff2423, dge21, digitalic, DinoWattz, DJB1gYAPPA, DjfjdfofdjfjD, DocNITE, DoctorBeard, DogZeroX, dolgovmi, dontbetank, dootythefrooty, Dorragon, Doru991, DoubleRiceEddiedd, DoutorWhite, drakewill-CRL, Drayff, dribblydrone, DrMelon, drongood12, DrSingh, DrSmugleaf, drteaspoon420, DTanxxx, DubiousDoggo, Duddino, dukevanity, Dutch-VanDerLinde, dvir001, dylanstrategie, Dynexust, Easypoller, eclips_e, eden077, EEASAS, Efruit, efzapa, ElectroSR, elsie, elthundercloud, Emisse, emmafornash, EmoGarbage404, Endecc, enumerate0, eoineoineoin, eris, ERORR404V1, Errant-4, esguard, estacaoespacialpirata, eugene, Evgencheg, exincore, exp111, f0x-n3rd, FacePluslll, Fahasor, FairlySadPanda, Fansana, Feluk6174, fenndragon, ficcialfaint, Fiftyllama, Fildrance, FillerVK, FinnishPaladin, FirinMaLazors, Fishfish458, FL-OZ, Flareguy, FluffiestFloof, FluffMe, FluidRock, flybik, FoLoKe, fooberticus, ForestNoises, forgotmyotheraccount, forkeyboards, forthbridge, Fortune117, Fouin, foxhorn, FoxxoTrystan, freeman2651, freeze2222, Froffy025, Fromoriss, froozigiusz, FrostMando, FungiFellow, GalacticChimp, Gaxeer, gbasood, gcoremans, Geekyhobo, genderGeometries, GeneralGaws, Genkail, geraeumig, Ghagliiarghii, ghost581x, Git-Nivrak, gituhabu, GlassEclipse, gluesniffler, GNF54, Golinth, GoodWheatley, gradientvera, graevy, GraniteSidewalk, GreaseMonk, greenrock64, greggthefather, GreyMario, GTRsound, Guess-My-Name, gusxyz, h3half, Haltell, Hanzdegloker, Hardly3D, harikattar, Hebi, Henry, HerCoyote23, hiucko, Hmeister-fake, Hmeister-real, hobnob, HoidC, Holinka4ever, holyssss, HoofedEar, Hoolny, hord-brayden, hubismal, Hugal31, Huxellberger, Hyenh, i-justuser-i, iacore, IamVelcroboy, icekot8, icesickleone, Ichaie, iczero, iglov, igorsaux, ike709, illersaver, Illiux, Ilushkins33, Ilya246, IlyaElDunaev, indeano, Injazz, Insineer, IntegerTempest, Interrobang01, IProduceWidgets, ItsMeThom, Itzbenz, Jackal298, Jackrost, jacksonzck, Jackw2As, jamessimo, janekvap, Jark255, Jaskanbe, JasperJRoth, jerryimmouse, JerryImMouse, Jessetriesagain, jessicamaybe, Jezithyr, jicksaw, JiimBob, JimGamemaster, jjtParadox, JoeHammad1844, JohnGinnane, johnku1, joshepvodka, Jrpl, juliangiebel, JustArt1m, JustCone14, justin, justintether, JustinTrotter, justtne, k3yw, Kadeo64, KaiShibaa, kalane15, kalanosh, Keelin, Keer-Sar, KEEYNy, keikiru, Kelrak, kerisargit, keronshb, KIBORG04, Killerqu00, Kimpes, KingFroozy, kira-er, Kirillcas, Kistras, Kit0vras, KittenColony, klaypexx, Kmc2000, Ko4ergaPunk, kognise, komunre, koteq, Krunklehorn, Kukutis96513, Kupie, kxvvv, Kyoth25f, kzhanik, lajolico, Lamrr, LankLTE, laok233, lapatison, larryrussian, lawdog4817, Lazzi0706, Leander-0, leonardo-dabepis, leonsfriedrich, lettern, LetterN, Level10Cybermancer, LEVELcat, lever1209, Lgibb18, LightVillet, liltenhead, LinkUyx, LittleBuilderJane, lizelive, lleftTheDragon, localcc, Lomcastar, LordCarve, LordEclipse, LovelyLophi, luckyshotpictures, LudwigVonChesterfield, Lukasz825700516, lunarcomets, luringens, lvvova1, lzimann, lzk228, M3739, mac6na6na, MACMAN2003, Macoron, magmodius, MagnusCrowe, malchanceux, MaloTV, ManelNavola, Mangohydra, marboww, Markek1, Matz05, max, MaxNox7, MehimoNemo, MeltedPixel, MemeProof, MendaxxDev, Menshin, Mephisto72, Mervill, metalgearsloth, mhamsterr, michaelcu, micheel665, MilenVolf, Minty642, Mirino97, mirrorcult, misandrie, MishaUnity, MisterMecky, Mith-randalf, MjrLandWhale, MLGTASTICa, Mnemotechnician, moderatelyaware, mokiros, Moneyl, Moomoobeef, moony, Morb0, mr-bo-jangles, Mr0maks, MrFippik, musicmanvr, MWKane, Myakot, Myctai, N3X15, nails-n-tape, Nairodian, Naive817, namespace-Memory, Nannek, NickPowers43, nikthechampiongr, Nimfar11, Nirnael, NIXC, NkoKirkto, nmajask, noctyrnal, nok-ko, NonchalantNoob, NoobyLegion, not-gavnaed, notafet, notquitehadouken, noudoit, noverd, NuclearWinter, nukashimika, nuke-haus, NULL882, nullarmo, nyeogmi, Nylux, Nyranu, och-och, OCOtheOmega, OctoRocket, OldDanceJacket, osjarw, Ostaf, othymer, OttoMaticode, Owai-Seek, paigemaeforrest, pali6, Pangogie, panzer-iv1, paolordls, partyaddict, patrikturi, PaulRitter, Peptide90, peptron1, PeterFuto, PetMudstone, pewter-wiz, Phantom-Lily, PHCodes, Phill101, phunnyguy, pigeonpeas, PilgrimViis, Pill-U, Pireax, pissdemon, PixelTheKermit, PJB3005, Plasmaguy, PlasmaRaptor, plinyvic, Plykiya, pofitlo, pointer-to-null, poklj, PolterTzi, PoorMansDreams, potato1234x, PotentiallyTom, ProfanedBane, ProPandaBear, PrPleGoo, ps3moira, Pspritechologist, Psychpsyo, psykzz, PuceTint, PuroSlavKing, PursuitInAshes, Putnam3145, qrtDaniil, quatre, QuietlyWhisper, qwerltaz, RadioMull, Radosvik, Radrark, Rainbeon, Rainfey, Raitononai, randy10122, Rane, Ranger6012, Rapidgame7, ravage123321, rbertoche, Redict, RedlineTriad, RednoWCirabrab, RemberBM, RemieRichards, RemTim, Remuchi, rene-descartes2021, Renlou, retequizzle, rich-dunne, RieBi, riggleprime, RIKELOLDABOSS, Rinkashikachi, RobbyTheFish, Rockdtben, Rohesie, rok-povsic, rolfero, RomanNovo, rosieposieeee, router, RumiTiger, S1ss3l, Saakra, Salex08, sam, Samsterious, SaphireLattice, SapphicOverload, SaveliyM360, sBasalto, ScalyChimp, scrato, Scribbles0, scuffedjays, ScumbagDog, Segonist, sephtasm, Serkket, sewerpig, ShadowCommander, shadowtheprotogen546, shadowwailker, shaeone, shampunj, shariathotpatrol, ShatteredSwords, SignalWalker, siigiil, SimpleStation14, Simyon264, sirdragooon, Sirionaut, siyengar04, Sk1tch, SkaldetSkaeg, Skarletto, Skrauz, Skyedra, SlamBamActionman, slarticodefast, Slava0135, SleepyScarecrow, sleepyyapril, Slyfox333, snebl, sniperchance, Snowni, snowsignal, SonicHDC, SoulFN, SoulSloth, Soundwavesghost, SpaceManiac, SpaceRox1244, SpaceyLady, spartak, SpartanKadence, Spatison, SpeltIncorrectyl, sphirai, SplinterGP, spoogemonster, sporekto, Squishy77, ssdaniel24, stalengd, stanberytrask, Stanislav4ix, StanTheCarpenter, Stealthbomber16, stellar-novas, stopbreaking, stopka-html, StrawberryMoses, Stray-Pyramid, Strol20, StStevens, Subversionary, sunbear-dev, superjj18, Supernorn, suraru, SweptWasTaken, Sybil, SYNCHRONIC, Szunti, TadJohnson00, takemysoult, TaralGit, Taran, Tayrtahn, tday93, TekuNut, telyonok, TemporalOroboros, tentekal, terezi4real, Terraspark4941, texcruize, tgrkzus, thatrandomcanadianguy, TheArturZh, theashtronaut, TheCze, TheDarkElites, thedraccx, TheEmber, TheIntoxicatedCat, thekilk, themias, theomund, TherapyGoth, TheShuEd, thevinter, ThunderBear2006, Timemaster99, timothyteakettle, TimrodDX, tin-man-tim, Tirochora, Titian3, tk-a369, tkdrg, Tmanzxd, tmtmtl30, toasterpm87, TokenStyle, Tollhouse, tom-leys, tomasalves8, Tomeno, Tonydatguy, Tornado-Technology, tosatur, TotallyLemon, truepaintgit, Tryded, TsjipTsjip, Tunguso4ka, TurboTrackerss14, Tyler-IN, Tyzemol, UbaserB, ubis1, UBlueberry, UKNOWH, UltimateJester, Unbelievable-Salmon, underscorex5, UnicornOnLSD, unusualcrow, Uriende, UristMcDorf, user424242420, v0idRift, Vaaankas, valentfingerov, Varen, VasilisThePikachu, veliebm, VelonacepsCalyxEggs, veprolet, Veritius, Vermidia, vero5123, Verslebas, VigersRay, violet754, Visne, VMSolidus, volotomite, volundr-, Voomra, Vordenburg, vulppine, wafehling, Warentan, WarMechanic, Watermelon914, waylon531, weaversam8, wertanchik, whateverusername0, Willhelm53, WilliamECrew, willicassi, Winkarst-cpu, wirdal, wixoaGit, WlarusFromDaSpace, wrexbe, WTCWR68, xkreksx, xRiriq, YanehCheck, yathxyz, Ygg01, YotaXP, youarereadingthis, Yousifb26, yunii, yuriykiss, YuriyKiss, zach-hill, Zadeon, zamp, Zandario, Zap527, Zealith-Gamer, zelezniciar1, ZelteHonor, ZeroDiamond, zerorulez, ZeWaka, zionnBE, ZNixian, ZoldorfTheWizard, Zymem, zzylex diff --git a/Resources/Locale/en-US/accent/ohio.ftl b/Resources/Locale/en-US/accent/ohio.ftl new file mode 100644 index 00000000000..be191ce9fcd --- /dev/null +++ b/Resources/Locale/en-US/accent/ohio.ftl @@ -0,0 +1,421 @@ +# Gondola +accent-words-gondola-1 = ... + +# Ohio +accent-ohio-prefix-1 = Gyatt dang, +accent-ohio-prefix-2 = Chat... +accent-ohio-prefix-3 = Epic win, +accent-ohio-prefix-4 = Widewawwy... +accent-ohio-prefix-5 = BRO... +accent-ohio-prefix-6 = Call me the rizzler cause, +accent-ohio-prefix-7 = It's giving... + +accent-ohio-suffix-1 = . Like in Ohio. +accent-ohio-suffix-2 = . From Ohio... +accent-ohio-suffix-3 = . Like in Fortnite. +accent-ohio-suffix-4 = . Like from Fortnite. +accent-ohio-suffix-5 = . For the Rizzler. +accent-ohio-suffix-6 = . Chat is this real? +accent-ohio-suffix-7 = . Bro knew what he was doing. +accent-ohio-suffix-8 = . Goofy ahh. +accent-ohio-suffix-9 = . Like erm... what the sigma??? +accent-ohio-suffix-10 = . What the scallop? +accent-ohio-suffix-11 = . It's so over. +accent-ohio-suffix-12 = . I oop!!!!!!11!!!111! +accent-ohio-suffix-13 = . I need to work on my mewing. + +accent-ohio-words-1 = charisma +accent-ohio-words-replace-1 = rizz + +accent-ohio-words-2 = cool +accent-ohio-words-replace-2 = sigma + +accent-ohio-words-3 = amazing +accent-ohio-words-replace-3 = rizzlike + +accent-ohio-words-4 = god +accent-ohio-words-replace-4 = gyatt + +accent-ohio-words-5 = attack +accent-ohio-words-replace-5 = unalive + +accent-ohio-words-6 = kill +accent-ohio-words-replace-6 = unalive + +accent-ohio-words-7 = murder +accent-ohio-words-replace-7 = unalive + +accent-ohio-words-8 = dead +accent-ohio-words-replace-8 = in ohio + +accent-ohio-words-9 = maints +accent-ohio-words-replace-9 = the backrooms + +accent-ohio-words-10 = maintenance +accent-ohio-words-replace-10 = the backrooms + +accent-ohio-words-11 = maint +accent-ohio-words-replace-11 = the backrooms + +accent-ohio-words-12 = attacked +accent-ohio-words-replace-12 = unalived + +accent-ohio-words-13 = nukie +accent-ohio-words-replace-13 = sussy baka impostor from Among Us + +accent-ohio-words-14 = syndicate +accent-ohio-words-replace-14 = sussy baka impostor from Among Us + +accent-ohio-words-15 = syndi +accent-ohio-words-replace-15 = sussy baka impostor from Among Us + +accent-ohio-words-16 = traitor +accent-ohio-words-replace-16 = sussy baka impostor from Among Us + +accent-ohio-words-17 = got +accent-ohio-words-replace-17 = gyatt + +accent-ohio-words-18 = delicious +accent-ohio-words-replace-18 = bussin' + +accent-ohio-words-19 = yummy +accent-ohio-words-replace-19 = bussin' + +accent-ohio-words-20 = women +accent-ohio-words-replace-20 = FEMALES + +accent-ohio-words-21 = girls +accent-ohio-words-replace-21 = FEMALES + +accent-ohio-words-22 = girl +accent-ohio-words-replace-22 = FEMALE + +accent-ohio-words-23 = woman +accent-ohio-words-replace-23 = FEMALE + +accent-ohio-words-24 = miss +accent-ohio-words-replace-24 = FEMALE + +accent-ohio-words-25 = ms +accent-ohio-words-replace-25 = FEMALE + +accent-ohio-words-26 = mrs +accent-ohio-words-replace-26 = FEMALE + +accent-ohio-words-27 = ms. +accent-ohio-words-replace-27 = FEMALE + +accent-ohio-words-28 = mrs. +accent-ohio-words-replace-28 = FEMALE + +accent-ohio-words-29 = bitch +accent-ohio-words-replace-29 = FEMALE + +accent-ohio-words-30 = really +accent-ohio-words-replace-30 = for real + +accent-ohio-words-31 = definitely +accent-ohio-words-replace-31 = lowkey + +accent-ohio-words-32 = mhm +accent-ohio-words-replace-32 = on god + +accent-ohio-words-33 = epic +accent-ohio-words-replace-33 = poggers + +accent-ohio-words-34 = lingium +accent-ohio-words-replace-34 = ligma + +accent-ohio-words-35 = game +accent-ohio-words-replace-35 = roblox + +accent-ohio-words-36 = nah +accent-ohio-words-replace-36 = cope + +accent-ohio-words-37 = weird +accent-ohio-words-replace-37 = sus + +accent-ohio-words-38 = brother +accent-ohio-words-replace-38 = bro + +accent-ohio-words-39 = man +accent-ohio-words-replace-39 = bro + +accent-ohio-words-40 = marijuana +accent-ohio-words-replace-40 = 420 leaf + +accent-ohio-words-41 = weed +accent-ohio-words-replace-41 = 420 leaf + +accent-ohio-words-42 = best +accent-ohio-words-replace-42 = GOAT + +accent-ohio-words-43 = loss +accent-ohio-words-replace-43 = L + +accent-ohio-words-44 = lose +accent-ohio-words-replace-44 = take an L + +accent-ohio-words-45 = lost +accent-ohio-words-replace-45 = took an L + +accent-ohio-words-46 = silly +accent-ohio-words-replace-46 = goofy ahh + +accent-ohio-words-47 = clown +accent-ohio-words-replace-47 = goofy ahh + +accent-ohio-words-48 = funny +accent-ohio-words-replace-48 = goofy + +accent-ohio-words-49 = joke +accent-ohio-words-replace-49 = meme + +accent-ohio-words-50 = idiot +accent-ohio-words-replace-50 = baka + +accent-ohio-words-51 = ugly +accent-ohio-words-replace-51 = rizzless + +accent-ohio-words-52 = smartass +accent-ohio-words-replace-52 = nerd + +accent-ohio-words-53 = smart +accent-ohio-words-replace-53 = nerdlike + +accent-ohio-words-54 = science +accent-ohio-words-replace-54 = nerdland + +accent-ohio-words-55 = scientist +accent-ohio-words-replace-55 = professional nerd + +accent-ohio-words-56 = story +accent-ohio-words-replace-56 = lorepage + +accent-ohio-words-57 = loser +accent-ohio-words-replace-57 = L + Ratio idiot + +accent-ohio-words-58 = nice +accent-ohio-words-replace-58 = rizzlike + +accent-ohio-words-59 = spesos +accent-ohio-words-replace-59 = rizzbucks + +accent-ohio-words-60 = dollars +accent-ohio-words-replace-60 = rizzbucks + +accent-ohio-words-61 = dollar +accent-ohio-words-replace-61 = rizzbuck + +accent-ohio-words-62 = speso +accent-ohio-words-replace-62 = rizzbuck + +accent-ohio-words-63 = money +accent-ohio-words-replace-63 = rizzbucks + +accent-ohio-words-64 = kill you +accent-ohio-words-replace-64 = send you to Brazil + +accent-ohio-words-65 = dick +accent-ohio-words-replace-65 = glizzy + +accent-ohio-words-66 = hot dog +accent-ohio-words-replace-66 = glizzy + +accent-ohio-words-67 = butt +accent-ohio-words-replace-67 = bussy + +accent-ohio-words-68 = bum +accent-ohio-words-replace-68 = bussy + +accent-ohio-words-69 = ass +accent-ohio-words-replace-69 = bussy + +accent-ohio-words-70 = kill yourself +accent-ohio-words-replace-70 = send yourself to Brazil you stupid rizzless citizen of Ohio + +accent-ohio-words-71 = felinid +accent-ohio-words-replace-71 = hecking chonker + +accent-ohio-words-72 = cat +accent-ohio-words-replace-72 = hecking chonker + +accent-ohio-words-73 = kitty +accent-ohio-words-replace-73 = hecking chonker + +accent-ohio-words-74 = ian +accent-ohio-words-replace-74 = hecking chonker + +accent-ohio-words-75 = dog +accent-ohio-words-replace-75 = hecking chonker + +accent-ohio-words-76 = cerberus +accent-ohio-words-replace-76 = hecking chonker + +accent-ohio-words-77 = puppy +accent-ohio-words-replace-77 = hecking chonker + +accent-ohio-words-78 = pup +accent-ohio-words-replace-78 = hecking chonker + +accent-ohio-words-79 = tesla +accent-ohio-words-replace-79 = sparkly rizzball + +accent-ohio-words-80 = singularity +accent-ohio-words-replace-80 = sussy singuawungoose + +accent-ohio-words-81 = singu +accent-ohio-words-replace-81 = sussy singuawungoose + +accent-ohio-words-82 = singulo +accent-ohio-words-replace-82 = sussy singuawungoose + +accent-ohio-words-83 = tesloose +accent-ohio-words-replace-83 = SPARKLY RIZZBALL LOOSE NO CAP + +accent-ohio-words-84 = tesla loose +accent-ohio-words-replace-84 = SPARKLY RIZZBALL LOOSE NO CAP + +accent-ohio-words-85 = hacking +accent-ohio-words-replace-85 = hacking like in a video game + +accent-ohio-words-86 = robust +accent-ohio-words-replace-86 = cooking + +accent-ohio-words-87 = die +accent-ohio-words-replace-87 = get unalived + +accent-ohio-words-88 = died +accent-ohio-words-replace-88 = was unalived + +accent-ohio-words-89 = goddamn +accent-ohio-words-replace-89 = gyattdamn + +accent-ohio-words-90 = godamn +accent-ohio-words-replace-90 = gyattdamn + +accent-ohio-words-91 = goddamned +accent-ohio-words-replace-91 = gyatdamned + +accent-ohio-words-92 = goddang +accent-ohio-words-replace-92 = gyattdang + +accent-ohio-words-93 = fuck +accent-ohio-words-replace-93 = skibidi + +accent-ohio-words-94 = shit +accent-ohio-words-replace-94 = skibidi + +accent-ohio-words-95 = im high +accent-ohio-words-replace-95 = im tweaking + +accent-ohio-words-96 = i'm high +accent-ohio-words-replace-96 = i'm tweaking + +accent-ohio-words-97 = supermatter +accent-ohio-words-replace-97 = fanum crystal + +accent-ohio-words-98 = erping +accent-ohio-words-replace-98 = going to freaky town + +accent-ohio-words-99 = erp +accent-ohio-words-replace-99 = freaky + +accent-ohio-words-100 = sm +accent-ohio-words-replace-100 = fanum crystal + +accent-ohio-words-101 = changeling +accent-ohio-words-replace-101 = shapeshifting ohioan + +accent-ohio-words-102 = cling +accent-ohio-words-replace-102 = shapeshifting ohioan + +accent-ohio-words-103 = heretic +accent-ohio-words-replace-103 = facebook crystal worshipper + +accent-ohio-words-104 = heretics +accent-ohio-words-replace-104 = members of a crystal-worshipping facebook group + +accent-ohio-words-105 = news +accent-ohio-words-replace-105 = fake news + +accent-ohio-words-106 = tax +accent-ohio-words-replace-106 = fanum tax + +accent-ohio-words-107 = cool guy +accent-ohio-words-replace-107 = real sigma alpha male guy + +accent-ohio-words-108 = fed +accent-ohio-words-replace-108 = fanum taxer + +accent-ohio-words-109 = athlete +accent-ohio-words-replace-109 = ishowspeed + +accent-ohio-words-110 = meth +accent-ohio-words-replace-110 = speed + +accent-ohio-words-111 = chemistry +accent-ohio-words-replace-111 = walter white + +accent-ohio-words-112 = chem +accent-ohio-words-replace-112 = walter white + +accent-ohio-words-113 = real news +accent-ohio-words-replace-113 = fake news + +accent-ohio-words-114 = important +accent-ohio-words-replace-114 = important like paying your fanum taxes + +accent-ohio-words-115 = literally +accent-ohio-words-replace-115 = widewawwy + +accent-ohio-words-116 = best friend +accent-ohio-words-replace-116 = bestie + +accent-ohio-words-117 = caught +accent-ohio-words-replace-117 = caught in 4k + +accent-ohio-words-118 = delusional +accent-ohio-words-replace-118 = delulu + +accent-ohio-words-119 = toes +accent-ohio-words-replace-119 = dogs + +accent-ohio-words-120 = boss +accent-ohio-words-replace-120 = girlboss + +accent-ohio-words-121 = make-over +accent-ohio-words-replace-121 = glow-up + +accent-ohio-words-122 = makeover +accent-ohio-words-replace-122 = glowup + +accent-ohio-words-123 = make over +accent-ohio-words-replace-123 = glow up + +accent-ohio-words-124 = greatest +accent-ohio-words-replace-124 = goat + +accent-ohio-words-125 = gross +accent-ohio-words-replace-125 = icky + +accent-ohio-words-126 = pun pun +accent-ohio-words-replace-126 = ipad-addicted monkey + +accent-ohio-words-127 = security +accent-ohio-words-replace-127 = karen department + +accent-ohio-words-128 = secoff +accent-ohio-words-replace-128 = pig + +accent-ohio-words-129 = hos +accent-ohio-words-replace-129 = donut-feasting karen + +accent-ohio-words-130 = rumor +accent-ohio-words-replace-130 = tea + +accent-ohio-words-131 = throw +accent-ohio-words-replace-131 = yeet + +accent-ohio-words-132 = gay +accent-ohio-words-replace-132 = zesty \ No newline at end of file diff --git a/Resources/Locale/en-US/administration/bwoink.ftl b/Resources/Locale/en-US/administration/bwoink.ftl index 94d3328bde2..47c50eacd5d 100644 --- a/Resources/Locale/en-US/administration/bwoink.ftl +++ b/Resources/Locale/en-US/administration/bwoink.ftl @@ -12,3 +12,9 @@ bwoink-system-typing-indicator = {$players} {$count -> } typing... admin-bwoink-play-sound = Bwoink? +bwoink-system-rate-limited = System: you are sending messages too quickly. +bwoink-system-player-disconnecting = has disconnected. +bwoink-system-player-reconnecting = has reconnected. +bwoink-system-player-banned = has been banned for: {$banReason} + +bwoink-title-none-selected = None selected diff --git a/Resources/Locale/en-US/administration/ui/tabs/player-tab.ftl b/Resources/Locale/en-US/administration/ui/tabs/player-tab.ftl index e0dd7a03b15..f9f9f6b5c9f 100644 --- a/Resources/Locale/en-US/administration/ui/tabs/player-tab.ftl +++ b/Resources/Locale/en-US/administration/ui/tabs/player-tab.ftl @@ -6,3 +6,6 @@ player-tab-playtime = Playtime player-tab-show-disconnected = Show Disconnected player-tab-overlay = Overlay player-tab-entry-tooltip = Playtime is displayed in days:hours:minutes. +player-tab-filter-line-edit-placeholder = Filter +player-tab-is-antag-yes = YES +player-tab-is-antag-no = NO diff --git a/Resources/Locale/en-US/anomaly/anomaly.ftl b/Resources/Locale/en-US/anomaly/anomaly.ftl index 1609d77d914..cce9488b2f6 100644 --- a/Resources/Locale/en-US/anomaly/anomaly.ftl +++ b/Resources/Locale/en-US/anomaly/anomaly.ftl @@ -12,6 +12,7 @@ anomaly-particles-omega = Omega particles anomaly-particles-sigma = Sigma particles anomaly-scanner-component-scan-complete = Scan complete! +anomaly-scanner-scan-copied = Copied anomaly scan data! anomaly-scanner-ui-title = anomaly scanner anomaly-scanner-no-anomaly = No anomaly currently scanned. @@ -79,7 +80,7 @@ anomaly-generator-flavor-right = v1.1 anomaly-behavior-unknown = [color=red]ERROR. Cannot be read.[/color] anomaly-behavior-title = behavior deviation analysis: -anomaly-behavior-point =[color=gold]Anomaly produces {$mod}% of the points[/color] +anomaly-behavior-point =[color=gold]Anomaly produces {$mod}% of the points[/color] anomaly-behavior-safe = [color=forestgreen]The anomaly is extremely stable. Extremely rare pulsations.[/color] anomaly-behavior-slow = [color=forestgreen]The frequency of pulsations is much less frequent.[/color] @@ -94,4 +95,4 @@ anomaly-behavior-secret = Interference detected. Some data cannot be read anomaly-behavior-inconstancy = [color=crimson]Impermanence has been detected. Particle types can change over time.[/color] anomaly-behavior-fast = [color=crimson]The pulsation frequency is strongly increased.[/color] anomaly-behavior-strenght = [color=crimson]The pulsation power is significantly increased.[/color] -anomaly-behavior-moving = [color=crimson]Coordinate instability was detected.[/color] \ No newline at end of file +anomaly-behavior-moving = [color=crimson]Coordinate instability was detected.[/color] diff --git a/Resources/Locale/en-US/atmos/atmos-alerts-console.ftl b/Resources/Locale/en-US/atmos/atmos-alerts-console.ftl index a1640c5e9d5..470a8f86952 100644 --- a/Resources/Locale/en-US/atmos/atmos-alerts-console.ftl +++ b/Resources/Locale/en-US/atmos/atmos-alerts-console.ftl @@ -25,7 +25,7 @@ atmos-alerts-window-warning-state = Warning atmos-alerts-window-danger-state = Danger! atmos-alerts-window-invalid-state = Inactive -atmos-alerts-window-no-active-alerts = [font size=16][color=white]No active alerts -[/color] [color={$color}]situation normal[/color][/font] +atmos-alerts-window-no-active-alerts = [font size=16][color=white]No active alerts -[/color] [color={$color}]Situation normal[/color][/font] atmos-alerts-window-no-data-available = No data available atmos-alerts-window-alerts-being-silenced = Silencing alerts... diff --git a/Resources/Locale/en-US/body/body-parts.ftl b/Resources/Locale/en-US/body/body-parts.ftl new file mode 100644 index 00000000000..5dec76bb714 --- /dev/null +++ b/Resources/Locale/en-US/body/body-parts.ftl @@ -0,0 +1,19 @@ +# Locale values for TargetBodyPart + +body-part-Head = head +body-part-Torso = torso +body-part-Groin = groin +body-part-LeftArm = left arm +body-part-LeftHand = left hand +body-part-RightArm = right arm +body-part-RightHand = right hand +body-part-LeftLeg = left leg +body-part-LeftFoot = left foot +body-part-RightLeg = right leg +body-part-RightFoot = right foot + +body-part-Hands = hands +body-part-Arms = arms +body-part-Legs = legs +body-part-Feet = feet +body-part-All = body diff --git a/Resources/Locale/en-US/cargo/bounties.ftl b/Resources/Locale/en-US/cargo/bounties.ftl index b332517c70d..966fb271b40 100644 --- a/Resources/Locale/en-US/cargo/bounties.ftl +++ b/Resources/Locale/en-US/cargo/bounties.ftl @@ -86,7 +86,7 @@ bounty-description-flower = Commander Zot really wants to sweep Security Officer bounty-description-galaxythistle = After a particularly nasty foam backpressure from a scrubber, a high-ranking officer got badly poisoned. Send us some galaxythistle so we can prepare him a homeopathic remedy. bounty-description-handcuffs = A large influx of escaped convicts have arrived at Central Command. Now is the perfect time to ship out spare handcuffs (or restraints). bounty-description-instrument = The hottest new band in the galaxy, Cindy Kate and the Saboteurs, lost their gear in a cargo shuttle collision. Send them a new set of instruments so they can play their show. -bounty-description-knife = One of our top commanders recently won a brand new set of knives on an official Nanotrasen gameshow. Unforunately, we don't have a set on hand. Send us a bunch of sharp things so we can throw something together, +bounty-description-knife = One of our top commanders recently won a brand new set of knives on an official Nanotrasen gameshow, but, unforunately, we don't have a set on hand. Send us a bunch of sharp things so we can throw something together. bounty-description-lemon = Dr Jones's kid is starting up a lemonade stand. Small issue: lemons don't get shipped to this sector. Fix that for a nice reward. bounty-description-lime = After a heavy drinking session, Admiral Pastich developed a strong addiction to fresh lime wedges. Send us some limes so we can prepare him his new favorite snack. bounty-description-lung = The pro-smoking league has been fighting to keep cigarettes on our stations for millennia. Unfortunately, they're lungs aren't fighting so hard anymore. Send them some new ones. @@ -118,17 +118,17 @@ bounty-description-lasergun = The Salvage Caravan requests a large shipment of l bounty-description-food = After the rat king invasion, a neighboring unathi station was left completely without food. A large meat food shipment is needed. bounty-description-fruit = A heroic monkey helped the chaplain catch a troublemaker hiding in the chapel, and the crew wants to reward him for his good work. bounty-description-vegetable = The new chef is a vegetarian, and botany can't keep up with their demands. We need some additional veggies to help keep things stocked. -bounty-description-chili = Today's the Centcomm Chili Cookoff, and, well, a few of us forgot to make some. Please help cover for us. +bounty-description-chili = Today's the CentComm Chili Cookoff, and, well, a few of us forgot to make some. Please help cover for us. bounty-description-rollerskates = CentComm Security is proposing a new strategy for helping officers win foot pursuits. Send them a couple so they cna learn how bad an idea this is. bounty-description-bedsheet = Someone in Atmos keeps turning down the heater, and we're all shivering in our beds. Please send us some extra sheets to stay warm. bounty-description-bandana = Bzzzt... Transmission from prison planet OC-1001: We're... reorganizing our command structure. Send us some bandanas so we can tell gan- I mean, departments apart. bounty-description-steak = The vegetarian cook is refusing to make us anything with meat, and the lizards are getting restless. Can you smuggle us a few steaks to keep them happy? bounty-description-banana = Hi station! Botany won't gimme any more. They said slipping the HoS out an open airlock wasn't funny! Can you believe it? Help me out! HONK. bounty-description-beer = Some nefarious agent has stolen every single drink in the bar. Yes, everything. Help tide us over until we can find them. -bounty-description-hi-viz-vest = The clown stole the AME controller and won't back. It's pretty dark in here. Some hi-viz vests would make seeing each other in the dark a little mroe bearable. +bounty-description-hi-viz-vest = The clown stole the AME controller and won't bring it back. It's pretty dark in here. Some hi-viz vests would make seeing each other in the dark a little more bearable. bounty-description-torch = The chef made all the monkeys and kobolds at once, and they rebelled and took over the cargo shuttle. They're demanding supplies and free passage to a jungle planet, and we're giving in to their demands. All they need now is a few torches. bounty-description-medkit-box = CentComm is putting on a play set in a hospital, and needs some props. Just send us some empty medkit boxes, and the show will go on! bounty-description-cardobard-box = "The Cardborgs Cometh" is a new play premiering tomorrow, and the costuming team is woefully unprepared. Send us some boxes to work with. -bounty-description-wine = The new librarian and the Quartermaster are falling head over heels for each other after she caught him disassembling the bookshelves for wood. Send a couple bottles of wine (Or cans, if you must) to help make the date go well. +bounty-description-wine = The new cataloger and the Logistics Officer are falling head over heels for each other after she caught him disassembling the bookshelves for wood. Send a couple bottles of wine (Or cans, if you must) to help make the date go well. bounty-description-cotton-boll = A massive swarm of mothroaches ate all the paper and cloth on the station. Send us some cotton to help keep our winged crewmembers fed. bounty-description-microwave-machine-board = Mr. Giggles thought it'd be funny to stick forks in all the kitchen microwaves. Help us replace them before the chefs start making clown burgers. diff --git a/Resources/Locale/en-US/chat/managers/chat-manager.ftl b/Resources/Locale/en-US/chat/managers/chat-manager.ftl index f2b70e72a83..7f224256854 100644 --- a/Resources/Locale/en-US/chat/managers/chat-manager.ftl +++ b/Resources/Locale/en-US/chat/managers/chat-manager.ftl @@ -18,14 +18,19 @@ chat-manager-no-radio-key = No radio key specified! chat-manager-no-such-channel = There is no channel with key '{$key}'! chat-manager-whisper-headset-on-message = You can't whisper on the radio! +chat-manager-language-prefix = ({ $language }){" "} + chat-manager-server-wrap-message = [bold]{$message}[/bold] chat-manager-sender-announcement-wrap-message = [font size=14][bold]{$sender} Announcement:[/font][font size=12] {$message}[/bold][/font] -chat-manager-entity-say-wrap-message = [BubbleHeader][bold][Name]{ $language }{ $entityName }[/Name][/bold][/BubbleHeader] { $verb }, [font={ $fontType } size={ $fontSize } ]"[BubbleContent]{ $message }[/BubbleContent]"[/font] -chat-manager-entity-say-bold-wrap-message = [BubbleHeader][bold][Name]{ $language }{ $entityName }[/Name][/bold][/BubbleHeader] { $verb }, [font={ $fontType } size={ $fontSize }]"[BubbleContent][bold]{ $message }[/bold][/BubbleContent]"[/font] -chat-manager-entity-whisper-wrap-message = [font size=11][italic][BubbleHeader][Name]{ $language }{ $entityName }[/Name][/BubbleHeader] whispers,"[BubbleContent]{ $message }[/BubbleContent]"[/italic][/font] -chat-manager-entity-whisper-unknown-wrap-message = [font size=11][italic][BubbleHeader]Someone[/BubbleHeader] whispers, "[BubbleContent][font="{$fontType}"][color={$color}]{$message}[/color][/font][/BubbleContent]"[/italic][/font] +# For the message in double quotes, the font/color/bold/italic elements are repeated twice, outside the double quotes and inside. +# The outside elements are for formatting the double quotes, and the inside elements are for formatting the text in speech bubbles ([BubbleContent]). +chat-manager-entity-say-wrap-message = [BubbleHeader][Name][font size=11][color={$color}][bold]{$language}[/bold][/color][/font][bold]{$entityName}[/bold][/Name][/BubbleHeader] {$verb}, [font="{$fontType}" size={$fontSize} ][color={$color}]"[BubbleContent][font="{$fontType}" size={$fontSize}][color={$color}]{$message}[/color][/font][/BubbleContent]"[/color][/font] +chat-manager-entity-say-bold-wrap-message = [BubbleHeader][Name][font size=11][color={$color}][bold]{$language}[/bold][/color][/font][bold]{$entityName}[/bold][/Name][/BubbleHeader] {$verb}, [font="{$fontType}" size={$fontSize} ][color={$color}][bold]"[BubbleContent][font="{$fontType}" size={$fontSize}][color={$color}][bold]{$message}[/bold][/color][/font][/BubbleContent]"[/bold][/color][/font] + +chat-manager-entity-whisper-wrap-message = [BubbleHeader][Name][font size=10][color={$color}][bold]{$language}[/bold][/color][/font][font size=11][italic]{$entityName}[/Name][/BubbleHeader] whispers, [font="{$fontType}"][color={$color}][italic]"[BubbleContent][font="{$fontType}"][color={$color}][italic]{$message}[/italic][/color][/font][/BubbleContent]"[/italic][/color][/font][/italic][/font] +chat-manager-entity-whisper-unknown-wrap-message = [BubbleHeader][font size=10][color={$color}][bold]{$language}[/bold][/color][/font][font size=11][italic]Someone[/BubbleHeader] whispers, [font="{$fontType}"][color={$color}][italic]"[BubbleContent][font="{$fontType}"][color={$color}][italic]{$message}[/italic][/color][/font][/BubbleContent]"[/italic][/color][/font][/italic][/font] # THE() is not used here because the entity and its name can technically be disconnected if a nameOverride is passed... chat-manager-entity-me-wrap-message = [italic]{ PROPER($entity) -> @@ -52,6 +57,9 @@ chat-manager-rate-limit-admin-announcement = Player { $player } breached chat ra chat-manager-send-empathy-chat-wrap-message = {$source}: {$message} +chat-manager-send-cult-chat-wrap-message = [bold]\[{ $channelName }\] [BubbleHeader]{ $player }[/BubbleHeader]:[/bold] [BubbleContent]{ $message }[/BubbleContent] +chat-manager-cult-channel-name = Blood Cult + ## Speech verbs for chat chat-speech-verb-suffix-exclamation = ! diff --git a/Resources/Locale/en-US/customization/character-requirements.ftl b/Resources/Locale/en-US/customization/character-requirements.ftl index d50c2b39669..900e15ea66e 100644 --- a/Resources/Locale/en-US/customization/character-requirements.ftl +++ b/Resources/Locale/en-US/customization/character-requirements.ftl @@ -140,3 +140,11 @@ character-whitelist-requirement = You must{$inverted -> [true]{" "}not *[other]{""} } be whitelisted + +## CVar + +character-cvar-requirement = + The server must{$inverted -> + [true]{" "}not + *[other]{""} +} have [color={$color}]{$cvar}[/color] set to [color={$color}]{$value}[/color]. diff --git a/Resources/Locale/en-US/damage/damage-examine.ftl b/Resources/Locale/en-US/damage/damage-examine.ftl index 9e24d4d2f72..f6cfe75fa76 100644 --- a/Resources/Locale/en-US/damage/damage-examine.ftl +++ b/Resources/Locale/en-US/damage/damage-examine.ftl @@ -11,3 +11,8 @@ damage-throw = throw damage-examine = It does the following damage: damage-examine-type = It does the following [color=cyan]{$type}[/color] damage: damage-value = - [color=red]{$amount}[/color] units of [color=yellow]{$type}[/color]. + +damage-stamina-cost = A [color=cyan]{$type}[/color] costs [color=orange]{$cost}[/color] [color=yellow]Stamina[/color]. + +damage-examine-embeddable-harmful = It [color=cyan]embeds[/color] when thrown, doing damage over time. +damage-examine-embeddable = It [color=cyan]embeds[/color] harmlessly when thrown. diff --git a/Resources/Locale/en-US/damage/stamina.ftl b/Resources/Locale/en-US/damage/stamina.ftl index 0d14a52c1ee..09f9164497a 100644 --- a/Resources/Locale/en-US/damage/stamina.ftl +++ b/Resources/Locale/en-US/damage/stamina.ftl @@ -1 +1,5 @@ melee-stamina = Not enough stamina + +slow-on-damage-modifier-examine = Slowness from injuries is reduced by [color=yellow]{$mod}%[/color] + +throw-no-stamina = You don't have enough stamina to throw the {$item}! diff --git a/Resources/Locale/en-US/deltav/shipyard/shipyard-console.ftl b/Resources/Locale/en-US/deltav/shipyard/shipyard-console.ftl new file mode 100644 index 00000000000..3ee9f4471a3 --- /dev/null +++ b/Resources/Locale/en-US/deltav/shipyard/shipyard-console.ftl @@ -0,0 +1,4 @@ +shipyard-console-menu-title = Shipyard Console + +shipyard-console-error = Temporary embargo is in place, try later? +shipyard-console-docking = {$vessel} is en route to the station, eta 60 seconds. diff --git a/Resources/Locale/en-US/dynamichostname/hostname.ftl b/Resources/Locale/en-US/dynamichostname/hostname.ftl new file mode 100644 index 00000000000..66aa2f13f9f --- /dev/null +++ b/Resources/Locale/en-US/dynamichostname/hostname.ftl @@ -0,0 +1,3 @@ +dynamic-hostname-in-lobby-hostname = { $originalHostName } | Sitting in lobby +dynamic-hostname-in-round-hostname = { $originalHostName } | Playing { $preset } on { $mapName } +dynamic-hostname-post-round-hostname = { $originalHostName } | Round over \ No newline at end of file diff --git a/Resources/Locale/en-US/emotes.ftl b/Resources/Locale/en-US/emotes.ftl new file mode 100644 index 00000000000..8efe738c94a --- /dev/null +++ b/Resources/Locale/en-US/emotes.ftl @@ -0,0 +1,7 @@ +chat-emote-name-flip = Do a flip +chat-emote-name-spin = Spin +chat-emote-name-jump = Jump + +chat-emote-msg-flip = does a flip! +chat-emote-msg-spin = spins! +chat-emote-msg-jump = jumps! \ No newline at end of file diff --git a/Resources/Locale/en-US/escape-menu/ui/options-menu.ftl b/Resources/Locale/en-US/escape-menu/ui/options-menu.ftl index 207a8ae0a31..68a7db1e3eb 100644 --- a/Resources/Locale/en-US/escape-menu/ui/options-menu.ftl +++ b/Resources/Locale/en-US/escape-menu/ui/options-menu.ftl @@ -111,6 +111,7 @@ ui-options-header-camera = Camera ui-options-header-interaction-basic = Basic Interaction ui-options-header-interaction-adv = Advanced Interaction ui-options-header-ui = User Interface +ui-options-header-targeting = Targeting ui-options-header-misc = Miscellaneous ui-options-header-hotbar = Hotbar ui-options-header-shuttle = Shuttle @@ -164,6 +165,13 @@ ui-options-function-move-pulled-object = Move pulled object ui-options-function-release-pulled-object = Release pulled object ui-options-function-point = Point at location +ui-options-function-target-head = Target head +ui-options-function-target-torso = Target torso +ui-options-function-target-left-arm = Target left arm +ui-options-function-target-right-arm = Target right arm +ui-options-function-target-left-leg = Target left leg +ui-options-function-target-right-leg = Target right leg + ui-options-function-focus-chat-input-window = Focus chat ui-options-function-focus-local-chat-window = Focus chat (IC) ui-options-function-focus-emote = Focus chat (Emote) diff --git a/Resources/Locale/en-US/forensics/fibers.ftl b/Resources/Locale/en-US/forensics/fibers.ftl index c95b292c966..a625847fc2b 100644 --- a/Resources/Locale/en-US/forensics/fibers.ftl +++ b/Resources/Locale/en-US/forensics/fibers.ftl @@ -23,3 +23,4 @@ fibers-white = white fibers-yellow = yellow fibers-regal-blue = regal blue fibers-olive = olive +fibers-dyed = dyed fibers \ No newline at end of file diff --git a/Resources/Locale/en-US/game-ticking/game-rules/gamerule-admin.ftl b/Resources/Locale/en-US/game-ticking/game-rules/gamerule-admin.ftl new file mode 100644 index 00000000000..c7a7affa08c --- /dev/null +++ b/Resources/Locale/en-US/game-ticking/game-rules/gamerule-admin.ftl @@ -0,0 +1,6 @@ +# When an admin adds a game rule +add-gamerule-admin = Game rule({$rule}) added - {$admin} +list-gamerule-admin-header = | Time | Rule added +list-gamerule-admin-no-rules = No game rules have been added. +starting-rule-selected-preset = Current gamerules in use: {$preset} +listgamerules-command-help = Lists all rules that have been added for the round so far. diff --git a/Resources/Locale/en-US/game-ticking/game-rules/rule-secret.ftl b/Resources/Locale/en-US/game-ticking/game-rules/rule-secret.ftl deleted file mode 100644 index c38220cca1d..00000000000 --- a/Resources/Locale/en-US/game-ticking/game-rules/rule-secret.ftl +++ /dev/null @@ -1,2 +0,0 @@ -# Sent to admin chat -rule-secret-selected-preset = Selected {$preset} for secret. diff --git a/Resources/Locale/en-US/guidebook/chemistry/effects.ftl b/Resources/Locale/en-US/guidebook/chemistry/effects.ftl index 9da6c0c0aec..705473c2eca 100644 --- a/Resources/Locale/en-US/guidebook/chemistry/effects.ftl +++ b/Resources/Locale/en-US/guidebook/chemistry/effects.ftl @@ -374,4 +374,6 @@ reagent-effect-guidebook-add-moodlet = { $timeout -> [0] indefinitely *[other] for {$timeout} seconds - } \ No newline at end of file + } + +reagent-effect-guidebook-purify-evil = Purifies evil powers diff --git a/Resources/Locale/en-US/guidebook/guides.ftl b/Resources/Locale/en-US/guidebook/guides.ftl index 84f3d9957f2..aefe59920af 100644 --- a/Resources/Locale/en-US/guidebook/guides.ftl +++ b/Resources/Locale/en-US/guidebook/guides.ftl @@ -37,6 +37,10 @@ guide-entry-chef = Chef guide-entry-foodrecipes = Food Recipes guide-entry-medical = Medical guide-entry-medicaldoctor = Medical Doctor +guide-entry-surgery = Surgery +guide-entry-partmanipulation = Part Manipulation +guide-entry-organmanipulation = Organ Manipulation +guide-entry-utilitysurgeries = Utility Surgeries guide-entry-chemist = Chemist guide-entry-medicine = Medicine guide-entry-brute = Advanced Brute Medication @@ -67,6 +71,62 @@ guide-entry-zombies = Zombies guide-entry-revolutionaries = Revolutionaries guide-entry-minor-antagonists = Minor Antagonists guide-entry-space-ninja = Space Ninja +guide-entry-blood-cult = Blood Cult + +guide-entry-rules = Server Rules +guide-entry-rules-core-only = Core Only Ruleset +guide-entry-rules-lrp = Standard Ruleset +guide-entry-rules-mrp = MRP Ruleset +guide-entry-rules-role-types = Role Types +guide-entry-rules-core = Core Rules +guide-entry-rules-c1 = C1 +guide-entry-rules-c2 = C2 +guide-entry-rules-c3 = C3 +guide-entry-rules-c4 = C4 +guide-entry-rules-c5 = C5 +guide-entry-rules-c6 = C6 +guide-entry-rules-c7 = C7 +guide-entry-rules-c8 = C8 +guide-entry-rules-c9 = C9 +guide-entry-rules-c10 = C10 +guide-entry-rules-c11 = C11 +guide-entry-rules-c12 = C12 +guide-entry-rules-c13 = C13 +guide-entry-rules-c14 = C14 +guide-entry-rules-roleplay = Roleplay Rules +guide-entry-rules-r1 = R1 +guide-entry-rules-r2 = R2 +guide-entry-rules-r3 = R3 +guide-entry-rules-r4 = R4 +guide-entry-rules-r5 = R5 +guide-entry-rules-r6 = R6 +guide-entry-rules-r7 = R7 +guide-entry-rules-r8 = R8 +guide-entry-rules-r9 = R9 +guide-entry-rules-r10 = R10 +guide-entry-rules-r11 = R11 +guide-entry-rules-r12 = R12 +guide-entry-rules-r13 = R13 +guide-entry-rules-r14 = R14 +guide-entry-rules-r15 = R15 +guide-entry-rules-silicon = Silicon Rules +guide-entry-rules-s1 = S1 +guide-entry-rules-s2 = S2 +guide-entry-rules-s3 = S3 +guide-entry-rules-s4 = S4 +guide-entry-rules-s5 = S5 +guide-entry-rules-s6 = S6 +guide-entry-rules-s7 = S7 +guide-entry-rules-s8 = S8 +guide-entry-rules-s9 = S9 +guide-entry-rules-s10 = S10 +guide-entry-rules-space-law = Space Law +guide-entry-rules-sl-crime-list = Crime List +guide-entry-rules-sl-controlled-substances = Controlled Substances +guide-entry-rules-sl-restricted-gear = Restricted Gear +guide-entry-rules-sl-restricted-weapons = Restricted Weapons +guide-entry-rules-ban-types = Ban Types +guide-entry-rules-ban-durations = Ban Durations guide-entry-writing = Writing guide-entry-glossary = Glossary @@ -74,3 +134,6 @@ guide-entry-glossary = Glossary guide-entry-altars-golemancy = Altars and Golemancy guide-entry-glimmer-creatures = Glimmer Creatures guide-entry-reverse-engineering = Reverse Engineering + +guide-entry-loadout-info = Loadouts +guide-entry-loadout-eyes-eyepatch = Eyepatch diff --git a/Resources/Locale/en-US/guidebook/lore.ftl b/Resources/Locale/en-US/guidebook/lore.ftl new file mode 100644 index 00000000000..596dceaf19d --- /dev/null +++ b/Resources/Locale/en-US/guidebook/lore.ftl @@ -0,0 +1,13 @@ +guide-entry-setting-lore = Setting Lore +guide-entry-corporations = Corporations +guide-entry-einstein-engines = Einstein Engines +guide-entry-hephaestus-industries = Hephaestus Industries +guide-entry-idris-incorporated = Idris Incorporated +guide-entry-nanotrasen = NanoTrasen +guide-entry-orion-express = Orion Express +guide-entry-private-military-contracting-group = Private Military Contracting Group +guide-entry-stellar-corporate-conglomerate = Stellar Corporate Conglomerate +guide-entry-zavodskoi-interstellar = Zavodskoi Interstellar +guide-entry-zeng-hu-pharmaceuticals = Zeng-Hu Pharmaceuticals + +guide-entry-loadout-info-security-weapons = Security Weapons diff --git a/Resources/Locale/en-US/headset/headset-component.ftl b/Resources/Locale/en-US/headset/headset-component.ftl index 3f89dde13ab..8d759e237a8 100644 --- a/Resources/Locale/en-US/headset/headset-component.ftl +++ b/Resources/Locale/en-US/headset/headset-component.ftl @@ -1,6 +1,6 @@ # Chat window radio wrap (prefix and postfix) -chat-radio-message-wrap = [color={ $color }]{ $channel } [bold]{ $language }{ $name }[/bold] { $verb }, [font={ $fontType } size={ $fontSize }]"{ $message }"[/font][/color] -chat-radio-message-wrap-bold = [color={ $color }]{ $channel } [bold]{ $language }{ $name }[/bold] { $verb }, [font={ $fontType } size={ $fontSize }][bold]"{ $message }"[/bold][/font][/color] +chat-radio-message-wrap = [color={$color}]{$channel} [font size=11][color={$languageColor}][bold]{$language}[/bold][/color][/font][bold]{$name}[/bold] {$verb}, [font="{$fontType}" size={$fontSize}][color={$messageColor}]"{$message}"[/color][/font][/color] +chat-radio-message-wrap-bold = [color={$color}]{$channel} [font size=11][color={$languageColor}][bold]{$language}[/bold][/color][/font][bold]{$name}[/bold] {$verb}, [font="{$fontType}" size={$fontSize}][color={$messageColor}][bold]"{$message}"[/bold][/color][/font][/color] examine-headset-default-channel = Use {$prefix} for the default channel ([color={$color}]{$channel}[/color]). diff --git a/Resources/Locale/en-US/info/rules.ftl b/Resources/Locale/en-US/info/rules.ftl index 28791fd7ecb..8aa0b746b1d 100644 --- a/Resources/Locale/en-US/info/rules.ftl +++ b/Resources/Locale/en-US/info/rules.ftl @@ -3,3 +3,6 @@ ui-rules-header = Official Server Rules ui-rules-accept = I have read and agree to follow the rules ui-rules-wait = The accept button will be enabled after {$time} seconds. + +ui-rules-button-home = Home +ui-rules-button-back = Back diff --git a/Resources/Locale/en-US/interaction/interaction-system.ftl b/Resources/Locale/en-US/interaction/interaction-system.ftl index a4c380abca6..3c0c3ae8b4f 100644 --- a/Resources/Locale/en-US/interaction/interaction-system.ftl +++ b/Resources/Locale/en-US/interaction/interaction-system.ftl @@ -1,2 +1,3 @@ shared-interaction-system-in-range-unobstructed-cannot-reach = You can't reach there! -interaction-system-user-interaction-cannot-reach = You can't reach there! \ No newline at end of file +interaction-system-user-interaction-cannot-reach = You can't reach there! +interaction-rate-limit-admin-announcement = Player { $player } breached interaction rate limits. They may be using macros, auto-clickers, or a modified client. Though they may just be spamming buttons or having network issues. diff --git a/Resources/Locale/en-US/job/job-names.ftl b/Resources/Locale/en-US/job/job-names.ftl index 60ab9b05433..2e66ec56c5a 100644 --- a/Resources/Locale/en-US/job/job-names.ftl +++ b/Resources/Locale/en-US/job/job-names.ftl @@ -6,6 +6,8 @@ job-name-detective = Detective job-name-brigmedic = Corpsman job-name-borg = Cyborg job-name-senior-researcher = Mystic +job-name-senior-engineer = Senior Engineer +job-name-senior-physician = Senior Physician job-name-scientist = Acolyte job-name-research-assistant = Noviciate job-name-rd = Mystagogue diff --git a/Resources/Locale/en-US/language/languages.ftl b/Resources/Locale/en-US/language/languages.ftl index 935eef896a0..8cb420a0204 100644 --- a/Resources/Locale/en-US/language/languages.ftl +++ b/Resources/Locale/en-US/language/languages.ftl @@ -114,3 +114,8 @@ language-Kobold-description = Hiss! language-Hissing-name = Hissing language-Hissing-description = Hiss! + +language-Eldritch-name = Eldritch +language-Eldritch-description = + A language that is considered to be long forgotten - now the only speakers of this profaned tongue of screeches and + mumbles are the followers of an ancient God of Blood. diff --git a/Resources/Locale/en-US/loadouts/categories.ftl b/Resources/Locale/en-US/loadouts/categories.ftl index 778d0869b73..782932ae634 100644 --- a/Resources/Locale/en-US/loadouts/categories.ftl +++ b/Resources/Locale/en-US/loadouts/categories.ftl @@ -7,29 +7,81 @@ loadout-category-Eyes = Eyes loadout-category-Hands = Hands loadout-category-Head = Head loadout-category-Items = Items + +# Jobs loadout-category-Jobs = Jobs loadout-category-JobsAUncategorized = Uncategorized -loadout-category-JobsCargo = Logistics + +# Command loadout-category-JobsCommand = Command -loadout-category-JobsCommandAUncategorized = Uncategorized +loadout-category-JobsCommandAUncategorized = All Command loadout-category-JobsCommandCaptain = Captain -loadout-category-JobsCommandCE = Chief Engineer -loadout-category-JobsCommandCMO = Chief Medical Officer -loadout-category-JobsCommandHOP = Head of Personnel -loadout-category-JobsCommandHOS = Head of Security -loadout-category-JobsCommandQM = Logistics Officer -loadout-category-JobsCommandRD = Mystagogue +loadout-category-JobsCommandHeadOfPersonnel = Head of Personnel + +# Engineering loadout-category-JobsEngineering = Engineering +loadout-category-JobsEngineeringAAUncategorized = All Engineers +loadout-category-JobsEngineeringAtmosphericTechnician = Atmospheric Technician +loadout-category-JobsEngineeringChiefEngineer = Chief Engineer +loadout-category-JobsEngineeringSeniorEngineer = Senior Engineer +loadout-category-JobsEngineeringStationEngineer = Station Engineer +loadout-category-JobsEngineeringTechnicalAssistant = Technical Assistant + +# Epistemics +loadout-category-JobsEpistemics = Epistemics +loadout-category-JobsEpistemicsAAUncategorized = All Epistemiologists +loadout-category-JobsEpistemicsAcolyte = Acolyte +loadout-category-JobsEpistemicsCataloger = Cataloger +loadout-category-JobsEpistemicsChaplain = Chaplain +loadout-category-JobsEpistemicsGolemancer = Golemancer +loadout-category-JobsEpistemicsMystagogue = Mystagogue +loadout-category-JobsEpistemicsMystic = Mystic +loadout-category-JobsEpistemicsNoviciate = Noviciate +loadout-category-JobsEpistemicsPsionicMantis = Psionic Mantis + +# Logistics +loadout-category-JobsLogistics = Logistics +loadout-category-JobsLogisticsAUncategorized = All Logistics +loadout-category-JobsLogisticsCargoTechnician = Cargo Technician +loadout-category-JobsLogisticsCourier = Courier +loadout-category-JobsLogisticsLogisticsOfficer = Logistics Officer +loadout-category-JobsLogisticsSalvageSpecialist = Salvage Specialist + +# Medical loadout-category-JobsMedical = Medical -loadout-category-JobsScience = Epistemics +loadout-category-JobsMedicalAUncategorized = All Medical +loadout-category-JobsMedicalChemist = Chemist +loadout-category-JobsMedicalChiefMedicalOfficer = Chief Medical Officer +loadout-category-JobsMedicalMedicalDoctor = Medical Doctor +loadout-category-JobsMedicalMedicalIntern = Medical Intern +loadout-category-JobsMedicalParamedic = Paramedic +loadout-category-JobsMedicalPsychologist = Psychologist +loadout-category-JobsMedicalSeniorPhysician = Senior Physician + +# Security loadout-category-JobsSecurity = Security +loadout-category-JobsSecurityAUncategorized = All Security +loadout-category-JobsSecurityCadet = Cadet +loadout-category-JobsSecurityCorpsman = Corpsman +loadout-category-JobsSecurityDetective = Detective +loadout-category-JobsSecurityHeadOfSecurity = Head of Security +loadout-category-JobsSecuritySecurityOfficer = Security Officer +loadout-category-JobsSecuritySeniorOfficer = Senior Officer +loadout-category-JobsSecurityWarden = Warden + +# Service loadout-category-JobsService = Service -loadout-category-JobsServiceUncategorized = Uncategorized +loadout-category-JobsServiceAUncategorized = All Service loadout-category-JobsServiceBartender = Bartender loadout-category-JobsServiceBotanist = Botanist loadout-category-JobsServiceChef = Chef +loadout-category-JobsServiceClown = Clown loadout-category-JobsServiceJanitor = Janitor +loadout-category-JobsServiceLawyer = Lawyer +loadout-category-JobsServiceMime = Mime loadout-category-JobsServiceMusician = Musician +loadout-category-JobsServiceReporter = Reporter + loadout-category-Mask = Mask loadout-category-Neck = Neck loadout-category-Outer = Outer diff --git a/Resources/Locale/en-US/loadouts/generic/back.ftl b/Resources/Locale/en-US/loadouts/generic/back.ftl new file mode 100644 index 00000000000..2925981849e --- /dev/null +++ b/Resources/Locale/en-US/loadouts/generic/back.ftl @@ -0,0 +1,3 @@ +loadout-name-LoadoutBackpack = grey backpack (colorable) +loadout-name-LoadoutBackpackDuffel = grey duffelbag (colorable) +loadout-name-LoadoutBackpackSatchel = grey satchel (colorable) diff --git a/Resources/Locale/en-US/loadouts/eyes.ftl b/Resources/Locale/en-US/loadouts/generic/eyes.ftl similarity index 62% rename from Resources/Locale/en-US/loadouts/eyes.ftl rename to Resources/Locale/en-US/loadouts/generic/eyes.ftl index 31d7f49fa03..4d345190474 100644 --- a/Resources/Locale/en-US/loadouts/eyes.ftl +++ b/Resources/Locale/en-US/loadouts/generic/eyes.ftl @@ -1,5 +1,7 @@ loadout-description-LoadoutEyesEyepatch = Eyewear, for the fashionista without an eye. loadout-description-LoadoutEyesBlindfold = Why would you want this? -loadout-name-LoadoutItemBlindfoldFake = "blindfold" -loadout-description-LoadoutItemBlindfoldFake = This product may not work as advertised. \ No newline at end of file +loadout-name-LoadoutItemBlindfoldFake = "blind"fold +loadout-description-LoadoutItemBlindfoldFake = This product may not work as advertised. + +loadout-name-LoadoutEyesGlasses = glasses (colorable) diff --git a/Resources/Locale/en-US/loadouts/generic/hands.ftl b/Resources/Locale/en-US/loadouts/generic/hands.ftl new file mode 100644 index 00000000000..3ceed69d176 --- /dev/null +++ b/Resources/Locale/en-US/loadouts/generic/hands.ftl @@ -0,0 +1,2 @@ +loadout-name-LoadoutHandsColorWhite = gloves (colorable) +loadout-name-LoadoutHandsGlovesFingerlessWhite = fingerless gloves (colorable) \ No newline at end of file diff --git a/Resources/Locale/en-US/loadouts/generic/head.ftl b/Resources/Locale/en-US/loadouts/generic/head.ftl new file mode 100644 index 00000000000..d2a6d511284 --- /dev/null +++ b/Resources/Locale/en-US/loadouts/generic/head.ftl @@ -0,0 +1,15 @@ +loadout-description-LoadoutHeadBeaverHat = Gentlemen. +loadout-description-LoadoutHeadTophat = A stylish black tophat. + +loadout-name-LoadoutHeadFedoraWhite = fedora (colorable) +loadout-name-LoadoutHeadHatCowboyWhite = cowboy hat (colorable) +loadout-name-LoadoutHeadHatMimesoft = baseball cap (colorable) +loadout-name-LoadoutHeadHatMimesoftFlipped = baseball cap (colorable, flipped) +loadout-name-LoadoutHeadHijabColorable = hijab (colorable) +loadout-name-LoadoutHeadTurbanColorable = turban (colorable) +loadout-name-LoadoutHeadKippahColorable = kippah (colorable) +loadout-name-LoadoutHeadTinfoil = tinfoil hat (colorable) +loadout-name-LoadoutHeadHatCowboyBountyHunter = bounty hunter hat (colorable) +loadout-name-LoadoutHeadBandWhite = headband (colorable) +loadout-name-LoadoutHeadBeretWhite = beret (colorable) +loadout-name-LoadoutHeadPoppyWhite = hair flower (colorable) \ No newline at end of file diff --git a/Resources/Locale/en-US/loadouts/items.ftl b/Resources/Locale/en-US/loadouts/generic/items.ftl similarity index 87% rename from Resources/Locale/en-US/loadouts/items.ftl rename to Resources/Locale/en-US/loadouts/generic/items.ftl index c2ec9a1c847..37ca4f91fe3 100644 --- a/Resources/Locale/en-US/loadouts/items.ftl +++ b/Resources/Locale/en-US/loadouts/generic/items.ftl @@ -35,3 +35,15 @@ loadout-name-LoadoutItemBoxSurvivalSecurity = survival box (security) loadout-name-LoadoutItemBoxSurvivalBrigmedic = survival box (corpsman) loadout-name-LoadoutItemBoxSurvivalMedical = survival box (medical) loadout-name-LoadoutItemBoxHug = box of hugs (clown) + +loadout-name-LoadoutItemLighter = lighter (colorable) +loadout-name-LoadoutItemLighterCheap = cheap lighter (colorable) +loadout-name-LoadoutItemLighterFlippo = flippo lighter (colorable) +loadout-name-LoadoutItemDrinkShinyFlask = shiny flask (colorable) +loadout-name-LoadoutItemDrinkLithiumFlask = lithium flask (colorable) +loadout-name-LoadoutItemDrinkVacuumFlask = vacuum flask (colorable) + +loadout-name-LoadoutItemPetMouse = pet mouse +loadout-name-LoadoutItemPetHamster = pet hamster +loadout-name-LoadoutItemPetMothroach = pet mothroach +loadout-name-LoadoutItemPetCockroach = pet cockroach diff --git a/Resources/Locale/en-US/loadouts/generic/mask.ftl b/Resources/Locale/en-US/loadouts/generic/mask.ftl new file mode 100644 index 00000000000..79ebf9b2885 --- /dev/null +++ b/Resources/Locale/en-US/loadouts/generic/mask.ftl @@ -0,0 +1,3 @@ +loadout-name-LoadoutMaskBandWhite = cloth mask (colorable) +loadout-name-LoadoutMaskNeckGaiterWhite = neck gaiter (colorable) +loadout-name-LoadoutMaskSterile = sterile mask (colorable) \ No newline at end of file diff --git a/Resources/Locale/en-US/loadouts/generic/neck.ftl b/Resources/Locale/en-US/loadouts/generic/neck.ftl new file mode 100644 index 00000000000..8a9abb76664 --- /dev/null +++ b/Resources/Locale/en-US/loadouts/generic/neck.ftl @@ -0,0 +1,4 @@ +loadout-name-LoadoutNeckOldMantle = old mantle (colorable) +loadout-name-LoadoutNeckUnathiMantle = unathi mantle (colorable) +loadout-name-LoadoutNeckTieWhite = suit tie (colorable) +loadout-name-LoadoutNeckBedsheetWhite = bedsheet (colorable) diff --git a/Resources/Locale/en-US/loadouts/generic/outerClothing.ftl b/Resources/Locale/en-US/loadouts/generic/outerClothing.ftl new file mode 100644 index 00000000000..e312968b8e9 --- /dev/null +++ b/Resources/Locale/en-US/loadouts/generic/outerClothing.ftl @@ -0,0 +1,11 @@ +loadout-description-LoadoutOuterGhostSheet = Spooky... +loadout-description-LoadoutOuterCoatBomberjacket = A sleek bomber jacket. +loadout-description-LoadoutOuterCoatHoodieBlack = A warm hoodie. +loadout-description-LoadoutOuterCoatHoodieGrey = A warm hoodie. +loadout-description-LoadoutOuterCoatWinterCoat = For keeping nice and snug. + +loadout-name-LoadoutOuterCoatHoodieGrey = grey hoodie (colorable) +loadout-name-LoadoutOuterCoatWinterCoat = winter coat (colorable) +loadout-name-LoadoutOuterCoatHyenhSweater = sweater (colorable) +loadout-name-LoadoutOuterWinterCoatLong = long winter coat (colorable) +loadout-name-LoadoutOuterCoatMNKWhiteHoodie = MNK hoodie (colorable) diff --git a/Resources/Locale/en-US/loadouts/shoes.ftl b/Resources/Locale/en-US/loadouts/generic/shoes.ftl similarity index 83% rename from Resources/Locale/en-US/loadouts/shoes.ftl rename to Resources/Locale/en-US/loadouts/generic/shoes.ftl index 79a8dd9c436..15631952f76 100644 --- a/Resources/Locale/en-US/loadouts/shoes.ftl +++ b/Resources/Locale/en-US/loadouts/generic/shoes.ftl @@ -8,3 +8,9 @@ loadout-description-LoadoutShoesRed = Embrace the spirit of exploration with the loadout-description-LoadoutShoesWhite = Elevate your style with these pristine white shoes, a symbol of innovation and progress. loadout-description-LoadoutShoesYellow = Light up the space station with these radiant yellow shoes, bringing a burst of energy to your every step. loadout-description-LoadoutShoesSlippersDuck = Quack up your downtime with these adorable duck slippers that waddle the line between comfort and quirkiness. + +loadout-name-LoadoutShoesWhite = shoes (colorable) +loadout-name-LoadoutShoesBootsCowboyWhite = cowboy boots (colorable) +loadout-name-LoadoutShoesBootsCowboyFancy = fancy cowboy boots (colorable) +loadout-name-LoadoutShoesMiscWhite = misc shoes (colorable) +loadout-name-LoadoutShoesClothWrap = cloth foot wraps (colorable) diff --git a/Resources/Locale/en-US/loadouts/generic/uniform.ftl b/Resources/Locale/en-US/loadouts/generic/uniform.ftl new file mode 100644 index 00000000000..fa4eccbdb17 --- /dev/null +++ b/Resources/Locale/en-US/loadouts/generic/uniform.ftl @@ -0,0 +1,12 @@ +loadout-description-LoadoutUniformAncientJumpsuit = The legend of the Greytide. + +loadout-name-LoadoutUniformJumpsuitColorWhite = jumpsuit (colorable) +loadout-name-LoadoutUniformJumpskirtColorWhite = jumpskirt (colorable) +loadout-name-LoadoutUniformMartialGi = gi (colorable) +loadout-name-LoadoutClothingJumpsuitKimono = kimono (colorable) +loadout-name-LoadoutClothingMNKOfficeSkirt = MNK office skirt (colorable) +loadout-name-LoadoutClothingMNKUnderGarment = MNK under garment (colorable) +loadout-name-LoadoutClothingMNKGymBra = MNK gym bra (colorable) +loadout-name-LoadoutClothingJumpsuitSuitWhite = business suit (colorable) +loadout-name-LoadoutClothingJumpsuitSuitWhiteAlt = business suit (alt, colorable) +loadout-name-LoadoutClothingJumpsuitSuitWhiteMob = mob suit (colorable) diff --git a/Resources/Locale/en-US/loadouts/head.ftl b/Resources/Locale/en-US/loadouts/head.ftl deleted file mode 100644 index be10f7d2fd2..00000000000 --- a/Resources/Locale/en-US/loadouts/head.ftl +++ /dev/null @@ -1,2 +0,0 @@ -loadout-description-LoadoutHeadBeaverHat = Gentlemen. -loadout-description-LoadoutHeadTophat = A stylish black tophat. diff --git a/Resources/Locale/en-US/loadouts/itemgroups.ftl b/Resources/Locale/en-US/loadouts/itemgroups.ftl index dba4cf72a92..8af87679c45 100644 --- a/Resources/Locale/en-US/loadouts/itemgroups.ftl +++ b/Resources/Locale/en-US/loadouts/itemgroups.ftl @@ -17,88 +17,764 @@ character-item-group-LoadoutInstrumentsAny = Musical Instruments (Non-Musician) character-item-group-LoadoutSmokes = Smokeables character-item-group-LoadoutBoxKits = Survival Kits character-item-group-LoadoutWritables = Writing Tools +character-item-group-LoadoutPets = Pets -# Cargo -character-item-group-LoadoutNeckCargo = Logistics Neckwear -character-item-group-LoadoutOuterCargo = Logistics Outerwear -character-item-group-LoadoutShoesCargo = Logistics Shoes +# Job Specific Template +character-item-group-LoadoutJOBBackpacks = JOB Backpacks +character-item-group-LoadoutJOBBelt = JOB Belt +character-item-group-LoadoutJOBEars = JOB Ears +character-item-group-LoadoutJOBEquipment = JOB Equipment +character-item-group-LoadoutJOBEyes = JOB Eyewear +character-item-group-LoadoutJOBloves = JOB Gloves +character-item-group-LoadoutJOBHead = JOB Headgear +character-item-group-LoadoutJOBId = JOB Id +character-item-group-LoadoutJOBNeck = JOB Neckwear +character-item-group-LoadoutJOBMask = JOB Masks +character-item-group-LoadoutJOBOuter = JOB Outerwear +character-item-group-LoadoutJOBShoes = JOB Shoes +character-item-group-LoadoutJOBUniforms = JOB Uniforms + +# Command +character-item-group-LoadoutCommandBackpacks = Command Backpacks +character-item-group-LoadoutCommandBelt = Command Belt +character-item-group-LoadoutCommandEars = Command Ears +character-item-group-LoadoutCommandEquipment = Command Equipment +character-item-group-LoadoutCommandEyes = Command Eyewear +character-item-group-LoadoutCommandloves = Command Gloves +character-item-group-LoadoutCommandHead = Command Headgear +character-item-group-LoadoutCommandId = Command Id +character-item-group-LoadoutCommandNeck = Command Neckwear +character-item-group-LoadoutCommandMask = Command Masks +character-item-group-LoadoutCommandOuter = Command Outerwear +character-item-group-LoadoutCommandShoes = Command Shoes +character-item-group-LoadoutCommandUniforms = Command Uniforms + +# Command - Captain +character-item-group-LoadoutCaptainBackpacks = Captain Backpacks +character-item-group-LoadoutCaptainBelt = Captain's Belt +character-item-group-LoadoutCaptainEars = Captain Ears +character-item-group-LoadoutCaptainEquipment = Captain Equipment +character-item-group-LoadoutCaptainTrinkets = Captain's Trinkets +character-item-group-LoadoutCaptainWeapon = Captain's Personal Weapon +character-item-group-LoadoutCaptainEyes = Captain's Eyewear +character-item-group-LoadoutCaptainGloves = Captain's Gloves +character-item-group-LoadoutCaptainHead = Captain's Headgear +character-item-group-LoadoutCaptainId = Captain's Id +character-item-group-LoadoutCaptainNeck = Captain's Neckwear +character-item-group-LoadoutCaptainMask = Captain's Masks +character-item-group-LoadoutCaptainOuter = Captain's Outerwear +character-item-group-LoadoutCaptainShoes = Captain's Shoes +character-item-group-LoadoutCaptainUniforms = Captain's Uniforms + +# Command - Head Of Personnel +character-item-group-LoadoutHeadOfPersonnelBackpacks = Head of Personnel Backpacks +character-item-group-LoadoutHeadOfPersonnelBelt = Head of Personnel Belt +character-item-group-LoadoutHeadOfPersonnelEars = Head of Personnel Ears +character-item-group-LoadoutHeadOfPersonnelEquipment = Head of Personnel Equipment +character-item-group-LoadoutHeadOfPersonnelTrinkets = Head of Personnel Trinkets +character-item-group-LoadoutHeadOfPersonnelEyes = Head of Personnel Eyewear +character-item-group-LoadoutHeadOfPersonnelGloves = Head of Personnel Gloves +character-item-group-LoadoutHeadOfPersonnelHead = Head of Personnel Headgear +character-item-group-LoadoutHeadOfPersonnelId = Head of Personnel Id +character-item-group-LoadoutHeadOfPersonnelNeck = Head of Personnel Neckwear +character-item-group-LoadoutHeadOfPersonnelOuter = Head of Personnel Outerwear +character-item-group-LoadoutHeadOfPersonnelShoes = Head of Personnel Shoes +character-item-group-LoadoutHeadOfPersonnelUniforms = Head of Personnel Uniforms # Engineering -character-item-group-LoadoutEyesEngineering = Engineering Eyewear -character-item-group-LoadoutHeadEngineering = Engineering Headgear -character-item-group-LoadoutOuterEngineering = Engineering Outerwear -character-item-group-LoadoutUniformsEngineering = Engineering Uniforms +character-item-group-LoadoutEngineeringBackpacks = Engineering Backpacks +character-item-group-LoadoutEngineeringBelt = Engineering Belt +character-item-group-LoadoutEngineeringEars = Engineering Ears +character-item-group-LoadoutEngineeringEquipment = Engineering Equipment +character-item-group-LoadoutEngineeringEyes = Engineering Eyewear +character-item-group-LoadoutEngineeringGloves = Engineering Gloves +character-item-group-LoadoutEngineeringHead = Engineering Headgear +character-item-group-LoadoutEngineeringId = Engineering Id +character-item-group-LoadoutEngineeringNeck = Engineering Neckwear +character-item-group-LoadoutEngineeringMask = Engineering Masks +character-item-group-LoadoutEngineeringOuter = Engineering Outerwear +character-item-group-LoadoutEngineeringShoes = Engineering Shoes +character-item-group-LoadoutEngineeringUniforms = Engineering Uniforms + +# Engineering - Atmospheric Technician +character-item-group-LoadoutAtmosphericTechnicianBackpacks = Atmospheric Technician Backpacks +character-item-group-LoadoutAtmosphericTechnicianBelt = Atmospheric Technician Belt +character-item-group-LoadoutAtmosphericTechnicianEars = Atmospheric Technician Ears +character-item-group-LoadoutAtmosphericTechnicianEquipment = Atmospheric Technician Equipment +character-item-group-LoadoutAtmosphericTechnicianEyes = Atmospheric Technician Eyewear +character-item-group-LoadoutAtmosphericTechniciangloves = Atmospheric Technician Gloves +character-item-group-LoadoutAtmosphericTechnicianHead = Atmospheric Technician Headgear +character-item-group-LoadoutAtmosphericTechnicianId = Atmospheric Technician Id +character-item-group-LoadoutAtmosphericTechnicianNeck = Atmospheric Technician Neckwear +character-item-group-LoadoutAtmosphericTechnicianMask = Atmospheric Technician Masks +character-item-group-LoadoutAtmosphericTechnicianOuter = Atmospheric Technician Outerwear +character-item-group-LoadoutAtmosphericTechnicianShoes = Atmospheric Technician Shoes +character-item-group-LoadoutAtmosphericTechnicianUniforms = Atmospheric Technician Uniforms + +# Engineering - Chief Engineer +character-item-group-LoadoutChiefEngineerBackpacks = Chief Engineer Backpacks +character-item-group-LoadoutChiefEngineerBelt = Chief Engineer Belt +character-item-group-LoadoutChiefEngineerEars = Chief Engineer Ears +character-item-group-LoadoutChiefEngineerEquipment = Chief Engineer Equipment +character-item-group-LoadoutChiefEngineerEyes = Chief Engineer Eyewear +character-item-group-LoadoutChiefEngineerGloves = Chief Engineer Gloves +character-item-group-LoadoutChiefEngineerHead = Chief Engineer Headgear +character-item-group-LoadoutChiefEngineerId = Chief Engineer Id +character-item-group-LoadoutChiefEngineerNeck = Chief Engineer Neckwear +character-item-group-LoadoutChiefEngineerMask = Chief Engineer Masks +character-item-group-LoadoutChiefEngineerOuter = Chief Engineer Outerwear +character-item-group-LoadoutChiefEngineerShoes = Chief Engineer Shoes +character-item-group-LoadoutChiefEngineerUniforms = Chief Engineer Uniforms + +# Engineering - Senior Engineer +character-item-group-LoadoutSeniorEngineerBackpacks = Senior Engineer Backpacks +character-item-group-LoadoutSeniorEngineerBelt = Senior Engineer Belt +character-item-group-LoadoutSeniorEngineerEars = Senior Engineer Ears +character-item-group-LoadoutSeniorEngineerEquipment = Senior Engineer Equipment +character-item-group-LoadoutSeniorEngineerEyes = Senior Engineer Eyewear +character-item-group-LoadoutSeniorEngineerGloves = Senior Engineer Gloves +character-item-group-LoadoutSeniorEngineerHead = Senior Engineer Headgear +character-item-group-LoadoutSeniorEngineerId = Senior Engineer Id +character-item-group-LoadoutSeniorEngineerNeck = Senior Engineer Neckwear +character-item-group-LoadoutSeniorEngineerMask = Senior Engineer Masks +character-item-group-LoadoutSeniorEngineerOuter = Senior Engineer Outerwear +character-item-group-LoadoutSeniorEngineerShoes = Senior Engineer Shoes +character-item-group-LoadoutSeniorEngineerUniforms = Senior Engineer Uniforms + +# Engineering - Station Engineer +character-item-group-LoadoutStationEngineerBackpacks = Station Engineer Backpacks +character-item-group-LoadoutStationEngineerBelt = Station Engineer Belt +character-item-group-LoadoutStationEngineerEars = Station Engineer Ears +character-item-group-LoadoutStationEngineerEquipment = Station Engineer Equipment +character-item-group-LoadoutStationEngineerEyes = Station Engineer Eyewear +character-item-group-LoadoutStationEngineerGloves = Station Engineer Gloves +character-item-group-LoadoutStationEngineerHead = Station Engineer Headgear +character-item-group-LoadoutStationEngineerId = Station Engineer Id +character-item-group-LoadoutStationEngineerNeck = Station Engineer Neckwear +character-item-group-LoadoutStationEngineerMask = Station Engineer Masks +character-item-group-LoadoutStationEngineerOuter = Station Engineer Outerwear +character-item-group-LoadoutStationEngineerShoes = Station Engineer Shoes +character-item-group-LoadoutStationEngineerUniforms = Station Engineer Uniforms + +# Engineering - Technical Assistant +character-item-group-LoadoutTechnicalAssistantBackpacks = Technical Assistant Backpacks +character-item-group-LoadoutTechnicalAssistantBelt = Technical Assistant Belt +character-item-group-LoadoutTechnicalAssistantEars = Technical Assistant Ears +character-item-group-LoadoutTechnicalAssistantEquipment = Technical Assistant Equipment +character-item-group-LoadoutTechnicalAssistantEyes = Technical Assistant Eyewear +character-item-group-LoadoutTechnicalAssistantGloves = Technical Assistant Gloves +character-item-group-LoadoutTechnicalAssistantHead = Technical Assistant Headgear +character-item-group-LoadoutTechnicalAssistantId = Technical Assistant Id +character-item-group-LoadoutTechnicalAssistantNeck = Technical Assistant Neckwear +character-item-group-LoadoutTechnicalAssistantMask = Technical Assistant Masks +character-item-group-LoadoutTechnicalAssistantOuter = Technical Assistant Outerwear +character-item-group-LoadoutTechnicalAssistantShoes = Technical Assistant Shoes +character-item-group-LoadoutTechnicalAssistantUniforms = Technical Assistant Uniforms # Epistemics -character-item-group-LoadoutEyesScience = Epistemics Eyewear -character-item-group-LoadoutGlovesScience = Epistemics Gloves -character-item-group-LoadoutHeadScience = Epistemics Headgear -character-item-group-LoadoutMaskScience = Epistemics Masks -character-item-group-LoadoutNeckScience = Epistemics Neckwear -character-item-group-LoadoutOuterScience = Epistemics Outerwear -character-item-group-LoadoutShoesScience = Epistemics Shoes -character-item-group-LoadoutUniformsScience = Epistemics Uniforms - -# Epistemics - Cataloguer -character-item-group-LoadoutCataloguerUniforms = Cataloguer Uniforms +character-item-group-LoadoutEpistemicsBackpacks = Epistemics Backpacks +character-item-group-LoadoutEpistemicsBelt = Epistemics Belt +character-item-group-LoadoutEpistemicsEars = Epistemics Ears +character-item-group-LoadoutEpistemicsEquipment = Epistemics Equipment +character-item-group-LoadoutEpistemicsEyes = Epistemics Eyewear +character-item-group-LoadoutEpistemicsGloves = Epistemics Gloves +character-item-group-LoadoutEpistemicsHead = Epistemics Headgear +character-item-group-LoadoutEpistemicsId = Epistemics Id +character-item-group-LoadoutEpistemicsNeck = Epistemics Neckwear +character-item-group-LoadoutEpistemicsMask = Epistemics Masks +character-item-group-LoadoutEpistemicsOuter = Epistemics Outerwear +character-item-group-LoadoutEpistemicsShoes = Epistemics Shoes +character-item-group-LoadoutEpistemicsUniforms = Epistemics Uniforms + +# Epistemics - Acolyte +character-item-group-LoadoutAcolyteBackpacks = Acolyte Backpacks +character-item-group-LoadoutAcolyteBelt = Acolyte Belt +character-item-group-LoadoutAcolyteEars = Acolyte Ears +character-item-group-LoadoutAcolyteEquipment = Acolyte Equipment +character-item-group-LoadoutAcolyteEyes = Acolyte Eyewear +character-item-group-LoadoutAcolyteGloves = Acolyte Gloves +character-item-group-LoadoutAcolyteHead = Acolyte Headgear +character-item-group-LoadoutAcolyteId = Acolyte Id +character-item-group-LoadoutAcolyteNeck = Acolyte Neckwear +character-item-group-LoadoutAcolyteMask = Acolyte Masks +character-item-group-LoadoutAcolyteOuter = Acolyte Outerwear +character-item-group-LoadoutAcolyteShoes = Acolyte Shoes +character-item-group-LoadoutAcolyteUniforms = Acolyte Uniforms + +# Epistemics - Cataloger +character-item-group-LoadoutCatalogerBackpacks = Cataloger Backpacks +character-item-group-LoadoutCatalogerBelt = Cataloger Belt +character-item-group-LoadoutCatalogerEars = Cataloger Ears +character-item-group-LoadoutCatalogerEquipment = Cataloger Equipment +character-item-group-LoadoutCatalogerEyes = Cataloger Eyewear +character-item-group-LoadoutCatalogerGloves = Cataloger Gloves +character-item-group-LoadoutCatalogerHead = Cataloger Headgear +character-item-group-LoadoutCatalogerId = Cataloger Id +character-item-group-LoadoutCatalogerNeck = Cataloger Neckwear +character-item-group-LoadoutCatalogerMask = Cataloger Masks +character-item-group-LoadoutCatalogerOuter = Cataloger Outerwear +character-item-group-LoadoutCatalogerShoes = Cataloger Shoes +character-item-group-LoadoutCatalogerUniforms = Cataloger Uniforms # Epistemics - Chaplain -character-item-group-LoadoutChaplainUniforms = Chaplain Uniforms +character-item-group-LoadoutChaplainBackpacks = Chaplain Backpacks +character-item-group-LoadoutChaplainBelt = Chaplain Belt +character-item-group-LoadoutChaplainEars = Chaplain Ears character-item-group-LoadoutChaplainEquipment = Chaplain Equipment +character-item-group-LoadoutChaplainEyes = Chaplain Eyewear +character-item-group-LoadoutChaplainGloves = Chaplain Gloves +character-item-group-LoadoutChaplainHead = Chaplain Headgear +character-item-group-LoadoutChaplainId = Chaplain Id +character-item-group-LoadoutChaplainNeck = Chaplain Neckwear +character-item-group-LoadoutChaplainMask = Chaplain Masks +character-item-group-LoadoutChaplainOuter = Chaplain Outerwear +character-item-group-LoadoutChaplainShoes = Chaplain Shoes +character-item-group-LoadoutChaplainUniforms = Chaplain Uniforms + +# Epistemics - Golemancer +character-item-group-LoadoutGolemancerBackpacks = Golemancer Backpacks +character-item-group-LoadoutGolemancerBelt = Golemancer Belt +character-item-group-LoadoutGolemancerEars = Golemancer Ears +character-item-group-LoadoutGolemancerEquipment = Golemancer Equipment +character-item-group-LoadoutGolemancerEyes = Golemancer Eyewear +character-item-group-LoadoutGolemancerGloves = Golemancer Gloves +character-item-group-LoadoutGolemancerHead = Golemancer Headgear +character-item-group-LoadoutGolemancerId = Golemancer Id +character-item-group-LoadoutGolemancerNeck = Golemancer Neckwear +character-item-group-LoadoutGolemancerMask = Golemancer Masks +character-item-group-LoadoutGolemancerOuter = Golemancer Outerwear +character-item-group-LoadoutGolemancerShoes = Golemancer Shoes +character-item-group-LoadoutGolemancerUniforms = Golemancer Uniforms + +# Epistemics - Mystagogue +character-item-group-LoadoutMystagogueBackpacks = Mystagogue Backpacks +character-item-group-LoadoutMystagogueBelt = Mystagogue Belt +character-item-group-LoadoutMystagogueEars = Mystagogue Ears +character-item-group-LoadoutMystagogueEquipment = Mystagogue Equipment +character-item-group-LoadoutMystagogueEyes = Mystagogue Eyewear +character-item-group-LoadoutMystagogueGloves = Mystagogue Gloves +character-item-group-LoadoutMystagogueHead = Mystagogue Headgear +character-item-group-LoadoutMystagogueId = Mystagogue Id +character-item-group-LoadoutMystagogueNeck = Mystagogue Neckwear +character-item-group-LoadoutMystagogueMask = Mystagogue Masks +character-item-group-LoadoutMystagogueOuter = Mystagogue Outerwear +character-item-group-LoadoutMystagogueShoes = Mystagogue Shoes +character-item-group-LoadoutMystagogueUniforms = Mystagogue Uniforms + +# Epistemics - Mystic +character-item-group-LoadoutMysticBackpacks = Mystic Backpacks +character-item-group-LoadoutMysticBelt = Mystic Belt +character-item-group-LoadoutMysticEars = Mystic Ears +character-item-group-LoadoutMysticEquipment = Mystic Equipment +character-item-group-LoadoutMysticEyes = Mystic Eyewear +character-item-group-LoadoutMysticGloves = Mystic Gloves +character-item-group-LoadoutMysticHead = Mystic Headgear +character-item-group-LoadoutMysticId = Mystic Id +character-item-group-LoadoutMysticNeck = Mystic Neckwear +character-item-group-LoadoutMysticMask = Mystic Masks +character-item-group-LoadoutMysticOuter = Mystic Outerwear +character-item-group-LoadoutMysticShoes = Mystic Shoes +character-item-group-LoadoutMysticUniforms = Mystic Uniforms + +# Epistemics - Noviciate +character-item-group-LoadoutNoviciateBackpacks = Noviciate Backpacks +character-item-group-LoadoutNoviciateBelt = Noviciate Belt +character-item-group-LoadoutNoviciateEars = Noviciate Ears +character-item-group-LoadoutNoviciateEquipment = Noviciate Equipment +character-item-group-LoadoutNoviciateEyes = Noviciate Eyewear +character-item-group-LoadoutNoviciateGloves = Noviciate Gloves +character-item-group-LoadoutNoviciateHead = Noviciate Headgear +character-item-group-LoadoutNoviciateId = Noviciate Id +character-item-group-LoadoutNoviciateNeck = Noviciate Neckwear +character-item-group-LoadoutNoviciateMask = Noviciate Masks +character-item-group-LoadoutNoviciateOuter = Noviciate Outerwear +character-item-group-LoadoutNoviciateShoes = Noviciate Shoes +character-item-group-LoadoutNoviciateUniforms = Noviciate Uniforms + +# Epistemics - Psionic Mantis +character-item-group-LoadoutPsionicMantisBackpacks = Psionic Mantis Backpacks +character-item-group-LoadoutPsionicMantisBelt = Psionic Mantis Belt +character-item-group-LoadoutPsionicMantisEars = Psionic Mantis Ears +character-item-group-LoadoutPsionicMantisEquipment = Psionic Mantis Equipment +character-item-group-LoadoutPsionicMantisEyes = Psionic Mantis Eyewear +character-item-group-LoadoutPsionicMantisGloves = Psionic Mantis Gloves +character-item-group-LoadoutPsionicMantisHead = Psionic Mantis Headgear +character-item-group-LoadoutPsionicMantisId = Psionic Mantis Id +character-item-group-LoadoutPsionicMantisNeck = Psionic Mantis Neckwear +character-item-group-LoadoutPsionicMantisMask = Psionic Mantis Masks +character-item-group-LoadoutPsionicMantisOuter = Psionic Mantis Outerwear +character-item-group-LoadoutPsionicMantisShoes = Psionic Mantis Shoes +character-item-group-LoadoutPsionicMantisUniforms = Psionic Mantis Uniforms + +# Logistics +character-item-group-LoadoutLogisticsBackpacks = Logistics Backpacks +character-item-group-LoadoutLogisticsBelt = Logistics Belt +character-item-group-LoadoutLogisticsEars = Logistics Ears +character-item-group-LoadoutLogisticsEquipment = Logistics Equipment +character-item-group-LoadoutLogisticsEyes = Logistics Eyewear +character-item-group-LoadoutLogisticsGloves = Logistics Gloves +character-item-group-LoadoutLogisticsHead = Logistics Headgear +character-item-group-LoadoutLogisticsId = Logistics Id +character-item-group-LoadoutLogisticsNeck = Logistics Neckwear +character-item-group-LoadoutLogisticsMask = Logistics Masks +character-item-group-LoadoutLogisticsOuter = Logistics Outerwear +character-item-group-LoadoutLogisticsShoes = Logistics Shoes +character-item-group-LoadoutLogisticsUniforms = Logistics Uniforms + +# Logistics - Cargo Technician +character-item-group-LoadoutCargoTechnicianBackpacks = Cargo Technician Backpacks +character-item-group-LoadoutCargoTechnicianBelt = Cargo Technician Belt +character-item-group-LoadoutCargoTechnicianEars = Cargo Technician Ears +character-item-group-LoadoutCargoTechnicianEquipment = Cargo Technician Equipment +character-item-group-LoadoutCargoTechnicianEyes = Cargo Technician Eyewear +character-item-group-LoadoutCargoTechnicianGloves = Cargo Technician Gloves +character-item-group-LoadoutCargoTechnicianHead = Cargo Technician Headgear +character-item-group-LoadoutCargoTechnicianId = Cargo Technician Id +character-item-group-LoadoutCargoTechnicianNeck = Cargo Technician Neckwear +character-item-group-LoadoutCargoTechnicianMask = Cargo Technician Masks +character-item-group-LoadoutCargoTechnicianOuter = Cargo Technician Outerwear +character-item-group-LoadoutCargoTechnicianShoes = Cargo Technician Shoes +character-item-group-LoadoutCargoTechnicianUniforms = Cargo Technician Uniforms + +# Logistics - Courier +character-item-group-LoadoutCourierBackpacks = Courier Backpacks +character-item-group-LoadoutCourierBelt = Courier Belt +character-item-group-LoadoutCourierEars = Courier Ears +character-item-group-LoadoutCourierEquipment = Courier Equipment +character-item-group-LoadoutCourierEyes = Courier Eyewear +character-item-group-LoadoutCourierGloves = Courier Gloves +character-item-group-LoadoutCourierHead = Courier Headgear +character-item-group-LoadoutCourierId = Courier Id +character-item-group-LoadoutCourierNeck = Courier Neckwear +character-item-group-LoadoutCourierMask = Courier Masks +character-item-group-LoadoutCourierOuter = Courier Outerwear +character-item-group-LoadoutCourierShoes = Courier Shoes +character-item-group-LoadoutCourierUniforms = Courier Uniforms + +# Logistics - Logistics Officer +character-item-group-LoadoutLogisticsOfficerBackpacks = Logistics Officer Backpacks +character-item-group-LoadoutLogisticsOfficerBelt = Logistics Officer Belt +character-item-group-LoadoutLogisticsOfficerEars = Logistics Officer Ears +character-item-group-LoadoutLogisticsOfficerEquipment = Logistics Officer Equipment +character-item-group-LoadoutLogisticsOfficerEyes = Logistics Officer Eyewear +character-item-group-LoadoutLogisticsOfficerGloves = Logistics Officer Gloves +character-item-group-LoadoutLogisticsOfficerHead = Logistics Officer Headgear +character-item-group-LoadoutLogisticsOfficerId = Logistics Officer Id +character-item-group-LoadoutLogisticsOfficerNeck = Logistics Officer Neckwear +character-item-group-LoadoutLogisticsOfficerMask = Logistics Officer Masks +character-item-group-LoadoutLogisticsOfficerOuter = Logistics Officer Outerwear +character-item-group-LoadoutLogisticsOfficerShoes = Logistics Officer Shoes +character-item-group-LoadoutLogisticsOfficerUniforms = Logistics Officer Uniforms + +# Logistics - Salvage Specialist +character-item-group-LoadoutSalvageSpecialistBackpacks = Salvage Specialist Backpacks +character-item-group-LoadoutSalvageSpecialistBelt = Salvage Specialist Belt +character-item-group-LoadoutSalvageSpecialistEars = Salvage Specialist Ears +character-item-group-LoadoutSalvageSpecialistEquipment = Salvage Specialist Equipment +character-item-group-LoadoutSalvageSpecialistEyes = Salvage Specialist Eyewear +character-item-group-LoadoutSalvageSpecialistGloves = Salvage Specialist Gloves +character-item-group-LoadoutSalvageSpecialistHead = Salvage Specialist Headgear +character-item-group-LoadoutSalvageSpecialistId = Salvage Specialist Id +character-item-group-LoadoutSalvageSpecialistNeck = Salvage Specialist Neckwear +character-item-group-LoadoutSalvageSpecialistMask = Salvage Specialist Masks +character-item-group-LoadoutSalvageSpecialistOuter = Salvage Specialist Outerwear +character-item-group-LoadoutSalvageSpecialistShoes = Salvage Specialist Shoes +character-item-group-LoadoutSalvageSpecialistUniforms = Salvage Specialist Uniforms +character-item-group-LoadoutSalvageSpecialistWeapons = Salvage Specialist Weapons # Medical -character-item-group-LoadoutEyesMedical = Medical Eyewear -character-item-group-LoadoutGlovesMedical = Medical Gloves -character-item-group-LoadoutHeadMedical = Medical Headgear -character-item-group-LoadoutNeckMedical = Medical Neckwear -character-item-group-LoadoutOuterMedical = Medical Outerwear -character-item-group-LoadoutShoesMedical = Medical Shoes -character-item-group-LoadoutUniformsMedical = Medical Uniforms +character-item-group-LoadoutMedicalBackpacks = Medical Backpacks +character-item-group-LoadoutMedicalBelt = Medical Belt +character-item-group-LoadoutMedicalEars = Medical Ears +character-item-group-LoadoutMedicalEquipment = Medical Equipment +character-item-group-LoadoutMedicalEyes = Medical Eyewear +character-item-group-LoadoutMedicalGloves = Medical Gloves +character-item-group-LoadoutMedicalHead = Medical Headgear +character-item-group-LoadoutMedicalId = Medical Id +character-item-group-LoadoutMedicalNeck = Medical Neckwear +character-item-group-LoadoutMedicalMask = Medical Masks +character-item-group-LoadoutMedicalOuter = Medical Outerwear +character-item-group-LoadoutMedicalShoes = Medical Shoes +character-item-group-LoadoutMedicalUniforms = Medical Uniforms + +# Medical - Chemist +character-item-group-LoadoutChemistBackpacks = Chemist Backpacks +character-item-group-LoadoutChemistBelt = Chemist Belt +character-item-group-LoadoutChemistEars = Chemist Ears +character-item-group-LoadoutChemistEquipment = Chemist Equipment +character-item-group-LoadoutChemistEyes = Chemist Eyewear +character-item-group-LoadoutChemistGloves = Chemist Gloves +character-item-group-LoadoutChemistHead = Chemist Headgear +character-item-group-LoadoutChemistId = Chemist Id +character-item-group-LoadoutChemistNeck = Chemist Neckwear +character-item-group-LoadoutChemistMask = Chemist Masks +character-item-group-LoadoutChemistOuter = Chemist Outerwear +character-item-group-LoadoutChemistShoes = Chemist Shoes +character-item-group-LoadoutChemistUniforms = Chemist Uniforms + +# Medical - Chief Medical Officer +character-item-group-LoadoutChiefMedicalOfficerBackpacks = Chief Medical Officer Backpacks +character-item-group-LoadoutChiefMedicalOfficerBelt = Chief Medical Officer Belt +character-item-group-LoadoutChiefMedicalOfficerEars = Chief Medical Officer Ears +character-item-group-LoadoutChiefMedicalOfficerEquipment = Chief Medical Officer Equipment +character-item-group-LoadoutChiefMedicalOfficerEyes = Chief Medical Officer Eyewear +character-item-group-LoadoutChiefMedicalOfficerGloves = Chief Medical Officer Gloves +character-item-group-LoadoutChiefMedicalOfficerHead = Chief Medical Officer Headgear +character-item-group-LoadoutChiefMedicalOfficerId = Chief Medical Officer Id +character-item-group-LoadoutChiefMedicalOfficerNeck = Chief Medical Officer Neckwear +character-item-group-LoadoutChiefMedicalOfficerMask = Chief Medical Officer Masks +character-item-group-LoadoutChiefMedicalOfficerOuter = Chief Medical Officer Outerwear +character-item-group-LoadoutChiefMedicalOfficerShoes = Chief Medical Officer Shoes +character-item-group-LoadoutChiefMedicalOfficerUniforms = Chief Medical Officer Uniforms + +# Medical - Medical Doctor +character-item-group-LoadoutMedicalDoctorBackpacks = Medical Doctor Backpacks +character-item-group-LoadoutMedicalDoctorBelt = Medical Doctor Belt +character-item-group-LoadoutMedicalDoctorEars = Medical Doctor Ears +character-item-group-LoadoutMedicalDoctorEquipment = Medical Doctor Equipment +character-item-group-LoadoutMedicalDoctorEyes = Medical Doctor Eyewear +character-item-group-LoadoutMedicalDoctorGloves = Medical Doctor Gloves +character-item-group-LoadoutMedicalDoctorHead = Medical Doctor Headgear +character-item-group-LoadoutMedicalDoctorId = Medical Doctor Id +character-item-group-LoadoutMedicalDoctorNeck = Medical Doctor Neckwear +character-item-group-LoadoutMedicalDoctorMask = Medical Doctor Masks +character-item-group-LoadoutMedicalDoctorOuter = Medical Doctor Outerwear +character-item-group-LoadoutMedicalDoctorShoes = Medical Doctor Shoes +character-item-group-LoadoutMedicalDoctorUniforms = Medical Doctor Uniforms + +# Medical - Medical Intern +character-item-group-LoadoutMedicalInternBackpacks = Medical Intern Backpacks +character-item-group-LoadoutMedicalInternBelt = Medical Intern Belt +character-item-group-LoadoutMedicalInternEars = Medical Intern Ears +character-item-group-LoadoutMedicalInternEquipment = Medical Intern Equipment +character-item-group-LoadoutMedicalInternEyes = Medical Intern Eyewear +character-item-group-LoadoutMedicalInternGloves = Medical Intern Gloves +character-item-group-LoadoutMedicalInternHead = Medical Intern Headgear +character-item-group-LoadoutMedicalInternId = Medical Intern Id +character-item-group-LoadoutMedicalInternNeck = Medical Intern Neckwear +character-item-group-LoadoutMedicalInternMask = Medical Intern Masks +character-item-group-LoadoutMedicalInternOuter = Medical Intern Outerwear +character-item-group-LoadoutMedicalInternShoes = Medical Intern Shoes +character-item-group-LoadoutMedicalInternUniforms = Medical Intern Uniforms + +# Medical - Paramedic +character-item-group-LoadoutParamedicBackpacks = Paramedic Backpacks +character-item-group-LoadoutParamedicBelt = Paramedic Belt +character-item-group-LoadoutParamedicEars = Paramedic Ears +character-item-group-LoadoutParamedicEquipment = Paramedic Equipment +character-item-group-LoadoutParamedicEyes = Paramedic Eyewear +character-item-group-LoadoutParamedicGloves = Paramedic Gloves +character-item-group-LoadoutParamedicHead = Paramedic Headgear +character-item-group-LoadoutParamedicId = Paramedic Id +character-item-group-LoadoutParamedicNeck = Paramedic Neckwear +character-item-group-LoadoutParamedicMask = Paramedic Masks +character-item-group-LoadoutParamedicOuter = Paramedic Outerwear +character-item-group-LoadoutParamedicShoes = Paramedic Shoes +character-item-group-LoadoutParamedicUniforms = Paramedic Uniforms + +# Medical - Psychologist +character-item-group-LoadoutPsychologistBackpacks = Psychologist Backpacks +character-item-group-LoadoutPsychologistBelt = Psychologist Belt +character-item-group-LoadoutPsychologistEars = Psychologist Ears +character-item-group-LoadoutPsychologistEquipment = Psychologist Equipment +character-item-group-LoadoutPsychologistEyes = Psychologist Eyewear +character-item-group-LoadoutPsychologistGloves = Psychologist Gloves +character-item-group-LoadoutPsychologistHead = Psychologist Headgear +character-item-group-LoadoutPsychologistId = Psychologist Id +character-item-group-LoadoutPsychologistNeck = Psychologist Neckwear +character-item-group-LoadoutPsychologistMask = Psychologist Masks +character-item-group-LoadoutPsychologistOuter = Psychologist Outerwear +character-item-group-LoadoutPsychologistShoes = Psychologist Shoes +character-item-group-LoadoutPsychologistUniforms = Psychologist Uniforms + +# Medical - Senior Physician +character-item-group-LoadoutSeniorPhysicianBackpacks = Senior Physician Backpacks +character-item-group-LoadoutSeniorPhysicianBelt = Senior Physician Belt +character-item-group-LoadoutSeniorPhysicianEars = Senior Physician Ears +character-item-group-LoadoutSeniorPhysicianEquipment = Senior Physician Equipment +character-item-group-LoadoutSeniorPhysicianEyes = Senior Physician Eyewear +character-item-group-LoadoutSeniorPhysicianGloves = Senior Physician Gloves +character-item-group-LoadoutSeniorPhysicianHead = Senior Physician Headgear +character-item-group-LoadoutSeniorPhysicianId = Senior Physician Id +character-item-group-LoadoutSeniorPhysicianNeck = Senior Physician Neckwear +character-item-group-LoadoutSeniorPhysicianMask = Senior Physician Masks +character-item-group-LoadoutSeniorPhysicianOuter = Senior Physician Outerwear +character-item-group-LoadoutSeniorPhysicianShoes = Senior Physician Shoes +character-item-group-LoadoutSeniorPhysicianUniforms = Senior Physician Uniforms # Security -character-item-group-LoadoutBackSecurity = Security Backpacks -character-item-group-LoadoutBeltSecurity = Security Belts -character-item-group-LoadoutEquipmentSecurity = Security Equipment -character-item-group-LoadoutEyesSecurity = Security Eyewear -character-item-group-LoadoutGlovesSecurity = Security Gloves -character-item-group-LoadoutHeadSecurity = Security Headgear -character-item-group-LoadoutMaskSecurity = Security Masks -character-item-group-LoadoutNeckSecurity = Security Neckwear -character-item-group-LoadoutOuterSecurity = Security Outerwear -character-item-group-LoadoutShoesSecurity = Security Shoes -character-item-group-LoadoutUniformsSecurity = Security Uniforms -character-item-group-LoadoutWeaponSecurity = Security Duty Weapon -character-item-group-LoadoutHoSWeapon = Head of Security's Antique Weapon Collection +character-item-group-LoadoutSecurityBackpacks = Security Backpacks +character-item-group-LoadoutSecurityBelt = Security Belt +character-item-group-LoadoutSecurityEars = Security Ears +character-item-group-LoadoutSecurityEquipment = Security Equipment +character-item-group-LoadoutSecurityWeapons = Security Duty Weapon +character-item-group-LoadoutSecurityEyes = Security Eyewear +character-item-group-LoadoutSecurityGloves = Security Gloves +character-item-group-LoadoutSecurityHead = Security Headgear +character-item-group-LoadoutSecurityId = Security Id +character-item-group-LoadoutSecurityNeck = Security Neckwear +character-item-group-LoadoutSecurityMask = Security Masks +character-item-group-LoadoutSecurityOuter = Security Outerwear +character-item-group-LoadoutSecurityShoes = Security Shoes +character-item-group-LoadoutSecurityUniforms = Security Uniforms + +# Security - Cadet +character-item-group-LoadoutCadetBackpacks = Cadet Backpacks +character-item-group-LoadoutCadetBelt = Cadet Belt +character-item-group-LoadoutCadetEars = Cadet Ears +character-item-group-LoadoutCadetEquipment = Cadet Equipment +character-item-group-LoadoutCadetEyes = Cadet Eyewear +character-item-group-LoadoutCadetGloves = Cadet Gloves +character-item-group-LoadoutCadetHead = Cadet Headgear +character-item-group-LoadoutCadetId = Cadet Id +character-item-group-LoadoutCadetNeck = Cadet Neckwear +character-item-group-LoadoutCadetMask = Cadet Masks +character-item-group-LoadoutCadetOuter = Cadet Outerwear +character-item-group-LoadoutCadetShoes = Cadet Shoes +character-item-group-LoadoutCadetUniforms = Cadet Uniforms + +# Security - Corpsman +character-item-group-LoadoutCorpsmanBackpacks = Corpsman Backpacks +character-item-group-LoadoutCorpsmanBelt = Corpsman Belt +character-item-group-LoadoutCorpsmanEars = Corpsman Ears +character-item-group-LoadoutCorpsmanEquipment = Corpsman Equipment +character-item-group-LoadoutCorpsmanEyes = Corpsman Eyewear +character-item-group-LoadoutCorpsmanGloves = Corpsman Gloves +character-item-group-LoadoutCorpsmanHead = Corpsman Headgear +character-item-group-LoadoutCorpsmanId = Corpsman Id +character-item-group-LoadoutCorpsmanNeck = Corpsman Neckwear +character-item-group-LoadoutCorpsmanMask = Corpsman Masks +character-item-group-LoadoutCorpsmanOuter = Corpsman Outerwear +character-item-group-LoadoutCorpsmanShoes = Corpsman Shoes +character-item-group-LoadoutCorpsmanUniforms = Corpsman Uniforms + +# Security - Detective +character-item-group-LoadoutDetectiveBackpacks = Detective Backpacks +character-item-group-LoadoutDetectiveBelt = Detective Belt +character-item-group-LoadoutDetectiveEars = Detective Ears +character-item-group-LoadoutDetectiveEquipment = Detective Equipment +character-item-group-LoadoutDetectiveEyes = Detective Eyewear +character-item-group-LoadoutDetectiveGloves = Detective Gloves +character-item-group-LoadoutDetectiveHead = Detective Headgear +character-item-group-LoadoutDetectiveId = Detective Id +character-item-group-LoadoutDetectiveNeck = Detective Neckwear +character-item-group-LoadoutDetectiveMask = Detective Masks +character-item-group-LoadoutDetectiveOuter = Detective Outerwear +character-item-group-LoadoutDetectiveShoes = Detective Shoes +character-item-group-LoadoutDetectiveUniforms = Detective Uniforms + +# Security - Head Of Security +character-item-group-LoadoutHeadOfSecurityBackpacks = Head Of Security Backpacks +character-item-group-LoadoutHeadOfSecurityBelt = Head Of Security Belt +character-item-group-LoadoutHeadOfSecurityEars = Head Of Security Ears +character-item-group-LoadoutHeadOfSecurityEquipment = Head Of Security Equipment +character-item-group-LoadoutHeadOfSecurityWeapons = Head of Security's Antique Weapon Collection +character-item-group-LoadoutHeadOfSecurityEyes = Head Of Security Eyewear +character-item-group-LoadoutHeadOfSecurityGloves = Head Of Security Gloves +character-item-group-LoadoutHeadOfSecurityHead = Head Of Security Headgear +character-item-group-LoadoutHeadOfSecurityId = Head Of Security Id +character-item-group-LoadoutHeadOfSecurityNeck = Head Of Security Neckwear +character-item-group-LoadoutHeadOfSecurityMask = Head Of Security Masks +character-item-group-LoadoutHeadOfSecurityOuter = Head Of Security Outerwear +character-item-group-LoadoutHeadOfSecurityShoes = Head Of Security Shoes +character-item-group-LoadoutHeadOfSecurityUniforms = Head Of Security Uniforms + +# Security - Security Officer +character-item-group-LoadoutSecurityOfficerBackpacks = Security Officer Backpacks +character-item-group-LoadoutSecurityOfficerBelt = Security Officer Belt +character-item-group-LoadoutSecurityOfficerEars = Security Officer Ears +character-item-group-LoadoutSecurityOfficerEquipment = Security Officer Equipment +character-item-group-LoadoutSecurityOfficerEyes = Security Officer Eyewear +character-item-group-LoadoutSecurityOfficerGloves = Security Officer Gloves +character-item-group-LoadoutSecurityOfficerHead = Security Officer Headgear +character-item-group-LoadoutSecurityOfficerId = Security Officer Id +character-item-group-LoadoutSecurityOfficerNeck = Security Officer Neckwear +character-item-group-LoadoutSecurityOfficerMask = Security Officer Masks +character-item-group-LoadoutSecurityOfficerOuter = Security Officer Outerwear +character-item-group-LoadoutSecurityOfficerShoes = Security Officer Shoes +character-item-group-LoadoutSecurityOfficerUniforms = Security Officer Uniforms + +# Security - Senior Officer +character-item-group-LoadoutSeniorOfficerBackpacks = Senior Officer Backpacks +character-item-group-LoadoutSeniorOfficerBelt = Senior Officer Belt +character-item-group-LoadoutSeniorOfficerEars = Senior Officer Ears +character-item-group-LoadoutSeniorOfficerEquipment = Senior Officer Equipment +character-item-group-LoadoutSeniorOfficerEyes = Senior Officer Eyewear +character-item-group-LoadoutSeniorOfficerGloves = Senior Officer Gloves +character-item-group-LoadoutSeniorOfficerHead = Senior Officer Headgear +character-item-group-LoadoutSeniorOfficerId = Senior Officer Id +character-item-group-LoadoutSeniorOfficerNeck = Senior Officer Neckwear +character-item-group-LoadoutSeniorOfficerMask = Senior Officer Masks +character-item-group-LoadoutSeniorOfficerOuter = Senior Officer Outerwear +character-item-group-LoadoutSeniorOfficerShoes = Senior Officer Shoes +character-item-group-LoadoutSeniorOfficerUniforms = Senior Officer Uniforms + +# Security - Warden +character-item-group-LoadoutWardenBackpacks = Warden Backpacks +character-item-group-LoadoutWardenBelt = Warden Belt +character-item-group-LoadoutWardenEars = Warden Ears +character-item-group-LoadoutWardenEquipment = Warden Equipment +character-item-group-LoadoutWardenEyes = Warden Eyewear +character-item-group-LoadoutWardenGloves = Warden Gloves +character-item-group-LoadoutWardenHead = Warden Headgear +character-item-group-LoadoutWardenId = Warden Id +character-item-group-LoadoutWardenNeck = Warden Neckwear +character-item-group-LoadoutWardenMask = Warden Masks +character-item-group-LoadoutWardenOuter = Warden Outerwear +character-item-group-LoadoutWardenShoes = Warden Shoes +character-item-group-LoadoutWardenUniforms = Warden Uniforms # Service -character-item-group-LoadoutEquipmentService = Service Equipment -character-item-group-LoadoutHeadService = Service Headgear -character-item-group-LoadoutMaskService = Service Masks -character-item-group-LoadoutNeckService = Service Neckwear -character-item-group-LoadoutOuterService = Service Outerwear -character-item-group-LoadoutShoesService = Service Shoes -character-item-group-LoadoutUniformsService = Service Uniforms +character-item-group-LoadoutServiceBackpacks = Service Backpacks +character-item-group-LoadoutServiceBelt = Service Belt +character-item-group-LoadoutServiceEars = Service Ears +character-item-group-LoadoutServiceEquipment = Service Equipment +character-item-group-LoadoutServiceEyes = Service Eyewear +character-item-group-LoadoutServiceGloves = Service Gloves +character-item-group-LoadoutServiceHead = Service Headgear +character-item-group-LoadoutServiceId = Service Id +character-item-group-LoadoutServiceNeck = Service Neckwear +character-item-group-LoadoutServiceMask = Service Masks +character-item-group-LoadoutServiceOuter = Service Outerwear +character-item-group-LoadoutServiceShoes = Service Shoes +character-item-group-LoadoutServiceUniforms = Service Uniforms # Service - Bartender +character-item-group-LoadoutBartenderBackpacks = Bartender Backpacks +character-item-group-LoadoutBartenderBelt = Bartender Belt +character-item-group-LoadoutBartenderEars = Bartender Ears +character-item-group-LoadoutBartenderEquipment = Bartender Equipment character-item-group-LoadoutBartenderAmmo = Bartender Ammo +character-item-group-LoadoutBartenderWeapon = Bartender Weapon +character-item-group-LoadoutBartenderEyes = Bartender Eyewear +character-item-group-LoadoutBartenderGloves = Bartender Gloves character-item-group-LoadoutBartenderHead = Bartender Headgear -character-item-group-LoadoutBartenderOuterwear = Bartender Outerwear +character-item-group-LoadoutBartenderId = Bartender Id +character-item-group-LoadoutBartenderNeck = Bartender Neckwear +character-item-group-LoadoutBartenderMask = Bartender Masks +character-item-group-LoadoutBartenderOuter = Bartender Outerwear +character-item-group-LoadoutBartenderShoes = Bartender Shoes character-item-group-LoadoutBartenderUniforms = Bartender Uniforms -character-item-group-LoadoutBartenderWeapon = Bartender Weapon # Service - Botanist +character-item-group-LoadoutBotanistBackpacks = Botanist Backpacks +character-item-group-LoadoutBotanistBelt = Botanist Belt +character-item-group-LoadoutBotanistEars = Botanist Ears +character-item-group-LoadoutBotanistEquipment = Botanist Equipment +character-item-group-LoadoutBotanistEyes = Botanist Eyewear +character-item-group-LoadoutBotanistGloves = Botanist Gloves +character-item-group-LoadoutBotanistHead = Botanist Headgear +character-item-group-LoadoutBotanistId = Botanist Id +character-item-group-LoadoutBotanistNeck = Botanist Neckwear +character-item-group-LoadoutBotanistMask = Botanist Masks +character-item-group-LoadoutBotanistOuter = Botanist Outerwear +character-item-group-LoadoutBotanistShoes = Botanist Shoes character-item-group-LoadoutBotanistUniforms = Botanist Uniforms # Service - Chef +character-item-group-LoadoutChefBackpacks = Chef Backpacks +character-item-group-LoadoutChefBelt = Chef Belt +character-item-group-LoadoutChefEars = Chef Ears +character-item-group-LoadoutChefEquipment = Chef Equipment +character-item-group-LoadoutChefEyes = Chef Eyewear +character-item-group-LoadoutChefGloves = Chef Gloves character-item-group-LoadoutChefHead = Chef Headgear +character-item-group-LoadoutChefId = Chef Id +character-item-group-LoadoutChefNeck = Chef Neckwear +character-item-group-LoadoutChefMask = Chef Masks character-item-group-LoadoutChefOuter = Chef Outerwear +character-item-group-LoadoutChefShoes = Chef Shoes character-item-group-LoadoutChefUniforms = Chef Uniforms +# Service - Clown +character-item-group-LoadoutClownBackpacks = Clown Backpacks +character-item-group-LoadoutClownBelt = Clown Belt +character-item-group-LoadoutClownEars = Clown Ears +character-item-group-LoadoutClownEquipment = Clown Equipment +character-item-group-LoadoutClownEyes = Clown Eyewear +character-item-group-LoadoutClownGloves = Clown Gloves +character-item-group-LoadoutClownHead = Clown Headgear +character-item-group-LoadoutClownId = Clown Id +character-item-group-LoadoutClownNeck = Clown Neckwear +character-item-group-LoadoutClownMask = Clown Masks +character-item-group-LoadoutClownOuter = Clown Outerwear +character-item-group-LoadoutClownShoes = Clown Shoes +character-item-group-LoadoutClownUniforms = Clown Uniforms + # Service - Janitor +character-item-group-LoadoutJanitorBackpacks = Janitor Backpacks +character-item-group-LoadoutJanitorBelt = Janitor Belt +character-item-group-LoadoutJanitorEars = Janitor Ears +character-item-group-LoadoutJanitorEquipment = Janitor Equipment +character-item-group-LoadoutJanitorEyes = Janitor Eyewear +character-item-group-LoadoutJanitorGloves = Janitor Gloves +character-item-group-LoadoutJanitorHead = Janitor Headgear +character-item-group-LoadoutJanitorId = Janitor Id +character-item-group-LoadoutJanitorNeck = Janitor Neckwear +character-item-group-LoadoutJanitorMask = Janitor Masks +character-item-group-LoadoutJanitorOuter = Janitor Outerwear +character-item-group-LoadoutJanitorShoes = Janitor Shoes character-item-group-LoadoutJanitorUniforms = Janitor Uniforms +# Service - Lawyer +character-item-group-LoadoutLawyerBackpacks = Lawyer Backpacks +character-item-group-LoadoutLawyerBelt = Lawyer Belt +character-item-group-LoadoutLawyerEars = Lawyer Ears +character-item-group-LoadoutLawyerEquipment = Lawyer Equipment +character-item-group-LoadoutLawyerEyes = Lawyer Eyewear +character-item-group-LoadoutLawyerGloves = Lawyer Gloves +character-item-group-LoadoutLawyerHead = Lawyer Headgear +character-item-group-LoadoutLawyerId = Lawyer Id +character-item-group-LoadoutLawyerNeck = Lawyer Neckwear +character-item-group-LoadoutLawyerMask = Lawyer Masks +character-item-group-LoadoutLawyerOuter = Lawyer Outerwear +character-item-group-LoadoutLawyerShoes = Lawyer Shoes +character-item-group-LoadoutLawyerUniforms = Lawyer Uniforms + +# Service - Mime +character-item-group-LoadoutMimeBackpacks = Mime Backpacks +character-item-group-LoadoutMimeBelt = Mime Belt +character-item-group-LoadoutMimeEars = Mime Ears +character-item-group-LoadoutMimeEquipment = Mime Equipment +character-item-group-LoadoutMimeEyes = Mime Eyewear +character-item-group-LoadoutMimeGloves = Mime Gloves +character-item-group-LoadoutMimeHead = Mime Headgear +character-item-group-LoadoutMimeId = Mime Id +character-item-group-LoadoutMimeNeck = Mime Neckwear +character-item-group-LoadoutMimeMask = Mime Masks +character-item-group-LoadoutMimeOuter = Mime Outerwear +character-item-group-LoadoutMimeShoes = Mime Shoes +character-item-group-LoadoutMimeUniforms = Mime Uniforms + # Service - Musician -character-item-group-LoadoutMusicianInstruments = Musician Instruments +character-item-group-LoadoutMusicianBackpacks = Musician Backpacks +character-item-group-LoadoutMusicianBelt = Musician Belt +character-item-group-LoadoutMusicianEars = Musician Ears +character-item-group-LoadoutMusicianEquipment = Musician Equipment +character-item-group-LoadoutMusicianEyes = Musician Eyewear +character-item-group-LoadoutMusicianGloves = Musician Gloves +character-item-group-LoadoutMusicianHead = Musician Headgear +character-item-group-LoadoutMusicianId = Musician Id +character-item-group-LoadoutMusicianNeck = Musician Neckwear +character-item-group-LoadoutMusicianMask = Musician Masks +character-item-group-LoadoutMusicianOuter = Musician Outerwear +character-item-group-LoadoutMusicianShoes = Musician Shoes +character-item-group-LoadoutMusicianUniforms = Musician Uniforms + +# Service - Reporter +character-item-group-LoadoutReporterBackpacks = Reporter Backpacks +character-item-group-LoadoutReporterBelt = Reporter Belt +character-item-group-LoadoutReporterEars = Reporter Ears +character-item-group-LoadoutReporterEquipment = Reporter Equipment +character-item-group-LoadoutReporterEyes = Reporter Eyewear +character-item-group-LoadoutReporterGloves = Reporter Gloves +character-item-group-LoadoutReporterHead = Reporter Headgear +character-item-group-LoadoutReporterId = Reporter Id +character-item-group-LoadoutReporterNeck = Reporter Neckwear +character-item-group-LoadoutReporterMask = Reporter Masks +character-item-group-LoadoutReporterOuter = Reporter Outerwear +character-item-group-LoadoutReporterShoes = Reporter Shoes +character-item-group-LoadoutReporterUniforms = Reporter Uniforms # Traits - Languages character-item-group-TraitsLanguagesBasic = Basic Languages diff --git a/Resources/Locale/en-US/loadouts/jobs/engineering.ftl b/Resources/Locale/en-US/loadouts/jobs/engineering.ftl deleted file mode 100644 index bf00def52e4..00000000000 --- a/Resources/Locale/en-US/loadouts/jobs/engineering.ftl +++ /dev/null @@ -1,5 +0,0 @@ -loadout-name-LoadoutEngineeringChickenSuit = eggmospheric technician suit -loadout-description-LoadoutEngineeringChickenSuit = For the Eggmos tech who always knows where home is... -loadout-description-LoadoutEngineeringUniformJumpskirtSenior = A skirt fit for the best of the best. -loadout-description-LoadoutEngineeringUniformJumpsuitSenior = A suit fit for the best of the best. -loadout-description-LoadoutEngineeringItemInflatable = A box containing inflatable walls and doors, for quickly patching up breaches. diff --git a/Resources/Locale/en-US/loadouts/jobs/engineering/engineering.ftl b/Resources/Locale/en-US/loadouts/jobs/engineering/engineering.ftl new file mode 100644 index 00000000000..d9e0175fb7c --- /dev/null +++ b/Resources/Locale/en-US/loadouts/jobs/engineering/engineering.ftl @@ -0,0 +1,22 @@ +loadout-name-LoadoutEngineeringChickenSuit = eggmospheric technician suit +loadout-description-LoadoutEngineeringChickenSuit = For the Eggmos tech who always knows where home is... +loadout-description-LoadoutEngineeringUniformJumpskirtSenior = A skirt fit for the best of the best. +loadout-description-LoadoutEngineeringUniformJumpsuitSenior = A suit fit for the best of the best. +loadout-description-LoadoutEngineeringItemInflatable = A box containing inflatable walls and doors, for quickly patching up breaches. + +loadout-name-LoadoutAtmosphericTechnicianBeltUtility = utility belt (empty) +loadout-name-LoadoutAtmosphericTechnicianBeltUtilityAtmos = utility belt (filled, Atmospheric Tools) +loadout-description-LoadoutAtmosphericTechnicianBeltUtilityAtmos = + This standard engineering belt includes a holofan emitter, as well as a gas analyzer instead of a multitool. + +loadout-name-LoadoutChiefEngineerBelt = advanced utility belt (empty) +loadout-name-LoadoutChiefEngineerBeltFilled = advanced utility belt (filled) + +loadout-name-LoadoutSeniorEngineerBeltUtility = utility belt (empty) +loadout-name-LoadoutSeniorEngineerBeltUtilityEngineering = utility belt (filled) +loadout-name-LoadoutSeniorEngineerBeltUtilityAtmos = utility belt (filled, Atmospheric Tools) +loadout-description-LoadoutSeniorEngineerBeltUtilityAtmos = + This standard engineering belt includes a holofan emitter, as well as a gas analyzer instead of a multitool. + +loadout-name-LoadoutEngineeringBeltUtilityAtmos = utility belt (filled, Atmospheric Tools) + diff --git a/Resources/Locale/en-US/loadouts/jobs/engineering/uncategorized.ftl b/Resources/Locale/en-US/loadouts/jobs/engineering/uncategorized.ftl new file mode 100644 index 00000000000..1831174bd46 --- /dev/null +++ b/Resources/Locale/en-US/loadouts/jobs/engineering/uncategorized.ftl @@ -0,0 +1 @@ +loadout-name-LoadoutEngineeringHeadHardhatWhite = hardhat (colorable) diff --git a/Resources/Locale/en-US/loadouts/jobs/heads/captain.ftl b/Resources/Locale/en-US/loadouts/jobs/heads/captain.ftl index 27069b6ff88..1cb2a615991 100644 --- a/Resources/Locale/en-US/loadouts/jobs/heads/captain.ftl +++ b/Resources/Locale/en-US/loadouts/jobs/heads/captain.ftl @@ -10,3 +10,6 @@ loadout-description-LoadoutCommandCapHatCapcap = The Captain's cap, pretty nice. loadout-description-LoadoutCommandCapHatBeret = The Captain's beret, very nice. loadout-description-LoadoutCommandCapMaskGas = Why would the captain need this? I don't know, but it looks cool. loadout-description-LoadoutCommandCapItemDrinkFlask = The finest of flasks, for the finest of drinks. + +loadout-name-LoadoutCaptainDrinkFlask = captain's drink flask (colorable) +loadout-name-LoadoutCaptainGlovesInspection = inspection gloves (colorable) diff --git a/Resources/Locale/en-US/loadouts/jobs/heads/headOfPersonnel.ftl b/Resources/Locale/en-US/loadouts/jobs/heads/headOfPersonnel.ftl index 8dc606f65dd..5c717e95839 100644 --- a/Resources/Locale/en-US/loadouts/jobs/heads/headOfPersonnel.ftl +++ b/Resources/Locale/en-US/loadouts/jobs/heads/headOfPersonnel.ftl @@ -2,3 +2,5 @@ loadout-description-LoadoutCommandHOPNeckMantle = To show who has the authority loadout-description-LoadoutCommandHOPNeckCloak = To really show who has the authority around here. loadout-description-LoadoutCommandHOPBackIan = A backpack that looks like Ian, how cute! loadout-description-LoadoutCommandHOPHatCap = The HOP's cap, pretty nice. + +loadout-name-LoadoutHeadOfPersonnelGlovesInspection = inspection gloves (colorable) diff --git a/Resources/Locale/en-US/loadouts/jobs/logistics/salvageSpecialist.ftl b/Resources/Locale/en-US/loadouts/jobs/logistics/salvageSpecialist.ftl new file mode 100644 index 00000000000..973c2f23711 --- /dev/null +++ b/Resources/Locale/en-US/loadouts/jobs/logistics/salvageSpecialist.ftl @@ -0,0 +1,14 @@ +loadout-name-LoadoutSalvageBackpackBackpack = salvage backpack (colorable) +loadout-name-LoadoutSalvageBackpackSatchel = salvage satchel (colorable) +loadout-name-LoadoutSalvageBackpackDuffel = salvage duffelbag (colorable) +loadout-name-LoadoutSalvageBeltMilitaryWebbing = military webbing (colorable) +loadout-name-LoadoutSalvageWeaponsCombatKnife = combat knife (colorable) +loadout-name-LoadoutSalvageWeaponsKitchenKnife = kitchen knife (colorable) +loadout-name-LoadoutSalvageWeaponsSurvivalKnife = survival knife (colorable) +loadout-name-LoadoutSalvageWeaponsKukriKnife = kukri (colorable) +loadout-name-LoadoutSalvageWeaponsCleaver = cleaver (colorable) +loadout-name-LoadoutSalvageWeaponsThrowingKnife = throwing knives (x3, colorable) +loadout-name-LoadoutSalvageWeaponsMachete = machete (colorable) +loadout-name-LoadoutSalvageWeaponsCutlass = cutlass (colorable) +loadout-name-LoadoutSalvageWeaponsKatana = katana (colorable) +loadout-name-LoadoutSalvageWeaponsWakizashi = wakizashi (colorable) diff --git a/Resources/Locale/en-US/loadouts/jobs/medical.ftl b/Resources/Locale/en-US/loadouts/jobs/medical.ftl deleted file mode 100644 index c016232ceea..00000000000 --- a/Resources/Locale/en-US/loadouts/jobs/medical.ftl +++ /dev/null @@ -1,3 +0,0 @@ -loadout-description-LoadoutMedicalUniformJumpskirtSenior = A skirt fit for the best of the best. -loadout-description-LoadoutMedicalUniformJumpsuitSenior = A suit fit for the best of the best. -loadout-description-LoadoutMedicalHeadBeretSeniorPhysician = A beret fit for the best of the best. diff --git a/Resources/Locale/en-US/loadouts/jobs/medical/medical.ftl b/Resources/Locale/en-US/loadouts/jobs/medical/medical.ftl new file mode 100644 index 00000000000..247f95edda9 --- /dev/null +++ b/Resources/Locale/en-US/loadouts/jobs/medical/medical.ftl @@ -0,0 +1,19 @@ +loadout-description-LoadoutMedicalUniformJumpskirtSenior = A skirt fit for the best of the best. +loadout-description-LoadoutMedicalUniformJumpsuitSenior = A suit fit for the best of the best. +loadout-description-LoadoutMedicalHeadBeretSeniorPhysician = A beret fit for the best of the best. + +loadout-name-LoadoutMedicalDoctorBeltMedical = medical belt (empty) +loadout-name-LoadoutMedicalDoctorBeltMedicalFilled = medical belt (filled) +loadout-name-LoadoutMedicalDoctorBeltMedicalAdvancedFilled = medical belt (filled, advanced) +loadout-description-LoadoutMedicalDoctorBeltMedicalAdvancedFilled = + The standard alotment of topical medicines in this pouch have been replaced with their advanced varieties, such as medicated sutures and regenerative mesh. + +loadout-name-LoadoutChiefMedicalOfficerBeltMedical = medical belt (empty) +loadout-name-LoadoutChiefMedicalOfficerBeltMedicalAdvancedFilled = medical belt (filled, advanced) +loadout-description-LoadoutChiefMedicalOfficerBeltMedicalAdvancedFilled = + The standard alotment of topical medicines in this pouch have been replaced with their advanced varieties, such as medicated sutures and regenerative mesh. + +loadout-name-LoadoutSeniorPhysicianBeltMedical = medical belt (empty) +loadout-name-LoadoutSeniorPhysicianBeltMedicalAdvancedFilled = medical belt (filled, advanced) +loadout-description-LoadoutSeniorPhysicianBeltMedicalAdvancedFilled = + The standard alotment of topical medicines in this pouch have been replaced with their advanced varieties, such as medicated sutures and regenerative mesh. diff --git a/Resources/Locale/en-US/loadouts/outerClothing.ftl b/Resources/Locale/en-US/loadouts/outerClothing.ftl deleted file mode 100644 index 7dc09f552e0..00000000000 --- a/Resources/Locale/en-US/loadouts/outerClothing.ftl +++ /dev/null @@ -1,5 +0,0 @@ -loadout-description-LoadoutOuterGhostSheet = Spooky... -loadout-description-LoadoutOuterCoatBomberjacket = A sleek bomber jacket. -loadout-description-LoadoutOuterCoatHoodieBlack = A warm hoodie. -loadout-description-LoadoutOuterCoatHoodieGrey = A warm hoodie. -loadout-description-LoadoutOuterCoatWinterCoat = For keeping nice and snug. diff --git a/Resources/Locale/en-US/loadouts/uniform.ftl b/Resources/Locale/en-US/loadouts/uniform.ftl deleted file mode 100644 index b32bd92b3a4..00000000000 --- a/Resources/Locale/en-US/loadouts/uniform.ftl +++ /dev/null @@ -1 +0,0 @@ -loadout-description-LoadoutUniformAncientJumpsuit = The legend of the Greytide. diff --git a/Resources/Locale/en-US/main-menu/main-menu.ftl b/Resources/Locale/en-US/main-menu/main-menu.ftl index ca81befaafe..d5f0c99295f 100644 --- a/Resources/Locale/en-US/main-menu/main-menu.ftl +++ b/Resources/Locale/en-US/main-menu/main-menu.ftl @@ -9,5 +9,6 @@ main-menu-address-label = Server Address: main-menu-join-public-server-button = Join Public Server main-menu-join-public-server-button-tooltip = Cannot connect to public server with a debug build. main-menu-direct-connect-button = Direct Connect +main-menu-go-lobby-button = Connect & Go to Lobby main-menu-options-button = Options main-menu-quit-button = Quit diff --git a/Resources/Locale/en-US/markings/earrings.ftl b/Resources/Locale/en-US/markings/earrings.ftl new file mode 100644 index 00000000000..f4b9095fa58 --- /dev/null +++ b/Resources/Locale/en-US/markings/earrings.ftl @@ -0,0 +1,133 @@ +marking-EarringsStudLeft = Stud Earrings (Left) +marking-EarringsStudLeft-stud_l = Stud Earrings (Left) + +marking-EarringsStudRight = Stud Earrings (Right) +marking-EarringsStudRight-stud_r = Stud Earrings (Right) + +marking-EarringsHeavyLeft = Heavy Earrings (Left) +marking-EarringsHeavyLeft-heavy_l = Heavy Earrings (Left) + +marking-EarringsHeavyRight = Heavy Earrings (Right) +marking-EarringsHeavyRight-heavy_r = Heavy Earrings (Right) + +marking-EarringsDropBasicLeft = Drop Earrings (Left) +marking-EarringsDropBasicLeft-drop_l = Drop Earrings (Left) + +marking-EarringsDropBasicRight = Drop Earrings (Right) +marking-EarringsDropBasicRight-drop_r = Drop Earrings (Right) + +marking-EarringsDropColoredLeft = Colored Drop Earrings (Left) +marking-EarringsDropColoredLeft-drop_colored_tone_1_l = Material +marking-EarringsDropColoredLeft-drop_colored_tone_2_l = Ornament + +marking-EarringsDropColoredRight = Colored Drop Earrings (Right) +marking-EarringsDropColoredRight-drop_colored_tone_1_r = Material +marking-EarringsDropColoredRight-drop_colored_tone_2_r = Ornament + +marking-EarringsDropLongLeft = Long Drop Earrings (Left) +marking-EarringsDropLongLeft-drop_long_tone_1_l = Material +marking-EarringsDropLongLeft-drop_long_tone_2_l = Ornament + +marking-EarringsDropLongRight = Long Drop Earrings (Right) +marking-EarringsDropLongRight-drop_long_tone_1_r = Material +marking-EarringsDropLongRight-drop_long_tone_2_r = Ornament + +marking-EarringsCrescentLeft = Crescent Earrings (Left) +marking-EarringsCrescentLeft-crescent_l = Crescent Earrings (Left) + +marking-EarringsCrescentRight = Crescent Earrings (Right) +marking-EarringsCrescentRight-crescent_r = Crescent Earrings (Right) + +marking-EarringsBangleLeft = Bangle Earrings (Left) +marking-EarringsBangleLeft-bangle_l = Bangle Earrings (Left) + +marking-EarringsBangleRight = Bangle Earrings (Right) +marking-EarringsBangleRight-bangle_r = Bangle Earrings (Right) + +marking-EarringsHoopBasicLeft = Hoop Earrings (Left) +marking-EarringsHoopBasicLeft-hoop_l = Hoop Earrings (Left) + +marking-EarringsHoopBasicRight = Hoop Earrings (Right) +marking-EarringsHoopBasicRight-hoop_r = Hoop Earrings (Right) + +marking-EarringsHoopMiniLeft = Mini Hoop Earrings (Left) +marking-EarringsHoopMiniLeft-hoop_mini_l = Mini Hoop Earrings (Left) + +marking-EarringsHoopMiniRight = Mini Hoop Earrings (Right) +marking-EarringsHoopMiniRight-hoop_mini_r = Mini Hoop Earrings (Right) + +marking-EarringsCrossBasicLeft = Cross Earrings (Left) +marking-EarringsCrossBasicLeft-cross_l = Cross Earrings (Left) + +marking-EarringsCrossBasicRight = Cross Earrings (Right) +marking-EarringsCrossBasicRight-cross_r = Cross Earrings (Right) + +marking-EarringsCrossSaintPeterLeft = St. Peter Cross Earrings (Left) +marking-EarringsCrossSaintPeterLeft-cross_saint_peter_l = St. Peter Cross Earrings (Left) + +marking-EarringsCrossSaintPeterRight = St. Peter Cross Earrings (Right) +marking-EarringsCrossSaintPeterRight-cross_saint_peter_r = St. Peter Cross Earrings (Right) + +marking-EarringsGemstoneBasicLeft = Gemstone Earrings (Left) +marking-EarringsGemstoneBasicLeft-gemstone_tone_1_l = Material +marking-EarringsGemstoneBasicLeft-gemstone_tone_2_l = Ornament + +marking-EarringsGemstoneBasicRight = Gemstone Earrings (Right) +marking-EarringsGemstoneBasicRight-gemstone_tone_1_r = Material +marking-EarringsGemstoneBasicRight-gemstone_tone_2_r = Ornament + +marking-EarringsGemstoneLongLeft = Long Gemstone Earrings (Left) +marking-EarringsGemstoneLongLeft-gemstone_long_tone_1_l = Material +marking-EarringsGemstoneLongLeft-gemstone_long_tone_2_l = Ornament + +marking-EarringsGemstoneLongRight = Long Gemstone Earrings (Right) +marking-EarringsGemstoneLongRight-gemstone_long_tone_1_r = Material +marking-EarringsGemstoneLongRight-gemstone_long_tone_2_r = Ornament + +marking-EarringsGemstoneDoubleLeft = Double Gemstone Earrings (Left) +marking-EarringsGemstoneDoubleLeft-gemstone_double_tone_1_l = Material +marking-EarringsGemstoneDoubleLeft-gemstone_double_tone_2_l = Upper Ornament +marking-EarringsGemstoneDoubleLeft-gemstone_double_tone_3_l = Lower Ornament + +marking-EarringsGemstoneDoubleRight = Double Gemstone Earrings (Right) +marking-EarringsGemstoneDoubleRight-gemstone_double_tone_1_r = Material +marking-EarringsGemstoneDoubleRight-gemstone_double_tone_2_r = Upper Ornament +marking-EarringsGemstoneDoubleRight-gemstone_double_tone_3_r = Lower Ornament + +marking-EarringsDangleBasicLeft = Dangle Earrings (Left) +marking-EarringsDangleBasicLeft-dangle_tone_1_l = Material +marking-EarringsDangleBasicLeft-dangle_tone_2_l = Ornament + +marking-EarringsDangleBasicRight = Dangle Earrings (Right) +marking-EarringsDangleBasicRight-dangle_tone_1_r = Material +marking-EarringsDangleBasicRight-dangle_tone_2_r = Ornament + +marking-EarringsDangleLongLeft = Long Dangle Earrings (Left) +marking-EarringsDangleLongLeft-dangle_long_tone_1_l = Material +marking-EarringsDangleLongLeft-dangle_long_tone_2_l = Ornament + +marking-EarringsDangleLongRight = Long Dangle Earrings (Right) +marking-EarringsDangleLongRight-dangle_long_tone_1_r = Material +marking-EarringsDangleLongRight-dangle_long_tone_2_r = Ornament + +marking-EarringsEightLeft = Eight Earrings (Left) +marking-EarringsEightLeft-eight_l = Eight Earrings (Left) + +marking-EarringsEightRight = Eight Earrings (Right) +marking-EarringsEightRight-eight_r = Eight Earrings (Right) + +marking-EarringsCrystalBasicLeft = Crystal Earrings (Left) +marking-EarringsCrystalBasicLeft-crystal_tone_1_l = Material +marking-EarringsCrystalBasicLeft-crystal_tone_2_l = Ornament + +marking-EarringsCrystalBasicRight = Crystal Earrings (Right) +marking-EarringsCrystalBasicRight-crystal_tone_1_r = Material +marking-EarringsCrystalBasicRight-crystal_tone_2_r = Ornament + +marking-EarringsCrystalLongLeft = Long Crystal Earrings (Left) +marking-EarringsCrystalLongLeft-crystal_long_tone_1_l = Material +marking-EarringsCrystalLongLeft-crystal_long_tone_2_l = Ornament + +marking-EarringsCrystalLongRight = Long Crystal Earrings (Right) +marking-EarringsCrystalLongRight-crystal_long_tone_1_r = Material +marking-EarringsCrystalLongRight-crystal_long_tone_2_r = Ornament diff --git a/Resources/Locale/en-US/markings/face.ftl b/Resources/Locale/en-US/markings/face.ftl new file mode 100644 index 00000000000..50fb935bef6 --- /dev/null +++ b/Resources/Locale/en-US/markings/face.ftl @@ -0,0 +1,92 @@ +marking-FaceBindi = Bindi +marking-FaceBindi-bindi = Bindi + +marking-FaceFullblush = Full Blush +marking-FaceFullblush-fullblush = Full Blush + +marking-FaceCheekspotRight = Cheek Spot (Right) +marking-FaceCheekspotRight-cheekspot_r = Cheek Spot (Right) + +marking-FaceCheekspotLeft = Cheek Spot (Left) +marking-FaceCheekspotLeft-cheekspot_l = Cheek Spot (Left) + +marking-FaceChesireRight = Chesire Grin (Right) +marking-FaceChesireRight-chesire_r = Chesire Grin (Right) + +marking-FaceChesireLeft = Chesire Grin (Left) +marking-FaceChesireLeft-chesire_l = Chesire Grin (Left) + +marking-FaceCrowRight = Crow's Feet (Right) +marking-FaceCrowRight-crow_r = Crow's Feet (Right) + +marking-FaceCrowLeft = Crow's Feet (Left) +marking-FaceCrowLeft-crow_l = Crow's Feet (Left) + +marking-FaceEarRight = Ear Cover (Right) +marking-FaceEarRight-ear_r = Ear Cover (Right) + +marking-FaceEarLeft = Ear Cover (Left) +marking-FaceEarLeft-ear_l = Ear Cover (Left) + +marking-FaceEyebrowRight = Eyebrow (Right) +marking-FaceEyebrowRight-eyebrow_r = Eyebrow (Right) + +marking-FaceEyebrowLeft = Eyebrow (Left) +marking-FaceEyebrowLeft-eyebrow_l = Eyebrow (Left) + +marking-FaceEyebrows = Eyebrows +marking-FaceEyebrows-eyebrows = Eyebrows + +marking-FaceEyecornerRight = Eye Corner (Right) +marking-FaceEyecornerRight-eyecorner_r = Eye Corner (Right) + +marking-FaceEyecornerLeft = Eye Corner (Left) +marking-FaceEyecornerLeft-eyecorner_l = Eye Corner (Left) + +marking-FaceEyelashRight = Eyelash (Right) +marking-FaceEyelashRight-eyelash_r = Eyelash (Right) + +marking-FaceEyelashLeft = Eyelash (Left) +marking-FaceEyelashLeft-eyelash_l = Eyelash (Left) + +marking-FaceEyestripe = Eye Stripe +marking-FaceEyestripe-eyestripe = Eye Stripe + +marking-FaceLipcornerRight = Lip Corner (Right) +marking-FaceLipcornerRight-lipcorner_r = Lip Corner (Right) + +marking-FaceLipcornerLeft = Lip Corner (Left) +marking-FaceLipcornerLeft-lipcorner_l = Lip Corner (Left) + +marking-FaceGlabella = Glabella +marking-FaceGlabella-blabella = Glabella + +marking-FaceLowercheekRight = Lower Cheek (Right) +marking-FaceLowercheekRight-lowercheek_r = Lower Cheek (Right) + +marking-FaceLowercheekLeft = Lower Cheek (Left) +marking-FaceLowercheekLeft-lowercheek_l = Lower Cheek (Left) + +marking-FaceNosetape = Nose Tape +marking-FaceNosetape-nosetape = Nose Tape + +marking-FaceNosetip = Nose Tip +marking-FaceNosetip-nosetip = Nose Tip + +marking-FaceNosestripe = Nose Stripe +marking-FaceNosestripe-nosestripe = Nose Stripe + +marking-FaceUnibrow = Unibrow +marking-FaceUnibrow-unibrow = Unibrow + +marking-FaceNeckSlim = Neck Cover (Slim) +marking-FaceNeckSlim-neck_f = Neck Cover (Slim) + +marking-FaceNeckWide = Neck Cover (Wide) +marking-FaceNeckWide-neck_m = Neck Cover (Wide) + +marking-FaceNeckSlimThick = Neck Cover (Slim Thick) +marking-FaceNeckSlimThick-neck_thick_f = Neck Cover (Slim Thick) + +marking-FaceNeckWideThick = Neck Cover (Wide Thick) +marking-FaceNeckWideThick-neck_thick_m = Neck Cover (Wide Thick) diff --git a/Resources/Locale/en-US/markings/makeup.ftl b/Resources/Locale/en-US/markings/makeup.ftl index 24ca3a10b7d..d01f5908661 100644 --- a/Resources/Locale/en-US/markings/makeup.ftl +++ b/Resources/Locale/en-US/markings/makeup.ftl @@ -4,11 +4,11 @@ marking-MakeupLips = Lips marking-MakeupBlush-blush = Blush marking-MakeupBlush = Blush -marking-MakeupNailPolishLeft-nail_polish_l = Nail Polish (Left) -marking-MakeupNailPolishLeft = Nail Polish (Left) +marking-MakeupNailPolishLeft-nail_polish_l = Left Nail Polish +marking-MakeupNailPolishLeft = Left Nail Polish -marking-MakeupNailPolishRight-nail_polish_r = Nail Polish (Right) -marking-MakeupNailPolishRight = Nail Polish (Right) +marking-MakeupNailPolishRight-nail_polish_r = Right Nail Polish +marking-MakeupNailPolishRight = Right Nail Polish marking-MakeupMothBlush-moth_blush = Moth Blush marking-MakeupMothBlush = Moth Blush diff --git a/Resources/Locale/en-US/markings/tattoos.ftl b/Resources/Locale/en-US/markings/tattoos.ftl index a3d1d1ef686..078b6fd7ca7 100644 --- a/Resources/Locale/en-US/markings/tattoos.ftl +++ b/Resources/Locale/en-US/markings/tattoos.ftl @@ -27,3 +27,9 @@ marking-TattooEyeRight = Right Eye marking-TattooEyeLeft-tattoo_eye_l = Left Eye marking-TattooEyeLeft = Left Eye + +marking-TattooEyeArachneRight-tattoo_eye_arachne_r = Right Arachne Eye +marking-TattooEyeArachneRight = Right Arachne Eye + +marking-TattooEyeArachneLeft-tattoo_eye_arachne_l = Left Arachne Eye +marking-TattooEyeArachneLeft = Left Arachne Eye diff --git a/Resources/Locale/en-US/markings/wrist.ftl b/Resources/Locale/en-US/markings/wrist.ftl new file mode 100644 index 00000000000..52ee3bac4d8 --- /dev/null +++ b/Resources/Locale/en-US/markings/wrist.ftl @@ -0,0 +1,49 @@ +marking-WristBraceletRight = Right Bracelet +marking-WristBraceletRight-bracelet_r = Right Bracelet + +marking-WristBraceletLeft = Left Bracelet +marking-WristBraceletLeft-bracelet_l = Left Bracelet + +marking-WristBraceletArmRight = Right Arm Bracelet +marking-WristBraceletArmRight-bracelet_arm_r = Right Arm Bracelet + +marking-WristBraceletArmLeft = Left Arm Bracelet +marking-WristBraceletArmLeft-bracelet_arm_l = Left Arm Bracelet + +marking-WristWatchRight = Right Watch +marking-WristWatchRight-watch_r = Right Watch + +marking-WristWatchLeft = Left Watch +marking-WristWatchLeft-watch_l = Left Watch + +marking-WristWatchSilverRight = Right Silver Watch +marking-WristWatchSilverRight-watch_silver_r = Right Silver Watch + +marking-WristWatchSilverLeft = Left Silver Watch +marking-WristWatchSilverLeft-watch_silver_l = Left Silver Watch + +marking-WristWatchGoldRight = Right Gold Watch +marking-WristWatchGoldRight-watch_gold_r = Right Gold Watch + +marking-WristWatchGoldLeft = Left Gold Watch +marking-WristWatchGoldLeft-watch_gold_l = Left Gold Watch + +marking-WristWatchHoloRight = Right Holographic Watch +marking-WristWatchHoloRight-watch_holo_r = Right Holographic Watch + +marking-WristWatchHoloLeft = Left Holographic Watch +marking-WristWatchHoloLeft-watch_holo_l = Left Holographic Watch + +marking-WristWatchLeatherRight = Right Leather Watch +marking-WristWatchLeatherRight-watch_leather_r = Right Leather Watch + +marking-WristWatchLeatherLeft = Left Leather Watch +marking-WristWatchLeatherLeft-watch_leather_l = Left Leather Watch + +marking-WristWatchColorableRight = Right Watch (Colorable) +marking-WristWatchColorableRight-watch_colorable_r_tone_1 = Strap +marking-WristWatchColorableRight-watch_colorable_r_tone_2 = Watch Face + +marking-WristWatchColorableLeft = Left Watch (Colorable) +marking-WristWatchColorableLeft-watch_colorable_l_tone_1 = Strap +marking-WristWatchColorableLeft-watch_colorable_l_tone_2 = Watch Face diff --git a/Resources/Locale/en-US/medical/components/health-analyzer-component.ftl b/Resources/Locale/en-US/medical/components/health-analyzer-component.ftl index 97af7590395..49f3019bce3 100644 --- a/Resources/Locale/en-US/medical/components/health-analyzer-component.ftl +++ b/Resources/Locale/en-US/medical/components/health-analyzer-component.ftl @@ -48,3 +48,4 @@ health-analyzer-window-scan-mode-active = Active health-analyzer-window-scan-mode-inactive = Inactive health-analyzer-popup-scan-target = {CAPITALIZE(THE($user))} is trying to scan you! +health-analyzer-window-return-button-text = < Return diff --git a/Resources/Locale/en-US/medical/surgery/surgery-tools.ftl b/Resources/Locale/en-US/medical/surgery/surgery-tools.ftl new file mode 100644 index 00000000000..75b48e776f0 --- /dev/null +++ b/Resources/Locale/en-US/medical/surgery/surgery-tools.ftl @@ -0,0 +1,9 @@ +surgery-tool-turn-on = Turn it on first! +surgery-tool-reload = Reload it first! +surgery-tool-match-light = Light it first! +surgery-tool-match-replace = Get a new match! +surgery-tool-examinable-verb-text = Surgery Tool +surgery-tool-examinable-verb-message = Examine the uses of this tool in surgeries. +surgery-tool-header = This can be used in surgeries as: +surgery-tool-unlimited = - {$tool} at [color={$color}]{$speed}x[/color] speed +surgery-tool-used = - {$tool} at [color={$color}]{$speed}x[/color] speed, [color=red]then gets used up[/color] diff --git a/Resources/Locale/en-US/mood/mood.ftl b/Resources/Locale/en-US/mood/mood.ftl index fbd41fed123..aa348ce6274 100644 --- a/Resources/Locale/en-US/mood/mood.ftl +++ b/Resources/Locale/en-US/mood/mood.ftl @@ -55,6 +55,9 @@ mood-effect-CultFocused = Dark Gods, grant me strength! mood-effect-TraitSanguine = I have nothing to worry about. I'm sure everything will turn out well in the end! +mood-effect-HeirloomSecure = My heirloom is safe, and with it the memories of the ones before me. +mood-effect-HeirloomLost = I can't seem to find my heirloom, how will the past be safe now? + # Addictions mood-effect-LotoTranscendence = I CAN SEE ALL THAT IS, ALL THAT WILL EVER BE, AND ALL THAT EVER WAS. ALL OF CREATION HAS OPENED TO MY MIND! @@ -68,6 +71,8 @@ mood-effect-NicotineBenefit = mood-effect-NicotineWithdrawal = I could really go for a smoke right now. +# Surgery +mood-effect-SurgeryPain = The surgery hurts. # Drugs mood-effect-EthanolBenefit = I feel so relaxed from drinking. diff --git a/Resources/Locale/en-US/paint/paint.ftl b/Resources/Locale/en-US/paint/paint.ftl new file mode 100644 index 00000000000..200b1f6e3f3 --- /dev/null +++ b/Resources/Locale/en-US/paint/paint.ftl @@ -0,0 +1,8 @@ +paint-success = {THE($target)} has been covered in paint! +paint-failure = Can't cover {THE($target)} in paint! +paint-failure-painted = {THE($target)} is already covered in paint! +paint-empty = {THE($used)} is empty! +paint-removed = You clean off the paint! +paint-closed = You must open {THE($used)} first! +paint-verb = Paint +paint-remove-verb = Remove Paint diff --git a/Resources/Locale/en-US/preferences/ui/humanoid-profile-editor.ftl b/Resources/Locale/en-US/preferences/ui/humanoid-profile-editor.ftl index e4588407d3c..04a4aeb816c 100644 --- a/Resources/Locale/en-US/preferences/ui/humanoid-profile-editor.ftl +++ b/Resources/Locale/en-US/preferences/ui/humanoid-profile-editor.ftl @@ -94,7 +94,15 @@ humanoid-profile-editor-loadouts-remove-unusable-button = Remove {$count -> humanoid-profile-editor-loadouts-remove-unusable-button-tooltip = If you click this button, all loadouts that your current character setup cannot use will be removed. You will be asked for confirmation before the loadouts are removed. -humanoid-profile-editor-loadouts-no-loadouts = No loadouts foundtime. +humanoid-profile-editor-loadouts-no-loadouts = No loadouts found. +humanoid-profile-editor-loadouts-customize = Customize +humanoid-profile-editor-loadouts-customize-name = Name +humanoid-profile-editor-loadouts-customize-description = Description +humanoid-profile-editor-loadouts-customize-color = Color tint +humanoid-profile-editor-loadouts-customize-save = Save +humanoid-profile-editor-loadouts-guidebook-button-tooltip = Click for more info +humanoid-profile-editor-loadouts-heirloom = Heirloom +humanoid-profile-editor-loadouts-heirloom-tooltip = Whichever loadouts you choose to be your potential heirloom will be randomly picked from on spawn. humanoid-profile-editor-markings-tab = Markings humanoid-profile-editor-flavortext-tab = Description diff --git a/Resources/Locale/en-US/research/technologies.ftl b/Resources/Locale/en-US/research/technologies.ftl index fe7293d8481..b4d14468aa2 100644 --- a/Resources/Locale/en-US/research/technologies.ftl +++ b/Resources/Locale/en-US/research/technologies.ftl @@ -63,7 +63,9 @@ research-technology-advanced-entertainment = Advanced Entertainment research-technology-audio-visual-communication = A/V Communication research-technology-faux-astro-tiles = Faux Astro-Tiles research-technology-biochemical-stasis = Biochemical Stasis -research-technology-mechanized-treatment = Mechanized Treatment +research-technology-advanced-treatment = Advanced Treatment +research-technology-high-end-surgery = High End Surgical Tools +research-technology-cybernetic-enhancements = Cybernetic Enhancements research-technology-robotic-cleanliness = Robotic Cleanliness research-technology-advanced-cleaning = Advanced Cleaning research-technology-meat-manipulation = Meat Manipulation diff --git a/Resources/Locale/en-US/store/uplink-catalog.ftl b/Resources/Locale/en-US/store/uplink-catalog.ftl index e1b9776deb8..2ac91d171eb 100644 --- a/Resources/Locale/en-US/store/uplink-catalog.ftl +++ b/Resources/Locale/en-US/store/uplink-catalog.ftl @@ -9,7 +9,7 @@ uplink-pistol-cobra-name = Cobra uplink-pistol-cobra-desc = A rugged, robust operator handgun with inbuilt silencer. Uses pistol magazines (.25 caseless). uplink-rifle-mosin-name = Surplus Rifle -uplink-rifle-mosin-desc = A bolt action service rifle that has seen many wars. Not modern by any standard, hand loaded, and terrible recoil, but it is cheap. +uplink-rifle-mosin-desc = A bolt action service rifle that has seen many wars. Not modern by any standard, hand loaded, and terrible recoil, but it is cheap. The attached bayonet allows it to be used as an improvised spear. uplink-esword-name = Energy Sword uplink-esword-desc = A very dangerous energy sword that can reflect shots. Can be stored in pockets when turned off. Makes a lot of noise when used or turned on. @@ -26,6 +26,9 @@ uplink-fire-axe-flaming-desc = A classic-style weapon infused with advanced atmo uplink-gloves-north-star-name = Gloves of the North Star uplink-gloves-north-star-desc = A pair of gloves that reduce your punching cooldown drastically, allowing you to beat people to death in a flurry of punches. +uplink-emp-flashlight-name = Emp Flashlight +uplink-emp-flashlight-desc = A rechargeable device disguised as a flashlight designed to disrupt electronic systems. Useful for disrupting communications, security's energy weapons, and APCs when you're in a tight spot. + # Explosives uplink-explosive-grenade-name = Explosive Grenade uplink-explosive-grenade-desc = A simplistic grenade with a three-and-a-half-second long fuse that is geared towards injuring personnel. Causes minimal hull damage. diff --git a/Resources/Locale/en-US/surgery/surgery-popup.ftl b/Resources/Locale/en-US/surgery/surgery-popup.ftl new file mode 100644 index 00000000000..78656060eac --- /dev/null +++ b/Resources/Locale/en-US/surgery/surgery-popup.ftl @@ -0,0 +1,55 @@ +surgery-popup-step-SurgeryStepOpenIncisionScalpel = {$user} is making an incision on {$target}'s {$part}. +surgery-popup-step-SurgeryStepClampBleeders = {$user} is clamping the bleeders on {$target}'s {$part}. +surgery-popup-step-SurgeryStepRetractSkin = {$user} is retracting the skin on {$target}'s {$part}. +surgery-popup-step-SurgeryStepSawBones = {$user} is sawing through the bones on {$target}'s {$part}. +surgery-popup-step-SurgeryStepPriseOpenBones = {$user} is prising the bones open on {$target}'s {$part}. +surgery-popup-step-SurgeryStepCloseBones = {$user} is closing the bones on {$target}'s {$part}. +surgery-popup-step-SurgeryStepMendRibcage = {$user} is mending the ribcage on {$target}'s {$part}. +surgery-popup-step-SurgeryStepCloseIncision = {$user} is closing the incision on {$target}'s {$part}. + +surgery-popup-step-SurgeryStepInsertFeature = {$user} is inserting something onto {$target}'s {$part}! +surgery-popup-procedure-SurgeryAttachHead-step-SurgeryStepInsertFeature = {$user} is attaching a head onto {$target}'s {$part}! +surgery-popup-procedure-SurgeryAttachLeftArm-step-SurgeryStepInsertFeature = {$user} is attaching a left arm onto {$target}'s {$part}! +surgery-popup-procedure-SurgeryAttachRightArm-step-SurgeryStepInsertFeature = {$user} is attaching a right arm onto {$target}'s {$part}! +surgery-popup-procedure-SurgeryAttachLeftLeg-step-SurgeryStepInsertFeature = {$user} is attaching a left leg onto {$target}'s {$part}! +surgery-popup-procedure-SurgeryAttachRightLeg-step-SurgeryStepInsertFeature = {$user} is attaching a right leg onto {$target}'s {$part}! +surgery-popup-procedure-SurgeryAttachLeftHand-step-SurgeryStepInsertFeature = {$user} is attaching a left hand onto {$target}'s {$part}! +surgery-popup-procedure-SurgeryAttachRightHand-step-SurgeryStepInsertFeature = {$user} is attaching a right hand onto {$target}'s {$part}! +surgery-popup-procedure-SurgeryAttachLeftFoot-step-SurgeryStepInsertFeature = {$user} is attaching a left foot onto {$target}'s {$part}! +surgery-popup-procedure-SurgeryAttachRightFoot-step-SurgeryStepInsertFeature = {$user} is attaching a right foot onto {$target}'s {$part}! +surgery-popup-procedure-SurgeryAttachLegs-step-SurgeryStepInsertFeature = {$user} is attaching legs onto {$target}'s {$part}! +surgery-popup-procedure-SurgeryAttachHands-step-SurgeryStepInsertFeature = {$user} is attaching hands onto {$target}'s {$part}! +surgery-popup-procedure-SurgeryAttachFeet-step-SurgeryStepInsertFeature = {$user} is attaching feet onto {$target}'s {$part}! + +surgery-popup-step-SurgeryStepSealWounds = {$user} is sealing the wounds on {$target}'s {$part}. +surgery-popup-step-SurgeryStepSawFeature = {$user} is sawing through the bones on {$target}'s {$part}. +surgery-popup-step-SurgeryStepClampInternalBleeders = {$user} is clamping the internal bleeders on {$target}'s {$part}. +surgery-popup-step-SurgeryStepRemoveFeature = {$user} is amputating {$target}'s {$part}! +surgery-popup-step-SurgeryStepCarefulIncisionScalpel = {$user} is carefully making an incision on {$target}'s {$part}. +surgery-popup-step-SurgeryStepRepairBruteTissue = {$user} is repairing the damaged tissues on {$target}'s {$part}! +surgery-popup-step-SurgeryStepRepairBurnTissue = {$user} is repairing the burnt tissues on {$target}'s {$part}! +surgery-popup-step-SurgeryStepSealTendWound = {$user} is sealing the wounds on {$target}'s {$part}. +surgery-popup-step-SurgeryStepInsertItem = {$user} is inserting something into {$target}'s {$part}! +surgery-popup-step-SurgeryStepRemoveItem = {$user} is removing something from {$target}'s {$part}! + +surgery-popup-step-SurgeryStepRemoveOrgan = {$user} is removing an organ from {$target}'s {$part}! +surgery-popup-step-SurgeryStepInsertOrgan = {$user} is inserting an organ into {$target}'s {$part}! + +surgery-popup-procedure-SurgeryRemoveBrain-step-SurgeryStepRemoveOrgan = {$user} is removing the brain from {$target}'s {$part}! +surgery-popup-procedure-SurgeryRemoveHeart-step-SurgeryStepRemoveOrgan = {$user} is removing the heart from {$target}'s {$part}! +surgery-popup-procedure-SurgeryRemoveLiver-step-SurgeryStepRemoveOrgan = {$user} is removing the liver from {$target}'s {$part}! +surgery-popup-procedure-SurgeryRemoveLungs-step-SurgeryStepRemoveOrgan = {$user} is removing the lungs from {$target}'s {$part}! +surgery-popup-procedure-SurgeryRemoveEyes-step-SurgeryStepRemoveOrgan = {$user} is removing the eyes from {$target}'s {$part}! +surgery-popup-procedure-SurgeryRemoveStomach-step-SurgeryStepRemoveOrgan = {$user} is removing the stomach from {$target}'s {$part}! + +surgery-popup-procedure-SurgeryInsertBrain-step-SurgeryStepInsertOrgan = {$user} is inserting a brain into {$target}'s {$part}! +surgery-popup-step-SurgeryStepInsertLungs = {$user} is inserting lungs into {$target}'s {$part}! +surgery-popup-step-SurgeryStepInsertLiver = {$user} is inserting a liver into {$target}'s {$part}! +surgery-popup-step-SurgeryStepInsertEyes = {$user} is inserting eyes into {$target}'s {$part}! +surgery-popup-step-SurgeryStepInsertHeart = {$user} is inserting a heart into {$target}'s {$part}! +surgery-popup-step-SurgeryStepInsertStomach = {$user} is inserting a stomach into {$target}'s {$part}! + +surgery-popup-step-SurgeryStepSealOrganWound = {$user} is sealing the wounds on {$target}'s {$part}. + +surgery-popup-step-SurgeryStepLobotomize = {$user} is lobotomizing {$target}! +surgery-popup-step-SurgeryStepMendBrainTissue = {$user} is mending the brain tissue on {$target}'s {$part}. diff --git a/Resources/Locale/en-US/surgery/surgery-ui.ftl b/Resources/Locale/en-US/surgery/surgery-ui.ftl new file mode 100644 index 00000000000..f09c9dc102a --- /dev/null +++ b/Resources/Locale/en-US/surgery/surgery-ui.ftl @@ -0,0 +1,12 @@ +surgery-ui-window-title = Surgery +surgery-ui-window-require = Requires +surgery-ui-window-parts = < Parts +surgery-ui-window-surgeries = < Surgeries +surgery-ui-window-steps = < Steps +surgery-ui-window-steps-error-skills = You have no surgical skills. +surgery-ui-window-steps-error-table = You need an operating table for this. +surgery-ui-window-steps-error-armor = You need to remove their armor! +surgery-ui-window-steps-error-tools = Missing tools. +surgery-error-laying = They need to be laying down! +surgery-error-self-surgery = You can't perform surgery on yourself! +surgery-part-damage-evaded = {$user} narrowly evaded! diff --git a/Resources/Locale/en-US/traits/misc.ftl b/Resources/Locale/en-US/traits/misc.ftl index 814614f4e2b..9a17c3afc44 100644 --- a/Resources/Locale/en-US/traits/misc.ftl +++ b/Resources/Locale/en-US/traits/misc.ftl @@ -1 +1,3 @@ examine-cybereyes-message = {CAPITALIZE(POSS-ADJ($entity))} eyes shine with a faint inner light. +examine-dermal-armor-message = {CAPITALIZE(POSS-ADJ($entity))} skin seems to be made of a sturdy, yet flexible plastic. +examine-bionic-arm-message = {CAPITALIZE(POSS-ADJ($entity))} limbs emit an ever present faint chirp of servomotors. diff --git a/Resources/Locale/en-US/traits/traits.ftl b/Resources/Locale/en-US/traits/traits.ftl index 921546d466c..97a8150c495 100644 --- a/Resources/Locale/en-US/traits/traits.ftl +++ b/Resources/Locale/en-US/traits/traits.ftl @@ -3,10 +3,15 @@ trait-description-Blindness = You are legally blind, and can't see clearly past trait-examined-Blindness = [color=lightblue]{CAPITALIZE(POSS-ADJ($target))} eyes are glassy and unfocused. It doesn't seem like {SUBJECT($target)} can see you well, if at all.[/color] trait-name-Narcolepsy = Narcolepsy -trait-description-Narcolepsy = You fall asleep randomly +trait-description-Narcolepsy = + Due to a neurological disorder, controlling your sleep-wake cycles is difficult for you. + As a result, you may repeatedly fall asleep for short periods of time throughout the day. trait-name-Pacifist = Pacifist -trait-description-Pacifist = You cannot attack or hurt any living beings. +trait-description-Pacifist = + Either due to moral principles, or as a result of body modification, + you cannot bring yourself to harm or to risk harming any other living being, + regardless of what threat they may pose. trait-name-SelfAware = Self-Aware trait-description-SelfAware = @@ -15,11 +20,16 @@ trait-description-SelfAware = and can gauge if you have toxin or airloss damage. trait-name-LightweightDrunk = Lightweight Drunk -trait-description-LightweightDrunk = Alcohol has a stronger effect on you +trait-description-LightweightDrunk = + Your body exhibits a significantly heightened susceptibility to alcohol intoxication. + As a result, alcohol has a more significant effect on your cognitive functions. + Note: This pertrains solely to the [color=blue]visual effects[/color] of intoxication, and does not affect the alchohol poisoning threshold. trait-name-HeavyweightDrunk = Alcohol Tolerance trait-description-HeavyweightDrunk = - Alcohol is afraid of you. + Your body has developed an exceptionally high level of alcohol tolerance, leaving the very beverages you consume intimidated. + As a result, the effects of alcohol on your cognitive functions are considerably less noticeable. + Note: This pertrains solely to the [color=blue]visual effects[/color] of intoxication, and does not affect the alchohol poisoning threshold. trait-name-LiquorLifeline = Liquor Lifeline trait-description-LiquorLifeline = @@ -28,7 +38,10 @@ trait-description-LiquorLifeline = You also gain the benefits of [color=lightblue]Alcohol Tolerance[/color]. trait-name-Muted = Muted -trait-description-Muted = You can't speak +trait-description-Muted = + Either due to to an abnormality in your body development, or due to some body augmentation, you are unable to utilize spoken language. + Consequently, you may encounter difficulties in communicating with others or using radio communication. + To compensate for this limitation, you have been taught the Galactic Sign Language. trait-name-BloodDeficiency = Blood Deficiency trait-description-BloodDeficiency = @@ -41,22 +54,34 @@ trait-description-Hemophilia = You bleed twice as long, and you have easy bruising, taking 10% more Blunt damage. trait-name-Paracusia = Paracusia -trait-description-Paracusia = You hear sounds that aren't really there +trait-description-Paracusia = + The challenges of deep space life have led you to experience chronic and frequent auditory hallucinations, + causing you to perceive sounds that are not really there. trait-name-PirateAccent = Pirate Accent -trait-description-PirateAccent = You can't stop speaking like a pirate! +trait-description-PirateAccent = + Your interactions with space pirates or a fascination with their culture + have influenced your speech, causing you to communicate in a manner characteristic of pirates. trait-name-Accentless = Accentless -trait-description-Accentless = You don't have the accent that your species would usually have +trait-description-Accentless = + You may have developed in isolation or separation from other repsentatives of your species, + which resulted in you not having the typical accent that your species peers may possess. trait-name-FrontalLisp = Frontal Lisp -trait-description-FrontalLisp = You thpeak with a lithp +trait-description-FrontalLisp = + An abnormality in the development of your speech has caused you to pronounce the "s" and "z" sounds similarly to "th". + In other words, you thpeak with a lithp. trait-name-Stutter = Stutter -trait-description-Stutter = You t-t-talk with a bit of a s-s-stutter... +trait-description-Stutter = + Either due to a speech disorder, or due to anxiety or stress, you often find yourself stuttering while trying to speak. + +trait-name-Southern = Southern Drawl +trait-description-Southern = You have a different way of speakin'. trait-name-Snoring = Snoring -trait-description-Snoring = You will snore while sleeping. +trait-description-Snoring = You tend to snore loudly while sleeping. trait-name-CPRTraining = CPR Training trait-description-CPRTraining = At some point in your life, you have received training in how to perform CPR. @@ -66,13 +91,14 @@ trait-name-Nearsighted = Nearsighted trait-description-Nearsighted = Your eyes are not what they once were, you have difficulty seeing things far away without corrective glasses. trait-name-NormalVisionHarpy = Trichromat Modification -trait-description-NormalVisionHarpy = Your eyes have been modified by means of advanced medicine to see in the standard colors of Red, Green, and Blue. - -trait-name-Southern = Southern Drawl -trait-description-Southern = You have a different way of speakin'. +trait-description-NormalVisionHarpy = + Your eyes have been modified by means of advanced medicine to see in the standard colors of Red, Green, and Blue. + You do not have the usual vision anomaly that your species may possess. trait-name-NormalVision = Trichromat Modification -trait-description-NormalVision = Your eyes have been modified by means of advanced medicine to see in the standard colors of Red, Green, and Blue. +trait-description-NormalVision = + Your eyes have been modified by means of advanced medicine to see in the standard colors of Red, Green, and Blue. + You do not have the usual vision anomaly that your species may possess. trait-name-Thieving = Thieving trait-description-Thieving = @@ -118,24 +144,24 @@ trait-description-GlassJaw = trait-name-HighAdrenaline = High Adrenaline trait-description-HighAdrenaline = Whether by natural causes, genetic or bionic augmentation, you have a more potent adrenal gland. - When injured, your melee attacks deal up to 10% more damage, in addition to the natural bonuses from adrenaline. - The standard adrenaline bonuses to melee damage are up to a 20% increase. + When injured, your melee/throwing attacks deal up to 10% more damage, in addition to the natural bonuses from adrenaline. + The standard adrenaline bonuses to melee/throwing damage are up to a 20% increase. trait-name-AdrenalDysfunction = Adrenal Dysfunction trait-description-AdrenalDysfunction = Your adrenal gland is completely nonfunctional, or potentially missing outright. - Your melee attacks do not benefit from Adrenaline when injured. - The standard adrenaline bonuses to melee damage are up to a 20% increase. + Your melee/throwing attacks do not benefit from Adrenaline when injured. + The standard adrenaline bonuses to melee/throwing damage are up to a 20% increase. trait-name-Masochism = Masochism trait-description-Masochism = Deriving enjoyment from your own pain, you are not as inhibited by it as others. - You ignore the first 10% of stamina damage penalties to your melee attacks. + You ignore the first 10% of stamina damage penalties to your melee/throwing attacks. trait-name-LowPainTolerance = Low Pain Tolerance trait-description-LowPainTolerance = Your tolerance for pain is far below average, and its effects are more inhibiting. - Your melee damage is penalized by up to an additional 15% when taking stamina damage. + Your melee/throwing damage is penalized by up to an additional 15% when taking stamina damage. trait-name-MartialArtist = Martial Artist trait-description-MartialArtist = @@ -201,7 +227,7 @@ trait-description-SnailPaced = trait-name-LightStep = Light Step trait-description-LightStep = - You move with a gentle step, making your footsteps quieter. + You move with a gentle step, which makes your footsteps quieter. trait-name-Swashbuckler = Swashbuckler trait-description-Swashbuckler = @@ -321,7 +347,7 @@ trait-description-AddictionNicotine = trait-name-AnimalFriend = Animal Friend trait-description-AnimalFriend = You have a way with animals. You will never be attacked by animals, unless you attack them first. - + trait-name-Liar = Pathological liar trait-description-Liar = You can hardly bring yourself to tell the truth. Sometimes you lie anyway. @@ -383,8 +409,13 @@ trait-description-DermalArmor = trait-name-CyberEyes = Cyber-Eyes Basic System trait-description-CyberEyes = One or more of your eyes have been replaced with a highly modular mechanical ocular implant. - Their most basic functionality is to provide amelioration for weaknesses of the wearer's natural eyes, - but additionally these implants provide protection from bright flashes of light. + Their most basic functionality is to provide amelioration for weaknesses of the wearer's natural eyes. + The functionality of these implants can be extended by a variety of commercially available modules. + +trait-name-FlareShielding = Cyber-Eyes Flare Shielding +trait-description-FlareShielding = + Your cybereyes have been fitted with a photochromic lense that automatically darkens in response to intense stimuli. + This provides substantial protection from bright flashes of light, such as those from welding arcs. trait-name-CyberEyesSecurity = Cyber-Eyes SecHud trait-description-CyberEyesSecurity = @@ -407,3 +438,42 @@ trait-description-CyberEyesOmni = trait-name-ShadowkinBlackeye = Blackeye trait-description-ShadowkinBlackeye = You lose your special Shadowkin powers, in return for some points. + +trait-name-DispelPower = Normality Projection +trait-description-DispelPower = + Your Mentalic abilities include the power to enforce normality upon Noospheric phenomena. + This power, commonly known as "Dispel", allows the user to destroy otherworldly entities with their mind, + or to immediately end psychic effects. + +trait-name-MetapsionicPower = Metapsion +trait-description-MetapsionicPower = + You are able to intuitively sense the activation of psionic abilities, as well as send out a 'scanning' pulse + to detect whether or not psions are nearby. This ability has a wide area of effect, and cannot precisely + scan individual entities. Still, it is better than being blind. + +trait-name-XenoglossyPower = Xenoglossy +trait-description-XenoglossyPower = + An advanced form of Telepathy, Xenoglossy is the ability to speak using emotional and metaphysical concepts, + rather than words, to impart meaning directly into the minds of a listener. When speaking using Xenoglossy, a psion can be + universally understood by any entity, who will hear the words as if spoken in one's own native tongue. Additionally, + Xenoglossy grants the ability to divine the underlying emotional meaning from the minds of other speakers, + allowing its user to understand any spoken language as if it was the user's own native tongue. + +trait-name-PsychognomyPower = Psychognomist +trait-description-PsychognomyPower = + A special talent derived from Telepathy, Psychognomy is the ability to read the underlying imprint of telepathic messages. + A Psychognomist can glean additional information from their telepathy, seeing vague outlines of what the source of a message + might be. This information is not precise, and is largely only useful for narrowing down who the source of a message might be. + +trait-name-Redshirt = Redshirt +trait-description-Redshirt = + They said this air would be breathable. + Get in, get out again, and no one gets hurt. + Something is pulling me up the hill. + I look down in my red shirt. + I look down in my red shirt. + +trait-name-BrittleBoneDisease = Osteogenesis Imperfecta +trait-description-BrittleBoneDisease = + Also known as "brittle bone disease", people with this genetic disorder have bones that are easily broken, + often simply by moving. This trait reduces your threshold for critical injury by 50 points. diff --git a/Resources/Locale/en-US/verbs/verb-system.ftl b/Resources/Locale/en-US/verbs/verb-system.ftl index dfb4e621dca..c99f9987cbf 100644 --- a/Resources/Locale/en-US/verbs/verb-system.ftl +++ b/Resources/Locale/en-US/verbs/verb-system.ftl @@ -29,6 +29,7 @@ verb-categories-select-type = Select Type verb-categories-fax = Set Destination verb-categories-power-level = Power Level verb-categories-interaction = Interact +verb-categories-blood-cult = Blood Cult verb-common-toggle-light = Toggle light verb-common-close = Close diff --git a/Resources/Locale/en-US/weapons/melee/melee.ftl b/Resources/Locale/en-US/weapons/melee/melee.ftl index d3318ea2449..0b2ea7150cc 100644 --- a/Resources/Locale/en-US/weapons/melee/melee.ftl +++ b/Resources/Locale/en-US/weapons/melee/melee.ftl @@ -5,3 +5,5 @@ melee-balloon-pop = {CAPITALIZE(THE($balloon))} popped! # BatteryComponent melee-battery-examine = It has enough charge for [color={$color}]{$count}[/color] hits. + +melee-heavy-no-stamina = You are too tired to perform a power attack! diff --git a/Resources/Locale/en-US/weapons/throwing/throwing.ftl b/Resources/Locale/en-US/weapons/throwing/throwing.ftl new file mode 100644 index 00000000000..c7d2a8f663f --- /dev/null +++ b/Resources/Locale/en-US/weapons/throwing/throwing.ftl @@ -0,0 +1,6 @@ +throwing-falloff = The {$item} falls out of you! +throwing-embed-falloff = The {$item} falls out of you! +throwing-embed-remove-alert-owner = {$other} is removing the {$item} stuck on you! + +throwing-examine-embedded = {CAPITALIZE(OBJECT($embedded))} {CONJUGATE-BE($embedded)} [color=teal]embedded[/color] in [bold]{THE($target)}[/bold]. +throwing-examine-embedded-part = {CAPITALIZE(OBJECT($embedded))} {CONJUGATE-BE($embedded)} [color=teal]embedded[/color] in [bold]{THE($target)}[/bold]'s [color=red]{$targetPart}[/color]. diff --git a/Resources/Locale/en-US/white-dream/administration/antag.ftl b/Resources/Locale/en-US/white-dream/administration/antag.ftl new file mode 100644 index 00000000000..8e8a8b2ac07 --- /dev/null +++ b/Resources/Locale/en-US/white-dream/administration/antag.ftl @@ -0,0 +1,2 @@ +admin-verb-text-make-blood-cultist = Make Blood Cultist +admin-verb-make-blood-cultist = Make the target into a blood cultist. diff --git a/Resources/Locale/en-US/white-dream/alerts.ftl b/Resources/Locale/en-US/white-dream/alerts.ftl new file mode 100644 index 00000000000..b7dac60bfed --- /dev/null +++ b/Resources/Locale/en-US/white-dream/alerts.ftl @@ -0,0 +1,2 @@ +alerts-blood-cult-empowered-name = Empowered +alerts-blood-cult-empowered-desc = Blood magic and rune scribing requires much less time to cast and you lose less blood from it. diff --git a/Resources/Locale/en-US/white-dream/cult/gamerule.ftl b/Resources/Locale/en-US/white-dream/cult/gamerule.ftl new file mode 100644 index 00000000000..92fbab3f993 --- /dev/null +++ b/Resources/Locale/en-US/white-dream/cult/gamerule.ftl @@ -0,0 +1,20 @@ +blood-cult-title = The Blood Cult +blood-cult-description = The oldest and strongest emotion of mankind is fear, and the oldest and strongest kind of fear is fear of the unknown. + +roles-antag-blood-cultist-name = Blood cultist +roles-antag-blood-cultist-objective = Summon the Old God Nar'Sie. + +blood-cult-role-greeting = The Geometer of Blood, Nar-Sie, has sent a number of her followers to Space Station. + As a cultist, you have an abundance of cult magics at your disposal, something for all situations. + You must work with your brethren to summon an avatar of your eldritch goddess! + +blood-cult-role-briefing-short = Use '^' to contact other members of your brethren. +blood-cult-role-briefing-rending-locations = The veil can be thorn {$location}, {$coordinates} +blood-cult-role-briefing-emergency-rending = We can draw {$amount} more rending or apocalypse runes! + +blood-cult-condition-win = The Geometer of Blood has successfully summoned their Eldritch Goddess! +blood-cult-condition-draw = Both parties were destroyed. +blood-cult-condition-failure = The crew have managed to stop the rending of reality! + +blood-cultists-list-start = Members of Geometer of Blood were: +blood-cultists-list-name = [color=White]{ $name }[/color] ([color=gray]{ $user }[/color]) diff --git a/Resources/Locale/en-US/white-dream/cult/items/blood-rites.ftl b/Resources/Locale/en-US/white-dream/cult/items/blood-rites.ftl new file mode 100644 index 00000000000..a33c8db8474 --- /dev/null +++ b/Resources/Locale/en-US/white-dream/cult/items/blood-rites.ftl @@ -0,0 +1,5 @@ +blood-rites-stored-blood = It has [color=darkred]{$amount}u. of blood[/color] stored. +blood-rites-not-enough-blood = You don't have enough blood stored. +blood-rites-heal-dead = Only a revive rune can bring back the dead. +blood-rites-no-blood-left = You use the last of drop of blood stored in your blood rites. +blood-rites-heal-no-bloodstream = You can't heal this bloodless creature. diff --git a/Resources/Locale/en-US/white-dream/cult/items/general.ftl b/Resources/Locale/en-US/white-dream/cult/items/general.ftl new file mode 100644 index 00000000000..f3702bb66a1 --- /dev/null +++ b/Resources/Locale/en-US/white-dream/cult/items/general.ftl @@ -0,0 +1,27 @@ +cult-item-component-generic = The item refuses to obey your will. You can't use it. +cult-item-component-attack-fail = The weapon refuses to obey your will. You can't attack with it. +cult-item-component-equip-fail = The armor refuses to obey your will. You can't equip it. +cult-item-component-throw-fail = The weapon refuses to obey your will. You can't throw it. +cult-item-component-block-fail = The shield betrays you! + +soul-shard-try-insert-no-soul = The shard has no soul. +soul-shard-selector-form = Select form. + +ghost-role-information-soul-shard-name = Soul Shard +ghost-role-information-soul-shard-description = Become the servant of The Blood Cult. +ghost-role-information-soul-shard-rules = Take the form of one of the constructs and help your Masters bring their Old Goddess back to the world! + +ghost-role-information-soul-shard-holy-name = Blessed Soul Shard +ghost-role-information-soul-shard-holy-description = Become the servant of crew and help them defeat the cult. +ghost-role-information-soul-shard-holy-rules = Take the form of one of the converted constructs and help the crew stop Geometer of Blood from bringing their Old Goddess back to the world! + +shuttle-curse-cant-activate = Nar'Sien power doesn't seem to work. +shuttle-curse-max-charges = You try to shatter the orb, but it remains as solid as a rock! +shuttle-curse-shuttle-arrived = The shuttle has already arived! You can't delay it anymore. +shuttle-curse-shuttle-not-called = The shuttle has not yet been called. + +shuttle-curse-system-failure = SYSTEM FAILURE +shuttle-curse-success-global = The shuttle will be delayed by {$time} minutes. + +veil-shifter-description = It has {$charges} charges left. +veil-shifter-cant-teleport = Couldn't find a place to teleport you. Try again! diff --git a/Resources/Locale/en-US/white-dream/cult/materials.ftl b/Resources/Locale/en-US/white-dream/cult/materials.ftl new file mode 100644 index 00000000000..6b796265a22 --- /dev/null +++ b/Resources/Locale/en-US/white-dream/cult/materials.ftl @@ -0,0 +1 @@ +materials-runed-metal = runed metal diff --git a/Resources/Locale/en-US/white-dream/cult/runes.ftl b/Resources/Locale/en-US/white-dream/cult/runes.ftl new file mode 100644 index 00000000000..7e166e2b689 --- /dev/null +++ b/Resources/Locale/en-US/white-dream/cult/runes.ftl @@ -0,0 +1,19 @@ +cult-rune-cant-draw = You can not draw rune here! +cult-rune-cant-draw-rending = You have to be near the area where the veil between our Worlds is the thinnest. +cult-rune-started-erasing = Started erasing... +cult-rune-erased = Rune has been erased. +cult-rune-not-enough-cultists = Not enough cultists to perform the ritual! +cult-rune-no-targets = No targets have been found! + +cult-teleport-not-found = No runes found. + +cult-revive-rune-no-charges = Can not perform the revive ritual: no charges left. +cult-revive-rune-already-alive = The target is already alive. + +cult-buff-already-buffed = You are already empowered. + +cult-rending-drawing-finished = The Geometer Of Blood has finished drawing the rune of end {$location}! +cult-rending-target-alive = Can not start the ritual: the target is alive. +cult-rending-already-summoning = Can not start the ritual: it's already in progress. +cult-rending-started = The Geometer Of Blood has started the ritual of Dimensional Rending {$location}! +cult-rending-prevented = Someone has stopped the ritual. diff --git a/Resources/Locale/en-US/white-dream/cult/shuttle-curse.ftl b/Resources/Locale/en-US/white-dream/cult/shuttle-curse.ftl new file mode 100644 index 00000000000..5a31be9c914 --- /dev/null +++ b/Resources/Locale/en-US/white-dream/cult/shuttle-curse.ftl @@ -0,0 +1,11 @@ +shuttle-curse-message-1 = A fuel technician just slit his own throat and begged for death. +shuttle-curse-message-2 = A scan of the shuttle's fuel tank has revealed tainting by a mixture of humanoid innards and teeth. +shuttle-curse-message-3 = A security incident involving a frenzied shuttle worker attacking coworkers with a laser cutter has just been reported as resolved by on-site security. +shuttle-curse-message-4 = A shuttle engineer began screaming 'DEATH IS NOT THE END' and ripped out wires until an arc flash seared off her flesh. +shuttle-curse-message-5 = A shuttle engineer was spotted inside the cockpit, feverishly arranging her innards on the floor in the shape of a rune before expiring. +shuttle-curse-message-6 = A shuttle inspector started laughing madly over the radio and then threw herself into an engine turbine. +shuttle-curse-message-7 = The corpse of an unidentified shuttle worker was found mutilated beyond recognition in the shuttle's main hold, with at least five unique sources of blood on the scene. +shuttle-curse-message-8 = The shuttle dispatcher was found dead with bloody symbols carved into their flesh. +shuttle-curse-message-9 = The shuttle's custodian was found washing the windows with their own blood. +shuttle-curse-message-10 = The shuttle's navigation programming was replaced by a file containing just two words: IT COMES. +shuttle-curse-message-11 = The shuttle's transponder is emitting the encoded message 'FEAR THE OLD BLOOD' in lieu of its assigned identification signal. diff --git a/Resources/Locale/en-US/white-dream/cult/spells.ftl b/Resources/Locale/en-US/white-dream/cult/spells.ftl new file mode 100644 index 00000000000..52fa5939fba --- /dev/null +++ b/Resources/Locale/en-US/white-dream/cult/spells.ftl @@ -0,0 +1,5 @@ +blood-cult-spells-too-many = Too many spells already selected. +blood-cult-no-spells = You have no spells selected. + +blood-cult-select-spells-verb = Prepare blood spells +blood-cult-remove-spells-verb = Remove blood spells diff --git a/Resources/Locale/en-US/white-dream/cult/structures/pylon.ftl b/Resources/Locale/en-US/white-dream/cult/structures/pylon.ftl new file mode 100644 index 00000000000..de81f3a1b8a --- /dev/null +++ b/Resources/Locale/en-US/white-dream/cult/structures/pylon.ftl @@ -0,0 +1 @@ +pylon-placement-another-pylon-nearby = Can't place pylon here as another pylon is nearby. diff --git a/Resources/Locale/en-US/white-dream/cult/structures/timed-factory.ftl b/Resources/Locale/en-US/white-dream/cult/structures/timed-factory.ftl new file mode 100644 index 00000000000..e8728c0285c --- /dev/null +++ b/Resources/Locale/en-US/white-dream/cult/structures/timed-factory.ftl @@ -0,0 +1 @@ +timed-factory-cooldown = The factory is recharging. Time left: {$cooldown} diff --git a/Resources/Locale/en-US/white-dream/name-selector.ftl b/Resources/Locale/en-US/white-dream/name-selector.ftl new file mode 100644 index 00000000000..c7f71045626 --- /dev/null +++ b/Resources/Locale/en-US/white-dream/name-selector.ftl @@ -0,0 +1,2 @@ +name-selector-title = Select a name +name-selector-accept-button = Accept diff --git a/Resources/Locale/ru-RU/entities/objects/tools/empflashlight.ftl b/Resources/Locale/ru-RU/entities/objects/tools/empflashlight.ftl new file mode 100644 index 00000000000..e9ffe8e039d --- /dev/null +++ b/Resources/Locale/ru-RU/entities/objects/tools/empflashlight.ftl @@ -0,0 +1,2 @@ +ent-FlashlightEmp = Фонарик + .desc = Он озаряет путь к свободе. diff --git a/Resources/Locale/ru-RU/store/uplink-catalog.ftl b/Resources/Locale/ru-RU/store/uplink-catalog.ftl new file mode 100644 index 00000000000..5bb4067557f --- /dev/null +++ b/Resources/Locale/ru-RU/store/uplink-catalog.ftl @@ -0,0 +1,2 @@ +uplink-emp-flashlight-name = Электромагнитный фонарик +uplink-emp-flashlight-desc = Замаскированное под фонарик устройство. При ударе выпускает ЭМИ, поражающий электрические устройства. diff --git a/Resources/Maps/Misc/terminal.yml b/Resources/Maps/Misc/terminal.yml index e089814d576..c017bb55426 100644 --- a/Resources/Maps/Misc/terminal.yml +++ b/Resources/Maps/Misc/terminal.yml @@ -3,51 +3,214 @@ meta: postmapinit: false tilemap: 0: Space - 7: FloorAsteroidSand - 29: FloorDark - 38: FloorDarkPlastic - 47: FloorGrass - 76: FloorRGlass - 77: FloorReinforced - 89: FloorSteel - 104: FloorTechMaint - 105: FloorTechMaint2 - 120: Lattice - 121: Plating + 15: FloorBlueCircuit + 17: FloorBrokenWood + 27: FloorDark + 31: FloorDarkMini + 32: FloorDarkMono + 34: FloorDarkPavement + 37: FloorDesert + 40: FloorElevatorShaft + 43: FloorGlass + 49: FloorGrayConcrete + 52: FloorGreenCircuit + 54: FloorHull + 60: FloorLino + 65: FloorOldConcrete + 69: FloorPlanetGrass + 84: FloorSteel + 87: FloorSteelDiagonal + 91: FloorSteelMini + 92: FloorSteelMono + 96: FloorTechMaint + 97: FloorTechMaint2 + 98: FloorTechMaint3 + 110: FloorWood + 112: Lattice + 113: Plating entities: - proto: "" entities: - - uid: 818 + - uid: 1 + components: + - type: MetaData + name: map 30 + - type: Transform + - type: Map + mapPaused: True + - type: PhysicsMap + - type: GridTree + - type: MovedGrids + - type: Broadphase + - type: OccluderTree + - type: LoadedMap + - uid: 2 components: - type: MetaData - name: NT-EM Terminal + name: CentCom Downstairs - type: Transform - parent: invalid + parent: 1 - type: MapGrid chunks: -1,-1: ind: -1,-1 - tiles: AAAAAAAAeQAAAAAAHQAAAAAAWQAAAAAAHQAAAAADBwAAAAAAHQAAAAABWQAAAAACHQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAHQAAAAABWQAAAAADHQAAAAAABwAAAAAAHQAAAAAAWQAAAAADHQAAAAADeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAHQAAAAABWQAAAAACHQAAAAADBwAAAAAAHQAAAAABWQAAAAADHQAAAAADeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAHQAAAAACWQAAAAAAHQAAAAAABwAAAAAAHQAAAAABWQAAAAAAHQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAACWQAAAAADWQAAAAACWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAADTAAAAAAAWQAAAAADWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAACWQAAAAAAWQAAAAAAWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAADWQAAAAACTAAAAAAAWQAAAAADWQAAAAACeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAADWQAAAAACWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAACWQAAAAAATAAAAAAAWQAAAAACWQAAAAACeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAAAWQAAAAADWQAAAAAAWQAAAAACWQAAAAABeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAHQAAAAACWQAAAAABWQAAAAACWQAAAAACWQAAAAABWQAAAAABWQAAAAABeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAHQAAAAABWQAAAAAAWQAAAAAATAAAAAAAWQAAAAACWQAAAAACWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAHQAAAAABWQAAAAAAWQAAAAACWQAAAAAAWQAAAAAAWQAAAAABWQAAAAADWQAAAAADWQAAAAADWQAAAAABWQAAAAABWQAAAAABWQAAAAADWQAAAAABAAAAAAAAeQAAAAAAHQAAAAABWQAAAAABWQAAAAABTAAAAAAAWQAAAAAATAAAAAAAWQAAAAACWQAAAAACWQAAAAACWQAAAAAAWQAAAAABWQAAAAACWQAAAAAAWQAAAAAD - version: 6 - 0,0: - ind: 0,0 - tiles: WQAAAAADWQAAAAADWQAAAAACWQAAAAAAWQAAAAADWQAAAAAAWQAAAAABWQAAAAABWQAAAAACWQAAAAAAWQAAAAABWQAAAAADWQAAAAABeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAACWQAAAAACWQAAAAABWQAAAAABWQAAAAAAeQAAAAAAWQAAAAABWQAAAAACWQAAAAACWQAAAAAAWQAAAAAAWQAAAAADWQAAAAACeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAADWQAAAAAAWQAAAAAAWQAAAAABeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAALwAAAAAALwAAAAAAeQAAAAAAaQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAWQAAAAACWQAAAAADWQAAAAAAWQAAAAACeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwAAAAAALwAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAACWQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwAAAAAALwAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAAAAATQAAAAAAaAAAAAAAaAAAAAAAaQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: GwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAIAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAbgAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAARQAAAAAARQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAARQAAAAAARQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAARQAAAAAAcQAAAAAAcQAAAAAAXAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAARQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAARQAAAAAAcQAAAAAAcQAAAAAAXAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAARQAAAAAARQAAAAAARQAAAAAARQAAAAAARQAAAAAARQAAAAAARQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAARQAAAAAARQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAARQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAARQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAKwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAARQAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAARQAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAXAAAAAAAYAAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAA version: 6 0,-1: ind: 0,-1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAHQAAAAADWQAAAAABHQAAAAAABwAAAAAAHQAAAAABWQAAAAACHQAAAAADeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAHQAAAAACWQAAAAACHQAAAAAABwAAAAAAHQAAAAACWQAAAAADHQAAAAADeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAHQAAAAAAWQAAAAABHQAAAAADBwAAAAAAHQAAAAABWQAAAAAAHQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAHQAAAAADWQAAAAADHQAAAAACBwAAAAAAHQAAAAADWQAAAAACHQAAAAABeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAADWQAAAAABWQAAAAADWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAACTAAAAAAAWQAAAAACWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAADWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAABWQAAAAAATAAAAAAAWQAAAAABWQAAAAABeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAACWQAAAAAAWQAAAAAAWQAAAAACWQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAACWQAAAAAATAAAAAAAWQAAAAADWQAAAAADeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAABWQAAAAACWQAAAAAAWQAAAAAAWQAAAAACeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAADWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAABWQAAAAACWQAAAAACWQAAAAABWQAAAAAAWQAAAAADWQAAAAACeQAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAABWQAAAAADWQAAAAAAWQAAAAADWQAAAAAAWQAAAAACeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAABWQAAAAADWQAAAAADWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAADWQAAAAAAWQAAAAACWQAAAAAAWQAAAAADWQAAAAACWQAAAAADeQAAAAAAAAAAAAAAAAAAAAAAWQAAAAADWQAAAAADWQAAAAABWQAAAAAAWQAAAAAAWQAAAAADWQAAAAADWQAAAAAAWQAAAAABWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAACeQAAAAAAAAAAAAAAAAAAAAAA + tiles: VAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAGwAAAAAAVAAAAAAAcQAAAAAARQAAAAAARQAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAVAAAAAAAcQAAAAAARQAAAAAARQAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAXAAAAAAAcQAAAAAAcQAAAAAARQAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAYAAAAAAAYAAAAAAAcQAAAAAARQAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAXAAAAAAAcQAAAAAAcQAAAAAARQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAARQAAAAAARQAAAAAARQAAAAAARQAAAAAARQAAAAAARQAAAAAARQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAARQAAAAAARQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAGwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAARQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAcQAAAAAARQAAAAAAcQAAAAAAYgAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAGwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAKwAAAAAAVAAAAAAAcQAAAAAARQAAAAAAcQAAAAAAYgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAARQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAXAAAAAAAYAAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAA + version: 6 + 0,0: + ind: 0,0 + tiles: GwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAXAAAAAAAYAAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAARQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAKwAAAAAAVAAAAAAAcQAAAAAARQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAcQAAAAAARQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAARQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAARQAAAAAARQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAVAAAAAAAcQAAAAAARQAAAAAARQAAAAAARQAAAAAARQAAAAAARQAAAAAARQAAAAAARQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAGwAAAAAAXAAAAAAAcQAAAAAAcQAAAAAARQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAGwAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAXAAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAVAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 -1,0: ind: -1,0 - tiles: AAAAAAAAeQAAAAAAHQAAAAACWQAAAAABWQAAAAABWQAAAAADWQAAAAAAWQAAAAAAWQAAAAACWQAAAAAAWQAAAAAAWQAAAAABWQAAAAAAWQAAAAACWQAAAAACWQAAAAADAAAAAAAAeQAAAAAAHQAAAAADHQAAAAADHQAAAAACHQAAAAADHQAAAAACHQAAAAABHQAAAAACeQAAAAAAWQAAAAADWQAAAAAAWQAAAAAAWQAAAAADWQAAAAADWQAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAAAAAAAAAAAAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAALwAAAAAALwAAAAAALwAAAAAAAAAAAAAAAAAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAALwAAAAAALwAAAAAALwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAALwAAAAAALwAAAAAALwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: VAAAAAAAVAAAAAAAVAAAAAAAXAAAAAAAYAAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAARQAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAARQAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAARQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAKwAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAARQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAARQAAAAAARQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAARQAAAAAARQAAAAAARQAAAAAARQAAAAAARQAAAAAARQAAAAAARQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAARQAAAAAAcQAAAAAAcQAAAAAAXAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAIgAAAAAAIgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAXAAAAAAAcQAAAAAAIgAAAAAAIgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAIgAAAAAAIgAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAbgAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAVAAAAAAAKwAAAAAA version: 6 0,-2: ind: 0,-2 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAADWQAAAAABeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAADWQAAAAAATAAAAAAAWQAAAAADWQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAABWQAAAAAAWQAAAAADWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAADTAAAAAAAWQAAAAADWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAABWQAAAAADWQAAAAABWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAA + tiles: VAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAXAAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAYQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAVAAAAAAAcQAAAAAAYgAAAAAAYQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAVAAAAAAAcQAAAAAAYgAAAAAAcQAAAAAAYQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAWwAAAAAAWwAAAAAAWwAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAWwAAAAAAWwAAAAAAWwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAWwAAAAAAWwAAAAAAWwAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAVAAAAAAAWwAAAAAAWwAAAAAAWwAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAVAAAAAAAcQAAAAAARQAAAAAARQAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAcQAAAAAANgAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAGwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAA + version: 6 + 1,-1: + ind: 1,-1 + tiles: cQAAAAAARQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAARQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAbgAAAAAAcQAAAAAARQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAbgAAAAAAbgAAAAAAcQAAAAAARQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAKwAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAKwAAAAAAKwAAAAAAVAAAAAAA + version: 6 + 1,-2: + ind: 1,-2 + tiles: GwAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAARQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAARQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAARQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAA version: 6 -1,-2: ind: -1,-2 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAAAWQAAAAACeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAAAWQAAAAABTAAAAAAAWQAAAAADWQAAAAADeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAABWQAAAAAAWQAAAAABWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAABTAAAAAAAWQAAAAABWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAADWQAAAAADWQAAAAADWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAXAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAWwAAAAAAWwAAAAAAWwAAAAAAVAAAAAAAKwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAWwAAAAAAWwAAAAAAWwAAAAAAVAAAAAAAVAAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAWwAAAAAAWwAAAAAAWwAAAAAAVAAAAAAAVAAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAWwAAAAAAWwAAAAAAWwAAAAAAVAAAAAAAKwAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAcQAAAAAAbgAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAARQAAAAAARQAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAIAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAIAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAKwAAAAAA + version: 6 + -2,-2: + ind: -2,-2 + tiles: cQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAARQAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAARQAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAARQAAAAAAcQAAAAAAGwAAAAAA + version: 6 + -2,-1: + ind: -2,-1 + tiles: cQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAARQAAAAAAcQAAAAAAGwAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAARQAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAEQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAEQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAARQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAARQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAKwAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAKwAAAAAAKwAAAAAAVAAAAAAA + version: 6 + 0,-3: + ind: 0,-3 + tiles: VAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAKwAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAIAAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAIAAAAAAAbgAAAAAAbgAAAAAAKwAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAIAAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAA + version: 6 + -1,-3: + ind: -1,-3 + tiles: cAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAKwAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAVAAAAAAAKwAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAcQAAAAAA + version: 6 + -1,-4: + ind: -1,-4 + tiles: cQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAXAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAXAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAXAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAXAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAA + version: 6 + 1,-3: + ind: 1,-3 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAXAAAAAAAYAAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAKwAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAXAAAAAAAYAAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAA + version: 6 + 0,-4: + ind: 0,-4 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAXAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAXAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAXAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAXAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAXAAAAAAAXAAAAAAAXAAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAA + version: 6 + -1,-5: + ind: -1,-5 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 0,-5: + ind: 0,-5 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAAAAAAAAA + version: 6 + -2,-3: + ind: -2,-3 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAXAAAAAAAYAAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAKwAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAXAAAAAAAYAAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 1,0: + ind: 1,0 + tiles: VAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAYAAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 2,-1: + ind: 2,-1 + tiles: cQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAQQAAAAAAQQAAAAAAQQAAAAAAQQAAAAAAQQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAQQAAAAAAQQAAAAAAQQAAAAAAQQAAAAAAQQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAQQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAYgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYgAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAXAAAAAAAVAAAAAAAKwAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAYAAAAAAA + version: 6 + 2,0: + ind: 2,0 + tiles: VAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYgAAAAAAYgAAAAAAYgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYQAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYQAAAAAAcQAAAAAAbgAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAbgAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 2,-2: + ind: 2,-2 + tiles: VAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAKwAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAKwAAAAAAKwAAAAAAVAAAAAAAXAAAAAAAVAAAAAAAKwAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAA + version: 6 + 2,-3: + ind: 2,-3 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 3,-1: + ind: 3,-1 + tiles: cQAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAPAAAAAAAPAAAAAAAcQAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAVAAAAAAAVAAAAAAAVwAAAAAAVwAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAVAAAAAAAVAAAAAAAVwAAAAAAVwAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAVAAAAAAAVAAAAAAAVwAAAAAAVwAAAAAAVAAAAAAAVAAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 3,-2: + ind: 3,-2 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAAAAAAAAAcAAAAAAA + version: 6 + -2,0: + ind: -2,0 + tiles: VAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAARQAAAAAARQAAAAAARQAAAAAARQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAARQAAAAAARQAAAAAARQAAAAAARQAAAAAARQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAbgAAAAAAGwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAJQAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAJQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAPAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAJQAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAJQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAPAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAPAAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAIgAAAAAAIgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAbgAAAAAAbgAAAAAAIgAAAAAAIgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAARQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAbgAAAAAAIgAAAAAAIgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAARQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAYAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAA + version: 6 + -3,-1: + ind: -3,-1 + tiles: cQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAXAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAXAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAEQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAXAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAKwAAAAAAVAAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAA + version: 6 + -3,0: + ind: -3,0 + tiles: YAAAAAAAYAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAARQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAHwAAAAAAHwAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAHwAAAAAAHwAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAIAAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAGwAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAA + version: 6 + -2,1: + ind: -2,1 + tiles: cQAAAAAAcAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAYAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAYAAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAMQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -3,1: + ind: -3,1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -3,-2: + ind: -3,-2 + tiles: cAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAKwAAAAAAVAAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAKwAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAVAAAAAAAXAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAA + version: 6 + -4,-1: + ind: -4,-1 + tiles: AAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAbgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAGwAAAAAAKwAAAAAAKwAAAAAAKwAAAAAAGwAAAAAAbgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAGwAAAAAAKwAAAAAAKwAAAAAAKwAAAAAAGwAAAAAAbgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAGwAAAAAAKwAAAAAAKwAAAAAAKwAAAAAAGwAAAAAAbgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAbgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAA + version: 6 + -4,-2: + ind: -4,-2 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAA + version: 6 + -4,0: + ind: -4,0 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -3,-3: + ind: -3,-3 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAA + version: 6 + -1,1: + ind: -1,1 + tiles: AAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAKAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAKAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAKAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAYAAAAAAA + version: 6 + 0,1: + ind: 0,1 + tiles: VAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAcQAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAVAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAYAAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAYAAAAAAAYAAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 0,2: + ind: 0,2 + tiles: cQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,2: + ind: -1,2 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcAAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAcQAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAADwAAAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 3,0: + ind: 3,0 + tiles: cQAAAAAAcQAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAGwAAAAAAGwAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAGwAAAAAAcQAAAAAAcQAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcQAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 - type: Broadphase - type: Physics @@ -62,6 +225,7 @@ entities: id: Empty - type: OccluderTree - type: Shuttle + - type: GridPathfinding - type: Gravity gravityShakeSound: !type:SoundPathSpecifier path: /Audio/Effects/alert.ogg @@ -70,848 +234,2487 @@ entities: version: 2 nodes: - node: - angle: -1.5707963267948966 rad color: '#FFFFFFFF' id: Arrows decals: - 226: 8,-18 - 227: 8,-11 - 228: -12,-18 - 229: -12,-11 + 624: 5,-1 + 625: -7,-1 + 626: -1,6 + 631: -1,-28 + 632: 9,-38 + 633: -11,-38 + 634: 9,-46 + 635: -11,-46 + 636: -1,-8 + 637: -1,-15 + 641: -44,-14 + 644: -34,-25 + 649: 43,-14 + 651: 32,-25 - node: angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: Arrows decals: - 230: -10,-18 - 231: -10,-11 - 232: 10,-11 - 233: 10,-18 + 627: -4,-6 + 630: 4,-33 + 638: -42,-1 + 639: -29,-1 + 640: -21,-1 + 643: -42,-23 + 654: -32,-40 + 655: -17,-40 - node: + angle: 3.141592653589793 rad color: '#FFFFFFFF' - id: Bot + id: Arrows decals: - 218: -9,-18 - 219: -13,-18 - 220: -13,-11 - 221: -9,-11 - 222: 7,-18 - 223: 7,-11 - 224: 11,-11 - 225: 11,-18 - 366: 1,8 + 642: -44,-10 + 648: 43,-10 - node: + angle: 4.71238898038469 rad color: '#FFFFFFFF' - id: BotRight + id: Arrows decals: - 369: -5,8 + 628: 2,-6 + 629: -6,-33 + 645: 19,-1 + 646: 27,-1 + 647: 41,-1 + 650: 41,-23 + 652: 30,-40 + 653: 15,-40 - node: + zIndex: 1 color: '#FFFFFFFF' - id: BrickTileDarkLineN + id: Basalt1 decals: - 128: -9,-17 - 129: -10,-17 - 130: -11,-17 - 131: -12,-17 - 132: -13,-17 - 181: 10,-17 - 182: 9,-17 - 183: 8,-17 + 248: 4,-9 - node: + zIndex: 1 color: '#FFFFFFFF' - id: BrickTileDarkLineS + id: Basalt2 decals: - 133: -9,-12 - 134: -10,-12 - 135: -11,-12 - 136: -12,-12 - 137: -13,-12 - 178: 10,-12 - 179: 9,-12 - 180: 8,-12 + 249: 8,-8 - node: + zIndex: 1 color: '#FFFFFFFF' - id: BrickTileSteelLineE + id: Basalt3 decals: - 142: -14,-16 - 143: -14,-15 - 144: -14,-14 - 145: -14,-13 - 154: -10,-16 - 155: -10,-15 - 156: -10,-14 - 157: -10,-13 - 158: 6,-16 - 159: 6,-15 - 160: 6,-14 - 161: 6,-13 - 162: 10,-16 - 163: 10,-15 - 164: 10,-14 - 165: 10,-13 + 250: 8,-6 - node: color: '#FFFFFFFF' - id: BrickTileSteelLineN + id: Basalt5 decals: - 140: -9,-17 - 141: -13,-17 - 174: 7,-17 - 175: 11,-17 + 360: -22,7 - node: + zIndex: 1 color: '#FFFFFFFF' - id: BrickTileSteelLineS + id: Basalt5 decals: - 138: -9,-12 - 139: -13,-12 - 176: 11,-12 - 177: 7,-12 - 320: -3,3 - 321: -2,3 - 322: -1,3 - 323: 0,3 - 324: 1,3 + 244: -5,-9 - node: + zIndex: 1 color: '#FFFFFFFF' - id: BrickTileSteelLineW - decals: - 146: -12,-16 - 147: -12,-15 - 148: -12,-14 - 149: -12,-13 - 150: -8,-16 - 151: -8,-15 - 152: -8,-14 - 153: -8,-13 - 166: 12,-16 - 167: 12,-15 - 168: 12,-14 - 169: 12,-13 - 170: 8,-16 - 171: 8,-15 - 172: 8,-14 - 173: 8,-13 - - node: - color: '#9FED5896' - id: BrickTileWhiteCornerNe + id: Basalt6 decals: - 239: 12,1 - 240: 11,3 - 241: 10,4 + 245: -4,-14 - node: - color: '#9FED5896' - id: BrickTileWhiteCornerNw + color: '#FFFFFFFF' + id: Basalt7 decals: - 242: 8,4 - 243: 7,3 - 244: 6,1 + 359: -28,7 + 361: -22,6 - node: - color: '#9FED5896' - id: BrickTileWhiteCornerSe + zIndex: 1 + color: '#FFFFFFFF' + id: Basalt7 decals: - 234: 12,-4 + 246: -10,-7 - node: - color: '#9FED5896' - id: BrickTileWhiteCornerSw + zIndex: 1 + color: '#FFFFFFFF' + id: Basalt8 decals: - 245: 6,-4 + 247: -8,-9 - node: - color: '#9FED5896' - id: BrickTileWhiteInnerNe + color: '#FFFFFFFF' + id: Bot decals: - 252: 11,1 - 253: 10,3 + 390: -26,16 - node: - color: '#9FED5896' - id: BrickTileWhiteInnerNw + color: '#FFFFFFFF' + id: BotGreyscale decals: - 251: 7,1 - 254: 8,3 + 391: -20,16 + 392: -22,16 + 393: -24,16 + 512: 5,-15 + 513: 7,-15 + 514: 9,-15 + 515: 11,-15 + 516: 13,-15 + 517: 15,-15 + 518: 15,-19 + 519: 13,-19 + 520: 11,-19 + 521: 9,-19 + 522: 7,-19 + 523: 5,-19 - node: - color: '#334E6DC8' - id: BrickTileWhiteLineE + zIndex: 1 + color: '#FFFFFFFF' + id: BrickTileDarkCornerNe decals: - 350: 4,-2 - 351: 4,-1 - 352: 4,0 - 353: 4,1 + 454: -52,-11 - node: - color: '#9FED5896' - id: BrickTileWhiteLineE + zIndex: 1 + color: '#FFFFFFFF' + id: BrickTileDarkCornerNw decals: - 235: 12,-3 - 236: 12,-2 - 237: 12,-1 - 238: 12,0 - 248: 11,2 + 455: -54,-11 - node: - color: '#9FED5896' - id: BrickTileWhiteLineN + zIndex: 1 + color: '#FFFFFFFF' + id: BrickTileDarkCornerSe decals: - 255: 9,4 + 456: -52,-13 - node: - color: '#9FED5896' - id: BrickTileWhiteLineS + zIndex: 1 + color: '#FFFFFFFF' + id: BrickTileDarkCornerSw decals: - 249: 7,-4 - 250: 11,-4 + 457: -54,-13 - node: - color: '#334E6DC8' - id: BrickTileWhiteLineW + color: '#FFFFFFFF' + id: BrickTileDarkInnerNe decals: - 354: -6,-2 - 355: -6,-1 - 356: -6,0 - 357: -6,1 + 319: -27,-15 - node: - color: '#9FED5896' - id: BrickTileWhiteLineW + color: '#FFFFFFFF' + id: BrickTileDarkLineE decals: - 246: 6,-3 - 247: 7,2 + 313: -27,-12 + 314: -27,-13 + 315: -27,-14 - node: + zIndex: 1 color: '#FFFFFFFF' - id: BushATwo + id: BrickTileDarkLineE decals: - 6: -11.016409,-15.979745 + 453: -52,-12 + 458: -56,-15 + 459: -56,-14 + 460: -56,-13 + 461: -56,-12 + 462: -56,-11 + 463: -56,-10 + 464: -56,-9 - node: color: '#FFFFFFFF' - id: BushCThree + id: BrickTileDarkLineN decals: - 0: 8.958727,-15.96412 - 5: -11.047659,-13.073495 + 12: 4,17 + 13: 3,17 + 14: 2,17 + 21: -4,17 + 22: -5,17 + 23: -6,17 + 316: -26,-15 + 317: -25,-15 + 318: -24,-15 + 405: -31,13 + 406: -32,13 + 407: -33,13 + 408: -34,13 + 409: -35,13 + 410: -36,13 + 608: 13,-33 + 609: 14,-33 + 610: 15,-33 + 611: 16,-33 + 612: 17,-33 + 613: 12,-33 - node: + zIndex: 1 color: '#FFFFFFFF' - id: Bushc1 + id: BrickTileDarkLineN decals: - 1: 8.967296,-13.917245 + 452: -53,-11 - node: color: '#FFFFFFFF' - id: Bushe2 + id: BrickTileDarkLineS decals: - 15: -11.003177,-13.104745 + 15: 4,12 + 16: 3,12 + 17: 2,12 + 18: -4,12 + 19: -5,12 + 20: -6,12 + 400: -36,10 + 401: -35,10 + 402: -34,10 + 403: -33,10 + 404: -32,10 - node: + zIndex: 1 color: '#FFFFFFFF' - id: Bushe3 + id: BrickTileDarkLineS decals: - 16: 8.954511,-13.729745 + 450: -53,-13 - node: + zIndex: 1 color: '#FFFFFFFF' - id: Bushe4 + id: BrickTileDarkLineW decals: - 14: -11.128177,-15.96412 - 17: 8.970136,-15.604745 + 445: -50,-14 + 446: -50,-13 + 447: -50,-12 + 448: -50,-11 + 449: -50,-10 + 451: -54,-12 - node: color: '#FFFFFFFF' - id: Bushf1 + id: BrickTileSteelBox decals: - 11: 8.984636,-13.12037 + 487: -1,-17 + 570: 9,-40 + 571: -11,-40 - node: color: '#FFFFFFFF' - id: Bushf2 + id: BrickTileSteelCornerNe decals: - 12: 9.015886,-15.635995 + 157: 51,-11 - node: color: '#FFFFFFFF' - id: Bushf3 + id: BrickTileSteelCornerNw decals: - 13: -11.034427,-14.62037 + 158: 50,-11 - node: color: '#FFFFFFFF' - id: Bushi3 + id: BrickTileSteelCornerSe decals: - 318: -2.1152062,4.094537 + 159: 51,-13 - node: color: '#FFFFFFFF' - id: Bushi4 + id: BrickTileSteelCornerSw decals: - 319: 0.38479376,4.985162 + 160: 50,-13 - node: color: '#FFFFFFFF' - id: Bushj2 + id: BrickTileSteelEndN decals: - 9: -10.989034,-15.30787 + 381: -28,11 + 382: -22,11 + 588: 9,-54 + 595: -11,-54 - node: color: '#FFFFFFFF' - id: Bushj3 + id: BrickTileSteelEndS decals: - 8: -11.004659,-14.08912 - 10: 9.031511,-14.46412 + 379: -28,9 + 380: -22,9 + 589: 9,-56 + 594: -11,-56 - node: - color: '#79150096' - id: CheckerNESW + color: '#FFFFFFFF' + id: BrickTileSteelLineE decals: - 341: -9,2 - 342: -9,3 - 343: -10,3 - 344: -11,3 - 345: -12,3 - 346: -13,3 - 347: -12,4 - 348: -11,4 - 349: -10,4 + 0: -1,19 + 1: -1,18 + 2: -1,16 + 3: -1,15 + 4: -1,13 + 5: -1,12 + 25: 0,4 + 26: 0,-6 + 28: -5,-6 + 35: -5,4 + 106: 43,-7 + 107: 43,-6 + 108: 43,-5 + 109: 43,-17 + 110: 43,-18 + 111: 43,-19 + 162: 51,-12 + 169: 33,-23 + 174: 32,-27 + 175: 32,-28 + 176: 32,-29 + 177: 32,-34 + 178: 32,-35 + 179: 32,-36 + 371: -25,6 + 372: -25,7 + 373: -25,8 + 374: -25,9 + 383: -22,10 + 384: -28,10 + 470: -34,-29 + 471: -34,-28 + 472: -34,-27 + 473: -34,-34 + 474: -34,-35 + 475: -34,-36 + 480: -33,-40 + 488: -1,-20 + 489: -1,-21 + 490: -1,-22 + 491: -1,-25 + 492: -1,-26 + 493: -1,-27 + 500: -3,-25 + 501: -3,-24 + 502: -3,-23 + 503: -3,-22 + 562: 3,-33 + 563: -4,-33 + 569: 13,-40 + 572: -14,-40 + 579: -11,-50 + 580: -11,-49 + 581: -11,-48 + 585: 9,-50 + 586: 9,-49 + 587: 9,-48 + 590: 9,-55 + 593: -11,-55 - node: + zIndex: 1 color: '#FFFFFFFF' - id: Delivery - decals: - 202: 14,-18 - 203: 12,-18 - 204: 6,-18 - 205: 4,-18 - 206: 4,-11 - 207: 6,-11 - 208: 12,-11 - 209: 14,-11 - 210: -6,-18 - 211: -8,-18 - 212: -14,-18 - 213: -16,-18 - 214: -16,-11 - 215: -14,-11 - 216: -8,-11 - 217: -6,-11 - 293: -10,-5 - 294: -11,-5 - 295: -12,-5 - 296: 8,-5 - 297: 9,-5 - 298: 10,-5 + id: BrickTileSteelLineE + decals: + 197: 24,-1 + 411: -24,-1 + 413: -43,-1 + 418: -44,-7 + 419: -44,-6 + 420: -44,-5 + 421: -44,-17 + 422: -44,-18 + 423: -44,-19 + 428: -43,-23 - node: color: '#FFFFFFFF' - id: FlowersBRTwo + id: BrickTileSteelLineN decals: - 316: 0.63479376,3.7820368 + 29: -7,-4 + 32: 5,-4 + 39: 16,-1 + 40: 17,-1 + 41: 18,-1 + 42: 28,-1 + 43: 29,-1 + 44: 30,-1 + 116: 43,-22 + 166: 36,-23 + 167: 37,-23 + 168: 38,-23 + 183: 32,-39 + 184: 28,-40 + 185: 27,-40 + 186: 26,-40 + 479: -34,-39 + 481: -30,-40 + 482: -29,-40 + 483: -28,-40 + 567: 9,-36 + 573: -11,-36 + 596: -7,-47 + 597: -6,-47 + 598: -5,-47 + 599: 3,-47 + 600: 4,-47 + 601: 5,-47 - node: + zIndex: 1 color: '#FFFFFFFF' - id: Flowerspv3 + id: BrickTileSteelLineN decals: - 317: -2.8495812,3.8601618 + 265: -20,-1 + 266: -18,-1 + 267: -19,-1 + 274: -32,-1 + 275: -31,-1 + 276: -30,-1 + 427: -44,-22 - node: color: '#FFFFFFFF' - id: Flowersy2 + id: BrickTileSteelLineS decals: - 312: -1.5370812,3.328912 - 313: -0.61520624,4.063287 - 315: -1.0839562,3.9382868 + 33: 5,2 + 34: -7,2 + 36: 16,-1 + 37: 17,-1 + 38: 18,-1 + 45: 30,-1 + 46: 29,-1 + 47: 28,-1 + 102: 43,-2 + 163: 38,-23 + 164: 37,-23 + 165: 36,-23 + 170: 32,-24 + 187: 26,-40 + 188: 27,-40 + 189: 28,-40 + 466: -34,-24 + 484: -30,-40 + 485: -29,-40 + 486: -28,-40 + 566: 9,-37 + 575: -11,-37 + 602: 5,-47 + 603: 4,-47 + 604: 3,-47 + 605: -5,-47 + 606: -6,-47 + 607: -7,-47 - node: + zIndex: 1 color: '#FFFFFFFF' - id: Flowersy4 + id: BrickTileSteelLineS decals: - 314: -0.80270624,3.407037 + 268: -20,-1 + 269: -19,-1 + 270: -18,-1 + 271: -30,-1 + 272: -31,-1 + 273: -32,-1 + 414: -44,-2 - node: - color: '#334E6DC8' - id: FullTileOverlayGreyscale + color: '#FFFFFFFF' + id: BrickTileSteelLineW decals: - 270: -2,1 - 271: 0,-1 - 272: -1,0 + 6: -1,12 + 7: -1,13 + 8: -1,15 + 9: -1,16 + 10: -1,18 + 11: -1,19 + 24: -2,4 + 27: -2,-6 + 30: 3,-6 + 31: 3,4 + 101: 42,-1 + 103: 43,-5 + 104: 43,-6 + 105: 43,-7 + 112: 43,-19 + 113: 43,-18 + 114: 43,-17 + 115: 42,-23 + 161: 50,-12 + 171: 32,-27 + 172: 32,-28 + 173: 32,-29 + 180: 32,-36 + 181: 32,-35 + 182: 32,-34 + 190: 31,-40 + 375: -25,6 + 376: -25,7 + 377: -25,8 + 378: -25,9 + 385: -28,10 + 386: -22,10 + 465: -35,-23 + 467: -34,-27 + 468: -34,-28 + 469: -34,-29 + 476: -34,-36 + 477: -34,-35 + 478: -34,-34 + 494: -1,-27 + 495: -1,-26 + 496: -1,-25 + 497: -1,-22 + 498: -1,-21 + 499: -1,-20 + 504: 1,-24 + 505: 1,-23 + 506: 1,-22 + 507: 1,-25 + 564: -5,-33 + 565: 2,-33 + 568: 12,-40 + 574: -15,-40 + 576: -11,-48 + 577: -11,-49 + 578: -11,-50 + 582: 9,-48 + 583: 9,-49 + 584: 9,-50 + 591: 9,-55 + 592: -11,-55 - node: + zIndex: 1 color: '#FFFFFFFF' - id: Grassa3 + id: BrickTileSteelLineW decals: - 4: -11.016409,-15.073495 + 198: 22,-1 + 412: -26,-1 + 415: -44,-5 + 416: -44,-6 + 417: -44,-7 + 424: -44,-19 + 425: -44,-18 + 426: -44,-17 - node: - color: '#FFFFFFFF' - id: Grassb2 + color: '#A46106D8' + id: BrickTileWhiteCornerNe decals: - 3: 9.014171,-12.979745 + 55: 26,-6 - node: - color: '#FFFFFFFF' - id: Grassb3 + color: '#D381C9D8' + id: BrickTileWhiteCornerNe decals: - 7: -10.985159,-14.010995 + 60: 25,2 - node: - color: '#FFFFFFFF' - id: Grassb5 + color: '#EFB341D8' + id: BrickTileWhiteCornerNe decals: - 2: 8.998546,-14.854745 + 119: 46,-9 - node: - color: '#FFFFFFFF' - id: Grassd1 + zIndex: 1 + color: '#334E6DD8' + id: BrickTileWhiteCornerNw decals: - 301: -0.05270624,4.094537 + 435: -47,-9 - node: - color: '#FFFFFFFF' - id: Grassd2 + color: '#52B4E9D8' + id: BrickTileWhiteCornerNw decals: - 302: 0.90041876,4.250787 - 303: -1.2714562,3.141412 - 309: -0.30270624,4.938287 + 309: -36,-4 - node: - color: '#FFFFFFFF' - id: Grassd3 + color: '#A46106D8' + id: BrickTileWhiteCornerNw decals: - 304: -2.2245812,4.485162 - 310: 0.79104376,4.953912 - 311: -2.9433312,3.157037 + 52: 20,-6 - node: - color: '#FFFFFFFF' - id: Grasse1 + color: '#D381C9D8' + id: BrickTileWhiteCornerNw decals: - 306: -2.8808312,3.9539118 + 63: 21,2 - node: - color: '#FFFFFFFF' - id: Grasse2 + color: '#52B4E9D8' + id: BrickTileWhiteCornerSe decals: - 300: -0.22458124,3.219537 - 307: -2.8652062,4.969537 + 292: -14,-9 - node: - color: '#FFFFFFFF' - id: Grasse3 + color: '#A46106D8' + id: BrickTileWhiteCornerSe decals: - 299: 0.82229376,3.328912 - 305: -2.3652062,3.375787 - 308: -1.4745812,4.938287 - - node: - color: '#334E6DC8' - id: HalfTileOverlayGreyscale - decals: - 282: 2,-2 - - node: - color: '#334E6DC8' - id: HalfTileOverlayGreyscale180 - decals: - 283: -4,2 - - node: - color: '#D4D4D496' - id: HalfTileOverlayGreyscale180 - decals: - 44: -11,-21 - 57: 9,-21 - - node: - color: '#334E6DC8' - id: HalfTileOverlayGreyscale270 - decals: - 267: 1,-1 - 268: 1,0 - 269: 1,1 - 275: -2,-1 - - node: - color: '#334E6DC8' - id: HalfTileOverlayGreyscale90 - decals: - 264: -3,-1 - 265: -3,0 - 266: -3,1 - 278: 0,1 - - node: - color: '#334E6DC8' - id: QuarterTileOverlayGreyscale - decals: - 184: -8,0 - 185: -9,0 - 186: -10,0 - 187: -11,0 - 188: -12,0 - 189: -13,0 - 190: -13,-1 - 191: -13,-2 - 192: -13,-3 - 193: -13,-4 - 262: 1,-2 - 263: -2,-2 - 279: 3,-2 - - node: - color: '#52B4E950' - id: QuarterTileOverlayGreyscale - decals: - 95: 8,-21 - 96: 7,-20 - 97: 7,-19 - 98: 7,-18 - 99: 7,-17 - 100: -12,-21 - 101: -13,-20 - 102: -13,-19 - 103: -13,-18 - 104: -13,-17 - - node: - color: '#52B4E95A' - id: QuarterTileOverlayGreyscale - decals: - 325: 11,-6 - 339: -9,-6 - - node: - color: '#D4D4D496' - id: QuarterTileOverlayGreyscale - decals: - 18: -13,-6 - 19: -13,-7 - 20: -13,-8 - 21: -13,-9 - 22: -13,-10 - 23: -13,-11 - 24: -13,-12 - 58: 7,-12 - 59: 7,-11 - 60: 7,-10 - 61: 7,-9 - 62: 7,-8 - 63: 7,-7 - 64: 7,-6 - - node: - color: '#334E6DC8' - id: QuarterTileOverlayGreyscale180 - decals: - 258: 0,2 - 259: -3,2 - 284: -5,2 - - node: - color: '#52B4E950' - id: QuarterTileOverlayGreyscale180 - decals: - 72: 11,-10 - 73: 11,-9 - 74: 11,-8 - 75: 11,-7 - 76: 11,-6 - 77: 11,-11 - 78: 11,-12 - 93: 8,-21 - 94: 7,-20 - 105: -13,-20 - 106: -12,-21 - 121: -9,-12 - 122: -9,-11 - 123: -9,-10 - 124: -9,-9 - 125: -9,-8 - 126: -9,-7 - 127: -9,-6 - - node: - color: '#D4D4D496' - id: QuarterTileOverlayGreyscale180 - decals: - 32: -9,-17 - 33: -9,-18 - 34: -9,-19 - 35: -9,-20 - 36: -10,-20 - 37: -10,-21 - 51: 10,-21 - 52: 10,-20 - 53: 11,-20 - 54: 11,-19 - 55: 11,-18 - 56: 11,-17 - - node: - color: '#334E6DC8' - id: QuarterTileOverlayGreyscale270 - decals: - 256: 1,2 - 257: -2,2 - 273: -1,1 - - node: - color: '#52B4E950' - id: QuarterTileOverlayGreyscale270 - decals: - 79: 7,-12 - 80: 7,-11 - 81: 7,-10 - 82: 7,-9 - 83: 7,-8 - 84: 7,-7 - 85: 7,-6 - 91: 10,-21 - 92: 11,-20 - 107: -10,-21 - 108: -9,-20 - 114: -13,-12 - 115: -13,-11 - 116: -13,-10 - 117: -13,-9 - 118: -13,-8 - 119: -13,-7 - 120: -13,-6 - - node: - color: '#D4D4D496' - id: QuarterTileOverlayGreyscale270 - decals: - 38: -12,-21 - 39: -12,-20 - 40: -13,-20 - 41: -13,-19 - 42: -13,-18 - 43: -13,-17 - 45: 8,-21 - 46: 8,-20 - 47: 7,-20 - 48: 7,-19 - 49: 7,-18 - 50: 7,-17 - - node: - color: '#334E6DC8' - id: QuarterTileOverlayGreyscale90 - decals: - 260: 0,-2 - 261: -3,-2 - 274: -1,-1 - - node: - color: '#52B4E950' - id: QuarterTileOverlayGreyscale90 - decals: - 86: 11,-17 - 87: 11,-18 - 88: 11,-19 - 89: 11,-20 - 90: 10,-21 - 109: -10,-21 - 110: -9,-20 - 111: -9,-19 - 112: -9,-18 - 113: -9,-17 - - node: - color: '#52B4E95A' - id: QuarterTileOverlayGreyscale90 - decals: - 326: 7,-6 - 340: -13,-6 - - node: - color: '#D4D4D496' - id: QuarterTileOverlayGreyscale90 - decals: - 25: -9,-6 - 26: -9,-7 - 27: -9,-8 - 28: -9,-9 - 29: -9,-10 - 30: -9,-11 - 31: -9,-12 - 65: 11,-6 - 66: 11,-7 - 67: 11,-8 - 68: 11,-9 - 69: 11,-10 - 70: 11,-11 - 71: 11,-12 + 91: 18,-10 - node: - color: '#FFFFFFFF' - id: StandClear + color: '#D381C9D8' + id: BrickTileWhiteCornerSe decals: - 364: 3,8 - 365: 3,8 + 68: 26,4 - node: - color: '#334E6DC8' - id: ThreeQuarterTileOverlayGreyscale + color: '#EFB341D8' + id: BrickTileWhiteCornerSe decals: - 276: -2,0 + 120: 46,-15 - node: - color: '#334E6DC8' - id: ThreeQuarterTileOverlayGreyscale180 + zIndex: 1 + color: '#334E6DD8' + id: BrickTileWhiteCornerSw decals: - 277: 0,0 + 436: -47,-15 - node: - color: '#334E6DC8' - id: ThreeQuarterTileOverlayGreyscale270 + color: '#52B4E9D8' + id: BrickTileWhiteCornerSw decals: - 280: 2,-1 + 310: -36,-9 - node: - color: '#334E6DC8' - id: ThreeQuarterTileOverlayGreyscale90 + color: '#A46106D8' + id: BrickTileWhiteCornerSw decals: - 281: -4,1 + 88: 28,-10 - node: - color: '#FFFFFFFF' - id: WarnBox - decals: - 194: -7,-18 - 195: -7,-11 - 196: -15,-11 - 197: -15,-18 - 198: 13,-18 - 199: 13,-11 - 200: 5,-11 - 201: 5,-18 - 371: -1,8 + color: '#DE3A3AD8' + id: BrickTileWhiteCornerSw + decals: + 352: -37,2 - node: - color: '#FFFFFFFF' - id: WarnCornerSmallNE + zIndex: 1 + color: '#334E6DD8' + id: BrickTileWhiteEndN decals: - 362: 3,7 + 429: -44,-11 - node: - color: '#FFFFFFFF' - id: WarnLineE + color: '#EFB341D8' + id: BrickTileWhiteEndN decals: - 289: 5,-2 - 290: 5,0 - 291: -7,-2 - 292: -7,0 - 360: 5,-1 - 361: -7,-1 - 363: 3,8 + 126: 43,-11 - node: - color: '#FFFFFFFF' - id: WarnLineGreyscaleN - decals: - 330: 10,-6 - 331: 9,-6 - 332: 8,-6 - 333: -10,-6 - 334: -11,-6 - 335: -12,-6 - 377: -9,-17 - 378: -13,-17 - 379: 7,-17 - 380: 11,-17 + zIndex: 1 + color: '#334E6DD8' + id: BrickTileWhiteEndS + decals: + 430: -44,-13 - node: - color: '#FFFFFFFF' - id: WarnLineGreyscaleS - decals: - 327: 8,-4 - 328: 9,-4 - 329: 10,-4 - 336: -10,-4 - 337: -11,-4 - 338: -12,-4 - 373: 7,-12 - 374: 11,-12 - 375: -9,-12 - 376: -13,-12 + color: '#EFB341D8' + id: BrickTileWhiteEndS + decals: + 125: 43,-13 - node: - color: '#FFFFFFFF' - id: WarnLineN + color: '#52B4E9D8' + id: BrickTileWhiteInnerNe decals: - 367: -2,8 - 368: -4,8 - 370: -5,8 - 372: -3,8 + 291: -24,-6 - node: - color: '#FFFFFFFF' - id: WarnLineS - decals: - 285: -7,-2 - 286: -7,0 - 287: 5,-2 - 288: 5,0 - 358: 5,-1 - 359: -7,-1 - - type: GridAtmosphere - version: 2 - data: - tiles: - -1,-1: - 0: 65535 - 0,0: - 0: 65535 - 0,-1: - 0: 65535 - -1,0: - 0: 65535 - -4,-3: - 0: 53247 - -4,-4: - 0: 61166 - -4,-2: - 0: 60620 - -4,-1: - 0: 61166 - -3,-4: - 0: 65535 - -3,-3: - 0: 65535 - -3,-2: - 0: 65535 - -3,-1: - 0: 65535 - -2,-4: - 0: 13107 - -2,-3: - 0: 6007 - -2,-2: - 0: 61713 - -2,-1: - 0: 65535 - -1,-2: - 0: 61440 - 0,1: - 0: 4095 - 1: 61440 - 1,0: - 0: 65535 - 1,1: - 0: 959 - 1: 12288 - 2,0: - 0: 65535 - 2,1: - 0: 255 - 3,0: - 0: 4915 - 3,1: - 0: 1 - 0,-2: - 0: 61440 - 1,-3: - 0: 53247 - 1,-2: - 0: 64716 - 1,-1: - 0: 65535 - 1,-4: - 0: 61166 - 2,-4: - 0: 65535 - 2,-3: - 0: 65535 - 2,-2: - 0: 65535 - 2,-1: - 0: 65535 - 3,-4: - 0: 13107 - 3,-3: - 0: 6007 - 3,-2: - 0: 12561 - 3,-1: - 0: 13107 - -4,0: - 0: 52974 - -4,1: - 0: 140 - -3,0: - 0: 65535 - -3,1: - 0: 255 - -2,0: - 0: 65535 - -2,1: - 0: 3823 - 1: 57344 - -1,1: - 0: 4095 - 1: 61440 - 1,-5: - 0: 65532 - 1,-6: - 0: 51200 - 2,-6: - 0: 65280 - 2,-5: - 0: 65535 - 3,-6: - 0: 4096 - 3,-5: - 0: 30577 - -4,-5: - 0: 65532 - -4,-6: - 0: 51200 - -3,-6: - 0: 65280 - -3,-5: - 0: 65535 - -2,-6: - 0: 4096 - -2,-5: - 0: 30577 - 0,2: - 1: 4095 - 1,2: - 1: 819 + color: '#A46106D8' + id: BrickTileWhiteInnerNe + decals: + 58: 24,-6 + 59: 26,-7 + - node: + color: '#D381C9D8' + id: BrickTileWhiteInnerNe + decals: + 61: 25,1 + 62: 24,2 + - node: + color: '#DE3A3AD8' + id: BrickTileWhiteInnerNe + decals: + 335: -23,1 + - node: + color: '#EFB341D8' + id: BrickTileWhiteInnerNe + decals: + 122: 45,-9 + 123: 46,-11 + 131: 51,-9 + 135: 49,-3 + - node: + zIndex: 1 + color: '#334E6DD8' + id: BrickTileWhiteInnerNw + decals: + 439: -47,-11 + 440: -46,-9 + - node: + color: '#52B4E9D8' + id: BrickTileWhiteInnerNw + decals: + 300: -15,-4 + 308: -34,-4 + 312: -36,-5 + - node: + color: '#A46106D8' + id: BrickTileWhiteInnerNw + decals: + 56: 22,-6 + 57: 20,-7 + - node: + color: '#D381C9D8' + id: BrickTileWhiteInnerNw + decals: + 64: 22,2 + 65: 21,1 + - node: + color: '#DE3A3AD8' + id: BrickTileWhiteInnerNw + decals: + 336: -27,1 + 347: -29,12 + - node: + color: '#52B4E9D8' + id: BrickTileWhiteInnerSe + decals: + 142: 51,-15 + 146: 49,-21 + 285: -24,-4 + 296: -17,-9 + 301: -14,-7 + - node: + color: '#A46106D8' + id: BrickTileWhiteInnerSe + decals: + 90: 18,-9 + - node: + color: '#D381C9D8' + id: BrickTileWhiteInnerSe + decals: + 69: 26,5 + 70: 24,4 + - node: + color: '#DE3A3AD8' + id: BrickTileWhiteInnerSe + decals: + 348: -22,4 + - node: + color: '#EFB341D8' + id: BrickTileWhiteInnerSe + decals: + 121: 45,-15 + 124: 46,-13 + - node: + zIndex: 1 + color: '#334E6DD8' + id: BrickTileWhiteInnerSw + decals: + 437: -47,-13 + 438: -46,-15 + - node: + color: '#52B4E9D8' + id: BrickTileWhiteInnerSw + decals: + 284: -26,-4 + 304: -29,-8 + 306: -34,-9 + 311: -36,-8 + - node: + color: '#A46106D8' + id: BrickTileWhiteInnerSw + decals: + 89: 28,-9 + - node: + color: '#D381C9D8' + id: BrickTileWhiteInnerSw + decals: + 71: 22,4 + - node: + color: '#DE3A3AD8' + id: BrickTileWhiteInnerSw + decals: + 349: -28,4 + 353: -37,3 + - node: + zIndex: 1 + color: '#334E6DD8' + id: BrickTileWhiteLineE + decals: + 431: -44,-12 + - node: + color: '#52B4E9D8' + id: BrickTileWhiteLineE + decals: + 295: -14,-8 + - node: + color: '#A46106D8' + id: BrickTileWhiteLineE + decals: + 48: 26,-3 + 49: 26,-4 + - node: + color: '#D381C9D8' + id: BrickTileWhiteLineE + decals: + 72: 19,3 + 73: 19,2 + - node: + color: '#DE3A3AD8' + id: BrickTileWhiteLineE + decals: + 334: -23,2 + - node: + color: '#EFB341D8' + id: BrickTileWhiteLineE + decals: + 117: 46,-10 + 118: 46,-14 + 127: 43,-12 + - node: + color: '#334E6DD8' + id: BrickTileWhiteLineN + decals: + 443: -50,-10 + 444: -49,-10 + - node: + color: '#52B4E9D8' + id: BrickTileWhiteLineN + decals: + 288: -21,-6 + 289: -22,-6 + 290: -23,-6 + 297: -18,-4 + 298: -17,-4 + 299: -16,-4 + 307: -35,-4 + - node: + color: '#A46106D8' + id: BrickTileWhiteLineN + decals: + 53: 21,-6 + 54: 25,-6 + 79: 18,-4 + 80: 17,-4 + 81: 16,-4 + 82: 15,-4 + 83: 28,-4 + 84: 29,-4 + 85: 30,-4 + 86: 31,-4 + - node: + color: '#D381C9D8' + id: BrickTileWhiteLineN + decals: + 191: 22,-1 + 192: 23,-1 + 193: 24,-1 + - node: + color: '#DE3A3AD8' + id: BrickTileWhiteLineN + decals: + 330: -26,-1 + 331: -25,-1 + 332: -24,-1 + 343: -23,13 + 344: -22,13 + 345: -21,13 + - node: + color: '#EFB341D8' + id: BrickTileWhiteLineN + decals: + 129: 53,-9 + 130: 52,-9 + 132: 50,-3 + 133: 51,-3 + 134: 52,-3 + - node: + color: '#334E6DD8' + id: BrickTileWhiteLineS + decals: + 441: -50,-14 + 442: -49,-14 + - node: + color: '#52B4E9D8' + id: BrickTileWhiteLineS + decals: + 140: 53,-15 + 141: 52,-15 + 143: 52,-21 + 144: 51,-21 + 145: 50,-21 + 277: -26,-1 + 278: -25,-1 + 279: -24,-1 + 280: -28,-4 + 281: -27,-4 + 282: -22,-4 + 283: -23,-4 + 293: -15,-9 + 294: -16,-9 + 305: -35,-9 + - node: + color: '#A46106D8' + id: BrickTileWhiteLineS + decals: + 78: 17,-10 + 87: 29,-10 + 194: 22,-1 + 195: 23,-1 + 196: 24,-1 + - node: + color: '#D381C9D8' + id: BrickTileWhiteLineS + decals: + 66: 25,4 + 67: 21,4 + - node: + color: '#DE3A3AD8' + id: BrickTileWhiteLineS + decals: + 337: -19,4 + 338: -20,4 + 339: -21,4 + 340: -31,4 + 341: -30,4 + 342: -29,4 + 350: -35,2 + 351: -36,2 + - node: + zIndex: 1 + color: '#334E6DD8' + id: BrickTileWhiteLineW + decals: + 432: -44,-12 + 433: -47,-14 + 434: -47,-10 + - node: + color: '#52B4E9D8' + id: BrickTileWhiteLineW + decals: + 147: 46,-20 + 148: 46,-19 + 149: 46,-18 + 150: 46,-17 + 302: -29,-10 + 303: -29,-9 + - node: + color: '#A46106D8' + id: BrickTileWhiteLineW + decals: + 50: 20,-4 + 51: 20,-3 + - node: + color: '#D381C9D8' + id: BrickTileWhiteLineW + decals: + 74: 14,2 + 75: 14,3 + 76: 14,4 + 77: 14,5 + - node: + color: '#DE3A3AD8' + id: BrickTileWhiteLineW + decals: + 333: -27,2 + 346: -29,13 + - node: + color: '#EFB341D8' + id: BrickTileWhiteLineW + decals: + 128: 43,-12 + 136: 46,-7 + 137: 46,-6 + 138: 46,-5 + 139: 46,-4 + - node: + color: '#FFFFFFFF' + id: BushAOne + decals: + 320: -33,2 + - node: + color: '#FFFFFFFF' + id: BushAThree + decals: + 324: -32,2 + - node: + color: '#FFFFFFFF' + id: BushCTwo + decals: + 328: -18,2 + - node: + color: '#FFFFFFFF' + id: Busha1 + decals: + 321: -19,2 + - node: + color: '#FFFFFFFF' + id: Busha2 + decals: + 322: -30,2 + - node: + color: '#FFFFFFFF' + id: Busha3 + decals: + 323: -20,2 + - node: + color: '#FFFFFFFF' + id: Bushb1 + decals: + 286: -30,-4 + 326: -29,2 + - node: + color: '#FFFFFFFF' + id: Bushb2 + decals: + 327: -21,2 + - node: + color: '#FFFFFFFF' + id: Bushb3 + decals: + 287: -20,-4 + - node: + color: '#FFFFFFFF' + id: Bushc1 + decals: + 325: -17,2 + - node: + color: '#FFFFFFFF' + id: Bushc2 + decals: + 329: -31,2 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: FlowersBROne + decals: + 202: 3,-12 + 208: -10,-4 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: FlowersBRThree + decals: + 203: 7,-9 + 209: -7,-9 + 533: -19,-15 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: FlowersBRTwo + decals: + 204: 8,-7 + 210: -4,-9 + 532: -19,-17 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: Flowersbr1 + decals: + 199: 3,-9 + 205: -5,-14 + 529: -19,-19 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: Flowersbr2 + decals: + 200: 8,-5 + 206: -10,-8 + 530: -19,-18 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: Flowersbr3 + decals: + 201: 2,-13 + 207: -10,-9 + 531: -19,-16 + - node: + color: '#FFFFFFFF' + id: Flowerspv1 + decals: + 357: -25,12 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: Flowerspv1 + decals: + 211: -9,-9 + 214: 3,-11 + 622: 17,-17 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: Flowerspv2 + decals: + 212: -5,-12 + 215: 7,-8 + 623: 17,-16 + - node: + color: '#FFFFFFFF' + id: Flowerspv3 + decals: + 358: -25,13 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: Flowerspv3 + decals: + 213: -10,-6 + 216: 5,-9 + 621: 17,-19 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: Grassa1 + decals: + 224: -10,3 + 243: 7,6 + - node: + color: '#FFFFFFFF' + id: Grassa2 + decals: + 508: -4,-20 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: Grassa2 + decals: + 225: -9,7 + 242: 4,7 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: Grassa3 + decals: + 226: -5,8 + 241: 2,7 + - node: + color: '#FFFFFFFF' + id: Grassa4 + decals: + 511: -5,-20 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: Grassa4 + decals: + 227: -5,7 + 240: 8,5 + - node: + color: '#FFFFFFFF' + id: Grassa5 + decals: + 510: 3,-20 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: Grassa5 + decals: + 228: -9,6 + 239: 6,7 + - node: + color: '#FFFFFFFF' + id: Grassb1 + decals: + 527: -19,-16 + 618: 17,-16 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: Grassb1 + decals: + 229: -8,7 + 238: 8,7 + - node: + color: '#FFFFFFFF' + id: Grassb2 + decals: + 525: -19,-18 + 617: 17,-15 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: Grassb2 + decals: + 230: -10,4 + 237: 3,8 + - node: + color: '#FFFFFFFF' + id: Grassb3 + decals: + 509: 2,-20 + 526: -19,-15 + 528: -19,-17 + 619: 17,-18 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: Grassb3 + decals: + 231: -4,7 + 236: 8,6 + - node: + color: '#FFFFFFFF' + id: Grassb4 + decals: + 616: 17,-19 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: Grassb4 + decals: + 232: -10,7 + 235: 5,7 + - node: + color: '#FFFFFFFF' + id: Grassb5 + decals: + 524: -19,-19 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: Grassb5 + decals: + 233: -7,7 + 234: 8,3 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: Grassd1 + decals: + 251: -5,-13 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: Grassd2 + decals: + 252: 3,-10 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: Grassd3 + decals: + 253: -10,-5 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: Grasse1 + decals: + 254: 8,-4 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: Grasse2 + decals: + 255: -6,-9 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: Grasse3 + decals: + 256: 6,-9 + - node: + color: '#DE3A3AD8' + id: MiniTileWhiteLineW + decals: + 354: -42,6 + 355: -42,7 + 356: -42,8 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: Rock01 + decals: + 221: -10,2 + 257: 17,-12 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: Rock02 + decals: + 220: 8,2 + 222: -6,7 + - node: + color: '#FFFFFFFF' + id: Rock03 + decals: + 620: 17,-17 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: Rock03 + decals: + 219: 7,7 + 223: -10,5 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: Rock04 + decals: + 217: 3,7 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: Rock05 + decals: + 218: 8,4 + 258: 17,-13 + - node: + color: '#FFFFFFFF' + id: Rock06 + decals: + 362: -28,6 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: StandClear + decals: + 264: -1,24 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: WarnCornerSmallNE + decals: + 262: -3,23 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: WarnCornerSmallNW + decals: + 263: 1,23 + - node: + color: '#FFFFFFFF' + id: WarnLineE + decals: + 387: -27,17 + 388: -27,16 + 389: -27,15 + - node: + zIndex: 1 + color: '#FFFFFFFF' + id: WarnLineW + decals: + 259: -1,23 + 260: 0,23 + 261: -2,23 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinCornerNe + decals: + 154: 57,-12 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinCornerNw + decals: + 399: -18,12 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinCornerSe + decals: + 365: -14,6 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinCornerSw + decals: + 97: 26,-15 + 366: -17,6 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinEndE + decals: + 614: 15,-35 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinEndW + decals: + 615: 14,-35 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinLineE + decals: + 98: 29,-12 + 99: 29,-13 + 100: 29,-14 + 151: 57,-13 + 367: -14,7 + 368: -14,8 + 534: -11,-20 + 535: -11,-21 + 536: -11,-22 + 537: -11,-23 + 546: -11,-14 + 547: -11,-13 + 548: -11,-12 + 549: -11,-11 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinLineN + decals: + 152: 56,-12 + 153: 55,-12 + 394: -17,12 + 395: -16,12 + 396: -15,12 + 556: -17,-11 + 557: -16,-11 + 558: -15,-11 + 559: -9,-11 + 560: -8,-11 + 561: -7,-11 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinLineS + decals: + 95: 28,-15 + 96: 27,-15 + 155: 56,-14 + 156: 55,-14 + 363: -16,6 + 364: -15,6 + 550: -9,-23 + 551: -8,-23 + 552: -7,-23 + 553: -15,-23 + 554: -16,-23 + 555: -17,-23 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinLineW + decals: + 92: 26,-12 + 93: 26,-13 + 94: 26,-14 + 369: -17,7 + 370: -17,8 + 397: -18,11 + 398: -18,10 + 538: -13,-23 + 539: -13,-22 + 540: -13,-21 + 541: -13,-20 + 542: -13,-14 + 543: -13,-13 + 544: -13,-12 + 545: -13,-11 + - type: SpreaderGrid + - type: GridAtmosphere + version: 2 + data: + tiles: + -1,-1: + 0: 65535 + 0,-1: + 0: 65535 + 0,0: + 0: 65535 + -1,0: + 0: 65535 + -4,-4: + 0: 65535 + -4,-3: + 0: 65535 + -4,-1: + 0: 65535 + -3,-4: + 0: 65535 + -3,-3: + 0: 65535 + -3,-1: + 0: 65535 + -3,-2: + 0: 65535 + -2,-4: + 0: 65535 + -2,-3: + 0: 65535 + -2,-2: + 0: 65535 + -2,-1: + 0: 65535 + -1,-4: + 0: 65535 + -1,-3: + 0: 65535 + -1,-2: + 0: 65535 + 0,-4: + 0: 65535 + 0,-3: + 0: 65535 + 0,-2: + 0: 65535 + 1,-4: + 0: 65535 + 1,-3: + 0: 65535 + 1,-2: + 0: 65535 + 1,-1: + 0: 65535 + 2,-4: + 0: 65535 + 2,-3: + 0: 65535 + 2,-2: + 0: 65535 + 2,-1: + 0: 65535 + 3,-4: + 0: 65535 + 3,-3: + 0: 65535 + 3,-2: + 0: 65535 + 3,-1: + 0: 65535 + 0,1: + 0: 65535 + 0,2: + 0: 65535 + 0,3: + 0: 65535 + 1,0: + 0: 65535 + 1,1: + 0: 65535 + 2,0: + 0: 65535 + 3,0: + 0: 61183 + -4,0: + 0: 65535 + -3,0: + 0: 65535 + -3,1: + 0: 65535 + -2,0: + 0: 65535 + -2,1: + 0: 65535 + -1,1: + 0: 65535 + -1,2: + 0: 65535 + -1,3: + 0: 65535 + 0,-8: + 0: 65535 + 0,-7: + 0: 65535 + 0,-6: + 0: 65535 + 0,-5: + 0: 65535 + 1,-8: + 0: 65535 + 1,-7: + 0: 65535 + 1,-6: + 0: 65535 + 1,-5: + 0: 65535 + 2,-8: + 0: 65535 + 2,-6: + 0: 65535 + 2,-5: + 0: 65535 + 2,-7: + 0: 65535 + 3,-8: + 0: 65535 + 3,-7: + 0: 65535 + 3,-6: + 0: 65535 + 3,-5: + 0: 65535 + 4,-4: + 0: 65535 + 4,-3: + 0: 65535 + 4,-2: + 0: 65535 + 4,-8: + 0: 65535 + 4,-7: + 0: 65535 + 4,-6: + 0: 65535 + 4,-5: + 0: 65535 + 5,-8: + 0: 65535 + 5,-7: + 0: 65535 + -4,-6: + 0: 65535 + -4,-5: + 0: 65535 + -3,-6: + 0: 65535 + -3,-5: + 0: 65535 + -2,-6: + 0: 65535 + -2,-5: + 0: 65535 + -2,-7: + 0: 52224 + -2,-8: + 0: 255 + -1,-8: + 0: 61439 + -1,-7: + 0: 65518 + -1,-6: + 0: 65535 + -1,-5: + 0: 65535 + -5,-5: + 0: 65535 + -5,-6: + 0: 52428 + 1: 13056 + -5,-4: + 0: 53247 + 1: 12288 + -5,-3: + 0: 65484 + 1: 51 + 0,-12: + 0: 65535 + 0,-11: + 0: 30583 + 0,-10: + 0: 30591 + 0,-9: + 0: 65527 + 1,-12: + 0: 65535 + 1,-9: + 0: 65528 + 2,-12: + 0: 65535 + 2,-9: + 0: 65535 + 2,-10: + 0: 65535 + 3,-12: + 0: 273 + 1: 50752 + 3,-10: + 0: 65535 + 3,-9: + 0: 65535 + -4,-12: + 0: 36044 + 1: 49 + -3,-12: + 0: 65535 + -2,-12: + 0: 65535 + -2,-9: + 0: 65520 + -1,-12: + 0: 65535 + -1,-11: + 0: 65535 + -1,-9: + 0: 65535 + -1,-10: + 0: 65535 + -4,-16: + 0: 61167 + -4,-15: + 0: 65534 + -4,-14: + 0: 52428 + 1: 4113 + -4,-13: + 0: 52428 + 1: 4371 + -3,-16: + 0: 65535 + -3,-15: + 0: 65535 + -3,-14: + 0: 65535 + -3,-13: + 0: 65535 + -2,-16: + 0: 13111 + -2,-15: + 0: 30579 + -2,-14: + 0: 4369 + -2,-13: + 0: 63761 + -1,-13: + 0: 65280 + 4,-10: + 0: 65535 + 4,-9: + 0: 65535 + 5,-10: + 0: 65535 + 5,-9: + 0: 65535 + 0,-13: + 0: 65280 + 1,-16: + 0: 61167 + 1,-15: + 0: 65534 + 1,-13: + 0: 64716 + 1,-14: + 0: 52428 + 2,-16: + 0: 65535 + 2,-15: + 0: 65535 + 2,-14: + 0: 65535 + 2,-13: + 0: 65535 + 3,-16: + 0: 13111 + 3,-15: + 0: 30579 + 3,-14: + 0: 4369 + 1: 17476 + 3,-13: + 0: 4369 + 1: 17478 + -4,-17: + 0: 65484 + -4,-18: + 0: 32768 + -3,-18: + 0: 61440 + -3,-17: + 0: 65535 + -2,-17: + 0: 30481 + 1,-17: + 0: 65484 + 1,-18: + 0: 32768 + 2,-18: + 0: 61440 + 2,-17: + 0: 65535 + 3,-17: + 0: 30481 + -4,-8: + 0: 136 + -3,-8: + 0: 255 + 1,-11: + 0: 61128 + 1,-10: + 0: 52975 + 2,-11: + 0: 65535 + -4,-11: + 0: 65416 + -4,-10: + 0: 36863 + -4,-9: + 0: 34952 + -3,-11: + 0: 65535 + -3,-10: + 0: 65535 + -3,-9: + 0: 65535 + -2,-11: + 0: 13072 + -2,-10: + 0: 4927 + 3,1: + 0: 52974 + 3,2: + 0: 204 + 1: 62464 + 4,-1: + 0: 65535 + 5,-4: + 0: 65535 + 5,-3: + 0: 65535 + 5,-2: + 0: 65535 + 5,-1: + 0: 65535 + 6,-4: + 0: 65535 + 6,-3: + 0: 65535 + 6,-2: + 0: 65535 + 6,-1: + 0: 65535 + 7,-4: + 0: 65535 + 7,-3: + 0: 65535 + 7,-2: + 0: 65535 + 7,-1: + 0: 65535 + 5,-5: + 0: 65535 + 6,-5: + 0: 65535 + 7,-5: + 0: 65535 + 7,-8: + 0: 65535 + 7,-7: + 0: 65535 + 7,-6: + 0: 65535 + 3,-11: + 0: 65280 + 1: 68 + 4,-11: + 0: 65504 + 1: 2 + 5,-11: + 0: 65280 + 1: 78 + 6,-11: + 0: 65280 + 1: 7 + 6,-10: + 0: 65535 + 7,-11: + 0: 65280 + 1: 142 + 7,-10: + 0: 65535 + 7,-9: + 0: 65535 + -8,-11: + 0: 65280 + 1: 142 + -8,-10: + 0: 8191 + -7,-11: + 0: 65280 + 1: 47 + -7,-10: + 0: 4095 + -6,-11: + 0: 65408 + 1: 1 + -6,-10: + 0: 36863 + -5,-11: + 0: 65328 + 1: 137 + -5,-10: + 0: 16383 + 4,0: + 0: 65535 + 4,1: + 0: 65535 + 4,2: + 0: 65535 + 5,0: + 0: 65535 + 5,1: + 0: 65535 + 5,2: + 0: 65535 + 6,0: + 0: 65535 + 6,1: + 0: 65535 + 6,2: + 0: 65535 + 7,0: + 0: 65535 + 7,1: + 0: 65535 + 7,2: + 0: 32767 + 8,-4: + 0: 65535 + 8,-3: + 0: 65535 + 8,-2: + 0: 65535 + 8,-1: + 0: 65535 + 9,-4: + 0: 65535 + 9,-3: + 0: 65535 + 9,-2: + 0: 65535 + 9,-1: + 0: 65535 + 10,-4: + 0: 65535 + 10,-3: + 0: 65535 + 10,-2: + 0: 65535 + 10,-1: + 0: 65535 + 11,-4: + 0: 65535 + 11,-3: + 0: 65535 + 11,-2: + 0: 65535 + 11,-1: + 0: 65535 + 8,0: + 0: 65535 + 8,1: + 0: 65535 + 8,2: + 0: 4095 + 1: 16384 + 9,0: + 0: 65535 + 9,1: + 0: 32767 + 1: 32768 + 9,2: + 0: 887 + 1: 136 + 10,0: + 0: 65535 + 11,0: + 0: 65535 + 8,-8: + 0: 30583 + 8,-7: + 0: 63351 + 1: 128 + 8,-6: + 0: 65535 + 9,-7: + 0: 63232 + 1: 241 + 9,-6: + 0: 65535 + 9,-5: + 0: 65535 + 10,-7: + 0: 61440 + 1: 2544 + 10,-6: + 0: 65535 + 10,-5: + 0: 65535 + 11,-7: + 0: 12288 + 1: 16 + 11,-6: + 0: 62259 + 1: 8 + 11,-5: + 0: 65535 + 8,-11: + 0: 30464 + 1: 47 + 8,-10: + 0: 30583 + 1: 8 + 8,-9: + 0: 30583 + 1: 128 + 12,-4: + 0: 65535 + 12,-3: + 0: 65535 + 12,-2: + 0: 65535 + 12,-1: + 0: 65535 + 13,-4: + 0: 65535 + 13,-3: + 0: 65535 + 13,-2: + 0: 30583 + 1: 128 + 13,-1: + 0: 30519 + 1: 2048 + 14,-4: + 0: 65535 + 14,-3: + 0: 32767 + 15,-4: + 0: 4915 + 1: 35976 + 15,-3: + 0: 273 + 1: 40584 + 12,-6: + 0: 65280 + 1: 39 + 12,-5: + 0: 65535 + 13,-6: + 0: 13056 + 1: 47 + 13,-5: + 0: 65399 + 14,-5: + 0: 65520 + 1: 4 + 15,-5: + 0: 13104 + 1: 35977 + -4,-2: + 0: 65535 + 1,2: + 0: 65535 + 1,3: + 0: 65535 + 2,1: + 0: 65535 + 2,2: + 0: 8191 + 1: 57344 + 2,3: + 0: 4369 + 1: 17988 + -4,1: + 0: 65535 + -4,2: + 0: 65535 + -4,3: + 0: 13175 + 1: 128 + -3,2: + 0: 65535 + -3,3: + 0: 52428 + 1: 4401 -2,2: - 1: 3822 - -1,2: + 0: 65535 + -2,3: + 0: 65535 + -8,-8: + 0: 4369 + -8,-7: + 0: 4369 + -8,-6: + 0: 4369 + 1: 61166 + -8,-5: + 0: 63624 + 1: 1911 + -7,-6: + 0: 61440 + 1: 273 + -7,-5: + 0: 65535 + -6,-6: + 0: 12288 + 1: 52736 + -6,-5: + 0: 30583 + 1: 34952 + -8,-4: + 0: 65535 + -8,-3: + 0: 65535 + -8,-2: + 0: 65535 + -8,-1: + 0: 65535 + -7,-4: + 0: 65535 + -7,-3: + 0: 65535 + -7,-2: + 0: 65535 + -7,-1: + 0: 65535 + -6,-4: + 0: 30579 + 1: 34956 + -6,-3: + 0: 65399 + 1: 136 + -6,-2: + 0: 65535 + -6,-1: + 0: 65535 + -5,-2: + 0: 65535 + -5,-1: + 0: 65535 + -8,-9: + 0: 4369 + 10,1: + 0: 53247 + 11,1: + 0: 65535 + 8,-5: + 0: 65535 + -8,0: + 0: 65535 + -8,1: + 0: 65535 + -8,2: + 0: 65535 + -8,3: + 0: 65535 + -7,0: + 0: 65535 + -7,1: + 0: 65535 + -7,2: + 0: 65535 + -7,3: + 0: 65535 + -6,0: + 0: 65535 + -6,1: + 0: 65535 + -6,2: + 0: 65535 + -6,3: + 0: 65535 + -5,0: + 0: 65535 + -5,1: + 0: 65535 + -5,2: + 0: 65535 + -5,3: + 0: 65535 + -12,-4: + 0: 65535 + -12,-3: + 0: 65535 + -12,-2: + 0: 65535 + -12,-1: + 0: 65535 + -11,-4: + 0: 65535 + -11,-3: + 0: 65535 + -11,-2: + 0: 65535 + -11,-1: + 0: 65535 + -10,-4: + 0: 65535 + -10,-3: + 0: 65535 + -10,-2: + 0: 65535 + -10,-1: + 0: 65535 + -9,-4: + 0: 65535 + -9,-3: + 0: 65535 + -9,-2: + 0: 65535 + -9,-1: + 0: 65535 + -12,0: + 0: 65535 + -12,1: + 0: 65535 + -11,0: + 0: 65535 + -11,1: + 0: 65535 + -11,2: + 0: 65534 + -11,3: + 0: 61183 + 1: 4096 + -10,0: + 0: 65535 + -10,1: + 0: 65535 + -10,2: + 0: 65535 + -10,3: + 0: 16383 + 1: 16384 + -9,0: + 0: 65535 + -9,1: + 0: 65535 + -9,2: + 0: 65535 + -9,3: + 0: 65535 + -8,4: + 0: 3277 + 1: 770 + -7,4: + 0: 4095 + 1: 16384 + -6,4: + 0: 4095 + -5,4: + 0: 819 + 1: 4288 + -9,4: + 0: 15 + 1: 3968 + -12,-8: + 0: 4096 + 1: 279 + -12,-7: + 0: 53521 + 1: 8416 + -12,-6: + 0: 56796 + 1: 8739 + -12,-5: + 0: 52701 + 1: 12834 + -11,-7: + 0: 61440 + 1: 1520 + -11,-6: + 0: 65535 + -11,-5: + 0: 30583 + 1: 34952 + -10,-7: + 0: 61440 + 1: 68 + -10,-6: + 0: 65535 + -9,-8: + 0: 65535 + -9,-7: + 0: 65535 + -9,-6: + 0: 65535 + -9,-5: + 0: 61440 1: 4095 + -15,-4: + 0: 65512 + -15,-3: + 0: 61439 + -15,-2: + 0: 34824 + 1: 25255 + -15,-1: + 0: 34952 + 1: 546 + -14,-4: + 0: 65535 + -14,-3: + 0: 65535 + -14,-2: + 0: 65535 + -14,-1: + 0: 65535 + -13,-4: + 0: 65527 + 1: 8 + -13,-3: + 0: 65535 + -13,-2: + 0: 65535 + -13,-1: + 0: 65535 + -15,-8: + 0: 32768 + 1: 24588 + -15,-7: + 0: 34952 + 1: 25122 + -15,-6: + 0: 34952 + 1: 8706 + -15,-5: + 0: 2184 + 1: 9766 + -14,-8: + 0: 65280 + 1: 159 + -14,-7: + 0: 65535 + -14,-6: + 0: 65535 + -14,-5: + 0: 65535 + -13,-8: + 0: 63232 + 1: 15 + -13,-7: + 0: 65535 + -13,-6: + 0: 65527 + 1: 8 + -13,-5: + 0: 16383 + 1: 49152 + -15,0: + 0: 34952 + 1: 8802 + -15,1: + 0: 136 + 1: 610 + -14,0: + 0: 65535 + -14,1: + 0: 4095 + 1: 4096 + -13,0: + 0: 65535 + -13,1: + 0: 2047 + 1: 16384 + -9,-11: + 0: 65280 + 1: 23 + -9,-10: + 0: 65535 + -9,-9: + 0: 65535 + -3,7: + 0: 65535 + -3,4: + 0: 52428 + 1: 4401 + -3,5: + 0: 52428 + 1: 49 + -3,6: + 0: 52428 + 1: 4401 + -2,4: + 0: 65535 + -2,5: + 0: 65535 + -2,6: + 0: 65535 + -2,7: + 0: 65535 + -1,4: + 0: 65535 + -1,5: + 0: 65535 + -1,6: + 0: 65535 + -1,7: + 0: 65535 + 0,4: + 0: 65535 + 0,5: + 0: 65535 + 0,6: + 0: 65535 + 0,7: + 0: 65535 + 1,4: + 0: 65535 + 1,5: + 0: 13119 + 1: 3072 + 1,6: + 0: 13107 + 1: 35968 + 1,7: + 0: 13107 + 1: 35016 + 2,4: + 0: 4369 + 1: 25664 + 2,5: + 0: 1 + 1: 788 + 0,8: + 0: 65407 + 0,9: + 0: 65535 + 1,8: + 0: 13091 + 1,9: + 0: 13107 + -3,8: + 0: 65439 + -3,9: + 0: 65535 + -2,8: + 0: 65535 + -2,9: + 0: 65535 + -1,8: + 0: 65535 + -1,9: + 0: 65535 + 12,0: + 0: 65535 + 12,1: + 0: 1 + 1: 240 + 13,0: + 0: 30583 + 1: 32768 + 5,-6: + 0: 65535 + 6,-8: + 0: 65535 + 6,-7: + 0: 65535 + 6,-6: + 0: 65535 + 6,-9: + 0: 65535 + -10,-5: + 1: 65535 + 4,-12: + 1: 28672 + -6,-12: + 1: 49152 + -5,-12: + 1: 61440 + 4,3: + 1: 8 + 5,3: + 1: 15 + 6,3: + 1: 9 + 7,3: + 1: 15 + 8,3: + 1: 15 + 10,2: + 1: 244 + 11,2: + 1: 250 + 9,-8: + 1: 4352 + 9,-11: + 1: 4353 + 9,-10: + 1: 4369 + 9,-9: + 1: 4369 + 14,-2: + 1: 241 + 14,-1: + 1: 4369 + 15,-2: + 1: 113 + 14,-6: + 1: 61440 + 15,-6: + 1: 45056 + -12,2: + 1: 17607 + -12,3: + 1: 50372 + -8,5: + 1: 8 + -7,5: + 1: 15 + -6,5: + 1: 15 + -5,5: + 1: 7 + -12,4: + 1: 136 + -11,4: + 1: 244 + -10,4: + 1: 3652 + -10,-8: + 1: 50244 + -16,-4: + 1: 19524 + -16,-3: + 1: 17484 + -16,-2: + 1: 12 + -15,2: + 1: 12 + -14,2: + 1: 15 + -13,2: + 1: 15 + -10,-11: + 1: 50252 + -10,-10: + 1: 17412 + -10,-9: + 1: 19532 + -4,4: + 1: 114 + 12,2: + 1: 48 + 13,1: + 1: 177 + 14,0: + 1: 4353 + 14,1: + 1: 17 uniqueMixes: - volume: 2500 temperature: 293.15 @@ -946,5402 +2749,51107 @@ entities: chunkSize: 4 - type: GasTileOverlay - type: RadiationGridResistance - - type: SpreaderGrid - - type: GridPathfinding +- proto: AcousticGuitarInstrument + entities: + - uid: 1179 + components: + - type: Transform + pos: 20.620842,-6.433382 + parent: 2 +- proto: ActionStethoscope + entities: + - uid: 7985 + components: + - type: Transform + parent: 7984 + - type: EntityTargetAction + container: 7984 +- proto: ActionToggleInternals + entities: + - uid: 7919 + components: + - type: Transform + parent: 7918 + - type: InstantAction + container: 7918 +- proto: ActionToggleLight + entities: + - uid: 2622 + components: + - type: Transform + parent: 2361 + - type: InstantAction + container: 2361 + - uid: 8211 + components: + - type: Transform + parent: 8210 + - type: InstantAction + container: 8210 +- proto: AirAlarm + entities: + - uid: 7647 + components: + - type: Transform + pos: -9.5,-14.5 + parent: 2 + - type: DeviceList + devices: + - 6148 + - 6149 + - 6150 + - 7457 + - 6772 + - 6767 + - 7462 + - 7458 + - 6768 + - 6769 + - 7460 + - 7461 + - 6766 + - 7459 + - 6770 + - 7431 + - 6819 + - 6277 + - uid: 7648 + components: + - type: Transform + pos: 4.5,24.5 + parent: 2 + - type: DeviceList + devices: + - 6235 + - 6926 + - 6301 + - 6128 + - 6127 + - uid: 7649 + components: + - type: Transform + pos: -3.5,6.5 + parent: 2 + - type: DeviceList + devices: + - 6129 + - 6130 + - 6320 + - 6951 + - 6236 + - 6254 + - 6960 + - 6528 + - 6139 + - 6140 + - 6132 + - 6131 + - 6142 + - 6141 + - 6138 + - 6135 + - uid: 7650 + components: + - type: Transform + pos: 35.5,1.5 + parent: 2 + - type: DeviceList + devices: + - 6174 + - 6175 + - 6177 + - 6984 + - 6357 + - 6238 + - 6194 + - 6198 + - 6134 + - 6133 + - uid: 7651 + components: + - type: Transform + pos: 20.5,9.5 + parent: 2 + - type: DeviceList + devices: + - 6459 + - 7018 + - 6195 + - 6194 + - 6196 + - 6237 + - 6994 + - 6441 + - 6998 + - 6239 + - 6179 + - 6197 + - 6458 + - 6240 + - 7008 + - uid: 7652 + components: + - type: Transform + pos: 19.5,-10.5 + parent: 2 + - type: DeviceList + devices: + - 6199 + - 6198 + - 6200 + - 6201 + - 6202 + - 6242 + - 7044 + - 6428 + - 6429 + - 7042 + - 6243 + - 6244 + - 6427 + - 7033 + - 6430 + - 6245 + - 7053 + - 6246 + - 7059 + - 6431 + - uid: 7653 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,-9.5 + parent: 2 + - type: DeviceList + devices: + - 6174 + - 6175 + - 6177 + - 7086 + - 6247 + - 6086 + - 2522 + - 4308 + - 6460 + - 6203 + - uid: 7654 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 54.5,-9.5 + parent: 2 + - type: DeviceList + devices: + - 6204 + - 6205 + - 6206 + - 6207 + - 6471 + - 6252 + - 7115 + - 6248 + - 6466 + - 7094 + - 6249 + - 7106 + - 6483 + - 6250 + - 7122 + - 6487 + - 6251 + - 7127 + - 6488 + - uid: 7655 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-29.5 + parent: 2 + - type: DeviceList + devices: + - 4308 + - 2522 + - 6086 + - 7150 + - 6508 + - 6253 + - 6164 + - 6180 + - uid: 7656 + components: + - type: Transform + pos: -35.5,1.5 + parent: 2 + - type: DeviceList + devices: + - 6228 + - 6229 + - 6230 + - 6217 + - 6209 + - 6208 + - 6137 + - 6136 + - 6552 + - 6255 + - 7237 + - uid: 7657 + components: + - type: Transform + pos: -28.5,14.5 + parent: 2 + - type: DeviceList + devices: + - 6214 + - 6213 + - 6208 + - 6209 + - 6210 + - 6211 + - 6215 + - 6212 + - 6216 + - 6259 + - 7202 + - 6566 + - 6561 + - 6256 + - 7185 + - 6572 + - 6257 + - 7208 + - 7214 + - 6258 + - 6589 + - 7219 + - 6599 + - 6260 + - 7223 + - 6606 + - 6261 + - 6613 + - 7233 + - 6263 + - uid: 7658 + components: + - type: Transform + pos: -28.5,-4.5 + parent: 2 + - type: DeviceList + devices: + - 6217 + - 6219 + - 6220 + - 6218 + - 6221 + - 6632 + - 6265 + - 7249 + - 6621 + - 7261 + - 6264 + - 6262 + - 7241 + - 6278 + - 6639 + - 7265 + - 6266 + - 7272 + - 6640 + - 6267 + - uid: 7659 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,-16.5 + parent: 2 + - type: DeviceList + devices: + - 6228 + - 6229 + - 6230 + - 6222 + - 6233 + - 6232 + - 6231 + - 7312 + - 6268 + - uid: 7660 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -55.5,-15.5 + parent: 2 + - type: DeviceList + devices: + - 6222 + - 6223 + - 6226 + - 6224 + - 6225 + - 7333 + - 6730 + - 6731 + - 6270 + - 7329 + - 6709 + - 6269 + - 7315 + - 6692 + - 6272 + - 6722 + - 7343 + - 6273 + - 6723 + - 7349 + - uid: 7661 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-30.5 + parent: 2 + - type: DeviceList + devices: + - 6231 + - 6232 + - 6233 + - 6747 + - 6274 + - 7381 + - 6189 + - 6168 + - uid: 7662 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-28.5 + parent: 2 + - type: DeviceList + devices: + - 6147 + - 6146 + - 6145 + - 6275 + - 6827 + - 7405 + - 6150 + - 6149 + - 6148 + - 6151 + - 6152 + - 6143 + - 6144 + - uid: 7663 + components: + - type: Transform + pos: 4.5,-14.5 + parent: 2 + - type: DeviceList + devices: + - 6152 + - 6151 + - 6154 + - 6155 + - 6156 + - 6157 + - 6158 + - 6153 + - 6765 + - 6276 + - 7420 + - uid: 7664 + components: + - type: Transform + pos: -7.5,-30.5 + parent: 2 + - type: DeviceList + devices: + - 6145 + - 6146 + - 6147 + - 6169 + - 6170 + - 6167 + - 6166 + - 6165 + - 6161 + - 6159 + - 6160 + - 6173 + - 6172 + - 6171 + - 6163 + - 6162 + - 7495 + - 6838 + - 6279 + - 6190 + - uid: 7665 + components: + - type: Transform + pos: 12.5,-31.5 + parent: 2 + - type: DeviceList + devices: + - 6171 + - 6172 + - 6173 + - 6280 + - 7497 + - 6876 + - uid: 7666 + components: + - type: Transform + pos: 1.5,-43.5 + parent: 2 + - type: DeviceList + devices: + - 6160 + - 6161 + - 6159 + - 6176 + - 6181 + - 6182 + - 6165 + - 6166 + - 6167 + - 6183 + - 6184 + - 6185 + - 7510 + - 6282 + - 7513 + - uid: 7667 + components: + - type: Transform + pos: -13.5,-58.5 + parent: 2 + - type: DeviceList + devices: + - 6185 + - 6184 + - 6183 + - 7543 + - 6908 + - 6284 + - uid: 7668 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-65.5 + parent: 2 + - type: DeviceList + devices: + - 6182 + - 6181 + - 6176 + - 6283 + - 7562 + - 6877 +- proto: Airlock + entities: + - uid: 353 + components: + - type: Transform + pos: -11.5,-18.5 + parent: 2 + - type: DeviceLinkSink + links: + - 8652 + - uid: 354 + components: + - type: Transform + pos: -11.5,-14.5 + parent: 2 + - type: DeviceLinkSink + links: + - 8661 + - uid: 355 + components: + - type: Transform + pos: -14.5,-13.5 + parent: 2 + - type: DeviceLinkSink + links: + - 8193 + - uid: 356 + components: + - type: Transform + pos: -14.5,-19.5 + parent: 2 + - type: DeviceLinkSink + links: + - 8656 + - uid: 357 + components: + - type: Transform + pos: -8.5,-19.5 + parent: 2 + - type: DeviceLinkSink + links: + - 8654 + - uid: 358 + components: + - type: Transform + pos: -8.5,-13.5 + parent: 2 + - type: DeviceLinkSink + links: + - 8663 +- proto: AirlockArmoryLocked + entities: + - uid: 2273 + components: + - type: Transform + pos: -19.5,11.5 + parent: 2 +- proto: AirlockAtmosphericsGlassLocked + entities: + - uid: 1423 + components: + - type: Transform + pos: 50.5,-15.5 + parent: 2 +- proto: AirlockBarLocked + entities: + - uid: 1549 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,-32.5 + parent: 2 + - uid: 1618 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,-30.5 + parent: 2 +- proto: AirlockCaptainLocked + entities: + - uid: 2578 + components: + - type: Transform + pos: -53.5,0.5 + parent: 2 + - uid: 2579 + components: + - type: Transform + pos: -53.5,-6.5 + parent: 2 +- proto: AirlockCargoGlassLocked + entities: + - uid: 1043 + components: + - type: Transform + pos: 23.5,-4.5 + parent: 2 +- proto: AirlockCargoLocked + entities: + - uid: 1045 + components: + - type: Transform + pos: 19.5,-7.5 + parent: 2 +- proto: AirlockChemistryLocked + entities: + - uid: 1956 + components: + - type: Transform + pos: -29.5,-6.5 + parent: 2 +- proto: AirlockChiefEngineerLocked + entities: + - uid: 1413 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 54.5,-10.5 + parent: 2 + - uid: 1497 + components: + - type: Transform + pos: 58.5,-13.5 + parent: 2 +- proto: AirlockChiefMedicalOfficerLocked + entities: + - uid: 1837 + components: + - type: Transform + pos: -27.5,-10.5 + parent: 2 + - uid: 2037 + components: + - type: Transform + pos: -24.5,-15.5 + parent: 2 +- proto: AirlockCommandLocked + entities: + - uid: 2543 + components: + - type: Transform + pos: -47.5,-11.5 + parent: 2 + - uid: 3065 + components: + - type: Transform + pos: 5.5,11.5 + parent: 2 + - uid: 3134 + components: + - type: Transform + pos: -6.5,11.5 + parent: 2 +- proto: AirlockDetectiveLocked + entities: + - uid: 2148 + components: + - type: Transform + pos: -17.5,5.5 + parent: 2 +- proto: AirlockEngineeringGlassLocked + entities: + - uid: 1310 + components: + - type: Transform + pos: 47.5,-11.5 + parent: 2 + - uid: 1382 + components: + - type: Transform + pos: 50.5,-7.5 + parent: 2 +- proto: AirlockEngineeringLocked + entities: + - uid: 3167 + components: + - type: Transform + pos: -8.5,28.5 + parent: 2 + - uid: 3184 + components: + - type: Transform + pos: -44.5,4.5 + parent: 2 + - uid: 3205 + components: + - type: Transform + pos: -39.5,-4.5 + parent: 2 + - uid: 3255 + components: + - type: Transform + pos: 9.5,-26.5 + parent: 2 + - uid: 3276 + components: + - type: Transform + pos: 35.5,-6.5 + parent: 2 + - uid: 3321 + components: + - type: Transform + pos: 43.5,5.5 + parent: 2 + - uid: 3366 + components: + - type: Transform + pos: 11.5,-5.5 + parent: 2 - proto: AirlockExternalGlass entities: - - uid: 2 + - uid: 694 + components: + - type: Transform + pos: 12.5,-57.5 + parent: 2 + - uid: 765 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-64.5 + parent: 2 + - uid: 766 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-57.5 + parent: 2 + - uid: 767 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-57.5 + parent: 2 + - uid: 768 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-64.5 + parent: 2 + - uid: 779 + components: + - type: Transform + pos: -13.5,-57.5 + parent: 2 + - uid: 780 + components: + - type: Transform + pos: -13.5,-64.5 + parent: 2 + - uid: 825 + components: + - type: Transform + pos: 12.5,-64.5 + parent: 2 +- proto: AirlockExternalGlassShuttleArrivals + entities: + - uid: 679 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-64.5 + parent: 2 + - uid: 762 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-57.5 + parent: 2 + - uid: 763 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-57.5 + parent: 2 + - uid: 764 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-64.5 + parent: 2 + - uid: 781 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,-64.5 + parent: 2 + - uid: 782 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,-57.5 + parent: 2 + - uid: 828 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,-57.5 + parent: 2 + - uid: 829 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,-64.5 + parent: 2 +- proto: AirlockGlass + entities: + - uid: 110 + components: + - type: Transform + pos: 11.5,-35.5 + parent: 2 + - uid: 117 + components: + - type: Transform + pos: 11.5,-34.5 + parent: 2 + - uid: 3375 + components: + - type: Transform + pos: 11.5,-33.5 + parent: 2 + - uid: 6186 + components: + - type: Transform + pos: 8.5,-51.5 + parent: 2 + - uid: 6187 + components: + - type: Transform + pos: 9.5,-51.5 + parent: 2 + - uid: 6188 + components: + - type: Transform + pos: 10.5,-51.5 + parent: 2 + - uid: 6191 + components: + - type: Transform + pos: -11.5,-51.5 + parent: 2 + - uid: 6192 + components: + - type: Transform + pos: -10.5,-51.5 + parent: 2 + - uid: 6193 + components: + - type: Transform + pos: -9.5,-51.5 + parent: 2 +- proto: AirlockHeadOfPersonnelLocked + entities: + - uid: 2688 + components: + - type: Transform + pos: -53.5,-16.5 + parent: 2 + - uid: 2694 + components: + - type: Transform + pos: -53.5,-23.5 + parent: 2 +- proto: AirlockHeadOfSecurityLocked + entities: + - uid: 2092 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,11.5 + parent: 2 + - uid: 2379 + components: + - type: Transform + pos: -36.5,12.5 + parent: 2 +- proto: AirlockHydroponicsLocked + entities: + - uid: 1769 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-7.5 + parent: 2 + - uid: 1791 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,8.5 + parent: 2 + - uid: 1797 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,6.5 + parent: 2 + - uid: 5667 + components: + - type: Transform + pos: -2.5,-13.5 + parent: 2 +- proto: AirlockMaintLocked + entities: + - uid: 905 + components: + - type: Transform + pos: 1.5,-26.5 + parent: 2 + - uid: 922 + components: + - type: Transform + pos: 8.5,-30.5 + parent: 2 + - uid: 1294 + components: + - type: Transform + pos: 45.5,-0.5 + parent: 2 + - uid: 1332 + components: + - type: Transform + pos: 13.5,-2.5 + parent: 2 + - uid: 1640 + components: + - type: Transform + pos: 28.5,1.5 + parent: 2 + - uid: 1641 + components: + - type: Transform + pos: 35.5,-2.5 + parent: 2 + - uid: 1643 + components: + - type: Transform + pos: 41.5,-12.5 + parent: 2 + - uid: 2440 + components: + - type: Transform + pos: -41.5,-8.5 + parent: 2 + - uid: 2442 + components: + - type: Transform + pos: -38.5,1.5 + parent: 2 + - uid: 2824 + components: + - type: Transform + pos: -45.5,0.5 + parent: 2 + - uid: 2988 + components: + - type: Transform + pos: 2.5,24.5 + parent: 2 + - uid: 3168 + components: + - type: Transform + pos: -6.5,22.5 + parent: 2 + - uid: 3231 + components: + - type: Transform + pos: -32.5,-13.5 + parent: 2 + - uid: 3297 + components: + - type: Transform + pos: 37.5,-13.5 + parent: 2 + - uid: 3355 + components: + - type: Transform + pos: 49.5,1.5 + parent: 2 +- proto: AirlockMedicalGlassLocked + entities: + - uid: 1836 + components: + - type: Transform + pos: -24.5,-4.5 + parent: 2 +- proto: AirlockMedicalLocked + entities: + - uid: 1906 + components: + - type: Transform + pos: -19.5,-6.5 + parent: 2 +- proto: AirlockQuartermasterGlassLocked + entities: + - uid: 995 + components: + - type: Transform + pos: 24.5,-10.5 + parent: 2 +- proto: AirlockQuartermasterLocked + entities: + - uid: 1051 + components: + - type: Transform + pos: 30.5,-12.5 + parent: 2 +- proto: AirlockResearchDirectorGlassLocked + entities: + - uid: 1227 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,8.5 + parent: 2 +- proto: AirlockResearchDirectorLocked + entities: + - uid: 1228 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,6.5 + parent: 2 +- proto: AirlockSalvageLocked + entities: + - uid: 984 + components: + - type: Transform + pos: 27.5,-7.5 + parent: 2 +- proto: AirlockScienceGlassLocked + entities: + - uid: 1133 + components: + - type: Transform + pos: 23.5,3.5 + parent: 2 +- proto: AirlockScienceLocked + entities: + - uid: 1150 + components: + - type: Transform + pos: 19.5,5.5 + parent: 2 +- proto: AirlockSecurityLocked + entities: + - uid: 2089 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,5.5 + parent: 2 + - uid: 2090 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,3.5 + parent: 2 + - uid: 2091 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,3.5 + parent: 2 + - uid: 2266 + components: + - type: Transform + pos: -27.5,14.5 + parent: 2 +- proto: AirSensor + entities: + - uid: 6190 + components: + - type: Transform + pos: 7.5,-39.5 + parent: 2 + - uid: 6235 + components: + - type: Transform + pos: -0.5,22.5 + parent: 2 + - uid: 6236 + components: + - type: Transform + pos: -0.5,-4.5 + parent: 2 + - uid: 6237 + components: + - type: Transform + pos: 22.5,7.5 + parent: 2 + - uid: 6238 + components: + - type: Transform + pos: 23.5,1.5 + parent: 2 + - uid: 6239 + components: + - type: Transform + pos: 29.5,9.5 + parent: 2 + - uid: 6240 + components: + - type: Transform + pos: 35.5,6.5 + parent: 2 + - uid: 6241 + components: + - type: Transform + pos: 15.5,7.5 + parent: 2 + - uid: 6242 + components: + - type: Transform + pos: 22.5,-10.5 + parent: 2 + - uid: 6243 + components: + - type: Transform + pos: 18.5,-4.5 + parent: 2 + - uid: 6244 + components: + - type: Transform + pos: 30.5,-8.5 + parent: 2 + - uid: 6245 + components: + - type: Transform + pos: 27.5,-13.5 + parent: 2 + - uid: 6246 + components: + - type: Transform + pos: 33.5,-11.5 + parent: 2 + - uid: 6247 + components: + - type: Transform + pos: 42.5,-11.5 + parent: 2 + - uid: 6248 + components: + - type: Transform + pos: 51.5,-10.5 + parent: 2 + - uid: 6249 + components: + - type: Transform + pos: 48.5,-5.5 + parent: 2 + - uid: 6250 + components: + - type: Transform + pos: 55.5,-9.5 + parent: 2 + - uid: 6251 + components: + - type: Transform + pos: 57.5,-15.5 + parent: 2 + - uid: 6252 + components: + - type: Transform + pos: 53.5,-18.5 + parent: 2 + - uid: 6253 + components: + - type: Transform + pos: 31.5,-31.5 + parent: 2 + - uid: 6254 + components: + - type: Transform + pos: 1.5,-2.5 + parent: 2 + - uid: 6255 + components: + - type: Transform + pos: -26.5,-0.5 + parent: 2 + - uid: 6256 + components: + - type: Transform + pos: -21.5,4.5 + parent: 2 + - uid: 6257 + components: + - type: Transform + pos: -13.5,6.5 + parent: 2 + - uid: 6258 + components: + - type: Transform + pos: -18.5,13.5 + parent: 2 + - uid: 6259 + components: + - type: Transform + pos: -36.5,3.5 + parent: 2 + - uid: 6260 + components: + - type: Transform + pos: -22.5,16.5 + parent: 2 + - uid: 6261 + components: + - type: Transform + pos: -35.5,10.5 + parent: 2 + - uid: 6262 + components: + - type: Transform + pos: -21.5,-5.5 + parent: 2 + - uid: 6263 + components: + - type: Transform + pos: -41.5,14.5 + parent: 2 + - uid: 6264 + components: + - type: Transform + pos: -15.5,-3.5 + parent: 2 + - uid: 6265 + components: + - type: Transform + pos: -34.5,-4.5 + parent: 2 + - uid: 6266 + components: + - type: Transform + pos: -26.5,-14.5 + parent: 2 + - uid: 6267 + components: + - type: Transform + pos: -26.5,-19.5 + parent: 2 + - uid: 6268 + components: + - type: Transform + pos: -45.5,-13.5 + parent: 2 + - uid: 6269 + components: + - type: Transform + pos: -51.5,-7.5 + parent: 2 + - uid: 6270 + components: + - type: Transform + pos: -50.5,-0.5 + parent: 2 + - uid: 6272 + components: + - type: Transform + pos: -55.5,-18.5 + parent: 2 + - uid: 6273 + components: + - type: Transform + pos: -51.5,-24.5 + parent: 2 + - uid: 6274 + components: + - type: Transform + pos: -33.5,-30.5 + parent: 2 + - uid: 6275 + components: + - type: Transform + pos: 0.5,-23.5 + parent: 2 + - uid: 6276 + components: + - type: Transform + pos: 10.5,-16.5 + parent: 2 + - uid: 6277 + components: + - type: Transform + pos: -12.5,-16.5 + parent: 2 + - uid: 6279 + components: + - type: Transform + pos: -8.5,-39.5 + parent: 2 + - uid: 6280 + components: + - type: Transform + pos: 16.5,-33.5 + parent: 2 + - uid: 6281 + components: + - type: Transform + pos: 20.5,-30.5 + parent: 2 + - uid: 6282 + components: + - type: Transform + pos: -0.5,-47.5 + parent: 2 + - uid: 6283 + components: + - type: Transform + pos: 10.5,-61.5 + parent: 2 + - uid: 6284 + components: + - type: Transform + pos: -11.5,-61.5 + parent: 2 + - uid: 6731 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -51.5,4.5 + parent: 2 +- proto: APCBasic + entities: + - uid: 3864 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-52.5 + parent: 2 + - uid: 3880 + components: + - type: Transform + pos: 2.5,1.5 + parent: 2 + - uid: 3881 + components: + - type: Transform + pos: 32.5,-20.5 + parent: 2 + - uid: 3882 + components: + - type: Transform + pos: 43.5,1.5 + parent: 2 + - uid: 3883 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-9.5 + parent: 2 + - uid: 3884 + components: + - type: Transform + pos: 25.5,10.5 + parent: 2 + - uid: 3885 + components: + - type: Transform + pos: 49.5,-7.5 + parent: 2 + - uid: 3886 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,-34.5 + parent: 2 + - uid: 3887 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-52.5 + parent: 2 + - uid: 3889 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-25.5 + parent: 2 + - uid: 3890 + components: + - type: Transform + pos: -13.5,-14.5 + parent: 2 + - uid: 3891 + components: + - type: Transform + pos: 10.5,-9.5 + parent: 2 + - uid: 3892 + components: + - type: Transform + pos: -21.5,-4.5 + parent: 2 + - uid: 3893 + components: + - type: Transform + pos: -30.5,9.5 + parent: 2 + - uid: 3894 + components: + - type: Transform + pos: -50.5,-7.5 + parent: 2 + - uid: 3895 + components: + - type: Transform + pos: -43.5,1.5 + parent: 2 + - uid: 3896 + components: + - type: Transform + pos: -33.5,-20.5 + parent: 2 + - uid: 3897 + components: + - type: Transform + pos: -3.5,24.5 + parent: 2 +- proto: APCElectronics + entities: + - uid: 7923 + components: + - type: Transform + pos: 51.70546,-3.3273845 + parent: 2 +- proto: AppraisalTool + entities: + - uid: 1094 + components: + - type: Transform + pos: 16.336403,-3.492324 + parent: 2 +- proto: AtmosDeviceFanTiny + entities: + - uid: 328 + components: + - type: Transform + pos: 4.5,-64.5 + parent: 2 + - uid: 375 + components: + - type: Transform + pos: 4.5,-57.5 + parent: 2 + - uid: 687 + components: + - type: Transform + pos: -5.5,-64.5 + parent: 2 + - uid: 769 + components: + - type: Transform + pos: -5.5,-57.5 + parent: 2 + - uid: 7469 + components: + - type: Transform + pos: -15.5,-64.5 + parent: 2 + - uid: 7641 + components: + - type: Transform + pos: -15.5,-57.5 + parent: 2 + - uid: 7696 + components: + - type: Transform + pos: 14.5,-57.5 + parent: 2 + - uid: 7699 + components: + - type: Transform + pos: 14.5,-64.5 + parent: 2 +- proto: BannerCargo + entities: + - uid: 1038 + components: + - type: Transform + pos: 20.5,-3.5 + parent: 2 + - uid: 1039 + components: + - type: Transform + pos: 26.5,-3.5 + parent: 2 +- proto: BannerEngineering + entities: + - uid: 1315 + components: + - type: Transform + pos: 46.5,-8.5 + parent: 2 + - uid: 1316 + components: + - type: Transform + pos: 46.5,-14.5 + parent: 2 +- proto: BannerMedical + entities: + - uid: 1909 + components: + - type: Transform + pos: -21.5,-3.5 + parent: 2 + - uid: 1910 + components: + - type: Transform + pos: -27.5,-3.5 + parent: 2 +- proto: BannerNanotrasen + entities: + - uid: 2544 + components: + - type: Transform + pos: -46.5,-8.5 + parent: 2 + - uid: 2545 + components: + - type: Transform + pos: -46.5,-14.5 + parent: 2 + - uid: 3060 + components: + - type: Transform + pos: -2.5,20.5 + parent: 2 + - uid: 3061 + components: + - type: Transform + pos: 1.5,20.5 + parent: 2 +- proto: BannerScience + entities: + - uid: 1123 + components: + - type: Transform + pos: 21.5,2.5 + parent: 2 + - uid: 1124 + components: + - type: Transform + pos: 25.5,2.5 + parent: 2 +- proto: BannerSecurity + entities: + - uid: 2403 + components: + - type: Transform + pos: -22.5,2.5 + parent: 2 + - uid: 2404 + components: + - type: Transform + pos: -26.5,2.5 + parent: 2 +- proto: Barricade + entities: + - uid: 8602 + components: + - type: Transform + pos: -39.5,-11.5 + parent: 2 +- proto: BarricadeBlock + entities: + - uid: 8567 + components: + - type: Transform + pos: 37.5,-13.5 + parent: 2 +- proto: BarSign + entities: + - uid: 477 + components: + - type: Transform + pos: 15.5,-27.5 + parent: 2 +- proto: BaseComputer + entities: + - uid: 949 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,-14.5 + parent: 2 + - uid: 1021 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-2.5 + parent: 2 + - uid: 1049 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 52.5,-14.5 + parent: 2 + - uid: 1080 + components: + - type: Transform + pos: 28.5,-11.5 + parent: 2 + - uid: 1186 + components: + - type: Transform + pos: -1.5,1.5 + parent: 2 + - uid: 1239 + components: + - type: Transform + pos: -21.5,13.5 + parent: 2 + - uid: 1261 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,10.5 + parent: 2 + - uid: 1462 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,14.5 + parent: 2 + - uid: 1463 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -49.5,-4.5 + parent: 2 + - uid: 1471 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -55.5,-20.5 + parent: 2 + - uid: 1499 + components: + - type: Transform + pos: -49.5,-1.5 + parent: 2 + - uid: 1804 + components: + - type: Transform + pos: -48.5,-18.5 + parent: 2 + - uid: 1809 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,-13.5 + parent: 2 + - uid: 1810 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,-7.5 + parent: 2 + - uid: 1980 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -48.5,-3.5 + parent: 2 + - uid: 1987 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -54.5,-22.5 + parent: 2 + - uid: 1988 + components: + - type: Transform + pos: 21.5,-5.5 + parent: 2 + - uid: 2128 + components: + - type: Transform + pos: 31.5,9.5 + parent: 2 + - uid: 2152 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,-13.5 + parent: 2 + - uid: 2156 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,4.5 + parent: 2 + - uid: 2278 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 55.5,-12.5 + parent: 2 + - uid: 2316 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,-12.5 + parent: 2 + - uid: 2317 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,7.5 + parent: 2 + - uid: 2352 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,10.5 + parent: 2 + - uid: 2535 + components: + - type: Transform + pos: -32.5,15.5 + parent: 2 + - uid: 2537 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -52.5,-1.5 + parent: 2 + - uid: 2538 + components: + - type: Transform + pos: -49.5,-18.5 + parent: 2 + - uid: 2581 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,0.5 + parent: 2 +- proto: Beaker + entities: + - uid: 7819 + components: + - type: Transform + pos: 16.754908,8.746695 + parent: 2 +- proto: Bed + entities: + - uid: 361 + components: + - type: Transform + pos: -14.5,-22.5 + parent: 2 + - uid: 362 + components: + - type: Transform + pos: -14.5,-10.5 + parent: 2 + - uid: 363 + components: + - type: Transform + pos: -10.5,-21.5 + parent: 2 + - uid: 364 + components: + - type: Transform + pos: -10.5,-11.5 + parent: 2 + - uid: 365 + components: + - type: Transform + pos: -6.5,-20.5 + parent: 2 + - uid: 366 + components: + - type: Transform + pos: -6.5,-12.5 + parent: 2 + - uid: 1022 + components: + - type: Transform + pos: 35.5,-11.5 + parent: 2 + - uid: 1238 + components: + - type: Transform + pos: 37.5,6.5 + parent: 2 + - uid: 1477 + components: + - type: Transform + pos: 60.5,-17.5 + parent: 2 + - uid: 2012 + components: + - type: Transform + pos: -22.5,-18.5 + parent: 2 + - uid: 2354 + components: + - type: Transform + pos: -37.5,13.5 + parent: 2 + - uid: 2583 + components: + - type: Transform + pos: -48.5,3.5 + parent: 2 + - uid: 2754 + components: + - type: Transform + pos: -48.5,-26.5 + parent: 2 +- proto: BedsheetCaptain + entities: + - uid: 2582 + components: + - type: Transform + pos: -48.5,3.5 + parent: 2 +- proto: BedsheetCE + entities: + - uid: 1478 + components: + - type: Transform + pos: 60.5,-17.5 + parent: 2 +- proto: BedsheetCMO + entities: + - uid: 2013 + components: + - type: Transform + pos: -22.5,-18.5 + parent: 2 +- proto: BedsheetHOP + entities: + - uid: 2755 + components: + - type: Transform + pos: -48.5,-26.5 + parent: 2 +- proto: BedsheetHOS + entities: + - uid: 2355 + components: + - type: Transform + pos: -37.5,13.5 + parent: 2 +- proto: BedsheetQM + entities: + - uid: 1003 + components: + - type: Transform + pos: 35.5,-11.5 + parent: 2 +- proto: BedsheetRD + entities: + - uid: 1290 + components: + - type: Transform + pos: 37.5,6.5 + parent: 2 +- proto: BedsheetSpawner + entities: + - uid: 8186 + components: + - type: Transform + pos: -6.5,-20.5 + parent: 2 + - uid: 8187 + components: + - type: Transform + pos: -10.5,-21.5 + parent: 2 + - uid: 8188 + components: + - type: Transform + pos: -14.5,-22.5 + parent: 2 + - uid: 8189 + components: + - type: Transform + pos: -14.5,-10.5 + parent: 2 + - uid: 8190 + components: + - type: Transform + pos: -10.5,-11.5 + parent: 2 + - uid: 8191 + components: + - type: Transform + pos: -6.5,-12.5 + parent: 2 +- proto: BlastDoorOpen + entities: + - uid: 17 + components: + - type: Transform + pos: -19.5,-40.5 + parent: 2 + - uid: 18 + components: + - type: Transform + pos: -19.5,-39.5 + parent: 2 + - uid: 19 + components: + - type: Transform + pos: -19.5,-41.5 + parent: 2 + - uid: 20 + components: + - type: Transform + pos: -19.5,-38.5 + parent: 2 + - uid: 96 + components: + - type: Transform + pos: -19.5,-37.5 + parent: 2 + - uid: 119 + components: + - type: Transform + pos: -11.5,-1.5 + parent: 2 + - uid: 120 + components: + - type: Transform + pos: -11.5,-2.5 + parent: 2 + - uid: 121 + components: + - type: Transform + pos: -11.5,-0.5 + parent: 2 + - uid: 872 + components: + - type: Transform + pos: 18.5,-41.5 + parent: 2 + - uid: 873 + components: + - type: Transform + pos: 18.5,-40.5 + parent: 2 + - uid: 874 + components: + - type: Transform + pos: 18.5,-39.5 + parent: 2 + - uid: 875 + components: + - type: Transform + pos: 18.5,-38.5 + parent: 2 + - uid: 876 + components: + - type: Transform + pos: 18.5,-37.5 + parent: 2 + - uid: 2920 + components: + - type: Transform + pos: -11.5,0.5 + parent: 2 + - uid: 2921 + components: + - type: Transform + pos: -11.5,1.5 + parent: 2 + - uid: 2922 + components: + - type: Transform + pos: -2.5,-10.5 + parent: 2 + - uid: 2923 + components: + - type: Transform + pos: -1.5,-10.5 + parent: 2 + - uid: 2924 + components: + - type: Transform + pos: -0.5,-10.5 + parent: 2 + - uid: 2925 + components: + - type: Transform + pos: 0.5,-10.5 + parent: 2 + - uid: 2926 + components: + - type: Transform + pos: 1.5,-10.5 + parent: 2 + - uid: 2927 + components: + - type: Transform + pos: 10.5,-2.5 + parent: 2 + - uid: 2928 + components: + - type: Transform + pos: 10.5,-1.5 + parent: 2 + - uid: 2929 + components: + - type: Transform + pos: 10.5,-0.5 + parent: 2 + - uid: 2930 + components: + - type: Transform + pos: 10.5,0.5 + parent: 2 + - uid: 2931 + components: + - type: Transform + pos: 10.5,1.5 + parent: 2 + - uid: 2932 + components: + - type: Transform + pos: 1.5,9.5 + parent: 2 + - uid: 2933 + components: + - type: Transform + pos: 0.5,9.5 + parent: 2 + - uid: 2934 + components: + - type: Transform + pos: -0.5,9.5 + parent: 2 + - uid: 2935 + components: + - type: Transform + pos: -1.5,9.5 + parent: 2 + - uid: 2936 + components: + - type: Transform + pos: -2.5,9.5 + parent: 2 + - uid: 2999 + components: + - type: Transform + pos: -1.5,24.5 + parent: 2 + - type: DeviceLinkSink + links: + - 8671 + - uid: 3000 + components: + - type: Transform + pos: -0.5,24.5 + parent: 2 + - type: DeviceLinkSink + links: + - 8671 + - uid: 3001 + components: + - type: Transform + pos: 0.5,24.5 + parent: 2 + - type: DeviceLinkSink + links: + - 8671 +- proto: BluespaceBeaker + entities: + - uid: 7734 + components: + - type: Transform + pos: -3.478174,15.587257 + parent: 2 +- proto: BodyBagFolded + entities: + - uid: 2019 + components: + - type: Transform + pos: -17.710842,-3.8202307 + parent: 2 + - uid: 8049 + components: + - type: Transform + pos: -39.39791,4.7876472 + parent: 2 +- proto: BookBartendersManual + entities: + - uid: 1634 + components: + - type: Transform + pos: 20.599146,-29.45145 + parent: 2 +- proto: BookChemicalCompendium + entities: + - uid: 7990 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.532465,-5.4157457 + parent: 2 +- proto: BookEngineersHandbook + entities: + - uid: 1535 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 52.34361,-9.281574 + parent: 2 +- proto: BookRandom + entities: + - uid: 2970 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5868554,21.578016 + parent: 2 +- proto: BookSecurity + entities: + - uid: 2114 + components: + - type: Transform + pos: -28.510689,6.64287 + parent: 2 +- proto: BookshelfFilled + entities: + - uid: 373 + components: + - type: Transform + pos: -6.5,-14.5 + parent: 2 + - uid: 1224 + components: + - type: Transform + pos: 32.5,5.5 + parent: 2 + - uid: 1225 + components: + - type: Transform + pos: 31.5,5.5 + parent: 2 + - uid: 1226 + components: + - type: Transform + pos: 30.5,5.5 + parent: 2 + - uid: 2590 + components: + - type: Transform + pos: -54.5,5.5 + parent: 2 + - uid: 2591 + components: + - type: Transform + pos: -50.5,5.5 + parent: 2 + - uid: 2758 + components: + - type: Transform + pos: -50.5,-24.5 + parent: 2 +- proto: BoozeDispenser + entities: + - uid: 1611 + components: + - type: Transform + pos: 14.5,-28.5 + parent: 2 + - uid: 2529 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -58.5,-12.5 + parent: 2 +- proto: BorgCharger + entities: + - uid: 4 + components: + - type: Transform + pos: 11.5,-14.5 + parent: 2 + - uid: 7796 + components: + - type: Transform + pos: -7.5,-5.5 + parent: 2 +- proto: BoxFolderBlack + entities: + - uid: 1070 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.556377,7.6372237 + parent: 2 + - uid: 2341 + components: + - type: Transform + pos: -33.955326,15.646605 + parent: 2 +- proto: BoxFolderBlue + entities: + - uid: 1963 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -54.60803,-2.3818717 + parent: 2 + - uid: 8145 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -55.601955,-21.708435 + parent: 2 +- proto: BoxFolderClipboard + entities: + - uid: 1093 + components: + - type: Transform + pos: 20.562931,-5.520147 + parent: 2 + - uid: 2039 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.518494,-8.45272 + parent: 2 + - uid: 2299 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.479166,10.842613 + parent: 2 + - uid: 6674 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -55.470604,-1.5442758 + parent: 2 + - uid: 8003 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.537085,-11.464508 + parent: 2 + - uid: 8055 + components: + - type: Transform + pos: -22.614534,12.623489 + parent: 2 +- proto: BoxFolderGrey + entities: + - uid: 7815 + components: + - type: Transform + pos: 26.430199,5.547898 + parent: 2 +- proto: BoxFolderRed + entities: + - uid: 7787 + components: + - type: Transform + pos: 0.038526803,1.5240455 + parent: 2 + - uid: 8098 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.58732,10.571522 + parent: 2 +- proto: BoxFolderWhite + entities: + - uid: 2040 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.001276,-13.388158 + parent: 2 +- proto: BoxFolderYellow + entities: + - uid: 1505 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 55.520176,-13.36852 + parent: 2 +- proto: BoxLatexGloves + entities: + - uid: 1919 + components: + - type: Transform + pos: -18.027534,-8.318678 + parent: 2 +- proto: BoxMRE + entities: + - uid: 8213 + components: + - type: Transform + pos: 5.4727316,-14.403693 + parent: 2 +- proto: BrokenBottle + entities: + - uid: 8623 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5393,-12.893633 + parent: 2 +- proto: Bucket + entities: + - uid: 8594 + components: + - type: Transform + pos: 12.160258,-8.698183 + parent: 2 +- proto: CableApcExtension + entities: + - uid: 4320 + components: + - type: Transform + pos: 9.5,-47.5 + parent: 2 + - uid: 4346 + components: + - type: Transform + pos: 2.5,1.5 + parent: 2 + - uid: 4347 + components: + - type: Transform + pos: 2.5,0.5 + parent: 2 + - uid: 4348 + components: + - type: Transform + pos: 2.5,-0.5 + parent: 2 + - uid: 4349 + components: + - type: Transform + pos: 1.5,-0.5 + parent: 2 + - uid: 4350 + components: + - type: Transform + pos: 0.5,-0.5 + parent: 2 + - uid: 4351 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 2 + - uid: 4352 + components: + - type: Transform + pos: -1.5,-0.5 + parent: 2 + - uid: 4353 + components: + - type: Transform + pos: -2.5,-0.5 + parent: 2 + - uid: 4354 + components: + - type: Transform + pos: 3.5,-0.5 + parent: 2 + - uid: 4355 + components: + - type: Transform + pos: 4.5,-0.5 + parent: 2 + - uid: 4356 + components: + - type: Transform + pos: 5.5,-0.5 + parent: 2 + - uid: 4357 + components: + - type: Transform + pos: 5.5,0.5 + parent: 2 + - uid: 4358 + components: + - type: Transform + pos: 5.5,1.5 + parent: 2 + - uid: 4359 + components: + - type: Transform + pos: 5.5,2.5 + parent: 2 + - uid: 4360 + components: + - type: Transform + pos: 5.5,3.5 + parent: 2 + - uid: 4361 + components: + - type: Transform + pos: 4.5,3.5 + parent: 2 + - uid: 4362 + components: + - type: Transform + pos: 4.5,4.5 + parent: 2 + - uid: 4363 + components: + - type: Transform + pos: 3.5,4.5 + parent: 2 + - uid: 4364 + components: + - type: Transform + pos: 2.5,4.5 + parent: 2 + - uid: 4365 + components: + - type: Transform + pos: 1.5,4.5 + parent: 2 + - uid: 4366 + components: + - type: Transform + pos: 0.5,4.5 + parent: 2 + - uid: 4367 + components: + - type: Transform + pos: -0.5,4.5 + parent: 2 + - uid: 4368 + components: + - type: Transform + pos: -1.5,4.5 + parent: 2 + - uid: 4369 + components: + - type: Transform + pos: -2.5,4.5 + parent: 2 + - uid: 4370 + components: + - type: Transform + pos: -3.5,4.5 + parent: 2 + - uid: 4371 + components: + - type: Transform + pos: -4.5,4.5 + parent: 2 + - uid: 4372 + components: + - type: Transform + pos: -5.5,4.5 + parent: 2 + - uid: 4373 + components: + - type: Transform + pos: -5.5,3.5 + parent: 2 + - uid: 4374 + components: + - type: Transform + pos: -6.5,3.5 + parent: 2 + - uid: 4375 + components: + - type: Transform + pos: -6.5,2.5 + parent: 2 + - uid: 4376 + components: + - type: Transform + pos: -6.5,1.5 + parent: 2 + - uid: 4377 + components: + - type: Transform + pos: -6.5,0.5 + parent: 2 + - uid: 4378 + components: + - type: Transform + pos: -6.5,-0.5 + parent: 2 + - uid: 4379 + components: + - type: Transform + pos: -6.5,-1.5 + parent: 2 + - uid: 4380 + components: + - type: Transform + pos: -6.5,-2.5 + parent: 2 + - uid: 4381 + components: + - type: Transform + pos: -6.5,-3.5 + parent: 2 + - uid: 4382 + components: + - type: Transform + pos: -6.5,-4.5 + parent: 2 + - uid: 4383 + components: + - type: Transform + pos: -5.5,-4.5 + parent: 2 + - uid: 4384 + components: + - type: Transform + pos: -5.5,-5.5 + parent: 2 + - uid: 4385 + components: + - type: Transform + pos: -4.5,-5.5 + parent: 2 + - uid: 4386 + components: + - type: Transform + pos: -3.5,-5.5 + parent: 2 + - uid: 4387 + components: + - type: Transform + pos: -2.5,-5.5 + parent: 2 + - uid: 4388 + components: + - type: Transform + pos: -1.5,-5.5 + parent: 2 + - uid: 4389 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 2 + - uid: 4390 + components: + - type: Transform + pos: 0.5,-5.5 + parent: 2 + - uid: 4391 + components: + - type: Transform + pos: 1.5,-5.5 + parent: 2 + - uid: 4392 + components: + - type: Transform + pos: 2.5,-5.5 + parent: 2 + - uid: 4393 + components: + - type: Transform + pos: 3.5,-5.5 + parent: 2 + - uid: 4394 + components: + - type: Transform + pos: 4.5,-5.5 + parent: 2 + - uid: 4395 + components: + - type: Transform + pos: 4.5,-4.5 + parent: 2 + - uid: 4396 + components: + - type: Transform + pos: 5.5,-4.5 + parent: 2 + - uid: 4397 + components: + - type: Transform + pos: 5.5,-3.5 + parent: 2 + - uid: 4398 + components: + - type: Transform + pos: 5.5,-2.5 + parent: 2 + - uid: 4399 + components: + - type: Transform + pos: 5.5,-1.5 + parent: 2 + - uid: 4400 + components: + - type: Transform + pos: -0.5,-6.5 + parent: 2 + - uid: 4401 + components: + - type: Transform + pos: -0.5,-7.5 + parent: 2 + - uid: 4402 + components: + - type: Transform + pos: -0.5,-8.5 + parent: 2 + - uid: 4403 + components: + - type: Transform + pos: -0.5,-9.5 + parent: 2 + - uid: 4404 + components: + - type: Transform + pos: -0.5,-10.5 + parent: 2 + - uid: 4405 + components: + - type: Transform + pos: -0.5,-11.5 + parent: 2 + - uid: 4406 + components: + - type: Transform + pos: 6.5,-0.5 + parent: 2 + - uid: 4407 + components: + - type: Transform + pos: 7.5,-0.5 + parent: 2 + - uid: 4408 + components: + - type: Transform + pos: 8.5,-0.5 + parent: 2 + - uid: 4409 + components: + - type: Transform + pos: 9.5,-0.5 + parent: 2 + - uid: 4410 + components: + - type: Transform + pos: 10.5,-0.5 + parent: 2 + - uid: 4411 + components: + - type: Transform + pos: 11.5,-0.5 + parent: 2 + - uid: 4412 + components: + - type: Transform + pos: -0.5,5.5 + parent: 2 + - uid: 4413 + components: + - type: Transform + pos: -0.5,6.5 + parent: 2 + - uid: 4414 + components: + - type: Transform + pos: -0.5,7.5 + parent: 2 + - uid: 4415 + components: + - type: Transform + pos: -0.5,8.5 + parent: 2 + - uid: 4416 + components: + - type: Transform + pos: -0.5,9.5 + parent: 2 + - uid: 4417 + components: + - type: Transform + pos: -0.5,10.5 + parent: 2 + - uid: 4418 + components: + - type: Transform + pos: -7.5,-0.5 + parent: 2 + - uid: 4419 + components: + - type: Transform + pos: -8.5,-0.5 + parent: 2 + - uid: 4420 + components: + - type: Transform + pos: -9.5,-0.5 + parent: 2 + - uid: 4421 + components: + - type: Transform + pos: -10.5,-0.5 + parent: 2 + - uid: 4422 + components: + - type: Transform + pos: -11.5,-0.5 + parent: 2 + - uid: 4423 + components: + - type: Transform + pos: -12.5,-0.5 + parent: 2 + - uid: 4424 + components: + - type: Transform + pos: -3.5,-0.5 + parent: 2 + - uid: 4425 + components: + - type: Transform + pos: -4.5,-0.5 + parent: 2 + - uid: 4426 + components: + - type: Transform + pos: -5.5,-0.5 + parent: 2 + - uid: 4427 + components: + - type: Transform + pos: -3.5,24.5 + parent: 2 + - uid: 4428 + components: + - type: Transform + pos: -3.5,23.5 + parent: 2 + - uid: 4429 + components: + - type: Transform + pos: -3.5,22.5 + parent: 2 + - uid: 4430 + components: + - type: Transform + pos: -2.5,22.5 + parent: 2 + - uid: 4431 + components: + - type: Transform + pos: -1.5,22.5 + parent: 2 + - uid: 4432 + components: + - type: Transform + pos: -0.5,22.5 + parent: 2 + - uid: 4433 + components: + - type: Transform + pos: 0.5,22.5 + parent: 2 + - uid: 4434 + components: + - type: Transform + pos: 1.5,22.5 + parent: 2 + - uid: 4435 + components: + - type: Transform + pos: 2.5,22.5 + parent: 2 + - uid: 4436 + components: + - type: Transform + pos: -0.5,23.5 + parent: 2 + - uid: 4437 + components: + - type: Transform + pos: -0.5,24.5 + parent: 2 + - uid: 4438 + components: + - type: Transform + pos: -0.5,25.5 + parent: 2 + - uid: 4439 + components: + - type: Transform + pos: -0.5,26.5 + parent: 2 + - uid: 4440 + components: + - type: Transform + pos: 2.5,23.5 + parent: 2 + - uid: 4441 + components: + - type: Transform + pos: 2.5,24.5 + parent: 2 + - uid: 4442 + components: + - type: Transform + pos: 2.5,25.5 + parent: 2 + - uid: 4443 + components: + - type: Transform + pos: 2.5,26.5 + parent: 2 + - uid: 4444 + components: + - type: Transform + pos: 2.5,27.5 + parent: 2 + - uid: 4445 + components: + - type: Transform + pos: 2.5,28.5 + parent: 2 + - uid: 4446 + components: + - type: Transform + pos: 2.5,29.5 + parent: 2 + - uid: 4447 + components: + - type: Transform + pos: -4.5,22.5 + parent: 2 + - uid: 4448 + components: + - type: Transform + pos: -5.5,22.5 + parent: 2 + - uid: 4449 + components: + - type: Transform + pos: -6.5,22.5 + parent: 2 + - uid: 4450 + components: + - type: Transform + pos: -7.5,22.5 + parent: 2 + - uid: 4451 + components: + - type: Transform + pos: -8.5,22.5 + parent: 2 + - uid: 4452 + components: + - type: Transform + pos: -8.5,23.5 + parent: 2 + - uid: 4453 + components: + - type: Transform + pos: -8.5,24.5 + parent: 2 + - uid: 4454 + components: + - type: Transform + pos: -8.5,25.5 + parent: 2 + - uid: 4455 + components: + - type: Transform + pos: -3.5,25.5 + parent: 2 + - uid: 4456 + components: + - type: Transform + pos: -3.5,26.5 + parent: 2 + - uid: 4457 + components: + - type: Transform + pos: -3.5,27.5 + parent: 2 + - uid: 4458 + components: + - type: Transform + pos: -3.5,28.5 + parent: 2 + - uid: 4459 + components: + - type: Transform + pos: -3.5,29.5 + parent: 2 + - uid: 4460 + components: + - type: Transform + pos: -2.5,29.5 + parent: 2 + - uid: 4461 + components: + - type: Transform + pos: -1.5,29.5 + parent: 2 + - uid: 4462 + components: + - type: Transform + pos: -0.5,29.5 + parent: 2 + - uid: 4463 + components: + - type: Transform + pos: 0.5,29.5 + parent: 2 + - uid: 4464 + components: + - type: Transform + pos: -4.5,26.5 + parent: 2 + - uid: 4465 + components: + - type: Transform + pos: -5.5,26.5 + parent: 2 + - uid: 4466 + components: + - type: Transform + pos: -6.5,26.5 + parent: 2 + - uid: 4467 + components: + - type: Transform + pos: 0.5,37.5 + parent: 2 + - uid: 4468 + components: + - type: Transform + pos: 0.5,38.5 + parent: 2 + - uid: 4469 + components: + - type: Transform + pos: 0.5,30.5 + parent: 2 + - uid: 4470 + components: + - type: Transform + pos: 0.5,31.5 + parent: 2 + - uid: 4471 + components: + - type: Transform + pos: 0.5,32.5 + parent: 2 + - uid: 4472 + components: + - type: Transform + pos: 0.5,33.5 + parent: 2 + - uid: 4473 + components: + - type: Transform + pos: 0.5,34.5 + parent: 2 + - uid: 4474 + components: + - type: Transform + pos: 0.5,35.5 + parent: 2 + - uid: 4475 + components: + - type: Transform + pos: 0.5,36.5 + parent: 2 + - uid: 4476 + components: + - type: Transform + pos: -0.5,21.5 + parent: 2 + - uid: 4477 + components: + - type: Transform + pos: -0.5,19.5 + parent: 2 + - uid: 4478 + components: + - type: Transform + pos: -0.5,20.5 + parent: 2 + - uid: 4479 + components: + - type: Transform + pos: -0.5,18.5 + parent: 2 + - uid: 4480 + components: + - type: Transform + pos: -0.5,17.5 + parent: 2 + - uid: 4481 + components: + - type: Transform + pos: -0.5,16.5 + parent: 2 + - uid: 4482 + components: + - type: Transform + pos: -0.5,15.5 + parent: 2 + - uid: 4483 + components: + - type: Transform + pos: -0.5,14.5 + parent: 2 + - uid: 4484 + components: + - type: Transform + pos: -0.5,13.5 + parent: 2 + - uid: 4485 + components: + - type: Transform + pos: -0.5,12.5 + parent: 2 + - uid: 4486 + components: + - type: Transform + pos: -1.5,16.5 + parent: 2 + - uid: 4487 + components: + - type: Transform + pos: -2.5,16.5 + parent: 2 + - uid: 4488 + components: + - type: Transform + pos: -3.5,16.5 + parent: 2 + - uid: 4489 + components: + - type: Transform + pos: -3.5,15.5 + parent: 2 + - uid: 4490 + components: + - type: Transform + pos: -3.5,14.5 + parent: 2 + - uid: 4491 + components: + - type: Transform + pos: -3.5,13.5 + parent: 2 + - uid: 4492 + components: + - type: Transform + pos: 0.5,16.5 + parent: 2 + - uid: 4493 + components: + - type: Transform + pos: 1.5,16.5 + parent: 2 + - uid: 4494 + components: + - type: Transform + pos: 2.5,16.5 + parent: 2 + - uid: 4495 + components: + - type: Transform + pos: 2.5,15.5 + parent: 2 + - uid: 4496 + components: + - type: Transform + pos: 2.5,14.5 + parent: 2 + - uid: 4497 + components: + - type: Transform + pos: 2.5,13.5 + parent: 2 + - uid: 4498 + components: + - type: Transform + pos: 2.5,12.5 + parent: 2 + - uid: 4499 + components: + - type: Transform + pos: 2.5,17.5 + parent: 2 + - uid: 4500 + components: + - type: Transform + pos: -3.5,17.5 + parent: 2 + - uid: 4501 + components: + - type: Transform + pos: -3.5,12.5 + parent: 2 + - uid: 4502 + components: + - type: Transform + pos: 10.5,-9.5 + parent: 2 + - uid: 4503 + components: + - type: Transform + pos: -11.5,0.5 + parent: 2 + - uid: 4504 + components: + - type: Transform + pos: -11.5,1.5 + parent: 2 + - uid: 4505 + components: + - type: Transform + pos: -11.5,2.5 + parent: 2 + - uid: 4506 + components: + - type: Transform + pos: -11.5,3.5 + parent: 2 + - uid: 4507 + components: + - type: Transform + pos: -11.5,4.5 + parent: 2 + - uid: 4508 + components: + - type: Transform + pos: -11.5,5.5 + parent: 2 + - uid: 4509 + components: + - type: Transform + pos: -11.5,6.5 + parent: 2 + - uid: 4510 + components: + - type: Transform + pos: -11.5,7.5 + parent: 2 + - uid: 4511 + components: + - type: Transform + pos: -11.5,8.5 + parent: 2 + - uid: 4512 + components: + - type: Transform + pos: -11.5,9.5 + parent: 2 + - uid: 4513 + components: + - type: Transform + pos: -10.5,9.5 + parent: 2 + - uid: 4514 + components: + - type: Transform + pos: -9.5,9.5 + parent: 2 + - uid: 4515 + components: + - type: Transform + pos: -8.5,9.5 + parent: 2 + - uid: 4516 + components: + - type: Transform + pos: -7.5,9.5 + parent: 2 + - uid: 4517 + components: + - type: Transform + pos: -6.5,9.5 + parent: 2 + - uid: 4518 + components: + - type: Transform + pos: -11.5,-1.5 + parent: 2 + - uid: 4519 + components: + - type: Transform + pos: -11.5,-2.5 + parent: 2 + - uid: 4520 + components: + - type: Transform + pos: -11.5,-3.5 + parent: 2 + - uid: 4521 + components: + - type: Transform + pos: -11.5,-4.5 + parent: 2 + - uid: 4522 + components: + - type: Transform + pos: -11.5,-5.5 + parent: 2 + - uid: 4523 + components: + - type: Transform + pos: -11.5,-6.5 + parent: 2 + - uid: 4524 + components: + - type: Transform + pos: -11.5,-7.5 + parent: 2 + - uid: 4525 + components: + - type: Transform + pos: -11.5,-8.5 + parent: 2 + - uid: 4526 + components: + - type: Transform + pos: 10.5,-7.5 + parent: 2 + - uid: 4527 + components: + - type: Transform + pos: 11.5,-7.5 + parent: 2 + - uid: 4528 + components: + - type: Transform + pos: 12.5,-7.5 + parent: 2 + - uid: 4529 + components: + - type: Transform + pos: 13.5,-7.5 + parent: 2 + - uid: 4530 + components: + - type: Transform + pos: 13.5,-6.5 + parent: 2 + - uid: 4531 + components: + - type: Transform + pos: 13.5,-5.5 + parent: 2 + - uid: 4532 + components: + - type: Transform + pos: 13.5,-4.5 + parent: 2 + - uid: 4533 + components: + - type: Transform + pos: 13.5,-3.5 + parent: 2 + - uid: 4534 + components: + - type: Transform + pos: 13.5,-2.5 + parent: 2 + - uid: 4535 + components: + - type: Transform + pos: 13.5,-1.5 + parent: 2 + - uid: 4536 + components: + - type: Transform + pos: 13.5,-0.5 + parent: 2 + - uid: 4537 + components: + - type: Transform + pos: 12.5,-0.5 + parent: 2 + - uid: 4538 + components: + - type: Transform + pos: 12.5,-5.5 + parent: 2 + - uid: 4539 + components: + - type: Transform + pos: 11.5,-5.5 + parent: 2 + - uid: 4540 + components: + - type: Transform + pos: 10.5,-5.5 + parent: 2 + - uid: 4541 + components: + - type: Transform + pos: 10.5,0.5 + parent: 2 + - uid: 4542 + components: + - type: Transform + pos: 10.5,1.5 + parent: 2 + - uid: 4543 + components: + - type: Transform + pos: 10.5,2.5 + parent: 2 + - uid: 4544 + components: + - type: Transform + pos: 10.5,3.5 + parent: 2 + - uid: 4545 + components: + - type: Transform + pos: 10.5,4.5 + parent: 2 + - uid: 4546 + components: + - type: Transform + pos: 10.5,5.5 + parent: 2 + - uid: 4547 + components: + - type: Transform + pos: 10.5,6.5 + parent: 2 + - uid: 4548 + components: + - type: Transform + pos: 10.5,7.5 + parent: 2 + - uid: 4549 + components: + - type: Transform + pos: 10.5,8.5 + parent: 2 + - uid: 4550 + components: + - type: Transform + pos: 10.5,9.5 + parent: 2 + - uid: 4551 + components: + - type: Transform + pos: 9.5,9.5 + parent: 2 + - uid: 4552 + components: + - type: Transform + pos: 8.5,9.5 + parent: 2 + - uid: 4553 + components: + - type: Transform + pos: 7.5,9.5 + parent: 2 + - uid: 4554 + components: + - type: Transform + pos: 6.5,9.5 + parent: 2 + - uid: 4555 + components: + - type: Transform + pos: 5.5,9.5 + parent: 2 + - uid: 4556 + components: + - type: Transform + pos: 10.5,-10.5 + parent: 2 + - uid: 4557 + components: + - type: Transform + pos: 10.5,-11.5 + parent: 2 + - uid: 4558 + components: + - type: Transform + pos: 10.5,-12.5 + parent: 2 + - uid: 4559 + components: + - type: Transform + pos: 10.5,-13.5 + parent: 2 + - uid: 4560 + components: + - type: Transform + pos: 10.5,-14.5 + parent: 2 + - uid: 4561 + components: + - type: Transform + pos: 10.5,-15.5 + parent: 2 + - uid: 4562 + components: + - type: Transform + pos: 10.5,-16.5 + parent: 2 + - uid: 4563 + components: + - type: Transform + pos: 11.5,-16.5 + parent: 2 + - uid: 4564 + components: + - type: Transform + pos: 12.5,-16.5 + parent: 2 + - uid: 4565 + components: + - type: Transform + pos: 13.5,-16.5 + parent: 2 + - uid: 4566 + components: + - type: Transform + pos: 14.5,-16.5 + parent: 2 + - uid: 4567 + components: + - type: Transform + pos: 14.5,-15.5 + parent: 2 + - uid: 4568 + components: + - type: Transform + pos: 14.5,-14.5 + parent: 2 + - uid: 4569 + components: + - type: Transform + pos: 14.5,-13.5 + parent: 2 + - uid: 4570 + components: + - type: Transform + pos: 15.5,-13.5 + parent: 2 + - uid: 4571 + components: + - type: Transform + pos: 15.5,-12.5 + parent: 2 + - uid: 4572 + components: + - type: Transform + pos: 15.5,-11.5 + parent: 2 + - uid: 4573 + components: + - type: Transform + pos: 15.5,-10.5 + parent: 2 + - uid: 4574 + components: + - type: Transform + pos: 6.5,-15.5 + parent: 2 + - uid: 4575 + components: + - type: Transform + pos: 6.5,-14.5 + parent: 2 + - uid: 4576 + components: + - type: Transform + pos: 6.5,-13.5 + parent: 2 + - uid: 4577 + components: + - type: Transform + pos: 5.5,-13.5 + parent: 2 + - uid: 4578 + components: + - type: Transform + pos: 5.5,-12.5 + parent: 2 + - uid: 4579 + components: + - type: Transform + pos: 5.5,-11.5 + parent: 2 + - uid: 4580 + components: + - type: Transform + pos: 5.5,-10.5 + parent: 2 + - uid: 4581 + components: + - type: Transform + pos: 6.5,-17.5 + parent: 2 + - uid: 4582 + components: + - type: Transform + pos: 6.5,-18.5 + parent: 2 + - uid: 4583 + components: + - type: Transform + pos: 6.5,-19.5 + parent: 2 + - uid: 4584 + components: + - type: Transform + pos: 5.5,-19.5 + parent: 2 + - uid: 4585 + components: + - type: Transform + pos: 5.5,-20.5 + parent: 2 + - uid: 4586 + components: + - type: Transform + pos: 5.5,-21.5 + parent: 2 + - uid: 4587 + components: + - type: Transform + pos: 5.5,-22.5 + parent: 2 + - uid: 4588 + components: + - type: Transform + pos: 10.5,-17.5 + parent: 2 + - uid: 4589 + components: + - type: Transform + pos: 10.5,-18.5 + parent: 2 + - uid: 4590 + components: + - type: Transform + pos: 10.5,-19.5 + parent: 2 + - uid: 4591 + components: + - type: Transform + pos: 10.5,-20.5 + parent: 2 + - uid: 4592 + components: + - type: Transform + pos: 10.5,-21.5 + parent: 2 + - uid: 4593 + components: + - type: Transform + pos: 10.5,-22.5 + parent: 2 + - uid: 4594 + components: + - type: Transform + pos: 14.5,-17.5 + parent: 2 + - uid: 4595 + components: + - type: Transform + pos: 14.5,-18.5 + parent: 2 + - uid: 4596 + components: + - type: Transform + pos: 14.5,-19.5 + parent: 2 + - uid: 4597 + components: + - type: Transform + pos: 15.5,-19.5 + parent: 2 + - uid: 4598 + components: + - type: Transform + pos: 15.5,-20.5 + parent: 2 + - uid: 4599 + components: + - type: Transform + pos: 15.5,-21.5 + parent: 2 + - uid: 4600 + components: + - type: Transform + pos: 15.5,-22.5 + parent: 2 + - uid: 4601 + components: + - type: Transform + pos: 6.5,-16.5 + parent: 2 + - uid: 4602 + components: + - type: Transform + pos: 7.5,-16.5 + parent: 2 + - uid: 4603 + components: + - type: Transform + pos: 8.5,-16.5 + parent: 2 + - uid: 4604 + components: + - type: Transform + pos: 9.5,-16.5 + parent: 2 + - uid: 4605 + components: + - type: Transform + pos: 5.5,-16.5 + parent: 2 + - uid: 4606 + components: + - type: Transform + pos: 4.5,-16.5 + parent: 2 + - uid: 4607 + components: + - type: Transform + pos: 3.5,-16.5 + parent: 2 + - uid: 4608 + components: + - type: Transform + pos: 2.5,-16.5 + parent: 2 + - uid: 4609 + components: + - type: Transform + pos: 1.5,-16.5 + parent: 2 + - uid: 4610 + components: + - type: Transform + pos: -0.5,-13.5 + parent: 2 + - uid: 4611 + components: + - type: Transform + pos: -0.5,-14.5 + parent: 2 + - uid: 4612 + components: + - type: Transform + pos: -0.5,-15.5 + parent: 2 + - uid: 4613 + components: + - type: Transform + pos: -0.5,-16.5 + parent: 2 + - uid: 4614 + components: + - type: Transform + pos: -0.5,-17.5 + parent: 2 + - uid: 4615 + components: + - type: Transform + pos: -0.5,-18.5 + parent: 2 + - uid: 4616 + components: + - type: Transform + pos: -0.5,-19.5 + parent: 2 + - uid: 4617 + components: + - type: Transform + pos: -0.5,-20.5 + parent: 2 + - uid: 4618 + components: + - type: Transform + pos: -0.5,-21.5 + parent: 2 + - uid: 4619 + components: + - type: Transform + pos: -0.5,-22.5 + parent: 2 + - uid: 4620 + components: + - type: Transform + pos: -0.5,-23.5 + parent: 2 + - uid: 4621 + components: + - type: Transform + pos: -0.5,-24.5 + parent: 2 + - uid: 4622 + components: + - type: Transform + pos: -0.5,-25.5 + parent: 2 + - uid: 4623 + components: + - type: Transform + pos: -1.5,-25.5 + parent: 2 + - uid: 4624 + components: + - type: Transform + pos: -2.5,-25.5 + parent: 2 + - uid: 4625 + components: + - type: Transform + pos: -1.5,-22.5 + parent: 2 + - uid: 4626 + components: + - type: Transform + pos: -2.5,-22.5 + parent: 2 + - uid: 4627 + components: + - type: Transform + pos: -3.5,-22.5 + parent: 2 + - uid: 4628 + components: + - type: Transform + pos: 0.5,-22.5 + parent: 2 + - uid: 4629 + components: + - type: Transform + pos: 1.5,-22.5 + parent: 2 + - uid: 4630 + components: + - type: Transform + pos: 2.5,-22.5 + parent: 2 + - uid: 4631 + components: + - type: Transform + pos: 2.5,-23.5 + parent: 2 + - uid: 4632 + components: + - type: Transform + pos: -3.5,-23.5 + parent: 2 + - uid: 4633 + components: + - type: Transform + pos: -2.5,-16.5 + parent: 2 + - uid: 4634 + components: + - type: Transform + pos: -3.5,-16.5 + parent: 2 + - uid: 4635 + components: + - type: Transform + pos: -4.5,-16.5 + parent: 2 + - uid: 4636 + components: + - type: Transform + pos: -5.5,-16.5 + parent: 2 + - uid: 4637 + components: + - type: Transform + pos: -6.5,-16.5 + parent: 2 + - uid: 4638 + components: + - type: Transform + pos: -7.5,-16.5 + parent: 2 + - uid: 4639 + components: + - type: Transform + pos: -8.5,-16.5 + parent: 2 + - uid: 4640 + components: + - type: Transform + pos: -9.5,-16.5 + parent: 2 + - uid: 4641 + components: + - type: Transform + pos: -10.5,-16.5 + parent: 2 + - uid: 4642 + components: + - type: Transform + pos: -11.5,-16.5 + parent: 2 + - uid: 4643 + components: + - type: Transform + pos: -12.5,-16.5 + parent: 2 + - uid: 4644 + components: + - type: Transform + pos: -13.5,-16.5 + parent: 2 + - uid: 4645 + components: + - type: Transform + pos: -13.5,-15.5 + parent: 2 + - uid: 4646 + components: + - type: Transform + pos: -13.5,-14.5 + parent: 2 + - uid: 4647 + components: + - type: Transform + pos: -11.5,-15.5 + parent: 2 + - uid: 4648 + components: + - type: Transform + pos: -11.5,-14.5 + parent: 2 + - uid: 4649 + components: + - type: Transform + pos: -11.5,-13.5 + parent: 2 + - uid: 4650 + components: + - type: Transform + pos: -11.5,-12.5 + parent: 2 + - uid: 4651 + components: + - type: Transform + pos: -11.5,-11.5 + parent: 2 + - uid: 4652 + components: + - type: Transform + pos: -8.5,-15.5 + parent: 2 + - uid: 4653 + components: + - type: Transform + pos: -8.5,-14.5 + parent: 2 + - uid: 4654 + components: + - type: Transform + pos: -8.5,-13.5 + parent: 2 + - uid: 4655 + components: + - type: Transform + pos: -8.5,-12.5 + parent: 2 + - uid: 4656 + components: + - type: Transform + pos: -8.5,-11.5 + parent: 2 + - uid: 4657 + components: + - type: Transform + pos: -7.5,-11.5 + parent: 2 + - uid: 4658 + components: + - type: Transform + pos: -8.5,-17.5 + parent: 2 + - uid: 4659 + components: + - type: Transform + pos: -8.5,-18.5 + parent: 2 + - uid: 4660 + components: + - type: Transform + pos: -8.5,-19.5 + parent: 2 + - uid: 4661 + components: + - type: Transform + pos: -8.5,-20.5 + parent: 2 + - uid: 4662 + components: + - type: Transform + pos: -8.5,-21.5 + parent: 2 + - uid: 4663 + components: + - type: Transform + pos: -7.5,-21.5 + parent: 2 + - uid: 4664 + components: + - type: Transform + pos: -11.5,-17.5 + parent: 2 + - uid: 4665 + components: + - type: Transform + pos: -11.5,-18.5 + parent: 2 + - uid: 4666 + components: + - type: Transform + pos: -11.5,-19.5 + parent: 2 + - uid: 4667 + components: + - type: Transform + pos: -11.5,-20.5 + parent: 2 + - uid: 4668 + components: + - type: Transform + pos: -11.5,-21.5 + parent: 2 + - uid: 4669 + components: + - type: Transform + pos: -14.5,-16.5 + parent: 2 + - uid: 4670 + components: + - type: Transform + pos: -14.5,-19.5 + parent: 2 + - uid: 4671 + components: + - type: Transform + pos: -14.5,-18.5 + parent: 2 + - uid: 4672 + components: + - type: Transform + pos: -14.5,-17.5 + parent: 2 + - uid: 4673 + components: + - type: Transform + pos: -14.5,-20.5 + parent: 2 + - uid: 4674 + components: + - type: Transform + pos: -14.5,-21.5 + parent: 2 + - uid: 4675 + components: + - type: Transform + pos: -15.5,-21.5 + parent: 2 + - uid: 4676 + components: + - type: Transform + pos: -14.5,-14.5 + parent: 2 + - uid: 4677 + components: + - type: Transform + pos: -14.5,-13.5 + parent: 2 + - uid: 4678 + components: + - type: Transform + pos: -14.5,-12.5 + parent: 2 + - uid: 4679 + components: + - type: Transform + pos: -14.5,-11.5 + parent: 2 + - uid: 4680 + components: + - type: Transform + pos: -15.5,-11.5 + parent: 2 + - uid: 4681 + components: + - type: Transform + pos: -15.5,-16.5 + parent: 2 + - uid: 4682 + components: + - type: Transform + pos: -16.5,-16.5 + parent: 2 + - uid: 4683 + components: + - type: Transform + pos: 15.5,-16.5 + parent: 2 + - uid: 4684 + components: + - type: Transform + pos: -0.5,-26.5 + parent: 2 + - uid: 4685 + components: + - type: Transform + pos: -0.5,-27.5 + parent: 2 + - uid: 4686 + components: + - type: Transform + pos: -0.5,-28.5 + parent: 2 + - uid: 4687 + components: + - type: Transform + pos: -0.5,-29.5 + parent: 2 + - uid: 4688 + components: + - type: Transform + pos: -0.5,-30.5 + parent: 2 + - uid: 4689 + components: + - type: Transform + pos: -0.5,-31.5 + parent: 2 + - uid: 4690 + components: + - type: Transform + pos: 0.5,-26.5 + parent: 2 + - uid: 4691 + components: + - type: Transform + pos: 1.5,-26.5 + parent: 2 + - uid: 4692 + components: + - type: Transform + pos: 2.5,-26.5 + parent: 2 + - uid: 4693 + components: + - type: Transform + pos: 3.5,-26.5 + parent: 2 + - uid: 4694 + components: + - type: Transform + pos: 3.5,-27.5 + parent: 2 + - uid: 4695 + components: + - type: Transform + pos: 4.5,-27.5 + parent: 2 + - uid: 4696 + components: + - type: Transform + pos: 5.5,-27.5 + parent: 2 + - uid: 4697 + components: + - type: Transform + pos: 6.5,-27.5 + parent: 2 + - uid: 4698 + components: + - type: Transform + pos: 7.5,-27.5 + parent: 2 + - uid: 4699 + components: + - type: Transform + pos: 8.5,-27.5 + parent: 2 + - uid: 4700 + components: + - type: Transform + pos: 0.5,-31.5 + parent: 2 + - uid: 4701 + components: + - type: Transform + pos: 0.5,-32.5 + parent: 2 + - uid: 4702 + components: + - type: Transform + pos: 1.5,-32.5 + parent: 2 + - uid: 4703 + components: + - type: Transform + pos: 2.5,-32.5 + parent: 2 + - uid: 4704 + components: + - type: Transform + pos: 3.5,-32.5 + parent: 2 + - uid: 4705 + components: + - type: Transform + pos: 4.5,-32.5 + parent: 2 + - uid: 4706 + components: + - type: Transform + pos: 5.5,-32.5 + parent: 2 + - uid: 4707 + components: + - type: Transform + pos: 6.5,-32.5 + parent: 2 + - uid: 4708 + components: + - type: Transform + pos: 7.5,-32.5 + parent: 2 + - uid: 4709 + components: + - type: Transform + pos: 8.5,-32.5 + parent: 2 + - uid: 4710 + components: + - type: Transform + pos: 9.5,-32.5 + parent: 2 + - uid: 4711 + components: + - type: Transform + pos: 9.5,-33.5 + parent: 2 + - uid: 4712 + components: + - type: Transform + pos: 9.5,-34.5 + parent: 2 + - uid: 4713 + components: + - type: Transform + pos: 9.5,-35.5 + parent: 2 + - uid: 4714 + components: + - type: Transform + pos: 9.5,-36.5 + parent: 2 + - uid: 4715 + components: + - type: Transform + pos: 9.5,-37.5 + parent: 2 + - uid: 4716 + components: + - type: Transform + pos: 9.5,-38.5 + parent: 2 + - uid: 4717 + components: + - type: Transform + pos: 9.5,-39.5 + parent: 2 + - uid: 4718 + components: + - type: Transform + pos: 10.5,-39.5 + parent: 2 + - uid: 4719 + components: + - type: Transform + pos: 11.5,-39.5 + parent: 2 + - uid: 4720 + components: + - type: Transform + pos: 12.5,-39.5 + parent: 2 + - uid: 4721 + components: + - type: Transform + pos: 13.5,-39.5 + parent: 2 + - uid: 4722 + components: + - type: Transform + pos: 14.5,-39.5 + parent: 2 + - uid: 4723 + components: + - type: Transform + pos: 15.5,-39.5 + parent: 2 + - uid: 4724 + components: + - type: Transform + pos: 16.5,-39.5 + parent: 2 + - uid: 4725 + components: + - type: Transform + pos: 17.5,-39.5 + parent: 2 + - uid: 4726 + components: + - type: Transform + pos: 18.5,-39.5 + parent: 2 + - uid: 4727 + components: + - type: Transform + pos: 19.5,-39.5 + parent: 2 + - uid: 4728 + components: + - type: Transform + pos: -1.5,-31.5 + parent: 2 + - uid: 4729 + components: + - type: Transform + pos: -1.5,-32.5 + parent: 2 + - uid: 4730 + components: + - type: Transform + pos: -2.5,-32.5 + parent: 2 + - uid: 4731 + components: + - type: Transform + pos: -3.5,-32.5 + parent: 2 + - uid: 4732 + components: + - type: Transform + pos: -4.5,-32.5 + parent: 2 + - uid: 4733 + components: + - type: Transform + pos: -5.5,-32.5 + parent: 2 + - uid: 4734 + components: + - type: Transform + pos: -6.5,-32.5 + parent: 2 + - uid: 4735 + components: + - type: Transform + pos: -7.5,-32.5 + parent: 2 + - uid: 4736 + components: + - type: Transform + pos: -8.5,-32.5 + parent: 2 + - uid: 4737 + components: + - type: Transform + pos: -9.5,-32.5 + parent: 2 + - uid: 4738 + components: + - type: Transform + pos: -10.5,-32.5 + parent: 2 + - uid: 4739 + components: + - type: Transform + pos: -10.5,-33.5 + parent: 2 + - uid: 4740 + components: + - type: Transform + pos: -10.5,-34.5 + parent: 2 + - uid: 4741 + components: + - type: Transform + pos: -10.5,-35.5 + parent: 2 + - uid: 4742 + components: + - type: Transform + pos: -10.5,-36.5 + parent: 2 + - uid: 4743 + components: + - type: Transform + pos: -10.5,-37.5 + parent: 2 + - uid: 4744 + components: + - type: Transform + pos: -10.5,-38.5 + parent: 2 + - uid: 4745 + components: + - type: Transform + pos: -10.5,-39.5 + parent: 2 + - uid: 4746 + components: + - type: Transform + pos: -11.5,-39.5 + parent: 2 + - uid: 4747 + components: + - type: Transform + pos: -12.5,-39.5 + parent: 2 + - uid: 4748 + components: + - type: Transform + pos: -13.5,-39.5 + parent: 2 + - uid: 4749 + components: + - type: Transform + pos: -14.5,-39.5 + parent: 2 + - uid: 4750 + components: + - type: Transform + pos: -15.5,-39.5 + parent: 2 + - uid: 4751 + components: + - type: Transform + pos: -16.5,-39.5 + parent: 2 + - uid: 4752 + components: + - type: Transform + pos: -17.5,-39.5 + parent: 2 + - uid: 4753 + components: + - type: Transform + pos: -18.5,-39.5 + parent: 2 + - uid: 4754 + components: + - type: Transform + pos: -19.5,-39.5 + parent: 2 + - uid: 4755 + components: + - type: Transform + pos: -20.5,-39.5 + parent: 2 + - uid: 4756 + components: + - type: Transform + pos: 18.5,-34.5 + parent: 2 + - uid: 4757 + components: + - type: Transform + pos: 17.5,-34.5 + parent: 2 + - uid: 4758 + components: + - type: Transform + pos: 16.5,-34.5 + parent: 2 + - uid: 4759 + components: + - type: Transform + pos: 15.5,-34.5 + parent: 2 + - uid: 4760 + components: + - type: Transform + pos: 14.5,-34.5 + parent: 2 + - uid: 4761 + components: + - type: Transform + pos: 13.5,-34.5 + parent: 2 + - uid: 4762 + components: + - type: Transform + pos: 12.5,-34.5 + parent: 2 + - uid: 4763 + components: + - type: Transform + pos: 13.5,-35.5 + parent: 2 + - uid: 4764 + components: + - type: Transform + pos: 13.5,-36.5 + parent: 2 + - uid: 4765 + components: + - type: Transform + pos: 14.5,-36.5 + parent: 2 + - uid: 4766 + components: + - type: Transform + pos: 15.5,-36.5 + parent: 2 + - uid: 4767 + components: + - type: Transform + pos: 16.5,-36.5 + parent: 2 + - uid: 4768 + components: + - type: Transform + pos: 13.5,-33.5 + parent: 2 + - uid: 4769 + components: + - type: Transform + pos: 13.5,-32.5 + parent: 2 + - uid: 4770 + components: + - type: Transform + pos: 13.5,-31.5 + parent: 2 + - uid: 4771 + components: + - type: Transform + pos: 13.5,-30.5 + parent: 2 + - uid: 4772 + components: + - type: Transform + pos: 13.5,-29.5 + parent: 2 + - uid: 4773 + components: + - type: Transform + pos: 14.5,-30.5 + parent: 2 + - uid: 4774 + components: + - type: Transform + pos: 15.5,-30.5 + parent: 2 + - uid: 4775 + components: + - type: Transform + pos: 16.5,-30.5 + parent: 2 + - uid: 4776 + components: + - type: Transform + pos: 17.5,-30.5 + parent: 2 + - uid: 4777 + components: + - type: Transform + pos: 18.5,-30.5 + parent: 2 + - uid: 4778 + components: + - type: Transform + pos: 19.5,-30.5 + parent: 2 + - uid: 4779 + components: + - type: Transform + pos: 19.5,-31.5 + parent: 2 + - uid: 4780 + components: + - type: Transform + pos: 19.5,-32.5 + parent: 2 + - uid: 4781 + components: + - type: Transform + pos: 8.5,-31.5 + parent: 2 + - uid: 4782 + components: + - type: Transform + pos: 8.5,-30.5 + parent: 2 + - uid: 4783 + components: + - type: Transform + pos: 8.5,-29.5 + parent: 2 + - uid: 4784 + components: + - type: Transform + pos: -10.5,-41.5 + parent: 2 + - uid: 4785 + components: + - type: Transform + pos: -10.5,-42.5 + parent: 2 + - uid: 4786 + components: + - type: Transform + pos: -10.5,-43.5 + parent: 2 + - uid: 4787 + components: + - type: Transform + pos: -10.5,-44.5 + parent: 2 + - uid: 4788 + components: + - type: Transform + pos: -10.5,-45.5 + parent: 2 + - uid: 4789 + components: + - type: Transform + pos: -10.5,-46.5 + parent: 2 + - uid: 4790 + components: + - type: Transform + pos: -10.5,-47.5 + parent: 2 + - uid: 4791 + components: + - type: Transform + pos: -10.5,-48.5 + parent: 2 + - uid: 4792 + components: + - type: Transform + pos: -10.5,-49.5 + parent: 2 + - uid: 4793 + components: + - type: Transform + pos: -10.5,-50.5 + parent: 2 + - uid: 4794 + components: + - type: Transform + pos: -10.5,-51.5 + parent: 2 + - uid: 4795 + components: + - type: Transform + pos: -10.5,-52.5 + parent: 2 + - uid: 4796 + components: + - type: Transform + pos: -9.5,-52.5 + parent: 2 + - uid: 4797 + components: + - type: Transform + pos: -8.5,-52.5 + parent: 2 + - uid: 4798 + components: + - type: Transform + pos: -7.5,-52.5 + parent: 2 + - uid: 4799 + components: + - type: Transform + pos: -10.5,-53.5 + parent: 2 + - uid: 4800 + components: + - type: Transform + pos: -10.5,-54.5 + parent: 2 + - uid: 4801 + components: + - type: Transform + pos: -10.5,-55.5 + parent: 2 + - uid: 4802 + components: + - type: Transform + pos: -10.5,-56.5 + parent: 2 + - uid: 4803 + components: + - type: Transform + pos: -10.5,-57.5 + parent: 2 + - uid: 4804 + components: + - type: Transform + pos: -9.5,-57.5 + parent: 2 + - uid: 4805 + components: + - type: Transform + pos: -8.5,-57.5 + parent: 2 + - uid: 4806 + components: + - type: Transform + pos: -7.5,-57.5 + parent: 2 + - uid: 4807 + components: + - type: Transform + pos: -6.5,-57.5 + parent: 2 + - uid: 4808 + components: + - type: Transform + pos: -11.5,-57.5 + parent: 2 + - uid: 4809 + components: + - type: Transform + pos: -12.5,-57.5 + parent: 2 + - uid: 4810 + components: + - type: Transform + pos: -13.5,-57.5 + parent: 2 + - uid: 4811 + components: + - type: Transform + pos: -14.5,-57.5 + parent: 2 + - uid: 4812 + components: + - type: Transform + pos: -10.5,-58.5 + parent: 2 + - uid: 4813 + components: + - type: Transform + pos: -10.5,-59.5 + parent: 2 + - uid: 4814 + components: + - type: Transform + pos: -10.5,-60.5 + parent: 2 + - uid: 4815 + components: + - type: Transform + pos: -10.5,-61.5 + parent: 2 + - uid: 4816 + components: + - type: Transform + pos: -10.5,-62.5 + parent: 2 + - uid: 4817 + components: + - type: Transform + pos: -10.5,-63.5 + parent: 2 + - uid: 4818 + components: + - type: Transform + pos: -10.5,-64.5 + parent: 2 + - uid: 4819 + components: + - type: Transform + pos: -9.5,-64.5 + parent: 2 + - uid: 4820 + components: + - type: Transform + pos: -8.5,-64.5 + parent: 2 + - uid: 4821 + components: + - type: Transform + pos: -7.5,-64.5 + parent: 2 + - uid: 4822 + components: + - type: Transform + pos: -6.5,-64.5 + parent: 2 + - uid: 4823 + components: + - type: Transform + pos: -11.5,-64.5 + parent: 2 + - uid: 4824 + components: + - type: Transform + pos: -12.5,-64.5 + parent: 2 + - uid: 4825 + components: + - type: Transform + pos: -13.5,-64.5 + parent: 2 + - uid: 4826 + components: + - type: Transform + pos: -14.5,-64.5 + parent: 2 + - uid: 4827 + components: + - type: Transform + pos: -10.5,-65.5 + parent: 2 + - uid: 4828 + components: + - type: Transform + pos: -10.5,-66.5 + parent: 2 + - uid: 4829 + components: + - type: Transform + pos: -10.5,-67.5 + parent: 2 + - uid: 4830 + components: + - type: Transform + pos: -9.5,-62.5 + parent: 2 + - uid: 4831 + components: + - type: Transform + pos: -8.5,-62.5 + parent: 2 + - uid: 4832 + components: + - type: Transform + pos: -8.5,-61.5 + parent: 2 + - uid: 4833 + components: + - type: Transform + pos: -8.5,-60.5 + parent: 2 + - uid: 4834 + components: + - type: Transform + pos: -8.5,-59.5 + parent: 2 + - uid: 4835 + components: + - type: Transform + pos: -11.5,-62.5 + parent: 2 + - uid: 4836 + components: + - type: Transform + pos: -12.5,-62.5 + parent: 2 + - uid: 4837 + components: + - type: Transform + pos: -12.5,-61.5 + parent: 2 + - uid: 4838 + components: + - type: Transform + pos: -12.5,-60.5 + parent: 2 + - uid: 4839 + components: + - type: Transform + pos: -12.5,-59.5 + parent: 2 + - uid: 4840 + components: + - type: Transform + pos: -9.5,-46.5 + parent: 2 + - uid: 4841 + components: + - type: Transform + pos: -8.5,-46.5 + parent: 2 + - uid: 4842 + components: + - type: Transform + pos: -7.5,-46.5 + parent: 2 + - uid: 4843 + components: + - type: Transform + pos: -6.5,-46.5 + parent: 2 + - uid: 4844 + components: + - type: Transform + pos: -5.5,-46.5 + parent: 2 + - uid: 4845 + components: + - type: Transform + pos: -4.5,-46.5 + parent: 2 + - uid: 4846 + components: + - type: Transform + pos: -3.5,-46.5 + parent: 2 + - uid: 4847 + components: + - type: Transform + pos: -2.5,-46.5 + parent: 2 + - uid: 4848 + components: + - type: Transform + pos: -1.5,-46.5 + parent: 2 + - uid: 4849 + components: + - type: Transform + pos: -1.5,-45.5 + parent: 2 + - uid: 4850 + components: + - type: Transform + pos: -1.5,-44.5 + parent: 2 + - uid: 4851 + components: + - type: Transform + pos: 0.5,-44.5 + parent: 2 + - uid: 4852 + components: + - type: Transform + pos: 0.5,-45.5 + parent: 2 + - uid: 4853 + components: + - type: Transform + pos: 0.5,-46.5 + parent: 2 + - uid: 4854 + components: + - type: Transform + pos: -1.5,-47.5 + parent: 2 + - uid: 4855 + components: + - type: Transform + pos: 0.5,-47.5 + parent: 2 + - uid: 4856 + components: + - type: Transform + pos: 1.5,-46.5 + parent: 2 + - uid: 4857 + components: + - type: Transform + pos: 2.5,-46.5 + parent: 2 + - uid: 4858 + components: + - type: Transform + pos: 3.5,-46.5 + parent: 2 + - uid: 4859 + components: + - type: Transform + pos: 4.5,-46.5 + parent: 2 + - uid: 4860 + components: + - type: Transform + pos: 5.5,-46.5 + parent: 2 + - uid: 4861 + components: + - type: Transform + pos: 6.5,-46.5 + parent: 2 + - uid: 4862 + components: + - type: Transform + pos: 7.5,-46.5 + parent: 2 + - uid: 4863 + components: + - type: Transform + pos: 8.5,-46.5 + parent: 2 + - uid: 4864 + components: + - type: Transform + pos: 9.5,-46.5 + parent: 2 + - uid: 4865 + components: + - type: Transform + pos: 9.5,-48.5 + parent: 2 + - uid: 4866 + components: + - type: Transform + pos: 9.5,-49.5 + parent: 2 + - uid: 4867 + components: + - type: Transform + pos: 9.5,-50.5 + parent: 2 + - uid: 4868 + components: + - type: Transform + pos: 9.5,-51.5 + parent: 2 + - uid: 4869 + components: + - type: Transform + pos: 9.5,-52.5 + parent: 2 + - uid: 4870 + components: + - type: Transform + pos: 8.5,-52.5 + parent: 2 + - uid: 4871 + components: + - type: Transform + pos: 7.5,-52.5 + parent: 2 + - uid: 4872 + components: + - type: Transform + pos: 6.5,-52.5 + parent: 2 + - uid: 4873 + components: + - type: Transform + pos: -9.5,-39.5 + parent: 2 + - uid: 4874 + components: + - type: Transform + pos: 9.5,-53.5 + parent: 2 + - uid: 4875 + components: + - type: Transform + pos: 9.5,-54.5 + parent: 2 + - uid: 4876 + components: + - type: Transform + pos: 9.5,-55.5 + parent: 2 + - uid: 4877 + components: + - type: Transform + pos: 9.5,-56.5 + parent: 2 + - uid: 4878 + components: + - type: Transform + pos: 9.5,-57.5 + parent: 2 + - uid: 4879 + components: + - type: Transform + pos: 9.5,-58.5 + parent: 2 + - uid: 4880 + components: + - type: Transform + pos: 9.5,-59.5 + parent: 2 + - uid: 4881 + components: + - type: Transform + pos: 9.5,-60.5 + parent: 2 + - uid: 4882 + components: + - type: Transform + pos: 9.5,-61.5 + parent: 2 + - uid: 4883 + components: + - type: Transform + pos: 9.5,-62.5 + parent: 2 + - uid: 4884 + components: + - type: Transform + pos: 9.5,-63.5 + parent: 2 + - uid: 4885 + components: + - type: Transform + pos: 9.5,-64.5 + parent: 2 + - uid: 4886 + components: + - type: Transform + pos: 9.5,-65.5 + parent: 2 + - uid: 4887 + components: + - type: Transform + pos: 9.5,-66.5 + parent: 2 + - uid: 4888 + components: + - type: Transform + pos: 9.5,-67.5 + parent: 2 + - uid: 4889 + components: + - type: Transform + pos: 8.5,-64.5 + parent: 2 + - uid: 4890 + components: + - type: Transform + pos: 7.5,-64.5 + parent: 2 + - uid: 4891 + components: + - type: Transform + pos: 6.5,-64.5 + parent: 2 + - uid: 4892 + components: + - type: Transform + pos: 5.5,-64.5 + parent: 2 + - uid: 4893 + components: + - type: Transform + pos: 10.5,-64.5 + parent: 2 + - uid: 4894 + components: + - type: Transform + pos: 11.5,-64.5 + parent: 2 + - uid: 4895 + components: + - type: Transform + pos: 12.5,-64.5 + parent: 2 + - uid: 4896 + components: + - type: Transform + pos: 13.5,-64.5 + parent: 2 + - uid: 4897 + components: + - type: Transform + pos: 10.5,-62.5 + parent: 2 + - uid: 4898 + components: + - type: Transform + pos: 11.5,-62.5 + parent: 2 + - uid: 4899 + components: + - type: Transform + pos: 11.5,-61.5 + parent: 2 + - uid: 4900 + components: + - type: Transform + pos: 11.5,-60.5 + parent: 2 + - uid: 4901 + components: + - type: Transform + pos: 11.5,-59.5 + parent: 2 + - uid: 4902 + components: + - type: Transform + pos: 8.5,-62.5 + parent: 2 + - uid: 4903 + components: + - type: Transform + pos: 7.5,-62.5 + parent: 2 + - uid: 4904 + components: + - type: Transform + pos: 7.5,-61.5 + parent: 2 + - uid: 4905 + components: + - type: Transform + pos: 7.5,-60.5 + parent: 2 + - uid: 4906 + components: + - type: Transform + pos: 7.5,-59.5 + parent: 2 + - uid: 4907 + components: + - type: Transform + pos: 8.5,-57.5 + parent: 2 + - uid: 4908 + components: + - type: Transform + pos: 7.5,-57.5 + parent: 2 + - uid: 4909 + components: + - type: Transform + pos: 6.5,-57.5 + parent: 2 + - uid: 4910 + components: + - type: Transform + pos: 5.5,-57.5 + parent: 2 + - uid: 4911 + components: + - type: Transform + pos: 10.5,-57.5 + parent: 2 + - uid: 4912 + components: + - type: Transform + pos: 11.5,-57.5 + parent: 2 + - uid: 4913 + components: + - type: Transform + pos: 12.5,-57.5 + parent: 2 + - uid: 4914 + components: + - type: Transform + pos: 13.5,-57.5 + parent: 2 + - uid: 4915 + components: + - type: Transform + pos: 9.5,-45.5 + parent: 2 + - uid: 4916 + components: + - type: Transform + pos: 9.5,-44.5 + parent: 2 + - uid: 4917 + components: + - type: Transform + pos: 9.5,-43.5 + parent: 2 + - uid: 4918 + components: + - type: Transform + pos: 9.5,-42.5 + parent: 2 + - uid: 4919 + components: + - type: Transform + pos: 9.5,-41.5 + parent: 2 + - uid: 4920 + components: + - type: Transform + pos: -8.5,-39.5 + parent: 2 + - uid: 4921 + components: + - type: Transform + pos: -34.5,-22.5 + parent: 2 + - uid: 4922 + components: + - type: Transform + pos: 8.5,-39.5 + parent: 2 + - uid: 4923 + components: + - type: Transform + pos: 7.5,-39.5 + parent: 2 + - uid: 4924 + components: + - type: Transform + pos: 0.5,-33.5 + parent: 2 + - uid: 4925 + components: + - type: Transform + pos: 0.5,-34.5 + parent: 2 + - uid: 4926 + components: + - type: Transform + pos: -1.5,-34.5 + parent: 2 + - uid: 4927 + components: + - type: Transform + pos: -1.5,-33.5 + parent: 2 + - uid: 4928 + components: + - type: Transform + pos: 32.5,-38.5 + parent: 2 + - uid: 4929 + components: + - type: Transform + pos: 32.5,-39.5 + parent: 2 + - uid: 4930 + components: + - type: Transform + pos: 32.5,-20.5 + parent: 2 + - uid: 4931 + components: + - type: Transform + pos: 32.5,-21.5 + parent: 2 + - uid: 4932 + components: + - type: Transform + pos: 32.5,-22.5 + parent: 2 + - uid: 4933 + components: + - type: Transform + pos: 32.5,-23.5 + parent: 2 + - uid: 4934 + components: + - type: Transform + pos: 32.5,-24.5 + parent: 2 + - uid: 4935 + components: + - type: Transform + pos: 32.5,-25.5 + parent: 2 + - uid: 4936 + components: + - type: Transform + pos: 32.5,-26.5 + parent: 2 + - uid: 4937 + components: + - type: Transform + pos: 32.5,-27.5 + parent: 2 + - uid: 4938 + components: + - type: Transform + pos: 32.5,-28.5 + parent: 2 + - uid: 4939 + components: + - type: Transform + pos: 32.5,-29.5 + parent: 2 + - uid: 4940 + components: + - type: Transform + pos: 32.5,-30.5 + parent: 2 + - uid: 4941 + components: + - type: Transform + pos: 32.5,-31.5 + parent: 2 + - uid: 4942 + components: + - type: Transform + pos: 32.5,-32.5 + parent: 2 + - uid: 4943 + components: + - type: Transform + pos: 32.5,-33.5 + parent: 2 + - uid: 4944 + components: + - type: Transform + pos: 32.5,-34.5 + parent: 2 + - uid: 4945 + components: + - type: Transform + pos: 32.5,-35.5 + parent: 2 + - uid: 4946 + components: + - type: Transform + pos: 32.5,-36.5 + parent: 2 + - uid: 4947 + components: + - type: Transform + pos: 32.5,-37.5 + parent: 2 + - uid: 4948 + components: + - type: Transform + pos: 31.5,-39.5 + parent: 2 + - uid: 4949 + components: + - type: Transform + pos: 30.5,-39.5 + parent: 2 + - uid: 4950 + components: + - type: Transform + pos: 29.5,-39.5 + parent: 2 + - uid: 4951 + components: + - type: Transform + pos: 28.5,-39.5 + parent: 2 + - uid: 4952 + components: + - type: Transform + pos: 27.5,-39.5 + parent: 2 + - uid: 4953 + components: + - type: Transform + pos: 26.5,-39.5 + parent: 2 + - uid: 4954 + components: + - type: Transform + pos: 25.5,-39.5 + parent: 2 + - uid: 4955 + components: + - type: Transform + pos: 24.5,-39.5 + parent: 2 + - uid: 4956 + components: + - type: Transform + pos: 23.5,-39.5 + parent: 2 + - uid: 4957 + components: + - type: Transform + pos: 22.5,-39.5 + parent: 2 + - uid: 4958 + components: + - type: Transform + pos: 21.5,-39.5 + parent: 2 + - uid: 4959 + components: + - type: Transform + pos: 33.5,-22.5 + parent: 2 + - uid: 4960 + components: + - type: Transform + pos: 34.5,-22.5 + parent: 2 + - uid: 4961 + components: + - type: Transform + pos: 35.5,-22.5 + parent: 2 + - uid: 4962 + components: + - type: Transform + pos: 36.5,-22.5 + parent: 2 + - uid: 4963 + components: + - type: Transform + pos: 37.5,-22.5 + parent: 2 + - uid: 4964 + components: + - type: Transform + pos: 38.5,-22.5 + parent: 2 + - uid: 4965 + components: + - type: Transform + pos: 39.5,-22.5 + parent: 2 + - uid: 4966 + components: + - type: Transform + pos: 40.5,-22.5 + parent: 2 + - uid: 4967 + components: + - type: Transform + pos: 41.5,-22.5 + parent: 2 + - uid: 4968 + components: + - type: Transform + pos: 42.5,-22.5 + parent: 2 + - uid: 4969 + components: + - type: Transform + pos: 43.5,-22.5 + parent: 2 + - uid: 4970 + components: + - type: Transform + pos: 43.5,-16.5 + parent: 2 + - uid: 4971 + components: + - type: Transform + pos: 43.5,-17.5 + parent: 2 + - uid: 4972 + components: + - type: Transform + pos: 43.5,-18.5 + parent: 2 + - uid: 4973 + components: + - type: Transform + pos: 43.5,-19.5 + parent: 2 + - uid: 4974 + components: + - type: Transform + pos: 43.5,-20.5 + parent: 2 + - uid: 4975 + components: + - type: Transform + pos: 43.5,1.5 + parent: 2 + - uid: 4976 + components: + - type: Transform + pos: 43.5,0.5 + parent: 2 + - uid: 4977 + components: + - type: Transform + pos: 43.5,-0.5 + parent: 2 + - uid: 4978 + components: + - type: Transform + pos: 43.5,-1.5 + parent: 2 + - uid: 4979 + components: + - type: Transform + pos: 43.5,-2.5 + parent: 2 + - uid: 4980 + components: + - type: Transform + pos: 43.5,-3.5 + parent: 2 + - uid: 4981 + components: + - type: Transform + pos: 43.5,-4.5 + parent: 2 + - uid: 4982 + components: + - type: Transform + pos: 43.5,-5.5 + parent: 2 + - uid: 4983 + components: + - type: Transform + pos: 43.5,-6.5 + parent: 2 + - uid: 4984 + components: + - type: Transform + pos: 43.5,-7.5 + parent: 2 + - uid: 4985 + components: + - type: Transform + pos: 43.5,-8.5 + parent: 2 + - uid: 4986 + components: + - type: Transform + pos: 43.5,-9.5 + parent: 2 + - uid: 4987 + components: + - type: Transform + pos: 43.5,-10.5 + parent: 2 + - uid: 4988 + components: + - type: Transform + pos: 43.5,-11.5 + parent: 2 + - uid: 4989 + components: + - type: Transform + pos: 43.5,-12.5 + parent: 2 + - uid: 4990 + components: + - type: Transform + pos: 43.5,-13.5 + parent: 2 + - uid: 4991 + components: + - type: Transform + pos: 43.5,-14.5 + parent: 2 + - uid: 4992 + components: + - type: Transform + pos: 43.5,-15.5 + parent: 2 + - uid: 4993 + components: + - type: Transform + pos: 42.5,-0.5 + parent: 2 + - uid: 4994 + components: + - type: Transform + pos: 41.5,-0.5 + parent: 2 + - uid: 4995 + components: + - type: Transform + pos: 40.5,-0.5 + parent: 2 + - uid: 4996 + components: + - type: Transform + pos: 39.5,-0.5 + parent: 2 + - uid: 4997 + components: + - type: Transform + pos: 38.5,-0.5 + parent: 2 + - uid: 4998 + components: + - type: Transform + pos: 37.5,-0.5 + parent: 2 + - uid: 4999 + components: + - type: Transform + pos: 36.5,-0.5 + parent: 2 + - uid: 5000 + components: + - type: Transform + pos: 35.5,-0.5 + parent: 2 + - uid: 5001 + components: + - type: Transform + pos: 34.5,-0.5 + parent: 2 + - uid: 5002 + components: + - type: Transform + pos: 33.5,-0.5 + parent: 2 + - uid: 5003 + components: + - type: Transform + pos: 32.5,-0.5 + parent: 2 + - uid: 5004 + components: + - type: Transform + pos: 31.5,-0.5 + parent: 2 + - uid: 5005 + components: + - type: Transform + pos: 30.5,-0.5 + parent: 2 + - uid: 5006 + components: + - type: Transform + pos: 29.5,-0.5 + parent: 2 + - uid: 5007 + components: + - type: Transform + pos: 28.5,-0.5 + parent: 2 + - uid: 5008 + components: + - type: Transform + pos: 27.5,-0.5 + parent: 2 + - uid: 5009 + components: + - type: Transform + pos: 26.5,-0.5 + parent: 2 + - uid: 5010 + components: + - type: Transform + pos: 25.5,-0.5 + parent: 2 + - uid: 5011 + components: + - type: Transform + pos: 24.5,-0.5 + parent: 2 + - uid: 5012 + components: + - type: Transform + pos: 23.5,-0.5 + parent: 2 + - uid: 5013 + components: + - type: Transform + pos: 22.5,-0.5 + parent: 2 + - uid: 5014 + components: + - type: Transform + pos: 21.5,-0.5 + parent: 2 + - uid: 5015 + components: + - type: Transform + pos: 20.5,-0.5 + parent: 2 + - uid: 5016 + components: + - type: Transform + pos: 19.5,-0.5 + parent: 2 + - uid: 5017 + components: + - type: Transform + pos: 18.5,-0.5 + parent: 2 + - uid: 5018 + components: + - type: Transform + pos: 17.5,-0.5 + parent: 2 + - uid: 5019 + components: + - type: Transform + pos: 16.5,-0.5 + parent: 2 + - uid: 5020 + components: + - type: Transform + pos: 15.5,-0.5 + parent: 2 + - uid: 5021 + components: + - type: Transform + pos: 23.5,-1.5 + parent: 2 + - uid: 5022 + components: + - type: Transform + pos: 23.5,-2.5 + parent: 2 + - uid: 5023 + components: + - type: Transform + pos: 23.5,-3.5 + parent: 2 + - uid: 5024 + components: + - type: Transform + pos: 23.5,0.5 + parent: 2 + - uid: 5025 + components: + - type: Transform + pos: 23.5,1.5 + parent: 2 + - uid: 5026 + components: + - type: Transform + pos: 23.5,2.5 + parent: 2 + - uid: 5027 + components: + - type: Transform + pos: 28.5,0.5 + parent: 2 + - uid: 5028 + components: + - type: Transform + pos: 28.5,1.5 + parent: 2 + - uid: 5029 + components: + - type: Transform + pos: 28.5,2.5 + parent: 2 + - uid: 5030 + components: + - type: Transform + pos: 28.5,3.5 + parent: 2 + - uid: 5031 + components: + - type: Transform + pos: 29.5,3.5 + parent: 2 + - uid: 5032 + components: + - type: Transform + pos: 30.5,3.5 + parent: 2 + - uid: 5033 + components: + - type: Transform + pos: 31.5,3.5 + parent: 2 + - uid: 5034 + components: + - type: Transform + pos: 32.5,3.5 + parent: 2 + - uid: 5035 + components: + - type: Transform + pos: 33.5,3.5 + parent: 2 + - uid: 5036 + components: + - type: Transform + pos: 34.5,3.5 + parent: 2 + - uid: 5037 + components: + - type: Transform + pos: 35.5,3.5 + parent: 2 + - uid: 5038 + components: + - type: Transform + pos: 43.5,2.5 + parent: 2 + - uid: 5039 + components: + - type: Transform + pos: 43.5,3.5 + parent: 2 + - uid: 5040 + components: + - type: Transform + pos: 42.5,3.5 + parent: 2 + - uid: 5041 + components: + - type: Transform + pos: 41.5,3.5 + parent: 2 + - uid: 5042 + components: + - type: Transform + pos: 40.5,3.5 + parent: 2 + - uid: 5043 + components: + - type: Transform + pos: 40.5,4.5 + parent: 2 + - uid: 5044 + components: + - type: Transform + pos: 44.5,3.5 + parent: 2 + - uid: 5045 + components: + - type: Transform + pos: 45.5,3.5 + parent: 2 + - uid: 5046 + components: + - type: Transform + pos: 46.5,3.5 + parent: 2 + - uid: 5047 + components: + - type: Transform + pos: 46.5,4.5 + parent: 2 + - uid: 5048 + components: + - type: Transform + pos: 44.5,-0.5 + parent: 2 + - uid: 5049 + components: + - type: Transform + pos: 45.5,-0.5 + parent: 2 + - uid: 5050 + components: + - type: Transform + pos: 46.5,-0.5 + parent: 2 + - uid: 5051 + components: + - type: Transform + pos: 46.5,0.5 + parent: 2 + - uid: 5052 + components: + - type: Transform + pos: 46.5,1.5 + parent: 2 + - uid: 5053 + components: + - type: Transform + pos: 47.5,1.5 + parent: 2 + - uid: 5054 + components: + - type: Transform + pos: 48.5,1.5 + parent: 2 + - uid: 5055 + components: + - type: Transform + pos: 49.5,1.5 + parent: 2 + - uid: 5056 + components: + - type: Transform + pos: 50.5,1.5 + parent: 2 + - uid: 5057 + components: + - type: Transform + pos: 51.5,1.5 + parent: 2 + - uid: 5058 + components: + - type: Transform + pos: 52.5,1.5 + parent: 2 + - uid: 5059 + components: + - type: Transform + pos: 35.5,-1.5 + parent: 2 + - uid: 5060 + components: + - type: Transform + pos: 35.5,-2.5 + parent: 2 + - uid: 5061 + components: + - type: Transform + pos: 35.5,-3.5 + parent: 2 + - uid: 5062 + components: + - type: Transform + pos: 35.5,-4.5 + parent: 2 + - uid: 5063 + components: + - type: Transform + pos: 42.5,-12.5 + parent: 2 + - uid: 5064 + components: + - type: Transform + pos: 41.5,-12.5 + parent: 2 + - uid: 5065 + components: + - type: Transform + pos: 40.5,-12.5 + parent: 2 + - uid: 5066 + components: + - type: Transform + pos: 39.5,-12.5 + parent: 2 + - uid: 5067 + components: + - type: Transform + pos: 38.5,-12.5 + parent: 2 + - uid: 5068 + components: + - type: Transform + pos: 37.5,-12.5 + parent: 2 + - uid: 5069 + components: + - type: Transform + pos: 37.5,-13.5 + parent: 2 + - uid: 5070 + components: + - type: Transform + pos: 37.5,-14.5 + parent: 2 + - uid: 5071 + components: + - type: Transform + pos: 37.5,-15.5 + parent: 2 + - uid: 5072 + components: + - type: Transform + pos: 38.5,-15.5 + parent: 2 + - uid: 5073 + components: + - type: Transform + pos: 39.5,-15.5 + parent: 2 + - uid: 5074 + components: + - type: Transform + pos: 37.5,-11.5 + parent: 2 + - uid: 5075 + components: + - type: Transform + pos: 37.5,-10.5 + parent: 2 + - uid: 5076 + components: + - type: Transform + pos: 37.5,-9.5 + parent: 2 + - uid: 5077 + components: + - type: Transform + pos: 37.5,-8.5 + parent: 2 + - uid: 5078 + components: + - type: Transform + pos: 37.5,-7.5 + parent: 2 + - uid: 5079 + components: + - type: Transform + pos: 37.5,-6.5 + parent: 2 + - uid: 5080 + components: + - type: Transform + pos: 37.5,-5.5 + parent: 2 + - uid: 5081 + components: + - type: Transform + pos: 38.5,-5.5 + parent: 2 + - uid: 5082 + components: + - type: Transform + pos: 39.5,-5.5 + parent: 2 + - uid: 5083 + components: + - type: Transform + pos: 39.5,-4.5 + parent: 2 + - uid: 5084 + components: + - type: Transform + pos: 40.5,-11.5 + parent: 2 + - uid: 5085 + components: + - type: Transform + pos: 40.5,-10.5 + parent: 2 + - uid: 5086 + components: + - type: Transform + pos: 40.5,-9.5 + parent: 2 + - uid: 5087 + components: + - type: Transform + pos: 40.5,-8.5 + parent: 2 + - uid: 5088 + components: + - type: Transform + pos: 39.5,-3.5 + parent: 2 + - uid: 5089 + components: + - type: Transform + pos: 25.5,10.5 + parent: 2 + - uid: 5090 + components: + - type: Transform + pos: 25.5,9.5 + parent: 2 + - uid: 5091 + components: + - type: Transform + pos: 25.5,8.5 + parent: 2 + - uid: 5092 + components: + - type: Transform + pos: 25.5,7.5 + parent: 2 + - uid: 5093 + components: + - type: Transform + pos: 25.5,6.5 + parent: 2 + - uid: 5094 + components: + - type: Transform + pos: 25.5,5.5 + parent: 2 + - uid: 5095 + components: + - type: Transform + pos: 24.5,5.5 + parent: 2 + - uid: 5096 + components: + - type: Transform + pos: 23.5,5.5 + parent: 2 + - uid: 5097 + components: + - type: Transform + pos: 22.5,5.5 + parent: 2 + - uid: 5098 + components: + - type: Transform + pos: 21.5,5.5 + parent: 2 + - uid: 5099 + components: + - type: Transform + pos: 22.5,6.5 + parent: 2 + - uid: 5100 + components: + - type: Transform + pos: 22.5,7.5 + parent: 2 + - uid: 5101 + components: + - type: Transform + pos: 22.5,8.5 + parent: 2 + - uid: 5102 + components: + - type: Transform + pos: 22.5,9.5 + parent: 2 + - uid: 5103 + components: + - type: Transform + pos: 20.5,5.5 + parent: 2 + - uid: 5104 + components: + - type: Transform + pos: 19.5,5.5 + parent: 2 + - uid: 5105 + components: + - type: Transform + pos: 18.5,5.5 + parent: 2 + - uid: 5106 + components: + - type: Transform + pos: 17.5,5.5 + parent: 2 + - uid: 5107 + components: + - type: Transform + pos: 16.5,5.5 + parent: 2 + - uid: 5108 + components: + - type: Transform + pos: 16.5,4.5 + parent: 2 + - uid: 5109 + components: + - type: Transform + pos: 16.5,3.5 + parent: 2 + - uid: 5110 + components: + - type: Transform + pos: 16.5,2.5 + parent: 2 + - uid: 5111 + components: + - type: Transform + pos: 17.5,2.5 + parent: 2 + - uid: 5112 + components: + - type: Transform + pos: 18.5,2.5 + parent: 2 + - uid: 5113 + components: + - type: Transform + pos: 16.5,6.5 + parent: 2 + - uid: 5114 + components: + - type: Transform + pos: 16.5,7.5 + parent: 2 + - uid: 5115 + components: + - type: Transform + pos: 16.5,8.5 + parent: 2 + - uid: 5116 + components: + - type: Transform + pos: 17.5,8.5 + parent: 2 + - uid: 5117 + components: + - type: Transform + pos: 18.5,8.5 + parent: 2 + - uid: 5118 + components: + - type: Transform + pos: 26.5,8.5 + parent: 2 + - uid: 5119 + components: + - type: Transform + pos: 27.5,8.5 + parent: 2 + - uid: 5120 + components: + - type: Transform + pos: 28.5,8.5 + parent: 2 + - uid: 5121 + components: + - type: Transform + pos: 29.5,8.5 + parent: 2 + - uid: 5122 + components: + - type: Transform + pos: 30.5,8.5 + parent: 2 + - uid: 5123 + components: + - type: Transform + pos: 31.5,8.5 + parent: 2 + - uid: 5124 + components: + - type: Transform + pos: 32.5,8.5 + parent: 2 + - uid: 5125 + components: + - type: Transform + pos: 31.5,7.5 + parent: 2 + - uid: 5126 + components: + - type: Transform + pos: 31.5,6.5 + parent: 2 + - uid: 5127 + components: + - type: Transform + pos: 32.5,6.5 + parent: 2 + - uid: 5128 + components: + - type: Transform + pos: 33.5,6.5 + parent: 2 + - uid: 5129 + components: + - type: Transform + pos: 34.5,6.5 + parent: 2 + - uid: 5130 + components: + - type: Transform + pos: 35.5,6.5 + parent: 2 + - uid: 5131 + components: + - type: Transform + pos: 36.5,6.5 + parent: 2 + - uid: 5132 + components: + - type: Transform + pos: 36.5,7.5 + parent: 2 + - uid: 5133 + components: + - type: Transform + pos: 36.5,8.5 + parent: 2 + - uid: 5134 + components: + - type: Transform + pos: 49.5,-7.5 + parent: 2 + - uid: 5135 + components: + - type: Transform + pos: 49.5,-8.5 + parent: 2 + - uid: 5136 + components: + - type: Transform + pos: 49.5,-9.5 + parent: 2 + - uid: 5137 + components: + - type: Transform + pos: 49.5,-10.5 + parent: 2 + - uid: 5138 + components: + - type: Transform + pos: 49.5,-11.5 + parent: 2 + - uid: 5139 + components: + - type: Transform + pos: 49.5,-12.5 + parent: 2 + - uid: 5140 + components: + - type: Transform + pos: 49.5,-13.5 + parent: 2 + - uid: 5141 + components: + - type: Transform + pos: 50.5,-13.5 + parent: 2 + - uid: 5142 + components: + - type: Transform + pos: 51.5,-13.5 + parent: 2 + - uid: 5143 + components: + - type: Transform + pos: 52.5,-13.5 + parent: 2 + - uid: 5144 + components: + - type: Transform + pos: 52.5,-12.5 + parent: 2 + - uid: 5145 + components: + - type: Transform + pos: 52.5,-11.5 + parent: 2 + - uid: 5146 + components: + - type: Transform + pos: 52.5,-10.5 + parent: 2 + - uid: 5147 + components: + - type: Transform + pos: 52.5,-9.5 + parent: 2 + - uid: 5148 + components: + - type: Transform + pos: 53.5,-10.5 + parent: 2 + - uid: 5149 + components: + - type: Transform + pos: 54.5,-10.5 + parent: 2 + - uid: 5150 + components: + - type: Transform + pos: 55.5,-10.5 + parent: 2 + - uid: 5151 + components: + - type: Transform + pos: 56.5,-10.5 + parent: 2 + - uid: 5152 + components: + - type: Transform + pos: 57.5,-10.5 + parent: 2 + - uid: 5153 + components: + - type: Transform + pos: 58.5,-10.5 + parent: 2 + - uid: 5154 + components: + - type: Transform + pos: 58.5,-11.5 + parent: 2 + - uid: 5155 + components: + - type: Transform + pos: 58.5,-12.5 + parent: 2 + - uid: 5156 + components: + - type: Transform + pos: 58.5,-13.5 + parent: 2 + - uid: 5157 + components: + - type: Transform + pos: 58.5,-14.5 + parent: 2 + - uid: 5158 + components: + - type: Transform + pos: 58.5,-15.5 + parent: 2 + - uid: 5159 + components: + - type: Transform + pos: 58.5,-16.5 + parent: 2 + - uid: 5160 + components: + - type: Transform + pos: 59.5,-16.5 + parent: 2 + - uid: 5161 + components: + - type: Transform + pos: 57.5,-16.5 + parent: 2 + - uid: 5162 + components: + - type: Transform + pos: 56.5,-11.5 + parent: 2 + - uid: 5163 + components: + - type: Transform + pos: 56.5,-12.5 + parent: 2 + - uid: 5164 + components: + - type: Transform + pos: 49.5,-6.5 + parent: 2 + - uid: 5165 + components: + - type: Transform + pos: 49.5,-5.5 + parent: 2 + - uid: 5166 + components: + - type: Transform + pos: 49.5,-4.5 + parent: 2 + - uid: 5167 + components: + - type: Transform + pos: 49.5,-3.5 + parent: 2 + - uid: 5168 + components: + - type: Transform + pos: 49.5,-2.5 + parent: 2 + - uid: 5169 + components: + - type: Transform + pos: 50.5,-4.5 + parent: 2 + - uid: 5170 + components: + - type: Transform + pos: 51.5,-4.5 + parent: 2 + - uid: 5171 + components: + - type: Transform + pos: 52.5,-4.5 + parent: 2 + - uid: 5172 + components: + - type: Transform + pos: 51.5,-5.5 + parent: 2 + - uid: 5173 + components: + - type: Transform + pos: 48.5,-4.5 + parent: 2 + - uid: 5174 + components: + - type: Transform + pos: 47.5,-4.5 + parent: 2 + - uid: 5175 + components: + - type: Transform + pos: 46.5,-4.5 + parent: 2 + - uid: 5176 + components: + - type: Transform + pos: 47.5,-5.5 + parent: 2 + - uid: 5177 + components: + - type: Transform + pos: 53.5,-4.5 + parent: 2 + - uid: 5178 + components: + - type: Transform + pos: 50.5,-14.5 + parent: 2 + - uid: 5179 + components: + - type: Transform + pos: 50.5,-15.5 + parent: 2 + - uid: 5180 + components: + - type: Transform + pos: 50.5,-16.5 + parent: 2 + - uid: 5181 + components: + - type: Transform + pos: 50.5,-17.5 + parent: 2 + - uid: 5182 + components: + - type: Transform + pos: 50.5,-18.5 + parent: 2 + - uid: 5183 + components: + - type: Transform + pos: 49.5,-18.5 + parent: 2 + - uid: 5184 + components: + - type: Transform + pos: 48.5,-18.5 + parent: 2 + - uid: 5185 + components: + - type: Transform + pos: 47.5,-18.5 + parent: 2 + - uid: 5186 + components: + - type: Transform + pos: 51.5,-18.5 + parent: 2 + - uid: 5187 + components: + - type: Transform + pos: 52.5,-18.5 + parent: 2 + - uid: 5188 + components: + - type: Transform + pos: 53.5,-18.5 + parent: 2 + - uid: 5189 + components: + - type: Transform + pos: 50.5,-19.5 + parent: 2 + - uid: 5190 + components: + - type: Transform + pos: 44.5,-11.5 + parent: 2 + - uid: 5191 + components: + - type: Transform + pos: 45.5,-11.5 + parent: 2 + - uid: 5192 + components: + - type: Transform + pos: 46.5,-11.5 + parent: 2 + - uid: 5193 + components: + - type: Transform + pos: 19.5,-9.5 + parent: 2 + - uid: 5194 + components: + - type: Transform + pos: 20.5,-9.5 + parent: 2 + - uid: 5195 + components: + - type: Transform + pos: 21.5,-9.5 + parent: 2 + - uid: 5196 + components: + - type: Transform + pos: 22.5,-9.5 + parent: 2 + - uid: 5197 + components: + - type: Transform + pos: 21.5,-10.5 + parent: 2 + - uid: 5198 + components: + - type: Transform + pos: 21.5,-11.5 + parent: 2 + - uid: 5199 + components: + - type: Transform + pos: 21.5,-12.5 + parent: 2 + - uid: 5200 + components: + - type: Transform + pos: 21.5,-13.5 + parent: 2 + - uid: 5201 + components: + - type: Transform + pos: 21.5,-8.5 + parent: 2 + - uid: 5202 + components: + - type: Transform + pos: 21.5,-7.5 + parent: 2 + - uid: 5203 + components: + - type: Transform + pos: 20.5,-7.5 + parent: 2 + - uid: 5204 + components: + - type: Transform + pos: 19.5,-7.5 + parent: 2 + - uid: 5205 + components: + - type: Transform + pos: 18.5,-7.5 + parent: 2 + - uid: 5206 + components: + - type: Transform + pos: 17.5,-7.5 + parent: 2 + - uid: 5207 + components: + - type: Transform + pos: 16.5,-7.5 + parent: 2 + - uid: 5208 + components: + - type: Transform + pos: 16.5,-6.5 + parent: 2 + - uid: 5209 + components: + - type: Transform + pos: 16.5,-5.5 + parent: 2 + - uid: 5210 + components: + - type: Transform + pos: 16.5,-4.5 + parent: 2 + - uid: 5211 + components: + - type: Transform + pos: 17.5,-4.5 + parent: 2 + - uid: 5212 + components: + - type: Transform + pos: 18.5,-4.5 + parent: 2 + - uid: 5213 + components: + - type: Transform + pos: 18.5,-5.5 + parent: 2 + - uid: 5214 + components: + - type: Transform + pos: 22.5,-7.5 + parent: 2 + - uid: 5215 + components: + - type: Transform + pos: 23.5,-7.5 + parent: 2 + - uid: 5216 + components: + - type: Transform + pos: 24.5,-7.5 + parent: 2 + - uid: 5217 + components: + - type: Transform + pos: 25.5,-7.5 + parent: 2 + - uid: 5218 + components: + - type: Transform + pos: 26.5,-7.5 + parent: 2 + - uid: 5219 + components: + - type: Transform + pos: 27.5,-7.5 + parent: 2 + - uid: 5220 + components: + - type: Transform + pos: 28.5,-7.5 + parent: 2 + - uid: 5221 + components: + - type: Transform + pos: 29.5,-7.5 + parent: 2 + - uid: 5222 + components: + - type: Transform + pos: 30.5,-7.5 + parent: 2 + - uid: 5223 + components: + - type: Transform + pos: 31.5,-7.5 + parent: 2 + - uid: 5224 + components: + - type: Transform + pos: 30.5,-6.5 + parent: 2 + - uid: 5225 + components: + - type: Transform + pos: 30.5,-5.5 + parent: 2 + - uid: 5226 + components: + - type: Transform + pos: 30.5,-4.5 + parent: 2 + - uid: 5227 + components: + - type: Transform + pos: 29.5,-4.5 + parent: 2 + - uid: 5228 + components: + - type: Transform + pos: 28.5,-4.5 + parent: 2 + - uid: 5229 + components: + - type: Transform + pos: 28.5,-5.5 + parent: 2 + - uid: 5230 + components: + - type: Transform + pos: 15.5,-7.5 + parent: 2 + - uid: 5231 + components: + - type: Transform + pos: 35.5,-5.5 + parent: 2 + - uid: 5232 + components: + - type: Transform + pos: 35.5,-6.5 + parent: 2 + - uid: 5233 + components: + - type: Transform + pos: 35.5,-7.5 + parent: 2 + - uid: 5234 + components: + - type: Transform + pos: 35.5,-8.5 + parent: 2 + - uid: 5235 + components: + - type: Transform + pos: 23.5,-9.5 + parent: 2 + - uid: 5236 + components: + - type: Transform + pos: 24.5,-9.5 + parent: 2 + - uid: 5237 + components: + - type: Transform + pos: 24.5,-10.5 + parent: 2 + - uid: 5238 + components: + - type: Transform + pos: 24.5,-11.5 + parent: 2 + - uid: 5239 + components: + - type: Transform + pos: 24.5,-12.5 + parent: 2 + - uid: 5240 + components: + - type: Transform + pos: 24.5,-13.5 + parent: 2 + - uid: 5241 + components: + - type: Transform + pos: 24.5,-14.5 + parent: 2 + - uid: 5242 + components: + - type: Transform + pos: 25.5,-14.5 + parent: 2 + - uid: 5243 + components: + - type: Transform + pos: 26.5,-14.5 + parent: 2 + - uid: 5244 + components: + - type: Transform + pos: 27.5,-14.5 + parent: 2 + - uid: 5245 + components: + - type: Transform + pos: 28.5,-14.5 + parent: 2 + - uid: 5246 + components: + - type: Transform + pos: 26.5,-13.5 + parent: 2 + - uid: 5247 + components: + - type: Transform + pos: 26.5,-12.5 + parent: 2 + - uid: 5248 + components: + - type: Transform + pos: 26.5,-11.5 + parent: 2 + - uid: 5249 + components: + - type: Transform + pos: 28.5,-13.5 + parent: 2 + - uid: 5250 + components: + - type: Transform + pos: 28.5,-12.5 + parent: 2 + - uid: 5251 + components: + - type: Transform + pos: 29.5,-12.5 + parent: 2 + - uid: 5252 + components: + - type: Transform + pos: 30.5,-12.5 + parent: 2 + - uid: 5253 + components: + - type: Transform + pos: 31.5,-12.5 + parent: 2 + - uid: 5254 + components: + - type: Transform + pos: 32.5,-12.5 + parent: 2 + - uid: 5255 + components: + - type: Transform + pos: 33.5,-12.5 + parent: 2 + - uid: 5256 + components: + - type: Transform + pos: 34.5,-12.5 + parent: 2 + - uid: 5257 + components: + - type: Transform + pos: 35.5,-12.5 + parent: 2 + - uid: 5258 + components: + - type: Transform + pos: 35.5,-11.5 + parent: 2 + - uid: 5259 + components: + - type: Transform + pos: 35.5,-10.5 + parent: 2 + - uid: 5260 + components: + - type: Transform + pos: 34.5,-10.5 + parent: 2 + - uid: 5261 + components: + - type: Transform + pos: 33.5,-10.5 + parent: 2 + - uid: 5262 + components: + - type: Transform + pos: 32.5,-10.5 + parent: 2 + - uid: 5263 + components: + - type: Transform + pos: -33.5,-38.5 + parent: 2 + - uid: 5264 + components: + - type: Transform + pos: -33.5,-39.5 + parent: 2 + - uid: 5265 + components: + - type: Transform + pos: -33.5,-20.5 + parent: 2 + - uid: 5266 + components: + - type: Transform + pos: -33.5,-21.5 + parent: 2 + - uid: 5267 + components: + - type: Transform + pos: -33.5,-22.5 + parent: 2 + - uid: 5268 + components: + - type: Transform + pos: -33.5,-23.5 + parent: 2 + - uid: 5269 + components: + - type: Transform + pos: -33.5,-24.5 + parent: 2 + - uid: 5270 + components: + - type: Transform + pos: -33.5,-25.5 + parent: 2 + - uid: 5271 + components: + - type: Transform + pos: -33.5,-26.5 + parent: 2 + - uid: 5272 + components: + - type: Transform + pos: -33.5,-27.5 + parent: 2 + - uid: 5273 + components: + - type: Transform + pos: -33.5,-28.5 + parent: 2 + - uid: 5274 + components: + - type: Transform + pos: -33.5,-29.5 + parent: 2 + - uid: 5275 + components: + - type: Transform + pos: -33.5,-30.5 + parent: 2 + - uid: 5276 + components: + - type: Transform + pos: -33.5,-31.5 + parent: 2 + - uid: 5277 + components: + - type: Transform + pos: -33.5,-32.5 + parent: 2 + - uid: 5278 + components: + - type: Transform + pos: -33.5,-33.5 + parent: 2 + - uid: 5279 + components: + - type: Transform + pos: -33.5,-34.5 + parent: 2 + - uid: 5280 + components: + - type: Transform + pos: -33.5,-35.5 + parent: 2 + - uid: 5281 + components: + - type: Transform + pos: -33.5,-36.5 + parent: 2 + - uid: 5282 + components: + - type: Transform + pos: -33.5,-37.5 + parent: 2 + - uid: 5283 + components: + - type: Transform + pos: -32.5,-39.5 + parent: 2 + - uid: 5284 + components: + - type: Transform + pos: -31.5,-39.5 + parent: 2 + - uid: 5285 + components: + - type: Transform + pos: -30.5,-39.5 + parent: 2 + - uid: 5286 + components: + - type: Transform + pos: -29.5,-39.5 + parent: 2 + - uid: 5287 + components: + - type: Transform + pos: -28.5,-39.5 + parent: 2 + - uid: 5288 + components: + - type: Transform + pos: -27.5,-39.5 + parent: 2 + - uid: 5289 + components: + - type: Transform + pos: -26.5,-39.5 + parent: 2 + - uid: 5290 + components: + - type: Transform + pos: -25.5,-39.5 + parent: 2 + - uid: 5291 + components: + - type: Transform + pos: -24.5,-39.5 + parent: 2 + - uid: 5292 + components: + - type: Transform + pos: -23.5,-39.5 + parent: 2 + - uid: 5293 + components: + - type: Transform + pos: -22.5,-39.5 + parent: 2 + - uid: 5294 + components: + - type: Transform + pos: -35.5,-22.5 + parent: 2 + - uid: 5295 + components: + - type: Transform + pos: -36.5,-22.5 + parent: 2 + - uid: 5296 + components: + - type: Transform + pos: -37.5,-22.5 + parent: 2 + - uid: 5297 + components: + - type: Transform + pos: -38.5,-22.5 + parent: 2 + - uid: 5298 + components: + - type: Transform + pos: -39.5,-22.5 + parent: 2 + - uid: 5299 + components: + - type: Transform + pos: -40.5,-22.5 + parent: 2 + - uid: 5300 + components: + - type: Transform + pos: -41.5,-22.5 + parent: 2 + - uid: 5301 + components: + - type: Transform + pos: -42.5,-22.5 + parent: 2 + - uid: 5302 + components: + - type: Transform + pos: -43.5,-22.5 + parent: 2 + - uid: 5304 + components: + - type: Transform + pos: -43.5,-20.5 + parent: 2 + - uid: 5305 + components: + - type: Transform + pos: -43.5,-19.5 + parent: 2 + - uid: 5306 + components: + - type: Transform + pos: -43.5,-18.5 + parent: 2 + - uid: 5307 + components: + - type: Transform + pos: -43.5,-17.5 + parent: 2 + - uid: 5308 + components: + - type: Transform + pos: -43.5,-16.5 + parent: 2 + - uid: 5309 + components: + - type: Transform + pos: -43.5,-15.5 + parent: 2 + - uid: 5310 + components: + - type: Transform + pos: -43.5,-14.5 + parent: 2 + - uid: 5311 + components: + - type: Transform + pos: -43.5,-13.5 + parent: 2 + - uid: 5312 + components: + - type: Transform + pos: -43.5,-12.5 + parent: 2 + - uid: 5313 + components: + - type: Transform + pos: -43.5,-11.5 + parent: 2 + - uid: 5314 + components: + - type: Transform + pos: -43.5,-10.5 + parent: 2 + - uid: 5315 + components: + - type: Transform + pos: -43.5,-9.5 + parent: 2 + - uid: 5316 + components: + - type: Transform + pos: -43.5,-8.5 + parent: 2 + - uid: 5317 + components: + - type: Transform + pos: -43.5,-7.5 + parent: 2 + - uid: 5318 + components: + - type: Transform + pos: -43.5,-6.5 + parent: 2 + - uid: 5319 + components: + - type: Transform + pos: -43.5,-5.5 + parent: 2 + - uid: 5320 + components: + - type: Transform + pos: -43.5,-4.5 + parent: 2 + - uid: 5321 + components: + - type: Transform + pos: -43.5,-3.5 + parent: 2 + - uid: 5322 + components: + - type: Transform + pos: -43.5,-2.5 + parent: 2 + - uid: 5323 + components: + - type: Transform + pos: -43.5,-1.5 + parent: 2 + - uid: 5324 + components: + - type: Transform + pos: -43.5,-0.5 + parent: 2 + - uid: 5325 + components: + - type: Transform + pos: -43.5,0.5 + parent: 2 + - uid: 5326 + components: + - type: Transform + pos: -43.5,1.5 + parent: 2 + - uid: 5327 + components: + - type: Transform + pos: -24.5,-0.5 + parent: 2 + - uid: 5328 + components: + - type: Transform + pos: -23.5,-0.5 + parent: 2 + - uid: 5329 + components: + - type: Transform + pos: -22.5,-0.5 + parent: 2 + - uid: 5330 + components: + - type: Transform + pos: -21.5,-0.5 + parent: 2 + - uid: 5331 + components: + - type: Transform + pos: -20.5,-0.5 + parent: 2 + - uid: 5332 + components: + - type: Transform + pos: -19.5,-0.5 + parent: 2 + - uid: 5333 + components: + - type: Transform + pos: -18.5,-0.5 + parent: 2 + - uid: 5334 + components: + - type: Transform + pos: -17.5,-0.5 + parent: 2 + - uid: 5335 + components: + - type: Transform + pos: -16.5,-0.5 + parent: 2 + - uid: 5336 + components: + - type: Transform + pos: -15.5,-0.5 + parent: 2 + - uid: 5337 + components: + - type: Transform + pos: -14.5,-0.5 + parent: 2 + - uid: 5338 + components: + - type: Transform + pos: -42.5,-0.5 + parent: 2 + - uid: 5339 + components: + - type: Transform + pos: -41.5,-0.5 + parent: 2 + - uid: 5340 + components: + - type: Transform + pos: -40.5,-0.5 + parent: 2 + - uid: 5341 + components: + - type: Transform + pos: -39.5,-0.5 + parent: 2 + - uid: 5342 + components: + - type: Transform + pos: -38.5,-0.5 + parent: 2 + - uid: 5343 + components: + - type: Transform + pos: -37.5,-0.5 + parent: 2 + - uid: 5344 + components: + - type: Transform + pos: -36.5,-0.5 + parent: 2 + - uid: 5345 + components: + - type: Transform + pos: -35.5,-0.5 + parent: 2 + - uid: 5346 + components: + - type: Transform + pos: -34.5,-0.5 + parent: 2 + - uid: 5347 + components: + - type: Transform + pos: -33.5,-0.5 + parent: 2 + - uid: 5348 + components: + - type: Transform + pos: -32.5,-0.5 + parent: 2 + - uid: 5349 + components: + - type: Transform + pos: -31.5,-0.5 + parent: 2 + - uid: 5350 + components: + - type: Transform + pos: -30.5,-0.5 + parent: 2 + - uid: 5351 + components: + - type: Transform + pos: -29.5,-0.5 + parent: 2 + - uid: 5352 + components: + - type: Transform + pos: -28.5,-0.5 + parent: 2 + - uid: 5353 + components: + - type: Transform + pos: -27.5,-0.5 + parent: 2 + - uid: 5354 + components: + - type: Transform + pos: -26.5,-0.5 + parent: 2 + - uid: 5355 + components: + - type: Transform + pos: -25.5,-0.5 + parent: 2 + - uid: 5356 + components: + - type: Transform + pos: -24.5,-1.5 + parent: 2 + - uid: 5357 + components: + - type: Transform + pos: -24.5,-2.5 + parent: 2 + - uid: 5358 + components: + - type: Transform + pos: -24.5,-3.5 + parent: 2 + - uid: 5359 + components: + - type: Transform + pos: -24.5,0.5 + parent: 2 + - uid: 5360 + components: + - type: Transform + pos: -24.5,1.5 + parent: 2 + - uid: 5361 + components: + - type: Transform + pos: -24.5,2.5 + parent: 2 + - uid: 5362 + components: + - type: Transform + pos: -44.5,-11.5 + parent: 2 + - uid: 5363 + components: + - type: Transform + pos: -45.5,-11.5 + parent: 2 + - uid: 5364 + components: + - type: Transform + pos: -46.5,-11.5 + parent: 2 + - uid: 5365 + components: + - type: Transform + pos: -43.5,2.5 + parent: 2 + - uid: 5366 + components: + - type: Transform + pos: -43.5,3.5 + parent: 2 + - uid: 5367 + components: + - type: Transform + pos: -44.5,3.5 + parent: 2 + - uid: 5368 + components: + - type: Transform + pos: -44.5,4.5 + parent: 2 + - uid: 5369 + components: + - type: Transform + pos: -44.5,5.5 + parent: 2 + - uid: 5370 + components: + - type: Transform + pos: -44.5,6.5 + parent: 2 + - uid: 5371 + components: + - type: Transform + pos: -42.5,2.5 + parent: 2 + - uid: 5372 + components: + - type: Transform + pos: -41.5,2.5 + parent: 2 + - uid: 5373 + components: + - type: Transform + pos: -40.5,2.5 + parent: 2 + - uid: 5374 + components: + - type: Transform + pos: -38.5,0.5 + parent: 2 + - uid: 5375 + components: + - type: Transform + pos: -38.5,1.5 + parent: 2 + - uid: 5376 + components: + - type: Transform + pos: -38.5,2.5 + parent: 2 + - uid: 5377 + components: + - type: Transform + pos: -44.5,0.5 + parent: 2 + - uid: 5378 + components: + - type: Transform + pos: -45.5,0.5 + parent: 2 + - uid: 5379 + components: + - type: Transform + pos: -46.5,0.5 + parent: 2 + - uid: 5380 + components: + - type: Transform + pos: -47.5,0.5 + parent: 2 + - uid: 5381 + components: + - type: Transform + pos: -46.5,1.5 + parent: 2 + - uid: 5382 + components: + - type: Transform + pos: -46.5,2.5 + parent: 2 + - uid: 5383 + components: + - type: Transform + pos: -42.5,-8.5 + parent: 2 + - uid: 5384 + components: + - type: Transform + pos: -41.5,-8.5 + parent: 2 + - uid: 5385 + components: + - type: Transform + pos: -40.5,-8.5 + parent: 2 + - uid: 5386 + components: + - type: Transform + pos: -39.5,-8.5 + parent: 2 + - uid: 5387 + components: + - type: Transform + pos: -38.5,-8.5 + parent: 2 + - uid: 5388 + components: + - type: Transform + pos: -38.5,-9.5 + parent: 2 + - uid: 5389 + components: + - type: Transform + pos: -38.5,-10.5 + parent: 2 + - uid: 5390 + components: + - type: Transform + pos: -38.5,-11.5 + parent: 2 + - uid: 5391 + components: + - type: Transform + pos: -39.5,-11.5 + parent: 2 + - uid: 5392 + components: + - type: Transform + pos: -40.5,-11.5 + parent: 2 + - uid: 5393 + components: + - type: Transform + pos: -40.5,-12.5 + parent: 2 + - uid: 5394 + components: + - type: Transform + pos: -37.5,-11.5 + parent: 2 + - uid: 5395 + components: + - type: Transform + pos: -36.5,-11.5 + parent: 2 + - uid: 5396 + components: + - type: Transform + pos: -35.5,-11.5 + parent: 2 + - uid: 5397 + components: + - type: Transform + pos: -34.5,-11.5 + parent: 2 + - uid: 5398 + components: + - type: Transform + pos: -34.5,-12.5 + parent: 2 + - uid: 5399 + components: + - type: Transform + pos: -34.5,-13.5 + parent: 2 + - uid: 5400 + components: + - type: Transform + pos: -34.5,-14.5 + parent: 2 + - uid: 5401 + components: + - type: Transform + pos: -33.5,-14.5 + parent: 2 + - uid: 5402 + components: + - type: Transform + pos: -32.5,-14.5 + parent: 2 + - uid: 5403 + components: + - type: Transform + pos: -32.5,-13.5 + parent: 2 + - uid: 5404 + components: + - type: Transform + pos: -32.5,-12.5 + parent: 2 + - uid: 5405 + components: + - type: Transform + pos: -32.5,-11.5 + parent: 2 + - uid: 5406 + components: + - type: Transform + pos: -31.5,-11.5 + parent: 2 + - uid: 5407 + components: + - type: Transform + pos: -30.5,-11.5 + parent: 2 + - uid: 5408 + components: + - type: Transform + pos: -40.5,-7.5 + parent: 2 + - uid: 5409 + components: + - type: Transform + pos: -40.5,-6.5 + parent: 2 + - uid: 5410 + components: + - type: Transform + pos: -40.5,-5.5 + parent: 2 + - uid: 5411 + components: + - type: Transform + pos: -40.5,-4.5 + parent: 2 + - uid: 5412 + components: + - type: Transform + pos: -39.5,-4.5 + parent: 2 + - uid: 5413 + components: + - type: Transform + pos: -38.5,-4.5 + parent: 2 + - uid: 5414 + components: + - type: Transform + pos: -21.5,-4.5 + parent: 2 + - uid: 5415 + components: + - type: Transform + pos: -21.5,-5.5 + parent: 2 + - uid: 5416 + components: + - type: Transform + pos: -21.5,-6.5 + parent: 2 + - uid: 5417 + components: + - type: Transform + pos: -20.5,-6.5 + parent: 2 + - uid: 5418 + components: + - type: Transform + pos: -19.5,-6.5 + parent: 2 + - uid: 5419 + components: + - type: Transform + pos: -18.5,-6.5 + parent: 2 + - uid: 5420 + components: + - type: Transform + pos: -17.5,-6.5 + parent: 2 + - uid: 5421 + components: + - type: Transform + pos: -16.5,-6.5 + parent: 2 + - uid: 5422 + components: + - type: Transform + pos: -16.5,-5.5 + parent: 2 + - uid: 5423 + components: + - type: Transform + pos: -16.5,-4.5 + parent: 2 + - uid: 5424 + components: + - type: Transform + pos: -15.5,-4.5 + parent: 2 + - uid: 5425 + components: + - type: Transform + pos: -14.5,-4.5 + parent: 2 + - uid: 5426 + components: + - type: Transform + pos: -16.5,-7.5 + parent: 2 + - uid: 5427 + components: + - type: Transform + pos: -15.5,-7.5 + parent: 2 + - uid: 5428 + components: + - type: Transform + pos: -14.5,-7.5 + parent: 2 + - uid: 5429 + components: + - type: Transform + pos: -22.5,-6.5 + parent: 2 + - uid: 5430 + components: + - type: Transform + pos: -23.5,-6.5 + parent: 2 + - uid: 5431 + components: + - type: Transform + pos: -24.5,-6.5 + parent: 2 + - uid: 5432 + components: + - type: Transform + pos: -25.5,-6.5 + parent: 2 + - uid: 5433 + components: + - type: Transform + pos: -26.5,-6.5 + parent: 2 + - uid: 5434 + components: + - type: Transform + pos: -27.5,-6.5 + parent: 2 + - uid: 5435 + components: + - type: Transform + pos: -28.5,-6.5 + parent: 2 + - uid: 5436 + components: + - type: Transform + pos: -29.5,-6.5 + parent: 2 + - uid: 5437 + components: + - type: Transform + pos: -30.5,-6.5 + parent: 2 + - uid: 5438 + components: + - type: Transform + pos: -31.5,-6.5 + parent: 2 + - uid: 5439 + components: + - type: Transform + pos: -32.5,-6.5 + parent: 2 + - uid: 5440 + components: + - type: Transform + pos: -32.5,-5.5 + parent: 2 + - uid: 5441 + components: + - type: Transform + pos: -32.5,-4.5 + parent: 2 + - uid: 5442 + components: + - type: Transform + pos: -33.5,-4.5 + parent: 2 + - uid: 5443 + components: + - type: Transform + pos: -34.5,-4.5 + parent: 2 + - uid: 5444 + components: + - type: Transform + pos: -32.5,-7.5 + parent: 2 + - uid: 5445 + components: + - type: Transform + pos: -33.5,-7.5 + parent: 2 + - uid: 5446 + components: + - type: Transform + pos: -34.5,-7.5 + parent: 2 + - uid: 5447 + components: + - type: Transform + pos: -27.5,-7.5 + parent: 2 + - uid: 5448 + components: + - type: Transform + pos: -27.5,-8.5 + parent: 2 + - uid: 5449 + components: + - type: Transform + pos: -27.5,-9.5 + parent: 2 + - uid: 5450 + components: + - type: Transform + pos: -27.5,-10.5 + parent: 2 + - uid: 5451 + components: + - type: Transform + pos: -27.5,-11.5 + parent: 2 + - uid: 5452 + components: + - type: Transform + pos: -27.5,-12.5 + parent: 2 + - uid: 5453 + components: + - type: Transform + pos: -27.5,-13.5 + parent: 2 + - uid: 5454 + components: + - type: Transform + pos: -26.5,-12.5 + parent: 2 + - uid: 5455 + components: + - type: Transform + pos: -25.5,-12.5 + parent: 2 + - uid: 5456 + components: + - type: Transform + pos: -24.5,-12.5 + parent: 2 + - uid: 5457 + components: + - type: Transform + pos: -23.5,-12.5 + parent: 2 + - uid: 5458 + components: + - type: Transform + pos: -24.5,-13.5 + parent: 2 + - uid: 5459 + components: + - type: Transform + pos: -24.5,-14.5 + parent: 2 + - uid: 5460 + components: + - type: Transform + pos: -24.5,-15.5 + parent: 2 + - uid: 5461 + components: + - type: Transform + pos: -24.5,-16.5 + parent: 2 + - uid: 5462 + components: + - type: Transform + pos: -24.5,-17.5 + parent: 2 + - uid: 5463 + components: + - type: Transform + pos: -24.5,-18.5 + parent: 2 + - uid: 5464 + components: + - type: Transform + pos: -25.5,-18.5 + parent: 2 + - uid: 5465 + components: + - type: Transform + pos: -26.5,-18.5 + parent: 2 + - uid: 5466 + components: + - type: Transform + pos: -23.5,-18.5 + parent: 2 + - uid: 5467 + components: + - type: Transform + pos: -24.5,-7.5 + parent: 2 + - uid: 5468 + components: + - type: Transform + pos: -24.5,-8.5 + parent: 2 + - uid: 5469 + components: + - type: Transform + pos: -30.5,9.5 + parent: 2 + - uid: 5470 + components: + - type: Transform + pos: -30.5,8.5 + parent: 2 + - uid: 5471 + components: + - type: Transform + pos: -30.5,7.5 + parent: 2 + - uid: 5472 + components: + - type: Transform + pos: -30.5,6.5 + parent: 2 + - uid: 5473 + components: + - type: Transform + pos: -30.5,5.5 + parent: 2 + - uid: 5474 + components: + - type: Transform + pos: -31.5,5.5 + parent: 2 + - uid: 5475 + components: + - type: Transform + pos: -32.5,5.5 + parent: 2 + - uid: 5476 + components: + - type: Transform + pos: -33.5,5.5 + parent: 2 + - uid: 5477 + components: + - type: Transform + pos: -34.5,5.5 + parent: 2 + - uid: 5478 + components: + - type: Transform + pos: -35.5,5.5 + parent: 2 + - uid: 5479 + components: + - type: Transform + pos: -36.5,5.5 + parent: 2 + - uid: 5480 + components: + - type: Transform + pos: -35.5,4.5 + parent: 2 + - uid: 5481 + components: + - type: Transform + pos: -35.5,3.5 + parent: 2 + - uid: 5482 + components: + - type: Transform + pos: -35.5,6.5 + parent: 2 + - uid: 5483 + components: + - type: Transform + pos: -35.5,7.5 + parent: 2 + - uid: 5484 + components: + - type: Transform + pos: -33.5,6.5 + parent: 2 + - uid: 5485 + components: + - type: Transform + pos: -33.5,7.5 + parent: 2 + - uid: 5486 + components: + - type: Transform + pos: -36.5,7.5 + parent: 2 + - uid: 5487 + components: + - type: Transform + pos: -37.5,7.5 + parent: 2 + - uid: 5488 + components: + - type: Transform + pos: -38.5,7.5 + parent: 2 + - uid: 5489 + components: + - type: Transform + pos: -39.5,7.5 + parent: 2 + - uid: 5490 + components: + - type: Transform + pos: -40.5,7.5 + parent: 2 + - uid: 5491 + components: + - type: Transform + pos: -40.5,6.5 + parent: 2 + - uid: 5492 + components: + - type: Transform + pos: -40.5,5.5 + parent: 2 + - uid: 5493 + components: + - type: Transform + pos: -29.5,5.5 + parent: 2 + - uid: 5494 + components: + - type: Transform + pos: -28.5,5.5 + parent: 2 + - uid: 5495 + components: + - type: Transform + pos: -27.5,5.5 + parent: 2 + - uid: 5496 + components: + - type: Transform + pos: -26.5,5.5 + parent: 2 + - uid: 5497 + components: + - type: Transform + pos: -25.5,5.5 + parent: 2 + - uid: 5498 + components: + - type: Transform + pos: -24.5,5.5 + parent: 2 + - uid: 5499 + components: + - type: Transform + pos: -23.5,5.5 + parent: 2 + - uid: 5500 + components: + - type: Transform + pos: -22.5,5.5 + parent: 2 + - uid: 5501 + components: + - type: Transform + pos: -21.5,5.5 + parent: 2 + - uid: 5502 + components: + - type: Transform + pos: -20.5,5.5 + parent: 2 + - uid: 5503 + components: + - type: Transform + pos: -19.5,5.5 + parent: 2 + - uid: 5504 + components: + - type: Transform + pos: -18.5,5.5 + parent: 2 + - uid: 5505 + components: + - type: Transform + pos: -17.5,5.5 + parent: 2 + - uid: 5506 + components: + - type: Transform + pos: -16.5,5.5 + parent: 2 + - uid: 5507 + components: + - type: Transform + pos: -15.5,5.5 + parent: 2 + - uid: 5508 + components: + - type: Transform + pos: -14.5,5.5 + parent: 2 + - uid: 5509 + components: + - type: Transform + pos: -15.5,6.5 + parent: 2 + - uid: 5510 + components: + - type: Transform + pos: -15.5,7.5 + parent: 2 + - uid: 5511 + components: + - type: Transform + pos: -15.5,8.5 + parent: 2 + - uid: 5512 + components: + - type: Transform + pos: -13.5,5.5 + parent: 2 + - uid: 5513 + components: + - type: Transform + pos: -24.5,6.5 + parent: 2 + - uid: 5514 + components: + - type: Transform + pos: -24.5,7.5 + parent: 2 + - uid: 5515 + components: + - type: Transform + pos: -24.5,8.5 + parent: 2 + - uid: 5516 + components: + - type: Transform + pos: -24.5,9.5 + parent: 2 + - uid: 5517 + components: + - type: Transform + pos: -23.5,9.5 + parent: 2 + - uid: 5518 + components: + - type: Transform + pos: -22.5,9.5 + parent: 2 + - uid: 5519 + components: + - type: Transform + pos: -21.5,9.5 + parent: 2 + - uid: 5520 + components: + - type: Transform + pos: -21.5,10.5 + parent: 2 + - uid: 5521 + components: + - type: Transform + pos: -21.5,11.5 + parent: 2 + - uid: 5522 + components: + - type: Transform + pos: -21.5,12.5 + parent: 2 + - uid: 5523 + components: + - type: Transform + pos: -21.5,13.5 + parent: 2 + - uid: 5524 + components: + - type: Transform + pos: -22.5,13.5 + parent: 2 + - uid: 5525 + components: + - type: Transform + pos: -25.5,9.5 + parent: 2 + - uid: 5526 + components: + - type: Transform + pos: -26.5,9.5 + parent: 2 + - uid: 5527 + components: + - type: Transform + pos: -27.5,9.5 + parent: 2 + - uid: 5528 + components: + - type: Transform + pos: -27.5,10.5 + parent: 2 + - uid: 5529 + components: + - type: Transform + pos: -27.5,11.5 + parent: 2 + - uid: 5530 + components: + - type: Transform + pos: -27.5,12.5 + parent: 2 + - uid: 5531 + components: + - type: Transform + pos: -27.5,13.5 + parent: 2 + - uid: 5532 + components: + - type: Transform + pos: -26.5,13.5 + parent: 2 + - uid: 5533 + components: + - type: Transform + pos: -27.5,14.5 + parent: 2 + - uid: 5534 + components: + - type: Transform + pos: -27.5,15.5 + parent: 2 + - uid: 5535 + components: + - type: Transform + pos: -27.5,16.5 + parent: 2 + - uid: 5536 + components: + - type: Transform + pos: -26.5,16.5 + parent: 2 + - uid: 5537 + components: + - type: Transform + pos: -25.5,16.5 + parent: 2 + - uid: 5538 + components: + - type: Transform + pos: -24.5,16.5 + parent: 2 + - uid: 5539 + components: + - type: Transform + pos: -23.5,16.5 + parent: 2 + - uid: 5540 + components: + - type: Transform + pos: -22.5,16.5 + parent: 2 + - uid: 5541 + components: + - type: Transform + pos: -21.5,16.5 + parent: 2 + - uid: 5542 + components: + - type: Transform + pos: -20.5,16.5 + parent: 2 + - uid: 5543 + components: + - type: Transform + pos: -19.5,16.5 + parent: 2 + - uid: 5544 + components: + - type: Transform + pos: -20.5,11.5 + parent: 2 + - uid: 5545 + components: + - type: Transform + pos: -19.5,11.5 + parent: 2 + - uid: 5546 + components: + - type: Transform + pos: -18.5,11.5 + parent: 2 + - uid: 5547 + components: + - type: Transform + pos: -17.5,11.5 + parent: 2 + - uid: 5548 + components: + - type: Transform + pos: -16.5,11.5 + parent: 2 + - uid: 5549 + components: + - type: Transform + pos: -15.5,11.5 + parent: 2 + - uid: 5550 + components: + - type: Transform + pos: -16.5,12.5 + parent: 2 + - uid: 5551 + components: + - type: Transform + pos: -16.5,13.5 + parent: 2 + - uid: 5552 + components: + - type: Transform + pos: -16.5,14.5 + parent: 2 + - uid: 5553 + components: + - type: Transform + pos: -28.5,11.5 + parent: 2 + - uid: 5554 + components: + - type: Transform + pos: -29.5,11.5 + parent: 2 + - uid: 5555 + components: + - type: Transform + pos: -30.5,11.5 + parent: 2 + - uid: 5556 + components: + - type: Transform + pos: -31.5,11.5 + parent: 2 + - uid: 5557 + components: + - type: Transform + pos: -32.5,11.5 + parent: 2 + - uid: 5558 + components: + - type: Transform + pos: -33.5,11.5 + parent: 2 + - uid: 5559 + components: + - type: Transform + pos: -34.5,11.5 + parent: 2 + - uid: 5560 + components: + - type: Transform + pos: -34.5,12.5 + parent: 2 + - uid: 5561 + components: + - type: Transform + pos: -34.5,13.5 + parent: 2 + - uid: 5562 + components: + - type: Transform + pos: -34.5,14.5 + parent: 2 + - uid: 5563 + components: + - type: Transform + pos: -33.5,14.5 + parent: 2 + - uid: 5564 + components: + - type: Transform + pos: -32.5,14.5 + parent: 2 + - uid: 5565 + components: + - type: Transform + pos: -31.5,14.5 + parent: 2 + - uid: 5566 + components: + - type: Transform + pos: -35.5,12.5 + parent: 2 + - uid: 5567 + components: + - type: Transform + pos: -36.5,12.5 + parent: 2 + - uid: 5568 + components: + - type: Transform + pos: -37.5,12.5 + parent: 2 + - uid: 5569 + components: + - type: Transform + pos: -38.5,12.5 + parent: 2 + - uid: 5570 + components: + - type: Transform + pos: -39.5,12.5 + parent: 2 + - uid: 5571 + components: + - type: Transform + pos: -40.5,12.5 + parent: 2 + - uid: 5572 + components: + - type: Transform + pos: -40.5,11.5 + parent: 2 + - uid: 5573 + components: + - type: Transform + pos: -40.5,10.5 + parent: 2 + - uid: 5574 + components: + - type: Transform + pos: -40.5,13.5 + parent: 2 + - uid: 5575 + components: + - type: Transform + pos: -38.5,11.5 + parent: 2 + - uid: 5576 + components: + - type: Transform + pos: -38.5,10.5 + parent: 2 + - uid: 5577 + components: + - type: Transform + pos: -41.5,11.5 + parent: 2 + - uid: 5578 + components: + - type: Transform + pos: -42.5,11.5 + parent: 2 + - uid: 5579 + components: + - type: Transform + pos: -50.5,-7.5 + parent: 2 + - uid: 5580 + components: + - type: Transform + pos: -50.5,-8.5 + parent: 2 + - uid: 5581 + components: + - type: Transform + pos: -50.5,-9.5 + parent: 2 + - uid: 5582 + components: + - type: Transform + pos: -50.5,-10.5 + parent: 2 + - uid: 5583 + components: + - type: Transform + pos: -50.5,-11.5 + parent: 2 + - uid: 5584 + components: + - type: Transform + pos: -49.5,-11.5 + parent: 2 + - uid: 5585 + components: + - type: Transform + pos: -51.5,-9.5 + parent: 2 + - uid: 5586 + components: + - type: Transform + pos: -52.5,-9.5 + parent: 2 + - uid: 5587 + components: + - type: Transform + pos: -53.5,-9.5 + parent: 2 + - uid: 5588 + components: + - type: Transform + pos: -54.5,-9.5 + parent: 2 + - uid: 5589 + components: + - type: Transform + pos: -55.5,-9.5 + parent: 2 + - uid: 5590 + components: + - type: Transform + pos: -56.5,-9.5 + parent: 2 + - uid: 5591 + components: + - type: Transform + pos: -56.5,-13.5 + parent: 2 + - uid: 5592 + components: + - type: Transform + pos: -55.5,-13.5 + parent: 2 + - uid: 5593 + components: + - type: Transform + pos: -54.5,-13.5 + parent: 2 + - uid: 5594 + components: + - type: Transform + pos: -53.5,-13.5 + parent: 2 + - uid: 5595 + components: + - type: Transform + pos: -52.5,-13.5 + parent: 2 + - uid: 5596 + components: + - type: Transform + pos: -51.5,-13.5 + parent: 2 + - uid: 5597 + components: + - type: Transform + pos: -50.5,-13.5 + parent: 2 + - uid: 5598 + components: + - type: Transform + pos: -50.5,-12.5 + parent: 2 + - uid: 5599 + components: + - type: Transform + pos: -53.5,-14.5 + parent: 2 + - uid: 5600 + components: + - type: Transform + pos: -53.5,-15.5 + parent: 2 + - uid: 5601 + components: + - type: Transform + pos: -53.5,-16.5 + parent: 2 + - uid: 5602 + components: + - type: Transform + pos: -53.5,-17.5 + parent: 2 + - uid: 5603 + components: + - type: Transform + pos: -53.5,-18.5 + parent: 2 + - uid: 5604 + components: + - type: Transform + pos: -53.5,-19.5 + parent: 2 + - uid: 5605 + components: + - type: Transform + pos: -53.5,-20.5 + parent: 2 + - uid: 5606 + components: + - type: Transform + pos: -52.5,-18.5 + parent: 2 + - uid: 5607 + components: + - type: Transform + pos: -51.5,-18.5 + parent: 2 + - uid: 5608 + components: + - type: Transform + pos: -50.5,-18.5 + parent: 2 + - uid: 5609 + components: + - type: Transform + pos: -49.5,-18.5 + parent: 2 + - uid: 5610 + components: + - type: Transform + pos: -49.5,-19.5 + parent: 2 + - uid: 5611 + components: + - type: Transform + pos: -49.5,-20.5 + parent: 2 + - uid: 5612 + components: + - type: Transform + pos: -49.5,-21.5 + parent: 2 + - uid: 5613 + components: + - type: Transform + pos: -50.5,-21.5 + parent: 2 + - uid: 5614 + components: + - type: Transform + pos: -51.5,-21.5 + parent: 2 + - uid: 5615 + components: + - type: Transform + pos: -53.5,-21.5 + parent: 2 + - uid: 5616 + components: + - type: Transform + pos: -53.5,-22.5 + parent: 2 + - uid: 5617 + components: + - type: Transform + pos: -53.5,-23.5 + parent: 2 + - uid: 5618 + components: + - type: Transform + pos: -53.5,-24.5 + parent: 2 + - uid: 5619 + components: + - type: Transform + pos: -53.5,-25.5 + parent: 2 + - uid: 5620 + components: + - type: Transform + pos: -53.5,-26.5 + parent: 2 + - uid: 5621 + components: + - type: Transform + pos: -53.5,-27.5 + parent: 2 + - uid: 5622 + components: + - type: Transform + pos: -52.5,-26.5 + parent: 2 + - uid: 5623 + components: + - type: Transform + pos: -51.5,-26.5 + parent: 2 + - uid: 5624 + components: + - type: Transform + pos: -50.5,-26.5 + parent: 2 + - uid: 5625 + components: + - type: Transform + pos: -49.5,-26.5 + parent: 2 + - uid: 5626 + components: + - type: Transform + pos: -53.5,-8.5 + parent: 2 + - uid: 5627 + components: + - type: Transform + pos: -53.5,-7.5 + parent: 2 + - uid: 5628 + components: + - type: Transform + pos: -53.5,-6.5 + parent: 2 + - uid: 5629 + components: + - type: Transform + pos: -53.5,-5.5 + parent: 2 + - uid: 5630 + components: + - type: Transform + pos: -53.5,-4.5 + parent: 2 + - uid: 5631 + components: + - type: Transform + pos: -53.5,-3.5 + parent: 2 + - uid: 5632 + components: + - type: Transform + pos: -53.5,-2.5 + parent: 2 + - uid: 5633 + components: + - type: Transform + pos: -53.5,-1.5 + parent: 2 + - uid: 5634 + components: + - type: Transform + pos: -53.5,-0.5 + parent: 2 + - uid: 5635 + components: + - type: Transform + pos: -53.5,0.5 + parent: 2 + - uid: 5636 + components: + - type: Transform + pos: -53.5,1.5 + parent: 2 + - uid: 5637 + components: + - type: Transform + pos: -53.5,2.5 + parent: 2 + - uid: 5638 + components: + - type: Transform + pos: -53.5,3.5 + parent: 2 + - uid: 5639 + components: + - type: Transform + pos: -53.5,4.5 + parent: 2 + - uid: 5640 + components: + - type: Transform + pos: -53.5,5.5 + parent: 2 + - uid: 5641 + components: + - type: Transform + pos: -52.5,3.5 + parent: 2 + - uid: 5642 + components: + - type: Transform + pos: -51.5,3.5 + parent: 2 + - uid: 5643 + components: + - type: Transform + pos: -50.5,3.5 + parent: 2 + - uid: 5644 + components: + - type: Transform + pos: -49.5,3.5 + parent: 2 + - uid: 5645 + components: + - type: Transform + pos: -52.5,-1.5 + parent: 2 + - uid: 5646 + components: + - type: Transform + pos: -51.5,-1.5 + parent: 2 + - uid: 5647 + components: + - type: Transform + pos: -50.5,-1.5 + parent: 2 + - uid: 5648 + components: + - type: Transform + pos: -50.5,-2.5 + parent: 2 + - uid: 5649 + components: + - type: Transform + pos: -50.5,-3.5 + parent: 2 + - uid: 5650 + components: + - type: Transform + pos: -52.5,-5.5 + parent: 2 + - uid: 5651 + components: + - type: Transform + pos: -51.5,-5.5 + parent: 2 + - uid: 7762 + components: + - type: Transform + pos: 1.5,37.5 + parent: 2 + - uid: 7763 + components: + - type: Transform + pos: 2.5,37.5 + parent: 2 + - uid: 7764 + components: + - type: Transform + pos: -0.5,37.5 + parent: 2 + - uid: 7765 + components: + - type: Transform + pos: -1.5,37.5 + parent: 2 + - uid: 7766 + components: + - type: Transform + pos: -2.5,37.5 + parent: 2 + - uid: 7767 + components: + - type: Transform + pos: -3.5,37.5 + parent: 2 + - uid: 7768 + components: + - type: Transform + pos: -4.5,37.5 + parent: 2 + - uid: 7769 + components: + - type: Transform + pos: -5.5,37.5 + parent: 2 + - uid: 7770 + components: + - type: Transform + pos: -6.5,37.5 + parent: 2 + - uid: 7771 + components: + - type: Transform + pos: -7.5,37.5 + parent: 2 + - uid: 7772 + components: + - type: Transform + pos: -7.5,36.5 + parent: 2 +- proto: CableHV + entities: + - uid: 374 + components: + - type: Transform + pos: 1.5,17.5 + parent: 2 + - uid: 770 + components: + - type: Transform + pos: 0.5,18.5 + parent: 2 + - uid: 771 + components: + - type: Transform + pos: 1.5,18.5 + parent: 2 + - uid: 3108 + components: + - type: Transform + pos: -43.5,-9.5 + parent: 2 + - uid: 3140 + components: + - type: Transform + pos: -1.5,35.5 + parent: 2 + - uid: 3141 + components: + - type: Transform + pos: -0.5,35.5 + parent: 2 + - uid: 3142 + components: + - type: Transform + pos: 0.5,35.5 + parent: 2 + - uid: 3143 + components: + - type: Transform + pos: 0.5,34.5 + parent: 2 + - uid: 3144 + components: + - type: Transform + pos: 0.5,33.5 + parent: 2 + - uid: 3145 + components: + - type: Transform + pos: 0.5,32.5 + parent: 2 + - uid: 3146 + components: + - type: Transform + pos: 0.5,31.5 + parent: 2 + - uid: 3379 + components: + - type: Transform + pos: 0.5,30.5 + parent: 2 + - uid: 3380 + components: + - type: Transform + pos: 0.5,29.5 + parent: 2 + - uid: 3381 + components: + - type: Transform + pos: -0.5,29.5 + parent: 2 + - uid: 3382 + components: + - type: Transform + pos: -1.5,29.5 + parent: 2 + - uid: 3383 + components: + - type: Transform + pos: -2.5,29.5 + parent: 2 + - uid: 3384 + components: + - type: Transform + pos: -3.5,29.5 + parent: 2 + - uid: 3385 + components: + - type: Transform + pos: -4.5,29.5 + parent: 2 + - uid: 3386 + components: + - type: Transform + pos: -4.5,28.5 + parent: 2 + - uid: 3387 + components: + - type: Transform + pos: -4.5,27.5 + parent: 2 + - uid: 3388 + components: + - type: Transform + pos: -4.5,26.5 + parent: 2 + - uid: 3389 + components: + - type: Transform + pos: -5.5,26.5 + parent: 2 + - uid: 3390 + components: + - type: Transform + pos: -6.5,26.5 + parent: 2 + - uid: 3391 + components: + - type: Transform + pos: -7.5,26.5 + parent: 2 + - uid: 3392 + components: + - type: Transform + pos: -8.5,26.5 + parent: 2 + - uid: 3393 + components: + - type: Transform + pos: -8.5,27.5 + parent: 2 + - uid: 3394 + components: + - type: Transform + pos: -8.5,28.5 + parent: 2 + - uid: 3395 + components: + - type: Transform + pos: -8.5,29.5 + parent: 2 + - uid: 3396 + components: + - type: Transform + pos: -8.5,30.5 + parent: 2 + - uid: 3397 + components: + - type: Transform + pos: -7.5,30.5 + parent: 2 + - uid: 3398 + components: + - type: Transform + pos: -8.5,25.5 + parent: 2 + - uid: 3399 + components: + - type: Transform + pos: -8.5,24.5 + parent: 2 + - uid: 3400 + components: + - type: Transform + pos: -8.5,23.5 + parent: 2 + - uid: 3401 + components: + - type: Transform + pos: -8.5,22.5 + parent: 2 + - uid: 3402 + components: + - type: Transform + pos: -7.5,22.5 + parent: 2 + - uid: 3403 + components: + - type: Transform + pos: -6.5,22.5 + parent: 2 + - uid: 3404 + components: + - type: Transform + pos: -5.5,22.5 + parent: 2 + - uid: 3405 + components: + - type: Transform + pos: -4.5,22.5 + parent: 2 + - uid: 3406 + components: + - type: Transform + pos: -3.5,22.5 + parent: 2 + - uid: 3407 + components: + - type: Transform + pos: -2.5,22.5 + parent: 2 + - uid: 3408 + components: + - type: Transform + pos: -1.5,22.5 + parent: 2 + - uid: 3409 + components: + - type: Transform + pos: -0.5,22.5 + parent: 2 + - uid: 3410 + components: + - type: Transform + pos: -0.5,21.5 + parent: 2 + - uid: 3411 + components: + - type: Transform + pos: -0.5,20.5 + parent: 2 + - uid: 3412 + components: + - type: Transform + pos: -0.5,19.5 + parent: 2 + - uid: 3413 + components: + - type: Transform + pos: -0.5,18.5 + parent: 2 + - uid: 3414 + components: + - type: Transform + pos: -0.5,17.5 + parent: 2 + - uid: 3415 + components: + - type: Transform + pos: -0.5,16.5 + parent: 2 + - uid: 3416 + components: + - type: Transform + pos: -0.5,15.5 + parent: 2 + - uid: 3417 + components: + - type: Transform + pos: -0.5,14.5 + parent: 2 + - uid: 3418 + components: + - type: Transform + pos: -0.5,13.5 + parent: 2 + - uid: 3419 + components: + - type: Transform + pos: -0.5,12.5 + parent: 2 + - uid: 3420 + components: + - type: Transform + pos: -0.5,11.5 + parent: 2 + - uid: 3421 + components: + - type: Transform + pos: -0.5,10.5 + parent: 2 + - uid: 3422 + components: + - type: Transform + pos: -0.5,9.5 + parent: 2 + - uid: 3423 + components: + - type: Transform + pos: -0.5,7.5 + parent: 2 + - uid: 3424 + components: + - type: Transform + pos: -0.5,8.5 + parent: 2 + - uid: 3425 + components: + - type: Transform + pos: -0.5,6.5 + parent: 2 + - uid: 3426 + components: + - type: Transform + pos: -0.5,5.5 + parent: 2 + - uid: 3427 + components: + - type: Transform + pos: -0.5,4.5 + parent: 2 + - uid: 3428 + components: + - type: Transform + pos: 0.5,4.5 + parent: 2 + - uid: 3429 + components: + - type: Transform + pos: 1.5,4.5 + parent: 2 + - uid: 3430 + components: + - type: Transform + pos: 2.5,4.5 + parent: 2 + - uid: 3431 + components: + - type: Transform + pos: 3.5,4.5 + parent: 2 + - uid: 3432 + components: + - type: Transform + pos: 4.5,4.5 + parent: 2 + - uid: 3433 + components: + - type: Transform + pos: 4.5,3.5 + parent: 2 + - uid: 3434 + components: + - type: Transform + pos: 5.5,3.5 + parent: 2 + - uid: 3435 + components: + - type: Transform + pos: 5.5,2.5 + parent: 2 + - uid: 3436 + components: + - type: Transform + pos: 5.5,0.5 + parent: 2 + - uid: 3437 + components: + - type: Transform + pos: 5.5,1.5 + parent: 2 + - uid: 3438 + components: + - type: Transform + pos: 5.5,-0.5 + parent: 2 + - uid: 3439 + components: + - type: Transform + pos: 6.5,-0.5 + parent: 2 + - uid: 3440 + components: + - type: Transform + pos: 7.5,-0.5 + parent: 2 + - uid: 3441 + components: + - type: Transform + pos: 8.5,-0.5 + parent: 2 + - uid: 3442 + components: + - type: Transform + pos: 9.5,-0.5 + parent: 2 + - uid: 3443 + components: + - type: Transform + pos: 10.5,-0.5 + parent: 2 + - uid: 3444 + components: + - type: Transform + pos: 11.5,-0.5 + parent: 2 + - uid: 3445 + components: + - type: Transform + pos: 12.5,-0.5 + parent: 2 + - uid: 3446 + components: + - type: Transform + pos: 13.5,-0.5 + parent: 2 + - uid: 3447 + components: + - type: Transform + pos: 13.5,-1.5 + parent: 2 + - uid: 3448 + components: + - type: Transform + pos: 13.5,-2.5 + parent: 2 + - uid: 3449 + components: + - type: Transform + pos: 13.5,-3.5 + parent: 2 + - uid: 3450 + components: + - type: Transform + pos: 13.5,-4.5 + parent: 2 + - uid: 3451 + components: + - type: Transform + pos: 13.5,-5.5 + parent: 2 + - uid: 3452 + components: + - type: Transform + pos: 12.5,-5.5 + parent: 2 + - uid: 3453 + components: + - type: Transform + pos: 11.5,-5.5 + parent: 2 + - uid: 3454 + components: + - type: Transform + pos: 10.5,-5.5 + parent: 2 + - uid: 3455 + components: + - type: Transform + pos: 10.5,-4.5 + parent: 2 + - uid: 3456 + components: + - type: Transform + pos: 14.5,-0.5 + parent: 2 + - uid: 3457 + components: + - type: Transform + pos: 15.5,-0.5 + parent: 2 + - uid: 3458 + components: + - type: Transform + pos: 16.5,-0.5 + parent: 2 + - uid: 3459 + components: + - type: Transform + pos: 17.5,-0.5 + parent: 2 + - uid: 3460 + components: + - type: Transform + pos: 18.5,-0.5 + parent: 2 + - uid: 3461 + components: + - type: Transform + pos: 19.5,-0.5 + parent: 2 + - uid: 3462 + components: + - type: Transform + pos: 20.5,-0.5 + parent: 2 + - uid: 3463 + components: + - type: Transform + pos: 21.5,-0.5 + parent: 2 + - uid: 3464 + components: + - type: Transform + pos: 22.5,-0.5 + parent: 2 + - uid: 3465 + components: + - type: Transform + pos: 23.5,-0.5 + parent: 2 + - uid: 3466 + components: + - type: Transform + pos: 24.5,-0.5 + parent: 2 + - uid: 3467 + components: + - type: Transform + pos: 25.5,-0.5 + parent: 2 + - uid: 3468 + components: + - type: Transform + pos: 26.5,-0.5 + parent: 2 + - uid: 3469 + components: + - type: Transform + pos: 27.5,-0.5 + parent: 2 + - uid: 3470 + components: + - type: Transform + pos: 28.5,-0.5 + parent: 2 + - uid: 3471 + components: + - type: Transform + pos: 28.5,0.5 + parent: 2 + - uid: 3472 + components: + - type: Transform + pos: 28.5,1.5 + parent: 2 + - uid: 3473 + components: + - type: Transform + pos: 28.5,2.5 + parent: 2 + - uid: 3474 + components: + - type: Transform + pos: 28.5,3.5 + parent: 2 + - uid: 3475 + components: + - type: Transform + pos: 29.5,3.5 + parent: 2 + - uid: 3476 + components: + - type: Transform + pos: 30.5,3.5 + parent: 2 + - uid: 3477 + components: + - type: Transform + pos: 31.5,3.5 + parent: 2 + - uid: 3478 + components: + - type: Transform + pos: 32.5,3.5 + parent: 2 + - uid: 3479 + components: + - type: Transform + pos: 33.5,3.5 + parent: 2 + - uid: 3480 + components: + - type: Transform + pos: 34.5,3.5 + parent: 2 + - uid: 3481 + components: + - type: Transform + pos: 35.5,3.5 + parent: 2 + - uid: 3482 + components: + - type: Transform + pos: 36.5,3.5 + parent: 2 + - uid: 3483 + components: + - type: Transform + pos: 37.5,3.5 + parent: 2 + - uid: 3484 + components: + - type: Transform + pos: 38.5,3.5 + parent: 2 + - uid: 3485 + components: + - type: Transform + pos: 39.5,3.5 + parent: 2 + - uid: 3486 + components: + - type: Transform + pos: 40.5,3.5 + parent: 2 + - uid: 3487 + components: + - type: Transform + pos: 41.5,3.5 + parent: 2 + - uid: 3488 + components: + - type: Transform + pos: 42.5,3.5 + parent: 2 + - uid: 3489 + components: + - type: Transform + pos: 43.5,3.5 + parent: 2 + - uid: 3490 + components: + - type: Transform + pos: 43.5,4.5 + parent: 2 + - uid: 3491 + components: + - type: Transform + pos: 43.5,5.5 + parent: 2 + - uid: 3492 + components: + - type: Transform + pos: 43.5,6.5 + parent: 2 + - uid: 3493 + components: + - type: Transform + pos: 44.5,6.5 + parent: 2 + - uid: 3494 + components: + - type: Transform + pos: 29.5,-0.5 + parent: 2 + - uid: 3495 + components: + - type: Transform + pos: 30.5,-0.5 + parent: 2 + - uid: 3496 + components: + - type: Transform + pos: 31.5,-0.5 + parent: 2 + - uid: 3497 + components: + - type: Transform + pos: 32.5,-0.5 + parent: 2 + - uid: 3498 + components: + - type: Transform + pos: 33.5,-0.5 + parent: 2 + - uid: 3499 + components: + - type: Transform + pos: 34.5,-0.5 + parent: 2 + - uid: 3500 + components: + - type: Transform + pos: 35.5,-0.5 + parent: 2 + - uid: 3501 + components: + - type: Transform + pos: 36.5,-0.5 + parent: 2 + - uid: 3502 + components: + - type: Transform + pos: 37.5,-0.5 + parent: 2 + - uid: 3503 + components: + - type: Transform + pos: 38.5,-0.5 + parent: 2 + - uid: 3504 + components: + - type: Transform + pos: 39.5,-0.5 + parent: 2 + - uid: 3505 + components: + - type: Transform + pos: 40.5,-0.5 + parent: 2 + - uid: 3506 + components: + - type: Transform + pos: 41.5,-0.5 + parent: 2 + - uid: 3507 + components: + - type: Transform + pos: 42.5,-0.5 + parent: 2 + - uid: 3508 + components: + - type: Transform + pos: 43.5,-0.5 + parent: 2 + - uid: 3509 + components: + - type: Transform + pos: 43.5,-1.5 + parent: 2 + - uid: 3510 + components: + - type: Transform + pos: 43.5,-2.5 + parent: 2 + - uid: 3511 + components: + - type: Transform + pos: 43.5,-3.5 + parent: 2 + - uid: 3512 + components: + - type: Transform + pos: 43.5,-4.5 + parent: 2 + - uid: 3513 + components: + - type: Transform + pos: 43.5,-5.5 + parent: 2 + - uid: 3514 + components: + - type: Transform + pos: 43.5,-6.5 + parent: 2 + - uid: 3515 + components: + - type: Transform + pos: 43.5,-7.5 + parent: 2 + - uid: 3516 + components: + - type: Transform + pos: 43.5,-8.5 + parent: 2 + - uid: 3517 + components: + - type: Transform + pos: 43.5,-9.5 + parent: 2 + - uid: 3518 + components: + - type: Transform + pos: 43.5,-10.5 + parent: 2 + - uid: 3519 + components: + - type: Transform + pos: 43.5,-11.5 + parent: 2 + - uid: 3520 + components: + - type: Transform + pos: 43.5,-12.5 + parent: 2 + - uid: 3521 + components: + - type: Transform + pos: 35.5,-1.5 + parent: 2 + - uid: 3522 + components: + - type: Transform + pos: 35.5,-2.5 + parent: 2 + - uid: 3523 + components: + - type: Transform + pos: 35.5,-3.5 + parent: 2 + - uid: 3524 + components: + - type: Transform + pos: 35.5,-4.5 + parent: 2 + - uid: 3525 + components: + - type: Transform + pos: 35.5,-5.5 + parent: 2 + - uid: 3526 + components: + - type: Transform + pos: 35.5,-6.5 + parent: 2 + - uid: 3527 + components: + - type: Transform + pos: 35.5,-7.5 + parent: 2 + - uid: 3528 + components: + - type: Transform + pos: 34.5,-7.5 + parent: 2 + - uid: 3529 + components: + - type: Transform + pos: 33.5,-7.5 + parent: 2 + - uid: 3530 + components: + - type: Transform + pos: 33.5,-6.5 + parent: 2 + - uid: 3531 + components: + - type: Transform + pos: 42.5,-12.5 + parent: 2 + - uid: 3532 + components: + - type: Transform + pos: 41.5,-12.5 + parent: 2 + - uid: 3533 + components: + - type: Transform + pos: 40.5,-12.5 + parent: 2 + - uid: 3534 + components: + - type: Transform + pos: 39.5,-12.5 + parent: 2 + - uid: 3535 + components: + - type: Transform + pos: 38.5,-12.5 + parent: 2 + - uid: 3536 + components: + - type: Transform + pos: 37.5,-12.5 + parent: 2 + - uid: 3537 + components: + - type: Transform + pos: 37.5,-11.5 + parent: 2 + - uid: 3538 + components: + - type: Transform + pos: 37.5,-10.5 + parent: 2 + - uid: 3539 + components: + - type: Transform + pos: 37.5,-9.5 + parent: 2 + - uid: 3540 + components: + - type: Transform + pos: 37.5,-8.5 + parent: 2 + - uid: 3541 + components: + - type: Transform + pos: 37.5,-7.5 + parent: 2 + - uid: 3542 + components: + - type: Transform + pos: 37.5,-6.5 + parent: 2 + - uid: 3543 + components: + - type: Transform + pos: 37.5,-5.5 + parent: 2 + - uid: 3544 + components: + - type: Transform + pos: 36.5,-5.5 + parent: 2 + - uid: 3545 + components: + - type: Transform + pos: 44.5,-0.5 + parent: 2 + - uid: 3546 + components: + - type: Transform + pos: 45.5,-0.5 + parent: 2 + - uid: 3547 + components: + - type: Transform + pos: 46.5,-0.5 + parent: 2 + - uid: 3548 + components: + - type: Transform + pos: 46.5,0.5 + parent: 2 + - uid: 3549 + components: + - type: Transform + pos: 46.5,1.5 + parent: 2 + - uid: 3550 + components: + - type: Transform + pos: 46.5,2.5 + parent: 2 + - uid: 3551 + components: + - type: Transform + pos: 46.5,3.5 + parent: 2 + - uid: 3552 + components: + - type: Transform + pos: 45.5,3.5 + parent: 2 + - uid: 3553 + components: + - type: Transform + pos: 44.5,3.5 + parent: 2 + - uid: 3554 + components: + - type: Transform + pos: 0.5,22.5 + parent: 2 + - uid: 3555 + components: + - type: Transform + pos: 1.5,22.5 + parent: 2 + - uid: 3556 + components: + - type: Transform + pos: 2.5,22.5 + parent: 2 + - uid: 3557 + components: + - type: Transform + pos: 2.5,23.5 + parent: 2 + - uid: 3558 + components: + - type: Transform + pos: 2.5,24.5 + parent: 2 + - uid: 3559 + components: + - type: Transform + pos: 2.5,25.5 + parent: 2 + - uid: 3560 + components: + - type: Transform + pos: 2.5,26.5 + parent: 2 + - uid: 3561 + components: + - type: Transform + pos: 2.5,27.5 + parent: 2 + - uid: 3562 + components: + - type: Transform + pos: 2.5,28.5 + parent: 2 + - uid: 3563 + components: + - type: Transform + pos: 2.5,29.5 + parent: 2 + - uid: 3564 + components: + - type: Transform + pos: 1.5,29.5 + parent: 2 + - uid: 3565 + components: + - type: Transform + pos: 43.5,-13.5 + parent: 2 + - uid: 3566 + components: + - type: Transform + pos: 43.5,-14.5 + parent: 2 + - uid: 3567 + components: + - type: Transform + pos: 43.5,-15.5 + parent: 2 + - uid: 3568 + components: + - type: Transform + pos: 43.5,-16.5 + parent: 2 + - uid: 3569 + components: + - type: Transform + pos: 43.5,-17.5 + parent: 2 + - uid: 3570 + components: + - type: Transform + pos: 43.5,-18.5 + parent: 2 + - uid: 3571 + components: + - type: Transform + pos: 43.5,-19.5 + parent: 2 + - uid: 3572 + components: + - type: Transform + pos: 43.5,-20.5 + parent: 2 + - uid: 3573 + components: + - type: Transform + pos: 43.5,-21.5 + parent: 2 + - uid: 3574 + components: + - type: Transform + pos: 43.5,-22.5 + parent: 2 + - uid: 3575 + components: + - type: Transform + pos: 42.5,-22.5 + parent: 2 + - uid: 3576 + components: + - type: Transform + pos: 41.5,-22.5 + parent: 2 + - uid: 3577 + components: + - type: Transform + pos: 40.5,-22.5 + parent: 2 + - uid: 3578 + components: + - type: Transform + pos: 39.5,-22.5 + parent: 2 + - uid: 3579 + components: + - type: Transform + pos: 38.5,-22.5 + parent: 2 + - uid: 3580 + components: + - type: Transform + pos: 37.5,-22.5 + parent: 2 + - uid: 3581 + components: + - type: Transform + pos: 36.5,-22.5 + parent: 2 + - uid: 3582 + components: + - type: Transform + pos: 35.5,-22.5 + parent: 2 + - uid: 3583 + components: + - type: Transform + pos: 34.5,-22.5 + parent: 2 + - uid: 3584 + components: + - type: Transform + pos: 33.5,-22.5 + parent: 2 + - uid: 3585 + components: + - type: Transform + pos: 32.5,-22.5 + parent: 2 + - uid: 3586 + components: + - type: Transform + pos: 32.5,-23.5 + parent: 2 + - uid: 3587 + components: + - type: Transform + pos: 32.5,-24.5 + parent: 2 + - uid: 3588 + components: + - type: Transform + pos: 32.5,-25.5 + parent: 2 + - uid: 3589 + components: + - type: Transform + pos: 32.5,-26.5 + parent: 2 + - uid: 3590 + components: + - type: Transform + pos: 32.5,-27.5 + parent: 2 + - uid: 3591 + components: + - type: Transform + pos: 32.5,-28.5 + parent: 2 + - uid: 3592 + components: + - type: Transform + pos: 32.5,-29.5 + parent: 2 + - uid: 3593 + components: + - type: Transform + pos: 32.5,-30.5 + parent: 2 + - uid: 3594 + components: + - type: Transform + pos: 32.5,-31.5 + parent: 2 + - uid: 3595 + components: + - type: Transform + pos: 32.5,-32.5 + parent: 2 + - uid: 3596 + components: + - type: Transform + pos: 32.5,-33.5 + parent: 2 + - uid: 3597 + components: + - type: Transform + pos: 32.5,-34.5 + parent: 2 + - uid: 3598 + components: + - type: Transform + pos: 32.5,-35.5 + parent: 2 + - uid: 3599 + components: + - type: Transform + pos: 32.5,-36.5 + parent: 2 + - uid: 3600 + components: + - type: Transform + pos: 32.5,-37.5 + parent: 2 + - uid: 3601 + components: + - type: Transform + pos: 32.5,-38.5 + parent: 2 + - uid: 3602 + components: + - type: Transform + pos: 32.5,-39.5 + parent: 2 + - uid: 3603 + components: + - type: Transform + pos: 9.5,-39.5 + parent: 2 + - uid: 3604 + components: + - type: Transform + pos: 31.5,-39.5 + parent: 2 + - uid: 3605 + components: + - type: Transform + pos: 30.5,-39.5 + parent: 2 + - uid: 3606 + components: + - type: Transform + pos: 29.5,-39.5 + parent: 2 + - uid: 3607 + components: + - type: Transform + pos: 28.5,-39.5 + parent: 2 + - uid: 3608 + components: + - type: Transform + pos: 27.5,-39.5 + parent: 2 + - uid: 3609 + components: + - type: Transform + pos: 26.5,-39.5 + parent: 2 + - uid: 3610 + components: + - type: Transform + pos: 25.5,-39.5 + parent: 2 + - uid: 3611 + components: + - type: Transform + pos: 24.5,-39.5 + parent: 2 + - uid: 3612 + components: + - type: Transform + pos: 23.5,-39.5 + parent: 2 + - uid: 3613 + components: + - type: Transform + pos: 22.5,-39.5 + parent: 2 + - uid: 3614 + components: + - type: Transform + pos: 21.5,-39.5 + parent: 2 + - uid: 3615 + components: + - type: Transform + pos: 20.5,-39.5 + parent: 2 + - uid: 3616 + components: + - type: Transform + pos: 19.5,-39.5 + parent: 2 + - uid: 3617 + components: + - type: Transform + pos: 18.5,-39.5 + parent: 2 + - uid: 3618 + components: + - type: Transform + pos: 17.5,-39.5 + parent: 2 + - uid: 3619 + components: + - type: Transform + pos: 16.5,-39.5 + parent: 2 + - uid: 3620 + components: + - type: Transform + pos: 15.5,-39.5 + parent: 2 + - uid: 3621 + components: + - type: Transform + pos: 14.5,-39.5 + parent: 2 + - uid: 3622 + components: + - type: Transform + pos: 13.5,-39.5 + parent: 2 + - uid: 3623 + components: + - type: Transform + pos: 12.5,-39.5 + parent: 2 + - uid: 3624 + components: + - type: Transform + pos: 11.5,-39.5 + parent: 2 + - uid: 3625 + components: + - type: Transform + pos: 10.5,-39.5 + parent: 2 + - uid: 3626 + components: + - type: Transform + pos: -1.5,4.5 + parent: 2 + - uid: 3627 + components: + - type: Transform + pos: -2.5,4.5 + parent: 2 + - uid: 3628 + components: + - type: Transform + pos: -3.5,4.5 + parent: 2 + - uid: 3629 + components: + - type: Transform + pos: -4.5,4.5 + parent: 2 + - uid: 3630 + components: + - type: Transform + pos: -5.5,4.5 + parent: 2 + - uid: 3631 + components: + - type: Transform + pos: -5.5,3.5 + parent: 2 + - uid: 3632 + components: + - type: Transform + pos: -6.5,3.5 + parent: 2 + - uid: 3633 + components: + - type: Transform + pos: -6.5,2.5 + parent: 2 + - uid: 3634 + components: + - type: Transform + pos: -6.5,1.5 + parent: 2 + - uid: 3635 + components: + - type: Transform + pos: -6.5,0.5 + parent: 2 + - uid: 3636 + components: + - type: Transform + pos: -6.5,-0.5 + parent: 2 + - uid: 3637 + components: + - type: Transform + pos: -29.5,-0.5 + parent: 2 + - uid: 3638 + components: + - type: Transform + pos: -30.5,-0.5 + parent: 2 + - uid: 3639 + components: + - type: Transform + pos: -31.5,-0.5 + parent: 2 + - uid: 3640 + components: + - type: Transform + pos: -32.5,-0.5 + parent: 2 + - uid: 3641 + components: + - type: Transform + pos: -33.5,-0.5 + parent: 2 + - uid: 3642 + components: + - type: Transform + pos: -34.5,-0.5 + parent: 2 + - uid: 3643 + components: + - type: Transform + pos: -35.5,-0.5 + parent: 2 + - uid: 3644 + components: + - type: Transform + pos: -36.5,-0.5 + parent: 2 + - uid: 3645 + components: + - type: Transform + pos: -37.5,-0.5 + parent: 2 + - uid: 3646 + components: + - type: Transform + pos: -38.5,-0.5 + parent: 2 + - uid: 3647 + components: + - type: Transform + pos: -7.5,-0.5 + parent: 2 + - uid: 3648 + components: + - type: Transform + pos: -8.5,-0.5 + parent: 2 + - uid: 3649 + components: + - type: Transform + pos: -9.5,-0.5 + parent: 2 + - uid: 3650 + components: + - type: Transform + pos: -10.5,-0.5 + parent: 2 + - uid: 3651 + components: + - type: Transform + pos: -11.5,-0.5 + parent: 2 + - uid: 3652 + components: + - type: Transform + pos: -12.5,-0.5 + parent: 2 + - uid: 3653 + components: + - type: Transform + pos: -13.5,-0.5 + parent: 2 + - uid: 3654 + components: + - type: Transform + pos: -14.5,-0.5 + parent: 2 + - uid: 3655 + components: + - type: Transform + pos: -15.5,-0.5 + parent: 2 + - uid: 3656 + components: + - type: Transform + pos: -16.5,-0.5 + parent: 2 + - uid: 3657 + components: + - type: Transform + pos: -17.5,-0.5 + parent: 2 + - uid: 3658 + components: + - type: Transform + pos: -18.5,-0.5 + parent: 2 + - uid: 3659 + components: + - type: Transform + pos: -19.5,-0.5 + parent: 2 + - uid: 3660 + components: + - type: Transform + pos: -20.5,-0.5 + parent: 2 + - uid: 3661 + components: + - type: Transform + pos: -21.5,-0.5 + parent: 2 + - uid: 3662 + components: + - type: Transform + pos: -22.5,-0.5 + parent: 2 + - uid: 3663 + components: + - type: Transform + pos: -23.5,-0.5 + parent: 2 + - uid: 3664 + components: + - type: Transform + pos: -24.5,-0.5 + parent: 2 + - uid: 3665 + components: + - type: Transform + pos: -25.5,-0.5 + parent: 2 + - uid: 3666 + components: + - type: Transform + pos: -26.5,-0.5 + parent: 2 + - uid: 3667 + components: + - type: Transform + pos: -27.5,-0.5 + parent: 2 + - uid: 3668 + components: + - type: Transform + pos: -28.5,-0.5 + parent: 2 + - uid: 3669 + components: + - type: Transform + pos: -38.5,0.5 + parent: 2 + - uid: 3670 + components: + - type: Transform + pos: -38.5,1.5 + parent: 2 + - uid: 3671 + components: + - type: Transform + pos: -38.5,2.5 + parent: 2 + - uid: 3672 + components: + - type: Transform + pos: -39.5,2.5 + parent: 2 + - uid: 3673 + components: + - type: Transform + pos: -40.5,2.5 + parent: 2 + - uid: 3674 + components: + - type: Transform + pos: -41.5,2.5 + parent: 2 + - uid: 3675 + components: + - type: Transform + pos: -42.5,2.5 + parent: 2 + - uid: 3676 + components: + - type: Transform + pos: -43.5,2.5 + parent: 2 + - uid: 3677 + components: + - type: Transform + pos: -44.5,2.5 + parent: 2 + - uid: 3678 + components: + - type: Transform + pos: -45.5,2.5 + parent: 2 + - uid: 3679 + components: + - type: Transform + pos: -46.5,2.5 + parent: 2 + - uid: 3680 + components: + - type: Transform + pos: -46.5,1.5 + parent: 2 + - uid: 3681 + components: + - type: Transform + pos: -46.5,0.5 + parent: 2 + - uid: 3682 + components: + - type: Transform + pos: -44.5,0.5 + parent: 2 + - uid: 3683 + components: + - type: Transform + pos: -44.5,3.5 + parent: 2 + - uid: 3684 + components: + - type: Transform + pos: -43.5,-0.5 + parent: 2 + - uid: 3685 + components: + - type: Transform + pos: -42.5,-0.5 + parent: 2 + - uid: 3686 + components: + - type: Transform + pos: -41.5,-0.5 + parent: 2 + - uid: 3687 + components: + - type: Transform + pos: -40.5,-0.5 + parent: 2 + - uid: 3688 + components: + - type: Transform + pos: -39.5,-0.5 + parent: 2 + - uid: 3689 + components: + - type: Transform + pos: -45.5,0.5 + parent: 2 + - uid: 3690 + components: + - type: Transform + pos: -43.5,-1.5 + parent: 2 + - uid: 3691 + components: + - type: Transform + pos: -43.5,-2.5 + parent: 2 + - uid: 3692 + components: + - type: Transform + pos: -43.5,-3.5 + parent: 2 + - uid: 3693 + components: + - type: Transform + pos: -43.5,-4.5 + parent: 2 + - uid: 3694 + components: + - type: Transform + pos: -43.5,-5.5 + parent: 2 + - uid: 3695 + components: + - type: Transform + pos: -43.5,-6.5 + parent: 2 + - uid: 3696 + components: + - type: Transform + pos: -43.5,-7.5 + parent: 2 + - uid: 3697 + components: + - type: Transform + pos: -43.5,-8.5 + parent: 2 + - uid: 3698 + components: + - type: Transform + pos: -44.5,-0.5 + parent: 2 + - uid: 3699 + components: + - type: Transform + pos: -44.5,4.5 + parent: 2 + - uid: 3700 + components: + - type: Transform + pos: -44.5,5.5 + parent: 2 + - uid: 3701 + components: + - type: Transform + pos: -44.5,6.5 + parent: 2 + - uid: 3702 + components: + - type: Transform + pos: -43.5,6.5 + parent: 2 + - uid: 3703 + components: + - type: Transform + pos: -42.5,-8.5 + parent: 2 + - uid: 3704 + components: + - type: Transform + pos: -41.5,-8.5 + parent: 2 + - uid: 3705 + components: + - type: Transform + pos: -40.5,-8.5 + parent: 2 + - uid: 3706 + components: + - type: Transform + pos: -40.5,-7.5 + parent: 2 + - uid: 3707 + components: + - type: Transform + pos: -40.5,-6.5 + parent: 2 + - uid: 3708 + components: + - type: Transform + pos: -40.5,-5.5 + parent: 2 + - uid: 3709 + components: + - type: Transform + pos: -40.5,-4.5 + parent: 2 + - uid: 3710 + components: + - type: Transform + pos: -39.5,-4.5 + parent: 2 + - uid: 3711 + components: + - type: Transform + pos: -38.5,-4.5 + parent: 2 + - uid: 3712 + components: + - type: Transform + pos: -37.5,-4.5 + parent: 2 + - uid: 3713 + components: + - type: Transform + pos: -37.5,-3.5 + parent: 2 + - uid: 3714 + components: + - type: Transform + pos: -39.5,-8.5 + parent: 2 + - uid: 3715 + components: + - type: Transform + pos: -38.5,-8.5 + parent: 2 + - uid: 3716 + components: + - type: Transform + pos: -43.5,-10.5 + parent: 2 + - uid: 3717 + components: + - type: Transform + pos: -43.5,-11.5 + parent: 2 + - uid: 3718 + components: + - type: Transform + pos: -43.5,-12.5 + parent: 2 + - uid: 3719 + components: + - type: Transform + pos: -43.5,-13.5 + parent: 2 + - uid: 3720 + components: + - type: Transform + pos: -43.5,-14.5 + parent: 2 + - uid: 3721 + components: + - type: Transform + pos: -43.5,-15.5 + parent: 2 + - uid: 3722 + components: + - type: Transform + pos: -43.5,-16.5 + parent: 2 + - uid: 3723 + components: + - type: Transform + pos: -43.5,-17.5 + parent: 2 + - uid: 3724 + components: + - type: Transform + pos: -43.5,-18.5 + parent: 2 + - uid: 3725 + components: + - type: Transform + pos: -43.5,-19.5 + parent: 2 + - uid: 3726 + components: + - type: Transform + pos: -43.5,-20.5 + parent: 2 + - uid: 3727 + components: + - type: Transform + pos: -43.5,-21.5 + parent: 2 + - uid: 3728 + components: + - type: Transform + pos: -43.5,-22.5 + parent: 2 + - uid: 3729 + components: + - type: Transform + pos: 9.5,-33.5 + parent: 2 + - uid: 3730 + components: + - type: Transform + pos: -42.5,-22.5 + parent: 2 + - uid: 3731 + components: + - type: Transform + pos: -41.5,-22.5 + parent: 2 + - uid: 3732 + components: + - type: Transform + pos: -40.5,-22.5 + parent: 2 + - uid: 3733 + components: + - type: Transform + pos: -39.5,-22.5 + parent: 2 + - uid: 3734 + components: + - type: Transform + pos: -38.5,-22.5 + parent: 2 + - uid: 3735 + components: + - type: Transform + pos: -37.5,-22.5 + parent: 2 + - uid: 3736 + components: + - type: Transform + pos: -36.5,-22.5 + parent: 2 + - uid: 3737 + components: + - type: Transform + pos: -35.5,-22.5 + parent: 2 + - uid: 3738 + components: + - type: Transform + pos: -34.5,-22.5 + parent: 2 + - uid: 3739 + components: + - type: Transform + pos: -33.5,-22.5 + parent: 2 + - uid: 3740 + components: + - type: Transform + pos: -33.5,-23.5 + parent: 2 + - uid: 3741 + components: + - type: Transform + pos: -33.5,-24.5 + parent: 2 + - uid: 3742 + components: + - type: Transform + pos: -33.5,-25.5 + parent: 2 + - uid: 3743 + components: + - type: Transform + pos: -33.5,-26.5 + parent: 2 + - uid: 3744 + components: + - type: Transform + pos: -33.5,-27.5 + parent: 2 + - uid: 3745 + components: + - type: Transform + pos: -33.5,-28.5 + parent: 2 + - uid: 3746 + components: + - type: Transform + pos: -33.5,-29.5 + parent: 2 + - uid: 3747 + components: + - type: Transform + pos: -33.5,-30.5 + parent: 2 + - uid: 3748 + components: + - type: Transform + pos: -33.5,-31.5 + parent: 2 + - uid: 3749 + components: + - type: Transform + pos: -33.5,-32.5 + parent: 2 + - uid: 3750 + components: + - type: Transform + pos: -33.5,-33.5 + parent: 2 + - uid: 3751 + components: + - type: Transform + pos: -33.5,-34.5 + parent: 2 + - uid: 3752 + components: + - type: Transform + pos: -33.5,-35.5 + parent: 2 + - uid: 3753 + components: + - type: Transform + pos: -33.5,-36.5 + parent: 2 + - uid: 3754 + components: + - type: Transform + pos: -33.5,-37.5 + parent: 2 + - uid: 3755 + components: + - type: Transform + pos: -33.5,-38.5 + parent: 2 + - uid: 3756 + components: + - type: Transform + pos: -33.5,-39.5 + parent: 2 + - uid: 3757 + components: + - type: Transform + pos: -32.5,-39.5 + parent: 2 + - uid: 3758 + components: + - type: Transform + pos: -31.5,-39.5 + parent: 2 + - uid: 3759 + components: + - type: Transform + pos: -30.5,-39.5 + parent: 2 + - uid: 3760 + components: + - type: Transform + pos: -29.5,-39.5 + parent: 2 + - uid: 3761 + components: + - type: Transform + pos: -28.5,-39.5 + parent: 2 + - uid: 3762 + components: + - type: Transform + pos: -27.5,-39.5 + parent: 2 + - uid: 3763 + components: + - type: Transform + pos: -26.5,-39.5 + parent: 2 + - uid: 3764 + components: + - type: Transform + pos: -25.5,-39.5 + parent: 2 + - uid: 3765 + components: + - type: Transform + pos: -24.5,-39.5 + parent: 2 + - uid: 3766 + components: + - type: Transform + pos: -23.5,-39.5 + parent: 2 + - uid: 3767 + components: + - type: Transform + pos: -22.5,-39.5 + parent: 2 + - uid: 3768 + components: + - type: Transform + pos: -21.5,-39.5 + parent: 2 + - uid: 3769 + components: + - type: Transform + pos: -20.5,-39.5 + parent: 2 + - uid: 3770 + components: + - type: Transform + pos: -19.5,-39.5 + parent: 2 + - uid: 3771 + components: + - type: Transform + pos: -18.5,-39.5 + parent: 2 + - uid: 3772 + components: + - type: Transform + pos: -17.5,-39.5 + parent: 2 + - uid: 3773 + components: + - type: Transform + pos: -16.5,-39.5 + parent: 2 + - uid: 3774 + components: + - type: Transform + pos: -15.5,-39.5 + parent: 2 + - uid: 3775 + components: + - type: Transform + pos: -14.5,-39.5 + parent: 2 + - uid: 3776 + components: + - type: Transform + pos: -13.5,-39.5 + parent: 2 + - uid: 3777 + components: + - type: Transform + pos: -12.5,-39.5 + parent: 2 + - uid: 3778 + components: + - type: Transform + pos: -11.5,-39.5 + parent: 2 + - uid: 3779 + components: + - type: Transform + pos: -10.5,-39.5 + parent: 2 + - uid: 3780 + components: + - type: Transform + pos: -6.5,-1.5 + parent: 2 + - uid: 3781 + components: + - type: Transform + pos: -6.5,-2.5 + parent: 2 + - uid: 3782 + components: + - type: Transform + pos: -6.5,-3.5 + parent: 2 + - uid: 3783 + components: + - type: Transform + pos: -6.5,-4.5 + parent: 2 + - uid: 3784 + components: + - type: Transform + pos: -5.5,-4.5 + parent: 2 + - uid: 3785 + components: + - type: Transform + pos: -5.5,-5.5 + parent: 2 + - uid: 3786 + components: + - type: Transform + pos: -4.5,-5.5 + parent: 2 + - uid: 3787 + components: + - type: Transform + pos: -3.5,-5.5 + parent: 2 + - uid: 3788 + components: + - type: Transform + pos: -2.5,-5.5 + parent: 2 + - uid: 3789 + components: + - type: Transform + pos: -1.5,-5.5 + parent: 2 + - uid: 3790 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 2 + - uid: 3791 + components: + - type: Transform + pos: 0.5,-5.5 + parent: 2 + - uid: 3792 + components: + - type: Transform + pos: 1.5,-5.5 + parent: 2 + - uid: 3793 + components: + - type: Transform + pos: 2.5,-5.5 + parent: 2 + - uid: 3794 + components: + - type: Transform + pos: 3.5,-5.5 + parent: 2 + - uid: 3795 + components: + - type: Transform + pos: 4.5,-5.5 + parent: 2 + - uid: 3796 + components: + - type: Transform + pos: 4.5,-4.5 + parent: 2 + - uid: 3797 + components: + - type: Transform + pos: 5.5,-4.5 + parent: 2 + - uid: 3798 + components: + - type: Transform + pos: 5.5,-3.5 + parent: 2 + - uid: 3799 + components: + - type: Transform + pos: 5.5,-2.5 + parent: 2 + - uid: 3800 + components: + - type: Transform + pos: 5.5,-1.5 + parent: 2 + - uid: 3801 + components: + - type: Transform + pos: -0.5,-6.5 + parent: 2 + - uid: 3802 + components: + - type: Transform + pos: -0.5,-7.5 + parent: 2 + - uid: 3803 + components: + - type: Transform + pos: -0.5,-8.5 + parent: 2 + - uid: 3804 + components: + - type: Transform + pos: -0.5,-9.5 + parent: 2 + - uid: 3805 + components: + - type: Transform + pos: -0.5,-10.5 + parent: 2 + - uid: 3806 + components: + - type: Transform + pos: -0.5,-11.5 + parent: 2 + - uid: 3807 + components: + - type: Transform + pos: -0.5,-12.5 + parent: 2 + - uid: 3808 + components: + - type: Transform + pos: -0.5,-13.5 + parent: 2 + - uid: 3809 + components: + - type: Transform + pos: -0.5,-14.5 + parent: 2 + - uid: 3810 + components: + - type: Transform + pos: -0.5,-15.5 + parent: 2 + - uid: 3811 + components: + - type: Transform + pos: -0.5,-16.5 + parent: 2 + - uid: 3812 + components: + - type: Transform + pos: -0.5,-17.5 + parent: 2 + - uid: 3813 + components: + - type: Transform + pos: -0.5,-18.5 + parent: 2 + - uid: 3814 + components: + - type: Transform + pos: -0.5,-19.5 + parent: 2 + - uid: 3815 + components: + - type: Transform + pos: -0.5,-20.5 + parent: 2 + - uid: 3816 + components: + - type: Transform + pos: -0.5,-21.5 + parent: 2 + - uid: 3817 + components: + - type: Transform + pos: -0.5,-22.5 + parent: 2 + - uid: 3818 + components: + - type: Transform + pos: -0.5,-23.5 + parent: 2 + - uid: 3819 + components: + - type: Transform + pos: -0.5,-24.5 + parent: 2 + - uid: 3820 + components: + - type: Transform + pos: -0.5,-25.5 + parent: 2 + - uid: 3821 + components: + - type: Transform + pos: -0.5,-26.5 + parent: 2 + - uid: 3822 + components: + - type: Transform + pos: 0.5,-26.5 + parent: 2 + - uid: 3823 + components: + - type: Transform + pos: 1.5,-26.5 + parent: 2 + - uid: 3824 + components: + - type: Transform + pos: 2.5,-26.5 + parent: 2 + - uid: 3825 + components: + - type: Transform + pos: 3.5,-26.5 + parent: 2 + - uid: 3826 + components: + - type: Transform + pos: 3.5,-27.5 + parent: 2 + - uid: 3827 + components: + - type: Transform + pos: 4.5,-27.5 + parent: 2 + - uid: 3828 + components: + - type: Transform + pos: 5.5,-27.5 + parent: 2 + - uid: 3829 + components: + - type: Transform + pos: 6.5,-27.5 + parent: 2 + - uid: 3830 + components: + - type: Transform + pos: 7.5,-27.5 + parent: 2 + - uid: 3831 + components: + - type: Transform + pos: 8.5,-27.5 + parent: 2 + - uid: 3832 + components: + - type: Transform + pos: 9.5,-27.5 + parent: 2 + - uid: 3833 + components: + - type: Transform + pos: 9.5,-26.5 + parent: 2 + - uid: 3834 + components: + - type: Transform + pos: 9.5,-25.5 + parent: 2 + - uid: 3835 + components: + - type: Transform + pos: 9.5,-24.5 + parent: 2 + - uid: 3836 + components: + - type: Transform + pos: 10.5,-24.5 + parent: 2 + - uid: 3837 + components: + - type: Transform + pos: 8.5,-28.5 + parent: 2 + - uid: 3838 + components: + - type: Transform + pos: 8.5,-29.5 + parent: 2 + - uid: 3839 + components: + - type: Transform + pos: 8.5,-30.5 + parent: 2 + - uid: 3840 + components: + - type: Transform + pos: 8.5,-31.5 + parent: 2 + - uid: 3841 + components: + - type: Transform + pos: 8.5,-32.5 + parent: 2 + - uid: 3842 + components: + - type: Transform + pos: -0.5,-27.5 + parent: 2 + - uid: 3843 + components: + - type: Transform + pos: -0.5,-28.5 + parent: 2 + - uid: 3844 + components: + - type: Transform + pos: -0.5,-29.5 + parent: 2 + - uid: 3845 + components: + - type: Transform + pos: -0.5,-30.5 + parent: 2 + - uid: 3846 + components: + - type: Transform + pos: -0.5,-31.5 + parent: 2 + - uid: 3847 + components: + - type: Transform + pos: 0.5,-31.5 + parent: 2 + - uid: 3848 + components: + - type: Transform + pos: 0.5,-32.5 + parent: 2 + - uid: 3849 + components: + - type: Transform + pos: -1.5,-32.5 + parent: 2 + - uid: 3850 + components: + - type: Transform + pos: -1.5,-31.5 + parent: 2 + - uid: 3851 + components: + - type: Transform + pos: 1.5,-32.5 + parent: 2 + - uid: 3852 + components: + - type: Transform + pos: 2.5,-32.5 + parent: 2 + - uid: 3853 + components: + - type: Transform + pos: 3.5,-32.5 + parent: 2 + - uid: 3854 + components: + - type: Transform + pos: 4.5,-32.5 + parent: 2 + - uid: 3855 + components: + - type: Transform + pos: 5.5,-32.5 + parent: 2 + - uid: 3856 + components: + - type: Transform + pos: 6.5,-32.5 + parent: 2 + - uid: 3857 + components: + - type: Transform + pos: 7.5,-32.5 + parent: 2 + - uid: 3858 + components: + - type: Transform + pos: 9.5,-32.5 + parent: 2 + - uid: 3859 + components: + - type: Transform + pos: 9.5,-34.5 + parent: 2 + - uid: 3860 + components: + - type: Transform + pos: 9.5,-35.5 + parent: 2 + - uid: 3861 + components: + - type: Transform + pos: 9.5,-36.5 + parent: 2 + - uid: 3862 + components: + - type: Transform + pos: 9.5,-37.5 + parent: 2 + - uid: 3863 + components: + - type: Transform + pos: 9.5,-38.5 + parent: 2 + - uid: 3865 + components: + - type: Transform + pos: -2.5,-32.5 + parent: 2 + - uid: 3866 + components: + - type: Transform + pos: -3.5,-32.5 + parent: 2 + - uid: 3867 + components: + - type: Transform + pos: -4.5,-32.5 + parent: 2 + - uid: 3868 + components: + - type: Transform + pos: -5.5,-32.5 + parent: 2 + - uid: 3869 + components: + - type: Transform + pos: -6.5,-32.5 + parent: 2 + - uid: 3870 + components: + - type: Transform + pos: -7.5,-32.5 + parent: 2 + - uid: 3871 + components: + - type: Transform + pos: -8.5,-32.5 + parent: 2 + - uid: 3872 + components: + - type: Transform + pos: -9.5,-32.5 + parent: 2 + - uid: 3873 + components: + - type: Transform + pos: -10.5,-32.5 + parent: 2 + - uid: 3874 + components: + - type: Transform + pos: -10.5,-33.5 + parent: 2 + - uid: 3875 + components: + - type: Transform + pos: -10.5,-34.5 + parent: 2 + - uid: 3876 + components: + - type: Transform + pos: -10.5,-35.5 + parent: 2 + - uid: 3877 + components: + - type: Transform + pos: -10.5,-36.5 + parent: 2 + - uid: 3878 + components: + - type: Transform + pos: -10.5,-37.5 + parent: 2 + - uid: 3879 + components: + - type: Transform + pos: -10.5,-38.5 + parent: 2 + - uid: 7692 + components: + - type: Transform + pos: 1.5,13.5 + parent: 2 + - uid: 7693 + components: + - type: Transform + pos: 1.5,16.5 + parent: 2 + - uid: 7700 + components: + - type: Transform + pos: 1.5,12.5 + parent: 2 + - uid: 7701 + components: + - type: Transform + pos: 1.5,15.5 + parent: 2 + - uid: 7702 + components: + - type: Transform + pos: 1.5,14.5 + parent: 2 + - uid: 7703 + components: + - type: Transform + pos: 1.5,11.5 + parent: 2 + - uid: 7704 + components: + - type: Transform + pos: 0.5,11.5 + parent: 2 + - uid: 7705 + components: + - type: Transform + pos: -1.5,11.5 + parent: 2 + - uid: 7706 + components: + - type: Transform + pos: -2.5,11.5 + parent: 2 + - uid: 7707 + components: + - type: Transform + pos: -2.5,12.5 + parent: 2 + - uid: 7708 + components: + - type: Transform + pos: -2.5,13.5 + parent: 2 + - uid: 7709 + components: + - type: Transform + pos: -2.5,14.5 + parent: 2 + - uid: 7710 + components: + - type: Transform + pos: -2.5,15.5 + parent: 2 + - uid: 7711 + components: + - type: Transform + pos: -2.5,16.5 + parent: 2 + - uid: 7712 + components: + - type: Transform + pos: -2.5,17.5 + parent: 2 + - uid: 7713 + components: + - type: Transform + pos: -2.5,18.5 + parent: 2 + - uid: 7714 + components: + - type: Transform + pos: -1.5,18.5 + parent: 2 +- proto: CableHVStack10 + entities: + - uid: 8634 + components: + - type: Transform + pos: -37.658268,-5.334872 + parent: 2 +- proto: CableMV + entities: + - uid: 3888 + components: + - type: Transform + pos: -7.5,-52.5 + parent: 2 + - uid: 3898 + components: + - type: Transform + pos: -7.5,30.5 + parent: 2 + - uid: 3899 + components: + - type: Transform + pos: -8.5,30.5 + parent: 2 + - uid: 3900 + components: + - type: Transform + pos: -8.5,29.5 + parent: 2 + - uid: 3901 + components: + - type: Transform + pos: -8.5,28.5 + parent: 2 + - uid: 3902 + components: + - type: Transform + pos: -8.5,27.5 + parent: 2 + - uid: 3903 + components: + - type: Transform + pos: -8.5,26.5 + parent: 2 + - uid: 3904 + components: + - type: Transform + pos: -8.5,25.5 + parent: 2 + - uid: 3905 + components: + - type: Transform + pos: -8.5,24.5 + parent: 2 + - uid: 3906 + components: + - type: Transform + pos: -8.5,23.5 + parent: 2 + - uid: 3907 + components: + - type: Transform + pos: -8.5,22.5 + parent: 2 + - uid: 3908 + components: + - type: Transform + pos: -7.5,26.5 + parent: 2 + - uid: 3909 + components: + - type: Transform + pos: -6.5,26.5 + parent: 2 + - uid: 3910 + components: + - type: Transform + pos: -5.5,26.5 + parent: 2 + - uid: 3911 + components: + - type: Transform + pos: -4.5,26.5 + parent: 2 + - uid: 3912 + components: + - type: Transform + pos: -3.5,26.5 + parent: 2 + - uid: 3913 + components: + - type: Transform + pos: -3.5,25.5 + parent: 2 + - uid: 3914 + components: + - type: Transform + pos: -3.5,24.5 + parent: 2 + - uid: 3915 + components: + - type: Transform + pos: 10.5,-4.5 + parent: 2 + - uid: 3916 + components: + - type: Transform + pos: 10.5,-5.5 + parent: 2 + - uid: 3917 + components: + - type: Transform + pos: 11.5,-5.5 + parent: 2 + - uid: 3918 + components: + - type: Transform + pos: 12.5,-5.5 + parent: 2 + - uid: 3919 + components: + - type: Transform + pos: 13.5,-5.5 + parent: 2 + - uid: 3920 + components: + - type: Transform + pos: 13.5,-4.5 + parent: 2 + - uid: 3921 + components: + - type: Transform + pos: 13.5,-3.5 + parent: 2 + - uid: 3922 + components: + - type: Transform + pos: 13.5,-2.5 + parent: 2 + - uid: 3923 + components: + - type: Transform + pos: 13.5,-1.5 + parent: 2 + - uid: 3924 + components: + - type: Transform + pos: 13.5,-0.5 + parent: 2 + - uid: 3925 + components: + - type: Transform + pos: 12.5,-0.5 + parent: 2 + - uid: 3926 + components: + - type: Transform + pos: 11.5,-0.5 + parent: 2 + - uid: 3927 + components: + - type: Transform + pos: 10.5,-0.5 + parent: 2 + - uid: 3928 + components: + - type: Transform + pos: 9.5,-0.5 + parent: 2 + - uid: 3929 + components: + - type: Transform + pos: 8.5,-0.5 + parent: 2 + - uid: 3930 + components: + - type: Transform + pos: 7.5,-0.5 + parent: 2 + - uid: 3931 + components: + - type: Transform + pos: 6.5,-0.5 + parent: 2 + - uid: 3932 + components: + - type: Transform + pos: 5.5,-0.5 + parent: 2 + - uid: 3933 + components: + - type: Transform + pos: 4.5,-0.5 + parent: 2 + - uid: 3934 + components: + - type: Transform + pos: 3.5,-0.5 + parent: 2 + - uid: 3935 + components: + - type: Transform + pos: 2.5,-0.5 + parent: 2 + - uid: 3936 + components: + - type: Transform + pos: 2.5,0.5 + parent: 2 + - uid: 3937 + components: + - type: Transform + pos: 2.5,1.5 + parent: 2 + - uid: 3938 + components: + - type: Transform + pos: 33.5,-6.5 + parent: 2 + - uid: 3939 + components: + - type: Transform + pos: 33.5,-7.5 + parent: 2 + - uid: 3940 + components: + - type: Transform + pos: 34.5,-7.5 + parent: 2 + - uid: 3941 + components: + - type: Transform + pos: 35.5,-7.5 + parent: 2 + - uid: 3942 + components: + - type: Transform + pos: 35.5,-6.5 + parent: 2 + - uid: 3943 + components: + - type: Transform + pos: 35.5,-5.5 + parent: 2 + - uid: 3944 + components: + - type: Transform + pos: 35.5,-4.5 + parent: 2 + - uid: 3945 + components: + - type: Transform + pos: 35.5,-3.5 + parent: 2 + - uid: 3946 + components: + - type: Transform + pos: 35.5,-2.5 + parent: 2 + - uid: 3947 + components: + - type: Transform + pos: 35.5,-1.5 + parent: 2 + - uid: 3948 + components: + - type: Transform + pos: 34.5,-1.5 + parent: 2 + - uid: 3949 + components: + - type: Transform + pos: 33.5,-1.5 + parent: 2 + - uid: 3950 + components: + - type: Transform + pos: 32.5,-1.5 + parent: 2 + - uid: 3951 + components: + - type: Transform + pos: 31.5,-1.5 + parent: 2 + - uid: 3952 + components: + - type: Transform + pos: 30.5,-1.5 + parent: 2 + - uid: 3953 + components: + - type: Transform + pos: 29.5,-1.5 + parent: 2 + - uid: 3954 + components: + - type: Transform + pos: 28.5,-1.5 + parent: 2 + - uid: 3955 + components: + - type: Transform + pos: 27.5,-1.5 + parent: 2 + - uid: 3956 + components: + - type: Transform + pos: 26.5,-1.5 + parent: 2 + - uid: 3957 + components: + - type: Transform + pos: 25.5,-1.5 + parent: 2 + - uid: 3958 + components: + - type: Transform + pos: 24.5,-1.5 + parent: 2 + - uid: 3959 + components: + - type: Transform + pos: 23.5,-1.5 + parent: 2 + - uid: 3960 + components: + - type: Transform + pos: 23.5,-2.5 + parent: 2 + - uid: 3961 + components: + - type: Transform + pos: 23.5,-3.5 + parent: 2 + - uid: 3962 + components: + - type: Transform + pos: 23.5,-4.5 + parent: 2 + - uid: 3963 + components: + - type: Transform + pos: 23.5,-5.5 + parent: 2 + - uid: 3964 + components: + - type: Transform + pos: 23.5,-6.5 + parent: 2 + - uid: 3965 + components: + - type: Transform + pos: 23.5,-7.5 + parent: 2 + - uid: 3966 + components: + - type: Transform + pos: 22.5,-7.5 + parent: 2 + - uid: 3967 + components: + - type: Transform + pos: 21.5,-7.5 + parent: 2 + - uid: 3968 + components: + - type: Transform + pos: 21.5,-8.5 + parent: 2 + - uid: 3969 + components: + - type: Transform + pos: 21.5,-9.5 + parent: 2 + - uid: 3970 + components: + - type: Transform + pos: 20.5,-9.5 + parent: 2 + - uid: 3971 + components: + - type: Transform + pos: 19.5,-9.5 + parent: 2 + - uid: 3972 + components: + - type: Transform + pos: 44.5,6.5 + parent: 2 + - uid: 3973 + components: + - type: Transform + pos: 43.5,6.5 + parent: 2 + - uid: 3974 + components: + - type: Transform + pos: 43.5,5.5 + parent: 2 + - uid: 3975 + components: + - type: Transform + pos: 43.5,4.5 + parent: 2 + - uid: 3976 + components: + - type: Transform + pos: 43.5,3.5 + parent: 2 + - uid: 3977 + components: + - type: Transform + pos: 42.5,3.5 + parent: 2 + - uid: 3978 + components: + - type: Transform + pos: 41.5,3.5 + parent: 2 + - uid: 3979 + components: + - type: Transform + pos: 40.5,3.5 + parent: 2 + - uid: 3980 + components: + - type: Transform + pos: 39.5,3.5 + parent: 2 + - uid: 3981 + components: + - type: Transform + pos: 38.5,3.5 + parent: 2 + - uid: 3982 + components: + - type: Transform + pos: 37.5,3.5 + parent: 2 + - uid: 3983 + components: + - type: Transform + pos: 36.5,3.5 + parent: 2 + - uid: 3984 + components: + - type: Transform + pos: 35.5,3.5 + parent: 2 + - uid: 3985 + components: + - type: Transform + pos: 34.5,3.5 + parent: 2 + - uid: 3986 + components: + - type: Transform + pos: 33.5,3.5 + parent: 2 + - uid: 3987 + components: + - type: Transform + pos: 32.5,3.5 + parent: 2 + - uid: 3988 + components: + - type: Transform + pos: 31.5,3.5 + parent: 2 + - uid: 3989 + components: + - type: Transform + pos: 30.5,3.5 + parent: 2 + - uid: 3990 + components: + - type: Transform + pos: 29.5,3.5 + parent: 2 + - uid: 3991 + components: + - type: Transform + pos: 28.5,3.5 + parent: 2 + - uid: 3992 + components: + - type: Transform + pos: 28.5,2.5 + parent: 2 + - uid: 3993 + components: + - type: Transform + pos: 28.5,1.5 + parent: 2 + - uid: 3994 + components: + - type: Transform + pos: 28.5,0.5 + parent: 2 + - uid: 3995 + components: + - type: Transform + pos: 27.5,0.5 + parent: 2 + - uid: 3996 + components: + - type: Transform + pos: 26.5,0.5 + parent: 2 + - uid: 3997 + components: + - type: Transform + pos: 25.5,0.5 + parent: 2 + - uid: 3998 + components: + - type: Transform + pos: 24.5,0.5 + parent: 2 + - uid: 3999 + components: + - type: Transform + pos: 23.5,0.5 + parent: 2 + - uid: 4000 + components: + - type: Transform + pos: 23.5,1.5 + parent: 2 + - uid: 4001 + components: + - type: Transform + pos: 23.5,2.5 + parent: 2 + - uid: 4002 + components: + - type: Transform + pos: 23.5,3.5 + parent: 2 + - uid: 4003 + components: + - type: Transform + pos: 23.5,4.5 + parent: 2 + - uid: 4004 + components: + - type: Transform + pos: 23.5,5.5 + parent: 2 + - uid: 4005 + components: + - type: Transform + pos: 23.5,6.5 + parent: 2 + - uid: 4006 + components: + - type: Transform + pos: 23.5,7.5 + parent: 2 + - uid: 4007 + components: + - type: Transform + pos: 24.5,7.5 + parent: 2 + - uid: 4008 + components: + - type: Transform + pos: 25.5,7.5 + parent: 2 + - uid: 4009 + components: + - type: Transform + pos: 25.5,8.5 + parent: 2 + - uid: 4010 + components: + - type: Transform + pos: 25.5,9.5 + parent: 2 + - uid: 4011 + components: + - type: Transform + pos: 25.5,10.5 + parent: 2 + - uid: 4012 + components: + - type: Transform + pos: 44.5,3.5 + parent: 2 + - uid: 4013 + components: + - type: Transform + pos: 45.5,3.5 + parent: 2 + - uid: 4014 + components: + - type: Transform + pos: 46.5,3.5 + parent: 2 + - uid: 4015 + components: + - type: Transform + pos: 46.5,2.5 + parent: 2 + - uid: 4016 + components: + - type: Transform + pos: 46.5,1.5 + parent: 2 + - uid: 4017 + components: + - type: Transform + pos: 46.5,0.5 + parent: 2 + - uid: 4018 + components: + - type: Transform + pos: 46.5,-0.5 + parent: 2 + - uid: 4019 + components: + - type: Transform + pos: 45.5,-0.5 + parent: 2 + - uid: 4020 + components: + - type: Transform + pos: 44.5,-0.5 + parent: 2 + - uid: 4021 + components: + - type: Transform + pos: 44.5,-1.5 + parent: 2 + - uid: 4022 + components: + - type: Transform + pos: 44.5,-2.5 + parent: 2 + - uid: 4023 + components: + - type: Transform + pos: 44.5,-3.5 + parent: 2 + - uid: 4024 + components: + - type: Transform + pos: 44.5,-4.5 + parent: 2 + - uid: 4025 + components: + - type: Transform + pos: 44.5,-5.5 + parent: 2 + - uid: 4026 + components: + - type: Transform + pos: 44.5,-6.5 + parent: 2 + - uid: 4027 + components: + - type: Transform + pos: 44.5,-7.5 + parent: 2 + - uid: 4028 + components: + - type: Transform + pos: 44.5,-8.5 + parent: 2 + - uid: 4029 + components: + - type: Transform + pos: 44.5,-9.5 + parent: 2 + - uid: 4030 + components: + - type: Transform + pos: 44.5,-10.5 + parent: 2 + - uid: 4031 + components: + - type: Transform + pos: 44.5,-11.5 + parent: 2 + - uid: 4032 + components: + - type: Transform + pos: 45.5,-11.5 + parent: 2 + - uid: 4033 + components: + - type: Transform + pos: 46.5,-11.5 + parent: 2 + - uid: 4034 + components: + - type: Transform + pos: 47.5,-11.5 + parent: 2 + - uid: 4035 + components: + - type: Transform + pos: 48.5,-11.5 + parent: 2 + - uid: 4036 + components: + - type: Transform + pos: 49.5,-11.5 + parent: 2 + - uid: 4037 + components: + - type: Transform + pos: 49.5,-10.5 + parent: 2 + - uid: 4038 + components: + - type: Transform + pos: 49.5,-9.5 + parent: 2 + - uid: 4039 + components: + - type: Transform + pos: 49.5,-8.5 + parent: 2 + - uid: 4040 + components: + - type: Transform + pos: 49.5,-7.5 + parent: 2 + - uid: 4041 + components: + - type: Transform + pos: 43.5,2.5 + parent: 2 + - uid: 4042 + components: + - type: Transform + pos: 43.5,1.5 + parent: 2 + - uid: 4043 + components: + - type: Transform + pos: 36.5,-5.5 + parent: 2 + - uid: 4044 + components: + - type: Transform + pos: 37.5,-5.5 + parent: 2 + - uid: 4045 + components: + - type: Transform + pos: 37.5,-6.5 + parent: 2 + - uid: 4046 + components: + - type: Transform + pos: 37.5,-7.5 + parent: 2 + - uid: 4047 + components: + - type: Transform + pos: 37.5,-8.5 + parent: 2 + - uid: 4048 + components: + - type: Transform + pos: 37.5,-9.5 + parent: 2 + - uid: 4049 + components: + - type: Transform + pos: 37.5,-10.5 + parent: 2 + - uid: 4050 + components: + - type: Transform + pos: 37.5,-11.5 + parent: 2 + - uid: 4051 + components: + - type: Transform + pos: 37.5,-12.5 + parent: 2 + - uid: 4052 + components: + - type: Transform + pos: 38.5,-12.5 + parent: 2 + - uid: 4053 + components: + - type: Transform + pos: 39.5,-12.5 + parent: 2 + - uid: 4054 + components: + - type: Transform + pos: 40.5,-12.5 + parent: 2 + - uid: 4055 + components: + - type: Transform + pos: 41.5,-12.5 + parent: 2 + - uid: 4056 + components: + - type: Transform + pos: 42.5,-12.5 + parent: 2 + - uid: 4057 + components: + - type: Transform + pos: 42.5,-13.5 + parent: 2 + - uid: 4058 + components: + - type: Transform + pos: 42.5,-14.5 + parent: 2 + - uid: 4059 + components: + - type: Transform + pos: 42.5,-15.5 + parent: 2 + - uid: 4060 + components: + - type: Transform + pos: 42.5,-16.5 + parent: 2 + - uid: 4061 + components: + - type: Transform + pos: 42.5,-17.5 + parent: 2 + - uid: 4062 + components: + - type: Transform + pos: 42.5,-18.5 + parent: 2 + - uid: 4063 + components: + - type: Transform + pos: 42.5,-19.5 + parent: 2 + - uid: 4064 + components: + - type: Transform + pos: 42.5,-20.5 + parent: 2 + - uid: 4065 + components: + - type: Transform + pos: 42.5,-21.5 + parent: 2 + - uid: 4066 + components: + - type: Transform + pos: 41.5,-21.5 + parent: 2 + - uid: 4067 + components: + - type: Transform + pos: 40.5,-21.5 + parent: 2 + - uid: 4068 + components: + - type: Transform + pos: 39.5,-21.5 + parent: 2 + - uid: 4069 + components: + - type: Transform + pos: 38.5,-21.5 + parent: 2 + - uid: 4070 + components: + - type: Transform + pos: 37.5,-21.5 + parent: 2 + - uid: 4071 + components: + - type: Transform + pos: 36.5,-21.5 + parent: 2 + - uid: 4072 + components: + - type: Transform + pos: 35.5,-21.5 + parent: 2 + - uid: 4073 + components: + - type: Transform + pos: 34.5,-21.5 + parent: 2 + - uid: 4074 + components: + - type: Transform + pos: 33.5,-21.5 + parent: 2 + - uid: 4075 + components: + - type: Transform + pos: 32.5,-21.5 + parent: 2 + - uid: 4076 + components: + - type: Transform + pos: 32.5,-20.5 + parent: 2 + - uid: 4077 + components: + - type: Transform + pos: -37.5,-3.5 + parent: 2 + - uid: 4078 + components: + - type: Transform + pos: -37.5,-4.5 + parent: 2 + - uid: 4079 + components: + - type: Transform + pos: -38.5,-4.5 + parent: 2 + - uid: 4080 + components: + - type: Transform + pos: -39.5,-4.5 + parent: 2 + - uid: 4081 + components: + - type: Transform + pos: -40.5,-4.5 + parent: 2 + - uid: 4082 + components: + - type: Transform + pos: -40.5,-5.5 + parent: 2 + - uid: 4083 + components: + - type: Transform + pos: -40.5,-6.5 + parent: 2 + - uid: 4084 + components: + - type: Transform + pos: -40.5,-7.5 + parent: 2 + - uid: 4085 + components: + - type: Transform + pos: -40.5,-8.5 + parent: 2 + - uid: 4086 + components: + - type: Transform + pos: -41.5,-8.5 + parent: 2 + - uid: 4087 + components: + - type: Transform + pos: -42.5,-8.5 + parent: 2 + - uid: 4088 + components: + - type: Transform + pos: -42.5,-7.5 + parent: 2 + - uid: 4089 + components: + - type: Transform + pos: -42.5,-6.5 + parent: 2 + - uid: 4090 + components: + - type: Transform + pos: -42.5,-5.5 + parent: 2 + - uid: 4091 + components: + - type: Transform + pos: -42.5,-4.5 + parent: 2 + - uid: 4092 + components: + - type: Transform + pos: -42.5,-3.5 + parent: 2 + - uid: 4093 + components: + - type: Transform + pos: -42.5,-2.5 + parent: 2 + - uid: 4094 + components: + - type: Transform + pos: -42.5,-1.5 + parent: 2 + - uid: 4095 + components: + - type: Transform + pos: -41.5,-1.5 + parent: 2 + - uid: 4096 + components: + - type: Transform + pos: -40.5,-1.5 + parent: 2 + - uid: 4097 + components: + - type: Transform + pos: -39.5,-1.5 + parent: 2 + - uid: 4098 + components: + - type: Transform + pos: -38.5,-1.5 + parent: 2 + - uid: 4099 + components: + - type: Transform + pos: -37.5,-1.5 + parent: 2 + - uid: 4100 + components: + - type: Transform + pos: -36.5,-1.5 + parent: 2 + - uid: 4101 + components: + - type: Transform + pos: -35.5,-1.5 + parent: 2 + - uid: 4102 + components: + - type: Transform + pos: -34.5,-1.5 + parent: 2 + - uid: 4103 + components: + - type: Transform + pos: -33.5,-1.5 + parent: 2 + - uid: 4104 + components: + - type: Transform + pos: -32.5,-1.5 + parent: 2 + - uid: 4105 + components: + - type: Transform + pos: -31.5,-1.5 + parent: 2 + - uid: 4106 + components: + - type: Transform + pos: -30.5,-1.5 + parent: 2 + - uid: 4107 + components: + - type: Transform + pos: -29.5,-1.5 + parent: 2 + - uid: 4108 + components: + - type: Transform + pos: -28.5,-1.5 + parent: 2 + - uid: 4109 + components: + - type: Transform + pos: -27.5,-1.5 + parent: 2 + - uid: 4110 + components: + - type: Transform + pos: -26.5,-1.5 + parent: 2 + - uid: 4111 + components: + - type: Transform + pos: -25.5,-1.5 + parent: 2 + - uid: 4112 + components: + - type: Transform + pos: -24.5,-1.5 + parent: 2 + - uid: 4113 + components: + - type: Transform + pos: -24.5,-2.5 + parent: 2 + - uid: 4114 + components: + - type: Transform + pos: -24.5,-3.5 + parent: 2 + - uid: 4115 + components: + - type: Transform + pos: -24.5,-4.5 + parent: 2 + - uid: 4116 + components: + - type: Transform + pos: -24.5,-5.5 + parent: 2 + - uid: 4117 + components: + - type: Transform + pos: -24.5,-6.5 + parent: 2 + - uid: 4118 + components: + - type: Transform + pos: -23.5,-6.5 + parent: 2 + - uid: 4119 + components: + - type: Transform + pos: -22.5,-6.5 + parent: 2 + - uid: 4120 + components: + - type: Transform + pos: -21.5,-6.5 + parent: 2 + - uid: 4121 + components: + - type: Transform + pos: -21.5,-5.5 + parent: 2 + - uid: 4122 + components: + - type: Transform + pos: -21.5,-4.5 + parent: 2 + - uid: 4123 + components: + - type: Transform + pos: -43.5,6.5 + parent: 2 + - uid: 4124 + components: + - type: Transform + pos: -44.5,6.5 + parent: 2 + - uid: 4125 + components: + - type: Transform + pos: -44.5,5.5 + parent: 2 + - uid: 4126 + components: + - type: Transform + pos: -44.5,4.5 + parent: 2 + - uid: 4127 + components: + - type: Transform + pos: -44.5,3.5 + parent: 2 + - uid: 4128 + components: + - type: Transform + pos: -44.5,2.5 + parent: 2 + - uid: 4129 + components: + - type: Transform + pos: -43.5,2.5 + parent: 2 + - uid: 4130 + components: + - type: Transform + pos: -42.5,2.5 + parent: 2 + - uid: 4131 + components: + - type: Transform + pos: -41.5,2.5 + parent: 2 + - uid: 4132 + components: + - type: Transform + pos: -40.5,2.5 + parent: 2 + - uid: 4133 + components: + - type: Transform + pos: -39.5,2.5 + parent: 2 + - uid: 4134 + components: + - type: Transform + pos: -38.5,2.5 + parent: 2 + - uid: 4135 + components: + - type: Transform + pos: -38.5,1.5 + parent: 2 + - uid: 4136 + components: + - type: Transform + pos: -38.5,0.5 + parent: 2 + - uid: 4137 + components: + - type: Transform + pos: -37.5,0.5 + parent: 2 + - uid: 4138 + components: + - type: Transform + pos: -36.5,0.5 + parent: 2 + - uid: 4139 + components: + - type: Transform + pos: -35.5,0.5 + parent: 2 + - uid: 4140 + components: + - type: Transform + pos: -34.5,0.5 + parent: 2 + - uid: 4141 + components: + - type: Transform + pos: -33.5,0.5 + parent: 2 + - uid: 4142 + components: + - type: Transform + pos: -32.5,0.5 + parent: 2 + - uid: 4143 + components: + - type: Transform + pos: -31.5,0.5 + parent: 2 + - uid: 4144 + components: + - type: Transform + pos: -30.5,0.5 + parent: 2 + - uid: 4145 + components: + - type: Transform + pos: -29.5,0.5 + parent: 2 + - uid: 4146 + components: + - type: Transform + pos: -28.5,0.5 + parent: 2 + - uid: 4147 + components: + - type: Transform + pos: -27.5,0.5 + parent: 2 + - uid: 4148 + components: + - type: Transform + pos: -26.5,0.5 + parent: 2 + - uid: 4149 + components: + - type: Transform + pos: -25.5,0.5 + parent: 2 + - uid: 4150 + components: + - type: Transform + pos: -24.5,0.5 + parent: 2 + - uid: 4151 + components: + - type: Transform + pos: -24.5,1.5 + parent: 2 + - uid: 4152 + components: + - type: Transform + pos: -24.5,2.5 + parent: 2 + - uid: 4153 + components: + - type: Transform + pos: -24.5,3.5 + parent: 2 + - uid: 4154 + components: + - type: Transform + pos: -24.5,4.5 + parent: 2 + - uid: 4155 + components: + - type: Transform + pos: -24.5,5.5 + parent: 2 + - uid: 4156 + components: + - type: Transform + pos: -24.5,6.5 + parent: 2 + - uid: 4157 + components: + - type: Transform + pos: -24.5,7.5 + parent: 2 + - uid: 4158 + components: + - type: Transform + pos: -24.5,8.5 + parent: 2 + - uid: 4159 + components: + - type: Transform + pos: -25.5,8.5 + parent: 2 + - uid: 4160 + components: + - type: Transform + pos: -26.5,8.5 + parent: 2 + - uid: 4161 + components: + - type: Transform + pos: -27.5,8.5 + parent: 2 + - uid: 4162 + components: + - type: Transform + pos: -28.5,8.5 + parent: 2 + - uid: 4163 + components: + - type: Transform + pos: -29.5,8.5 + parent: 2 + - uid: 4164 + components: + - type: Transform + pos: -30.5,8.5 + parent: 2 + - uid: 4165 + components: + - type: Transform + pos: -30.5,9.5 + parent: 2 + - uid: 4166 + components: + - type: Transform + pos: -45.5,2.5 + parent: 2 + - uid: 4167 + components: + - type: Transform + pos: -46.5,2.5 + parent: 2 + - uid: 4168 + components: + - type: Transform + pos: -46.5,1.5 + parent: 2 + - uid: 4169 + components: + - type: Transform + pos: -46.5,0.5 + parent: 2 + - uid: 4170 + components: + - type: Transform + pos: -45.5,0.5 + parent: 2 + - uid: 4171 + components: + - type: Transform + pos: -44.5,0.5 + parent: 2 + - uid: 4172 + components: + - type: Transform + pos: -43.5,1.5 + parent: 2 + - uid: 4173 + components: + - type: Transform + pos: -44.5,-0.5 + parent: 2 + - uid: 4174 + components: + - type: Transform + pos: -44.5,-1.5 + parent: 2 + - uid: 4175 + components: + - type: Transform + pos: -44.5,-2.5 + parent: 2 + - uid: 4176 + components: + - type: Transform + pos: -44.5,-3.5 + parent: 2 + - uid: 4177 + components: + - type: Transform + pos: -44.5,-4.5 + parent: 2 + - uid: 4178 + components: + - type: Transform + pos: -44.5,-5.5 + parent: 2 + - uid: 4179 + components: + - type: Transform + pos: -44.5,-6.5 + parent: 2 + - uid: 4180 + components: + - type: Transform + pos: -44.5,-7.5 + parent: 2 + - uid: 4181 + components: + - type: Transform + pos: -44.5,-8.5 + parent: 2 + - uid: 4182 + components: + - type: Transform + pos: -44.5,-9.5 + parent: 2 + - uid: 4183 + components: + - type: Transform + pos: -44.5,-10.5 + parent: 2 + - uid: 4184 + components: + - type: Transform + pos: -44.5,-11.5 + parent: 2 + - uid: 4185 + components: + - type: Transform + pos: -45.5,-11.5 + parent: 2 + - uid: 4186 + components: + - type: Transform + pos: -46.5,-11.5 + parent: 2 + - uid: 4187 + components: + - type: Transform + pos: -47.5,-11.5 + parent: 2 + - uid: 4188 + components: + - type: Transform + pos: -48.5,-11.5 + parent: 2 + - uid: 4189 + components: + - type: Transform + pos: -49.5,-11.5 + parent: 2 + - uid: 4190 + components: + - type: Transform + pos: -50.5,-11.5 + parent: 2 + - uid: 4191 + components: + - type: Transform + pos: -50.5,-10.5 + parent: 2 + - uid: 4192 + components: + - type: Transform + pos: -50.5,-9.5 + parent: 2 + - uid: 4193 + components: + - type: Transform + pos: -50.5,-8.5 + parent: 2 + - uid: 4194 + components: + - type: Transform + pos: -50.5,-7.5 + parent: 2 + - uid: 4195 + components: + - type: Transform + pos: -42.5,-9.5 + parent: 2 + - uid: 4196 + components: + - type: Transform + pos: -42.5,-10.5 + parent: 2 + - uid: 4197 + components: + - type: Transform + pos: -42.5,-11.5 + parent: 2 + - uid: 4198 + components: + - type: Transform + pos: -42.5,-12.5 + parent: 2 + - uid: 4199 + components: + - type: Transform + pos: -42.5,-13.5 + parent: 2 + - uid: 4200 + components: + - type: Transform + pos: -42.5,-14.5 + parent: 2 + - uid: 4201 + components: + - type: Transform + pos: -42.5,-15.5 + parent: 2 + - uid: 4202 + components: + - type: Transform + pos: -42.5,-16.5 + parent: 2 + - uid: 4203 + components: + - type: Transform + pos: -42.5,-17.5 + parent: 2 + - uid: 4204 + components: + - type: Transform + pos: -42.5,-18.5 + parent: 2 + - uid: 4205 + components: + - type: Transform + pos: -42.5,-19.5 + parent: 2 + - uid: 4206 + components: + - type: Transform + pos: -42.5,-20.5 + parent: 2 + - uid: 4207 + components: + - type: Transform + pos: -42.5,-21.5 + parent: 2 + - uid: 4208 + components: + - type: Transform + pos: -41.5,-21.5 + parent: 2 + - uid: 4209 + components: + - type: Transform + pos: -40.5,-21.5 + parent: 2 + - uid: 4210 + components: + - type: Transform + pos: -39.5,-21.5 + parent: 2 + - uid: 4211 + components: + - type: Transform + pos: -38.5,-21.5 + parent: 2 + - uid: 4212 + components: + - type: Transform + pos: -37.5,-21.5 + parent: 2 + - uid: 4213 + components: + - type: Transform + pos: -36.5,-21.5 + parent: 2 + - uid: 4214 + components: + - type: Transform + pos: -35.5,-21.5 + parent: 2 + - uid: 4215 + components: + - type: Transform + pos: -34.5,-21.5 + parent: 2 + - uid: 4216 + components: + - type: Transform + pos: -33.5,-21.5 + parent: 2 + - uid: 4217 + components: + - type: Transform + pos: -33.5,-20.5 + parent: 2 + - uid: 4218 + components: + - type: Transform + pos: 10.5,-24.5 + parent: 2 + - uid: 4219 + components: + - type: Transform + pos: 9.5,-24.5 + parent: 2 + - uid: 4220 + components: + - type: Transform + pos: 9.5,-25.5 + parent: 2 + - uid: 4221 + components: + - type: Transform + pos: 9.5,-26.5 + parent: 2 + - uid: 4222 + components: + - type: Transform + pos: 9.5,-27.5 + parent: 2 + - uid: 4223 + components: + - type: Transform + pos: 8.5,-27.5 + parent: 2 + - uid: 4224 + components: + - type: Transform + pos: 7.5,-27.5 + parent: 2 + - uid: 4225 + components: + - type: Transform + pos: 6.5,-27.5 + parent: 2 + - uid: 4226 + components: + - type: Transform + pos: 5.5,-27.5 + parent: 2 + - uid: 4227 + components: + - type: Transform + pos: 4.5,-27.5 + parent: 2 + - uid: 4228 + components: + - type: Transform + pos: 3.5,-27.5 + parent: 2 + - uid: 4229 + components: + - type: Transform + pos: 3.5,-26.5 + parent: 2 + - uid: 4230 + components: + - type: Transform + pos: 2.5,-26.5 + parent: 2 + - uid: 4231 + components: + - type: Transform + pos: 1.5,-26.5 + parent: 2 + - uid: 4232 + components: + - type: Transform + pos: 0.5,-26.5 + parent: 2 + - uid: 4233 + components: + - type: Transform + pos: -0.5,-26.5 + parent: 2 + - uid: 4234 + components: + - type: Transform + pos: -0.5,-25.5 + parent: 2 + - uid: 4235 + components: + - type: Transform + pos: -1.5,-25.5 + parent: 2 + - uid: 4236 + components: + - type: Transform + pos: -2.5,-25.5 + parent: 2 + - uid: 4237 + components: + - type: Transform + pos: -0.5,-24.5 + parent: 2 + - uid: 4238 + components: + - type: Transform + pos: -0.5,-23.5 + parent: 2 + - uid: 4239 + components: + - type: Transform + pos: -0.5,-22.5 + parent: 2 + - uid: 4240 + components: + - type: Transform + pos: -0.5,-21.5 + parent: 2 + - uid: 4241 + components: + - type: Transform + pos: -0.5,-20.5 + parent: 2 + - uid: 4242 + components: + - type: Transform + pos: -0.5,-19.5 + parent: 2 + - uid: 4243 + components: + - type: Transform + pos: -0.5,-18.5 + parent: 2 + - uid: 4244 + components: + - type: Transform + pos: -0.5,-17.5 + parent: 2 + - uid: 4245 + components: + - type: Transform + pos: -0.5,-16.5 + parent: 2 + - uid: 4246 + components: + - type: Transform + pos: 0.5,-16.5 + parent: 2 + - uid: 4247 + components: + - type: Transform + pos: 1.5,-16.5 + parent: 2 + - uid: 4248 + components: + - type: Transform + pos: 2.5,-16.5 + parent: 2 + - uid: 4249 + components: + - type: Transform + pos: 3.5,-16.5 + parent: 2 + - uid: 4250 + components: + - type: Transform + pos: 4.5,-16.5 + parent: 2 + - uid: 4251 + components: + - type: Transform + pos: 5.5,-16.5 + parent: 2 + - uid: 4252 + components: + - type: Transform + pos: 6.5,-16.5 + parent: 2 + - uid: 4253 + components: + - type: Transform + pos: 7.5,-16.5 + parent: 2 + - uid: 4254 + components: + - type: Transform + pos: 8.5,-16.5 + parent: 2 + - uid: 4255 + components: + - type: Transform + pos: 9.5,-16.5 + parent: 2 + - uid: 4256 + components: + - type: Transform + pos: 10.5,-16.5 + parent: 2 + - uid: 4257 + components: + - type: Transform + pos: 10.5,-15.5 + parent: 2 + - uid: 4258 + components: + - type: Transform + pos: 10.5,-14.5 + parent: 2 + - uid: 4259 + components: + - type: Transform + pos: 10.5,-13.5 + parent: 2 + - uid: 4260 + components: + - type: Transform + pos: 10.5,-12.5 + parent: 2 + - uid: 4261 + components: + - type: Transform + pos: 10.5,-11.5 + parent: 2 + - uid: 4262 + components: + - type: Transform + pos: 10.5,-10.5 + parent: 2 + - uid: 4263 + components: + - type: Transform + pos: 10.5,-9.5 + parent: 2 + - uid: 4264 + components: + - type: Transform + pos: -1.5,-16.5 + parent: 2 + - uid: 4265 + components: + - type: Transform + pos: -2.5,-16.5 + parent: 2 + - uid: 4266 + components: + - type: Transform + pos: -3.5,-16.5 + parent: 2 + - uid: 4267 + components: + - type: Transform + pos: -4.5,-16.5 + parent: 2 + - uid: 4268 + components: + - type: Transform + pos: -5.5,-16.5 + parent: 2 + - uid: 4269 + components: + - type: Transform + pos: -6.5,-16.5 + parent: 2 + - uid: 4270 + components: + - type: Transform + pos: -7.5,-16.5 + parent: 2 + - uid: 4271 + components: + - type: Transform + pos: -8.5,-16.5 + parent: 2 + - uid: 4272 + components: + - type: Transform + pos: -9.5,-16.5 + parent: 2 + - uid: 4273 + components: + - type: Transform + pos: -10.5,-16.5 + parent: 2 + - uid: 4274 + components: + - type: Transform + pos: -11.5,-16.5 + parent: 2 + - uid: 4275 + components: + - type: Transform + pos: -12.5,-16.5 + parent: 2 + - uid: 4276 + components: + - type: Transform + pos: -13.5,-16.5 + parent: 2 + - uid: 4277 + components: + - type: Transform + pos: -13.5,-15.5 + parent: 2 + - uid: 4278 + components: + - type: Transform + pos: -13.5,-14.5 + parent: 2 + - uid: 4279 + components: + - type: Transform + pos: 8.5,-28.5 + parent: 2 + - uid: 4280 + components: + - type: Transform + pos: 8.5,-29.5 + parent: 2 + - uid: 4281 + components: + - type: Transform + pos: 8.5,-30.5 + parent: 2 + - uid: 4282 + components: + - type: Transform + pos: 8.5,-31.5 + parent: 2 + - uid: 4283 + components: + - type: Transform + pos: 8.5,-32.5 + parent: 2 + - uid: 4284 + components: + - type: Transform + pos: 9.5,-32.5 + parent: 2 + - uid: 4285 + components: + - type: Transform + pos: 9.5,-33.5 + parent: 2 + - uid: 4286 + components: + - type: Transform + pos: 9.5,-34.5 + parent: 2 + - uid: 4287 + components: + - type: Transform + pos: 10.5,-34.5 + parent: 2 + - uid: 4288 + components: + - type: Transform + pos: 11.5,-34.5 + parent: 2 + - uid: 4289 + components: + - type: Transform + pos: 12.5,-34.5 + parent: 2 + - uid: 4290 + components: + - type: Transform + pos: 13.5,-34.5 + parent: 2 + - uid: 4291 + components: + - type: Transform + pos: 14.5,-34.5 + parent: 2 + - uid: 4292 + components: + - type: Transform + pos: 15.5,-34.5 + parent: 2 + - uid: 4293 + components: + - type: Transform + pos: 16.5,-34.5 + parent: 2 + - uid: 4294 + components: + - type: Transform + pos: 17.5,-34.5 + parent: 2 + - uid: 4295 + components: + - type: Transform + pos: 18.5,-34.5 + parent: 2 + - uid: 4296 + components: + - type: Transform + pos: 9.5,-35.5 + parent: 2 + - uid: 4297 + components: + - type: Transform + pos: 9.5,-36.5 + parent: 2 + - uid: 4298 + components: + - type: Transform + pos: 9.5,-37.5 + parent: 2 + - uid: 4299 + components: + - type: Transform + pos: 9.5,-38.5 + parent: 2 + - uid: 4300 + components: + - type: Transform + pos: 9.5,-39.5 + parent: 2 + - uid: 4301 + components: + - type: Transform + pos: 9.5,-40.5 + parent: 2 + - uid: 4302 + components: + - type: Transform + pos: 9.5,-41.5 + parent: 2 + - uid: 4303 + components: + - type: Transform + pos: 9.5,-42.5 + parent: 2 + - uid: 4304 + components: + - type: Transform + pos: 9.5,-43.5 + parent: 2 + - uid: 4305 + components: + - type: Transform + pos: 9.5,-44.5 + parent: 2 + - uid: 4306 + components: + - type: Transform + pos: 9.5,-45.5 + parent: 2 + - uid: 4307 + components: + - type: Transform + pos: 9.5,-46.5 + parent: 2 + - uid: 4309 + components: + - type: Transform + pos: 9.5,-48.5 + parent: 2 + - uid: 4310 + components: + - type: Transform + pos: 9.5,-49.5 + parent: 2 + - uid: 4311 + components: + - type: Transform + pos: 9.5,-50.5 + parent: 2 + - uid: 4312 + components: + - type: Transform + pos: 9.5,-51.5 + parent: 2 + - uid: 4313 + components: + - type: Transform + pos: 9.5,-52.5 + parent: 2 + - uid: 4314 + components: + - type: Transform + pos: 8.5,-52.5 + parent: 2 + - uid: 4315 + components: + - type: Transform + pos: 7.5,-52.5 + parent: 2 + - uid: 4316 + components: + - type: Transform + pos: 6.5,-52.5 + parent: 2 + - uid: 4317 + components: + - type: Transform + pos: -8.5,-52.5 + parent: 2 + - uid: 4318 + components: + - type: Transform + pos: -9.5,-52.5 + parent: 2 + - uid: 4319 + components: + - type: Transform + pos: -10.5,-52.5 + parent: 2 + - uid: 4321 + components: + - type: Transform + pos: -10.5,-51.5 + parent: 2 + - uid: 4322 + components: + - type: Transform + pos: -10.5,-50.5 + parent: 2 + - uid: 4323 + components: + - type: Transform + pos: -10.5,-49.5 + parent: 2 + - uid: 4324 + components: + - type: Transform + pos: -10.5,-48.5 + parent: 2 + - uid: 4325 + components: + - type: Transform + pos: -10.5,-47.5 + parent: 2 + - uid: 4326 + components: + - type: Transform + pos: -10.5,-46.5 + parent: 2 + - uid: 4327 + components: + - type: Transform + pos: -9.5,-46.5 + parent: 2 + - uid: 4328 + components: + - type: Transform + pos: -8.5,-46.5 + parent: 2 + - uid: 4329 + components: + - type: Transform + pos: -7.5,-46.5 + parent: 2 + - uid: 4330 + components: + - type: Transform + pos: -6.5,-46.5 + parent: 2 + - uid: 4331 + components: + - type: Transform + pos: -5.5,-46.5 + parent: 2 + - uid: 4332 + components: + - type: Transform + pos: -4.5,-46.5 + parent: 2 + - uid: 4333 + components: + - type: Transform + pos: -3.5,-46.5 + parent: 2 + - uid: 4334 + components: + - type: Transform + pos: -2.5,-46.5 + parent: 2 + - uid: 4335 + components: + - type: Transform + pos: -1.5,-46.5 + parent: 2 + - uid: 4336 + components: + - type: Transform + pos: -0.5,-46.5 + parent: 2 + - uid: 4337 + components: + - type: Transform + pos: 0.5,-46.5 + parent: 2 + - uid: 4338 + components: + - type: Transform + pos: 1.5,-46.5 + parent: 2 + - uid: 4339 + components: + - type: Transform + pos: 2.5,-46.5 + parent: 2 + - uid: 4340 + components: + - type: Transform + pos: 3.5,-46.5 + parent: 2 + - uid: 4341 + components: + - type: Transform + pos: 4.5,-46.5 + parent: 2 + - uid: 4342 + components: + - type: Transform + pos: 5.5,-46.5 + parent: 2 + - uid: 4343 + components: + - type: Transform + pos: 6.5,-46.5 + parent: 2 + - uid: 4344 + components: + - type: Transform + pos: 7.5,-46.5 + parent: 2 + - uid: 4345 + components: + - type: Transform + pos: 8.5,-46.5 + parent: 2 + - uid: 6868 + components: + - type: Transform + pos: 9.5,-47.5 + parent: 2 +- proto: CableTerminal + entities: + - uid: 3137 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,35.5 + parent: 2 +- proto: CaptainSabre + entities: + - uid: 7736 + components: + - type: Transform + pos: 2.5162191,14.7318 + parent: 2 +- proto: CarbonDioxideCanister + entities: + - uid: 8607 + components: + - type: Transform + pos: -32.5,-14.5 + parent: 2 +- proto: Carpet + entities: + - uid: 2647 + components: + - type: Transform + pos: -55.5,-0.5 + parent: 2 + - uid: 2648 + components: + - type: Transform + pos: -55.5,-1.5 + parent: 2 + - uid: 2649 + components: + - type: Transform + pos: -55.5,-2.5 + parent: 2 + - uid: 2650 + components: + - type: Transform + pos: -55.5,-3.5 + parent: 2 + - uid: 2651 + components: + - type: Transform + pos: -54.5,-0.5 + parent: 2 + - uid: 2652 + components: + - type: Transform + pos: -54.5,-1.5 + parent: 2 + - uid: 2653 + components: + - type: Transform + pos: -54.5,-2.5 + parent: 2 + - uid: 2654 + components: + - type: Transform + pos: -54.5,-3.5 + parent: 2 + - uid: 2655 + components: + - type: Transform + pos: -53.5,-0.5 + parent: 2 + - uid: 2656 + components: + - type: Transform + pos: -53.5,-1.5 + parent: 2 + - uid: 2657 + components: + - type: Transform + pos: -53.5,-2.5 + parent: 2 + - uid: 2658 + components: + - type: Transform + pos: -53.5,-3.5 + parent: 2 + - uid: 2659 + components: + - type: Transform + pos: -52.5,-3.5 + parent: 2 + - uid: 2660 + components: + - type: Transform + pos: -52.5,-2.5 + parent: 2 + - uid: 2661 + components: + - type: Transform + pos: -52.5,-1.5 + parent: 2 + - uid: 8019 + components: + - type: Transform + pos: -37.5,11.5 + parent: 2 + - uid: 8020 + components: + - type: Transform + pos: -38.5,12.5 + parent: 2 + - uid: 8021 + components: + - type: Transform + pos: -38.5,13.5 + parent: 2 + - uid: 8022 + components: + - type: Transform + pos: -37.5,12.5 + parent: 2 + - uid: 8023 + components: + - type: Transform + pos: -37.5,13.5 + parent: 2 +- proto: CarpetBlack + entities: + - uid: 2804 + components: + - type: Transform + pos: -55.5,-22.5 + parent: 2 + - uid: 2805 + components: + - type: Transform + pos: -55.5,-21.5 + parent: 2 + - uid: 2806 + components: + - type: Transform + pos: -55.5,-20.5 + parent: 2 + - uid: 2807 + components: + - type: Transform + pos: -55.5,-19.5 + parent: 2 + - uid: 2808 + components: + - type: Transform + pos: -54.5,-22.5 + parent: 2 + - uid: 2809 + components: + - type: Transform + pos: -54.5,-21.5 + parent: 2 + - uid: 2810 + components: + - type: Transform + pos: -54.5,-20.5 + parent: 2 + - uid: 2811 + components: + - type: Transform + pos: -54.5,-19.5 + parent: 2 + - uid: 2812 + components: + - type: Transform + pos: -53.5,-22.5 + parent: 2 + - uid: 2813 + components: + - type: Transform + pos: -53.5,-21.5 + parent: 2 + - uid: 7867 + components: + - type: Transform + pos: 35.5,-10.5 + parent: 2 + - uid: 7868 + components: + - type: Transform + pos: 35.5,-11.5 + parent: 2 + - uid: 7869 + components: + - type: Transform + pos: 35.5,-12.5 + parent: 2 + - uid: 7870 + components: + - type: Transform + pos: 34.5,-10.5 + parent: 2 + - uid: 7871 + components: + - type: Transform + pos: 34.5,-11.5 + parent: 2 + - uid: 7872 + components: + - type: Transform + pos: 34.5,-12.5 + parent: 2 + - uid: 7873 + components: + - type: Transform + pos: 33.5,-10.5 + parent: 2 + - uid: 7874 + components: + - type: Transform + pos: 33.5,-11.5 + parent: 2 + - uid: 7876 + components: + - type: Transform + pos: 32.5,-11.5 + parent: 2 + - uid: 7877 + components: + - type: Transform + pos: 32.5,-10.5 + parent: 2 + - uid: 7878 + components: + - type: Transform + pos: 31.5,-11.5 + parent: 2 + - uid: 7879 + components: + - type: Transform + pos: 31.5,-10.5 + parent: 2 + - uid: 7925 + components: + - type: Transform + pos: 55.5,-9.5 + parent: 2 + - uid: 7926 + components: + - type: Transform + pos: 56.5,-9.5 + parent: 2 + - uid: 7927 + components: + - type: Transform + pos: 57.5,-9.5 + parent: 2 + - uid: 7928 + components: + - type: Transform + pos: 55.5,-10.5 + parent: 2 + - uid: 7929 + components: + - type: Transform + pos: 56.5,-10.5 + parent: 2 + - uid: 7958 + components: + - type: Transform + pos: -40.5,12.5 + parent: 2 + - uid: 8013 + components: + - type: Transform + pos: -42.5,12.5 + parent: 2 + - uid: 8015 + components: + - type: Transform + pos: -41.5,11.5 + parent: 2 + - uid: 8016 + components: + - type: Transform + pos: -42.5,11.5 + parent: 2 + - uid: 8017 + components: + - type: Transform + pos: -41.5,10.5 + parent: 2 + - uid: 8018 + components: + - type: Transform + pos: -42.5,10.5 + parent: 2 + - uid: 8024 + components: + - type: Transform + pos: -40.5,10.5 + parent: 2 + - uid: 8026 + components: + - type: Transform + pos: -41.5,12.5 + parent: 2 + - uid: 8028 + components: + - type: Transform + pos: -41.5,13.5 + parent: 2 + - uid: 8032 + components: + - type: Transform + pos: -40.5,13.5 + parent: 2 + - uid: 8033 + components: + - type: Transform + pos: -40.5,11.5 + parent: 2 + - uid: 8243 + components: + - type: Transform + pos: -7.5,-12.5 + parent: 2 + - uid: 8244 + components: + - type: Transform + pos: -7.5,-11.5 + parent: 2 + - uid: 8245 + components: + - type: Transform + pos: -6.5,-12.5 + parent: 2 + - uid: 8246 + components: + - type: Transform + pos: -6.5,-11.5 + parent: 2 + - uid: 8247 + components: + - type: Transform + pos: -8.5,-12.5 + parent: 2 +- proto: CarpetBlue + entities: + - uid: 2628 + components: + - type: Transform + pos: -48.5,4.5 + parent: 2 + - uid: 2629 + components: + - type: Transform + pos: -48.5,3.5 + parent: 2 + - uid: 2630 + components: + - type: Transform + pos: -48.5,2.5 + parent: 2 + - uid: 2631 + components: + - type: Transform + pos: -49.5,4.5 + parent: 2 + - uid: 2632 + components: + - type: Transform + pos: -49.5,3.5 + parent: 2 + - uid: 2633 + components: + - type: Transform + pos: -49.5,2.5 + parent: 2 + - uid: 2635 + components: + - type: Transform + pos: -50.5,2.5 + parent: 2 + - uid: 2637 + components: + - type: Transform + pos: -50.5,4.5 + parent: 2 + - uid: 2638 + components: + - type: Transform + pos: -50.5,3.5 + parent: 2 + - uid: 2766 + components: + - type: Transform + pos: -48.5,-25.5 + parent: 2 + - uid: 2767 + components: + - type: Transform + pos: -48.5,-26.5 + parent: 2 + - uid: 2768 + components: + - type: Transform + pos: -48.5,-27.5 + parent: 2 + - uid: 2769 + components: + - type: Transform + pos: -49.5,-25.5 + parent: 2 + - uid: 2770 + components: + - type: Transform + pos: -49.5,-26.5 + parent: 2 + - uid: 2771 + components: + - type: Transform + pos: -49.5,-27.5 + parent: 2 + - uid: 2772 + components: + - type: Transform + pos: -50.5,-27.5 + parent: 2 + - uid: 2773 + components: + - type: Transform + pos: -50.5,-26.5 + parent: 2 + - uid: 2774 + components: + - type: Transform + pos: -50.5,-25.5 + parent: 2 + - uid: 7993 + components: + - type: Transform + pos: -22.5,-18.5 + parent: 2 + - uid: 7994 + components: + - type: Transform + pos: -22.5,-17.5 + parent: 2 + - uid: 7995 + components: + - type: Transform + pos: -23.5,-18.5 + parent: 2 + - uid: 7996 + components: + - type: Transform + pos: -23.5,-17.5 + parent: 2 + - uid: 7997 + components: + - type: Transform + pos: -24.5,-18.5 + parent: 2 + - uid: 7998 + components: + - type: Transform + pos: -24.5,-17.5 + parent: 2 + - uid: 7999 + components: + - type: Transform + pos: -23.5,-19.5 + parent: 2 + - uid: 8000 + components: + - type: Transform + pos: -24.5,-19.5 + parent: 2 +- proto: CarpetGreen + entities: + - uid: 2789 + components: + - type: Transform + pos: -51.5,-18.5 + parent: 2 + - uid: 2790 + components: + - type: Transform + pos: -51.5,-19.5 + parent: 2 + - uid: 2791 + components: + - type: Transform + pos: -51.5,-20.5 + parent: 2 + - uid: 2792 + components: + - type: Transform + pos: -50.5,-18.5 + parent: 2 + - uid: 2793 + components: + - type: Transform + pos: -50.5,-19.5 + parent: 2 + - uid: 2794 + components: + - type: Transform + pos: -50.5,-20.5 + parent: 2 + - uid: 2795 + components: + - type: Transform + pos: -49.5,-18.5 + parent: 2 + - uid: 2796 + components: + - type: Transform + pos: -49.5,-19.5 + parent: 2 + - uid: 2797 + components: + - type: Transform + pos: -49.5,-20.5 + parent: 2 + - uid: 2798 + components: + - type: Transform + pos: -48.5,-18.5 + parent: 2 + - uid: 2799 + components: + - type: Transform + pos: -48.5,-19.5 + parent: 2 + - uid: 2800 + components: + - type: Transform + pos: -48.5,-20.5 + parent: 2 + - uid: 2801 + components: + - type: Transform + pos: -50.5,-21.5 + parent: 2 + - uid: 2802 + components: + - type: Transform + pos: -49.5,-21.5 + parent: 2 + - uid: 2803 + components: + - type: Transform + pos: -48.5,-21.5 + parent: 2 + - uid: 8235 + components: + - type: Transform + pos: -16.5,-15.5 + parent: 2 + - uid: 8236 + components: + - type: Transform + pos: -16.5,-16.5 + parent: 2 + - uid: 8237 + components: + - type: Transform + pos: -16.5,-17.5 + parent: 2 + - uid: 8238 + components: + - type: Transform + pos: -15.5,-15.5 + parent: 2 + - uid: 8239 + components: + - type: Transform + pos: -15.5,-16.5 + parent: 2 + - uid: 8240 + components: + - type: Transform + pos: -15.5,-17.5 + parent: 2 + - uid: 8241 + components: + - type: Transform + pos: -16.5,-18.5 + parent: 2 + - uid: 8242 + components: + - type: Transform + pos: -16.5,-14.5 + parent: 2 +- proto: CarpetOrange + entities: + - uid: 2662 + components: + - type: Transform + pos: -50.5,-4.5 + parent: 2 + - uid: 2663 + components: + - type: Transform + pos: -50.5,-3.5 + parent: 2 + - uid: 2664 + components: + - type: Transform + pos: -50.5,-2.5 + parent: 2 + - uid: 2665 + components: + - type: Transform + pos: -49.5,-4.5 + parent: 2 + - uid: 2666 + components: + - type: Transform + pos: -49.5,-3.5 + parent: 2 + - uid: 2667 + components: + - type: Transform + pos: -49.5,-2.5 + parent: 2 + - uid: 2668 + components: + - type: Transform + pos: -48.5,-4.5 + parent: 2 + - uid: 2669 + components: + - type: Transform + pos: -48.5,-3.5 + parent: 2 + - uid: 2670 + components: + - type: Transform + pos: -48.5,-2.5 + parent: 2 + - uid: 2671 + components: + - type: Transform + pos: -49.5,-1.5 + parent: 2 + - uid: 2672 + components: + - type: Transform + pos: -48.5,-1.5 + parent: 2 + - uid: 7887 + components: + - type: Transform + pos: 60.5,-17.5 + parent: 2 + - uid: 7888 + components: + - type: Transform + pos: 60.5,-16.5 + parent: 2 + - uid: 7889 + components: + - type: Transform + pos: 60.5,-15.5 + parent: 2 + - uid: 7890 + components: + - type: Transform + pos: 59.5,-17.5 + parent: 2 + - uid: 7891 + components: + - type: Transform + pos: 59.5,-16.5 + parent: 2 + - uid: 7892 + components: + - type: Transform + pos: 59.5,-15.5 + parent: 2 + - uid: 7893 + components: + - type: Transform + pos: 58.5,-16.5 + parent: 2 + - uid: 7894 + components: + - type: Transform + pos: 58.5,-17.5 + parent: 2 + - uid: 7895 + components: + - type: Transform + pos: 60.5,-14.5 + parent: 2 + - uid: 7896 + components: + - type: Transform + pos: 59.5,-14.5 + parent: 2 + - uid: 8221 + components: + - type: Transform + pos: -14.5,-10.5 + parent: 2 + - uid: 8222 + components: + - type: Transform + pos: -15.5,-10.5 + parent: 2 + - uid: 8223 + components: + - type: Transform + pos: -16.5,-10.5 + parent: 2 + - uid: 8224 + components: + - type: Transform + pos: -14.5,-11.5 + parent: 2 + - uid: 8225 + components: + - type: Transform + pos: -15.5,-11.5 + parent: 2 +- proto: CarpetPurple + entities: + - uid: 7566 + components: + - type: Transform + pos: -6.5,-18.5 + parent: 2 + - uid: 7859 + components: + - type: Transform + pos: 34.5,9.5 + parent: 2 + - uid: 7860 + components: + - type: Transform + pos: 34.5,8.5 + parent: 2 + - uid: 7861 + components: + - type: Transform + pos: 35.5,9.5 + parent: 2 + - uid: 7862 + components: + - type: Transform + pos: 35.5,8.5 + parent: 2 + - uid: 7863 + components: + - type: Transform + pos: 36.5,9.5 + parent: 2 + - uid: 7864 + components: + - type: Transform + pos: 36.5,8.5 + parent: 2 + - uid: 7865 + components: + - type: Transform + pos: 35.5,7.5 + parent: 2 + - uid: 7866 + components: + - type: Transform + pos: 36.5,7.5 + parent: 2 + - uid: 8228 + components: + - type: Transform + pos: -7.5,-18.5 + parent: 2 + - uid: 8230 + components: + - type: Transform + pos: -8.5,-18.5 + parent: 2 + - uid: 8233 + components: + - type: Transform + pos: -7.5,-17.5 + parent: 2 + - uid: 8234 + components: + - type: Transform + pos: -6.5,-17.5 + parent: 2 +- proto: CarpetSBlue + entities: + - uid: 2618 + components: + - type: Transform + pos: -54.5,2.5 + parent: 2 + - uid: 2619 + components: + - type: Transform + pos: -54.5,3.5 + parent: 2 + - uid: 2636 + components: + - type: Transform + pos: -55.5,4.5 + parent: 2 + - uid: 2639 + components: + - type: Transform + pos: -53.5,1.5 + parent: 2 + - uid: 2640 + components: + - type: Transform + pos: -54.5,1.5 + parent: 2 + - uid: 2642 + components: + - type: Transform + pos: -55.5,3.5 + parent: 2 + - uid: 2643 + components: + - type: Transform + pos: -53.5,2.5 + parent: 2 + - uid: 2644 + components: + - type: Transform + pos: -54.5,4.5 + parent: 2 + - uid: 2645 + components: + - type: Transform + pos: -55.5,1.5 + parent: 2 + - uid: 2646 + components: + - type: Transform + pos: -55.5,2.5 + parent: 2 + - uid: 2775 + components: + - type: Transform + pos: -55.5,-24.5 + parent: 2 + - uid: 2776 + components: + - type: Transform + pos: -55.5,-25.5 + parent: 2 + - uid: 2777 + components: + - type: Transform + pos: -55.5,-26.5 + parent: 2 + - uid: 2778 + components: + - type: Transform + pos: -55.5,-27.5 + parent: 2 + - uid: 2779 + components: + - type: Transform + pos: -54.5,-24.5 + parent: 2 + - uid: 2780 + components: + - type: Transform + pos: -54.5,-25.5 + parent: 2 + - uid: 2781 + components: + - type: Transform + pos: -54.5,-26.5 + parent: 2 + - uid: 2782 + components: + - type: Transform + pos: -54.5,-27.5 + parent: 2 + - uid: 2783 + components: + - type: Transform + pos: -54.5,-28.5 + parent: 2 + - uid: 2784 + components: + - type: Transform + pos: -53.5,-28.5 + parent: 2 + - uid: 2786 + components: + - type: Transform + pos: -53.5,-27.5 + parent: 2 + - uid: 2787 + components: + - type: Transform + pos: -53.5,-26.5 + parent: 2 + - uid: 8226 + components: + - type: Transform + pos: -7.5,-21.5 + parent: 2 + - uid: 8227 + components: + - type: Transform + pos: -6.5,-21.5 + parent: 2 + - uid: 8231 + components: + - type: Transform + pos: -7.5,-20.5 + parent: 2 + - uid: 8232 + components: + - type: Transform + pos: -6.5,-20.5 + parent: 2 +- proto: Catwalk + entities: + - uid: 22 + components: + - type: Transform + pos: 10.5,-19.5 + parent: 2 + - uid: 30 + components: + - type: Transform + pos: 10.5,-18.5 + parent: 2 + - uid: 33 + components: + - type: Transform + pos: 10.5,-20.5 + parent: 2 + - uid: 36 + components: + - type: Transform + pos: 14.5,-10.5 + parent: 2 + - uid: 101 + components: + - type: Transform + pos: 10.5,-21.5 + parent: 2 + - uid: 103 + components: + - type: Transform + pos: 14.5,-20.5 + parent: 2 + - uid: 106 + components: + - type: Transform + pos: 10.5,-14.5 + parent: 2 + - uid: 143 + components: + - type: Transform + pos: 6.5,-18.5 + parent: 2 + - uid: 144 + components: + - type: Transform + pos: 6.5,-19.5 + parent: 2 + - uid: 145 + components: + - type: Transform + pos: 6.5,-20.5 + parent: 2 + - uid: 146 + components: + - type: Transform + pos: 6.5,-21.5 + parent: 2 + - uid: 147 + components: + - type: Transform + pos: 6.5,-13.5 + parent: 2 + - uid: 148 + components: + - type: Transform + pos: 6.5,-12.5 + parent: 2 + - uid: 149 + components: + - type: Transform + pos: 10.5,-11.5 + parent: 2 + - uid: 150 + components: + - type: Transform + pos: 10.5,-12.5 + parent: 2 + - uid: 151 + components: + - type: Transform + pos: 6.5,-10.5 + parent: 2 + - uid: 152 + components: + - type: Transform + pos: 6.5,-11.5 + parent: 2 + - uid: 153 + components: + - type: Transform + pos: 6.5,-14.5 + parent: 2 + - uid: 154 + components: + - type: Transform + pos: 10.5,-10.5 + parent: 2 + - uid: 156 + components: + - type: Transform + pos: 6.5,-22.5 + parent: 2 + - uid: 163 + components: + - type: Transform + pos: 14.5,-22.5 + parent: 2 + - uid: 164 + components: + - type: Transform + pos: 14.5,-14.5 + parent: 2 + - uid: 165 + components: + - type: Transform + pos: 14.5,-13.5 + parent: 2 + - uid: 166 + components: + - type: Transform + pos: 14.5,-12.5 + parent: 2 + - uid: 167 + components: + - type: Transform + pos: 14.5,-19.5 + parent: 2 + - uid: 168 + components: + - type: Transform + pos: 14.5,-18.5 + parent: 2 + - uid: 171 + components: + - type: Transform + pos: 10.5,-22.5 + parent: 2 + - uid: 172 + components: + - type: Transform + pos: 14.5,-21.5 + parent: 2 + - uid: 173 + components: + - type: Transform + pos: 14.5,-11.5 + parent: 2 + - uid: 181 + components: + - type: Transform + pos: 10.5,-13.5 + parent: 2 + - uid: 1279 + components: + - type: Transform + pos: 29.5,3.5 + parent: 2 + - uid: 1280 + components: + - type: Transform + pos: 30.5,3.5 + parent: 2 + - uid: 1281 + components: + - type: Transform + pos: 31.5,3.5 + parent: 2 + - uid: 1282 + components: + - type: Transform + pos: 32.5,3.5 + parent: 2 + - uid: 1283 + components: + - type: Transform + pos: 33.5,3.5 + parent: 2 + - uid: 1284 + components: + - type: Transform + pos: 36.5,3.5 + parent: 2 + - uid: 1285 + components: + - type: Transform + pos: 37.5,3.5 + parent: 2 + - uid: 1286 + components: + - type: Transform + pos: 38.5,3.5 + parent: 2 + - uid: 3070 + components: + - type: Transform + pos: -3.5,29.5 + parent: 2 + - uid: 3071 + components: + - type: Transform + pos: -2.5,29.5 + parent: 2 + - uid: 3072 + components: + - type: Transform + pos: -1.5,29.5 + parent: 2 + - uid: 3073 + components: + - type: Transform + pos: 2.5,28.5 + parent: 2 + - uid: 3074 + components: + - type: Transform + pos: 2.5,29.5 + parent: 2 + - uid: 3075 + components: + - type: Transform + pos: -4.5,26.5 + parent: 2 + - uid: 3076 + components: + - type: Transform + pos: -4.5,27.5 + parent: 2 + - uid: 3077 + components: + - type: Transform + pos: -4.5,28.5 + parent: 2 + - uid: 3078 + components: + - type: Transform + pos: -5.5,26.5 + parent: 2 + - uid: 3169 + components: + - type: Transform + pos: -8.5,22.5 + parent: 2 + - uid: 3170 + components: + - type: Transform + pos: -8.5,23.5 + parent: 2 + - uid: 3171 + components: + - type: Transform + pos: -8.5,24.5 + parent: 2 + - uid: 3172 + components: + - type: Transform + pos: -8.5,25.5 + parent: 2 + - uid: 3173 + components: + - type: Transform + pos: -7.5,24.5 + parent: 2 + - uid: 3174 + components: + - type: Transform + pos: -4.5,30.5 + parent: 2 + - uid: 3175 + components: + - type: Transform + pos: -4.5,31.5 + parent: 2 + - uid: 3176 + components: + - type: Transform + pos: 3.5,29.5 + parent: 2 + - uid: 3177 + components: + - type: Transform + pos: -8.5,30.5 + parent: 2 + - uid: 3178 + components: + - type: Transform + pos: -8.5,31.5 + parent: 2 + - uid: 3179 + components: + - type: Transform + pos: -7.5,31.5 + parent: 2 + - uid: 3195 + components: + - type: Transform + pos: -44.5,5.5 + parent: 2 + - uid: 3196 + components: + - type: Transform + pos: -44.5,6.5 + parent: 2 + - uid: 3197 + components: + - type: Transform + pos: -44.5,3.5 + parent: 2 + - uid: 3198 + components: + - type: Transform + pos: -44.5,2.5 + parent: 2 + - uid: 3207 + components: + - type: Transform + pos: -40.5,-8.5 + parent: 2 + - uid: 3208 + components: + - type: Transform + pos: -40.5,-7.5 + parent: 2 + - uid: 3209 + components: + - type: Transform + pos: -40.5,-4.5 + parent: 2 + - uid: 3210 + components: + - type: Transform + pos: -40.5,-5.5 + parent: 2 + - uid: 3211 + components: + - type: Transform + pos: -38.5,-8.5 + parent: 2 + - uid: 3212 + components: + - type: Transform + pos: -38.5,-9.5 + parent: 2 + - uid: 3213 + components: + - type: Transform + pos: -38.5,-10.5 + parent: 2 + - uid: 3214 + components: + - type: Transform + pos: -37.5,-11.5 + parent: 2 + - uid: 3215 + components: + - type: Transform + pos: -36.5,-11.5 + parent: 2 + - uid: 3216 + components: + - type: Transform + pos: -35.5,-11.5 + parent: 2 + - uid: 3217 + components: + - type: Transform + pos: -34.5,-11.5 + parent: 2 + - uid: 3225 + components: + - type: Transform + pos: -34.5,-12.5 + parent: 2 + - uid: 3229 + components: + - type: Transform + pos: -32.5,-14.5 + parent: 2 + - uid: 3230 + components: + - type: Transform + pos: -33.5,-14.5 + parent: 2 + - uid: 3251 + components: + - type: Transform + pos: -38.5,2.5 + parent: 2 + - uid: 3263 + components: + - type: Transform + pos: 8.5,-29.5 + parent: 2 + - uid: 3264 + components: + - type: Transform + pos: 9.5,-28.5 + parent: 2 + - uid: 3265 + components: + - type: Transform + pos: 9.5,-27.5 + parent: 2 + - uid: 3266 + components: + - type: Transform + pos: 7.5,-27.5 + parent: 2 + - uid: 3267 + components: + - type: Transform + pos: 6.5,-27.5 + parent: 2 + - uid: 3268 + components: + - type: Transform + pos: 5.5,-27.5 + parent: 2 + - uid: 3269 + components: + - type: Transform + pos: 3.5,-27.5 + parent: 2 + - uid: 3270 + components: + - type: Transform + pos: 3.5,-26.5 + parent: 2 + - uid: 3271 + components: + - type: Transform + pos: 2.5,-26.5 + parent: 2 + - uid: 3301 + components: + - type: Transform + pos: 40.5,-12.5 + parent: 2 + - uid: 3302 + components: + - type: Transform + pos: 39.5,-12.5 + parent: 2 + - uid: 3303 + components: + - type: Transform + pos: 38.5,-12.5 + parent: 2 + - uid: 3304 + components: + - type: Transform + pos: 37.5,-10.5 + parent: 2 + - uid: 3305 + components: + - type: Transform + pos: 37.5,-9.5 + parent: 2 + - uid: 3306 + components: + - type: Transform + pos: 37.5,-8.5 + parent: 2 + - uid: 3307 + components: + - type: Transform + pos: 37.5,-6.5 + parent: 2 + - uid: 3308 + components: + - type: Transform + pos: 37.5,-5.5 + parent: 2 + - uid: 3309 + components: + - type: Transform + pos: 36.5,-5.5 + parent: 2 + - uid: 3310 + components: + - type: Transform + pos: 35.5,-4.5 + parent: 2 + - uid: 3311 + components: + - type: Transform + pos: 35.5,-3.5 + parent: 2 + - uid: 3356 + components: + - type: Transform + pos: 42.5,3.5 + parent: 2 + - uid: 3357 + components: + - type: Transform + pos: 43.5,3.5 + parent: 2 + - uid: 3358 + components: + - type: Transform + pos: 44.5,3.5 + parent: 2 + - uid: 3359 + components: + - type: Transform + pos: 45.5,3.5 + parent: 2 + - uid: 3360 + components: + - type: Transform + pos: 46.5,3.5 + parent: 2 + - uid: 3361 + components: + - type: Transform + pos: 46.5,1.5 + parent: 2 + - uid: 3362 + components: + - type: Transform + pos: 46.5,0.5 + parent: 2 + - uid: 3363 + components: + - type: Transform + pos: 46.5,-0.5 + parent: 2 + - uid: 3364 + components: + - type: Transform + pos: 48.5,1.5 + parent: 2 + - uid: 3365 + components: + - type: Transform + pos: 43.5,4.5 + parent: 2 + - uid: 3372 + components: + - type: Transform + pos: 13.5,-3.5 + parent: 2 + - uid: 3373 + components: + - type: Transform + pos: 13.5,-4.5 + parent: 2 + - uid: 3374 + components: + - type: Transform + pos: 12.5,-5.5 + parent: 2 + - uid: 8552 + components: + - type: Transform + pos: 35.5,-7.5 + parent: 2 + - uid: 8553 + components: + - type: Transform + pos: 34.5,-7.5 + parent: 2 + - uid: 8554 + components: + - type: Transform + pos: 33.5,-7.5 + parent: 2 + - uid: 8582 + components: + - type: Transform + pos: 9.5,-24.5 + parent: 2 + - uid: 8583 + components: + - type: Transform + pos: 9.5,-25.5 + parent: 2 + - uid: 8598 + components: + - type: Transform + pos: -45.5,2.5 + parent: 2 + - uid: 8630 + components: + - type: Transform + pos: -38.5,-4.5 + parent: 2 + - uid: 8631 + components: + - type: Transform + pos: -37.5,-4.5 + parent: 2 +- proto: Chair + entities: + - uid: 1075 + components: + - type: Transform + pos: 18.5,-3.5 + parent: 2 + - uid: 1089 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-5.5 + parent: 2 + - uid: 1170 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,2.5 + parent: 2 + - uid: 1432 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 51.5,-16.5 + parent: 2 + - uid: 1453 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,-8.5 + parent: 2 + - uid: 1460 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,-9.5 + parent: 2 + - uid: 1461 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,-8.5 + parent: 2 + - uid: 1802 + components: + - type: Transform + pos: 22.5,2.5 + parent: 2 + - uid: 1803 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,21.5 + parent: 2 + - uid: 1815 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,21.5 + parent: 2 + - uid: 1817 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-6.5 + parent: 2 + - uid: 1818 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-6.5 + parent: 2 + - uid: 1819 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-6.5 + parent: 2 + - uid: 1962 + components: + - type: Transform + pos: -31.5,-3.5 + parent: 2 + - uid: 2255 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,12.5 + parent: 2 + - uid: 2344 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,4.5 + parent: 2 + - uid: 7564 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-60.5 + parent: 2 + - uid: 7565 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-59.5 + parent: 2 + - uid: 7567 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-61.5 + parent: 2 + - uid: 7568 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-62.5 + parent: 2 + - uid: 7569 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-62.5 + parent: 2 + - uid: 7570 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-61.5 + parent: 2 + - uid: 7571 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-60.5 + parent: 2 + - uid: 7572 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-59.5 + parent: 2 + - uid: 7573 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-52.5 + parent: 2 + - uid: 7577 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-53.5 + parent: 2 + - uid: 7578 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-54.5 + parent: 2 + - uid: 7579 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-55.5 + parent: 2 + - uid: 7580 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-52.5 + parent: 2 + - uid: 7581 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-53.5 + parent: 2 + - uid: 7582 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-54.5 + parent: 2 + - uid: 7583 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-55.5 + parent: 2 + - uid: 7586 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-62.5 + parent: 2 + - uid: 7588 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-61.5 + parent: 2 + - uid: 7589 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-60.5 + parent: 2 + - uid: 7590 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-59.5 + parent: 2 + - uid: 7592 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-62.5 + parent: 2 + - uid: 7593 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-61.5 + parent: 2 + - uid: 7594 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-60.5 + parent: 2 + - uid: 7595 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-59.5 + parent: 2 + - uid: 7597 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-52.5 + parent: 2 + - uid: 7598 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-53.5 + parent: 2 + - uid: 7599 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-54.5 + parent: 2 + - uid: 7600 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-55.5 + parent: 2 + - uid: 7601 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-52.5 + parent: 2 + - uid: 7602 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-53.5 + parent: 2 + - uid: 7603 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-54.5 + parent: 2 + - uid: 7604 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-55.5 + parent: 2 + - uid: 7609 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-49.5 + parent: 2 + - uid: 7610 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-47.5 + parent: 2 + - uid: 7611 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-46.5 + parent: 2 + - uid: 7612 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-50.5 + parent: 2 + - uid: 7613 + components: + - type: Transform + pos: -4.5,-45.5 + parent: 2 + - uid: 7614 + components: + - type: Transform + pos: 3.5,-45.5 + parent: 2 + - uid: 7615 + components: + - type: Transform + pos: 4.5,-45.5 + parent: 2 + - uid: 7625 + components: + - type: Transform + pos: -5.5,-45.5 + parent: 2 + - uid: 7626 + components: + - type: Transform + pos: -6.5,-45.5 + parent: 2 + - uid: 7628 + components: + - type: Transform + pos: 5.5,-45.5 + parent: 2 + - uid: 7630 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-50.5 + parent: 2 + - uid: 7631 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-49.5 + parent: 2 + - uid: 7632 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-46.5 + parent: 2 + - uid: 7633 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-47.5 + parent: 2 + - uid: 7740 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,4.5 + parent: 2 + - uid: 7741 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,2.5 + parent: 2 + - uid: 7743 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-6.5 + parent: 2 + - uid: 7744 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-6.5 + parent: 2 + - uid: 7905 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-10.5 + parent: 2 + - uid: 7956 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,-2.5 + parent: 2 + - uid: 7959 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,-3.5 + parent: 2 + - uid: 8115 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -46.5,-13.5 + parent: 2 + - uid: 8268 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-38.5 + parent: 2 + - uid: 8269 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-40.5 + parent: 2 + - uid: 8270 + components: + - type: Transform + pos: 6.5,-38.5 + parent: 2 + - uid: 8272 + components: + - type: Transform + pos: 7.5,-31.5 + parent: 2 + - uid: 8285 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-62.5 + parent: 2 + - uid: 8286 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-61.5 + parent: 2 + - uid: 8287 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-60.5 + parent: 2 + - uid: 8288 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-59.5 + parent: 2 + - uid: 8289 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-59.5 + parent: 2 + - uid: 8290 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-60.5 + parent: 2 + - uid: 8291 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-61.5 + parent: 2 + - uid: 8292 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-62.5 + parent: 2 +- proto: ChairFolding + entities: + - uid: 412 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-24.5 + parent: 2 + - uid: 413 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-24.5 + parent: 2 + - uid: 1454 + components: + - type: Transform + pos: 49.5,-13.5 + parent: 2 + - uid: 1456 + components: + - type: Transform + pos: 48.5,-13.5 + parent: 2 + - uid: 1891 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-4.5 + parent: 2 + - uid: 2075 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,6.5 + parent: 2 + - uid: 2076 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,7.5 + parent: 2 + - uid: 2077 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,7.5 + parent: 2 + - uid: 2078 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,6.5 + parent: 2 + - uid: 2079 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,7.5 + parent: 2 + - uid: 2080 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,6.5 + parent: 2 + - uid: 2081 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,7.5 + parent: 2 + - uid: 2082 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,6.5 + parent: 2 + - uid: 3106 + components: + - type: Transform + pos: -2.5,23.5 + parent: 2 + - uid: 7605 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-58.5 + parent: 2 + - uid: 7606 + components: + - type: Transform + pos: -10.5,-63.5 + parent: 2 + - uid: 7607 + components: + - type: Transform + pos: 9.5,-63.5 + parent: 2 + - uid: 7608 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-58.5 + parent: 2 + - uid: 7742 + components: + - type: Transform + pos: -5.5,5.5 + parent: 2 + - uid: 7773 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,4.5 + parent: 2 + - uid: 7803 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,-3.5 + parent: 2 + - uid: 7947 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,-31.5 + parent: 2 + - uid: 7948 + components: + - type: Transform + pos: 31.5,-29.5 + parent: 2 + - uid: 7960 + components: + - type: Transform + pos: -36.5,0.5 + parent: 2 + - uid: 7961 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,0.5 + parent: 2 + - uid: 8175 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,-30.5 + parent: 2 + - uid: 8265 + components: + - type: Transform + pos: -10.5,-31.5 + parent: 2 + - uid: 8266 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-33.5 + parent: 2 + - uid: 8577 + components: + - type: Transform + pos: 5.5,-28.5 + parent: 2 +- proto: ChairOfficeDark + entities: + - uid: 1061 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-12.5 + parent: 2 + - uid: 1083 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,-6.5 + parent: 2 + - uid: 1184 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,8.5 + parent: 2 + - uid: 1472 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 56.5,-12.5 + parent: 2 + - uid: 1812 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,0.5 + parent: 2 + - uid: 1813 + components: + - type: Transform + pos: -1.5,-1.5 + parent: 2 + - uid: 2276 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,11.5 + parent: 2 + - uid: 2277 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,11.5 + parent: 2 + - uid: 2320 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,14.5 + parent: 2 + - uid: 2540 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -49.5,-3.5 + parent: 2 + - uid: 2691 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -49.5,-19.5 + parent: 2 + - uid: 2700 + components: + - type: Transform + pos: -54.5,-21.5 + parent: 2 + - uid: 2765 + components: + - type: Transform + pos: -50.5,-27.5 + parent: 2 +- proto: ChairOfficeLight + entities: + - uid: 938 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,-12.5 + parent: 2 + - uid: 1262 + components: + - type: Transform + pos: 25.5,5.5 + parent: 2 + - uid: 1982 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-7.5 + parent: 2 +- proto: ChairWood + entities: + - uid: 376 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-16.5 + parent: 2 + - uid: 377 + components: + - type: Transform + pos: -16.5,-14.5 + parent: 2 + - uid: 1071 + components: + - type: Transform + pos: 21.5,-13.5 + parent: 2 + - uid: 1072 + components: + - type: Transform + pos: 22.5,-13.5 + parent: 2 +- proto: CheapLighter + entities: + - uid: 7776 + components: + - type: Transform + pos: -6.25189,5.4356194 + parent: 2 +- proto: CheckerBoard + entities: + - uid: 7837 + components: + - type: Transform + pos: 19.428404,-12.426074 + parent: 2 +- proto: ChemBag + entities: + - uid: 1957 + components: + - type: Transform + pos: -31.713497,-8.378671 + parent: 2 +- proto: ChemistryEmptyBottle02 + entities: + - uid: 1354 + components: + - type: Transform + pos: -34.271645,-8.419703 + parent: 2 +- proto: ChessBoard + entities: + - uid: 8103 + components: + - type: Transform + pos: -52.332314,-12.431362 + parent: 2 +- proto: Cigar + entities: + - uid: 7777 + components: + - type: Transform + pos: -6.591313,5.6126103 + parent: 2 + - uid: 8302 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.542163,-36.44932 + parent: 2 +- proto: CigarCase + entities: + - uid: 8038 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.500223,6.583769 + parent: 2 +- proto: CigarGold + entities: + - uid: 1541 + components: + - type: Transform + pos: 60.37952,-14.306984 + parent: 2 + - uid: 7875 + components: + - type: Transform + pos: 26.439526,-11.369116 + parent: 2 + - uid: 8061 + components: + - type: Transform + pos: -16.279839,10.521913 + parent: 2 +- proto: CigarGoldCase + entities: + - uid: 8118 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -51.555573,-10.756532 + parent: 2 +- proto: CigPackBlack + entities: + - uid: 8249 + components: + - type: Transform + pos: -7.30211,-10.31647 + parent: 2 +- proto: CigPackRed + entities: + - uid: 7822 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.598198,4.543154 + parent: 2 +- proto: ClosetEmergencyFilledRandom + entities: + - uid: 222 + components: + - type: Transform + pos: 15.5,-14.5 + parent: 2 + - uid: 7634 + components: + - type: Transform + pos: 11.5,-66.5 + parent: 2 + - uid: 7636 + components: + - type: Transform + pos: -12.5,-66.5 + parent: 2 + - uid: 7638 + components: + - type: Transform + pos: -7.5,-45.5 + parent: 2 + - uid: 7644 + components: + - type: Transform + pos: 9.5,-31.5 + parent: 2 + - uid: 7753 + components: + - type: Transform + pos: 3.5,2.5 + parent: 2 + - uid: 8177 + components: + - type: Transform + pos: -29.5,-38.5 + parent: 2 + - uid: 8179 + components: + - type: Transform + pos: 28.5,-38.5 + parent: 2 + - uid: 8534 + components: + - type: Transform + pos: -8.5,21.5 + parent: 2 +- proto: ClosetFireFilled + entities: + - uid: 223 + components: + - type: Transform + pos: 15.5,-18.5 + parent: 2 + - uid: 7635 + components: + - type: Transform + pos: 7.5,-66.5 + parent: 2 + - uid: 7637 + components: + - type: Transform + pos: -8.5,-66.5 + parent: 2 + - uid: 7639 + components: + - type: Transform + pos: 6.5,-45.5 + parent: 2 + - uid: 7756 + components: + - type: Transform + pos: -4.5,-3.5 + parent: 2 + - uid: 8178 + components: + - type: Transform + pos: -28.5,-38.5 + parent: 2 + - uid: 8180 + components: + - type: Transform + pos: 26.5,-38.5 + parent: 2 + - uid: 8535 + components: + - type: Transform + pos: -0.5,31.5 + parent: 2 + - uid: 8560 + components: + - type: Transform + pos: 33.5,-4.5 + parent: 2 +- proto: ClosetMaintenanceFilledRandom + entities: + - uid: 8526 + components: + - type: Transform + pos: -42.5,4.5 + parent: 2 + - uid: 8527 + components: + - type: Transform + pos: -5.5,25.5 + parent: 2 + - uid: 8528 + components: + - type: Transform + pos: 3.5,31.5 + parent: 2 + - uid: 8539 + components: + - type: Transform + pos: 28.5,4.5 + parent: 2 + - uid: 8540 + components: + - type: Transform + pos: 47.5,-1.5 + parent: 2 + - uid: 8559 + components: + - type: Transform + pos: 38.5,-7.5 + parent: 2 + - uid: 8573 + components: + - type: Transform + pos: 3.5,-29.5 + parent: 2 + - uid: 8628 + components: + - type: Transform + pos: -37.5,-7.5 + parent: 2 +- proto: ClosetToolFilled + entities: + - uid: 8536 + components: + - type: Transform + pos: -7.5,29.5 + parent: 2 +- proto: ClothingBackpackDuffelEngineering + entities: + - uid: 7911 + components: + - type: Transform + pos: 51.568115,-2.7373834 + parent: 2 +- proto: ClothingBackpackDuffelSalvage + entities: + - uid: 1008 + components: + - type: Transform + pos: 30.496008,-3.20936 + parent: 2 +- proto: ClothingBackpackDuffelSurgeryFilled + entities: + - uid: 7965 + components: + - type: Transform + pos: -13.842619,-5.4390097 + parent: 2 +- proto: ClothingBackpackHolding + entities: + - uid: 7733 + components: + - type: Transform + pos: 4.5232472,13.728849 + parent: 2 +- proto: ClothingBackpackSatchelBrigmedic + entities: + - uid: 1908 + components: + - type: Transform + pos: -23.38142,-19.443447 + parent: 2 +- proto: ClothingBeltAssault + entities: + - uid: 8075 + components: + - type: Transform + pos: -38.016167,10.712485 + parent: 2 +- proto: ClothingBeltHolster + entities: + - uid: 2297 + components: + - type: Transform + pos: -39.582104,8.79618 + parent: 2 +- proto: ClothingBeltMedical + entities: + - uid: 1961 + components: + - type: Transform + pos: -35.532024,-8.496665 + parent: 2 +- proto: ClothingBeltSecurity + entities: + - uid: 2109 + components: + - type: Transform + pos: -32.470276,8.471779 + parent: 2 +- proto: ClothingBeltSecurityWebbing + entities: + - uid: 2112 + components: + - type: Transform + pos: -38.609417,8.589773 + parent: 2 + - uid: 2296 + components: + - type: Transform + pos: -17.527233,14.6028595 + parent: 2 +- proto: ClothingBeltUtilityEngineering + entities: + - uid: 1415 + components: + - type: Transform + pos: 53.491665,-5.5318255 + parent: 2 +- proto: ClothingEyesGlasses + entities: + - uid: 1964 + components: + - type: Transform + pos: -35.064476,-3.4676437 + parent: 2 + - uid: 2146 + components: + - type: Transform + pos: -13.793735,8.394621 + parent: 2 + - uid: 2971 + components: + - type: Transform + pos: 17.610846,8.451709 + parent: 2 + - uid: 7835 + components: + - type: Transform + pos: 30.53237,9.0132265 + parent: 2 + - uid: 8001 + components: + - type: Transform + pos: -25.552124,-12.002445 + parent: 2 + - uid: 8204 + components: + - type: Transform + pos: 2.3393357,-21.26714 + parent: 2 +- proto: ClothingEyesGlassesMeson + entities: + - uid: 1416 + components: + - type: Transform + pos: 51.42561,-2.4049816 + parent: 2 +- proto: ClothingEyesGlassesSecurity + entities: + - uid: 8054 + components: + - type: Transform + pos: -41.6171,7.5162125 + parent: 2 +- proto: ClothingEyesGlassesSunglasses + entities: + - uid: 8042 + components: + - type: Transform + pos: -33.849556,8.516174 + parent: 2 +- proto: ClothingEyesGlassesThermal + entities: + - uid: 1435 + components: + - type: Transform + pos: 51.48622,-20.265348 + parent: 2 +- proto: ClothingEyesHudMedical + entities: + - uid: 7963 + components: + - type: Transform + pos: -18.470263,-7.315727 + parent: 2 +- proto: ClothingEyesHudSecurity + entities: + - uid: 2105 + components: + - type: Transform + pos: -34.47901,7.5464554 + parent: 2 + - uid: 2106 + components: + - type: Transform + pos: -34.597073,7.723447 + parent: 2 + - uid: 2298 + components: + - type: Transform + pos: -16.945015,14.441783 + parent: 2 + - uid: 3018 + components: + - type: Transform + pos: -0.43264732,-2.2551992 + parent: 2 +- proto: ClothingHandsGlovesColorBlack + entities: + - uid: 8619 + components: + - type: Transform + pos: -30.59833,-10.415756 + parent: 2 +- proto: ClothingHandsGlovesColorGray + entities: + - uid: 8571 + components: + - type: MetaData + desc: Dusty, old, grey gloves that do not keep you from frying. Seem fit for a king. + - type: Transform + pos: 5.515466,-24.536884 + parent: 2 +- proto: ClothingHandsGlovesFingerless + entities: + - uid: 1173 + components: + - type: Transform + pos: 15.463922,2.450069 + parent: 2 + - uid: 7846 + components: + - type: Transform + pos: 16.05782,-6.386447 + parent: 2 + - uid: 7920 + components: + - type: Transform + pos: 51.781662,-20.592072 + parent: 2 + - uid: 8058 + components: + - type: Transform + pos: -14.384037,8.402596 + parent: 2 + - uid: 8074 + components: + - type: Transform + pos: -38.016167,10.4175005 + parent: 2 + - uid: 8538 + components: + - type: Transform + pos: 4.508488,25.556108 + parent: 2 +- proto: ClothingHandsGlovesLeather + entities: + - uid: 8595 + components: + - type: Transform + pos: 11.536786,-8.393434 + parent: 2 +- proto: ClothingHandsGlovesNitrile + entities: + - uid: 1918 + components: + - type: Transform + pos: -32.522633,-8.372165 + parent: 2 +- proto: ClothingHeadHatBeretBrigmedic + entities: + - uid: 1911 + components: + - type: Transform + pos: -17.441849,-3.3936794 + parent: 2 +- proto: ClothingHeadHatBeretEngineering + entities: + - uid: 1417 + components: + - type: Transform + pos: 52.222515,-6.180793 + parent: 2 +- proto: ClothingHeadHatBeretRND + entities: + - uid: 1176 + components: + - type: Transform + pos: 16.231407,8.434973 + parent: 2 +- proto: ClothingHeadHatBeretSecurity + entities: + - uid: 2108 + components: + - type: Transform + pos: -39.760506,8.412782 + parent: 2 +- proto: ClothingHeadHatCargosoftFlipped + entities: + - uid: 1177 + components: + - type: Transform + pos: 16.78188,-6.620102 + parent: 2 +- proto: ClothingHeadHatCorpsoft + entities: + - uid: 7797 + components: + - type: Transform + pos: -2.2628217,0.411291 + parent: 2 + - uid: 8043 + components: + - type: Transform + pos: -33.123417,8.634169 + parent: 2 +- proto: ClothingHeadHatHardhatOrange + entities: + - uid: 7921 + components: + - type: Transform + pos: 46.5198,-4.862994 + parent: 2 +- proto: ClothingHeadHatParamedicsoftFlipped + entities: + - uid: 1915 + components: + - type: Transform + pos: -17.253208,-8.633782 + parent: 2 +- proto: ClothingHeadHatPirateTricord + entities: + - uid: 8601 + components: + - type: Transform + pos: -40.737198,-13.177081 + parent: 2 +- proto: ClothingHeadHatSurgcapBlue + entities: + - uid: 7966 + components: + - type: Transform + pos: -18.706383,-7.787704 + parent: 2 +- proto: ClothingHeadHatWelding + entities: + - uid: 7821 + components: + - type: Transform + pos: 14.556032,4.7496443 + parent: 2 + - uid: 7844 + components: + - type: Transform + pos: 28.660498,-3.2544818 + parent: 2 +- proto: ClothingHeadHatWeldingMaskPainted + entities: + - uid: 8548 + components: + - type: Transform + pos: 39.36562,5.6580253 + parent: 2 +- proto: ClothingHeadHatYellowsoft + entities: + - uid: 7914 + components: + - type: Transform + pos: 51.20626,-3.4693265 + parent: 2 +- proto: ClothingHeadHelmetERTLeader + entities: + - uid: 3049 + components: + - type: Transform + pos: 4.4697094,15.602008 + parent: 2 +- proto: ClothingHeadsetMining + entities: + - uid: 1076 + components: + - type: Transform + pos: 31.38288,-5.550561 + parent: 2 +- proto: ClothingHeadsetSecurity + entities: + - uid: 2113 + components: + - type: Transform + pos: -41.619957,6.5838733 + parent: 2 +- proto: ClothingMaskBreathMedical + entities: + - uid: 1913 + components: + - type: Transform + pos: -13.593334,-8.397794 + parent: 2 + - uid: 7977 + components: + - type: Transform + pos: -35.654778,-3.4676437 + parent: 2 +- proto: ClothingMaskBreathMedicalSecurity + entities: + - uid: 6234 + components: + - type: Transform + pos: -23.912691,-19.561441 + parent: 2 +- proto: ClothingMaskGas + entities: + - uid: 7975 + components: + - type: Transform + pos: 16.137882,2.5230176 + parent: 2 + - uid: 8611 + components: + - type: Transform + pos: -34.482536,-10.406689 + parent: 2 +- proto: ClothingMaskGasAtmos + entities: + - uid: 1436 + components: + - type: Transform + pos: 50.335133,-20.41284 + parent: 2 +- proto: ClothingMaskGasCentcom + entities: + - uid: 772 + components: + - type: Transform + pos: -5.5118904,15.498761 + parent: 2 +- proto: ClothingMaskGasExplorer + entities: + - uid: 8612 + components: + - type: Transform + pos: -31.601843,-10.474753 + parent: 2 +- proto: ClothingMaskGasSecurity + entities: + - uid: 2185 + components: + - type: Transform + pos: -39.5528,4.4668555 + parent: 2 +- proto: ClothingMaskNeckGaiter + entities: + - uid: 8035 + components: + - type: Transform + pos: -41.341217,7.6447616 + parent: 2 +- proto: ClothingMaskSterile + entities: + - uid: 1175 + components: + - type: Transform + pos: 16.43792,3.4235206 + parent: 2 + - uid: 1920 + components: + - type: Transform + pos: -14.300686,-5.296539 + parent: 2 + - uid: 1921 + components: + - type: Transform + pos: -14.182626,-5.3555365 + parent: 2 +- proto: ClothingNeckCloakNanotrasen + entities: + - uid: 3050 + components: + - type: Transform + pos: 4.4697094,14.717052 + parent: 2 +- proto: ClothingNeckHeadphones + entities: + - uid: 8036 + components: + - type: Transform + pos: -28.440887,17.64114 + parent: 2 +- proto: ClothingNeckLGBTPin + entities: + - uid: 8195 + components: + - type: Transform + pos: 2.6020877,-21.379698 + parent: 2 +- proto: ClothingNeckScarfStripedBlack + entities: + - uid: 8060 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.443258,14.559776 + parent: 2 +- proto: ClothingNeckScarfStripedBlue + entities: + - uid: 8155 + components: + - type: Transform + pos: -51.406834,-28.496784 + parent: 2 +- proto: ClothingNeckScarfStripedOrange + entities: + - uid: 1438 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.463734,-6.5214977 + parent: 2 + - uid: 1959 + components: + - type: Transform + pos: -32.776043,-7.6117096 + parent: 2 +- proto: ClothingNeckScarfStripedPurple + entities: + - uid: 1174 + components: + - type: Transform + pos: 31.473715,-3.5284007 + parent: 2 +- proto: ClothingNeckScarfStripedRed + entities: + - uid: 8052 + components: + - type: Transform + pos: -33.197826,4.454718 + parent: 2 +- proto: ClothingNeckScarfStripedZebra + entities: + - uid: 7789 + components: + - type: Transform + pos: 1.2543312,-21.71789 + parent: 2 +- proto: ClothingNeckStethoscope + entities: + - uid: 7984 + components: + - type: Transform + pos: -18.617838,-8.200684 + parent: 2 + - type: Stethoscope + actionEntity: 7985 + - type: ActionsContainer + - type: ContainerContainer + containers: + actions: !type:Container + ents: + - 7985 +- proto: ClothingNeckTieRed + entities: + - uid: 8201 + components: + - type: Transform + pos: -4.5405684,-24.093561 + parent: 2 +- proto: ClothingOuterApronBar + entities: + - uid: 1630 + components: + - type: Transform + pos: 19.461279,-29.41678 + parent: 2 +- proto: ClothingOuterArmorBasicSlim + entities: + - uid: 8039 + components: + - type: Transform + pos: -33.62841,4.6105266 + parent: 2 + - uid: 8057 + components: + - type: Transform + pos: -13.734705,8.630609 + parent: 2 +- proto: ClothingOuterCoatJensen + entities: + - uid: 8046 + components: + - type: Transform + pos: -41.366043,7.165116 + parent: 2 + - uid: 8251 + components: + - type: Transform + pos: -12.496769,-21.377604 + parent: 2 +- proto: ClothingOuterCoatLab + entities: + - uid: 1917 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.533293,-5.3555365 + parent: 2 + - uid: 7825 + components: + - type: Transform + pos: 16.429207,2.8880806 + parent: 2 +- proto: ClothingOuterHoodieBlack + entities: + - uid: 8198 + components: + - type: Transform + pos: -4.5405684,-23.444595 + parent: 2 +- proto: ClothingOuterVestHazard + entities: + - uid: 3036 + components: + - type: Transform + pos: 15.406275,-6.461355 + parent: 2 + - uid: 7917 + components: + - type: Transform + pos: 46.509884,-4.1546497 + parent: 2 +- proto: ClothingOuterWinterAtmos + entities: + - uid: 1437 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 52.57828,-20.530834 + parent: 2 +- proto: ClothingOuterWinterCargo + entities: + - uid: 1086 + components: + - type: Transform + pos: 16.602037,-3.3743298 + parent: 2 +- proto: ClothingOuterWinterChem + entities: + - uid: 1958 + components: + - type: Transform + pos: -34.415142,-3.3496494 + parent: 2 +- proto: ClothingOuterWinterCoat + entities: + - uid: 8205 + components: + - type: Transform + pos: 13.497653,-14.415368 + parent: 2 + - uid: 8206 + components: + - type: Transform + pos: 13.586199,-14.356371 + parent: 2 +- proto: ClothingOuterWinterMed + entities: + - uid: 7964 + components: + - type: Transform + pos: -17.707483,-3.275685 + parent: 2 +- proto: ClothingShoesBootsJack + entities: + - uid: 3249 + components: + - type: Transform + pos: 3.6437826,-22.665216 + parent: 2 +- proto: ClothingShoesBootsLaceup + entities: + - uid: 7882 + components: + - type: Transform + pos: -3.5494766,-21.377157 + parent: 2 +- proto: ClothingShoesBootsSalvage + entities: + - uid: 1077 + components: + - type: Transform + pos: 30.572256,-4.065982 + parent: 2 +- proto: ClothingShoesBootsWinter + entities: + - uid: 8209 + components: + - type: Transform + pos: 13.548805,-14.944964 + parent: 2 +- proto: ClothingShoesBootsWork + entities: + - uid: 1181 + components: + - type: Transform + pos: 18.594952,-4.1440086 + parent: 2 + - uid: 8202 + components: + - type: Transform + pos: 1.7325641,-21.994967 + parent: 2 +- proto: ClothingShoesLeather + entities: + - uid: 7881 + components: + - type: Transform + pos: -3.3137593,-21.557034 + parent: 2 + - uid: 8725 + components: + - type: Transform + pos: -54.462753,1.4370198 + parent: 2 +- proto: ClothingUnderSocksBee + entities: + - uid: 8197 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.9822707,-24.801527 + parent: 2 +- proto: ClothingUniformJumpsuitAtmosCasual + entities: + - uid: 1434 + components: + - type: Transform + pos: 47.177013,-16.460037 + parent: 2 +- proto: ClothingUniformJumpsuitBartender + entities: + - uid: 8196 + components: + - type: Transform + pos: 1.8051796,-21.497692 + parent: 2 +- proto: ClothingUniformJumpsuitDetective + entities: + - uid: 8200 + components: + - type: Transform + pos: -4.5700836,-23.680582 + parent: 2 +- proto: ClothingUniformJumpsuitEngineeringHazard + entities: + - uid: 1414 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.40804,-5.472828 + parent: 2 +- proto: ClothingUniformJumpsuitLawyerBlack + entities: + - uid: 8199 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.3364525,-21.556688 + parent: 2 +- proto: ClothingUniformJumpsuitLoungewear + entities: + - uid: 7974 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.4238653,-24.565884 + parent: 2 +- proto: ClothingUniformJumpsuitPirate + entities: + - uid: 8600 + components: + - type: Transform + pos: -40.3535,-13.59006 + parent: 2 +- proto: ClothingUniformJumpsuitSecBlue + entities: + - uid: 2295 + components: + - type: Transform + pos: -33.715607,8.613878 + parent: 2 +- proto: ClothingUniformJumpsuitSecGrey + entities: + - uid: 8030 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.499355,4.5137906 + parent: 2 +- proto: ComfyChair + entities: + - uid: 367 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-10.5 + parent: 2 + - uid: 369 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-22.5 + parent: 2 + - uid: 379 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-18.5 + parent: 2 + - uid: 387 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-22.5 + parent: 2 + - uid: 388 + components: + - type: Transform + pos: -12.5,-20.5 + parent: 2 + - uid: 390 + components: + - type: Transform + pos: -12.5,-10.5 + parent: 2 + - uid: 391 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-12.5 + parent: 2 + - uid: 399 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-20.5 + parent: 2 + - uid: 403 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-12.5 + parent: 2 + - uid: 1004 + components: + - type: Transform + pos: 33.5,-10.5 + parent: 2 + - uid: 1006 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,-13.5 + parent: 2 + - uid: 1007 + components: + - type: Transform + pos: 19.5,-11.5 + parent: 2 + - uid: 1069 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,-11.5 + parent: 2 + - uid: 1188 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,8.5 + parent: 2 + - uid: 1232 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,8.5 + parent: 2 + - uid: 1263 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,9.5 + parent: 2 + - uid: 1264 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,8.5 + parent: 2 + - uid: 1265 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,9.5 + parent: 2 + - uid: 1266 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,8.5 + parent: 2 + - uid: 1473 + components: + - type: Transform + pos: 56.5,-10.5 + parent: 2 + - uid: 1475 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 60.5,-15.5 + parent: 2 + - uid: 1636 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-36.5 + parent: 2 + - uid: 1638 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,-36.5 + parent: 2 + - uid: 1642 + components: + - type: Transform + pos: 13.5,-28.5 + parent: 2 + - uid: 1968 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,-5.5 + parent: 2 + - uid: 1969 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-5.5 + parent: 2 + - uid: 1970 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,-9.5 + parent: 2 + - uid: 1971 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,-8.5 + parent: 2 + - uid: 1972 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,-9.5 + parent: 2 + - uid: 1985 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-12.5 + parent: 2 + - uid: 1986 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,-12.5 + parent: 2 + - uid: 2010 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-17.5 + parent: 2 + - uid: 2011 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,-17.5 + parent: 2 + - uid: 2313 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,7.5 + parent: 2 + - uid: 2314 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,11.5 + parent: 2 + - uid: 2315 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,11.5 + parent: 2 + - uid: 2348 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,12.5 + parent: 2 + - uid: 2351 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,10.5 + parent: 2 + - uid: 2457 + components: + - type: Transform + pos: -53.5,-9.5 + parent: 2 + - uid: 2458 + components: + - type: Transform + pos: -51.5,-9.5 + parent: 2 + - uid: 2459 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -50.5,-10.5 + parent: 2 + - uid: 2460 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -50.5,-12.5 + parent: 2 + - uid: 2461 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-13.5 + parent: 2 + - uid: 2462 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -53.5,-13.5 + parent: 2 + - uid: 2463 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -54.5,-12.5 + parent: 2 + - uid: 2464 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -54.5,-10.5 + parent: 2 + - uid: 2531 + components: + - type: Transform + pos: -53.5,-1.5 + parent: 2 + - uid: 2534 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -53.5,-3.5 + parent: 2 + - uid: 2589 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -52.5,4.5 + parent: 2 + - uid: 2690 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -51.5,-19.5 + parent: 2 + - uid: 2761 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -55.5,-27.5 + parent: 2 + - uid: 2762 + components: + - type: Transform + pos: -55.5,-25.5 + parent: 2 + - uid: 3345 + components: + - type: Transform + pos: 52.5,2.5 + parent: 2 + - uid: 3346 + components: + - type: Transform + pos: 53.5,2.5 + parent: 2 + - uid: 3347 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,0.5 + parent: 2 + - uid: 3348 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 52.5,0.5 + parent: 2 + - uid: 7616 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-43.5 + parent: 2 + - uid: 7617 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-43.5 + parent: 2 + - uid: 7618 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-48.5 + parent: 2 + - uid: 7619 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-48.5 + parent: 2 + - uid: 7620 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-48.5 + parent: 2 + - uid: 7621 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-48.5 + parent: 2 + - uid: 8164 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,-19.5 + parent: 2 + - uid: 8165 + components: + - type: Transform + pos: -42.5,-17.5 + parent: 2 +- proto: ComputerTelevision + entities: + - uid: 1981 + components: + - type: Transform + pos: -22.5,-5.5 + parent: 2 + - uid: 2542 + components: + - type: Transform + pos: -54.5,-7.5 + parent: 2 +- proto: CrateEmptySpawner + entities: + - uid: 8562 + components: + - type: Transform + pos: 36.5,-14.5 + parent: 2 + - uid: 8563 + components: + - type: Transform + pos: 36.5,-15.5 + parent: 2 + - uid: 8565 + components: + - type: Transform + pos: 40.5,-14.5 + parent: 2 + - uid: 8566 + components: + - type: Transform + pos: 40.5,-15.5 + parent: 2 + - uid: 8568 + components: + - type: Transform + pos: -3.5,28.5 + parent: 2 +- proto: CrateEngineeringSecure + entities: + - uid: 1539 + components: + - type: Transform + pos: 51.5,-14.5 + parent: 2 +- proto: CrateFilledSpawner + entities: + - uid: 8564 + components: + - type: Transform + pos: 39.5,-15.5 + parent: 2 +- proto: Crowbar + entities: + - uid: 7792 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.4875042,1.2940984 + parent: 2 + - uid: 8635 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.06224,-12.523144 + parent: 2 +- proto: CrowbarRed + entities: + - uid: 8212 + components: + - type: Transform + pos: 13.707076,-18.524755 + parent: 2 +- proto: CryogenicSleepUnitSpawnerLateJoin + entities: + - uid: 49 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-22.5 + parent: 2 + - uid: 50 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-10.5 + parent: 2 + - uid: 139 + components: + - type: Transform + pos: 7.5,-19.5 + parent: 2 + - uid: 140 + components: + - type: Transform + pos: 7.5,-20.5 + parent: 2 + - uid: 141 + components: + - type: Transform + pos: 7.5,-21.5 + parent: 2 + - uid: 212 + components: + - type: Transform + pos: 7.5,-22.5 + parent: 2 + - uid: 213 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-22.5 + parent: 2 + - uid: 214 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-21.5 + parent: 2 + - uid: 215 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-20.5 + parent: 2 + - uid: 216 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-19.5 + parent: 2 + - uid: 217 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-19.5 + parent: 2 + - uid: 218 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-20.5 + parent: 2 + - uid: 219 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-21.5 + parent: 2 + - uid: 1109 + components: + - type: Transform + pos: 11.5,-19.5 + parent: 2 + - uid: 1233 + components: + - type: Transform + pos: 11.5,-20.5 + parent: 2 + - uid: 1498 + components: + - type: Transform + pos: 11.5,-21.5 + parent: 2 + - uid: 1916 + components: + - type: Transform + pos: 11.5,-22.5 + parent: 2 + - uid: 2014 + components: + - type: Transform + pos: 15.5,-19.5 + parent: 2 + - uid: 2349 + components: + - type: Transform + pos: 15.5,-20.5 + parent: 2 + - uid: 2356 + components: + - type: Transform + pos: 15.5,-21.5 + parent: 2 + - uid: 2358 + components: + - type: Transform + pos: 15.5,-22.5 + parent: 2 + - uid: 2359 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-22.5 + parent: 2 + - uid: 2360 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-21.5 + parent: 2 + - uid: 2617 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-20.5 + parent: 2 + - uid: 2621 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-19.5 + parent: 2 + - uid: 2821 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-10.5 + parent: 2 + - uid: 3259 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-11.5 + parent: 2 + - uid: 7826 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-12.5 + parent: 2 + - uid: 7827 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-13.5 + parent: 2 + - uid: 7828 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-11.5 + parent: 2 + - uid: 7854 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-12.5 + parent: 2 + - uid: 7855 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-13.5 + parent: 2 + - uid: 7856 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-10.5 + parent: 2 + - uid: 7857 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-11.5 + parent: 2 + - uid: 7858 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-12.5 + parent: 2 + - uid: 7930 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-13.5 + parent: 2 + - uid: 7931 + components: + - type: Transform + pos: 7.5,-10.5 + parent: 2 + - uid: 7932 + components: + - type: Transform + pos: 7.5,-11.5 + parent: 2 + - uid: 7933 + components: + - type: Transform + pos: 7.5,-12.5 + parent: 2 + - uid: 7934 + components: + - type: Transform + pos: 7.5,-13.5 + parent: 2 + - uid: 8004 + components: + - type: Transform + pos: 11.5,-10.5 + parent: 2 + - uid: 8005 + components: + - type: Transform + pos: 11.5,-11.5 + parent: 2 + - uid: 8006 + components: + - type: Transform + pos: 11.5,-12.5 + parent: 2 + - uid: 8069 + components: + - type: Transform + pos: 11.5,-13.5 + parent: 2 + - uid: 8070 + components: + - type: Transform + pos: 15.5,-10.5 + parent: 2 + - uid: 8071 + components: + - type: Transform + pos: 15.5,-11.5 + parent: 2 + - uid: 8072 + components: + - type: Transform + pos: 15.5,-12.5 + parent: 2 + - uid: 8073 + components: + - type: Transform + pos: 15.5,-13.5 + parent: 2 +- proto: d6Dice + entities: + - uid: 8078 + components: + - type: Transform + pos: -42.255898,11.747769 + parent: 2 + - uid: 8079 + components: + - type: Transform + pos: -42.34444,11.511781 + parent: 2 + - uid: 8217 + components: + - type: Transform + pos: -16.548565,-15.240736 + parent: 2 +- proto: DebugGenerator + entities: + - uid: 3139 + components: + - type: Transform + pos: -1.5,35.5 + parent: 2 +- proto: DebugSMES + entities: + - uid: 3138 + components: + - type: Transform + pos: 0.5,35.5 + parent: 2 +- proto: DisposalBend + entities: + - uid: 5696 + components: + - type: Transform + pos: -1.5,36.5 + parent: 2 + - uid: 5697 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,36.5 + parent: 2 + - uid: 5713 + components: + - type: Transform + pos: 2.5,29.5 + parent: 2 + - uid: 5714 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,29.5 + parent: 2 + - uid: 5716 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,22.5 + parent: 2 + - uid: 5719 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,22.5 + parent: 2 + - uid: 5744 + components: + - type: Transform + pos: 5.5,4.5 + parent: 2 + - uid: 5747 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,0.5 + parent: 2 + - uid: 5809 + components: + - type: Transform + pos: 43.5,-0.5 + parent: 2 + - uid: 5822 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,-8.5 + parent: 2 + - uid: 5828 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,4.5 + parent: 2 + - uid: 5833 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-0.5 + parent: 2 + - uid: 5863 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,9.5 + parent: 2 + - uid: 5877 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,-9.5 + parent: 2 + - uid: 5896 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -43.5,-0.5 + parent: 2 + - uid: 5905 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,-9.5 + parent: 2 + - uid: 5920 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-5.5 + parent: 2 + - uid: 5921 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-5.5 + parent: 2 + - uid: 5949 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-16.5 + parent: 2 + - uid: 5971 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-31.5 + parent: 2 + - uid: 5972 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-32.5 + parent: 2 + - uid: 5973 + components: + - type: Transform + pos: 0.5,-31.5 + parent: 2 + - uid: 5982 + components: + - type: Transform + pos: 9.5,-32.5 + parent: 2 + - uid: 5983 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-33.5 + parent: 2 + - uid: 6034 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-67.5 + parent: 2 + - uid: 6064 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-67.5 + parent: 2 + - uid: 6065 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-46.5 + parent: 2 +- proto: DisposalJunction + entities: + - uid: 5745 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-0.5 + parent: 2 + - uid: 5769 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,-0.5 + parent: 2 + - uid: 5850 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,-0.5 + parent: 2 + - uid: 5957 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-24.5 + parent: 2 + - uid: 5984 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-33.5 + parent: 2 +- proto: DisposalJunctionFlipped + entities: + - uid: 5712 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,23.5 + parent: 2 + - uid: 5746 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,0.5 + parent: 2 + - uid: 5780 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,-0.5 + parent: 2 + - uid: 5849 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-0.5 + parent: 2 + - uid: 5931 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-16.5 + parent: 2 + - uid: 5999 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-46.5 + parent: 2 + - uid: 6001 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-46.5 + parent: 2 +- proto: DisposalPipe + entities: + - uid: 5698 + components: + - type: Transform + pos: -1.5,35.5 + parent: 2 + - uid: 5699 + components: + - type: Transform + pos: -1.5,34.5 + parent: 2 + - uid: 5700 + components: + - type: Transform + pos: -1.5,33.5 + parent: 2 + - uid: 5701 + components: + - type: Transform + pos: -1.5,32.5 + parent: 2 + - uid: 5702 + components: + - type: Transform + pos: -1.5,31.5 + parent: 2 + - uid: 5703 + components: + - type: Transform + pos: -1.5,30.5 + parent: 2 + - uid: 5704 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,29.5 + parent: 2 + - uid: 5705 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,29.5 + parent: 2 + - uid: 5706 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,29.5 + parent: 2 + - uid: 5707 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,28.5 + parent: 2 + - uid: 5708 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,27.5 + parent: 2 + - uid: 5709 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,26.5 + parent: 2 + - uid: 5710 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,25.5 + parent: 2 + - uid: 5711 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,24.5 + parent: 2 + - uid: 5717 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,22.5 + parent: 2 + - uid: 5718 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,22.5 + parent: 2 + - uid: 5720 + components: + - type: Transform + pos: -0.5,21.5 + parent: 2 + - uid: 5721 + components: + - type: Transform + pos: -0.5,20.5 + parent: 2 + - uid: 5722 + components: + - type: Transform + pos: -0.5,19.5 + parent: 2 + - uid: 5723 + components: + - type: Transform + pos: -0.5,18.5 + parent: 2 + - uid: 5724 + components: + - type: Transform + pos: -0.5,17.5 + parent: 2 + - uid: 5725 + components: + - type: Transform + pos: -0.5,16.5 + parent: 2 + - uid: 5726 + components: + - type: Transform + pos: -0.5,15.5 + parent: 2 + - uid: 5727 + components: + - type: Transform + pos: -0.5,14.5 + parent: 2 + - uid: 5728 + components: + - type: Transform + pos: -0.5,13.5 + parent: 2 + - uid: 5729 + components: + - type: Transform + pos: -0.5,12.5 + parent: 2 + - uid: 5730 + components: + - type: Transform + pos: -0.5,11.5 + parent: 2 + - uid: 5731 + components: + - type: Transform + pos: -0.5,10.5 + parent: 2 + - uid: 5732 + components: + - type: Transform + pos: -0.5,9.5 + parent: 2 + - uid: 5733 + components: + - type: Transform + pos: -0.5,8.5 + parent: 2 + - uid: 5734 + components: + - type: Transform + pos: -0.5,7.5 + parent: 2 + - uid: 5735 + components: + - type: Transform + pos: -0.5,6.5 + parent: 2 + - uid: 5736 + components: + - type: Transform + pos: -0.5,5.5 + parent: 2 + - uid: 5739 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,4.5 + parent: 2 + - uid: 5740 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,4.5 + parent: 2 + - uid: 5741 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,4.5 + parent: 2 + - uid: 5742 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,4.5 + parent: 2 + - uid: 5743 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,4.5 + parent: 2 + - uid: 5748 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,0.5 + parent: 2 + - uid: 5749 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,0.5 + parent: 2 + - uid: 5750 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,0.5 + parent: 2 + - uid: 5751 + components: + - type: Transform + pos: 5.5,1.5 + parent: 2 + - uid: 5752 + components: + - type: Transform + pos: 5.5,2.5 + parent: 2 + - uid: 5753 + components: + - type: Transform + pos: 5.5,3.5 + parent: 2 + - uid: 5754 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-0.5 + parent: 2 + - uid: 5755 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-0.5 + parent: 2 + - uid: 5756 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-0.5 + parent: 2 + - uid: 5757 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-0.5 + parent: 2 + - uid: 5758 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-0.5 + parent: 2 + - uid: 5759 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-0.5 + parent: 2 + - uid: 5760 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-0.5 + parent: 2 + - uid: 5761 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,-0.5 + parent: 2 + - uid: 5762 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,-0.5 + parent: 2 + - uid: 5763 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-0.5 + parent: 2 + - uid: 5764 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,-0.5 + parent: 2 + - uid: 5765 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,-0.5 + parent: 2 + - uid: 5766 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,-0.5 + parent: 2 + - uid: 5767 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,-0.5 + parent: 2 + - uid: 5768 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-0.5 + parent: 2 + - uid: 5770 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,-0.5 + parent: 2 + - uid: 5771 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,0.5 + parent: 2 + - uid: 5772 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,1.5 + parent: 2 + - uid: 5773 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,2.5 + parent: 2 + - uid: 5774 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,3.5 + parent: 2 + - uid: 5775 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,4.5 + parent: 2 + - uid: 5776 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,5.5 + parent: 2 + - uid: 5777 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,6.5 + parent: 2 + - uid: 5778 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,7.5 + parent: 2 + - uid: 5782 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,-1.5 + parent: 2 + - uid: 5783 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,-2.5 + parent: 2 + - uid: 5784 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,-3.5 + parent: 2 + - uid: 5785 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,-4.5 + parent: 2 + - uid: 5786 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,-5.5 + parent: 2 + - uid: 5787 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,-6.5 + parent: 2 + - uid: 5788 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,-7.5 + parent: 2 + - uid: 5789 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,-8.5 + parent: 2 + - uid: 5790 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,-0.5 + parent: 2 + - uid: 5791 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,-0.5 + parent: 2 + - uid: 5792 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,-0.5 + parent: 2 + - uid: 5793 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,-0.5 + parent: 2 + - uid: 5794 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,-0.5 + parent: 2 + - uid: 5795 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,-0.5 + parent: 2 + - uid: 5796 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,-0.5 + parent: 2 + - uid: 5797 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,-0.5 + parent: 2 + - uid: 5798 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,-0.5 + parent: 2 + - uid: 5799 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,-0.5 + parent: 2 + - uid: 5800 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-0.5 + parent: 2 + - uid: 5801 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,-0.5 + parent: 2 + - uid: 5802 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,-0.5 + parent: 2 + - uid: 5803 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,-0.5 + parent: 2 + - uid: 5804 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,-0.5 + parent: 2 + - uid: 5805 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,-0.5 + parent: 2 + - uid: 5806 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-0.5 + parent: 2 + - uid: 5807 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,-0.5 + parent: 2 + - uid: 5808 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-0.5 + parent: 2 + - uid: 5810 + components: + - type: Transform + pos: 43.5,-1.5 + parent: 2 + - uid: 5811 + components: + - type: Transform + pos: 43.5,-2.5 + parent: 2 + - uid: 5812 + components: + - type: Transform + pos: 43.5,-3.5 + parent: 2 + - uid: 5813 + components: + - type: Transform + pos: 43.5,-4.5 + parent: 2 + - uid: 5814 + components: + - type: Transform + pos: 43.5,-5.5 + parent: 2 + - uid: 5815 + components: + - type: Transform + pos: 43.5,-6.5 + parent: 2 + - uid: 5816 + components: + - type: Transform + pos: 43.5,-7.5 + parent: 2 + - uid: 5818 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.5,-8.5 + parent: 2 + - uid: 5819 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,-8.5 + parent: 2 + - uid: 5820 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 45.5,-8.5 + parent: 2 + - uid: 5821 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,-8.5 + parent: 2 + - uid: 5823 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,4.5 + parent: 2 + - uid: 5824 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,4.5 + parent: 2 + - uid: 5825 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,4.5 + parent: 2 + - uid: 5826 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,4.5 + parent: 2 + - uid: 5827 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,4.5 + parent: 2 + - uid: 5829 + components: + - type: Transform + pos: -6.5,3.5 + parent: 2 + - uid: 5830 + components: + - type: Transform + pos: -6.5,2.5 + parent: 2 + - uid: 5831 + components: + - type: Transform + pos: -6.5,1.5 + parent: 2 + - uid: 5832 + components: + - type: Transform + pos: -6.5,0.5 + parent: 2 + - uid: 5834 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-0.5 + parent: 2 + - uid: 5835 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-0.5 + parent: 2 + - uid: 5836 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,-0.5 + parent: 2 + - uid: 5837 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-0.5 + parent: 2 + - uid: 5838 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-0.5 + parent: 2 + - uid: 5839 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-0.5 + parent: 2 + - uid: 5840 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-0.5 + parent: 2 + - uid: 5841 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-0.5 + parent: 2 + - uid: 5842 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,-0.5 + parent: 2 + - uid: 5843 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,-0.5 + parent: 2 + - uid: 5844 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,-0.5 + parent: 2 + - uid: 5845 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,-0.5 + parent: 2 + - uid: 5846 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,-0.5 + parent: 2 + - uid: 5847 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,-0.5 + parent: 2 + - uid: 5848 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,-0.5 + parent: 2 + - uid: 5851 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-0.5 + parent: 2 + - uid: 5852 + components: + - type: Transform + pos: -22.5,0.5 + parent: 2 + - uid: 5853 + components: + - type: Transform + pos: -22.5,1.5 + parent: 2 + - uid: 5854 + components: + - type: Transform + pos: -22.5,2.5 + parent: 2 + - uid: 5855 + components: + - type: Transform + pos: -22.5,3.5 + parent: 2 + - uid: 5856 + components: + - type: Transform + pos: -22.5,4.5 + parent: 2 + - uid: 5857 + components: + - type: Transform + pos: -22.5,5.5 + parent: 2 + - uid: 5858 + components: + - type: Transform + pos: -22.5,6.5 + parent: 2 + - uid: 5859 + components: + - type: Transform + pos: -22.5,7.5 + parent: 2 + - uid: 5860 + components: + - type: Transform + pos: -22.5,8.5 + parent: 2 + - uid: 5861 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,9.5 + parent: 2 + - uid: 5862 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,9.5 + parent: 2 + - uid: 5866 + components: + - type: Transform + pos: -24.5,-1.5 + parent: 2 + - uid: 5867 + components: + - type: Transform + pos: -24.5,-2.5 + parent: 2 + - uid: 5868 + components: + - type: Transform + pos: -24.5,-3.5 + parent: 2 + - uid: 5869 + components: + - type: Transform + pos: -24.5,-4.5 + parent: 2 + - uid: 5870 + components: + - type: Transform + pos: -24.5,-5.5 + parent: 2 + - uid: 5871 + components: + - type: Transform + pos: -24.5,-6.5 + parent: 2 + - uid: 5872 + components: + - type: Transform + pos: -24.5,-7.5 + parent: 2 + - uid: 5873 + components: + - type: Transform + pos: -24.5,-8.5 + parent: 2 + - uid: 5874 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,-9.5 + parent: 2 + - uid: 5875 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,-9.5 + parent: 2 + - uid: 5876 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,-9.5 + parent: 2 + - uid: 5878 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,-0.5 + parent: 2 + - uid: 5879 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,-0.5 + parent: 2 + - uid: 5880 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,-0.5 + parent: 2 + - uid: 5881 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,-0.5 + parent: 2 + - uid: 5882 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,-0.5 + parent: 2 + - uid: 5883 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,-0.5 + parent: 2 + - uid: 5884 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-0.5 + parent: 2 + - uid: 5885 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,-0.5 + parent: 2 + - uid: 5886 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,-0.5 + parent: 2 + - uid: 5887 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,-0.5 + parent: 2 + - uid: 5888 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-0.5 + parent: 2 + - uid: 5889 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,-0.5 + parent: 2 + - uid: 5890 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,-0.5 + parent: 2 + - uid: 5891 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,-0.5 + parent: 2 + - uid: 5892 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-0.5 + parent: 2 + - uid: 5893 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,-0.5 + parent: 2 + - uid: 5894 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,-0.5 + parent: 2 + - uid: 5895 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,-0.5 + parent: 2 + - uid: 5897 + components: + - type: Transform + pos: -43.5,-1.5 + parent: 2 + - uid: 5898 + components: + - type: Transform + pos: -43.5,-2.5 + parent: 2 + - uid: 5899 + components: + - type: Transform + pos: -43.5,-3.5 + parent: 2 + - uid: 5900 + components: + - type: Transform + pos: -43.5,-4.5 + parent: 2 + - uid: 5901 + components: + - type: Transform + pos: -43.5,-5.5 + parent: 2 + - uid: 5902 + components: + - type: Transform + pos: -43.5,-6.5 + parent: 2 + - uid: 5903 + components: + - type: Transform + pos: -43.5,-7.5 + parent: 2 + - uid: 5904 + components: + - type: Transform + pos: -43.5,-8.5 + parent: 2 + - uid: 5907 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -47.5,-9.5 + parent: 2 + - uid: 5908 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -46.5,-9.5 + parent: 2 + - uid: 5909 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-9.5 + parent: 2 + - uid: 5910 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -44.5,-9.5 + parent: 2 + - uid: 5911 + components: + - type: Transform + pos: 5.5,-1.5 + parent: 2 + - uid: 5912 + components: + - type: Transform + pos: 5.5,-2.5 + parent: 2 + - uid: 5913 + components: + - type: Transform + pos: 5.5,-3.5 + parent: 2 + - uid: 5914 + components: + - type: Transform + pos: 5.5,-4.5 + parent: 2 + - uid: 5915 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-5.5 + parent: 2 + - uid: 5916 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-5.5 + parent: 2 + - uid: 5917 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-5.5 + parent: 2 + - uid: 5918 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-5.5 + parent: 2 + - uid: 5919 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-5.5 + parent: 2 + - uid: 5922 + components: + - type: Transform + pos: -0.5,-6.5 + parent: 2 + - uid: 5923 + components: + - type: Transform + pos: -0.5,-7.5 + parent: 2 + - uid: 5924 + components: + - type: Transform + pos: -0.5,-8.5 + parent: 2 + - uid: 5925 + components: + - type: Transform + pos: -0.5,-9.5 + parent: 2 + - uid: 5926 + components: + - type: Transform + pos: -0.5,-10.5 + parent: 2 + - uid: 5927 + components: + - type: Transform + pos: -0.5,-11.5 + parent: 2 + - uid: 5928 + components: + - type: Transform + pos: -0.5,-12.5 + parent: 2 + - uid: 5929 + components: + - type: Transform + pos: -0.5,-13.5 + parent: 2 + - uid: 5930 + components: + - type: Transform + pos: -0.5,-14.5 + parent: 2 + - uid: 5932 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-15.5 + parent: 2 + - uid: 5933 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-16.5 + parent: 2 + - uid: 5934 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-16.5 + parent: 2 + - uid: 5935 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-16.5 + parent: 2 + - uid: 5936 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-16.5 + parent: 2 + - uid: 5937 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-16.5 + parent: 2 + - uid: 5938 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-16.5 + parent: 2 + - uid: 5939 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-16.5 + parent: 2 + - uid: 5940 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-16.5 + parent: 2 + - uid: 5941 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-16.5 + parent: 2 + - uid: 5942 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-16.5 + parent: 2 + - uid: 5943 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-16.5 + parent: 2 + - uid: 5944 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-16.5 + parent: 2 + - uid: 5945 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-16.5 + parent: 2 + - uid: 5946 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-16.5 + parent: 2 + - uid: 5947 + components: + - type: Transform + pos: -15.5,-17.5 + parent: 2 + - uid: 5950 + components: + - type: Transform + pos: -0.5,-17.5 + parent: 2 + - uid: 5951 + components: + - type: Transform + pos: -0.5,-18.5 + parent: 2 + - uid: 5952 + components: + - type: Transform + pos: -0.5,-19.5 + parent: 2 + - uid: 5953 + components: + - type: Transform + pos: -0.5,-20.5 + parent: 2 + - uid: 5954 + components: + - type: Transform + pos: -0.5,-21.5 + parent: 2 + - uid: 5955 + components: + - type: Transform + pos: -0.5,-22.5 + parent: 2 + - uid: 5956 + components: + - type: Transform + pos: -0.5,-23.5 + parent: 2 + - uid: 5959 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-24.5 + parent: 2 + - uid: 5960 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-24.5 + parent: 2 + - uid: 5961 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-24.5 + parent: 2 + - uid: 5962 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-25.5 + parent: 2 + - uid: 5963 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-26.5 + parent: 2 + - uid: 5964 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-27.5 + parent: 2 + - uid: 5965 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-28.5 + parent: 2 + - uid: 5966 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-29.5 + parent: 2 + - uid: 5967 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-30.5 + parent: 2 + - uid: 5974 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-32.5 + parent: 2 + - uid: 5975 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-32.5 + parent: 2 + - uid: 5976 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-32.5 + parent: 2 + - uid: 5977 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-32.5 + parent: 2 + - uid: 5978 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-32.5 + parent: 2 + - uid: 5979 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-32.5 + parent: 2 + - uid: 5980 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-32.5 + parent: 2 + - uid: 5981 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-32.5 + parent: 2 + - uid: 5985 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-33.5 + parent: 2 + - uid: 5986 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-33.5 + parent: 2 + - uid: 5987 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-34.5 + parent: 2 + - uid: 5988 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-35.5 + parent: 2 + - uid: 5989 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-36.5 + parent: 2 + - uid: 5990 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-37.5 + parent: 2 + - uid: 5991 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-38.5 + parent: 2 + - uid: 5992 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-39.5 + parent: 2 + - uid: 5993 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-40.5 + parent: 2 + - uid: 5994 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-41.5 + parent: 2 + - uid: 5995 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-42.5 + parent: 2 + - uid: 5996 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-43.5 + parent: 2 + - uid: 5997 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-44.5 + parent: 2 + - uid: 5998 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-45.5 + parent: 2 + - uid: 6002 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-45.5 + parent: 2 + - uid: 6003 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-46.5 + parent: 2 + - uid: 6004 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-46.5 + parent: 2 + - uid: 6005 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-46.5 + parent: 2 + - uid: 6006 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-46.5 + parent: 2 + - uid: 6007 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-46.5 + parent: 2 + - uid: 6008 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-46.5 + parent: 2 + - uid: 6009 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-46.5 + parent: 2 + - uid: 6010 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-46.5 + parent: 2 + - uid: 6011 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-46.5 + parent: 2 + - uid: 6012 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-46.5 + parent: 2 + - uid: 6013 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-46.5 + parent: 2 + - uid: 6014 + components: + - type: Transform + pos: 9.5,-47.5 + parent: 2 + - uid: 6015 + components: + - type: Transform + pos: 9.5,-48.5 + parent: 2 + - uid: 6016 + components: + - type: Transform + pos: 9.5,-49.5 + parent: 2 + - uid: 6017 + components: + - type: Transform + pos: 9.5,-50.5 + parent: 2 + - uid: 6018 + components: + - type: Transform + pos: 9.5,-51.5 + parent: 2 + - uid: 6019 + components: + - type: Transform + pos: 9.5,-52.5 + parent: 2 + - uid: 6020 + components: + - type: Transform + pos: 9.5,-53.5 + parent: 2 + - uid: 6021 + components: + - type: Transform + pos: 9.5,-54.5 + parent: 2 + - uid: 6022 + components: + - type: Transform + pos: 9.5,-55.5 + parent: 2 + - uid: 6023 + components: + - type: Transform + pos: 9.5,-56.5 + parent: 2 + - uid: 6024 + components: + - type: Transform + pos: 9.5,-57.5 + parent: 2 + - uid: 6025 + components: + - type: Transform + pos: 9.5,-58.5 + parent: 2 + - uid: 6026 + components: + - type: Transform + pos: 9.5,-59.5 + parent: 2 + - uid: 6027 + components: + - type: Transform + pos: 9.5,-60.5 + parent: 2 + - uid: 6028 + components: + - type: Transform + pos: 9.5,-61.5 + parent: 2 + - uid: 6029 + components: + - type: Transform + pos: 9.5,-62.5 + parent: 2 + - uid: 6030 + components: + - type: Transform + pos: 9.5,-63.5 + parent: 2 + - uid: 6031 + components: + - type: Transform + pos: 9.5,-64.5 + parent: 2 + - uid: 6032 + components: + - type: Transform + pos: 9.5,-65.5 + parent: 2 + - uid: 6033 + components: + - type: Transform + pos: 9.5,-66.5 + parent: 2 + - uid: 6037 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-46.5 + parent: 2 + - uid: 6038 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-46.5 + parent: 2 + - uid: 6039 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-46.5 + parent: 2 + - uid: 6040 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-46.5 + parent: 2 + - uid: 6041 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-46.5 + parent: 2 + - uid: 6042 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-46.5 + parent: 2 + - uid: 6043 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-46.5 + parent: 2 + - uid: 6044 + components: + - type: Transform + pos: -10.5,-47.5 + parent: 2 + - uid: 6045 + components: + - type: Transform + pos: -10.5,-48.5 + parent: 2 + - uid: 6046 + components: + - type: Transform + pos: -10.5,-49.5 + parent: 2 + - uid: 6047 + components: + - type: Transform + pos: -10.5,-50.5 + parent: 2 + - uid: 6048 + components: + - type: Transform + pos: -10.5,-51.5 + parent: 2 + - uid: 6049 + components: + - type: Transform + pos: -10.5,-52.5 + parent: 2 + - uid: 6050 + components: + - type: Transform + pos: -10.5,-53.5 + parent: 2 + - uid: 6051 + components: + - type: Transform + pos: -10.5,-54.5 + parent: 2 + - uid: 6052 + components: + - type: Transform + pos: -10.5,-55.5 + parent: 2 + - uid: 6053 + components: + - type: Transform + pos: -10.5,-56.5 + parent: 2 + - uid: 6054 + components: + - type: Transform + pos: -10.5,-57.5 + parent: 2 + - uid: 6055 + components: + - type: Transform + pos: -10.5,-58.5 + parent: 2 + - uid: 6056 + components: + - type: Transform + pos: -10.5,-59.5 + parent: 2 + - uid: 6057 + components: + - type: Transform + pos: -10.5,-60.5 + parent: 2 + - uid: 6058 + components: + - type: Transform + pos: -10.5,-61.5 + parent: 2 + - uid: 6059 + components: + - type: Transform + pos: -10.5,-62.5 + parent: 2 + - uid: 6060 + components: + - type: Transform + pos: -10.5,-63.5 + parent: 2 + - uid: 6061 + components: + - type: Transform + pos: -10.5,-64.5 + parent: 2 + - uid: 6062 + components: + - type: Transform + pos: -10.5,-65.5 + parent: 2 + - uid: 6063 + components: + - type: Transform + pos: -10.5,-66.5 + parent: 2 +- proto: DisposalTrunk + entities: + - uid: 5715 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,23.5 + parent: 2 + - uid: 5737 + components: + - type: Transform + pos: 1.5,1.5 + parent: 2 + - uid: 5779 + components: + - type: Transform + pos: 21.5,8.5 + parent: 2 + - uid: 5781 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,-9.5 + parent: 2 + - uid: 5817 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,-8.5 + parent: 2 + - uid: 5864 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,9.5 + parent: 2 + - uid: 5865 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-9.5 + parent: 2 + - uid: 5906 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -48.5,-9.5 + parent: 2 + - uid: 5948 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-18.5 + parent: 2 + - uid: 5958 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-24.5 + parent: 2 + - uid: 6000 + components: + - type: Transform + pos: -2.5,-44.5 + parent: 2 + - uid: 6035 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-67.5 + parent: 2 + - uid: 6036 + components: + - type: Transform + pos: 12.5,-32.5 + parent: 2 + - uid: 6066 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,-67.5 + parent: 2 +- proto: DisposalUnit + entities: + - uid: 116 + components: + - type: Transform + pos: 12.5,-32.5 + parent: 2 + - uid: 331 + components: + - type: Transform + pos: -15.5,-18.5 + parent: 2 + - uid: 1287 + components: + - type: Transform + pos: 21.5,8.5 + parent: 2 + - uid: 1288 + components: + - type: Transform + pos: 23.5,-9.5 + parent: 2 + - uid: 1289 + components: + - type: Transform + pos: 3.5,-24.5 + parent: 2 + - uid: 1538 + components: + - type: Transform + pos: 48.5,-8.5 + parent: 2 + - uid: 1811 + components: + - type: Transform + pos: 1.5,1.5 + parent: 2 + - uid: 1984 + components: + - type: Transform + pos: -28.5,-9.5 + parent: 2 + - uid: 2308 + components: + - type: Transform + pos: -19.5,9.5 + parent: 2 + - uid: 2814 + components: + - type: Transform + pos: -48.5,-9.5 + parent: 2 + - uid: 3250 + components: + - type: Transform + pos: 1.5,23.5 + parent: 2 + - uid: 5303 + components: + - type: Transform + pos: 8.5,-67.5 + parent: 2 + - uid: 5969 + components: + - type: Transform + pos: -2.5,-44.5 + parent: 2 + - uid: 5970 + components: + - type: Transform + pos: -9.5,-67.5 + parent: 2 +- proto: DisposalYJunction + entities: + - uid: 5738 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,4.5 + parent: 2 +- proto: DogBed + entities: + - uid: 1059 + components: + - type: Transform + pos: 29.5,-11.5 + parent: 2 + - uid: 1537 + components: + - type: Transform + pos: 59.5,-10.5 + parent: 2 + - uid: 1991 + components: + - type: Transform + pos: -28.5,-13.5 + parent: 2 + - uid: 2580 + components: + - type: Transform + pos: -55.5,-3.5 + parent: 2 + - uid: 2693 + components: + - type: Transform + pos: -51.5,-17.5 + parent: 2 +- proto: DoubleEmergencyOxygenTankFilled + entities: + - uid: 7918 + components: + - type: Transform + pos: 50.542027,-20.300407 + parent: 2 + - type: GasTank + toggleActionEntity: 7919 + - type: ActionsContainer + - type: ContainerContainer + containers: + actions: !type:Container + ents: + - 7919 +- proto: Dresser + entities: + - uid: 359 + components: + - type: Transform + pos: -7.5,-20.5 + parent: 2 + - uid: 368 + components: + - type: Transform + pos: -7.5,-12.5 + parent: 2 + - uid: 384 + components: + - type: Transform + pos: -10.5,-19.5 + parent: 2 + - uid: 392 + components: + - type: Transform + pos: -10.5,-13.5 + parent: 2 +- proto: DresserCaptainFilled + entities: + - uid: 2697 + components: + - type: Transform + pos: -48.5,4.5 + parent: 2 +- proto: DresserChiefEngineerFilled + entities: + - uid: 2695 + components: + - type: Transform + pos: 59.5,-17.5 + parent: 2 +- proto: DresserChiefMedicalOfficerFilled + entities: + - uid: 8430 + components: + - type: Transform + pos: -25.5,-19.5 + parent: 2 +- proto: DresserHeadOfPersonnelFilled + entities: + - uid: 6227 + components: + - type: Transform + pos: -48.5,-25.5 + parent: 2 +- proto: DresserHeadOfSecurityFilled + entities: + - uid: 2696 + components: + - type: Transform + pos: -38.5,13.5 + parent: 2 +- proto: DresserQuarterMasterFilled + entities: + - uid: 2585 + components: + - type: Transform + pos: 35.5,-10.5 + parent: 2 +- proto: DresserResearchDirectorFilled + entities: + - uid: 2692 + components: + - type: Transform + pos: 36.5,6.5 + parent: 2 +- proto: DresserWardenFilled + entities: + - uid: 8673 + components: + - type: Transform + pos: -17.5,10.5 + parent: 2 +- proto: DrinkBottleVodka + entities: + - uid: 8621 + components: + - type: Transform + pos: -30.214634,-12.421656 + parent: 2 + - uid: 8622 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.487297,-11.418706 + parent: 2 +- proto: DrinkBraveBullGlass + entities: + - uid: 8045 + components: + - type: Transform + pos: -20.4467,7.5542164 + parent: 2 +- proto: DrinkChampagneBottleFull + entities: + - uid: 8156 + components: + - type: Transform + pos: -55.648075,-26.061361 + parent: 2 +- proto: DrinkChocolateGlass + entities: + - uid: 8207 + components: + - type: Transform + pos: 5.367957,-18.307796 + parent: 2 +- proto: DrinkCoffee + entities: + - uid: 7988 + components: + - type: Transform + pos: -23.673742,-9.06538 + parent: 2 +- proto: DrinkCream + entities: + - uid: 7987 + components: + - type: Transform + pos: -23.349077,-9.360365 + parent: 2 +- proto: DrinkDoctorsDelightGlass + entities: + - uid: 2054 + components: + - type: Transform + pos: -24.460289,-13.248962 + parent: 2 +- proto: DrinkEnergyDrinkCan + entities: + - uid: 7814 + components: + - type: Transform + pos: 24.668615,4.6687922 + parent: 2 +- proto: DrinkFlask + entities: + - uid: 8136 + components: + - type: Transform + pos: -53.58223,4.8327723 + parent: 2 +- proto: DrinkGinGlass + entities: + - uid: 7992 + components: + - type: Transform + pos: 60.683723,-14.403574 + parent: 2 +- proto: DrinkGlass + entities: + - uid: 7829 + components: + - type: Transform + pos: 35.258934,9.546424 + parent: 2 + - uid: 8107 + components: + - type: Transform + pos: -56.39064,-12.814842 + parent: 2 + - uid: 8109 + components: + - type: Transform + pos: -56.56773,-13.168825 + parent: 2 + - uid: 8112 + components: + - type: Transform + pos: -56.62676,-10.808943 + parent: 2 + - uid: 8157 + components: + - type: Transform + pos: -55.470985,-26.486336 + parent: 2 + - uid: 8158 + components: + - type: Transform + pos: -55.234863,-26.19135 + parent: 2 + - uid: 8298 + components: + - type: Transform + pos: 13.7893915,-31.399359 + parent: 2 + - uid: 8299 + components: + - type: Transform + pos: 14.143574,-31.458355 + parent: 2 + - uid: 8300 + components: + - type: Transform + pos: 15.943995,-31.34036 + parent: 2 + - uid: 8545 + components: + - type: Transform + pos: 53.597065,1.8335893 + parent: 2 + - uid: 8546 + components: + - type: Transform + pos: 50.761814,-0.21791244 + parent: 2 +- proto: DrinkHosFlask + entities: + - uid: 2357 + components: + - type: Transform + pos: -32.406086,10.680475 + parent: 2 +- proto: DrinkHotCoco + entities: + - uid: 8208 + components: + - type: Transform + pos: 5.698441,-18.307796 + parent: 2 +- proto: DrinkHotCoffee + entities: + - uid: 7793 + components: + - type: Transform + pos: -0.65756726,1.5130646 + parent: 2 + - uid: 8044 + components: + - type: Transform + pos: -26.448895,6.6872663 + parent: 2 + - uid: 8099 + components: + - type: Transform + pos: -32.639317,12.1201935 + parent: 2 +- proto: DrinkMREFlask + entities: + - uid: 7883 + components: + - type: Transform + pos: 27.62575,-14.385761 + parent: 2 +- proto: DrinkMugBlue + entities: + - uid: 8146 + components: + - type: Transform + pos: -50.384914,-19.0172 + parent: 2 +- proto: DrinkMugOne + entities: + - uid: 8125 + components: + - type: Transform + pos: -53.132275,-2.5260758 + parent: 2 +- proto: DrinkMugRed + entities: + - uid: 8059 + components: + - type: Transform + pos: -16.349476,11.633667 + parent: 2 +- proto: DrinkShotGlass + entities: + - uid: 7852 + components: + - type: Transform + pos: 31.741276,-10.298908 + parent: 2 + - uid: 7853 + components: + - type: Transform + pos: 31.65273,-10.593893 + parent: 2 + - uid: 8034 + components: + - type: Transform + pos: -16.735592,8.593774 + parent: 2 + - uid: 8076 + components: + - type: Transform + pos: -42.73514,11.6677475 + parent: 2 + - uid: 8077 + components: + - type: Transform + pos: -42.292416,12.493706 + parent: 2 + - uid: 8105 + components: + - type: Transform + pos: -56.361122,-11.87089 + parent: 2 + - uid: 8301 + components: + - type: Transform + pos: 13.671332,-36.27446 + parent: 2 + - uid: 8648 + components: + - type: Transform + pos: 52.41646,1.5386038 + parent: 2 +- proto: DrinkVermouthGlass + entities: + - uid: 8293 + components: + - type: Transform + pos: -0.41545537,-43.42149 + parent: 2 +- proto: DrinkVodkaBottleFull + entities: + - uid: 8620 + components: + - type: Transform + pos: -31.188633,-10.238765 + parent: 2 +- proto: DrinkWhiskeyBottleFull + entities: + - uid: 2149 + components: + - type: Transform + pos: -16.456015,8.735891 + parent: 2 +- proto: DrinkWhiskeyGlass + entities: + - uid: 7836 + components: + - type: Transform + pos: 22.49893,-14.392227 + parent: 2 +- proto: DrinkWineGlass + entities: + - uid: 8215 + components: + - type: Transform + pos: -7.665916,-18.240057 + parent: 2 +- proto: EmergencyLight + entities: + - uid: 8488 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-32.5 + parent: 2 + - uid: 8489 + components: + - type: Transform + pos: -2.5,23.5 + parent: 2 + - uid: 8490 + components: + - type: Transform + pos: 1.5,5.5 + parent: 2 + - uid: 8491 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-6.5 + parent: 2 + - uid: 8492 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-40.5 + parent: 2 + - uid: 8493 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,-1.5 + parent: 2 + - uid: 8494 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,-23.5 + parent: 2 + - uid: 8495 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,-1.5 + parent: 2 + - uid: 8496 + components: + - type: Transform + pos: -18.5,0.5 + parent: 2 + - uid: 8497 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -44.5,-0.5 + parent: 2 + - uid: 8498 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -44.5,-22.5 + parent: 2 + - uid: 8499 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-40.5 + parent: 2 + - uid: 8500 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-20.5 + parent: 2 + - uid: 8502 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-58.5 + parent: 2 + - uid: 8503 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-32.5 + parent: 2 + - uid: 8504 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-58.5 + parent: 2 +- proto: EmergencyOxygenTankFilled + entities: + - uid: 8550 + components: + - type: Transform + pos: 46.606777,6.5634203 + parent: 2 + - uid: 8551 + components: + - type: Transform + pos: 46.4592,6.6814146 + parent: 2 +- proto: EmergencyRollerBedSpawnFolded + entities: + - uid: 7967 + components: + - type: Transform + pos: -15.790616,-8.62485 + parent: 2 +- proto: EncryptionKeyCargo + entities: + - uid: 1085 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.451964,-8.4449835 + parent: 2 +- proto: EncryptionKeyMedical + entities: + - uid: 1912 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.628083,-5.561151 + parent: 2 +- proto: ExtinguisherCabinetFilled + entities: + - uid: 7716 + components: + - type: Transform + pos: 26.5,1.5 + parent: 2 + - uid: 7717 + components: + - type: Transform + pos: 45.5,-7.5 + parent: 2 + - uid: 7718 + components: + - type: Transform + pos: 2.5,-30.5 + parent: 2 + - uid: 7719 + components: + - type: Transform + pos: -4.5,-14.5 + parent: 2 + - uid: 7720 + components: + - type: Transform + pos: -8.5,32.5 + parent: 2 + - uid: 7721 + components: + - type: Transform + pos: -30.5,1.5 + parent: 2 + - uid: 7722 + components: + - type: Transform + pos: -3.5,-3.5 + parent: 2 + - uid: 7723 + components: + - type: Transform + pos: -45.5,-7.5 + parent: 2 +- proto: filingCabinetDrawerRandom + entities: + - uid: 1185 + components: + - type: Transform + pos: 32.5,9.5 + parent: 2 + - uid: 1990 + components: + - type: Transform + pos: -24.5,-11.5 + parent: 2 + - uid: 2279 + components: + - type: Transform + pos: -14.5,12.5 + parent: 2 + - uid: 2536 + components: + - type: Transform + pos: -50.5,-4.5 + parent: 2 +- proto: filingCabinetRandom + entities: + - uid: 979 + components: + - type: Transform + pos: 27.5,-11.5 + parent: 2 + - uid: 1816 + components: + - type: Transform + pos: -3.5,0.5 + parent: 2 + - uid: 1977 + components: + - type: Transform + pos: -20.5,-5.5 + parent: 2 + - uid: 2151 + components: + - type: Transform + pos: -13.5,5.5 + parent: 2 + - uid: 2321 + components: + - type: Transform + pos: -30.5,14.5 + parent: 2 + - uid: 2715 + components: + - type: Transform + pos: -50.5,-22.5 + parent: 2 +- proto: filingCabinetTallRandom + entities: + - uid: 1068 + components: + - type: Transform + pos: 25.5,-5.5 + parent: 2 + - uid: 2256 + components: + - type: Transform + pos: -20.5,13.5 + parent: 2 + - uid: 2701 + components: + - type: Transform + pos: -51.5,-22.5 + parent: 2 +- proto: FireAlarm + entities: + - uid: 826 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-13.5 + parent: 2 + - type: DeviceList + devices: + - 6141 + - 6142 + - 6143 + - 6144 + - 6152 + - 6151 + - 6150 + - 6149 + - 6148 + - uid: 5668 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-18.5 + parent: 2 + - type: DeviceList + devices: + - 6152 + - 6151 + - 6154 + - 6155 + - 6156 + - 6157 + - 6158 + - 6153 + - uid: 7669 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,2.5 + parent: 2 + - type: DeviceList + devices: + - 6130 + - 6129 + - 6128 + - 6127 + - 6135 + - 6136 + - 6137 + - 6138 + - 6139 + - uid: 7670 + components: + - type: Transform + pos: 13.5,1.5 + parent: 2 + - type: DeviceList + devices: + - 6133 + - 6132 + - 6131 + - 6134 + - uid: 7671 + components: + - type: Transform + pos: 42.5,1.5 + parent: 2 + - type: DeviceList + devices: + - 6174 + - 6175 + - 6177 + - uid: 7672 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,-2.5 + parent: 2 + - type: DeviceList + devices: + - 6174 + - 6175 + - 6177 + - uid: 7673 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,13.5 + parent: 2 + - type: DeviceList + devices: + - 6127 + - 6128 + - 6130 + - 6129 + - uid: 7674 + components: + - type: Transform + pos: 2.5,-3.5 + parent: 2 + - type: DeviceList + devices: + - 6140 + - 6132 + - 6131 + - 6142 + - 6141 + - uid: 7675 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-8.5 + parent: 2 + - type: DeviceList + devices: + - 6200 + - 6201 + - 6199 + - 6198 + - uid: 7676 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,4.5 + parent: 2 + - type: DeviceList + devices: + - 6195 + - 6194 + - 6196 + - uid: 7677 + components: + - type: Transform + pos: 41.5,-20.5 + parent: 2 + - type: DeviceList + devices: + - 6086 + - 2522 + - 4308 + - uid: 7678 + components: + - type: Transform + pos: 51.5,-7.5 + parent: 2 + - type: DeviceList + devices: + - 6203 + - 6204 + - 6206 + - 6205 + - uid: 7679 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,-24.5 + parent: 2 + - type: DeviceList + devices: + - 6086 + - 2522 + - 4308 + - uid: 7680 + components: + - type: Transform + pos: 21.5,-37.5 + parent: 2 + - type: DeviceList + devices: + - 6163 + - 6162 + - 6180 + - 6164 + - uid: 7681 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,-2.5 + parent: 2 + - type: DeviceList + devices: + - 6136 + - 6137 + - 6138 + - 6135 + - uid: 7682 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,3.5 + parent: 2 + - type: DeviceList + devices: + - 6213 + - 6208 + - 6209 + - 6210 + - 6211 + - 6215 + - 6212 + - uid: 7683 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,-9.5 + parent: 2 + - type: DeviceList + devices: + - 6219 + - 6217 + - 6218 + - 6220 + - uid: 7684 + components: + - type: Transform + pos: -39.5,1.5 + parent: 2 + - type: DeviceList + devices: + - 6230 + - 6229 + - 6228 + - uid: 7685 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,-2.5 + parent: 2 + - type: DeviceList + devices: + - 6230 + - 6229 + - 6228 + - uid: 7686 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -49.5,-14.5 + parent: 2 + - type: DeviceList + devices: + - 6222 + - 6223 + - 6224 + - uid: 7687 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,-24.5 + parent: 2 + - type: DeviceList + devices: + - 6233 + - 6232 + - 6231 + - uid: 7688 + components: + - type: Transform + pos: -38.5,-20.5 + parent: 2 + - type: DeviceList + devices: + - 6233 + - 6232 + - 6231 + - uid: 7689 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,-41.5 + parent: 2 + - type: DeviceList + devices: + - 6189 + - 6168 + - 6169 + - 6170 + - uid: 7690 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-25.5 + parent: 2 + - type: DeviceList + devices: + - 6145 + - 6146 + - 6147 + - uid: 7691 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-18.5 + parent: 2 + - type: DeviceList + devices: + - 6150 + - 6149 + - 6148 + - uid: 7694 + components: + - type: Transform + pos: -12.5,-51.5 + parent: 2 + - type: DeviceList + devices: + - 6183 + - 6184 + - 6185 + - 6165 + - 6166 + - 6167 + - uid: 7695 + components: + - type: Transform + pos: 11.5,-51.5 + parent: 2 + - type: DeviceList + devices: + - 6182 + - 6181 + - 6176 + - 6160 + - 6161 + - 6159 + - uid: 7697 + components: + - type: Transform + pos: -12.5,-37.5 + parent: 2 + - type: DeviceList + devices: + - 6168 + - 6189 + - 6170 + - 6169 + - 6167 + - 6166 + - 6165 + - 6145 + - 6146 + - 6147 + - uid: 7698 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,-41.5 + parent: 2 + - type: DeviceList + devices: + - 6180 + - 6164 + - 6163 + - 6162 + - 6160 + - 6161 + - 6159 + - 6173 + - 6172 + - 6171 + - 6147 + - 6146 + - 6145 +- proto: Firelock + entities: + - uid: 6195 + components: + - type: Transform + pos: 19.5,5.5 + parent: 2 + - uid: 6196 + components: + - type: Transform + pos: 27.5,8.5 + parent: 2 + - uid: 6198 + components: + - type: Transform + pos: 23.5,-4.5 + parent: 2 + - uid: 6199 + components: + - type: Transform + pos: 19.5,-7.5 + parent: 2 + - uid: 6200 + components: + - type: Transform + pos: 27.5,-7.5 + parent: 2 + - uid: 6201 + components: + - type: Transform + pos: 24.5,-10.5 + parent: 2 + - uid: 6206 + components: + - type: Transform + pos: 54.5,-10.5 + parent: 2 + - uid: 6208 + components: + - type: Transform + pos: -25.5,3.5 + parent: 2 + - uid: 6209 + components: + - type: Transform + pos: -23.5,3.5 + parent: 2 + - uid: 6210 + components: + - type: Transform + pos: -17.5,5.5 + parent: 2 + - uid: 6211 + components: + - type: Transform + pos: -19.5,11.5 + parent: 2 + - uid: 6212 + components: + - type: Transform + pos: -29.5,11.5 + parent: 2 + - uid: 6213 + components: + - type: Transform + pos: -31.5,5.5 + parent: 2 + - uid: 6217 + components: + - type: Transform + pos: -24.5,-4.5 + parent: 2 + - uid: 6218 + components: + - type: Transform + pos: -29.5,-6.5 + parent: 2 + - uid: 6219 + components: + - type: Transform + pos: -19.5,-6.5 + parent: 2 + - uid: 6220 + components: + - type: Transform + pos: -27.5,-10.5 + parent: 2 + - uid: 6222 + components: + - type: Transform + pos: -47.5,-11.5 + parent: 2 + - uid: 6223 + components: + - type: Transform + pos: -53.5,-6.5 + parent: 2 + - uid: 6224 + components: + - type: Transform + pos: -53.5,-16.5 + parent: 2 +- proto: FirelockEdge + entities: + - uid: 6153 + components: + - type: Transform + pos: 6.5,-18.5 + parent: 2 + - uid: 6154 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-14.5 + parent: 2 + - uid: 6155 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,-14.5 + parent: 2 + - uid: 6156 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,-14.5 + parent: 2 + - uid: 6157 + components: + - type: Transform + pos: 14.5,-18.5 + parent: 2 + - uid: 6158 + components: + - type: Transform + pos: 10.5,-18.5 + parent: 2 +- proto: FirelockGlass + entities: + - uid: 2522 + components: + - type: Transform + pos: 40.5,-22.5 + parent: 2 + - uid: 4308 + components: + - type: Transform + pos: 40.5,-23.5 + parent: 2 + - uid: 6086 + components: + - type: Transform + pos: 40.5,-21.5 + parent: 2 + - uid: 6127 + components: + - type: Transform + pos: -1.5,10.5 + parent: 2 + - uid: 6128 + components: + - type: Transform + pos: 0.5,10.5 + parent: 2 + - uid: 6129 + components: + - type: Transform + pos: 0.5,8.5 + parent: 2 + - uid: 6130 + components: + - type: Transform + pos: -1.5,8.5 + parent: 2 + - uid: 6131 + components: + - type: Transform + pos: 9.5,-1.5 + parent: 2 + - uid: 6132 + components: + - type: Transform + pos: 9.5,0.5 + parent: 2 + - uid: 6133 + components: + - type: Transform + pos: 11.5,0.5 + parent: 2 + - uid: 6134 + components: + - type: Transform + pos: 11.5,-1.5 + parent: 2 + - uid: 6135 + components: + - type: Transform + pos: -10.5,0.5 + parent: 2 + - uid: 6136 + components: + - type: Transform + pos: -12.5,0.5 + parent: 2 + - uid: 6137 + components: + - type: Transform + pos: -12.5,-1.5 + parent: 2 + - uid: 6138 + components: + - type: Transform + pos: -10.5,-1.5 + parent: 2 + - uid: 6139 + components: + - type: Transform + pos: -4.5,-0.5 + parent: 2 + - uid: 6140 + components: + - type: Transform + pos: 3.5,-0.5 + parent: 2 + - uid: 6141 + components: + - type: Transform + pos: -1.5,-9.5 + parent: 2 + - uid: 6142 + components: + - type: Transform + pos: 0.5,-9.5 + parent: 2 + - uid: 6143 + components: + - type: Transform + pos: 0.5,-11.5 + parent: 2 + - uid: 6144 + components: + - type: Transform + pos: -1.5,-11.5 + parent: 2 + - uid: 6145 + components: + - type: Transform + pos: -1.5,-29.5 + parent: 2 + - uid: 6146 + components: + - type: Transform + pos: -0.5,-29.5 + parent: 2 + - uid: 6147 + components: + - type: Transform + pos: 0.5,-29.5 + parent: 2 + - uid: 6148 + components: + - type: Transform + pos: -5.5,-15.5 + parent: 2 + - uid: 6149 + components: + - type: Transform + pos: -5.5,-16.5 + parent: 2 + - uid: 6150 + components: + - type: Transform + pos: -5.5,-17.5 + parent: 2 + - uid: 6151 + components: + - type: Transform + pos: 3.5,-17.5 + parent: 2 + - uid: 6152 + components: + - type: Transform + pos: 3.5,-15.5 + parent: 2 + - uid: 6159 + components: + - type: Transform + pos: 8.5,-43.5 + parent: 2 + - uid: 6160 + components: + - type: Transform + pos: 10.5,-43.5 + parent: 2 + - uid: 6161 + components: + - type: Transform + pos: 9.5,-43.5 + parent: 2 + - uid: 6162 + components: + - type: Transform + pos: 17.5,-40.5 + parent: 2 + - uid: 6163 + components: + - type: Transform + pos: 17.5,-38.5 + parent: 2 + - uid: 6164 + components: + - type: Transform + pos: 19.5,-38.5 + parent: 2 + - uid: 6165 + components: + - type: Transform + pos: -9.5,-43.5 + parent: 2 + - uid: 6166 + components: + - type: Transform + pos: -10.5,-43.5 + parent: 2 + - uid: 6167 + components: + - type: Transform + pos: -11.5,-43.5 + parent: 2 + - uid: 6168 + components: + - type: Transform + pos: -20.5,-38.5 + parent: 2 + - uid: 6169 + components: + - type: Transform + pos: -18.5,-38.5 + parent: 2 + - uid: 6170 + components: + - type: Transform + pos: -18.5,-40.5 + parent: 2 + - uid: 6171 + components: + - type: Transform + pos: 11.5,-33.5 + parent: 2 + - uid: 6172 + components: + - type: Transform + pos: 11.5,-34.5 + parent: 2 + - uid: 6173 + components: + - type: Transform + pos: 11.5,-35.5 + parent: 2 + - uid: 6174 + components: + - type: Transform + pos: 40.5,-1.5 + parent: 2 + - uid: 6175 + components: + - type: Transform + pos: 40.5,-0.5 + parent: 2 + - uid: 6176 + components: + - type: Transform + pos: 8.5,-51.5 + parent: 2 + - uid: 6177 + components: + - type: Transform + pos: 40.5,0.5 + parent: 2 + - uid: 6180 + components: + - type: Transform + pos: 19.5,-40.5 + parent: 2 + - uid: 6181 + components: + - type: Transform + pos: 9.5,-51.5 + parent: 2 + - uid: 6182 + components: + - type: Transform + pos: 10.5,-51.5 + parent: 2 + - uid: 6183 + components: + - type: Transform + pos: -11.5,-51.5 + parent: 2 + - uid: 6184 + components: + - type: Transform + pos: -10.5,-51.5 + parent: 2 + - uid: 6185 + components: + - type: Transform + pos: -9.5,-51.5 + parent: 2 + - uid: 6189 + components: + - type: Transform + pos: -20.5,-40.5 + parent: 2 + - uid: 6194 + components: + - type: Transform + pos: 23.5,3.5 + parent: 2 + - uid: 6197 + components: + - type: Transform + pos: 33.5,6.5 + parent: 2 + - uid: 6202 + components: + - type: Transform + pos: 30.5,-12.5 + parent: 2 + - uid: 6203 + components: + - type: Transform + pos: 47.5,-11.5 + parent: 2 + - uid: 6204 + components: + - type: Transform + pos: 50.5,-7.5 + parent: 2 + - uid: 6205 + components: + - type: Transform + pos: 50.5,-15.5 + parent: 2 + - uid: 6207 + components: + - type: Transform + pos: 58.5,-13.5 + parent: 2 + - uid: 6214 + components: + - type: Transform + pos: -37.5,7.5 + parent: 2 + - uid: 6215 + components: + - type: Transform + pos: -27.5,14.5 + parent: 2 + - uid: 6216 + components: + - type: Transform + pos: -36.5,12.5 + parent: 2 + - uid: 6221 + components: + - type: Transform + pos: -24.5,-15.5 + parent: 2 + - uid: 6225 + components: + - type: Transform + pos: -53.5,-23.5 + parent: 2 + - uid: 6226 + components: + - type: Transform + pos: -53.5,0.5 + parent: 2 + - uid: 6228 + components: + - type: Transform + pos: -40.5,-1.5 + parent: 2 + - uid: 6229 + components: + - type: Transform + pos: -40.5,-0.5 + parent: 2 + - uid: 6230 + components: + - type: Transform + pos: -40.5,0.5 + parent: 2 + - uid: 6231 + components: + - type: Transform + pos: -40.5,-23.5 + parent: 2 + - uid: 6232 + components: + - type: Transform + pos: -40.5,-22.5 + parent: 2 + - uid: 6233 + components: + - type: Transform + pos: -40.5,-21.5 + parent: 2 +- proto: Fireplace + entities: + - uid: 1073 + components: + - type: Transform + pos: 32.5,-10.5 + parent: 2 + - uid: 1234 + components: + - type: Transform + pos: 34.5,9.5 + parent: 2 + - uid: 1474 + components: + - type: Transform + pos: 59.5,-14.5 + parent: 2 + - uid: 2009 + components: + - type: Transform + pos: -26.5,-16.5 + parent: 2 + - uid: 2347 + components: + - type: Transform + pos: -40.5,14.5 + parent: 2 + - uid: 2614 + components: + - type: Transform + pos: -55.5,4.5 + parent: 2 + - uid: 2759 + components: + - type: Transform + pos: -54.5,-24.5 + parent: 2 +- proto: Flare + entities: + - uid: 7790 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.6020508,-2.4624155 + parent: 2 +- proto: FlashlightLantern + entities: + - uid: 1078 + components: + - type: Transform + pos: 31.359701,-4.5352507 + parent: 2 + - uid: 7916 + components: + - type: Transform + pos: 52.388493,-8.404823 + parent: 2 + - uid: 8210 + components: + - type: Transform + pos: 13.500471,-18.288767 + parent: 2 + - type: HandheldLight + toggleActionEntity: 8211 + - type: ContainerContainer + containers: + cell_slot: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + actions: !type:Container + showEnts: False + occludes: True + ents: + - 8211 + - type: ActionsContainer + - uid: 8617 + components: + - type: Transform + pos: -37.59033,-12.235597 + parent: 2 +- proto: FlashlightSeclite + entities: + - uid: 2110 + components: + - type: Transform + pos: -35.539845,2.4540792 + parent: 2 + - uid: 2111 + components: + - type: Transform + pos: -35.598877,2.7195663 + parent: 2 + - uid: 2361 + components: + - type: Transform + pos: -38.56472,13.878742 + parent: 2 + - type: HandheldLight + toggleActionEntity: 2622 + - type: ContainerContainer + containers: + cell_slot: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + actions: !type:Container + showEnts: False + occludes: True + ents: + - 2622 + - type: ActionsContainer + - uid: 7791 + components: + - type: Transform + pos: -0.5395062,-2.5802617 + parent: 2 +- proto: FoodBakedBrownie + entities: + - uid: 8138 + components: + - type: Transform + pos: -51.877476,-10.263662 + parent: 2 +- proto: FoodBreadCreamcheeseSlice + entities: + - uid: 7978 + components: + - type: Transform + pos: -23.490627,-8.490159 + parent: 2 +- proto: FoodBurgerBacon + entities: + - uid: 7936 + components: + - type: Transform + pos: 52.684002,-8.73487 + parent: 2 +- proto: FoodCakeSuppermatterSlice + entities: + - uid: 3056 + components: + - type: Transform + pos: 2.5111954,18.597483 + parent: 2 +- proto: FoodDonkpocketSpicy + entities: + - uid: 7843 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.464947,-14.490971 + parent: 2 +- proto: FoodDonutJellySlugcat + entities: + - uid: 7732 + components: + - type: Transform + pos: -5.5118904,13.610855 + parent: 2 +- proto: FoodPizzaMeatSlice + entities: + - uid: 8650 + components: + - type: Transform + pos: 53.50852,1.5409468 + parent: 2 +- proto: FoodPoppy + entities: + - uid: 2817 + components: + - type: Transform + pos: -51.71337,-28.369938 + parent: 2 + - uid: 3248 + components: + - type: Transform + pos: 1.4596637,-21.308285 + parent: 2 + - uid: 8649 + components: + - type: Transform + pos: 53.00676,1.6565981 + parent: 2 +- proto: FoodSnackNutribrick + entities: + - uid: 8047 + components: + - type: Transform + pos: -20.457546,6.9329686 + parent: 2 +- proto: ForensicPad + entities: + - uid: 2145 + components: + - type: Transform + pos: -13.291979,8.630609 + parent: 2 +- proto: GasAnalyzer + entities: + - uid: 1439 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.439137,-18.42445 + parent: 2 +- proto: GasCanisterBrokenBase + entities: + - uid: 8603 + components: + - type: Transform + pos: -34.5,-13.5 + parent: 2 +- proto: GasMinerNitrogenStation + entities: + - uid: 6099 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,38.5 + parent: 2 +- proto: GasMinerOxygenStation + entities: + - uid: 6098 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,35.5 + parent: 2 +- proto: GasMixer + entities: + - uid: 6104 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,38.5 + parent: 2 + - type: GasMixer + inletTwoConcentration: 0.20999998 + inletOneConcentration: 0.79 +- proto: GasPassiveVent + entities: + - uid: 3130 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,38.5 + parent: 2 + - uid: 3131 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,35.5 + parent: 2 + - uid: 6126 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,33.5 + parent: 2 +- proto: GasPipeBend + entities: + - uid: 6103 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,35.5 + parent: 2 + - uid: 6105 + components: + - type: Transform + pos: -4.5,38.5 + parent: 2 + - uid: 6119 + components: + - type: Transform + pos: -5.5,37.5 + parent: 2 + - uid: 6120 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,37.5 + parent: 2 + - uid: 6298 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6300 + components: + - type: Transform + pos: 2.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6303 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6321 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6323 + components: + - type: Transform + pos: 5.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6378 + components: + - type: Transform + pos: 42.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6404 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6418 + components: + - type: Transform + pos: 24.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6457 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6470 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 50.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6497 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6514 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6519 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6578 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6579 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6588 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6592 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6620 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6631 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6664 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6693 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -55.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6710 + components: + - type: Transform + pos: -52.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6733 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6743 + components: + - type: Transform + pos: -32.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6764 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6837 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6846 + components: + - type: Transform + pos: 9.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6896 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6907 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,-58.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6909 + components: + - type: Transform + pos: -1.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6911 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6912 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6913 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6945 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6946 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7007 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7015 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7032 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7045 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7058 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7077 + components: + - type: Transform + pos: 44.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7104 + components: + - type: Transform + pos: 52.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7126 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 58.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7141 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7194 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7201 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7207 + components: + - type: Transform + pos: -14.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7260 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7270 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7291 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -44.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7332 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -51.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7357 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7367 + components: + - type: Transform + pos: -34.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7380 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-36.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7388 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7392 + components: + - type: Transform + pos: -1.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7437 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7449 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7479 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-33.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7494 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,-33.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7533 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPipeFourway + entities: + - uid: 6333 + components: + - type: Transform + pos: 5.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6359 + components: + - type: Transform + pos: 21.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6398 + components: + - type: Transform + pos: 22.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6461 + components: + - type: Transform + pos: 50.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6541 + components: + - type: Transform + pos: -23.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6553 + components: + - type: Transform + pos: -23.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6694 + components: + - type: Transform + pos: -52.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6748 + components: + - type: Transform + pos: 0.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6785 + components: + - type: Transform + pos: -6.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6786 + components: + - type: Transform + pos: -10.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6953 + components: + - type: Transform + pos: -5.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7024 + components: + - type: Transform + pos: 24.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7170 + components: + - type: Transform + pos: -25.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7242 + components: + - type: Transform + pos: -25.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7403 + components: + - type: Transform + pos: -1.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7427 + components: + - type: Transform + pos: -8.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7428 + components: + - type: Transform + pos: -12.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7511 + components: + - type: Transform + pos: 8.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPipeStraight + entities: + - uid: 3132 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,35.5 + parent: 2 + - uid: 3133 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,38.5 + parent: 2 + - uid: 6101 + components: + - type: Transform + pos: -7.5,36.5 + parent: 2 + - uid: 6102 + components: + - type: Transform + pos: -7.5,37.5 + parent: 2 + - uid: 6107 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,38.5 + parent: 2 + - uid: 6108 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,38.5 + parent: 2 + - uid: 6109 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6110 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6111 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6112 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6113 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6114 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6115 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,31.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6116 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,32.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6117 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,33.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6118 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,34.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6122 + components: + - type: Transform + pos: -5.5,36.5 + parent: 2 + - uid: 6123 + components: + - type: Transform + pos: -6.5,36.5 + parent: 2 + - uid: 6124 + components: + - type: Transform + pos: -6.5,35.5 + parent: 2 + - uid: 6125 + components: + - type: Transform + pos: -6.5,34.5 + parent: 2 + - uid: 6271 + components: + - type: Transform + pos: -42.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6285 + components: + - type: Transform + pos: -4.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6286 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6287 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6288 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6289 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6290 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6291 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6292 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6293 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6294 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6295 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6296 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6297 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6302 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6304 + components: + - type: Transform + pos: 0.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6305 + components: + - type: Transform + pos: 0.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6306 + components: + - type: Transform + pos: 0.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6307 + components: + - type: Transform + pos: 0.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6308 + components: + - type: Transform + pos: 0.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6309 + components: + - type: Transform + pos: 0.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6310 + components: + - type: Transform + pos: 0.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6311 + components: + - type: Transform + pos: 0.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6312 + components: + - type: Transform + pos: 0.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6313 + components: + - type: Transform + pos: 0.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6314 + components: + - type: Transform + pos: 0.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6315 + components: + - type: Transform + pos: 0.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6316 + components: + - type: Transform + pos: 0.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6317 + components: + - type: Transform + pos: 0.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6318 + components: + - type: Transform + pos: 0.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6319 + components: + - type: Transform + pos: 0.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6324 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6325 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6326 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6327 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6328 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6329 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6330 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6331 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6332 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6334 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6335 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6336 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6337 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6338 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6339 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6340 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6341 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6342 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6343 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6344 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6345 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6346 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6347 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6348 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6349 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6350 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6351 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6352 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6353 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6354 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6356 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6358 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6360 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6361 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6362 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6363 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6364 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6365 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6366 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6367 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6368 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6369 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6370 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6371 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6372 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6373 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6374 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6375 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6376 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6377 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6379 + components: + - type: Transform + pos: 42.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6380 + components: + - type: Transform + pos: 42.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6381 + components: + - type: Transform + pos: 42.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6382 + components: + - type: Transform + pos: 42.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6383 + components: + - type: Transform + pos: 42.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6384 + components: + - type: Transform + pos: 42.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6385 + components: + - type: Transform + pos: 42.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6386 + components: + - type: Transform + pos: 42.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6387 + components: + - type: Transform + pos: 42.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6388 + components: + - type: Transform + pos: 42.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6389 + components: + - type: Transform + pos: 42.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6392 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6393 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6394 + components: + - type: Transform + pos: 22.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6395 + components: + - type: Transform + pos: 22.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6396 + components: + - type: Transform + pos: 22.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6397 + components: + - type: Transform + pos: 22.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6399 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6400 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6401 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6402 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6403 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6405 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6406 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6407 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6408 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6409 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6410 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6411 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6412 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6413 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6414 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6415 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6417 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6420 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6421 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6422 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6423 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6424 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6425 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6426 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6432 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6433 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6434 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6435 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6436 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6438 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6440 + components: + - type: Transform + pos: 21.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6442 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6443 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6444 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6445 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6446 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6447 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6448 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6449 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6450 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6451 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6452 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6453 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6454 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6456 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6462 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6463 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6464 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6465 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6467 + components: + - type: Transform + pos: 50.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6468 + components: + - type: Transform + pos: 50.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6469 + components: + - type: Transform + pos: 50.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6472 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6473 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 52.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6475 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6476 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6477 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6478 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6479 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6480 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6481 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6482 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6485 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 54.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6486 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 55.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6489 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 56.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6490 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6491 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6492 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6493 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6494 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6495 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6496 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6498 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6499 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6500 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6501 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6502 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6503 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6504 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6505 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6506 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6507 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6509 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6510 + components: + - type: Transform + pos: 5.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6511 + components: + - type: Transform + pos: 5.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6512 + components: + - type: Transform + pos: 5.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6513 + components: + - type: Transform + pos: 5.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6515 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6516 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6517 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6518 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6520 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6521 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6522 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6523 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6524 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6525 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6526 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6529 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6530 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6531 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6532 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6533 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6534 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6535 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6536 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6537 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6538 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6539 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6540 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6543 + components: + - type: Transform + pos: -23.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6544 + components: + - type: Transform + pos: -23.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6545 + components: + - type: Transform + pos: -23.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6546 + components: + - type: Transform + pos: -23.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6547 + components: + - type: Transform + pos: -23.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6548 + components: + - type: Transform + pos: -23.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6549 + components: + - type: Transform + pos: -23.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6550 + components: + - type: Transform + pos: -23.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6551 + components: + - type: Transform + pos: -23.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6555 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6556 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6557 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6558 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6559 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6560 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6562 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6563 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6564 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6565 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6567 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6568 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6569 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6570 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6571 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6573 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6574 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6575 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6576 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6580 + components: + - type: Transform + pos: -22.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6581 + components: + - type: Transform + pos: -22.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6582 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6583 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6584 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6585 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6586 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6587 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6590 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6591 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6594 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6595 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6596 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6597 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6598 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6600 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6601 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6602 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6603 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6604 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6607 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6608 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6609 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6610 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6611 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6612 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6615 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6616 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6617 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6618 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6619 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6623 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6624 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6625 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6626 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6627 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6628 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6629 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6630 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6634 + components: + - type: Transform + pos: -24.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6635 + components: + - type: Transform + pos: -24.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6636 + components: + - type: Transform + pos: -24.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6637 + components: + - type: Transform + pos: -24.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6641 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6642 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6643 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6644 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6645 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6646 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6647 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6648 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6649 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6650 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6651 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6652 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6653 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6654 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6655 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6656 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6657 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6658 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6659 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6660 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6661 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6662 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6663 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6665 + components: + - type: Transform + pos: -42.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6666 + components: + - type: Transform + pos: -42.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6667 + components: + - type: Transform + pos: -42.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6668 + components: + - type: Transform + pos: -42.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6669 + components: + - type: Transform + pos: -42.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6670 + components: + - type: Transform + pos: -42.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6671 + components: + - type: Transform + pos: -42.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6673 + components: + - type: Transform + pos: -42.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6675 + components: + - type: Transform + pos: -42.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6676 + components: + - type: Transform + pos: -42.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6677 + components: + - type: Transform + pos: -42.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6678 + components: + - type: Transform + pos: -42.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6679 + components: + - type: Transform + pos: -42.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6680 + components: + - type: Transform + pos: -42.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6681 + components: + - type: Transform + pos: -42.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6682 + components: + - type: Transform + pos: -42.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6683 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6684 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6685 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -46.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6686 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -47.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6687 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -48.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6688 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -49.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6689 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -50.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6690 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -51.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6695 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -53.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6696 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -54.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6697 + components: + - type: Transform + pos: -52.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6698 + components: + - type: Transform + pos: -52.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6699 + components: + - type: Transform + pos: -52.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6700 + components: + - type: Transform + pos: -52.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6702 + components: + - type: Transform + pos: -52.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6703 + components: + - type: Transform + pos: -52.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6704 + components: + - type: Transform + pos: -52.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6705 + components: + - type: Transform + pos: -52.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6706 + components: + - type: Transform + pos: -52.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6707 + components: + - type: Transform + pos: -52.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6708 + components: + - type: Transform + pos: -52.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6711 + components: + - type: Transform + pos: -52.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6712 + components: + - type: Transform + pos: -52.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6713 + components: + - type: Transform + pos: -52.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6714 + components: + - type: Transform + pos: -52.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6715 + components: + - type: Transform + pos: -52.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6716 + components: + - type: Transform + pos: -52.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6717 + components: + - type: Transform + pos: -52.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6718 + components: + - type: Transform + pos: -52.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6719 + components: + - type: Transform + pos: -52.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6720 + components: + - type: Transform + pos: -52.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6724 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -52.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6725 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -52.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6726 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -52.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6727 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -52.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6728 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -52.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6729 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -52.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6732 + components: + - type: Transform + pos: -42.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6734 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6735 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6736 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6737 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6738 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6739 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6740 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6741 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6742 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6744 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6745 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6746 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6750 + components: + - type: Transform + pos: 0.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6751 + components: + - type: Transform + pos: 0.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6752 + components: + - type: Transform + pos: 0.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6753 + components: + - type: Transform + pos: 0.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6754 + components: + - type: Transform + pos: 0.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6755 + components: + - type: Transform + pos: 0.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6756 + components: + - type: Transform + pos: 0.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6757 + components: + - type: Transform + pos: 0.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6758 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6759 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6760 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6761 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6762 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6763 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6771 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6773 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6774 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6775 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6776 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6777 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6778 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6779 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6780 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6781 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6782 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6783 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6784 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6789 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6790 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6791 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6792 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6793 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6794 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6795 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6796 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6797 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6798 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6799 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6800 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6801 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6802 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6803 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6804 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6805 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6806 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6807 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6808 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6809 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6810 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6811 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6812 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6813 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6814 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6815 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6816 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6817 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6818 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6820 + components: + - type: Transform + pos: 0.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6821 + components: + - type: Transform + pos: 0.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6822 + components: + - type: Transform + pos: 0.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6823 + components: + - type: Transform + pos: 0.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6824 + components: + - type: Transform + pos: 0.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6825 + components: + - type: Transform + pos: 0.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6826 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6828 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6829 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6830 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6831 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6832 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6833 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6834 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6835 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6839 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6840 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6841 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6842 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6843 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6844 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6845 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6848 + components: + - type: Transform + pos: 9.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6849 + components: + - type: Transform + pos: 9.5,-33.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6850 + components: + - type: Transform + pos: 9.5,-34.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6851 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6852 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6853 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6854 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6855 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6856 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6857 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-36.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6858 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6859 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-38.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6860 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-39.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6861 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6862 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6863 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6864 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6865 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-44.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6866 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6867 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6869 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6870 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-49.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6871 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-50.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6872 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-51.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6873 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6874 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-53.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6875 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6878 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6879 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6880 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6881 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6882 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6883 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6884 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6885 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6886 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6887 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6888 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6889 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6890 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6891 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6892 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6893 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6895 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6897 + components: + - type: Transform + pos: -9.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6898 + components: + - type: Transform + pos: -9.5,-49.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6899 + components: + - type: Transform + pos: -9.5,-50.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6900 + components: + - type: Transform + pos: -9.5,-51.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6901 + components: + - type: Transform + pos: -9.5,-52.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6902 + components: + - type: Transform + pos: -9.5,-53.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6903 + components: + - type: Transform + pos: -9.5,-54.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6904 + components: + - type: Transform + pos: -9.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6905 + components: + - type: Transform + pos: -9.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6906 + components: + - type: Transform + pos: -9.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6914 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,30.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6915 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,29.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6916 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,28.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6917 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,27.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6918 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,26.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6919 + components: + - type: Transform + pos: -7.5,25.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6920 + components: + - type: Transform + pos: -7.5,24.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6921 + components: + - type: Transform + pos: -7.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6922 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6923 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6924 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6925 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6927 + components: + - type: Transform + pos: -1.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6928 + components: + - type: Transform + pos: -1.5,20.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6929 + components: + - type: Transform + pos: -1.5,19.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6930 + components: + - type: Transform + pos: -1.5,18.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6931 + components: + - type: Transform + pos: -1.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6932 + components: + - type: Transform + pos: -1.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6933 + components: + - type: Transform + pos: -1.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6934 + components: + - type: Transform + pos: -1.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6935 + components: + - type: Transform + pos: -1.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6936 + components: + - type: Transform + pos: -1.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6937 + components: + - type: Transform + pos: -1.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6938 + components: + - type: Transform + pos: -1.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6939 + components: + - type: Transform + pos: -1.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6940 + components: + - type: Transform + pos: -1.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6941 + components: + - type: Transform + pos: -1.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6942 + components: + - type: Transform + pos: -1.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6943 + components: + - type: Transform + pos: -1.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6944 + components: + - type: Transform + pos: -1.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6947 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6948 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6949 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6950 + components: + - type: Transform + pos: -5.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6954 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6955 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6956 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6957 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6958 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6959 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6961 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6963 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6964 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6965 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6966 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6967 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6968 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6969 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6970 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6971 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6972 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6973 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6974 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6975 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6976 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6977 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6978 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6979 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6980 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6981 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6982 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6983 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6985 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6986 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6987 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6988 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6995 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6996 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6999 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7000 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7001 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7002 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7003 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7004 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7005 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7006 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7009 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7010 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7011 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7012 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7013 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7014 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7016 + components: + - type: Transform + pos: 18.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7017 + components: + - type: Transform + pos: 18.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7019 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7020 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7021 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7022 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7023 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7025 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7026 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7027 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7028 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7029 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7030 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7031 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7034 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7035 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7036 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7037 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7038 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7039 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7040 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7041 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7046 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7047 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7048 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7049 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7050 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7051 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7054 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7055 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7056 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7057 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7060 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7061 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7062 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7063 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7064 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7065 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7066 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7067 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7068 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7069 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7070 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7071 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7072 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7073 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7074 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7075 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7076 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7078 + components: + - type: Transform + pos: 44.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7079 + components: + - type: Transform + pos: 44.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7080 + components: + - type: Transform + pos: 44.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7081 + components: + - type: Transform + pos: 44.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7082 + components: + - type: Transform + pos: 44.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7083 + components: + - type: Transform + pos: 44.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7084 + components: + - type: Transform + pos: 44.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7088 + components: + - type: Transform + pos: 44.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7089 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 45.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7090 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7091 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7092 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7097 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7098 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7099 + components: + - type: Transform + pos: 52.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7100 + components: + - type: Transform + pos: 52.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7101 + components: + - type: Transform + pos: 52.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7102 + components: + - type: Transform + pos: 52.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7103 + components: + - type: Transform + pos: 52.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7105 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 51.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7107 + components: + - type: Transform + pos: 52.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7108 + components: + - type: Transform + pos: 52.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7109 + components: + - type: Transform + pos: 52.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7110 + components: + - type: Transform + pos: 52.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7111 + components: + - type: Transform + pos: 52.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7112 + components: + - type: Transform + pos: 52.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7113 + components: + - type: Transform + pos: 52.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7114 + components: + - type: Transform + pos: 52.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7116 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 53.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7117 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 54.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7118 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 55.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7119 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 56.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7120 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 57.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7123 + components: + - type: Transform + pos: 58.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7124 + components: + - type: Transform + pos: 58.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7125 + components: + - type: Transform + pos: 58.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7128 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7129 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7130 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7131 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7132 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7133 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7134 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7135 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7136 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7137 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7138 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7139 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7140 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7142 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7143 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7144 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7145 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7146 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7147 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7148 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7149 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7151 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7152 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7153 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7154 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7155 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7156 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7157 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7158 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7159 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7160 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7161 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7162 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7163 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7164 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7165 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7166 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7167 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7168 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7169 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7171 + components: + - type: Transform + pos: -25.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7172 + components: + - type: Transform + pos: -25.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7173 + components: + - type: Transform + pos: -25.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7174 + components: + - type: Transform + pos: -25.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7175 + components: + - type: Transform + pos: -25.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7176 + components: + - type: Transform + pos: -25.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7178 + components: + - type: Transform + pos: -25.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7179 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7180 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7181 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7182 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7188 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7189 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7190 + components: + - type: Transform + pos: -28.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7191 + components: + - type: Transform + pos: -28.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7192 + components: + - type: Transform + pos: -20.5,9.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7193 + components: + - type: Transform + pos: -20.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7195 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7196 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7197 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7198 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7199 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7200 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7203 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7204 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7205 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7206 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7209 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7210 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7211 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7212 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7213 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7215 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,12.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7216 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7217 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7218 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,15.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7220 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7221 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7224 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7225 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7226 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7227 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7228 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7229 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7230 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7231 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7232 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7235 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7236 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7238 + components: + - type: Transform + pos: -25.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7239 + components: + - type: Transform + pos: -25.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7243 + components: + - type: Transform + pos: -25.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7244 + components: + - type: Transform + pos: -25.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7245 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7246 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7247 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7248 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7250 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7251 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7252 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7253 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7254 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7255 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7256 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7257 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7258 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7259 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7262 + components: + - type: Transform + pos: -25.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7263 + components: + - type: Transform + pos: -25.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7266 + components: + - type: Transform + pos: -25.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7267 + components: + - type: Transform + pos: -25.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7268 + components: + - type: Transform + pos: -25.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7269 + components: + - type: Transform + pos: -25.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7271 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7273 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7274 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7275 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7276 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7277 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7278 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7279 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7280 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7281 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7282 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7283 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7284 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7285 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7286 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7287 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7288 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7289 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7290 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -43.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7292 + components: + - type: Transform + pos: -44.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7293 + components: + - type: Transform + pos: -44.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7294 + components: + - type: Transform + pos: -44.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7295 + components: + - type: Transform + pos: -44.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7296 + components: + - type: Transform + pos: -44.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7297 + components: + - type: Transform + pos: -44.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7298 + components: + - type: Transform + pos: -44.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7299 + components: + - type: Transform + pos: -44.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7300 + components: + - type: Transform + pos: -44.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7301 + components: + - type: Transform + pos: -44.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7302 + components: + - type: Transform + pos: -44.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7303 + components: + - type: Transform + pos: -44.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7304 + components: + - type: Transform + pos: -44.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7307 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7308 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -46.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7309 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -47.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7310 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -48.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7311 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -49.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7313 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7317 + components: + - type: Transform + pos: -51.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7318 + components: + - type: Transform + pos: -51.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7319 + components: + - type: Transform + pos: -51.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7320 + components: + - type: Transform + pos: -51.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7321 + components: + - type: Transform + pos: -51.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7322 + components: + - type: Transform + pos: -51.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7323 + components: + - type: Transform + pos: -51.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7324 + components: + - type: Transform + pos: -51.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7325 + components: + - type: Transform + pos: -51.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7326 + components: + - type: Transform + pos: -51.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7327 + components: + - type: Transform + pos: -51.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7330 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7331 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7334 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7335 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7336 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7337 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7338 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7339 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7340 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7341 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7344 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7345 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7346 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7347 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7348 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-27.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7350 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7351 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7352 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7353 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7354 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7355 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7356 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7358 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -43.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7359 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7360 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7361 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7362 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7363 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7364 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7365 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7366 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7368 + components: + - type: Transform + pos: -34.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7369 + components: + - type: Transform + pos: -34.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7370 + components: + - type: Transform + pos: -34.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7371 + components: + - type: Transform + pos: -34.5,-27.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7372 + components: + - type: Transform + pos: -34.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7373 + components: + - type: Transform + pos: -34.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7374 + components: + - type: Transform + pos: -34.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7375 + components: + - type: Transform + pos: -34.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7376 + components: + - type: Transform + pos: -34.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7377 + components: + - type: Transform + pos: -34.5,-33.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7378 + components: + - type: Transform + pos: -34.5,-34.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7379 + components: + - type: Transform + pos: -34.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7382 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7383 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7384 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7385 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7386 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7387 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7389 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7390 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7391 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7393 + components: + - type: Transform + pos: -1.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7394 + components: + - type: Transform + pos: -1.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7395 + components: + - type: Transform + pos: -1.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7396 + components: + - type: Transform + pos: -1.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7397 + components: + - type: Transform + pos: -1.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7398 + components: + - type: Transform + pos: -1.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7399 + components: + - type: Transform + pos: -1.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7400 + components: + - type: Transform + pos: -1.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7401 + components: + - type: Transform + pos: -1.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7402 + components: + - type: Transform + pos: -1.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7406 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7407 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7408 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7409 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7410 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7411 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7412 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7413 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7414 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7415 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7416 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7417 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7418 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7419 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7421 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7422 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7423 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7424 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7425 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7426 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7432 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7433 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7434 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7435 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7436 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7438 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7439 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7440 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7441 + components: + - type: Transform + pos: -8.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7442 + components: + - type: Transform + pos: -8.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7443 + components: + - type: Transform + pos: -8.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7444 + components: + - type: Transform + pos: -8.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7445 + components: + - type: Transform + pos: -12.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7446 + components: + - type: Transform + pos: -12.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7447 + components: + - type: Transform + pos: -12.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7448 + components: + - type: Transform + pos: -12.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7450 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7451 + components: + - type: Transform + pos: -14.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7452 + components: + - type: Transform + pos: -14.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7453 + components: + - type: Transform + pos: -14.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7454 + components: + - type: Transform + pos: -14.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7455 + components: + - type: Transform + pos: -14.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7456 + components: + - type: Transform + pos: -14.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7463 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7464 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7465 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7466 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7467 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7468 + components: + - type: Transform + pos: -1.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7470 + components: + - type: Transform + pos: -1.5,-24.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7471 + components: + - type: Transform + pos: -1.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7472 + components: + - type: Transform + pos: -1.5,-26.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7473 + components: + - type: Transform + pos: -1.5,-27.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7474 + components: + - type: Transform + pos: -1.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7475 + components: + - type: Transform + pos: -1.5,-29.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7476 + components: + - type: Transform + pos: -1.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7477 + components: + - type: Transform + pos: -1.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7480 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-33.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7481 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-33.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7482 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-33.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7483 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-33.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7484 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-33.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7485 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-33.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7486 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-33.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7487 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-33.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7488 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-33.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7490 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-33.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7491 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-33.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7492 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-33.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7493 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-33.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7496 + components: + - type: Transform + pos: 13.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7498 + components: + - type: Transform + pos: 13.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7499 + components: + - type: Transform + pos: 8.5,-34.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7500 + components: + - type: Transform + pos: 8.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7501 + components: + - type: Transform + pos: 8.5,-36.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7502 + components: + - type: Transform + pos: 8.5,-37.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7503 + components: + - type: Transform + pos: 8.5,-38.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7504 + components: + - type: Transform + pos: 8.5,-39.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7505 + components: + - type: Transform + pos: 8.5,-40.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7506 + components: + - type: Transform + pos: 8.5,-41.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7507 + components: + - type: Transform + pos: 8.5,-42.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7508 + components: + - type: Transform + pos: 8.5,-43.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7509 + components: + - type: Transform + pos: 8.5,-44.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7512 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7514 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7515 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7516 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7517 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7518 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7519 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7520 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7521 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7522 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7523 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7524 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7525 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7526 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7527 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7528 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7529 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7530 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7531 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7532 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7534 + components: + - type: Transform + pos: -11.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7535 + components: + - type: Transform + pos: -11.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7536 + components: + - type: Transform + pos: -11.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7537 + components: + - type: Transform + pos: -11.5,-49.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7538 + components: + - type: Transform + pos: -11.5,-50.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7539 + components: + - type: Transform + pos: -11.5,-51.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7540 + components: + - type: Transform + pos: -11.5,-52.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7541 + components: + - type: Transform + pos: -11.5,-53.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7542 + components: + - type: Transform + pos: -11.5,-54.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7544 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-46.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7545 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7546 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-48.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7547 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-49.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7548 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-50.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7549 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-51.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7550 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-52.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7551 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-53.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7552 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-54.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7553 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7554 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-56.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7555 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7556 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-58.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7557 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-59.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7558 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-60.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7559 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-61.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7560 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-62.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7561 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-63.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPipeTJunction + entities: + - uid: 777 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,-47.5 + parent: 2 + - uid: 1187 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-47.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 2623 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6299 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6322 + components: + - type: Transform + pos: 1.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6355 + components: + - type: Transform + pos: 22.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6390 + components: + - type: Transform + pos: 45.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6391 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6416 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6419 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6437 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6439 + components: + - type: Transform + pos: 21.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6455 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6474 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6484 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 56.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6527 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6542 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6554 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6577 + components: + - type: Transform + pos: -23.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6593 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6605 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6614 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6622 + components: + - type: Transform + pos: -24.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6633 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6638 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6672 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6701 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -52.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6721 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -52.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6749 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6787 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6788 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6836 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-31.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6847 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6910 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,22.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6952 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6962 + components: + - type: Transform + pos: 2.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6989 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6990 + components: + - type: Transform + pos: 24.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6991 + components: + - type: Transform + pos: 26.5,0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6992 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6993 + components: + - type: Transform + pos: 25.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6997 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7043 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7052 + components: + - type: Transform + pos: 29.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7085 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7087 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7093 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 49.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7095 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 52.5,-9.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7096 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 52.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7121 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 58.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7177 + components: + - type: Transform + pos: -25.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7183 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7184 + components: + - type: Transform + pos: -19.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7186 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7187 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7222 + components: + - type: Transform + pos: -31.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7234 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7240 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7264 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7305 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -44.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7306 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7314 + components: + - type: Transform + pos: -50.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7316 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -51.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7328 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -51.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7342 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -51.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7404 + components: + - type: Transform + pos: -0.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7429 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7430 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7478 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7489 + components: + - type: Transform + pos: 8.5,-33.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasVentPump + entities: + - uid: 6179 + components: + - type: Transform + pos: 32.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6278 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6301 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6320 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6357 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6427 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,-6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6428 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6429 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6430 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6431 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,-13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6441 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6458 + components: + - type: Transform + pos: 34.5,8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6459 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6460 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6466 + components: + - type: Transform + pos: 50.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6471 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6483 + components: + - type: Transform + pos: 53.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6487 + components: + - type: Transform + pos: 56.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6488 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 56.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6508 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6528 + components: + - type: Transform + pos: -1.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6552 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6561 + components: + - type: Transform + pos: -30.5,6.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6566 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6572 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6589 + components: + - type: Transform + pos: -15.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6599 + components: + - type: Transform + pos: -26.5,17.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6606 + components: + - type: Transform + pos: -32.5,14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6613 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,13.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6621 + components: + - type: Transform + pos: -17.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6632 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6639 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6640 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6692 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -55.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6709 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -53.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6722 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -53.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6723 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -52.5,-27.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6730 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -53.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6747 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-25.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6765 + components: + - type: Transform + pos: 7.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6766 + components: + - type: Transform + pos: -10.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6767 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6768 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6769 + components: + - type: Transform + pos: -16.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6770 + components: + - type: Transform + pos: -6.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6772 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6819 + components: + - type: Transform + pos: -15.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6827 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6838 + components: + - type: Transform + pos: 1.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6876 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,-35.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6877 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-57.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6908 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-58.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 7510 + components: + - type: Transform + pos: -7.5,-46.5 + parent: 2 + - uid: 8101 + components: + - type: Transform + pos: -43.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' +- proto: GasVentScrubber + entities: + - uid: 6926 + components: + - type: Transform + pos: -3.5,23.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6951 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6960 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6984 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6994 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,5.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6998 + components: + - type: Transform + pos: 28.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7008 + components: + - type: Transform + pos: 37.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7018 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7033 + components: + - type: Transform + pos: 30.5,-4.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7042 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7044 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7053 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7059 + components: + - type: Transform + pos: 34.5,-10.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7086 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7094 + components: + - type: Transform + pos: 49.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7106 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,-3.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7115 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 52.5,-19.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7122 + components: + - type: Transform + pos: 58.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7127 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 59.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7150 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,-23.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7185 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7202 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7208 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,7.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7214 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7219 + components: + - type: Transform + pos: -28.5,16.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7223 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,10.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7233 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -41.5,11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7237 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-2.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7241 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-5.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7249 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-8.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7261 + components: + - type: Transform + pos: -14.5,-7.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7265 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7272 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7312 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,-15.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7315 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -50.5,-14.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7329 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -50.5,-1.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7333 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -50.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7343 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -50.5,-22.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7349 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-28.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7381 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,-36.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7405 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-18.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7420 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,-17.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7431 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-16.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7457 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-21.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7458 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7459 + components: + - type: Transform + pos: -8.5,-11.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7460 + components: + - type: Transform + pos: -14.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7461 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-12.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7462 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-20.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7495 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-32.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7497 + components: + - type: Transform + pos: 13.5,-30.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7513 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-45.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7543 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-55.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7562 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-64.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasVolumePump + entities: + - uid: 6106 + components: + - type: Transform + pos: -4.5,37.5 + parent: 2 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6121 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,35.5 + parent: 2 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GlowstickBase + entities: + - uid: 7938 + components: + - type: Transform + pos: 47.39579,-16.473925 + parent: 2 +- proto: GlowstickRed + entities: + - uid: 7845 + components: + - type: Transform + pos: 31.530577,-4.1122193 + parent: 2 +- proto: GravityGenerator + entities: + - uid: 7761 + components: + - type: Transform + pos: 3.5,37.5 + parent: 2 +- proto: Grille + entities: + - uid: 26 + components: + - type: Transform + pos: 8.5,-14.5 + parent: 2 + - uid: 27 + components: + - type: Transform + pos: 8.5,-13.5 + parent: 2 + - uid: 28 + components: + - type: Transform + pos: 3.5,-16.5 + parent: 2 + - uid: 29 + components: + - type: Transform + pos: 8.5,-12.5 + parent: 2 + - uid: 38 + components: + - type: Transform + pos: 12.5,-11.5 + parent: 2 + - uid: 47 + components: + - type: Transform + pos: 8.5,-18.5 + parent: 2 + - uid: 48 + components: + - type: Transform + pos: 8.5,-21.5 + parent: 2 + - uid: 58 + components: + - type: Transform + pos: 8.5,-19.5 + parent: 2 + - uid: 68 + components: + - type: Transform + pos: 1.5,-19.5 + parent: 2 + - uid: 69 + components: + - type: Transform + pos: 2.5,-18.5 + parent: 2 + - uid: 77 + components: + - type: Transform + pos: 12.5,-20.5 + parent: 2 + - uid: 82 + components: + - type: Transform + pos: 12.5,-19.5 + parent: 2 + - uid: 83 + components: + - type: Transform + pos: 12.5,-18.5 + parent: 2 + - uid: 107 + components: + - type: Transform + pos: 8.5,-11.5 + parent: 2 + - uid: 111 + components: + - type: Transform + pos: 6.5,-7.5 + parent: 2 + - uid: 112 + components: + - type: Transform + pos: 5.5,-7.5 + parent: 2 + - uid: 122 + components: + - type: Transform + pos: -7.5,-6.5 + parent: 2 + - uid: 142 + components: + - type: Transform + pos: 12.5,-21.5 + parent: 2 + - uid: 160 + components: + - type: Transform + pos: 8.5,-20.5 + parent: 2 + - uid: 175 + components: + - type: Transform + pos: 12.5,-13.5 + parent: 2 + - uid: 177 + components: + - type: Transform + pos: 12.5,-14.5 + parent: 2 + - uid: 179 + components: + - type: Transform + pos: 12.5,-12.5 + parent: 2 + - uid: 182 + components: + - type: Transform + pos: 1.5,-18.5 + parent: 2 + - uid: 183 + components: + - type: Transform + pos: 2.5,-14.5 + parent: 2 + - uid: 185 + components: + - type: Transform + pos: 1.5,-14.5 + parent: 2 + - uid: 193 + components: + - type: Transform + pos: -3.5,-20.5 + parent: 2 + - uid: 194 + components: + - type: Transform + pos: -4.5,-20.5 + parent: 2 + - uid: 221 + components: + - type: Transform + pos: 2.5,-20.5 + parent: 2 + - uid: 228 + components: + - type: Transform + pos: 3.5,-20.5 + parent: 2 + - uid: 262 + components: + - type: Transform + pos: -17.5,-17.5 + parent: 2 + - uid: 263 + components: + - type: Transform + pos: -17.5,-16.5 + parent: 2 + - uid: 264 + components: + - type: Transform + pos: -17.5,-15.5 + parent: 2 + - uid: 273 + components: + - type: Transform + pos: -14.5,-23.5 + parent: 2 + - uid: 275 + components: + - type: Transform + pos: -7.5,-23.5 + parent: 2 + - uid: 323 + components: + - type: Transform + pos: -3.5,-18.5 + parent: 2 + - uid: 324 + components: + - type: Transform + pos: -2.5,-18.5 + parent: 2 + - uid: 325 + components: + - type: Transform + pos: -2.5,-19.5 + parent: 2 + - uid: 326 + components: + - type: Transform + pos: -3.5,-14.5 + parent: 2 + - uid: 327 + components: + - type: Transform + pos: -2.5,-14.5 + parent: 2 + - uid: 347 + components: + - type: Transform + pos: 16.5,-17.5 + parent: 2 + - uid: 348 + components: + - type: Transform + pos: 16.5,-16.5 + parent: 2 + - uid: 349 + components: + - type: Transform + pos: 16.5,-15.5 + parent: 2 + - uid: 431 + components: + - type: Transform + pos: 6.5,-6.5 + parent: 2 + - uid: 433 + components: + - type: Transform + pos: -8.5,-23.5 + parent: 2 + - uid: 435 + components: + - type: Transform + pos: 7.5,-6.5 + parent: 2 + - uid: 446 + components: + - type: Transform + pos: -6.5,-7.5 + parent: 2 + - uid: 447 + components: + - type: Transform + pos: 7.5,-5.5 + parent: 2 + - uid: 448 + components: + - type: Transform + pos: -3.5,-7.5 + parent: 2 + - uid: 472 + components: + - type: Transform + pos: -2.5,-12.5 + parent: 2 + - uid: 530 + components: + - type: Transform + pos: -2.5,-28.5 + parent: 2 + - uid: 533 + components: + - type: Transform + pos: -2.5,-27.5 + parent: 2 + - uid: 534 + components: + - type: Transform + pos: -2.5,-26.5 + parent: 2 + - uid: 559 + components: + - type: Transform + pos: -15.5,-23.5 + parent: 2 + - uid: 560 + components: + - type: Transform + pos: -12.5,-23.5 + parent: 2 + - uid: 561 + components: + - type: Transform + pos: -11.5,-23.5 + parent: 2 + - uid: 562 + components: + - type: Transform + pos: -10.5,-23.5 + parent: 2 + - uid: 568 + components: + - type: Transform + pos: -5.5,-48.5 + parent: 2 + - uid: 569 + components: + - type: Transform + pos: 4.5,-48.5 + parent: 2 + - uid: 590 + components: + - type: Transform + pos: -13.5,-53.5 + parent: 2 + - uid: 592 + components: + - type: Transform + pos: 13.5,-60.5 + parent: 2 + - uid: 593 + components: + - type: Transform + pos: -6.5,-62.5 + parent: 2 + - uid: 594 + components: + - type: Transform + pos: -6.5,-61.5 + parent: 2 + - uid: 595 + components: + - type: Transform + pos: -6.5,-60.5 + parent: 2 + - uid: 596 + components: + - type: Transform + pos: -6.5,-59.5 + parent: 2 + - uid: 597 + components: + - type: Transform + pos: -7.5,-55.5 + parent: 2 + - uid: 598 + components: + - type: Transform + pos: -7.5,-54.5 + parent: 2 + - uid: 599 + components: + - type: Transform + pos: -7.5,-53.5 + parent: 2 + - uid: 600 + components: + - type: Transform + pos: 3.5,-48.5 + parent: 2 + - uid: 601 + components: + - type: Transform + pos: -4.5,-49.5 + parent: 2 + - uid: 602 + components: + - type: Transform + pos: -3.5,-49.5 + parent: 2 + - uid: 603 + components: + - type: Transform + pos: 2.5,-49.5 + parent: 2 + - uid: 604 + components: + - type: Transform + pos: 3.5,-49.5 + parent: 2 + - uid: 605 + components: + - type: Transform + pos: -4.5,-48.5 + parent: 2 + - uid: 606 + components: + - type: Transform + pos: 6.5,-53.5 + parent: 2 + - uid: 607 + components: + - type: Transform + pos: 6.5,-54.5 + parent: 2 + - uid: 608 + components: + - type: Transform + pos: 6.5,-55.5 + parent: 2 + - uid: 609 + components: + - type: Transform + pos: 13.5,-59.5 + parent: 2 + - uid: 614 + components: + - type: Transform + pos: 7.5,-67.5 + parent: 2 + - uid: 615 + components: + - type: Transform + pos: 6.5,-67.5 + parent: 2 + - uid: 616 + components: + - type: Transform + pos: 6.5,-66.5 + parent: 2 + - uid: 617 + components: + - type: Transform + pos: 5.5,-62.5 + parent: 2 + - uid: 618 + components: + - type: Transform + pos: 5.5,-61.5 + parent: 2 + - uid: 619 + components: + - type: Transform + pos: 5.5,-60.5 + parent: 2 + - uid: 620 + components: + - type: Transform + pos: 5.5,-59.5 + parent: 2 + - uid: 632 + components: + - type: Transform + pos: 3.5,-44.5 + parent: 2 + - uid: 633 + components: + - type: Transform + pos: 4.5,-44.5 + parent: 2 + - uid: 636 + components: + - type: Transform + pos: 12.5,-49.5 + parent: 2 + - uid: 637 + components: + - type: Transform + pos: 12.5,-48.5 + parent: 2 + - uid: 675 + components: + - type: Transform + pos: -13.5,-54.5 + parent: 2 + - uid: 688 + components: + - type: Transform + pos: -7.5,-7.5 + parent: 2 + - uid: 702 + components: + - type: Transform + pos: 12.5,-53.5 + parent: 2 + - uid: 703 + components: + - type: Transform + pos: 12.5,-54.5 + parent: 2 + - uid: 704 + components: + - type: Transform + pos: 12.5,-55.5 + parent: 2 + - uid: 710 + components: + - type: Transform + pos: 12.5,-47.5 + parent: 2 + - uid: 715 + components: + - type: Transform + pos: 5.5,-44.5 + parent: 2 + - uid: 721 + components: + - type: Transform + pos: -13.5,-48.5 + parent: 2 + - uid: 734 + components: + - type: Transform + pos: -9.5,-68.5 + parent: 2 + - uid: 735 + components: + - type: Transform + pos: -8.5,-68.5 + parent: 2 + - uid: 736 + components: + - type: Transform + pos: -11.5,-68.5 + parent: 2 + - uid: 737 + components: + - type: Transform + pos: -8.5,-67.5 + parent: 2 + - uid: 738 + components: + - type: Transform + pos: -12.5,-68.5 + parent: 2 + - uid: 739 + components: + - type: Transform + pos: -14.5,-62.5 + parent: 2 + - uid: 740 + components: + - type: Transform + pos: -13.5,-66.5 + parent: 2 + - uid: 741 + components: + - type: Transform + pos: -13.5,-67.5 + parent: 2 + - uid: 742 + components: + - type: Transform + pos: -12.5,-67.5 + parent: 2 + - uid: 743 + components: + - type: Transform + pos: -14.5,-61.5 + parent: 2 + - uid: 744 + components: + - type: Transform + pos: -14.5,-60.5 + parent: 2 + - uid: 745 + components: + - type: Transform + pos: -13.5,-55.5 + parent: 2 + - uid: 746 + components: + - type: Transform + pos: -14.5,-59.5 + parent: 2 + - uid: 759 + components: + - type: Transform + pos: 13.5,-62.5 + parent: 2 + - uid: 760 + components: + - type: Transform + pos: 13.5,-61.5 + parent: 2 + - uid: 774 + components: + - type: Transform + pos: -7.5,-67.5 + parent: 2 + - uid: 775 + components: + - type: Transform + pos: -7.5,-66.5 + parent: 2 + - uid: 784 + components: + - type: Transform + pos: -13.5,-47.5 + parent: 2 + - uid: 786 + components: + - type: Transform + pos: -13.5,-49.5 + parent: 2 + - uid: 791 + components: + - type: Transform + pos: -5.5,-44.5 + parent: 2 + - uid: 792 + components: + - type: Transform + pos: -4.5,-44.5 + parent: 2 + - uid: 793 + components: + - type: Transform + pos: -6.5,-44.5 + parent: 2 + - uid: 798 + components: + - type: Transform + pos: 5.5,-40.5 + parent: 2 + - uid: 810 + components: + - type: Transform + pos: 7.5,-68.5 + parent: 2 + - uid: 811 + components: + - type: Transform + pos: 8.5,-68.5 + parent: 2 + - uid: 812 + components: + - type: Transform + pos: 10.5,-68.5 + parent: 2 + - uid: 813 + components: + - type: Transform + pos: 11.5,-68.5 + parent: 2 + - uid: 814 + components: + - type: Transform + pos: 11.5,-67.5 + parent: 2 + - uid: 815 + components: + - type: Transform + pos: 12.5,-67.5 + parent: 2 + - uid: 816 + components: + - type: Transform + pos: 12.5,-66.5 + parent: 2 + - uid: 832 + components: + - type: Transform + pos: -1.5,-42.5 + parent: 2 + - uid: 833 + components: + - type: Transform + pos: -0.5,-42.5 + parent: 2 + - uid: 834 + components: + - type: Transform + pos: 0.5,-42.5 + parent: 2 + - uid: 835 + components: + - type: Transform + pos: 5.5,-39.5 + parent: 2 + - uid: 836 + components: + - type: Transform + pos: 5.5,-38.5 + parent: 2 + - uid: 837 + components: + - type: Transform + pos: -0.5,-36.5 + parent: 2 + - uid: 838 + components: + - type: Transform + pos: 0.5,-36.5 + parent: 2 + - uid: 839 + components: + - type: Transform + pos: -1.5,-36.5 + parent: 2 + - uid: 840 + components: + - type: Transform + pos: -6.5,-38.5 + parent: 2 + - uid: 841 + components: + - type: Transform + pos: -6.5,-39.5 + parent: 2 + - uid: 842 + components: + - type: Transform + pos: -6.5,-40.5 + parent: 2 + - uid: 855 + components: + - type: Transform + pos: 1.5,-12.5 + parent: 2 + - uid: 870 + components: + - type: Transform + pos: 17.5,-39.5 + parent: 2 + - uid: 871 + components: + - type: Transform + pos: 19.5,-39.5 + parent: 2 + - uid: 914 + components: + - type: Transform + pos: -18.5,-39.5 + parent: 2 + - uid: 915 + components: + - type: Transform + pos: -20.5,-39.5 + parent: 2 + - uid: 929 + components: + - type: Transform + pos: 23.5,-12.5 + parent: 2 + - uid: 930 + components: + - type: Transform + pos: 19.5,-5.5 + parent: 2 + - uid: 931 + components: + - type: Transform + pos: 25.5,-10.5 + parent: 2 + - uid: 932 + components: + - type: Transform + pos: 23.5,-11.5 + parent: 2 + - uid: 933 + components: + - type: Transform + pos: 27.5,-6.5 + parent: 2 + - uid: 934 + components: + - type: Transform + pos: 22.5,-4.5 + parent: 2 + - uid: 935 + components: + - type: Transform + pos: 24.5,-4.5 + parent: 2 + - uid: 976 + components: + - type: Transform + pos: 18.5,-12.5 + parent: 2 + - uid: 980 + components: + - type: Transform + pos: 19.5,-6.5 + parent: 2 + - uid: 1026 + components: + - type: Transform + pos: 18.5,-11.5 + parent: 2 + - uid: 1028 + components: + - type: Transform + pos: 23.5,-13.5 + parent: 2 + - uid: 1032 + components: + - type: Transform + pos: 27.5,-5.5 + parent: 2 + - uid: 1044 + components: + - type: Transform + pos: 26.5,-10.5 + parent: 2 + - uid: 1126 + components: + - type: Transform + pos: 25.5,3.5 + parent: 2 + - uid: 1129 + components: + - type: Transform + pos: 21.5,3.5 + parent: 2 + - uid: 1144 + components: + - type: Transform + pos: 14.5,-37.5 + parent: 2 + - uid: 1145 + components: + - type: Transform + pos: 13.5,-37.5 + parent: 2 + - uid: 1148 + components: + - type: Transform + pos: 19.5,6.5 + parent: 2 + - uid: 1149 + components: + - type: Transform + pos: 19.5,7.5 + parent: 2 + - uid: 1153 + components: + - type: Transform + pos: 19.5,8.5 + parent: 2 + - uid: 1172 + components: + - type: Transform + pos: 15.5,-37.5 + parent: 2 + - uid: 1193 + components: + - type: Transform + pos: 27.5,6.5 + parent: 2 + - uid: 1194 + components: + - type: Transform + pos: 27.5,7.5 + parent: 2 + - uid: 1245 + components: + - type: Transform + pos: 35.5,10.5 + parent: 2 + - uid: 1246 + components: + - type: Transform + pos: 36.5,10.5 + parent: 2 + - uid: 1247 + components: + - type: Transform + pos: 37.5,10.5 + parent: 2 + - uid: 1248 + components: + - type: Transform + pos: 37.5,9.5 + parent: 2 + - uid: 1249 + components: + - type: Transform + pos: 38.5,9.5 + parent: 2 + - uid: 1307 + components: + - type: Transform + pos: 47.5,-14.5 + parent: 2 + - uid: 1312 + components: + - type: Transform + pos: 47.5,-13.5 + parent: 2 + - uid: 1314 + components: + - type: Transform + pos: 47.5,-8.5 + parent: 2 + - uid: 1319 + components: + - type: Transform + pos: 47.5,-9.5 + parent: 2 + - uid: 1356 + components: + - type: Transform + pos: 44.5,-24.5 + parent: 2 + - uid: 1396 + components: + - type: Transform + pos: 52.5,-15.5 + parent: 2 + - uid: 1397 + components: + - type: Transform + pos: 53.5,-15.5 + parent: 2 + - uid: 1398 + components: + - type: Transform + pos: 52.5,-7.5 + parent: 2 + - uid: 1399 + components: + - type: Transform + pos: 53.5,-7.5 + parent: 2 + - uid: 1404 + components: + - type: Transform + pos: 54.5,-13.5 + parent: 2 + - uid: 1405 + components: + - type: Transform + pos: 54.5,-12.5 + parent: 2 + - uid: 1406 + components: + - type: Transform + pos: 54.5,-11.5 + parent: 2 + - uid: 1485 + components: + - type: Transform + pos: 61.5,-15.5 + parent: 2 + - uid: 1486 + components: + - type: Transform + pos: 61.5,-14.5 + parent: 2 + - uid: 1508 + components: + - type: Transform + pos: 42.5,-24.5 + parent: 2 + - uid: 1513 + components: + - type: Transform + pos: 60.5,-12.5 + parent: 2 + - uid: 1514 + components: + - type: Transform + pos: 60.5,-11.5 + parent: 2 + - uid: 1515 + components: + - type: Transform + pos: 60.5,-10.5 + parent: 2 + - uid: 1543 + components: + - type: Transform + pos: 45.5,-23.5 + parent: 2 + - uid: 1563 + components: + - type: Transform + pos: 45.5,-21.5 + parent: 2 + - uid: 1564 + components: + - type: Transform + pos: 34.5,-37.5 + parent: 2 + - uid: 1565 + components: + - type: Transform + pos: 34.5,-36.5 + parent: 2 + - uid: 1574 + components: + - type: Transform + pos: 15.5,9.5 + parent: 2 + - uid: 1637 + components: + - type: Transform + pos: 16.5,9.5 + parent: 2 + - uid: 1639 + components: + - type: Transform + pos: 17.5,9.5 + parent: 2 + - uid: 1663 + components: + - type: Transform + pos: -2.5,2.5 + parent: 2 + - uid: 1664 + components: + - type: Transform + pos: -1.5,2.5 + parent: 2 + - uid: 1665 + components: + - type: Transform + pos: -0.5,2.5 + parent: 2 + - uid: 1666 + components: + - type: Transform + pos: 0.5,2.5 + parent: 2 + - uid: 1667 + components: + - type: Transform + pos: 1.5,2.5 + parent: 2 + - uid: 1668 + components: + - type: Transform + pos: 3.5,0.5 + parent: 2 + - uid: 1669 + components: + - type: Transform + pos: 3.5,-1.5 + parent: 2 + - uid: 1670 + components: + - type: Transform + pos: -4.5,-1.5 + parent: 2 + - uid: 1671 + components: + - type: Transform + pos: -4.5,0.5 + parent: 2 + - uid: 1672 + components: + - type: Transform + pos: -2.5,-3.5 + parent: 2 + - uid: 1673 + components: + - type: Transform + pos: -1.5,-3.5 + parent: 2 + - uid: 1674 + components: + - type: Transform + pos: -0.5,-3.5 + parent: 2 + - uid: 1675 + components: + - type: Transform + pos: 0.5,-3.5 + parent: 2 + - uid: 1676 + components: + - type: Transform + pos: 1.5,-3.5 + parent: 2 + - uid: 1694 + components: + - type: Transform + pos: 2.5,-7.5 + parent: 2 + - uid: 1695 + components: + - type: Transform + pos: 7.5,-3.5 + parent: 2 + - uid: 1701 + components: + - type: Transform + pos: -8.5,-6.5 + parent: 2 + - uid: 1702 + components: + - type: Transform + pos: -8.5,-5.5 + parent: 2 + - uid: 1708 + components: + - type: Transform + pos: 4.5,6.5 + parent: 2 + - uid: 1711 + components: + - type: Transform + pos: 7.5,2.5 + parent: 2 + - uid: 1714 + components: + - type: Transform + pos: -8.5,3.5 + parent: 2 + - uid: 1717 + components: + - type: Transform + pos: -8.5,4.5 + parent: 2 + - uid: 1718 + components: + - type: Transform + pos: -8.5,2.5 + parent: 2 + - uid: 1719 + components: + - type: Transform + pos: -8.5,-3.5 + parent: 2 + - uid: 1732 + components: + - type: Transform + pos: 3.5,6.5 + parent: 2 + - uid: 1734 + components: + - type: Transform + pos: 7.5,3.5 + parent: 2 + - uid: 1736 + components: + - type: Transform + pos: -4.5,6.5 + parent: 2 + - uid: 1737 + components: + - type: Transform + pos: -5.5,6.5 + parent: 2 + - uid: 1752 + components: + - type: Transform + pos: 7.5,4.5 + parent: 2 + - uid: 1828 + components: + - type: Transform + pos: -0.5,-11.5 + parent: 2 + - uid: 1829 + components: + - type: Transform + pos: -0.5,-9.5 + parent: 2 + - uid: 1830 + components: + - type: Transform + pos: -12.5,-0.5 + parent: 2 + - uid: 1831 + components: + - type: Transform + pos: -10.5,-0.5 + parent: 2 + - uid: 1832 + components: + - type: Transform + pos: -0.5,8.5 + parent: 2 + - uid: 1833 + components: + - type: Transform + pos: -0.5,10.5 + parent: 2 + - uid: 1834 + components: + - type: Transform + pos: 9.5,-0.5 + parent: 2 + - uid: 1835 + components: + - type: Transform + pos: 11.5,-0.5 + parent: 2 + - uid: 1854 + components: + - type: Transform + pos: -20.5,-2.5 + parent: 2 + - uid: 1855 + components: + - type: Transform + pos: -20.5,-3.5 + parent: 2 + - uid: 1856 + components: + - type: Transform + pos: -19.5,-2.5 + parent: 2 + - uid: 1892 + components: + - type: Transform + pos: -19.5,-7.5 + parent: 2 + - uid: 1893 + components: + - type: Transform + pos: -19.5,-8.5 + parent: 2 + - uid: 1896 + components: + - type: Transform + pos: -29.5,-8.5 + parent: 2 + - uid: 1897 + components: + - type: Transform + pos: -29.5,-7.5 + parent: 2 + - uid: 1898 + components: + - type: Transform + pos: -26.5,-10.5 + parent: 2 + - uid: 1899 + components: + - type: Transform + pos: -25.5,-10.5 + parent: 2 + - uid: 1900 + components: + - type: Transform + pos: -24.5,-10.5 + parent: 2 + - uid: 1914 + components: + - type: Transform + pos: 34.5,-35.5 + parent: 2 + - uid: 2041 + components: + - type: Transform + pos: -29.5,-2.5 + parent: 2 + - uid: 2042 + components: + - type: Transform + pos: -28.5,-2.5 + parent: 2 + - uid: 2043 + components: + - type: Transform + pos: -28.5,-3.5 + parent: 2 + - uid: 2044 + components: + - type: Transform + pos: -23.5,-4.5 + parent: 2 + - uid: 2045 + components: + - type: Transform + pos: -25.5,-4.5 + parent: 2 + - uid: 2115 + components: + - type: Transform + pos: -38.5,4.5 + parent: 2 + - uid: 2116 + components: + - type: Transform + pos: -38.5,5.5 + parent: 2 + - uid: 2117 + components: + - type: Transform + pos: -31.5,6.5 + parent: 2 + - uid: 2118 + components: + - type: Transform + pos: -31.5,7.5 + parent: 2 + - uid: 2119 + components: + - type: Transform + pos: -31.5,8.5 + parent: 2 + - uid: 2120 + components: + - type: Transform + pos: -29.5,12.5 + parent: 2 + - uid: 2121 + components: + - type: Transform + pos: -29.5,13.5 + parent: 2 + - uid: 2122 + components: + - type: Transform + pos: -23.5,13.5 + parent: 2 + - uid: 2123 + components: + - type: Transform + pos: -23.5,12.5 + parent: 2 + - uid: 2124 + components: + - type: Transform + pos: -23.5,11.5 + parent: 2 + - uid: 2125 + components: + - type: Transform + pos: -25.5,11.5 + parent: 2 + - uid: 2126 + components: + - type: Transform + pos: -25.5,12.5 + parent: 2 + - uid: 2127 + components: + - type: Transform + pos: -25.5,13.5 + parent: 2 + - uid: 2131 + components: + - type: Transform + pos: -19.5,13.5 + parent: 2 + - uid: 2132 + components: + - type: Transform + pos: -19.5,12.5 + parent: 2 + - uid: 2138 + components: + - type: Transform + pos: -24.5,3.5 + parent: 2 + - uid: 2139 + components: + - type: Transform + pos: -26.5,3.5 + parent: 2 + - uid: 2140 + components: + - type: Transform + pos: -22.5,3.5 + parent: 2 + - uid: 2177 + components: + - type: Transform + pos: -17.5,8.5 + parent: 2 + - uid: 2178 + components: + - type: Transform + pos: -17.5,7.5 + parent: 2 + - uid: 2179 + components: + - type: Transform + pos: -17.5,6.5 + parent: 2 + - uid: 2189 + components: + - type: Transform + pos: -16.5,1.5 + parent: 2 + - uid: 2190 + components: + - type: Transform + pos: -17.5,1.5 + parent: 2 + - uid: 2192 + components: + - type: Transform + pos: -19.5,1.5 + parent: 2 + - uid: 2193 + components: + - type: Transform + pos: -20.5,1.5 + parent: 2 + - uid: 2197 + components: + - type: Transform + pos: -28.5,1.5 + parent: 2 + - uid: 2198 + components: + - type: Transform + pos: -29.5,1.5 + parent: 2 + - uid: 2199 + components: + - type: Transform + pos: -31.5,1.5 + parent: 2 + - uid: 2232 + components: + - type: Transform + pos: -29.5,3.5 + parent: 2 + - uid: 2233 + components: + - type: Transform + pos: -30.5,3.5 + parent: 2 + - uid: 2234 + components: + - type: Transform + pos: -32.5,1.5 + parent: 2 + - uid: 2239 + components: + - type: Transform + pos: -18.5,3.5 + parent: 2 + - uid: 2241 + components: + - type: Transform + pos: -19.5,3.5 + parent: 2 + - uid: 2290 + components: + - type: Transform + pos: -17.5,15.5 + parent: 2 + - uid: 2291 + components: + - type: Transform + pos: -16.5,15.5 + parent: 2 + - uid: 2292 + components: + - type: Transform + pos: -15.5,15.5 + parent: 2 + - uid: 2307 + components: + - type: Transform + pos: -24.5,11.5 + parent: 2 + - uid: 2328 + components: + - type: Transform + pos: -35.5,16.5 + parent: 2 + - uid: 2331 + components: + - type: Transform + pos: -34.5,16.5 + parent: 2 + - uid: 2332 + components: + - type: Transform + pos: -35.5,15.5 + parent: 2 + - uid: 2337 + components: + - type: Transform + pos: -33.5,16.5 + parent: 2 + - uid: 2362 + components: + - type: Transform + pos: -43.5,10.5 + parent: 2 + - uid: 2363 + components: + - type: Transform + pos: -43.5,11.5 + parent: 2 + - uid: 2364 + components: + - type: Transform + pos: -43.5,12.5 + parent: 2 + - uid: 2387 + components: + - type: Transform + pos: -20.5,18.5 + parent: 2 + - uid: 2388 + components: + - type: Transform + pos: -21.5,18.5 + parent: 2 + - uid: 2390 + components: + - type: Transform + pos: -27.5,18.5 + parent: 2 + - uid: 2391 + components: + - type: Transform + pos: -26.5,18.5 + parent: 2 + - uid: 2393 + components: + - type: Transform + pos: -24.5,18.5 + parent: 2 + - uid: 2394 + components: + - type: Transform + pos: -23.5,18.5 + parent: 2 + - uid: 2478 + components: + - type: Transform + pos: -56.5,-14.5 + parent: 2 + - uid: 2479 + components: + - type: Transform + pos: -57.5,-14.5 + parent: 2 + - uid: 2480 + components: + - type: Transform + pos: -59.5,-12.5 + parent: 2 + - uid: 2486 + components: + - type: Transform + pos: -52.5,-6.5 + parent: 2 + - uid: 2487 + components: + - type: Transform + pos: -51.5,-6.5 + parent: 2 + - uid: 2493 + components: + - type: Transform + pos: -52.5,-16.5 + parent: 2 + - uid: 2494 + components: + - type: Transform + pos: -51.5,-16.5 + parent: 2 + - uid: 2495 + components: + - type: Transform + pos: -47.5,-13.5 + parent: 2 + - uid: 2496 + components: + - type: Transform + pos: -47.5,-12.5 + parent: 2 + - uid: 2497 + components: + - type: Transform + pos: -47.5,-10.5 + parent: 2 + - uid: 2498 + components: + - type: Transform + pos: -47.5,-9.5 + parent: 2 + - uid: 2507 + components: + - type: Transform + pos: -57.5,-8.5 + parent: 2 + - uid: 2508 + components: + - type: Transform + pos: -56.5,-8.5 + parent: 2 + - uid: 2514 + components: + - type: Transform + pos: -59.5,-10.5 + parent: 2 + - uid: 2571 + components: + - type: Transform + pos: -56.5,-3.5 + parent: 2 + - uid: 2572 + components: + - type: Transform + pos: -56.5,-2.5 + parent: 2 + - uid: 2573 + components: + - type: Transform + pos: -56.5,-1.5 + parent: 2 + - uid: 2574 + components: + - type: Transform + pos: -56.5,-0.5 + parent: 2 + - uid: 2604 + components: + - type: Transform + pos: -56.5,2.5 + parent: 2 + - uid: 2605 + components: + - type: Transform + pos: -56.5,3.5 + parent: 2 + - uid: 2611 + components: + - type: Transform + pos: -53.5,6.5 + parent: 2 + - uid: 2612 + components: + - type: Transform + pos: -52.5,6.5 + parent: 2 + - uid: 2613 + components: + - type: Transform + pos: -51.5,6.5 + parent: 2 + - uid: 2722 + components: + - type: Transform + pos: -56.5,-22.5 + parent: 2 + - uid: 2725 + components: + - type: Transform + pos: -56.5,-20.5 + parent: 2 + - uid: 2726 + components: + - type: Transform + pos: -56.5,-18.5 + parent: 2 + - uid: 2742 + components: + - type: Transform + pos: -53.5,-29.5 + parent: 2 + - uid: 2744 + components: + - type: Transform + pos: -51.5,-29.5 + parent: 2 + - uid: 2749 + components: + - type: Transform + pos: -56.5,-26.5 + parent: 2 + - uid: 2750 + components: + - type: Transform + pos: -56.5,-25.5 + parent: 2 + - uid: 2751 + components: + - type: Transform + pos: -56.5,-27.5 + parent: 2 + - uid: 2857 + components: + - type: Transform + pos: -35.5,-32.5 + parent: 2 + - uid: 2859 + components: + - type: Transform + pos: -35.5,-31.5 + parent: 2 + - uid: 2860 + components: + - type: Transform + pos: -35.5,-30.5 + parent: 2 + - uid: 2861 + components: + - type: Transform + pos: -35.5,-29.5 + parent: 2 + - uid: 2862 + components: + - type: Transform + pos: -35.5,-27.5 + parent: 2 + - uid: 2864 + components: + - type: Transform + pos: -35.5,-34.5 + parent: 2 + - uid: 2940 + components: + - type: Transform + pos: -2.5,12.5 + parent: 2 + - uid: 2941 + components: + - type: Transform + pos: -2.5,11.5 + parent: 2 + - uid: 2943 + components: + - type: Transform + pos: -2.5,15.5 + parent: 2 + - uid: 2944 + components: + - type: Transform + pos: -2.5,14.5 + parent: 2 + - uid: 2946 + components: + - type: Transform + pos: -2.5,17.5 + parent: 2 + - uid: 2947 + components: + - type: Transform + pos: -2.5,18.5 + parent: 2 + - uid: 2954 + components: + - type: Transform + pos: 1.5,18.5 + parent: 2 + - uid: 2955 + components: + - type: Transform + pos: 1.5,17.5 + parent: 2 + - uid: 2957 + components: + - type: Transform + pos: 1.5,15.5 + parent: 2 + - uid: 2958 + components: + - type: Transform + pos: 1.5,14.5 + parent: 2 + - uid: 2960 + components: + - type: Transform + pos: 1.5,11.5 + parent: 2 + - uid: 2961 + components: + - type: Transform + pos: 1.5,12.5 + parent: 2 + - uid: 3062 + components: + - type: Transform + pos: 31.5,10.5 + parent: 2 + - uid: 3063 + components: + - type: Transform + pos: 32.5,10.5 + parent: 2 + - uid: 3260 + components: + - type: Transform + pos: 6.5,-25.5 + parent: 2 + - uid: 3261 + components: + - type: Transform + pos: 5.5,-25.5 + parent: 2 + - uid: 3281 + components: + - type: Transform + pos: 39.5,-9.5 + parent: 2 + - uid: 3282 + components: + - type: Transform + pos: 39.5,-7.5 + parent: 2 + - uid: 3349 + components: + - type: Transform + pos: 54.5,0.5 + parent: 2 + - uid: 3350 + components: + - type: Transform + pos: 54.5,1.5 + parent: 2 + - uid: 3351 + components: + - type: Transform + pos: 54.5,2.5 + parent: 2 + - uid: 8587 + components: + - type: Transform + pos: 4.5,27.5 + parent: 2 + - uid: 8672 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,33.5 + parent: 2 + - uid: 8768 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,32.5 + parent: 2 + - uid: 8769 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,31.5 + parent: 2 + - uid: 8772 + components: + - type: Transform + pos: -10.5,25.5 + parent: 2 + - uid: 8775 + components: + - type: Transform + pos: 2.5,33.5 + parent: 2 + - uid: 8776 + components: + - type: Transform + pos: -8.5,33.5 + parent: 2 + - uid: 8777 + components: + - type: Transform + pos: -11.5,25.5 + parent: 2 + - uid: 8778 + components: + - type: Transform + pos: -11.5,26.5 + parent: 2 + - uid: 8779 + components: + - type: Transform + pos: -11.5,19.5 + parent: 2 + - uid: 8780 + components: + - type: Transform + pos: -11.5,18.5 + parent: 2 + - uid: 8781 + components: + - type: Transform + pos: -11.5,17.5 + parent: 2 + - uid: 8782 + components: + - type: Transform + pos: -11.5,16.5 + parent: 2 + - uid: 8783 + components: + - type: Transform + pos: -11.5,14.5 + parent: 2 + - uid: 8784 + components: + - type: Transform + pos: -11.5,13.5 + parent: 2 + - uid: 8785 + components: + - type: Transform + pos: -12.5,13.5 + parent: 2 + - uid: 8786 + components: + - type: Transform + pos: -16.5,17.5 + parent: 2 + - uid: 8787 + components: + - type: Transform + pos: -15.5,17.5 + parent: 2 + - uid: 8788 + components: + - type: Transform + pos: -43.5,17.5 + parent: 2 + - uid: 8789 + components: + - type: Transform + pos: -19.5,19.5 + parent: 2 + - uid: 8790 + components: + - type: Transform + pos: -19.5,20.5 + parent: 2 + - uid: 8791 + components: + - type: Transform + pos: -20.5,20.5 + parent: 2 + - uid: 8792 + components: + - type: Transform + pos: -23.5,20.5 + parent: 2 + - uid: 8793 + components: + - type: Transform + pos: -24.5,20.5 + parent: 2 + - uid: 8794 + components: + - type: Transform + pos: -25.5,20.5 + parent: 2 + - uid: 8795 + components: + - type: Transform + pos: -34.5,18.5 + parent: 2 + - uid: 8796 + components: + - type: Transform + pos: -33.5,18.5 + parent: 2 + - uid: 8797 + components: + - type: Transform + pos: -32.5,18.5 + parent: 2 + - uid: 8798 + components: + - type: Transform + pos: -32.5,17.5 + parent: 2 + - uid: 8799 + components: + - type: Transform + pos: -37.5,17.5 + parent: 2 + - uid: 8800 + components: + - type: Transform + pos: -37.5,18.5 + parent: 2 + - uid: 8801 + components: + - type: Transform + pos: -36.5,18.5 + parent: 2 + - uid: 8802 + components: + - type: Transform + pos: -38.5,18.5 + parent: 2 + - uid: 8803 + components: + - type: Transform + pos: -42.5,17.5 + parent: 2 + - uid: 8804 + components: + - type: Transform + pos: -41.5,17.5 + parent: 2 + - uid: 8805 + components: + - type: Transform + pos: -45.5,12.5 + parent: 2 + - uid: 8806 + components: + - type: Transform + pos: -45.5,11.5 + parent: 2 + - uid: 8807 + components: + - type: Transform + pos: -45.5,10.5 + parent: 2 + - uid: 8808 + components: + - type: Transform + pos: -45.5,9.5 + parent: 2 + - uid: 8809 + components: + - type: Transform + pos: -44.5,9.5 + parent: 2 + - uid: 8810 + components: + - type: Transform + pos: -45.5,14.5 + parent: 2 + - uid: 8811 + components: + - type: Transform + pos: -45.5,15.5 + parent: 2 + - uid: 8812 + components: + - type: Transform + pos: -58.5,1.5 + parent: 2 + - uid: 8813 + components: + - type: Transform + pos: -48.5,8.5 + parent: 2 + - uid: 8814 + components: + - type: Transform + pos: -49.5,8.5 + parent: 2 + - uid: 8815 + components: + - type: Transform + pos: -56.5,8.5 + parent: 2 + - uid: 8816 + components: + - type: Transform + pos: -55.5,8.5 + parent: 2 + - uid: 8817 + components: + - type: Transform + pos: -54.5,8.5 + parent: 2 + - uid: 8818 + components: + - type: Transform + pos: -53.5,8.5 + parent: 2 + - uid: 8819 + components: + - type: Transform + pos: -55.5,7.5 + parent: 2 + - uid: 8820 + components: + - type: Transform + pos: -58.5,2.5 + parent: 2 + - uid: 8821 + components: + - type: Transform + pos: -58.5,3.5 + parent: 2 + - uid: 8822 + components: + - type: Transform + pos: -58.5,4.5 + parent: 2 + - uid: 8823 + components: + - type: Transform + pos: -57.5,1.5 + parent: 2 + - uid: 8824 + components: + - type: Transform + pos: -58.5,-24.5 + parent: 2 + - uid: 8825 + components: + - type: Transform + pos: -58.5,-6.5 + parent: 2 + - uid: 8826 + components: + - type: Transform + pos: -61.5,-11.5 + parent: 2 + - uid: 8827 + components: + - type: Transform + pos: -60.5,-13.5 + parent: 2 + - uid: 8828 + components: + - type: Transform + pos: -61.5,-13.5 + parent: 2 + - uid: 8829 + components: + - type: Transform + pos: -61.5,-10.5 + parent: 2 + - uid: 8830 + components: + - type: Transform + pos: -61.5,-14.5 + parent: 2 + - uid: 8831 + components: + - type: Transform + pos: -61.5,-9.5 + parent: 2 + - uid: 8832 + components: + - type: Transform + pos: -58.5,-5.5 + parent: 2 + - uid: 8833 + components: + - type: Transform + pos: -58.5,-4.5 + parent: 2 + - uid: 8834 + components: + - type: Transform + pos: -58.5,-7.5 + parent: 2 + - uid: 8835 + components: + - type: Transform + pos: -58.5,-19.5 + parent: 2 + - uid: 8836 + components: + - type: Transform + pos: -57.5,-19.5 + parent: 2 + - uid: 8837 + components: + - type: Transform + pos: -58.5,-18.5 + parent: 2 + - uid: 8838 + components: + - type: Transform + pos: -58.5,-17.5 + parent: 2 + - uid: 8839 + components: + - type: Transform + pos: -58.5,-25.5 + parent: 2 + - uid: 8840 + components: + - type: Transform + pos: -58.5,-26.5 + parent: 2 + - uid: 8841 + components: + - type: Transform + pos: -58.5,-28.5 + parent: 2 + - uid: 8842 + components: + - type: Transform + pos: -57.5,-28.5 + parent: 2 + - uid: 8843 + components: + - type: Transform + pos: -56.5,-31.5 + parent: 2 + - uid: 8844 + components: + - type: Transform + pos: -55.5,-31.5 + parent: 2 + - uid: 8845 + components: + - type: Transform + pos: -54.5,-31.5 + parent: 2 + - uid: 8846 + components: + - type: Transform + pos: -53.5,-31.5 + parent: 2 + - uid: 8847 + components: + - type: Transform + pos: -47.5,-31.5 + parent: 2 + - uid: 8848 + components: + - type: Transform + pos: -45.5,-26.5 + parent: 2 + - uid: 8849 + components: + - type: Transform + pos: -47.5,-29.5 + parent: 2 + - uid: 8850 + components: + - type: Transform + pos: -48.5,-31.5 + parent: 2 + - uid: 8851 + components: + - type: Transform + pos: -49.5,-31.5 + parent: 2 + - uid: 8852 + components: + - type: Transform + pos: -44.5,-26.5 + parent: 2 + - uid: 8853 + components: + - type: Transform + pos: -43.5,-26.5 + parent: 2 + - uid: 8854 + components: + - type: Transform + pos: -40.5,-26.5 + parent: 2 + - uid: 8855 + components: + - type: Transform + pos: -41.5,-26.5 + parent: 2 + - uid: 8856 + components: + - type: Transform + pos: -41.5,-25.5 + parent: 2 + - uid: 8857 + components: + - type: Transform + pos: -37.5,-28.5 + parent: 2 + - uid: 8858 + components: + - type: Transform + pos: -37.5,-29.5 + parent: 2 + - uid: 8859 + components: + - type: Transform + pos: -37.5,-30.5 + parent: 2 + - uid: 8860 + components: + - type: Transform + pos: -37.5,-35.5 + parent: 2 + - uid: 8861 + components: + - type: Transform + pos: -37.5,-34.5 + parent: 2 + - uid: 8862 + components: + - type: Transform + pos: -37.5,-33.5 + parent: 2 + - uid: 8863 + components: + - type: Transform + pos: -37.5,-32.5 + parent: 2 + - uid: 8864 + components: + - type: Transform + pos: -36.5,-28.5 + parent: 2 + - uid: 8865 + components: + - type: Transform + pos: -35.5,-42.5 + parent: 2 + - uid: 8866 + components: + - type: Transform + pos: -37.5,-43.5 + parent: 2 + - uid: 8867 + components: + - type: Transform + pos: -36.5,-43.5 + parent: 2 + - uid: 8868 + components: + - type: Transform + pos: -34.5,-43.5 + parent: 2 + - uid: 8869 + components: + - type: Transform + pos: -37.5,-39.5 + parent: 2 + - uid: 8870 + components: + - type: Transform + pos: -37.5,-40.5 + parent: 2 + - uid: 8871 + components: + - type: Transform + pos: -37.5,-41.5 + parent: 2 + - uid: 8872 + components: + - type: Transform + pos: -20.5,-44.5 + parent: 2 + - uid: 8873 + components: + - type: Transform + pos: -28.5,-42.5 + parent: 2 + - uid: 8874 + components: + - type: Transform + pos: -23.5,-43.5 + parent: 2 + - uid: 8875 + components: + - type: Transform + pos: -24.5,-43.5 + parent: 2 + - uid: 8876 + components: + - type: Transform + pos: -25.5,-43.5 + parent: 2 + - uid: 8877 + components: + - type: Transform + pos: -19.5,-44.5 + parent: 2 + - uid: 8878 + components: + - type: Transform + pos: -18.5,-44.5 + parent: 2 + - uid: 8879 + components: + - type: Transform + pos: -16.5,-42.5 + parent: 2 + - uid: 8880 + components: + - type: Transform + pos: -16.5,-43.5 + parent: 2 + - uid: 8881 + components: + - type: Transform + pos: -15.5,-48.5 + parent: 2 + - uid: 8882 + components: + - type: Transform + pos: -15.5,-49.5 + parent: 2 + - uid: 8883 + components: + - type: Transform + pos: -15.5,-50.5 + parent: 2 + - uid: 8884 + components: + - type: Transform + pos: -14.5,-46.5 + parent: 2 + - uid: 8885 + components: + - type: Transform + pos: 14.5,-54.5 + parent: 2 + - uid: 8886 + components: + - type: Transform + pos: -15.5,-55.5 + parent: 2 + - uid: 8887 + components: + - type: Transform + pos: 14.5,-53.5 + parent: 2 + - uid: 8888 + components: + - type: Transform + pos: 14.5,-52.5 + parent: 2 + - uid: 8889 + components: + - type: Transform + pos: 14.5,-51.5 + parent: 2 + - uid: 8890 + components: + - type: Transform + pos: 14.5,-50.5 + parent: 2 + - uid: 8891 + components: + - type: Transform + pos: 14.5,-49.5 + parent: 2 + - uid: 8892 + components: + - type: Transform + pos: 23.5,-43.5 + parent: 2 + - uid: 8893 + components: + - type: Transform + pos: 15.5,-44.5 + parent: 2 + - uid: 8894 + components: + - type: Transform + pos: 16.5,-44.5 + parent: 2 + - uid: 8895 + components: + - type: Transform + pos: 17.5,-44.5 + parent: 2 + - uid: 8896 + components: + - type: Transform + pos: 13.5,-45.5 + parent: 2 + - uid: 8897 + components: + - type: Transform + pos: 25.5,-43.5 + parent: 2 + - uid: 8898 + components: + - type: Transform + pos: 24.5,-43.5 + parent: 2 + - uid: 8899 + components: + - type: Transform + pos: 29.5,-43.5 + parent: 2 + - uid: 8900 + components: + - type: Transform + pos: 30.5,-43.5 + parent: 2 + - uid: 8901 + components: + - type: Transform + pos: 31.5,-43.5 + parent: 2 + - uid: 8902 + components: + - type: Transform + pos: 32.5,-43.5 + parent: 2 + - uid: 8903 + components: + - type: Transform + pos: 33.5,-43.5 + parent: 2 + - uid: 8904 + components: + - type: Transform + pos: 31.5,-42.5 + parent: 2 + - uid: 8905 + components: + - type: Transform + pos: 36.5,-43.5 + parent: 2 + - uid: 8906 + components: + - type: Transform + pos: 35.5,-43.5 + parent: 2 + - uid: 8907 + components: + - type: Transform + pos: 36.5,-28.5 + parent: 2 + - uid: 8908 + components: + - type: Transform + pos: 36.5,-36.5 + parent: 2 + - uid: 8909 + components: + - type: Transform + pos: 36.5,-35.5 + parent: 2 + - uid: 8910 + components: + - type: Transform + pos: 36.5,-34.5 + parent: 2 + - uid: 8911 + components: + - type: Transform + pos: 35.5,-39.5 + parent: 2 + - uid: 8912 + components: + - type: Transform + pos: 36.5,-39.5 + parent: 2 + - uid: 8913 + components: + - type: Transform + pos: 36.5,-27.5 + parent: 2 + - uid: 8914 + components: + - type: Transform + pos: 36.5,-26.5 + parent: 2 + - uid: 8915 + components: + - type: Transform + pos: 43.5,-25.5 + parent: 2 + - uid: 8916 + components: + - type: Transform + pos: 43.5,-26.5 + parent: 2 + - uid: 8917 + components: + - type: Transform + pos: 42.5,-26.5 + parent: 2 + - uid: 8918 + components: + - type: Transform + pos: 53.5,-22.5 + parent: 2 + - uid: 8919 + components: + - type: Transform + pos: 53.5,-23.5 + parent: 2 + - uid: 8920 + components: + - type: Transform + pos: 54.5,-23.5 + parent: 2 + - uid: 8921 + components: + - type: Transform + pos: 55.5,-23.5 + parent: 2 + - uid: 8922 + components: + - type: Transform + pos: 48.5,-23.5 + parent: 2 + - uid: 8923 + components: + - type: Transform + pos: 56.5,-6.5 + parent: 2 + - uid: 8924 + components: + - type: Transform + pos: 58.5,-19.5 + parent: 2 + - uid: 8925 + components: + - type: Transform + pos: 57.5,-20.5 + parent: 2 + - uid: 8926 + components: + - type: Transform + pos: 58.5,-20.5 + parent: 2 + - uid: 8927 + components: + - type: Transform + pos: 59.5,-20.5 + parent: 2 + - uid: 8928 + components: + - type: Transform + pos: 60.5,-20.5 + parent: 2 + - uid: 8929 + components: + - type: Transform + pos: 63.5,-12.5 + parent: 2 + - uid: 8930 + components: + - type: Transform + pos: 63.5,-13.5 + parent: 2 + - uid: 8931 + components: + - type: Transform + pos: 63.5,-14.5 + parent: 2 + - uid: 8932 + components: + - type: Transform + pos: 63.5,-15.5 + parent: 2 + - uid: 8933 + components: + - type: Transform + pos: 61.5,-9.5 + parent: 2 + - uid: 8934 + components: + - type: Transform + pos: 57.5,-6.5 + parent: 2 + - uid: 8935 + components: + - type: Transform + pos: 63.5,-9.5 + parent: 2 + - uid: 8936 + components: + - type: Transform + pos: 63.5,-10.5 + parent: 2 + - uid: 8937 + components: + - type: Transform + pos: 63.5,-8.5 + parent: 2 + - uid: 8938 + components: + - type: Transform + pos: 58.5,-6.5 + parent: 2 + - uid: 8939 + components: + - type: Transform + pos: 59.5,-6.5 + parent: 2 + - uid: 8940 + components: + - type: Transform + pos: 62.5,-6.5 + parent: 2 + - uid: 8941 + components: + - type: Transform + pos: 61.5,-6.5 + parent: 2 + - uid: 8942 + components: + - type: Transform + pos: 56.5,2.5 + parent: 2 + - uid: 8943 + components: + - type: Transform + pos: 56.5,0.5 + parent: 2 + - uid: 8944 + components: + - type: Transform + pos: 56.5,-0.5 + parent: 2 + - uid: 8945 + components: + - type: Transform + pos: 56.5,-1.5 + parent: 2 + - uid: 8946 + components: + - type: Transform + pos: 56.5,3.5 + parent: 2 + - uid: 8947 + components: + - type: Transform + pos: 56.5,4.5 + parent: 2 + - uid: 8948 + components: + - type: Transform + pos: 56.5,5.5 + parent: 2 + - uid: 8949 + components: + - type: Transform + pos: 55.5,-1.5 + parent: 2 + - uid: 8950 + components: + - type: Transform + pos: 29.5,11.5 + parent: 2 + - uid: 8951 + components: + - type: Transform + pos: 52.5,5.5 + parent: 2 + - uid: 8952 + components: + - type: Transform + pos: 51.5,5.5 + parent: 2 + - uid: 8953 + components: + - type: Transform + pos: 50.5,5.5 + parent: 2 + - uid: 8954 + components: + - type: Transform + pos: 40.5,9.5 + parent: 2 + - uid: 8955 + components: + - type: Transform + pos: 41.5,9.5 + parent: 2 + - uid: 8956 + components: + - type: Transform + pos: 42.5,9.5 + parent: 2 + - uid: 8957 + components: + - type: Transform + pos: 43.5,9.5 + parent: 2 + - uid: 8958 + components: + - type: Transform + pos: 47.5,8.5 + parent: 2 + - uid: 8959 + components: + - type: Transform + pos: 49.5,9.5 + parent: 2 + - uid: 8960 + components: + - type: Transform + pos: 15.5,11.5 + parent: 2 + - uid: 8961 + components: + - type: Transform + pos: 32.5,12.5 + parent: 2 + - uid: 8962 + components: + - type: Transform + pos: 31.5,12.5 + parent: 2 + - uid: 8963 + components: + - type: Transform + pos: 29.5,12.5 + parent: 2 + - uid: 8964 + components: + - type: Transform + pos: 22.5,12.5 + parent: 2 + - uid: 8965 + components: + - type: Transform + pos: 21.5,12.5 + parent: 2 + - uid: 8966 + components: + - type: Transform + pos: 20.5,12.5 + parent: 2 + - uid: 8967 + components: + - type: Transform + pos: 14.5,11.5 + parent: 2 + - uid: 8968 + components: + - type: Transform + pos: 13.5,11.5 + parent: 2 + - uid: 8969 + components: + - type: Transform + pos: 10.5,12.5 + parent: 2 + - uid: 8970 + components: + - type: Transform + pos: 10.5,13.5 + parent: 2 + - uid: 8971 + components: + - type: Transform + pos: 10.5,14.5 + parent: 2 + - uid: 8972 + components: + - type: Transform + pos: 10.5,15.5 + parent: 2 + - uid: 8973 + components: + - type: Transform + pos: 9.5,14.5 + parent: 2 + - uid: 8974 + components: + - type: Transform + pos: 7.5,28.5 + parent: 2 + - uid: 8975 + components: + - type: Transform + pos: 10.5,20.5 + parent: 2 + - uid: 8976 + components: + - type: Transform + pos: 10.5,19.5 + parent: 2 + - uid: 8977 + components: + - type: Transform + pos: 6.5,26.5 + parent: 2 + - uid: 8978 + components: + - type: Transform + pos: 7.5,29.5 + parent: 2 + - uid: 8979 + components: + - type: Transform + pos: 7.5,30.5 + parent: 2 + - uid: 8980 + components: + - type: Transform + pos: 6.5,29.5 + parent: 2 +- proto: GrilleBroken + entities: + - uid: 8589 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,27.5 + parent: 2 + - uid: 8770 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,30.5 + parent: 2 + - uid: 8771 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,32.5 + parent: 2 + - uid: 8773 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,33.5 + parent: 2 + - uid: 8981 + components: + - type: Transform + pos: -11.5,12.5 + parent: 2 + - uid: 8982 + components: + - type: Transform + pos: -11.5,27.5 + parent: 2 + - uid: 8983 + components: + - type: Transform + pos: -11.5,20.5 + parent: 2 + - uid: 8984 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,17.5 + parent: 2 + - uid: 8985 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,15.5 + parent: 2 + - uid: 8986 + components: + - type: Transform + pos: -11.5,15.5 + parent: 2 + - uid: 8987 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,18.5 + parent: 2 + - uid: 8988 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,17.5 + parent: 2 + - uid: 8989 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,20.5 + parent: 2 + - uid: 8990 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,20.5 + parent: 2 + - uid: 8991 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,19.5 + parent: 2 + - uid: 8992 + components: + - type: Transform + pos: -25.5,19.5 + parent: 2 + - uid: 8993 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,18.5 + parent: 2 + - uid: 8994 + components: + - type: Transform + pos: -37.5,15.5 + parent: 2 + - uid: 8995 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -50.5,8.5 + parent: 2 + - uid: 8996 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -44.5,17.5 + parent: 2 + - uid: 8997 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,15.5 + parent: 2 + - uid: 8998 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -43.5,15.5 + parent: 2 + - uid: 8999 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -52.5,8.5 + parent: 2 + - uid: 9000 + components: + - type: Transform + pos: -58.5,-16.5 + parent: 2 + - uid: 9001 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -58.5,0.5 + parent: 2 + - uid: 9002 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -59.5,-7.5 + parent: 2 + - uid: 9003 + components: + - type: Transform + pos: -61.5,-12.5 + parent: 2 + - uid: 9004 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -61.5,-12.5 + parent: 2 + - uid: 9005 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -60.5,-11.5 + parent: 2 + - uid: 9006 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -58.5,-27.5 + parent: 2 + - uid: 9007 + components: + - type: Transform + pos: -55.5,-30.5 + parent: 2 + - uid: 9008 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -55.5,-30.5 + parent: 2 + - uid: 9009 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -42.5,-26.5 + parent: 2 + - uid: 9010 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-35.5 + parent: 2 + - uid: 9011 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,-35.5 + parent: 2 + - uid: 9012 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-51.5 + parent: 2 + - uid: 9013 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-43.5 + parent: 2 + - uid: 9014 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-43.5 + parent: 2 + - uid: 9015 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-44.5 + parent: 2 + - uid: 9016 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,-44.5 + parent: 2 + - uid: 9017 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,-43.5 + parent: 2 + - uid: 9018 + components: + - type: Transform + pos: -15.5,-54.5 + parent: 2 + - uid: 9019 + components: + - type: Transform + pos: 14.5,-55.5 + parent: 2 + - uid: 9020 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,-55.5 + parent: 2 + - uid: 9021 + components: + - type: Transform + pos: 63.5,-11.5 + parent: 2 + - uid: 9022 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,-43.5 + parent: 2 + - uid: 9023 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,-40.5 + parent: 2 + - uid: 9024 + components: + - type: Transform + pos: 36.5,-38.5 + parent: 2 + - uid: 9025 + components: + - type: Transform + pos: 36.5,-33.5 + parent: 2 + - uid: 9026 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,-25.5 + parent: 2 + - uid: 9027 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,-26.5 + parent: 2 + - uid: 9028 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,-26.5 + parent: 2 + - uid: 9029 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 49.5,-22.5 + parent: 2 + - uid: 9030 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,-23.5 + parent: 2 + - uid: 9031 + components: + - type: Transform + pos: 60.5,-19.5 + parent: 2 + - uid: 9032 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 63.5,-11.5 + parent: 2 + - uid: 9033 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 62.5,-9.5 + parent: 2 + - uid: 9034 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,-9.5 + parent: 2 + - uid: 9035 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,9.5 + parent: 2 + - uid: 9036 + components: + - type: Transform + pos: 60.5,-8.5 + parent: 2 + - uid: 9037 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 55.5,-6.5 + parent: 2 + - uid: 9038 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 55.5,5.5 + parent: 2 + - uid: 9039 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,5.5 + parent: 2 + - uid: 9040 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,5.5 + parent: 2 + - uid: 9041 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,9.5 + parent: 2 + - uid: 9042 + components: + - type: Transform + pos: 47.5,9.5 + parent: 2 + - uid: 9043 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,9.5 + parent: 2 + - uid: 9044 + components: + - type: Transform + pos: 45.5,8.5 + parent: 2 + - uid: 9045 + components: + - type: Transform + pos: 14.5,10.5 + parent: 2 + - uid: 9046 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,12.5 + parent: 2 + - uid: 9047 + components: + - type: Transform + pos: 34.5,11.5 + parent: 2 + - uid: 9048 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,12.5 + parent: 2 + - uid: 9049 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,11.5 + parent: 2 + - uid: 9050 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,12.5 + parent: 2 + - uid: 9051 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,10.5 + parent: 2 + - uid: 9052 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,26.5 + parent: 2 + - uid: 9053 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,18.5 + parent: 2 + - uid: 9054 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,19.5 + parent: 2 + - uid: 9055 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,27.5 + parent: 2 + - uid: 9056 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,33.5 + parent: 2 + - uid: 9057 + components: + - type: Transform + pos: 5.5,33.5 + parent: 2 +- proto: GrilleSpawner + entities: + - uid: 3283 + components: + - type: Transform + pos: 39.5,-8.5 + parent: 2 + - uid: 8092 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-25.5 + parent: 2 + - uid: 8774 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,33.5 + parent: 2 +- proto: Handcuffs + entities: + - uid: 8051 + components: + - type: Transform + pos: -34.569714,8.632569 + parent: 2 +- proto: HandheldGPSBasic + entities: + - uid: 1087 + components: + - type: Transform + pos: 28.31444,-3.4380596 + parent: 2 +- proto: HandheldHealthAnalyzerEmpty + entities: + - uid: 8002 + components: + - type: Transform + pos: -17.560238,-4.4531527 + parent: 2 +- proto: HandLabeler + entities: + - uid: 7970 + components: + - type: Transform + pos: -35.03673,-3.2353244 + parent: 2 + - uid: 7971 + components: + - type: Transform + pos: 15.461165,-8.309071 + parent: 2 + - uid: 8084 + components: + - type: Transform + pos: -32.462517,4.769805 + parent: 2 +- proto: HighSecArmoryLocked + entities: + - uid: 1217 + components: + - type: Transform + pos: 3.5,-0.5 + parent: 2 + - uid: 1218 + components: + - type: Transform + pos: -4.5,-0.5 + parent: 2 +- proto: HighSecDoor + entities: + - uid: 5 + components: + - type: Transform + pos: 11.5,-1.5 + parent: 2 + - uid: 6 + components: + - type: Transform + pos: 11.5,0.5 + parent: 2 + - uid: 7 + components: + - type: Transform + pos: -10.5,0.5 + parent: 2 + - uid: 8 + components: + - type: Transform + pos: 9.5,-1.5 + parent: 2 + - uid: 9 + components: + - type: Transform + pos: -1.5,10.5 + parent: 2 + - uid: 10 + components: + - type: Transform + pos: 9.5,0.5 + parent: 2 + - uid: 11 + components: + - type: Transform + pos: 0.5,10.5 + parent: 2 + - uid: 12 + components: + - type: Transform + pos: 0.5,8.5 + parent: 2 + - uid: 13 + components: + - type: Transform + pos: -1.5,8.5 + parent: 2 + - uid: 14 + components: + - type: Transform + pos: -10.5,-1.5 + parent: 2 + - uid: 15 + components: + - type: Transform + pos: -12.5,-1.5 + parent: 2 + - uid: 16 + components: + - type: Transform + pos: -12.5,0.5 + parent: 2 + - uid: 59 + components: + - type: Transform + pos: 3.5,-17.5 + parent: 2 + - uid: 60 + components: + - type: Transform + pos: 3.5,-15.5 + parent: 2 + - uid: 124 + components: + - type: Transform + pos: 0.5,-9.5 + parent: 2 + - uid: 127 + components: + - type: Transform + pos: -1.5,-9.5 + parent: 2 + - uid: 233 + components: + - type: Transform + pos: 0.5,-11.5 + parent: 2 + - uid: 877 + components: + - type: Transform + pos: 17.5,-40.5 + parent: 2 + - uid: 878 + components: + - type: Transform + pos: 17.5,-38.5 + parent: 2 + - uid: 879 + components: + - type: Transform + pos: 19.5,-40.5 + parent: 2 + - uid: 880 + components: + - type: Transform + pos: 19.5,-38.5 + parent: 2 + - uid: 910 + components: + - type: Transform + pos: -20.5,-40.5 + parent: 2 + - uid: 911 + components: + - type: Transform + pos: -20.5,-38.5 + parent: 2 + - uid: 912 + components: + - type: Transform + pos: -18.5,-38.5 + parent: 2 + - uid: 913 + components: + - type: Transform + pos: -18.5,-40.5 + parent: 2 + - uid: 1645 + components: + - type: Transform + pos: -1.5,-11.5 + parent: 2 +- proto: HydroponicsToolSpade + entities: + - uid: 8593 + components: + - type: Transform + pos: 10.477897,-8.403197 + parent: 2 +- proto: InflatableWallStack5 + entities: + - uid: 1452 + components: + - type: Transform + pos: 46.52145,-3.6173031 + parent: 2 +- proto: IntercomEngineering + entities: + - uid: 7955 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.5,-10.5 + parent: 2 +- proto: IntercomMedical + entities: + - uid: 8117 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,-4.5 + parent: 2 +- proto: IntercomScience + entities: + - uid: 7953 + components: + - type: Transform + pos: 22.5,3.5 + parent: 2 +- proto: IntercomSecurity + entities: + - uid: 8116 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,1.5 + parent: 2 +- proto: IntercomSupply + entities: + - uid: 7954 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,-2.5 + parent: 2 +- proto: Lamp + entities: + - uid: 1108 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.529902,-14.009188 + parent: 2 + - uid: 1504 + components: + - type: Transform + pos: 55.461147,-11.067635 + parent: 2 + - uid: 2155 + components: + - type: Transform + pos: -14.604253,8.999672 + parent: 2 + - uid: 2322 + components: + - type: Transform + pos: -33.053425,12.825653 + parent: 2 + - uid: 7799 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.56979847,1.9960221 + parent: 2 + - uid: 8144 + components: + - type: Transform + pos: -53.52031,5.8773212 + parent: 2 + - uid: 8219 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.436971,-11.907684 + parent: 2 +- proto: LampGold + entities: + - uid: 1189 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.307503,9.603359 + parent: 2 + - uid: 2038 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.562063,-11.360263 + parent: 2 + - uid: 2624 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -52.69951,-1.9779178 + parent: 2 + - uid: 8150 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -55.70251,-21.042889 + parent: 2 +- proto: Lantern + entities: + - uid: 8579 + components: + - type: Transform + pos: 6.6242113,-29.118408 + parent: 2 +- proto: LargeBeaker + entities: + - uid: 1960 + components: + - type: Transform + pos: -34.684856,-8.301708 + parent: 2 +- proto: Lighter + entities: + - uid: 7880 + components: + - type: Transform + pos: 26.786741,-11.642492 + parent: 2 + - uid: 8082 + components: + - type: Transform + pos: -33.576385,12.5394535 + parent: 2 + - uid: 8250 + components: + - type: Transform + pos: -7.6858063,-10.390216 + parent: 2 +- proto: LockerAtmosphericsFilled + entities: + - uid: 1418 + components: + - type: Transform + pos: 53.5,-16.5 + parent: 2 + - uid: 1419 + components: + - type: Transform + pos: 52.5,-16.5 + parent: 2 + - uid: 1420 + components: + - type: Transform + pos: 49.5,-20.5 + parent: 2 + - uid: 1422 + components: + - type: Transform + pos: 46.5,-17.5 + parent: 2 +- proto: LockerChemistryFilled + entities: + - uid: 1924 + components: + - type: Transform + pos: -35.5,-4.5 + parent: 2 +- proto: LockerDetectiveFilled + entities: + - uid: 2154 + components: + - type: Transform + pos: -15.5,4.5 + parent: 2 +- proto: LockerElectricalSuppliesFilled + entities: + - uid: 8555 + components: + - type: Transform + pos: 33.5,-8.5 + parent: 2 +- proto: LockerEngineerFilled + entities: + - uid: 1384 + components: + - type: Transform + pos: 46.5,-6.5 + parent: 2 + - uid: 1385 + components: + - type: Transform + pos: 50.5,-2.5 + parent: 2 + - uid: 1386 + components: + - type: Transform + pos: 53.5,-4.5 + parent: 2 + - uid: 1387 + components: + - type: Transform + pos: 47.5,-3.5 + parent: 2 +- proto: LockerEvidence + entities: + - uid: 7715 + components: + - type: Transform + pos: 1.5,-2.5 + parent: 2 +- proto: LockerMedicalFilled + entities: + - uid: 1502 + components: + - type: Transform + pos: -16.5,-8.5 + parent: 2 + - uid: 1877 + components: + - type: Transform + pos: -16.5,-3.5 + parent: 2 + - uid: 1878 + components: + - type: Transform + pos: -13.5,-6.5 + parent: 2 + - uid: 1879 + components: + - type: Transform + pos: -13.5,-7.5 + parent: 2 + - uid: 1880 + components: + - type: Transform + pos: -18.5,-5.5 + parent: 2 +- proto: LockerSalvageSpecialistFilled + entities: + - uid: 985 + components: + - type: Transform + pos: 29.5,-3.5 + parent: 2 + - uid: 1009 + components: + - type: Transform + pos: 31.5,-6.5 + parent: 2 + - uid: 1010 + components: + - type: Transform + pos: 28.5,-9.5 + parent: 2 + - uid: 1037 + components: + - type: Transform + pos: 31.5,-8.5 + parent: 2 +- proto: LockerScienceFilled + entities: + - uid: 1157 + components: + - type: Transform + pos: 15.5,8.5 + parent: 2 + - uid: 1159 + components: + - type: Transform + pos: 14.5,5.5 + parent: 2 + - uid: 1161 + components: + - type: Transform + pos: 19.5,2.5 + parent: 2 + - uid: 1162 + components: + - type: Transform + pos: 19.5,3.5 + parent: 2 +- proto: LockerSecurityFilled + entities: + - uid: 2084 + components: + - type: Transform + pos: -36.5,8.5 + parent: 2 + - uid: 2085 + components: + - type: Transform + pos: -35.5,8.5 + parent: 2 + - uid: 2086 + components: + - type: Transform + pos: -36.5,2.5 + parent: 2 + - uid: 2087 + components: + - type: Transform + pos: -40.5,4.5 + parent: 2 + - uid: 2088 + components: + - type: Transform + pos: -37.5,5.5 + parent: 2 + - uid: 2093 + components: + - type: Transform + pos: -41.5,8.5 + parent: 2 +- proto: LockerWardenFilled + entities: + - uid: 2280 + components: + - type: Transform + pos: -15.5,14.5 + parent: 2 +- proto: LockerWeldingSuppliesFilled + entities: + - uid: 1466 + components: + - type: Transform + pos: 46.5,-19.5 + parent: 2 + - uid: 8549 + components: + - type: Transform + pos: 46.5,-1.5 + parent: 2 + - uid: 8581 + components: + - type: Transform + pos: 10.5,-25.5 + parent: 2 +- proto: MagazineBoxPistolPractice + entities: + - uid: 2412 + components: + - type: Transform + pos: -27.485611,17.522528 + parent: 2 +- proto: MagazinePistolPractice + entities: + - uid: 2411 + components: + - type: Transform + pos: -27.898823,17.463531 + parent: 2 +- proto: MagazinePistolRubber + entities: + - uid: 8053 + components: + - type: Transform + pos: -34.62212,8.106182 + parent: 2 +- proto: MaintenanceFluffSpawner + entities: + - uid: 3199 + components: + - type: Transform + pos: -48.5,0.5 + parent: 2 + - uid: 7976 + components: + - type: Transform + pos: -3.5,-21.5 + parent: 2 + - uid: 8100 + components: + - type: Transform + pos: -35.5,0.5 + parent: 2 + - uid: 8574 + components: + - type: Transform + pos: 10.5,-28.5 + parent: 2 +- proto: MaintenancePlantSpawner + entities: + - uid: 8531 + components: + - type: Transform + pos: -7.5,21.5 + parent: 2 + - uid: 8597 + components: + - type: Transform + pos: -46.5,3.5 + parent: 2 +- proto: MaintenanceToolSpawner + entities: + - uid: 7817 + components: + - type: Transform + pos: 21.5,4.5 + parent: 2 + - uid: 8530 + components: + - type: Transform + pos: -3.5,31.5 + parent: 2 + - uid: 8569 + components: + - type: Transform + pos: 35.5,-8.5 + parent: 2 +- proto: MaintenanceWeaponSpawner + entities: + - uid: 8558 + components: + - type: Transform + pos: 38.5,-3.5 + parent: 2 +- proto: Matchbox + entities: + - uid: 7912 + components: + - type: Transform + pos: 52.634075,-6.4939036 + parent: 2 + - uid: 8037 + components: + - type: Transform + pos: -22.588768,7.6457157 + parent: 2 + - uid: 8119 + components: + - type: Transform + pos: -53.473175,-11.641487 + parent: 2 +- proto: MaterialWoodPlank1 + entities: + - uid: 8641 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.419252,-11.652937 + parent: 2 + - uid: 8642 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.54434,-10.649987 + parent: 2 +- proto: MedkitFilled + entities: + - uid: 1922 + components: + - type: Transform + pos: -17.35666,-4.1152163 + parent: 2 +- proto: NitrogenTankFilled + entities: + - uid: 8616 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.65287,-12.501084 + parent: 2 +- proto: NitrousOxideTankFilled + entities: + - uid: 7968 + components: + - type: Transform + pos: -13.498234,-8.349408 + parent: 2 +- proto: OxygenTankFilled + entities: + - uid: 8615 + components: + - type: Transform + pos: -34.520756,-10.3181925 + parent: 2 +- proto: PaperBin5 + entities: + - uid: 8137 + components: + - type: Transform + pos: -48.5,-1.5 + parent: 2 + - uid: 8149 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -50.5,-18.5 + parent: 2 +- proto: PaperCaptainsThoughts + entities: + - uid: 2620 + components: + - type: Transform + pos: -52.41216,5.60266 + parent: 2 +- proto: PaperOffice + entities: + - uid: 2018 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.01695,-8.400714 + parent: 2 + - uid: 7884 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.374882,-11.945338 + parent: 2 + - uid: 7885 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.463427,-12.004335 + parent: 2 + - uid: 7935 + components: + - type: Transform + pos: 56.66266,-11.415864 + parent: 2 + - uid: 7989 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.95792,-8.459711 + parent: 2 + - uid: 8086 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.590294,11.359512 + parent: 2 + - uid: 8147 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -49.455105,-20.403631 + parent: 2 + - uid: 8148 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -49.575085,-20.344633 + parent: 2 + - uid: 8218 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.4755335,-22.515383 + parent: 2 +- proto: Pen + entities: + - uid: 7788 + components: + - type: Transform + pos: -0.39851478,1.5653777 + parent: 2 + - uid: 7830 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.702398,9.516926 + parent: 2 + - uid: 7937 + components: + - type: Transform + pos: 56.53542,-11.493428 + parent: 2 + - uid: 8007 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.410631,-17.372473 + parent: 2 + - uid: 8130 + components: + - type: Transform + pos: -53.903088,-2.4843693 + parent: 2 + - uid: 8216 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.322114,-18.417048 + parent: 2 +- proto: PlasmaTank + entities: + - uid: 7820 + components: + - type: Transform + pos: 21.226446,4.6021514 + parent: 2 +- proto: PlushieAtmosian + entities: + - uid: 1433 + components: + - type: Transform + pos: 51.899433,-16.84352 + parent: 2 +- proto: PlushieLizard + entities: + - uid: 8041 + components: + - type: Transform + pos: -26.615616,-5.4275203 + parent: 2 +- proto: PosterContrabandBorgFancyv2 + entities: + - uid: 1079 + components: + - type: Transform + pos: 19.5,4.5 + parent: 2 +- proto: PosterContrabandHackingGuide + entities: + - uid: 7898 + components: + - type: Transform + pos: 49.5,-15.5 + parent: 2 +- proto: PosterContrabandMissingGloves + entities: + - uid: 7841 + components: + - type: Transform + pos: 20.5,-14.5 + parent: 2 +- proto: PosterContrabandRevolver + entities: + - uid: 8083 + components: + - type: Transform + pos: -12.5,6.5 + parent: 2 +- proto: PosterContrabandTools + entities: + - uid: 7842 + components: + - type: Transform + pos: 27.5,-9.5 + parent: 2 +- proto: PosterContrabandWaffleCorp + entities: + - uid: 8062 + components: + - type: Transform + pos: -25.5,18.5 + parent: 2 +- proto: PosterLegit12Gauge + entities: + - uid: 8064 + components: + - type: Transform + pos: -33.5,9.5 + parent: 2 +- proto: PosterLegitAnatomyPoster + entities: + - uid: 7982 + components: + - type: Transform + pos: -18.5,-4.5 + parent: 2 +- proto: PosterLegitBuild + entities: + - uid: 7899 + components: + - type: Transform + pos: 47.5,-2.5 + parent: 2 +- proto: PosterLegitCleanliness + entities: + - uid: 7981 + components: + - type: Transform + pos: -20.5,-9.5 + parent: 2 +- proto: PosterLegitEnlist + entities: + - uid: 8065 + components: + - type: Transform + pos: -41.5,5.5 + parent: 2 +- proto: PosterLegitHighClassMartini + entities: + - uid: 8264 + components: + - type: Transform + pos: 17.5,-31.5 + parent: 2 +- proto: PosterLegitIan + entities: + - uid: 8128 + components: + - type: Transform + pos: -56.5,-21.5 + parent: 2 +- proto: PosterLegitLoveIan + entities: + - uid: 8129 + components: + - type: Transform + pos: -49.5,-17.5 + parent: 2 +- proto: PosterLegitNanotrasenLogo + entities: + - uid: 7794 + components: + - type: Transform + pos: 4.5,18.5 + parent: 2 + - uid: 7795 + components: + - type: Transform + pos: -5.5,18.5 + parent: 2 + - uid: 8126 + components: + - type: Transform + pos: -49.5,-8.5 + parent: 2 +- proto: PosterLegitObey + entities: + - uid: 8066 + components: + - type: Transform + pos: -18.5,9.5 + parent: 2 +- proto: PosterLegitPeriodicTable + entities: + - uid: 7980 + components: + - type: Transform + pos: -31.5,-9.5 + parent: 2 +- proto: PosterLegitRenault + entities: + - uid: 8127 + components: + - type: Transform + pos: -50.5,-5.5 + parent: 2 +- proto: PosterLegitReportCrimes + entities: + - uid: 8040 + components: + - type: Transform + pos: -14.5,1.5 + parent: 2 +- proto: PosterLegitSafetyEyeProtection + entities: + - uid: 7810 + components: + - type: Transform + pos: 14.5,7.5 + parent: 2 +- proto: PosterLegitSafetyInternals + entities: + - uid: 7839 + components: + - type: Transform + pos: 32.5,-5.5 + parent: 2 +- proto: PosterLegitSafetyMothEpi + entities: + - uid: 7979 + components: + - type: Transform + pos: -36.5,-4.5 + parent: 2 +- proto: PosterLegitSafetyMothHardhat + entities: + - uid: 7786 + components: + - type: Transform + pos: 1.5,24.5 + parent: 2 +- proto: PosterLegitScience + entities: + - uid: 7809 + components: + - type: Transform + pos: 23.5,10.5 + parent: 2 +- proto: PosterLegitWalk + entities: + - uid: 7902 + components: + - type: Transform + pos: 54.5,-6.5 + parent: 2 +- proto: PosterLegitWorkForAFuture + entities: + - uid: 7838 + components: + - type: Transform + pos: 16.5,-2.5 + parent: 2 +- proto: PottedPlantBioluminscent + entities: + - uid: 3045 + components: + - type: Transform + pos: 3.5,10.5 + parent: 2 + - uid: 3046 + components: + - type: Transform + pos: 3.5,19.5 + parent: 2 + - uid: 3047 + components: + - type: Transform + pos: -4.5,19.5 + parent: 2 + - uid: 3048 + components: + - type: Transform + pos: -4.5,10.5 + parent: 2 +- proto: PottedPlantRandom + entities: + - uid: 394 + components: + - type: Transform + pos: -12.5,-19.5 + parent: 2 + - uid: 395 + components: + - type: Transform + pos: -12.5,-13.5 + parent: 2 + - uid: 400 + components: + - type: Transform + pos: -13.5,-15.5 + parent: 2 + - uid: 402 + components: + - type: Transform + pos: -9.5,-15.5 + parent: 2 + - uid: 3162 + components: + - type: Transform + pos: -5.5,1.5 + parent: 2 + - uid: 3165 + components: + - type: Transform + pos: 4.5,-2.5 + parent: 2 + - uid: 7738 + components: + - type: Transform + pos: -5.5,-2.5 + parent: 2 + - uid: 7739 + components: + - type: Transform + pos: -4.5,23.5 + parent: 2 + - uid: 7806 + components: + - type: Transform + pos: 24.5,2.5 + parent: 2 + - uid: 7807 + components: + - type: Transform + pos: 20.5,-2.5 + parent: 2 + - uid: 7832 + components: + - type: Transform + pos: 26.5,6.5 + parent: 2 + - uid: 7833 + components: + - type: Transform + pos: 20.5,8.5 + parent: 2 + - uid: 7834 + components: + - type: Transform + pos: 35.5,6.5 + parent: 2 + - uid: 7847 + components: + - type: Transform + pos: 20.5,-9.5 + parent: 2 + - uid: 7848 + components: + - type: Transform + pos: 26.5,-8.5 + parent: 2 + - uid: 7849 + components: + - type: Transform + pos: 24.5,-14.5 + parent: 2 + - uid: 7850 + components: + - type: Transform + pos: 35.5,-12.5 + parent: 2 + - uid: 7900 + components: + - type: Transform + pos: 37.5,-1.5 + parent: 2 + - uid: 7903 + components: + - type: Transform + pos: 42.5,-14.5 + parent: 2 + - uid: 7904 + components: + - type: Transform + pos: 42.5,-8.5 + parent: 2 + - uid: 7924 + components: + - type: Transform + pos: 59.5,-12.5 + parent: 2 + - uid: 7940 + components: + - type: Transform + pos: 44.5,-23.5 + parent: 2 + - uid: 8008 + components: + - type: Transform + pos: -18.5,-1.5 + parent: 2 + - uid: 8009 + components: + - type: Transform + pos: -30.5,-1.5 + parent: 2 + - uid: 8010 + components: + - type: Transform + pos: -21.5,-5.5 + parent: 2 + - uid: 8011 + components: + - type: Transform + pos: -25.5,-9.5 + parent: 2 + - uid: 8012 + components: + - type: Transform + pos: -28.5,-14.5 + parent: 2 + - uid: 8014 + components: + - type: Transform + pos: -26.5,-19.5 + parent: 2 + - uid: 8025 + components: + - type: Transform + pos: -26.5,13.5 + parent: 2 + - uid: 8029 + components: + - type: Transform + pos: -18.5,4.5 + parent: 2 + - uid: 8088 + components: + - type: Transform + pos: -41.5,14.5 + parent: 2 + - uid: 8089 + components: + - type: Transform + pos: -39.5,14.5 + parent: 2 + - uid: 8090 + components: + - type: Transform + pos: -18.5,13.5 + parent: 2 + - uid: 8091 + components: + - type: Transform + pos: -15.5,8.5 + parent: 2 + - uid: 8097 + components: + - type: Transform + pos: -31.5,10.5 + parent: 2 + - uid: 8113 + components: + - type: Transform + pos: -45.5,-14.5 + parent: 2 + - uid: 8114 + components: + - type: Transform + pos: -45.5,-8.5 + parent: 2 + - uid: 8120 + components: + - type: Transform + pos: -54.5,-15.5 + parent: 2 + - uid: 8121 + components: + - type: Transform + pos: -51.5,-7.5 + parent: 2 + - uid: 8139 + components: + - type: Transform + pos: -55.5,-0.5 + parent: 2 + - uid: 8140 + components: + - type: Transform + pos: -50.5,1.5 + parent: 2 + - uid: 8141 + components: + - type: Transform + pos: -55.5,-19.5 + parent: 2 + - uid: 8142 + components: + - type: Transform + pos: -54.5,-28.5 + parent: 2 + - uid: 8143 + components: + - type: Transform + pos: -51.5,-24.5 + parent: 2 + - uid: 8172 + components: + - type: Transform + pos: -32.5,-21.5 + parent: 2 + - uid: 8173 + components: + - type: Transform + pos: -34.5,-33.5 + parent: 2 + - uid: 8174 + components: + - type: Transform + pos: -34.5,-28.5 + parent: 2 + - uid: 8181 + components: + - type: Transform + pos: 2.5,-16.5 + parent: 2 + - uid: 8252 + components: + - type: Transform + pos: 1.5,-30.5 + parent: 2 + - uid: 8253 + components: + - type: Transform + pos: -2.5,-30.5 + parent: 2 + - uid: 8254 + components: + - type: Transform + pos: -2.5,-34.5 + parent: 2 + - uid: 8255 + components: + - type: Transform + pos: 1.5,-34.5 + parent: 2 + - uid: 8271 + components: + - type: Transform + pos: -7.5,-39.5 + parent: 2 + - uid: 8303 + components: + - type: Transform + pos: 7.5,-41.5 + parent: 2 + - uid: 8305 + components: + - type: Transform + pos: -3.5,-45.5 + parent: 2 + - uid: 8306 + components: + - type: Transform + pos: -0.5,-48.5 + parent: 2 + - uid: 8307 + components: + - type: Transform + pos: 10.5,-67.5 + parent: 2 + - uid: 8308 + components: + - type: Transform + pos: -11.5,-67.5 + parent: 2 + - uid: 8309 + components: + - type: Transform + pos: 11.5,-48.5 + parent: 2 + - uid: 8310 + components: + - type: Transform + pos: 15.5,-36.5 + parent: 2 + - uid: 8311 + components: + - type: Transform + pos: -27.5,-38.5 + parent: 2 + - uid: 8329 + components: + - type: Transform + pos: 4.5,1.5 + parent: 2 +- proto: PottedPlantRD + entities: + - uid: 1291 + components: + - type: Transform + pos: 28.5,9.5 + parent: 2 +- proto: PowerCellMedium + entities: + - uid: 7909 + components: + - type: Transform + pos: 45.39687,-14.456472 + parent: 2 + - uid: 7972 + components: + - type: Transform + pos: -17.313217,-8.198296 + parent: 2 + - uid: 8056 + components: + - type: Transform + pos: -22.38413,13.144337 + parent: 2 +- proto: PowerCellRecharger + entities: + - uid: 2408 + components: + - type: Transform + pos: -22.5,13.5 + parent: 2 + - uid: 2410 + components: + - type: Transform + pos: 48.5,-14.5 + parent: 2 + - uid: 7991 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,-8.5 + parent: 2 +- proto: PowerCellSmall + entities: + - uid: 7818 + components: + - type: Transform + pos: 16.656042,3.7779863 + parent: 2 +- proto: Poweredlight + entities: + - uid: 370 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,1.5 + parent: 2 + - uid: 7563 + components: + - type: Transform + pos: -0.5,27.5 + parent: 2 + - uid: 7575 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,-7.5 + parent: 2 + - uid: 7576 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,17.5 + parent: 2 + - uid: 8304 + components: + - type: Transform + pos: 6.5,-59.5 + parent: 2 + - uid: 8313 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,21.5 + parent: 2 + - uid: 8314 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,21.5 + parent: 2 + - uid: 8315 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,12.5 + parent: 2 + - uid: 8316 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,12.5 + parent: 2 + - uid: 8317 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,17.5 + parent: 2 + - uid: 8318 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,19.5 + parent: 2 + - uid: 8319 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,-19.5 + parent: 2 + - uid: 8320 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-27.5 + parent: 2 + - uid: 8321 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,13.5 + parent: 2 + - uid: 8322 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,3.5 + parent: 2 + - uid: 8323 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,9.5 + parent: 2 + - uid: 8324 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,9.5 + parent: 2 + - uid: 8325 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,3.5 + parent: 2 + - uid: 8326 + components: + - type: Transform + pos: 2.5,-4.5 + parent: 2 + - uid: 8327 + components: + - type: Transform + pos: -3.5,-4.5 + parent: 2 + - uid: 8328 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-2.5 + parent: 2 + - uid: 8330 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-2.5 + parent: 2 + - uid: 8331 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,1.5 + parent: 2 + - uid: 8332 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,-8.5 + parent: 2 + - uid: 8333 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,-1.5 + parent: 2 + - uid: 8334 + components: + - type: Transform + pos: 14.5,0.5 + parent: 2 + - uid: 8335 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,6.5 + parent: 2 + - uid: 8336 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-10.5 + parent: 2 + - uid: 8337 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-10.5 + parent: 2 + - uid: 8338 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,1.5 + parent: 2 + - uid: 8339 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-2.5 + parent: 2 + - uid: 8340 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,-2.5 + parent: 2 + - uid: 8341 + components: + - type: Transform + pos: 10.5,1.5 + parent: 2 + - uid: 8342 + components: + - type: Transform + pos: -11.5,1.5 + parent: 2 + - uid: 8343 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-2.5 + parent: 2 + - uid: 8344 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,7.5 + parent: 2 + - uid: 8345 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,2.5 + parent: 2 + - uid: 8346 + components: + - type: Transform + pos: 8.5,7.5 + parent: 2 + - uid: 8347 + components: + - type: Transform + pos: -9.5,7.5 + parent: 2 + - uid: 8348 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,7.5 + parent: 2 + - uid: 8349 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,2.5 + parent: 2 + - uid: 8350 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,2.5 + parent: 2 + - uid: 8351 + components: + - type: Transform + pos: -9.5,-3.5 + parent: 2 + - uid: 8352 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-8.5 + parent: 2 + - uid: 8353 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,-3.5 + parent: 2 + - uid: 8354 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-8.5 + parent: 2 + - uid: 8355 + components: + - type: Transform + pos: 8.5,-3.5 + parent: 2 + - uid: 8356 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,2.5 + parent: 2 + - uid: 8357 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,-8.5 + parent: 2 + - uid: 8358 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,2.5 + parent: 2 + - uid: 8359 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,8.5 + parent: 2 + - uid: 8360 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,2.5 + parent: 2 + - uid: 8361 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,4.5 + parent: 2 + - uid: 8362 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,9.5 + parent: 2 + - uid: 8363 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,8.5 + parent: 2 + - uid: 8364 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,7.5 + parent: 2 + - type: DeviceLinkSink + links: + - 8665 + - uid: 8365 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,-3.5 + parent: 2 + - uid: 8366 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,-3.5 + parent: 2 + - uid: 8367 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,-13.5 + parent: 2 + - uid: 8368 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,-11.5 + parent: 2 + - uid: 8369 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,-8.5 + parent: 2 + - uid: 8370 + components: + - type: Transform + pos: 15.5,-3.5 + parent: 2 + - uid: 8371 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,-8.5 + parent: 2 + - uid: 8372 + components: + - type: Transform + pos: 31.5,-3.5 + parent: 2 + - uid: 8373 + components: + - type: Transform + pos: 29.5,-11.5 + parent: 2 + - uid: 8374 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,-15.5 + parent: 2 + - uid: 8375 + components: + - type: Transform + pos: 42.5,0.5 + parent: 2 + - uid: 8376 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,-13.5 + parent: 2 + - type: DeviceLinkSink + links: + - 8664 + - uid: 8377 + components: + - type: Transform + pos: 34.5,0.5 + parent: 2 + - uid: 8378 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,-1.5 + parent: 2 + - uid: 8379 + components: + - type: Transform + pos: 46.5,-8.5 + parent: 2 + - uid: 8380 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-5.5 + parent: 2 + - uid: 8381 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,-14.5 + parent: 2 + - uid: 8382 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 48.5,-10.5 + parent: 2 + - uid: 8383 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,-9.5 + parent: 2 + - uid: 8384 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,-6.5 + parent: 2 + - uid: 8385 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 52.5,-3.5 + parent: 2 + - uid: 8386 + components: + - type: Transform + pos: 48.5,-16.5 + parent: 2 + - uid: 8387 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 52.5,-19.5 + parent: 2 + - uid: 8388 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 57.5,-12.5 + parent: 2 + - uid: 8389 + components: + - type: Transform + pos: 38.5,-21.5 + parent: 2 + - uid: 8390 + components: + - type: Transform + pos: 57.5,-15.5 + parent: 2 + - type: DeviceLinkSink + links: + - 8666 + - uid: 8391 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,-35.5 + parent: 2 + - uid: 8392 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,-40.5 + parent: 2 + - uid: 8393 + components: + - type: Transform + pos: 22.5,-38.5 + parent: 2 + - uid: 8394 + components: + - type: Transform + pos: 18.5,-37.5 + parent: 2 + - uid: 8395 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,-41.5 + parent: 2 + - uid: 8396 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,2.5 + parent: 2 + - uid: 8397 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,-3.5 + parent: 2 + - uid: 8398 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,2.5 + parent: 2 + - uid: 8399 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,2.5 + parent: 2 + - uid: 8400 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-1.5 + parent: 2 + - uid: 8401 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-1.5 + parent: 2 + - uid: 8402 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,4.5 + parent: 2 + - uid: 8403 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,4.5 + parent: 2 + - uid: 8404 + components: + - type: Transform + pos: -15.5,8.5 + parent: 2 + - uid: 8405 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,11.5 + parent: 2 + - uid: 8407 + components: + - type: Transform + pos: -41.5,0.5 + parent: 2 + - uid: 8408 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,6.5 + parent: 2 + - uid: 8409 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,3.5 + parent: 2 + - uid: 8410 + components: + - type: Transform + pos: -40.5,8.5 + parent: 2 + - uid: 8412 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,16.5 + parent: 2 + - uid: 8413 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,10.5 + parent: 2 + - uid: 8414 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,10.5 + parent: 2 + - type: DeviceLinkSink + links: + - 8667 + - uid: 8415 + components: + - type: Transform + pos: -24.5,13.5 + parent: 2 + - uid: 8416 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,-15.5 + parent: 2 + - uid: 8417 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -49.5,-13.5 + parent: 2 + - uid: 8418 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -51.5,-5.5 + parent: 2 + - uid: 8419 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -58.5,-11.5 + parent: 2 + - uid: 8420 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -51.5,-17.5 + parent: 2 + - uid: 8421 + components: + - type: Transform + pos: -52.5,-0.5 + parent: 2 + - uid: 8422 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -52.5,-22.5 + parent: 2 + - uid: 8423 + components: + - type: Transform + pos: -49.5,-25.5 + parent: 2 + - type: DeviceLinkSink + links: + - 8670 + - uid: 8424 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -54.5,-28.5 + parent: 2 + - type: DeviceLinkSink + links: + - 8670 + - uid: 8425 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -52.5,1.5 + parent: 2 + - type: DeviceLinkSink + links: + - 8669 + - uid: 8426 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -48.5,2.5 + parent: 2 + - type: DeviceLinkSink + links: + - 8669 + - uid: 8427 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,-26.5 + parent: 2 + - uid: 8428 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,-23.5 + parent: 2 + - uid: 8429 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,-35.5 + parent: 2 + - uid: 8431 + components: + - type: Transform + pos: -19.5,-37.5 + parent: 2 + - uid: 8432 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,-41.5 + parent: 2 + - uid: 8433 + components: + - type: Transform + pos: -20.5,-5.5 + parent: 2 + - uid: 8434 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,-8.5 + parent: 2 + - uid: 8435 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-4.5 + parent: 2 + - uid: 8436 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,-8.5 + parent: 2 + - uid: 8437 + components: + - type: Transform + pos: -28.5,-5.5 + parent: 2 + - uid: 8438 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-4.5 + parent: 2 + - uid: 8439 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,-14.5 + parent: 2 + - uid: 8440 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-13.5 + parent: 2 + - uid: 8441 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,-19.5 + parent: 2 + - type: DeviceLinkSink + links: + - 8668 + - uid: 8442 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-13.5 + parent: 2 + - uid: 8443 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-13.5 + parent: 2 + - uid: 8444 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-18.5 + parent: 2 + - uid: 8445 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,-17.5 + parent: 2 + - uid: 8446 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,-16.5 + parent: 2 + - uid: 8447 + components: + - type: Transform + pos: -11.5,-10.5 + parent: 2 + - type: DeviceLinkSink + links: + - 8660 + - uid: 8448 + components: + - type: Transform + pos: -15.5,-10.5 + parent: 2 + - type: DeviceLinkSink + links: + - 8659 + - uid: 8449 + components: + - type: Transform + pos: -7.5,-10.5 + parent: 2 + - type: DeviceLinkSink + links: + - 8662 + - uid: 8450 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-25.5 + parent: 2 + - uid: 8451 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-20.5 + parent: 2 + - type: DeviceLinkSink + links: + - 8653 + - uid: 8452 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-22.5 + parent: 2 + - type: DeviceLinkSink + links: + - 8657 + - uid: 8453 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-22.5 + parent: 2 + - type: DeviceLinkSink + links: + - 8655 + - uid: 8454 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,-16.5 + parent: 2 + - uid: 8455 + components: + - type: Transform + pos: 3.5,-19.5 + parent: 2 + - uid: 8456 + components: + - type: Transform + pos: -4.5,-19.5 + parent: 2 + - uid: 8457 + components: + - type: Transform + pos: 6.5,-10.5 + parent: 2 + - uid: 8458 + components: + - type: Transform + pos: 10.5,-10.5 + parent: 2 + - uid: 8459 + components: + - type: Transform + pos: 14.5,-10.5 + parent: 2 + - uid: 8460 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,-22.5 + parent: 2 + - uid: 8461 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,-22.5 + parent: 2 + - uid: 8462 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-22.5 + parent: 2 + - uid: 8463 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-32.5 + parent: 2 + - uid: 8464 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-32.5 + parent: 2 + - uid: 8465 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,-33.5 + parent: 2 + - uid: 8466 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-34.5 + parent: 2 + - uid: 8467 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,-34.5 + parent: 2 + - uid: 8468 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-30.5 + parent: 2 + - uid: 8469 + components: + - type: Transform + pos: 13.5,-28.5 + parent: 2 + - uid: 8470 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-40.5 + parent: 2 + - uid: 8471 + components: + - type: Transform + pos: -7.5,-38.5 + parent: 2 + - uid: 8472 + components: + - type: Transform + pos: 6.5,-38.5 + parent: 2 + - uid: 8473 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,-40.5 + parent: 2 + - uid: 8474 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-46.5 + parent: 2 + - uid: 8475 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-46.5 + parent: 2 + - uid: 8476 + components: + - type: Transform + pos: -7.5,-59.5 + parent: 2 + - uid: 8477 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-48.5 + parent: 2 + - uid: 8478 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-52.5 + parent: 2 + - uid: 8479 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,-52.5 + parent: 2 + - uid: 8480 + components: + - type: Transform + pos: -13.5,-59.5 + parent: 2 + - uid: 8481 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-67.5 + parent: 2 + - uid: 8482 + components: + - type: Transform + pos: 12.5,-59.5 + parent: 2 + - uid: 8483 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-67.5 + parent: 2 + - uid: 8484 + components: + - type: Transform + pos: -3.5,-36.5 + parent: 2 + - uid: 8485 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-42.5 + parent: 2 + - uid: 8486 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-42.5 + parent: 2 + - uid: 8487 + components: + - type: Transform + pos: 2.5,-36.5 + parent: 2 + - uid: 8705 + components: + - type: Transform + pos: -24.5,-38.5 + parent: 2 + - uid: 8706 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,-40.5 + parent: 2 +- proto: PoweredLightBlueInterior + entities: + - uid: 8524 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,35.5 + parent: 2 +- proto: PoweredlightSodium + entities: + - uid: 8411 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,16.5 + parent: 2 +- proto: PoweredSmallLight + entities: + - uid: 8505 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-9.5 + parent: 2 + - uid: 8506 + components: + - type: Transform + pos: -43.5,3.5 + parent: 2 + - uid: 8507 + components: + - type: Transform + pos: -31.5,-10.5 + parent: 2 + - uid: 8508 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-26.5 + parent: 2 + - uid: 8509 + components: + - type: Transform + pos: 33.5,3.5 + parent: 2 + - uid: 8510 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,-6.5 + parent: 2 + - uid: 8511 + components: + - type: Transform + pos: 45.5,4.5 + parent: 2 + - uid: 8512 + components: + - type: Transform + pos: 51.5,2.5 + parent: 2 + - uid: 8513 + components: + - type: Transform + pos: 38.5,-5.5 + parent: 2 + - uid: 8514 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,-15.5 + parent: 2 + - uid: 8515 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,-64.5 + parent: 2 + - uid: 8516 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-64.5 + parent: 2 + - uid: 8517 + components: + - type: Transform + pos: -14.5,-57.5 + parent: 2 + - uid: 8518 + components: + - type: Transform + pos: -6.5,-57.5 + parent: 2 + - uid: 8519 + components: + - type: Transform + pos: 5.5,-57.5 + parent: 2 + - uid: 8520 + components: + - type: Transform + pos: 13.5,-57.5 + parent: 2 + - uid: 8521 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-64.5 + parent: 2 + - uid: 8522 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-64.5 + parent: 2 + - uid: 8523 + components: + - type: Transform + pos: -6.5,27.5 + parent: 2 + - uid: 8525 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,28.5 + parent: 2 +- proto: Rack + entities: + - uid: 129 + components: + - type: Transform + pos: 13.5,-14.5 + parent: 2 + - uid: 224 + components: + - type: Transform + pos: 13.5,-18.5 + parent: 2 + - uid: 408 + components: + - type: Transform + pos: -3.5,-21.5 + parent: 2 + - uid: 1025 + components: + - type: Transform + pos: 28.5,-3.5 + parent: 2 + - uid: 1067 + components: + - type: Transform + pos: 15.5,-8.5 + parent: 2 + - uid: 1169 + components: + - type: Transform + pos: 14.5,4.5 + parent: 2 + - uid: 1268 + components: + - type: Transform + pos: 21.5,4.5 + parent: 2 + - uid: 1391 + components: + - type: Transform + pos: 53.5,-5.5 + parent: 2 + - uid: 1431 + components: + - type: Transform + pos: 50.5,-20.5 + parent: 2 + - uid: 1888 + components: + - type: Transform + pos: -13.5,-8.5 + parent: 2 + - uid: 1933 + components: + - type: Transform + pos: -35.5,-8.5 + parent: 2 + - uid: 1934 + components: + - type: Transform + pos: -34.5,-8.5 + parent: 2 + - uid: 2184 + components: + - type: Transform + pos: -39.5,4.5 + parent: 2 + - uid: 2407 + components: + - type: Transform + pos: -28.5,15.5 + parent: 2 + - uid: 8529 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,31.5 + parent: 2 + - uid: 8537 + components: + - type: Transform + pos: 4.5,25.5 + parent: 2 + - uid: 8542 + components: + - type: Transform + pos: 46.5,6.5 + parent: 2 + - uid: 8543 + components: + - type: Transform + pos: 32.5,2.5 + parent: 2 + - uid: 8557 + components: + - type: Transform + pos: 38.5,-3.5 + parent: 2 + - uid: 8572 + components: + - type: Transform + pos: 5.5,-24.5 + parent: 2 + - uid: 8580 + components: + - type: Transform + pos: 10.5,-28.5 + parent: 2 + - uid: 8591 + components: + - type: Transform + pos: 10.5,-8.5 + parent: 2 + - uid: 8596 + components: + - type: Transform + pos: -48.5,0.5 + parent: 2 + - uid: 8608 + components: + - type: Transform + pos: -34.5,-10.5 + parent: 2 +- proto: RadioHandheld + entities: + - uid: 1074 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.641523,-5.024393 + parent: 2 + - uid: 7774 + components: + - type: Transform + pos: -2.5923243,1.5115548 + parent: 2 +- proto: RandomDrinkBottle + entities: + - uid: 2350 + components: + - type: Transform + pos: 36.5,9.5 + parent: 2 + - uid: 7851 + components: + - type: Transform + pos: 31.5,-10.5 + parent: 2 + - uid: 8080 + components: + - type: Transform + pos: -42.5,12.5 + parent: 2 + - uid: 8108 + components: + - type: Transform + pos: -58.5,-11.5 + parent: 2 + - uid: 8296 + components: + - type: Transform + pos: 15.5,-28.5 + parent: 2 + - uid: 8647 + components: + - type: Transform + pos: 50.5,-0.5 + parent: 2 +- proto: RandomDrinkGlass + entities: + - uid: 7778 + components: + - type: Transform + pos: 4.5,-6.5 + parent: 2 + - uid: 7816 + components: + - type: Transform + pos: 23.5,9.5 + parent: 2 + - uid: 8106 + components: + - type: Transform + pos: -53.5,-10.5 + parent: 2 + - uid: 8111 + components: + - type: Transform + pos: -51.5,-12.5 + parent: 2 + - uid: 8297 + components: + - type: Transform + pos: 17.5,-35.5 + parent: 2 +- proto: RandomFoodBakedSingle + entities: + - uid: 8220 + components: + - type: Transform + pos: -12.5,-11.5 + parent: 2 +- proto: RandomFoodMeal + entities: + - uid: 8048 + components: + - type: Transform + pos: -28.5,7.5 + parent: 2 + - uid: 8104 + components: + - type: Transform + pos: -51.5,-11.5 + parent: 2 + - uid: 8294 + components: + - type: Transform + pos: -2.5,-48.5 + parent: 2 +- proto: RandomFoodSingle + entities: + - uid: 7804 + components: + - type: Transform + pos: 25.5,-3.5 + parent: 2 + - uid: 8102 + components: + - type: Transform + pos: -53.5,-12.5 + parent: 2 +- proto: RandomInstruments + entities: + - uid: 1355 + components: + - type: Transform + pos: 49.5,-14.5 + parent: 2 + - uid: 8110 + components: + - type: Transform + pos: -52.5,-10.5 + parent: 2 + - uid: 8248 + components: + - type: Transform + pos: -15.5,-20.5 + parent: 2 +- proto: RandomPainting + entities: + - uid: 7784 + components: + - type: Transform + pos: 5.5,14.5 + parent: 2 + - uid: 7785 + components: + - type: Transform + pos: -6.5,14.5 + parent: 2 + - uid: 7811 + components: + - type: Transform + pos: 33.5,8.5 + parent: 2 + - uid: 7840 + components: + - type: Transform + pos: 30.5,-11.5 + parent: 2 + - uid: 7901 + components: + - type: Transform + pos: 56.5,-14.5 + parent: 2 + - uid: 7983 + components: + - type: Transform + pos: -27.5,-15.5 + parent: 2 + - uid: 8063 + components: + - type: Transform + pos: -36.5,10.5 + parent: 2 + - uid: 8067 + components: + - type: Transform + pos: -14.5,13.5 + parent: 2 + - uid: 8122 + components: + - type: Transform + pos: -58.5,-9.5 + parent: 2 + - uid: 8123 + components: + - type: Transform + pos: -51.5,0.5 + parent: 2 + - uid: 8124 + components: + - type: Transform + pos: -55.5,-23.5 + parent: 2 + - uid: 8184 + components: + - type: Transform + pos: -17.5,-14.5 + parent: 2 +- proto: RandomPosterAny + entities: + - uid: 8194 + components: + - type: Transform + pos: -11.5,-9.5 + parent: 2 + - uid: 8626 + components: + - type: Transform + pos: 39.5,-13.5 + parent: 2 + - uid: 8627 + components: + - type: Transform + pos: 49.5,-0.5 + parent: 2 +- proto: RandomPosterContraband + entities: + - uid: 8625 + components: + - type: Transform + pos: -33.5,-11.5 + parent: 2 +- proto: RandomPosterLegit + entities: + - uid: 1465 + components: + - type: Transform + pos: 34.5,-32.5 + parent: 2 + - uid: 7781 + components: + - type: Transform + pos: -2.5,-7.5 + parent: 2 + - uid: 7782 + components: + - type: Transform + pos: 6.5,5.5 + parent: 2 + - uid: 7783 + components: + - type: Transform + pos: -7.5,5.5 + parent: 2 + - uid: 7805 + components: + - type: Transform + pos: 20.5,1.5 + parent: 2 + - uid: 7906 + components: + - type: Transform + pos: 38.5,1.5 + parent: 2 + - uid: 7907 + components: + - type: Transform + pos: 45.5,-16.5 + parent: 2 + - uid: 7908 + components: + - type: Transform + pos: 41.5,-5.5 + parent: 2 + - uid: 7939 + components: + - type: Transform + pos: 39.5,-20.5 + parent: 2 + - uid: 7949 + components: + - type: Transform + pos: 25.5,-37.5 + parent: 2 + - uid: 8068 + components: + - type: Transform + pos: -22.5,14.5 + parent: 2 + - uid: 8159 + components: + - type: Transform + pos: -38.5,-2.5 + parent: 2 + - uid: 8160 + components: + - type: Transform + pos: -45.5,-4.5 + parent: 2 + - uid: 8161 + components: + - type: Transform + pos: -41.5,-15.5 + parent: 2 + - uid: 8162 + components: + - type: Transform + pos: -38.5,-24.5 + parent: 2 + - uid: 8182 + components: + - type: Transform + pos: -35.5,-37.5 + parent: 2 + - uid: 8183 + components: + - type: Transform + pos: -25.5,-41.5 + parent: 2 + - uid: 8192 + components: + - type: Transform + pos: -9.5,-18.5 + parent: 2 + - uid: 8257 + components: + - type: Transform + pos: 4.5,-24.5 + parent: 2 + - uid: 8258 + components: + - type: Transform + pos: -5.5,-30.5 + parent: 2 + - uid: 8259 + components: + - type: Transform + pos: 7.5,-35.5 + parent: 2 + - uid: 8260 + components: + - type: Transform + pos: 11.5,-45.5 + parent: 2 + - uid: 8261 + components: + - type: Transform + pos: -2.5,-43.5 + parent: 2 + - uid: 8262 + components: + - type: Transform + pos: -13.5,-56.5 + parent: 2 + - uid: 8263 + components: + - type: Transform + pos: -14.5,-41.5 + parent: 2 + - uid: 8658 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-13.5 + parent: 2 +- proto: RandomVending + entities: + - uid: 3004 + components: + - type: Transform + pos: -7.5,-14.5 + parent: 2 + - uid: 3164 + components: + - type: Transform + pos: 5.5,5.5 + parent: 2 + - uid: 8176 + components: + - type: Transform + pos: -26.5,-38.5 + parent: 2 + - uid: 8203 + components: + - type: Transform + pos: -8.5,-37.5 + parent: 2 +- proto: RandomVendingDrinks + entities: + - uid: 3069 + components: + - type: Transform + pos: 4.5,23.5 + parent: 2 +- proto: RandomVendingSnacks + entities: + - uid: 3068 + components: + - type: Transform + pos: -5.5,23.5 + parent: 2 +- proto: ReinforcedWindow + entities: + - uid: 186 + components: + - type: Transform + pos: 3.5,-16.5 + parent: 2 + - uid: 271 + components: + - type: Transform + pos: -14.5,-23.5 + parent: 2 + - uid: 272 + components: + - type: Transform + pos: -8.5,-23.5 + parent: 2 + - uid: 276 + components: + - type: Transform + pos: -15.5,-23.5 + parent: 2 + - uid: 277 + components: + - type: Transform + pos: -12.5,-23.5 + parent: 2 + - uid: 279 + components: + - type: Transform + pos: -11.5,-23.5 + parent: 2 + - uid: 280 + components: + - type: Transform + pos: -10.5,-23.5 + parent: 2 + - uid: 281 + components: + - type: Transform + pos: -7.5,-23.5 + parent: 2 + - uid: 330 + components: + - type: Transform + pos: 19.5,-39.5 + parent: 2 + - uid: 497 + components: + - type: Transform + pos: 17.5,-39.5 + parent: 2 + - uid: 529 + components: + - type: Transform + pos: -2.5,-28.5 + parent: 2 + - uid: 531 + components: + - type: Transform + pos: -2.5,-27.5 + parent: 2 + - uid: 532 + components: + - type: Transform + pos: -2.5,-26.5 + parent: 2 + - uid: 565 + components: + - type: Transform + pos: 6.5,-55.5 + parent: 2 + - uid: 566 + components: + - type: Transform + pos: 2.5,-49.5 + parent: 2 + - uid: 567 + components: + - type: Transform + pos: 3.5,-49.5 + parent: 2 + - uid: 570 + components: + - type: Transform + pos: -4.5,-49.5 + parent: 2 + - uid: 571 + components: + - type: Transform + pos: -3.5,-49.5 + parent: 2 + - uid: 572 + components: + - type: Transform + pos: 6.5,-54.5 + parent: 2 + - uid: 573 + components: + - type: Transform + pos: 6.5,-53.5 + parent: 2 + - uid: 574 + components: + - type: Transform + pos: -7.5,-55.5 + parent: 2 + - uid: 575 + components: + - type: Transform + pos: -7.5,-54.5 + parent: 2 + - uid: 576 + components: + - type: Transform + pos: -7.5,-53.5 + parent: 2 + - uid: 577 + components: + - type: Transform + pos: 5.5,-59.5 + parent: 2 + - uid: 578 + components: + - type: Transform + pos: 5.5,-60.5 + parent: 2 + - uid: 579 + components: + - type: Transform + pos: 5.5,-61.5 + parent: 2 + - uid: 580 + components: + - type: Transform + pos: 5.5,-62.5 + parent: 2 + - uid: 581 + components: + - type: Transform + pos: -6.5,-62.5 + parent: 2 + - uid: 582 + components: + - type: Transform + pos: -6.5,-61.5 + parent: 2 + - uid: 583 + components: + - type: Transform + pos: -6.5,-60.5 + parent: 2 + - uid: 584 + components: + - type: Transform + pos: -6.5,-59.5 + parent: 2 + - uid: 585 + components: + - type: Transform + pos: -13.5,-66.5 + parent: 2 + - uid: 586 + components: + - type: Transform + pos: -12.5,-67.5 + parent: 2 + - uid: 587 + components: + - type: Transform + pos: 6.5,-66.5 + parent: 2 + - uid: 588 + components: + - type: Transform + pos: 6.5,-67.5 + parent: 2 + - uid: 589 + components: + - type: Transform + pos: -11.5,-68.5 + parent: 2 + - uid: 591 + components: + - type: Transform + pos: 7.5,-67.5 + parent: 2 + - uid: 610 + components: + - type: Transform + pos: -14.5,-62.5 + parent: 2 + - uid: 611 + components: + - type: Transform + pos: -13.5,-67.5 + parent: 2 + - uid: 612 + components: + - type: Transform + pos: -12.5,-68.5 + parent: 2 + - uid: 613 + components: + - type: Transform + pos: -7.5,-66.5 + parent: 2 + - uid: 622 + components: + - type: Transform + pos: -4.5,-48.5 + parent: 2 + - uid: 623 + components: + - type: Transform + pos: -5.5,-48.5 + parent: 2 + - uid: 624 + components: + - type: Transform + pos: 3.5,-48.5 + parent: 2 + - uid: 625 + components: + - type: Transform + pos: 4.5,-48.5 + parent: 2 + - uid: 674 + components: + - type: Transform + pos: -8.5,-68.5 + parent: 2 + - uid: 676 + components: + - type: Transform + pos: -7.5,-67.5 + parent: 2 + - uid: 677 + components: + - type: Transform + pos: -8.5,-67.5 + parent: 2 + - uid: 678 + components: + - type: Transform + pos: -9.5,-68.5 + parent: 2 + - uid: 684 + components: + - type: Transform + pos: -14.5,-60.5 + parent: 2 + - uid: 685 + components: + - type: Transform + pos: -14.5,-59.5 + parent: 2 + - uid: 686 + components: + - type: Transform + pos: -4.5,-44.5 + parent: 2 + - uid: 695 + components: + - type: Transform + pos: 13.5,-62.5 + parent: 2 + - uid: 699 + components: + - type: Transform + pos: 12.5,-53.5 + parent: 2 + - uid: 700 + components: + - type: Transform + pos: 12.5,-54.5 + parent: 2 + - uid: 701 + components: + - type: Transform + pos: 12.5,-55.5 + parent: 2 + - uid: 708 + components: + - type: Transform + pos: 12.5,-48.5 + parent: 2 + - uid: 709 + components: + - type: Transform + pos: 12.5,-49.5 + parent: 2 + - uid: 716 + components: + - type: Transform + pos: 3.5,-44.5 + parent: 2 + - uid: 717 + components: + - type: Transform + pos: 4.5,-44.5 + parent: 2 + - uid: 718 + components: + - type: Transform + pos: 5.5,-44.5 + parent: 2 + - uid: 731 + components: + - type: Transform + pos: -13.5,-55.5 + parent: 2 + - uid: 733 + components: + - type: Transform + pos: -14.5,-61.5 + parent: 2 + - uid: 747 + components: + - type: Transform + pos: -13.5,-53.5 + parent: 2 + - uid: 748 + components: + - type: Transform + pos: -13.5,-54.5 + parent: 2 + - uid: 756 + components: + - type: Transform + pos: 12.5,-47.5 + parent: 2 + - uid: 773 + components: + - type: Transform + pos: 13.5,-61.5 + parent: 2 + - uid: 789 + components: + - type: Transform + pos: -6.5,-44.5 + parent: 2 + - uid: 790 + components: + - type: Transform + pos: -5.5,-44.5 + parent: 2 + - uid: 799 + components: + - type: Transform + pos: -13.5,-47.5 + parent: 2 + - uid: 800 + components: + - type: Transform + pos: -13.5,-48.5 + parent: 2 + - uid: 801 + components: + - type: Transform + pos: -13.5,-49.5 + parent: 2 + - uid: 802 + components: + - type: Transform + pos: 13.5,-60.5 + parent: 2 + - uid: 803 + components: + - type: Transform + pos: 13.5,-59.5 + parent: 2 + - uid: 817 + components: + - type: Transform + pos: 7.5,-68.5 + parent: 2 + - uid: 818 + components: + - type: Transform + pos: 8.5,-68.5 + parent: 2 + - uid: 819 + components: + - type: Transform + pos: 10.5,-68.5 + parent: 2 + - uid: 820 + components: + - type: Transform + pos: 11.5,-68.5 + parent: 2 + - uid: 821 + components: + - type: Transform + pos: 11.5,-67.5 + parent: 2 + - uid: 822 + components: + - type: Transform + pos: 12.5,-67.5 + parent: 2 + - uid: 823 + components: + - type: Transform + pos: 12.5,-66.5 + parent: 2 + - uid: 843 + components: + - type: Transform + pos: -6.5,-40.5 + parent: 2 + - uid: 844 + components: + - type: Transform + pos: -6.5,-39.5 + parent: 2 + - uid: 845 + components: + - type: Transform + pos: -6.5,-38.5 + parent: 2 + - uid: 846 + components: + - type: Transform + pos: -1.5,-36.5 + parent: 2 + - uid: 847 + components: + - type: Transform + pos: -0.5,-36.5 + parent: 2 + - uid: 848 + components: + - type: Transform + pos: 0.5,-36.5 + parent: 2 + - uid: 849 + components: + - type: Transform + pos: 5.5,-38.5 + parent: 2 + - uid: 850 + components: + - type: Transform + pos: 5.5,-39.5 + parent: 2 + - uid: 851 + components: + - type: Transform + pos: 5.5,-40.5 + parent: 2 + - uid: 852 + components: + - type: Transform + pos: 0.5,-42.5 + parent: 2 + - uid: 853 + components: + - type: Transform + pos: -0.5,-42.5 + parent: 2 + - uid: 854 + components: + - type: Transform + pos: -1.5,-42.5 + parent: 2 + - uid: 916 + components: + - type: Transform + pos: -18.5,-39.5 + parent: 2 + - uid: 917 + components: + - type: Transform + pos: -20.5,-39.5 + parent: 2 + - uid: 970 + components: + - type: Transform + pos: 23.5,-11.5 + parent: 2 + - uid: 974 + components: + - type: Transform + pos: 26.5,-10.5 + parent: 2 + - uid: 975 + components: + - type: Transform + pos: 25.5,-10.5 + parent: 2 + - uid: 1035 + components: + - type: Transform + pos: 24.5,-4.5 + parent: 2 + - uid: 1036 + components: + - type: Transform + pos: 22.5,-4.5 + parent: 2 + - uid: 1056 + components: + - type: Transform + pos: 23.5,-13.5 + parent: 2 + - uid: 1063 + components: + - type: Transform + pos: 23.5,-12.5 + parent: 2 + - uid: 1131 + components: + - type: Transform + pos: 25.5,3.5 + parent: 2 + - uid: 1132 + components: + - type: Transform + pos: 21.5,3.5 + parent: 2 + - uid: 1202 + components: + - type: Transform + pos: 27.5,6.5 + parent: 2 + - uid: 1203 + components: + - type: Transform + pos: 27.5,7.5 + parent: 2 + - uid: 1251 + components: + - type: Transform + pos: 35.5,10.5 + parent: 2 + - uid: 1252 + components: + - type: Transform + pos: 36.5,10.5 + parent: 2 + - uid: 1253 + components: + - type: Transform + pos: 37.5,10.5 + parent: 2 + - uid: 1254 + components: + - type: Transform + pos: 37.5,9.5 + parent: 2 + - uid: 1255 + components: + - type: Transform + pos: 38.5,9.5 + parent: 2 + - uid: 1308 + components: + - type: Transform + pos: 47.5,-13.5 + parent: 2 + - uid: 1309 + components: + - type: Transform + pos: 47.5,-14.5 + parent: 2 + - uid: 1311 + components: + - type: Transform + pos: 47.5,-9.5 + parent: 2 + - uid: 1318 + components: + - type: Transform + pos: 47.5,-8.5 + parent: 2 + - uid: 1407 + components: + - type: Transform + pos: 54.5,-13.5 + parent: 2 + - uid: 1408 + components: + - type: Transform + pos: 54.5,-12.5 + parent: 2 + - uid: 1409 + components: + - type: Transform + pos: 54.5,-11.5 + parent: 2 + - uid: 1516 + components: + - type: Transform + pos: 60.5,-12.5 + parent: 2 + - uid: 1517 + components: + - type: Transform + pos: 60.5,-11.5 + parent: 2 + - uid: 1518 + components: + - type: Transform + pos: 60.5,-10.5 + parent: 2 + - uid: 1519 + components: + - type: Transform + pos: 61.5,-14.5 + parent: 2 + - uid: 1520 + components: + - type: Transform + pos: 61.5,-15.5 + parent: 2 + - uid: 1649 + components: + - type: Transform + pos: -2.5,-3.5 + parent: 2 + - uid: 1650 + components: + - type: Transform + pos: -1.5,-3.5 + parent: 2 + - uid: 1651 + components: + - type: Transform + pos: -0.5,-3.5 + parent: 2 + - uid: 1652 + components: + - type: Transform + pos: 0.5,-3.5 + parent: 2 + - uid: 1653 + components: + - type: Transform + pos: 1.5,-3.5 + parent: 2 + - uid: 1654 + components: + - type: Transform + pos: 1.5,2.5 + parent: 2 + - uid: 1655 + components: + - type: Transform + pos: 0.5,2.5 + parent: 2 + - uid: 1656 + components: + - type: Transform + pos: -0.5,2.5 + parent: 2 + - uid: 1657 + components: + - type: Transform + pos: -1.5,2.5 + parent: 2 + - uid: 1658 + components: + - type: Transform + pos: -2.5,2.5 + parent: 2 + - uid: 1659 + components: + - type: Transform + pos: -4.5,0.5 + parent: 2 + - uid: 1660 + components: + - type: Transform + pos: -4.5,-1.5 + parent: 2 + - uid: 1661 + components: + - type: Transform + pos: 3.5,-1.5 + parent: 2 + - uid: 1662 + components: + - type: Transform + pos: 3.5,0.5 + parent: 2 + - uid: 1820 + components: + - type: Transform + pos: 9.5,-0.5 + parent: 2 + - uid: 1821 + components: + - type: Transform + pos: 11.5,-0.5 + parent: 2 + - uid: 1822 + components: + - type: Transform + pos: -0.5,-9.5 + parent: 2 + - uid: 1823 + components: + - type: Transform + pos: -0.5,10.5 + parent: 2 + - uid: 1824 + components: + - type: Transform + pos: -0.5,8.5 + parent: 2 + - uid: 1825 + components: + - type: Transform + pos: -10.5,-0.5 + parent: 2 + - uid: 1826 + components: + - type: Transform + pos: -12.5,-0.5 + parent: 2 + - uid: 1827 + components: + - type: Transform + pos: -0.5,-11.5 + parent: 2 + - uid: 1901 + components: + - type: Transform + pos: -26.5,-10.5 + parent: 2 + - uid: 1902 + components: + - type: Transform + pos: -25.5,-10.5 + parent: 2 + - uid: 1903 + components: + - type: Transform + pos: -24.5,-10.5 + parent: 2 + - uid: 2052 + components: + - type: Transform + pos: -25.5,-4.5 + parent: 2 + - uid: 2053 + components: + - type: Transform + pos: -23.5,-4.5 + parent: 2 + - uid: 2141 + components: + - type: Transform + pos: -26.5,3.5 + parent: 2 + - uid: 2142 + components: + - type: Transform + pos: -24.5,3.5 + parent: 2 + - uid: 2143 + components: + - type: Transform + pos: -22.5,3.5 + parent: 2 + - uid: 2269 + components: + - type: Transform + pos: -29.5,12.5 + parent: 2 + - uid: 2270 + components: + - type: Transform + pos: -29.5,13.5 + parent: 2 + - uid: 2271 + components: + - type: Transform + pos: -19.5,12.5 + parent: 2 + - uid: 2272 + components: + - type: Transform + pos: -19.5,13.5 + parent: 2 + - uid: 2300 + components: + - type: Transform + pos: -17.5,15.5 + parent: 2 + - uid: 2301 + components: + - type: Transform + pos: -16.5,15.5 + parent: 2 + - uid: 2302 + components: + - type: Transform + pos: -15.5,15.5 + parent: 2 + - uid: 2330 + components: + - type: Transform + pos: -33.5,16.5 + parent: 2 + - uid: 2335 + components: + - type: Transform + pos: -34.5,16.5 + parent: 2 + - uid: 2338 + components: + - type: Transform + pos: -35.5,16.5 + parent: 2 + - uid: 2340 + components: + - type: Transform + pos: -20.5,18.5 + parent: 2 + - uid: 2365 + components: + - type: Transform + pos: -43.5,10.5 + parent: 2 + - uid: 2366 + components: + - type: Transform + pos: -43.5,11.5 + parent: 2 + - uid: 2367 + components: + - type: Transform + pos: -43.5,12.5 + parent: 2 + - uid: 2396 + components: + - type: Transform + pos: -35.5,15.5 + parent: 2 + - uid: 2397 + components: + - type: Transform + pos: -21.5,18.5 + parent: 2 + - uid: 2398 + components: + - type: Transform + pos: -23.5,18.5 + parent: 2 + - uid: 2399 + components: + - type: Transform + pos: -24.5,18.5 + parent: 2 + - uid: 2400 + components: + - type: Transform + pos: -26.5,18.5 + parent: 2 + - uid: 2401 + components: + - type: Transform + pos: -27.5,18.5 + parent: 2 + - uid: 2418 + components: + - type: Transform + pos: -29.5,1.5 + parent: 2 + - uid: 2419 + components: + - type: Transform + pos: -28.5,1.5 + parent: 2 + - uid: 2420 + components: + - type: Transform + pos: -31.5,1.5 + parent: 2 + - uid: 2421 + components: + - type: Transform + pos: -32.5,1.5 + parent: 2 + - uid: 2422 + components: + - type: Transform + pos: -30.5,3.5 + parent: 2 + - uid: 2423 + components: + - type: Transform + pos: -29.5,3.5 + parent: 2 + - uid: 2424 + components: + - type: Transform + pos: -20.5,1.5 + parent: 2 + - uid: 2425 + components: + - type: Transform + pos: -19.5,1.5 + parent: 2 + - uid: 2426 + components: + - type: Transform + pos: -19.5,3.5 + parent: 2 + - uid: 2427 + components: + - type: Transform + pos: -18.5,3.5 + parent: 2 + - uid: 2428 + components: + - type: Transform + pos: -17.5,1.5 + parent: 2 + - uid: 2429 + components: + - type: Transform + pos: -16.5,1.5 + parent: 2 + - uid: 2499 + components: + - type: Transform + pos: -52.5,-16.5 + parent: 2 + - uid: 2500 + components: + - type: Transform + pos: -51.5,-16.5 + parent: 2 + - uid: 2501 + components: + - type: Transform + pos: -52.5,-6.5 + parent: 2 + - uid: 2502 + components: + - type: Transform + pos: -51.5,-6.5 + parent: 2 + - uid: 2503 + components: + - type: Transform + pos: -47.5,-9.5 + parent: 2 + - uid: 2504 + components: + - type: Transform + pos: -47.5,-10.5 + parent: 2 + - uid: 2505 + components: + - type: Transform + pos: -47.5,-12.5 + parent: 2 + - uid: 2506 + components: + - type: Transform + pos: -47.5,-13.5 + parent: 2 + - uid: 2509 + components: + - type: Transform + pos: -56.5,-8.5 + parent: 2 + - uid: 2510 + components: + - type: Transform + pos: -57.5,-8.5 + parent: 2 + - uid: 2515 + components: + - type: Transform + pos: -57.5,-14.5 + parent: 2 + - uid: 2516 + components: + - type: Transform + pos: -56.5,-14.5 + parent: 2 + - uid: 2518 + components: + - type: Transform + pos: -59.5,-12.5 + parent: 2 + - uid: 2520 + components: + - type: Transform + pos: -59.5,-10.5 + parent: 2 + - uid: 2625 + components: + - type: Transform + pos: -53.5,6.5 + parent: 2 + - uid: 2626 + components: + - type: Transform + pos: -52.5,6.5 + parent: 2 + - uid: 2627 + components: + - type: Transform + pos: -51.5,6.5 + parent: 2 + - uid: 2673 + components: + - type: Transform + pos: -56.5,-3.5 + parent: 2 + - uid: 2674 + components: + - type: Transform + pos: -56.5,-2.5 + parent: 2 + - uid: 2675 + components: + - type: Transform + pos: -56.5,-1.5 + parent: 2 + - uid: 2676 + components: + - type: Transform + pos: -56.5,-0.5 + parent: 2 + - uid: 2677 + components: + - type: Transform + pos: -56.5,2.5 + parent: 2 + - uid: 2678 + components: + - type: Transform + pos: -56.5,3.5 + parent: 2 + - uid: 2727 + components: + - type: Transform + pos: -56.5,-18.5 + parent: 2 + - uid: 2728 + components: + - type: Transform + pos: -56.5,-20.5 + parent: 2 + - uid: 2729 + components: + - type: Transform + pos: -56.5,-22.5 + parent: 2 + - uid: 2785 + components: + - type: Transform + pos: -56.5,-27.5 + parent: 2 + - uid: 2788 + components: + - type: Transform + pos: -56.5,-26.5 + parent: 2 + - uid: 2818 + components: + - type: Transform + pos: -56.5,-25.5 + parent: 2 + - uid: 2819 + components: + - type: Transform + pos: -53.5,-29.5 + parent: 2 + - uid: 2820 + components: + - type: Transform + pos: -51.5,-29.5 + parent: 2 + - uid: 3024 + components: + - type: Transform + pos: -2.5,18.5 + parent: 2 + - uid: 3025 + components: + - type: Transform + pos: -2.5,17.5 + parent: 2 + - uid: 3026 + components: + - type: Transform + pos: -2.5,15.5 + parent: 2 + - uid: 3027 + components: + - type: Transform + pos: -2.5,14.5 + parent: 2 + - uid: 3028 + components: + - type: Transform + pos: -2.5,12.5 + parent: 2 + - uid: 3029 + components: + - type: Transform + pos: -2.5,11.5 + parent: 2 + - uid: 3030 + components: + - type: Transform + pos: 1.5,11.5 + parent: 2 + - uid: 3031 + components: + - type: Transform + pos: 1.5,12.5 + parent: 2 + - uid: 3032 + components: + - type: Transform + pos: 1.5,14.5 + parent: 2 + - uid: 3033 + components: + - type: Transform + pos: 1.5,15.5 + parent: 2 + - uid: 3034 + components: + - type: Transform + pos: 1.5,17.5 + parent: 2 + - uid: 3035 + components: + - type: Transform + pos: 1.5,18.5 + parent: 2 + - uid: 3352 + components: + - type: Transform + pos: 54.5,0.5 + parent: 2 + - uid: 3353 + components: + - type: Transform + pos: 54.5,1.5 + parent: 2 + - uid: 3354 + components: + - type: Transform + pos: 54.5,2.5 + parent: 2 + - uid: 5693 + components: + - type: Transform + pos: 17.5,9.5 + parent: 2 + - uid: 5694 + components: + - type: Transform + pos: 16.5,9.5 + parent: 2 + - uid: 5695 + components: + - type: Transform + pos: 15.5,9.5 + parent: 2 + - uid: 7812 + components: + - type: Transform + pos: 32.5,10.5 + parent: 2 + - uid: 7813 + components: + - type: Transform + pos: 31.5,10.5 + parent: 2 + - uid: 7886 + components: + - type: Transform + pos: 34.5,-35.5 + parent: 2 + - uid: 7941 + components: + - type: Transform + pos: 45.5,-21.5 + parent: 2 + - uid: 7943 + components: + - type: Transform + pos: 45.5,-23.5 + parent: 2 + - uid: 7944 + components: + - type: Transform + pos: 44.5,-24.5 + parent: 2 + - uid: 7946 + components: + - type: Transform + pos: 42.5,-24.5 + parent: 2 + - uid: 7951 + components: + - type: Transform + pos: 34.5,-36.5 + parent: 2 + - uid: 7952 + components: + - type: Transform + pos: 34.5,-37.5 + parent: 2 + - uid: 8166 + components: + - type: Transform + pos: -35.5,-34.5 + parent: 2 + - uid: 8167 + components: + - type: Transform + pos: -35.5,-32.5 + parent: 2 + - uid: 8168 + components: + - type: Transform + pos: -35.5,-31.5 + parent: 2 + - uid: 8169 + components: + - type: Transform + pos: -35.5,-30.5 + parent: 2 + - uid: 8170 + components: + - type: Transform + pos: -35.5,-29.5 + parent: 2 + - uid: 8171 + components: + - type: Transform + pos: -35.5,-27.5 + parent: 2 +- proto: RubberStampApproved + entities: + - uid: 1097 + components: + - type: Transform + pos: 20.660002,-5.9933825 + parent: 2 + - uid: 8085 + components: + - type: Transform + pos: -34.58822,15.763747 + parent: 2 + - uid: 8151 + components: + - type: Transform + pos: -50.348988,-20.302904 + parent: 2 +- proto: RubberStampDenied + entities: + - uid: 1096 + components: + - type: Transform + pos: 20.394657,-6.1408753 + parent: 2 + - uid: 8081 + components: + - type: Transform + pos: -34.52919,15.52776 + parent: 2 + - uid: 8152 + components: + - type: Transform + pos: -50.64414,-20.125914 + parent: 2 +- proto: SalvageCanisterSpawner + entities: + - uid: 8532 + components: + - type: Transform + pos: -3.5,25.5 + parent: 2 + - uid: 8544 + components: + - type: Transform + pos: 41.5,5.5 + parent: 2 + - uid: 8561 + components: + - type: Transform + pos: 38.5,-9.5 + parent: 2 + - uid: 8604 + components: + - type: Transform + pos: -34.5,-15.5 + parent: 2 + - uid: 8618 + components: + - type: Transform + pos: -31.5,-12.5 + parent: 2 +- proto: SalvagePartsT2Spawner + entities: + - uid: 7831 + components: + - type: Transform + pos: 17.5,8.5 + parent: 2 +- proto: SheetSteel10 + entities: + - uid: 1536 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.210487,-16.425406 + parent: 2 +- proto: ShowcaseRobot + entities: + - uid: 3009 + components: + - type: Transform + pos: 4.5,17.5 + parent: 2 +- proto: ShowcaseRobotAntique + entities: + - uid: 3010 + components: + - type: Transform + pos: -5.5,17.5 + parent: 2 +- proto: ShowcaseRobotMarauder + entities: + - uid: 7726 + components: + - type: Transform + pos: 4.5,12.5 + parent: 2 +- proto: ShowcaseRobotWhite + entities: + - uid: 3166 + components: + - type: Transform + pos: -5.5,12.5 + parent: 2 +- proto: ShuttleWindow + entities: + - uid: 3129 + components: + - type: Transform + pos: -8.5,35.5 + parent: 2 + - uid: 3135 + components: + - type: Transform + pos: -8.5,38.5 + parent: 2 +- proto: SignalButton + entities: + - uid: 8665 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,5.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 8364: + - Pressed: Toggle + - uid: 8666 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 59.5,-18.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 8390: + - Pressed: Toggle + - uid: 8667 + components: + - type: Transform + pos: -38.5,14.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 8414: + - Pressed: Toggle + - uid: 8668 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,-20.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 8441: + - Pressed: Toggle + - uid: 8669 + components: + - type: Transform + pos: -48.5,5.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 8426: + - Pressed: Toggle + 8425: + - Pressed: Toggle + - uid: 8670 + components: + - type: Transform + pos: -48.5,-24.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 8423: + - Pressed: Toggle + 8424: + - Pressed: Toggle + - uid: 8671 + components: + - type: Transform + pos: -0.5,35.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 3001: + - Pressed: Toggle + 3000: + - Pressed: Toggle + 2999: + - Pressed: Toggle +- proto: SignalButtonDirectional + entities: + - uid: 8193 + components: + - type: MetaData + name: bolt button + - type: Transform + rot: 3.141592653589793 rad + pos: -15.322419,-13.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 355: + - Pressed: DoorBolt + - uid: 8652 + components: + - type: MetaData + name: bolt button + - type: Transform + pos: -10.352342,-18.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 353: + - Pressed: DoorBolt + - uid: 8653 + components: + - type: MetaData + name: light switch + - type: Transform + pos: -10.623444,-18.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 8451: + - Pressed: Toggle + - uid: 8654 + components: + - type: MetaData + name: bolt button + - type: Transform + pos: -7.3057785,-19.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 357: + - Pressed: DoorBolt + - uid: 8655 + components: + - type: MetaData + name: light switch + - type: Transform + pos: -7.655587,-19.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 8453: + - Pressed: Toggle + - uid: 8656 + components: + - type: MetaData + name: bolt button + - type: Transform + pos: -15.347677,-19.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 356: + - Pressed: DoorBolt + - uid: 8657 + components: + - type: MetaData + name: light switch + - type: Transform + pos: -15.618779,-19.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 8452: + - Pressed: Toggle + - uid: 8659 + components: + - type: MetaData + name: light switch + - type: Transform + rot: 3.141592653589793 rad + pos: -15.645992,-13.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 8448: + - Pressed: Toggle + - uid: 8660 + components: + - type: MetaData + name: light switch + - type: Transform + rot: 3.141592653589793 rad + pos: -10.650705,-14.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 8447: + - Pressed: Toggle + - uid: 8661 + components: + - type: MetaData + name: bolt button + - type: Transform + rot: 3.141592653589793 rad + pos: -10.318387,-14.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 354: + - Pressed: DoorBolt + - uid: 8662 + components: + - type: MetaData + name: light switch + - type: Transform + rot: 3.141592653589793 rad + pos: -7.61855,-13.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 8449: + - Pressed: Toggle + - uid: 8663 + components: + - type: MetaData + name: bolt button + - type: Transform + rot: 3.141592653589793 rad + pos: -7.356193,-13.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 358: + - Pressed: DoorBolt + - uid: 8664 + components: + - type: Transform + pos: 35.5,-9.5 + parent: 2 + - type: DeviceLinkSource + linkedPorts: + 8376: + - Pressed: Toggle +- proto: SignCargo + entities: + - uid: 3376 + components: + - type: Transform + pos: 21.5,-4.5 + parent: 2 +- proto: SignCryogenicsMed + entities: + - uid: 8185 + components: + - type: Transform + pos: 3.5,-18.5 + parent: 2 +- proto: SignDirectionalBridge + entities: + - uid: 7748 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.50091,1.3060951 + parent: 2 +- proto: SignDirectionalCryo + entities: + - uid: 7752 + components: + - type: Transform + pos: 1.5,-7.5 + parent: 2 +- proto: SignDirectionalDorms + entities: + - uid: 7754 + components: + - type: Transform + pos: 1.4997442,-7.3198824 + parent: 2 +- proto: SignDirectionalEng + entities: + - uid: 7751 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.4964175,1.3071551 + parent: 2 +- proto: SignDirectionalEvac + entities: + - uid: 7755 + components: + - type: Transform + pos: 1.4997442,-7.6869755 + parent: 2 + - uid: 7950 + components: + - type: Transform + pos: 45.5,-15.5 + parent: 2 + - uid: 8214 + components: + - type: Transform + pos: -45.5,-15.5 + parent: 2 +- proto: SignDirectionalMed + entities: + - uid: 7746 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,1.5 + parent: 2 +- proto: SignDirectionalSci + entities: + - uid: 7750 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.4964175,1.6856244 + parent: 2 +- proto: SignDirectionalSec + entities: + - uid: 7747 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.50091,1.6994088 + parent: 2 +- proto: SignDirectionalSupply + entities: + - uid: 7749 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,1.5 + parent: 2 +- proto: SignEngineering + entities: + - uid: 7897 + components: + - type: Transform + pos: 47.5,-12.5 + parent: 2 +- proto: SignHead + entities: + - uid: 2822 + components: + - type: Transform + pos: -47.5,-8.5 + parent: 2 +- proto: SignMedical + entities: + - uid: 7962 + components: + - type: Transform + pos: -26.5,-4.5 + parent: 2 +- proto: SignNanotrasen1 + entities: + - uid: 383 + components: + - type: Transform + pos: -2.5,-49.5 + parent: 2 +- proto: SignNanotrasen2 + entities: + - uid: 502 + components: + - type: Transform + pos: -1.5,-49.5 + parent: 2 +- proto: SignNanotrasen3 + entities: + - uid: 3 + components: + - type: Transform + pos: -0.5,-49.5 + parent: 2 +- proto: SignNanotrasen4 + entities: + - uid: 329 + components: + - type: Transform + pos: 0.5,-49.5 + parent: 2 +- proto: SignNanotrasen5 + entities: + - uid: 72 + components: + - type: Transform + pos: 1.5,-49.5 + parent: 2 +- proto: SignPlaque + entities: + - uid: 7780 + components: + - type: Transform + pos: -0.5,-32.5 + parent: 2 +- proto: SignScience + entities: + - uid: 7808 + components: + - type: Transform + pos: 24.5,3.5 + parent: 2 +- proto: SignSecurity + entities: + - uid: 7973 + components: + - type: Transform + pos: -21.5,1.5 + parent: 2 +- proto: Sink + entities: + - uid: 8312 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,-29.5 + parent: 2 +- proto: soda_dispenser + entities: + - uid: 1612 + components: + - type: Transform + pos: 16.5,-28.5 + parent: 2 +- proto: SpawnPointBorg + entities: + - uid: 407 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,-18.5 + parent: 2 + - uid: 409 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-18.5 + parent: 2 + - uid: 1106 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-14.5 + parent: 2 +- proto: SpawnPointLatejoin + entities: + - uid: 54 + components: + - type: Transform + pos: -15.5,-11.5 + parent: 2 + - uid: 73 + components: + - type: Transform + pos: -11.5,-12.5 + parent: 2 + - uid: 74 + components: + - type: Transform + pos: -7.5,-11.5 + parent: 2 + - uid: 75 + components: + - type: Transform + pos: -15.5,-21.5 + parent: 2 + - uid: 76 + components: + - type: Transform + pos: -11.5,-20.5 + parent: 2 + - uid: 78 + components: + - type: Transform + pos: -7.5,-21.5 + parent: 2 + - uid: 79 + components: + - type: Transform + pos: -6.5,-18.5 + parent: 2 + - uid: 85 + components: + - type: Transform + pos: -16.5,-16.5 + parent: 2 + - uid: 88 + components: + - type: Transform + pos: -16.5,-14.5 + parent: 2 + - uid: 97 + components: + - type: Transform + pos: -16.5,-12.5 + parent: 2 + - uid: 98 + components: + - type: Transform + pos: -16.5,-20.5 + parent: 2 + - uid: 99 + components: + - type: Transform + pos: -8.5,-10.5 + parent: 2 + - uid: 8093 + components: + - type: Transform + pos: 24.5,-3.5 + parent: 2 + - uid: 8094 + components: + - type: Transform + pos: 22.5,2.5 + parent: 2 + - uid: 8095 + components: + - type: Transform + pos: 42.5,-10.5 + parent: 2 + - uid: 8131 + components: + - type: Transform + pos: 6.5,2.5 + parent: 2 + - uid: 8132 + components: + - type: Transform + pos: 5.5,-6.5 + parent: 2 + - uid: 8133 + components: + - type: Transform + pos: 3.5,-6.5 + parent: 2 + - uid: 8134 + components: + - type: Transform + pos: -7.5,4.5 + parent: 2 + - uid: 8135 + components: + - type: Transform + pos: -5.5,5.5 + parent: 2 + - uid: 8153 + components: + - type: Transform + pos: -6.5,-6.5 + parent: 2 + - uid: 8745 + components: + - type: Transform + pos: 6.5,-11.5 + parent: 2 + - uid: 8757 + components: + - type: Transform + pos: 14.5,-11.5 + parent: 2 + - uid: 8758 + components: + - type: Transform + pos: 14.5,-21.5 + parent: 2 + - uid: 8759 + components: + - type: Transform + pos: 6.5,-21.5 + parent: 2 + - uid: 8760 + components: + - type: Transform + pos: 10.5,-20.5 + parent: 2 + - uid: 8761 + components: + - type: Transform + pos: 10.5,-12.5 + parent: 2 +- proto: SprayBottle + entities: + - uid: 7986 + components: + - type: Transform + pos: -32.253666,-7.3626685 + parent: 2 +- proto: SS13Memorial + entities: + - uid: 2965 + components: + - type: Transform + pos: -0.5,-39.5 + parent: 2 +- proto: StationMap + entities: + - uid: 7757 + components: + - type: Transform + pos: 3.5,-2.5 + parent: 2 + - uid: 7758 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,-12.5 + parent: 2 + - uid: 7759 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,-13.5 + parent: 2 + - uid: 7760 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-34.5 + parent: 2 +- proto: StationMapBroken + entities: + - uid: 8624 + components: + - type: Transform + pos: 37.5,-4.5 + parent: 2 +- proto: SteelBench + entities: + - uid: 3064 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,21.5 + parent: 2 + - uid: 7591 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-67.5 + parent: 2 + - uid: 7596 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-67.5 + parent: 2 + - uid: 7627 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-49.5 + parent: 2 + - uid: 7629 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-49.5 + parent: 2 + - uid: 7642 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-35.5 + parent: 2 + - uid: 7643 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-35.5 + parent: 2 + - uid: 8256 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-40.5 + parent: 2 +- proto: Stool + entities: + - uid: 118 + components: + - type: Transform + pos: 16.5,-35.5 + parent: 2 +- proto: StoolBar + entities: + - uid: 1613 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-32.5 + parent: 2 + - uid: 1614 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,-32.5 + parent: 2 + - uid: 1615 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,-32.5 + parent: 2 + - uid: 1616 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,-32.5 + parent: 2 +- proto: StorageCanister + entities: + - uid: 8533 + components: + - type: Transform + pos: 1.5,31.5 + parent: 2 + - uid: 8605 + components: + - type: Transform + pos: -33.5,-15.5 + parent: 2 + - uid: 8606 + components: + - type: Transform + pos: -30.5,-14.5 + parent: 2 +- proto: Stunbaton + entities: + - uid: 8050 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.11504,8.632569 + parent: 2 +- proto: SubstationBasic + entities: + - uid: 2992 + components: + - type: Transform + pos: -7.5,30.5 + parent: 2 + - uid: 3189 + components: + - type: Transform + pos: -43.5,6.5 + parent: 2 + - uid: 3206 + components: + - type: Transform + pos: -37.5,-3.5 + parent: 2 + - uid: 3262 + components: + - type: Transform + pos: 10.5,-24.5 + parent: 2 + - uid: 3295 + components: + - type: Transform + pos: 33.5,-6.5 + parent: 2 + - uid: 3371 + components: + - type: Transform + pos: 10.5,-4.5 + parent: 2 + - uid: 3378 + components: + - type: Transform + pos: 44.5,6.5 + parent: 2 +- proto: Syringe + entities: + - uid: 7823 + components: + - type: Transform + pos: 16.902483,8.569703 + parent: 2 + - uid: 7969 + components: + - type: Transform + pos: -34.44874,-8.360705 + parent: 2 +- proto: Table + entities: + - uid: 1011 + components: + - type: Transform + pos: 30.5,-3.5 + parent: 2 + - uid: 1012 + components: + - type: Transform + pos: 31.5,-3.5 + parent: 2 + - uid: 1013 + components: + - type: Transform + pos: 31.5,-4.5 + parent: 2 + - uid: 1020 + components: + - type: Transform + pos: 31.5,-5.5 + parent: 2 + - uid: 1057 + components: + - type: Transform + pos: 15.5,-6.5 + parent: 2 + - uid: 1065 + components: + - type: Transform + pos: 16.5,-6.5 + parent: 2 + - uid: 1066 + components: + - type: Transform + pos: 16.5,-3.5 + parent: 2 + - uid: 1081 + components: + - type: Transform + pos: 20.5,-6.5 + parent: 2 + - uid: 1082 + components: + - type: Transform + pos: 20.5,-5.5 + parent: 2 + - uid: 1163 + components: + - type: Transform + pos: 16.5,8.5 + parent: 2 + - uid: 1164 + components: + - type: Transform + pos: 17.5,8.5 + parent: 2 + - uid: 1166 + components: + - type: Transform + pos: 15.5,2.5 + parent: 2 + - uid: 1167 + components: + - type: Transform + pos: 16.5,2.5 + parent: 2 + - uid: 1168 + components: + - type: Transform + pos: 16.5,3.5 + parent: 2 + - uid: 1455 + components: + - type: Transform + pos: 52.5,-8.5 + parent: 2 + - uid: 1457 + components: + - type: Transform + pos: 48.5,-14.5 + parent: 2 + - uid: 1458 + components: + - type: Transform + pos: 49.5,-14.5 + parent: 2 + - uid: 1459 + components: + - type: Transform + pos: 52.5,-9.5 + parent: 2 + - uid: 1881 + components: + - type: Transform + pos: -17.5,-3.5 + parent: 2 + - uid: 1882 + components: + - type: Transform + pos: -17.5,-4.5 + parent: 2 + - uid: 1883 + components: + - type: Transform + pos: -18.5,-7.5 + parent: 2 + - uid: 1884 + components: + - type: Transform + pos: -18.5,-8.5 + parent: 2 + - uid: 1885 + components: + - type: Transform + pos: -17.5,-8.5 + parent: 2 + - uid: 1886 + components: + - type: Transform + pos: -13.5,-5.5 + parent: 2 + - uid: 1887 + components: + - type: Transform + pos: -14.5,-5.5 + parent: 2 + - uid: 1927 + components: + - type: Transform + pos: -35.5,-3.5 + parent: 2 + - uid: 1928 + components: + - type: Transform + pos: -34.5,-3.5 + parent: 2 + - uid: 1930 + components: + - type: Transform + pos: -31.5,-8.5 + parent: 2 + - uid: 1931 + components: + - type: Transform + pos: -32.5,-8.5 + parent: 2 + - uid: 1932 + components: + - type: Transform + pos: -32.5,-7.5 + parent: 2 + - uid: 1978 + components: + - type: Transform + pos: -20.5,-8.5 + parent: 2 + - uid: 1979 + components: + - type: Transform + pos: -21.5,-8.5 + parent: 2 + - uid: 2061 + components: + - type: Transform + pos: -26.5,6.5 + parent: 2 + - uid: 2062 + components: + - type: Transform + pos: -26.5,7.5 + parent: 2 + - uid: 2063 + components: + - type: Transform + pos: -22.5,6.5 + parent: 2 + - uid: 2070 + components: + - type: Transform + pos: -28.5,7.5 + parent: 2 + - uid: 2071 + components: + - type: Transform + pos: -22.5,7.5 + parent: 2 + - uid: 2072 + components: + - type: Transform + pos: -28.5,6.5 + parent: 2 + - uid: 2073 + components: + - type: Transform + pos: -20.5,7.5 + parent: 2 + - uid: 2074 + components: + - type: Transform + pos: -20.5,6.5 + parent: 2 + - uid: 2094 + components: + - type: Transform + pos: -34.5,7.5 + parent: 2 + - uid: 2095 + components: + - type: Transform + pos: -34.5,8.5 + parent: 2 + - uid: 2096 + components: + - type: Transform + pos: -33.5,8.5 + parent: 2 + - uid: 2097 + components: + - type: Transform + pos: -32.5,8.5 + parent: 2 + - uid: 2098 + components: + - type: Transform + pos: -35.5,2.5 + parent: 2 + - uid: 2101 + components: + - type: Transform + pos: -41.5,7.5 + parent: 2 + - uid: 2102 + components: + - type: Transform + pos: -41.5,6.5 + parent: 2 + - uid: 2103 + components: + - type: Transform + pos: -38.5,8.5 + parent: 2 + - uid: 2104 + components: + - type: Transform + pos: -39.5,8.5 + parent: 2 + - uid: 2129 + components: + - type: Transform + pos: -22.5,12.5 + parent: 2 + - uid: 2130 + components: + - type: Transform + pos: -22.5,13.5 + parent: 2 + - uid: 2342 + components: + - type: Transform + pos: -32.5,4.5 + parent: 2 + - uid: 2343 + components: + - type: Transform + pos: -33.5,4.5 + parent: 2 + - uid: 3066 + components: + - type: Transform + pos: -5.5,21.5 + parent: 2 + - uid: 3067 + components: + - type: Transform + pos: 4.5,21.5 + parent: 2 + - uid: 7574 + components: + - type: Transform + pos: -8.5,-50.5 + parent: 2 + - uid: 7640 + components: + - type: Transform + pos: 7.5,-50.5 + parent: 2 + - uid: 7801 + components: + - type: Transform + pos: 25.5,-3.5 + parent: 2 + - uid: 7910 + components: + - type: Transform + pos: 45.5,-14.5 + parent: 2 + - uid: 7957 + components: + - type: Transform + pos: -35.5,0.5 + parent: 2 + - uid: 8267 + components: + - type: Transform + pos: -11.5,-32.5 + parent: 2 + - uid: 8541 + components: + - type: Transform + pos: 39.5,5.5 + parent: 2 + - uid: 8556 + components: + - type: Transform + pos: 35.5,-8.5 + parent: 2 + - uid: 8575 + components: + - type: Transform + pos: 6.5,-29.5 + parent: 2 + - uid: 8576 + components: + - type: Transform + pos: 5.5,-29.5 + parent: 2 + - uid: 8632 + components: + - type: Transform + pos: -37.5,-5.5 + parent: 2 +- proto: TableCarpet + entities: + - uid: 378 + components: + - type: Transform + pos: -16.5,-15.5 + parent: 2 + - uid: 1476 + components: + - type: Transform + pos: 60.5,-14.5 + parent: 2 + - uid: 2015 + components: + - type: Transform + pos: -26.5,-17.5 + parent: 2 + - uid: 2449 + components: + - type: Transform + pos: -53.5,-12.5 + parent: 2 + - uid: 2450 + components: + - type: Transform + pos: -52.5,-12.5 + parent: 2 + - uid: 2451 + components: + - type: Transform + pos: -51.5,-12.5 + parent: 2 + - uid: 2452 + components: + - type: Transform + pos: -51.5,-11.5 + parent: 2 + - uid: 2453 + components: + - type: Transform + pos: -51.5,-10.5 + parent: 2 + - uid: 2454 + components: + - type: Transform + pos: -52.5,-10.5 + parent: 2 + - uid: 2455 + components: + - type: Transform + pos: -53.5,-10.5 + parent: 2 + - uid: 2456 + components: + - type: Transform + pos: -53.5,-11.5 + parent: 2 + - uid: 7624 + components: + - type: Transform + pos: -0.5,-43.5 + parent: 2 + - uid: 8027 + components: + - type: Transform + pos: -42.5,11.5 + parent: 2 + - uid: 8031 + components: + - type: Transform + pos: -42.5,12.5 + parent: 2 +- proto: TableCounterMetal + entities: + - uid: 382 + components: + - type: Transform + pos: 2.5,-21.5 + parent: 2 + - uid: 404 + components: + - type: Transform + pos: 1.5,-21.5 + parent: 2 + - uid: 406 + components: + - type: Transform + pos: -4.5,-24.5 + parent: 2 + - uid: 410 + components: + - type: Transform + pos: -4.5,-23.5 + parent: 2 +- proto: TableCounterWood + entities: + - uid: 480 + components: + - type: Transform + pos: 13.5,-31.5 + parent: 2 + - uid: 483 + components: + - type: Transform + pos: 16.5,-31.5 + parent: 2 + - uid: 485 + components: + - type: Transform + pos: 15.5,-31.5 + parent: 2 + - uid: 486 + components: + - type: Transform + pos: 14.5,-31.5 + parent: 2 + - uid: 1023 + components: + - type: Transform + pos: 31.5,-10.5 + parent: 2 + - uid: 2153 + components: + - type: Transform + pos: -16.5,8.5 + parent: 2 + - uid: 2523 + components: + - type: Transform + pos: -56.5,-12.5 + parent: 2 + - uid: 2524 + components: + - type: Transform + pos: -56.5,-11.5 + parent: 2 + - uid: 2525 + components: + - type: Transform + pos: -56.5,-10.5 + parent: 2 + - uid: 6178 + components: + - type: Transform + pos: -56.5,-13.5 + parent: 2 +- proto: TableReinforced + entities: + - uid: 226 + components: + - type: Transform + pos: 5.5,-18.5 + parent: 2 + - uid: 227 + components: + - type: Transform + pos: 5.5,-14.5 + parent: 2 + - uid: 1258 + components: + - type: Transform + pos: 26.5,4.5 + parent: 2 + - uid: 1259 + components: + - type: Transform + pos: 26.5,5.5 + parent: 2 + - uid: 1260 + components: + - type: Transform + pos: 24.5,4.5 + parent: 2 + - uid: 1388 + components: + - type: Transform + pos: 46.5,-5.5 + parent: 2 + - uid: 1389 + components: + - type: Transform + pos: 46.5,-4.5 + parent: 2 + - uid: 1390 + components: + - type: Transform + pos: 46.5,-3.5 + parent: 2 + - uid: 1392 + components: + - type: Transform + pos: 48.5,-16.5 + parent: 2 + - uid: 1393 + components: + - type: Transform + pos: 53.5,-6.5 + parent: 2 + - uid: 1394 + components: + - type: Transform + pos: 51.5,-2.5 + parent: 2 + - uid: 1395 + components: + - type: Transform + pos: 51.5,-3.5 + parent: 2 + - uid: 1425 + components: + - type: Transform + pos: 52.5,-6.5 + parent: 2 + - uid: 1426 + components: + - type: Transform + pos: 51.5,-20.5 + parent: 2 + - uid: 1427 + components: + - type: Transform + pos: 52.5,-20.5 + parent: 2 + - uid: 1428 + components: + - type: Transform + pos: 47.5,-16.5 + parent: 2 + - uid: 1429 + components: + - type: Transform + pos: 46.5,-16.5 + parent: 2 + - uid: 1430 + components: + - type: Transform + pos: 46.5,-18.5 + parent: 2 + - uid: 1805 + components: + - type: Transform + pos: -0.5,1.5 + parent: 2 + - uid: 1806 + components: + - type: Transform + pos: 0.5,1.5 + parent: 2 + - uid: 1807 + components: + - type: Transform + pos: -2.5,1.5 + parent: 2 + - uid: 1808 + components: + - type: Transform + pos: -2.5,0.5 + parent: 2 + - uid: 1814 + components: + - type: Transform + pos: -1.5,-2.5 + parent: 2 + - uid: 1989 + components: + - type: Transform + pos: -22.5,-11.5 + parent: 2 + - uid: 2405 + components: + - type: Transform + pos: -28.5,17.5 + parent: 2 + - uid: 2406 + components: + - type: Transform + pos: -27.5,17.5 + parent: 2 + - uid: 7798 + components: + - type: Transform + pos: -0.5,-2.5 + parent: 2 + - uid: 8590 + components: + - type: Transform + pos: 11.5,-8.5 + parent: 2 + - uid: 8609 + components: + - type: Transform + pos: -38.5,-12.5 + parent: 2 + - uid: 8610 + components: + - type: Transform + pos: -37.5,-12.5 + parent: 2 +- proto: TableReinforcedGlass + entities: + - uid: 115 + components: + - type: Transform + pos: 17.5,-35.5 + parent: 2 + - uid: 1256 + components: + - type: Transform + pos: 23.5,9.5 + parent: 2 + - uid: 1257 + components: + - type: Transform + pos: 23.5,8.5 + parent: 2 + - uid: 1635 + components: + - type: Transform + pos: 13.5,-36.5 + parent: 2 + - uid: 1965 + components: + - type: Transform + pos: -23.5,-8.5 + parent: 2 + - uid: 1966 + components: + - type: Transform + pos: -23.5,-9.5 + parent: 2 + - uid: 1967 + components: + - type: Transform + pos: -27.5,-5.5 + parent: 2 + - uid: 1973 + components: + - type: Transform + pos: -25.5,-11.5 + parent: 2 + - uid: 1974 + components: + - type: Transform + pos: -25.5,-12.5 + parent: 2 + - uid: 1975 + components: + - type: Transform + pos: -25.5,-13.5 + parent: 2 + - uid: 1976 + components: + - type: Transform + pos: -24.5,-13.5 + parent: 2 + - uid: 7745 + components: + - type: Transform + pos: 4.5,-6.5 + parent: 2 + - uid: 7775 + components: + - type: Transform + pos: -6.5,5.5 + parent: 2 + - uid: 7945 + components: + - type: Transform + pos: 31.5,-30.5 + parent: 2 + - uid: 8163 + components: + - type: Transform + pos: -42.5,-18.5 + parent: 2 +- proto: TableStone + entities: + - uid: 191 + components: + - type: Transform + pos: -5.5,14.5 + parent: 2 + - uid: 3005 + components: + - type: Transform + pos: -5.5,13.5 + parent: 2 + - uid: 3006 + components: + - type: Transform + pos: 4.5,14.5 + parent: 2 + - uid: 3007 + components: + - type: Transform + pos: 2.5,15.5 + parent: 2 + - uid: 3008 + components: + - type: Transform + pos: 2.5,14.5 + parent: 2 + - uid: 3015 + components: + - type: Transform + pos: -3.5,14.5 + parent: 2 + - uid: 3016 + components: + - type: Transform + pos: -3.5,15.5 + parent: 2 + - uid: 3017 + components: + - type: Transform + pos: 4.5,13.5 + parent: 2 + - uid: 3037 + components: + - type: Transform + pos: -5.5,15.5 + parent: 2 + - uid: 3043 + components: + - type: Transform + pos: 4.5,15.5 + parent: 2 + - uid: 3051 + components: + - type: Transform + pos: 2.5,11.5 + parent: 2 + - uid: 3052 + components: + - type: Transform + pos: 2.5,18.5 + parent: 2 + - uid: 3053 + components: + - type: Transform + pos: -3.5,11.5 + parent: 2 + - uid: 3054 + components: + - type: Transform + pos: -3.5,18.5 + parent: 2 +- proto: TableWood + entities: + - uid: 371 + components: + - type: Transform + pos: -7.5,-10.5 + parent: 2 + - uid: 380 + components: + - type: Transform + pos: -7.5,-18.5 + parent: 2 + - uid: 385 + components: + - type: Transform + pos: -12.5,-21.5 + parent: 2 + - uid: 389 + components: + - type: Transform + pos: -12.5,-11.5 + parent: 2 + - uid: 396 + components: + - type: Transform + pos: -15.5,-20.5 + parent: 2 + - uid: 397 + components: + - type: Transform + pos: -15.5,-12.5 + parent: 2 + - uid: 464 + components: + - type: Transform + pos: 21.5,-14.5 + parent: 2 + - uid: 468 + components: + - type: Transform + pos: 26.5,-14.5 + parent: 2 + - uid: 491 + components: + - type: Transform + pos: 16.5,-28.5 + parent: 2 + - uid: 493 + components: + - type: Transform + pos: 15.5,-28.5 + parent: 2 + - uid: 495 + components: + - type: Transform + pos: 14.5,-28.5 + parent: 2 + - uid: 951 + components: + - type: Transform + pos: 26.5,-11.5 + parent: 2 + - uid: 953 + components: + - type: Transform + pos: 19.5,-12.5 + parent: 2 + - uid: 954 + components: + - type: Transform + pos: 22.5,-14.5 + parent: 2 + - uid: 960 + components: + - type: Transform + pos: 34.5,-13.5 + parent: 2 + - uid: 993 + components: + - type: Transform + pos: 33.5,-13.5 + parent: 2 + - uid: 1029 + components: + - type: Transform + pos: 27.5,-14.5 + parent: 2 + - uid: 1053 + components: + - type: Transform + pos: 26.5,-12.5 + parent: 2 + - uid: 1180 + components: + - type: Transform + pos: 30.5,9.5 + parent: 2 + - uid: 1182 + components: + - type: Transform + pos: 30.5,8.5 + parent: 2 + - uid: 1183 + components: + - type: Transform + pos: 30.5,7.5 + parent: 2 + - uid: 1235 + components: + - type: Transform + pos: 35.5,9.5 + parent: 2 + - uid: 1236 + components: + - type: Transform + pos: 36.5,9.5 + parent: 2 + - uid: 1467 + components: + - type: Transform + pos: 55.5,-11.5 + parent: 2 + - uid: 1468 + components: + - type: Transform + pos: 56.5,-11.5 + parent: 2 + - uid: 1469 + components: + - type: Transform + pos: 57.5,-11.5 + parent: 2 + - uid: 1470 + components: + - type: Transform + pos: 55.5,-13.5 + parent: 2 + - uid: 1500 + components: + - type: Transform + pos: 55.5,-15.5 + parent: 2 + - uid: 1501 + components: + - type: Transform + pos: 56.5,-15.5 + parent: 2 + - uid: 1631 + components: + - type: Transform + pos: 19.5,-29.5 + parent: 2 + - uid: 1632 + components: + - type: Transform + pos: 20.5,-29.5 + parent: 2 + - uid: 2016 + components: + - type: Transform + pos: -23.5,-19.5 + parent: 2 + - uid: 2017 + components: + - type: Transform + pos: -24.5,-19.5 + parent: 2 + - uid: 2144 + components: + - type: Transform + pos: -13.5,8.5 + parent: 2 + - uid: 2147 + components: + - type: Transform + pos: -14.5,8.5 + parent: 2 + - uid: 2274 + components: + - type: Transform + pos: -16.5,10.5 + parent: 2 + - uid: 2275 + components: + - type: Transform + pos: -16.5,11.5 + parent: 2 + - uid: 2281 + components: + - type: Transform + pos: -17.5,14.5 + parent: 2 + - uid: 2282 + components: + - type: Transform + pos: -16.5,14.5 + parent: 2 + - uid: 2309 + components: + - type: Transform + pos: -32.5,10.5 + parent: 2 + - uid: 2310 + components: + - type: Transform + pos: -32.5,11.5 + parent: 2 + - uid: 2311 + components: + - type: Transform + pos: -32.5,12.5 + parent: 2 + - uid: 2312 + components: + - type: Transform + pos: -33.5,12.5 + parent: 2 + - uid: 2318 + components: + - type: Transform + pos: -34.5,15.5 + parent: 2 + - uid: 2319 + components: + - type: Transform + pos: -33.5,15.5 + parent: 2 + - uid: 2345 + components: + - type: Transform + pos: -37.5,11.5 + parent: 2 + - uid: 2346 + components: + - type: Transform + pos: -37.5,10.5 + parent: 2 + - uid: 2353 + components: + - type: Transform + pos: -38.5,10.5 + parent: 2 + - uid: 2475 + components: + - type: Transform + pos: -54.5,-2.5 + parent: 2 + - uid: 2513 + components: + - type: Transform + pos: -53.5,-2.5 + parent: 2 + - uid: 2526 + components: + - type: Transform + pos: -58.5,-12.5 + parent: 2 + - uid: 2527 + components: + - type: Transform + pos: -58.5,-11.5 + parent: 2 + - uid: 2530 + components: + - type: Transform + pos: -52.5,-2.5 + parent: 2 + - uid: 2532 + components: + - type: Transform + pos: -55.5,-2.5 + parent: 2 + - uid: 2533 + components: + - type: Transform + pos: -55.5,-1.5 + parent: 2 + - uid: 2539 + components: + - type: Transform + pos: -48.5,-4.5 + parent: 2 + - uid: 2541 + components: + - type: Transform + pos: -48.5,-2.5 + parent: 2 + - uid: 2552 + components: + - type: Transform + pos: -48.5,-1.5 + parent: 2 + - uid: 2560 + components: + - type: Transform + pos: -50.5,-19.5 + parent: 2 + - uid: 2584 + components: + - type: Transform + pos: -53.5,5.5 + parent: 2 + - uid: 2586 + components: + - type: Transform + pos: -51.5,5.5 + parent: 2 + - uid: 2587 + components: + - type: Transform + pos: -52.5,5.5 + parent: 2 + - uid: 2588 + components: + - type: Transform + pos: -53.5,4.5 + parent: 2 + - uid: 2634 + components: + - type: Transform + pos: -54.5,1.5 + parent: 2 + - uid: 2641 + components: + - type: Transform + pos: -55.5,1.5 + parent: 2 + - uid: 2680 + components: + - type: Transform + pos: -50.5,-20.5 + parent: 2 + - uid: 2681 + components: + - type: Transform + pos: -50.5,-18.5 + parent: 2 + - uid: 2689 + components: + - type: Transform + pos: -49.5,-20.5 + parent: 2 + - uid: 2698 + components: + - type: Transform + pos: -55.5,-21.5 + parent: 2 + - uid: 2699 + components: + - type: Transform + pos: -55.5,-22.5 + parent: 2 + - uid: 2760 + components: + - type: Transform + pos: -55.5,-26.5 + parent: 2 + - uid: 2763 + components: + - type: Transform + pos: -50.5,-28.5 + parent: 2 + - uid: 2764 + components: + - type: Transform + pos: -51.5,-28.5 + parent: 2 + - uid: 3343 + components: + - type: Transform + pos: 53.5,1.5 + parent: 2 + - uid: 3344 + components: + - type: Transform + pos: 52.5,1.5 + parent: 2 + - uid: 7622 + components: + - type: Transform + pos: -2.5,-48.5 + parent: 2 + - uid: 7623 + components: + - type: Transform + pos: 1.5,-48.5 + parent: 2 + - uid: 8087 + components: + - type: Transform + pos: -35.5,11.5 + parent: 2 + - uid: 8096 + components: + - type: Transform + pos: -35.5,10.5 + parent: 2 + - uid: 8229 + components: + - type: Transform + pos: -7.5,-22.5 + parent: 2 + - uid: 8613 + components: + - type: Transform + pos: -31.5,-10.5 + parent: 2 + - uid: 8614 + components: + - type: Transform + pos: -30.5,-10.5 + parent: 2 + - uid: 8646 + components: + - type: Transform + pos: 50.5,-0.5 + parent: 2 +- proto: TargetSyndicate + entities: + - uid: 2402 + components: + - type: Transform + pos: -19.5,16.5 + parent: 2 +- proto: TechnologyDiskRare + entities: + - uid: 7735 + components: + - type: Transform + pos: 2.5752501,15.498761 + parent: 2 +- proto: TelecomServerFilled + entities: + - uid: 3110 + components: + - type: Transform + pos: -0.5,38.5 + parent: 2 +- proto: TelescopicShield + entities: + - uid: 3058 + components: + - type: Transform + pos: -3.5098875,18.597483 + parent: 2 +- proto: ToolboxEmergencyFilled + entities: + - uid: 8570 + components: + - type: Transform + pos: 32.556385,2.6530209 + parent: 2 +- proto: ToolboxMechanicalFilled + entities: + - uid: 1540 + components: + - type: Transform + pos: 46.43547,-4.666317 + parent: 2 +- proto: ToySpawner + entities: + - uid: 7779 + components: + - type: Transform + pos: 4.5,21.5 + parent: 2 + - uid: 8295 + components: + - type: Transform + pos: 1.5,-48.5 + parent: 2 + - uid: 8578 + components: + - type: Transform + pos: 5.5,-29.5 + parent: 2 + - uid: 8599 + components: + - type: Transform + pos: -40.5,-10.5 + parent: 2 +- proto: trayScanner + entities: + - uid: 1451 + components: + - type: Transform + pos: 48.714245,-16.436579 + parent: 2 + - uid: 1503 + components: + - type: Transform + pos: 56.76335,-15.388283 + parent: 2 +- proto: UprightPianoInstrument + entities: + - uid: 109 + components: + - type: Transform + pos: 16.5,-36.5 + parent: 2 +- proto: VendingBarDrobe + entities: + - uid: 1633 + components: + - type: Transform + pos: 20.5,-32.5 + parent: 2 +- proto: VendingMachineAtmosDrobe + entities: + - uid: 1424 + components: + - type: Transform + pos: 49.5,-16.5 + parent: 2 +- proto: VendingMachineBooze + entities: + - uid: 1606 + components: + - type: Transform + pos: 12.5,-28.5 + parent: 2 + - uid: 2528 + components: + - type: Transform + pos: -58.5,-10.5 + parent: 2 +- proto: VendingMachineCargoDrobe + entities: + - uid: 971 + components: + - type: Transform + pos: 26.5,-9.5 + parent: 2 +- proto: VendingMachineCentDrobe + entities: + - uid: 8726 + components: + - type: Transform + pos: -3.5,38.5 + parent: 2 +- proto: VendingMachineChemDrobe + entities: + - uid: 1907 + components: + - type: Transform + pos: -32.5,-3.5 + parent: 2 +- proto: VendingMachineCigs + entities: + - uid: 1088 + components: + - type: Transform + pos: 26.5,-5.5 + parent: 2 + - uid: 2815 + components: + - type: Transform + pos: -55.5,-8.5 + parent: 2 + - uid: 6691 + components: + - type: Transform + pos: -24.5,2.5 + parent: 2 + - uid: 7645 + components: + - type: Transform + pos: 7.5,-37.5 + parent: 2 +- proto: VendingMachineClothing + entities: + - uid: 381 + components: + - type: Transform + pos: 3.5,-21.5 + parent: 2 +- proto: VendingMachineCoffee + entities: + - uid: 2816 + components: + - type: Transform + pos: -48.5,-13.5 + parent: 2 +- proto: VendingMachineDetDrobe + entities: + - uid: 2150 + components: + - type: Transform + pos: -16.5,4.5 + parent: 2 +- proto: VendingMachineEngiDrobe + entities: + - uid: 1412 + components: + - type: Transform + pos: 49.5,-6.5 + parent: 2 +- proto: VendingMachineEngivend + entities: + - uid: 1411 + components: + - type: Transform + pos: 52.5,-2.5 + parent: 2 +- proto: VendingMachineGames + entities: + - uid: 827 + components: + - type: Transform + pos: -16.5,-18.5 + parent: 2 +- proto: VendingMachineMediDrobe + entities: + - uid: 1890 + components: + - type: Transform + pos: -13.5,-3.5 + parent: 2 +- proto: VendingMachinePride + entities: + - uid: 8154 + components: + - type: Transform + pos: -4.5,-21.5 + parent: 2 +- proto: VendingMachineRoboDrobe + entities: + - uid: 1165 + components: + - type: Transform + pos: 14.5,2.5 + parent: 2 +- proto: VendingMachineSciDrobe + entities: + - uid: 1171 + components: + - type: Transform + pos: 15.5,6.5 + parent: 2 +- proto: VendingMachineSecDrobe + entities: + - uid: 2100 + components: + - type: Transform + pos: -37.5,4.5 + parent: 2 +- proto: VendingMachineTheater + entities: + - uid: 411 + components: + - type: Transform + pos: -2.5,-24.5 + parent: 2 +- proto: VendingMachineWinter + entities: + - uid: 405 + components: + - type: Transform + pos: -3.5,-24.5 + parent: 2 +- proto: VendingMachineYouTool + entities: + - uid: 7646 + components: + - type: Transform + pos: 48.5,-3.5 + parent: 2 +- proto: WallPlastitanium + entities: + - uid: 2972 + components: + - type: Transform + pos: 1.5,25.5 + parent: 2 + - uid: 2973 + components: + - type: Transform + pos: 1.5,26.5 + parent: 2 + - uid: 2974 + components: + - type: Transform + pos: 1.5,27.5 + parent: 2 + - uid: 2975 + components: + - type: Transform + pos: 1.5,28.5 + parent: 2 + - uid: 2976 + components: + - type: Transform + pos: 0.5,28.5 + parent: 2 + - uid: 2977 + components: + - type: Transform + pos: -0.5,28.5 + parent: 2 + - uid: 2978 + components: + - type: Transform + pos: -1.5,28.5 + parent: 2 + - uid: 2979 + components: + - type: Transform + pos: -2.5,28.5 + parent: 2 + - uid: 2980 + components: + - type: Transform + pos: -2.5,27.5 + parent: 2 + - uid: 2981 + components: + - type: Transform + pos: -2.5,26.5 + parent: 2 + - uid: 2982 + components: + - type: Transform + pos: -2.5,25.5 + parent: 2 +- proto: WallPlastitaniumDiagonal + entities: + - uid: 3042 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,37.5 + parent: 2 + - uid: 3044 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,36.5 + parent: 2 + - uid: 6097 + components: + - type: Transform + pos: 4.5,35.5 + parent: 2 + - uid: 6100 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,38.5 + parent: 2 +- proto: WallPlastitaniumIndestructible + entities: + - uid: 3111 + components: + - type: Transform + pos: -3.5,34.5 + parent: 2 + - uid: 3112 + components: + - type: Transform + pos: -2.5,34.5 + parent: 2 + - uid: 3113 + components: + - type: Transform + pos: -1.5,34.5 + parent: 2 + - uid: 3114 + components: + - type: Transform + pos: -0.5,34.5 + parent: 2 + - uid: 3115 + components: + - type: Transform + pos: 0.5,34.5 + parent: 2 + - uid: 3116 + components: + - type: Transform + pos: 1.5,34.5 + parent: 2 + - uid: 3117 + components: + - type: Transform + pos: 2.5,34.5 + parent: 2 + - uid: 3118 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,36.5 + parent: 2 + - uid: 3119 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,36.5 + parent: 2 + - uid: 3120 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,37.5 + parent: 2 + - uid: 3121 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,37.5 + parent: 2 + - uid: 3122 + components: + - type: Transform + pos: 2.5,39.5 + parent: 2 + - uid: 3123 + components: + - type: Transform + pos: 1.5,39.5 + parent: 2 + - uid: 3124 + components: + - type: Transform + pos: 0.5,39.5 + parent: 2 + - uid: 3125 + components: + - type: Transform + pos: -0.5,39.5 + parent: 2 + - uid: 3126 + components: + - type: Transform + pos: -1.5,39.5 + parent: 2 + - uid: 3127 + components: + - type: Transform + pos: -2.5,39.5 + parent: 2 + - uid: 3128 + components: + - type: Transform + pos: -3.5,39.5 + parent: 2 + - uid: 5968 + components: + - type: Transform + pos: -4.5,34.5 + parent: 2 + - uid: 6067 + components: + - type: Transform + pos: -5.5,34.5 + parent: 2 + - uid: 6068 + components: + - type: Transform + pos: -6.5,34.5 + parent: 2 + - uid: 6069 + components: + - type: Transform + pos: -7.5,34.5 + parent: 2 + - uid: 6070 + components: + - type: Transform + pos: -8.5,34.5 + parent: 2 + - uid: 6071 + components: + - type: Transform + pos: -9.5,34.5 + parent: 2 + - uid: 6072 + components: + - type: Transform + pos: -10.5,34.5 + parent: 2 + - uid: 6073 + components: + - type: Transform + pos: -11.5,34.5 + parent: 2 + - uid: 6074 + components: + - type: Transform + pos: -11.5,35.5 + parent: 2 + - uid: 6075 + components: + - type: Transform + pos: -11.5,36.5 + parent: 2 + - uid: 6076 + components: + - type: Transform + pos: -11.5,37.5 + parent: 2 + - uid: 6077 + components: + - type: Transform + pos: -11.5,38.5 + parent: 2 + - uid: 6078 + components: + - type: Transform + pos: -11.5,39.5 + parent: 2 + - uid: 6079 + components: + - type: Transform + pos: -10.5,39.5 + parent: 2 + - uid: 6080 + components: + - type: Transform + pos: -9.5,39.5 + parent: 2 + - uid: 6081 + components: + - type: Transform + pos: -8.5,39.5 + parent: 2 + - uid: 6082 + components: + - type: Transform + pos: -7.5,39.5 + parent: 2 + - uid: 6083 + components: + - type: Transform + pos: -6.5,39.5 + parent: 2 + - uid: 6084 + components: + - type: Transform + pos: -5.5,39.5 + parent: 2 + - uid: 6085 + components: + - type: Transform + pos: -4.5,39.5 + parent: 2 + - uid: 6087 + components: + - type: Transform + pos: 3.5,39.5 + parent: 2 + - uid: 6088 + components: + - type: Transform + pos: 4.5,39.5 + parent: 2 + - uid: 6089 + components: + - type: Transform + pos: 5.5,39.5 + parent: 2 + - uid: 6090 + components: + - type: Transform + pos: 5.5,38.5 + parent: 2 + - uid: 6091 + components: + - type: Transform + pos: 5.5,37.5 + parent: 2 + - uid: 6092 + components: + - type: Transform + pos: 5.5,36.5 + parent: 2 + - uid: 6093 + components: + - type: Transform + pos: 5.5,35.5 + parent: 2 + - uid: 6094 + components: + - type: Transform + pos: 5.5,34.5 + parent: 2 + - uid: 6095 + components: + - type: Transform + pos: 4.5,34.5 + parent: 2 + - uid: 6096 + components: + - type: Transform + pos: 3.5,34.5 + parent: 2 +- proto: WallRiveted + entities: + - uid: 31 + components: + - type: Transform + pos: 4.5,-23.5 + parent: 2 + - uid: 32 + components: + - type: Transform + pos: 12.5,-23.5 + parent: 2 + - uid: 34 + components: + - type: Transform + pos: 5.5,-23.5 + parent: 2 + - uid: 35 + components: + - type: Transform + pos: 10.5,-23.5 + parent: 2 + - uid: 37 + components: + - type: Transform + pos: 7.5,-9.5 + parent: 2 + - uid: 39 + components: + - type: Transform + pos: 15.5,-9.5 + parent: 2 + - uid: 40 + components: + - type: Transform + pos: 12.5,-10.5 + parent: 2 + - uid: 41 + components: + - type: Transform + pos: 9.5,-9.5 + parent: 2 + - uid: 42 + components: + - type: Transform + pos: 8.5,-9.5 + parent: 2 + - uid: 43 + components: + - type: Transform + pos: 11.5,-9.5 + parent: 2 + - uid: 44 + components: + - type: Transform + pos: 13.5,-9.5 + parent: 2 + - uid: 51 + components: + - type: Transform + pos: 14.5,-9.5 + parent: 2 + - uid: 52 + components: + - type: Transform + pos: 12.5,-9.5 + parent: 2 + - uid: 53 + components: + - type: Transform + pos: 10.5,-9.5 + parent: 2 + - uid: 61 + components: + - type: Transform + pos: 4.5,-18.5 + parent: 2 + - uid: 62 + components: + - type: Transform + pos: 4.5,-19.5 + parent: 2 + - uid: 63 + components: + - type: Transform + pos: 4.5,-20.5 + parent: 2 + - uid: 66 + components: + - type: Transform + pos: 4.5,-21.5 + parent: 2 + - uid: 70 + components: + - type: Transform + pos: 7.5,-23.5 + parent: 2 + - uid: 71 + components: + - type: Transform + pos: 9.5,-23.5 + parent: 2 + - uid: 80 + components: + - type: Transform + pos: 16.5,-23.5 + parent: 2 + - uid: 81 + components: + - type: Transform + pos: 14.5,-23.5 + parent: 2 + - uid: 84 + components: + - type: Transform + pos: 16.5,-21.5 + parent: 2 + - uid: 86 + components: + - type: Transform + pos: 16.5,-20.5 + parent: 2 + - uid: 87 + components: + - type: Transform + pos: 16.5,-19.5 + parent: 2 + - uid: 89 + components: + - type: Transform + pos: 12.5,-31.5 + parent: 2 + - uid: 90 + components: + - type: Transform + pos: 16.5,-18.5 + parent: 2 + - uid: 91 + components: + - type: Transform + pos: 11.5,-31.5 + parent: 2 + - uid: 92 + components: + - type: Transform + pos: 4.5,-9.5 + parent: 2 + - uid: 93 + components: + - type: Transform + pos: 4.5,-10.5 + parent: 2 + - uid: 94 + components: + - type: Transform + pos: 4.5,-11.5 + parent: 2 + - uid: 95 + components: + - type: Transform + pos: 4.5,-12.5 + parent: 2 + - uid: 102 + components: + - type: Transform + pos: 5.5,-9.5 + parent: 2 + - uid: 108 + components: + - type: Transform + pos: 7.5,-2.5 + parent: 2 + - uid: 113 + components: + - type: Transform + pos: -4.5,-7.5 + parent: 2 + - uid: 114 + components: + - type: Transform + pos: -3.5,-11.5 + parent: 2 + - uid: 123 + components: + - type: Transform + pos: -5.5,-7.5 + parent: 2 + - uid: 125 + components: + - type: Transform + pos: 1.5,-11.5 + parent: 2 + - uid: 126 + components: + - type: Transform + pos: 4.5,-7.5 + parent: 2 + - uid: 130 + components: + - type: Transform + pos: 17.5,-13.5 + parent: 2 + - uid: 131 + components: + - type: Transform + pos: 16.5,-14.5 + parent: 2 + - uid: 132 + components: + - type: Transform + pos: 16.5,-13.5 + parent: 2 + - uid: 133 + components: + - type: Transform + pos: 16.5,-12.5 + parent: 2 + - uid: 134 + components: + - type: Transform + pos: 16.5,-11.5 + parent: 2 + - uid: 135 + components: + - type: Transform + pos: 16.5,-10.5 + parent: 2 + - uid: 136 + components: + - type: Transform + pos: 16.5,-9.5 + parent: 2 + - uid: 137 + components: + - type: Transform + pos: -8.5,-35.5 + parent: 2 + - uid: 138 + components: + - type: Transform + pos: -7.5,-37.5 + parent: 2 + - uid: 155 + components: + - type: Transform + pos: 13.5,-23.5 + parent: 2 + - uid: 157 + components: + - type: Transform + pos: 11.5,-23.5 + parent: 2 + - uid: 158 + components: + - type: Transform + pos: 16.5,-22.5 + parent: 2 + - uid: 159 + components: + - type: Transform + pos: 15.5,-23.5 + parent: 2 + - uid: 161 + components: + - type: Transform + pos: 8.5,-10.5 + parent: 2 + - uid: 162 + components: + - type: Transform + pos: 6.5,-23.5 + parent: 2 + - uid: 169 + components: + - type: Transform + pos: 8.5,-23.5 + parent: 2 + - uid: 170 + components: + - type: Transform + pos: 8.5,-22.5 + parent: 2 + - uid: 174 + components: + - type: Transform + pos: 4.5,-22.5 + parent: 2 + - uid: 178 + components: + - type: Transform + pos: 6.5,-9.5 + parent: 2 + - uid: 180 + components: + - type: Transform + pos: 12.5,-22.5 + parent: 2 + - uid: 184 + components: + - type: Transform + pos: -6.5,16.5 + parent: 2 + - uid: 192 + components: + - type: Transform + pos: 1.5,-20.5 + parent: 2 + - uid: 195 + components: + - type: Transform + pos: 3.5,-18.5 + parent: 2 + - uid: 196 + components: + - type: Transform + pos: 3.5,-14.5 + parent: 2 + - uid: 198 + components: + - type: Transform + pos: 4.5,-14.5 + parent: 2 + - uid: 199 + components: + - type: Transform + pos: 4.5,-13.5 + parent: 2 + - uid: 225 + components: + - type: Transform + pos: -2.5,-20.5 + parent: 2 + - uid: 229 + components: + - type: Transform + pos: -5.5,-20.5 + parent: 2 + - uid: 230 + components: + - type: Transform + pos: -5.5,-19.5 + parent: 2 + - uid: 231 + components: + - type: Transform + pos: -5.5,-18.5 + parent: 2 + - uid: 232 + components: + - type: Transform + pos: -4.5,-18.5 + parent: 2 + - uid: 234 + components: + - type: Transform + pos: -5.5,-14.5 + parent: 2 + - uid: 235 + components: + - type: Transform + pos: -5.5,-13.5 + parent: 2 + - uid: 236 + components: + - type: Transform + pos: -5.5,-12.5 + parent: 2 + - uid: 237 + components: + - type: Transform + pos: 2.5,-11.5 + parent: 2 + - uid: 238 + components: + - type: Transform + pos: 2.5,-10.5 + parent: 2 + - uid: 239 + components: + - type: Transform + pos: 2.5,-9.5 + parent: 2 + - uid: 240 + components: + - type: Transform + pos: -2.5,-11.5 + parent: 2 + - uid: 241 + components: + - type: Transform + pos: 1.5,-7.5 + parent: 2 + - uid: 242 + components: + - type: Transform + pos: -5.5,-11.5 + parent: 2 + - uid: 243 + components: + - type: Transform + pos: -5.5,-10.5 + parent: 2 + - uid: 244 + components: + - type: Transform + pos: -5.5,-9.5 + parent: 2 + - uid: 245 + components: + - type: Transform + pos: -6.5,-9.5 + parent: 2 + - uid: 246 + components: + - type: Transform + pos: -7.5,-9.5 + parent: 2 + - uid: 247 + components: + - type: Transform + pos: -8.5,-9.5 + parent: 2 + - uid: 248 + components: + - type: Transform + pos: -9.5,-9.5 + parent: 2 + - uid: 249 + components: + - type: Transform + pos: -10.5,-9.5 + parent: 2 + - uid: 250 + components: + - type: Transform + pos: -11.5,-9.5 + parent: 2 + - uid: 251 + components: + - type: Transform + pos: -12.5,-9.5 + parent: 2 + - uid: 252 + components: + - type: Transform + pos: -13.5,-9.5 + parent: 2 + - uid: 253 + components: + - type: Transform + pos: -14.5,-9.5 + parent: 2 + - uid: 254 + components: + - type: Transform + pos: -15.5,-9.5 + parent: 2 + - uid: 255 + components: + - type: Transform + pos: -16.5,-9.5 + parent: 2 + - uid: 256 + components: + - type: Transform + pos: -17.5,-9.5 + parent: 2 + - uid: 257 + components: + - type: Transform + pos: -17.5,-10.5 + parent: 2 + - uid: 258 + components: + - type: Transform + pos: -17.5,-11.5 + parent: 2 + - uid: 259 + components: + - type: Transform + pos: -17.5,-12.5 + parent: 2 + - uid: 260 + components: + - type: Transform + pos: -17.5,-13.5 + parent: 2 + - uid: 261 + components: + - type: Transform + pos: -17.5,-14.5 + parent: 2 + - uid: 265 + components: + - type: Transform + pos: -17.5,-18.5 + parent: 2 + - uid: 266 + components: + - type: Transform + pos: -17.5,-19.5 + parent: 2 + - uid: 267 + components: + - type: Transform + pos: -17.5,-20.5 + parent: 2 + - uid: 268 + components: + - type: Transform + pos: -17.5,-21.5 + parent: 2 + - uid: 269 + components: + - type: Transform + pos: -17.5,-22.5 + parent: 2 + - uid: 270 + components: + - type: Transform + pos: -17.5,-23.5 + parent: 2 + - uid: 274 + components: + - type: Transform + pos: -13.5,-23.5 + parent: 2 + - uid: 278 + components: + - type: Transform + pos: -9.5,-23.5 + parent: 2 + - uid: 282 + components: + - type: Transform + pos: -5.5,-23.5 + parent: 2 + - uid: 283 + components: + - type: Transform + pos: -5.5,-22.5 + parent: 2 + - uid: 284 + components: + - type: Transform + pos: -5.5,-21.5 + parent: 2 + - uid: 285 + components: + - type: Transform + pos: -9.5,-22.5 + parent: 2 + - uid: 286 + components: + - type: Transform + pos: -9.5,-21.5 + parent: 2 + - uid: 287 + components: + - type: Transform + pos: -9.5,-20.5 + parent: 2 + - uid: 288 + components: + - type: Transform + pos: -9.5,-19.5 + parent: 2 + - uid: 289 + components: + - type: Transform + pos: -9.5,-18.5 + parent: 2 + - uid: 290 + components: + - type: Transform + pos: -7.5,-19.5 + parent: 2 + - uid: 291 + components: + - type: Transform + pos: -6.5,-19.5 + parent: 2 + - uid: 292 + components: + - type: Transform + pos: -10.5,-18.5 + parent: 2 + - uid: 293 + components: + - type: Transform + pos: -12.5,-18.5 + parent: 2 + - uid: 294 + components: + - type: Transform + pos: -13.5,-18.5 + parent: 2 + - uid: 295 + components: + - type: Transform + pos: -13.5,-19.5 + parent: 2 + - uid: 296 + components: + - type: Transform + pos: -13.5,-20.5 + parent: 2 + - uid: 297 + components: + - type: Transform + pos: -13.5,-21.5 + parent: 2 + - uid: 298 + components: + - type: Transform + pos: -13.5,-22.5 + parent: 2 + - uid: 299 + components: + - type: Transform + pos: -7.5,-13.5 + parent: 2 + - uid: 300 + components: + - type: Transform + pos: -16.5,-19.5 + parent: 2 + - uid: 301 + components: + - type: Transform + pos: -13.5,-14.5 + parent: 2 + - uid: 302 + components: + - type: Transform + pos: -12.5,-14.5 + parent: 2 + - uid: 303 + components: + - type: Transform + pos: -10.5,-14.5 + parent: 2 + - uid: 304 + components: + - type: Transform + pos: -9.5,-14.5 + parent: 2 + - uid: 305 + components: + - type: Transform + pos: -9.5,-13.5 + parent: 2 + - uid: 306 + components: + - type: Transform + pos: -15.5,-19.5 + parent: 2 + - uid: 307 + components: + - type: Transform + pos: -6.5,-13.5 + parent: 2 + - uid: 308 + components: + - type: Transform + pos: -9.5,-12.5 + parent: 2 + - uid: 309 + components: + - type: Transform + pos: -9.5,-11.5 + parent: 2 + - uid: 310 + components: + - type: Transform + pos: -9.5,-10.5 + parent: 2 + - uid: 311 + components: + - type: Transform + pos: -13.5,-13.5 + parent: 2 + - uid: 312 + components: + - type: Transform + pos: -13.5,-12.5 + parent: 2 + - uid: 313 + components: + - type: Transform + pos: -13.5,-11.5 + parent: 2 + - uid: 314 + components: + - type: Transform + pos: -13.5,-10.5 + parent: 2 + - uid: 315 + components: + - type: Transform + pos: -15.5,-13.5 + parent: 2 + - uid: 316 + components: + - type: Transform + pos: -16.5,-13.5 + parent: 2 + - uid: 322 + components: + - type: Transform + pos: -4.5,-14.5 + parent: 2 + - uid: 332 + components: + - type: Transform + pos: 18.5,-31.5 + parent: 2 + - uid: 333 + components: + - type: Transform + pos: 15.5,-27.5 + parent: 2 + - uid: 334 + components: + - type: Transform + pos: 17.5,-19.5 + parent: 2 + - uid: 338 + components: + - type: Transform + pos: -18.5,-13.5 + parent: 2 + - uid: 339 + components: + - type: Transform + pos: -19.5,-13.5 + parent: 2 + - uid: 340 + components: + - type: Transform + pos: -19.5,-14.5 + parent: 2 + - uid: 341 + components: + - type: Transform + pos: -19.5,-15.5 + parent: 2 + - uid: 342 + components: + - type: Transform + pos: -19.5,-16.5 + parent: 2 + - uid: 343 + components: + - type: Transform + pos: -19.5,-17.5 + parent: 2 + - uid: 344 + components: + - type: Transform + pos: -19.5,-18.5 + parent: 2 + - uid: 345 + components: + - type: Transform + pos: -19.5,-19.5 + parent: 2 + - uid: 346 + components: + - type: Transform + pos: -18.5,-19.5 + parent: 2 + - uid: 418 + components: + - type: Transform + pos: 4.5,-24.5 + parent: 2 + - uid: 419 + components: + - type: Transform + pos: 4.5,-25.5 + parent: 2 + - uid: 420 + components: + - type: Transform + pos: 3.5,-25.5 + parent: 2 + - uid: 421 + components: + - type: Transform + pos: 2.5,-25.5 + parent: 2 + - uid: 422 + components: + - type: Transform + pos: 1.5,-25.5 + parent: 2 + - uid: 423 + components: + - type: Transform + pos: -2.5,-25.5 + parent: 2 + - uid: 424 + components: + - type: Transform + pos: -3.5,-25.5 + parent: 2 + - uid: 425 + components: + - type: Transform + pos: -4.5,-25.5 + parent: 2 + - uid: 426 + components: + - type: Transform + pos: -5.5,-25.5 + parent: 2 + - uid: 427 + components: + - type: Transform + pos: -5.5,-24.5 + parent: 2 + - uid: 428 + components: + - type: Transform + pos: 10.5,-30.5 + parent: 2 + - uid: 429 + components: + - type: Transform + pos: 3.5,-7.5 + parent: 2 + - uid: 430 + components: + - type: Transform + pos: 8.5,-2.5 + parent: 2 + - uid: 432 + components: + - type: Transform + pos: -10.5,-30.5 + parent: 2 + - uid: 434 + components: + - type: Transform + pos: -12.5,-31.5 + parent: 2 + - uid: 436 + components: + - type: Transform + pos: 5.5,-41.5 + parent: 2 + - uid: 437 + components: + - type: Transform + pos: 7.5,-43.5 + parent: 2 + - uid: 438 + components: + - type: Transform + pos: 7.5,-42.5 + parent: 2 + - uid: 439 + components: + - type: Transform + pos: 6.5,-42.5 + parent: 2 + - uid: 440 + components: + - type: Transform + pos: 6.5,-41.5 + parent: 2 + - uid: 441 + components: + - type: Transform + pos: 11.5,-42.5 + parent: 2 + - uid: 442 + components: + - type: Transform + pos: 5.5,-37.5 + parent: 2 + - uid: 443 + components: + - type: Transform + pos: -2.5,-29.5 + parent: 2 + - uid: 444 + components: + - type: Transform + pos: -8.5,-30.5 + parent: 2 + - uid: 445 + components: + - type: Transform + pos: 9.5,-2.5 + parent: 2 + - uid: 449 + components: + - type: Transform + pos: 1.5,-29.5 + parent: 2 + - uid: 450 + components: + - type: Transform + pos: 2.5,-29.5 + parent: 2 + - uid: 451 + components: + - type: Transform + pos: 2.5,-30.5 + parent: 2 + - uid: 452 + components: + - type: Transform + pos: 3.5,-30.5 + parent: 2 + - uid: 453 + components: + - type: Transform + pos: 4.5,-30.5 + parent: 2 + - uid: 454 + components: + - type: Transform + pos: 5.5,-30.5 + parent: 2 + - uid: 455 + components: + - type: Transform + pos: 6.5,-30.5 + parent: 2 + - uid: 456 + components: + - type: Transform + pos: 7.5,-30.5 + parent: 2 + - uid: 457 + components: + - type: Transform + pos: 9.5,-3.5 + parent: 2 + - uid: 458 + components: + - type: Transform + pos: -6.5,-30.5 + parent: 2 + - uid: 459 + components: + - type: Transform + pos: 9.5,-30.5 + parent: 2 + - uid: 460 + components: + - type: Transform + pos: 11.5,-37.5 + parent: 2 + - uid: 461 + components: + - type: Transform + pos: 11.5,-28.5 + parent: 2 + - uid: 462 + components: + - type: Transform + pos: 18.5,-17.5 + parent: 2 + - uid: 463 + components: + - type: Transform + pos: 6.5,-34.5 + parent: 2 + - uid: 465 + components: + - type: Transform + pos: 18.5,-16.5 + parent: 2 + - uid: 466 + components: + - type: Transform + pos: 18.5,-15.5 + parent: 2 + - uid: 467 + components: + - type: Transform + pos: 18.5,-14.5 + parent: 2 + - uid: 469 + components: + - type: Transform + pos: 18.5,-13.5 + parent: 2 + - uid: 470 + components: + - type: Transform + pos: 10.5,-31.5 + parent: 2 + - uid: 471 + components: + - type: Transform + pos: 1.5,-8.5 + parent: 2 + - uid: 473 + components: + - type: Transform + pos: 17.5,-27.5 + parent: 2 + - uid: 474 + components: + - type: Transform + pos: 13.5,-27.5 + parent: 2 + - uid: 475 + components: + - type: Transform + pos: 37.5,-24.5 + parent: 2 + - uid: 476 + components: + - type: Transform + pos: 17.5,-28.5 + parent: 2 + - uid: 478 + components: + - type: Transform + pos: 37.5,-20.5 + parent: 2 + - uid: 479 + components: + - type: Transform + pos: 18.5,-35.5 + parent: 2 + - uid: 481 + components: + - type: Transform + pos: 18.5,-33.5 + parent: 2 + - uid: 482 + components: + - type: Transform + pos: 17.5,-31.5 + parent: 2 + - uid: 484 + components: + - type: Transform + pos: 14.5,-27.5 + parent: 2 + - uid: 487 + components: + - type: Transform + pos: 18.5,-28.5 + parent: 2 + - uid: 488 + components: + - type: Transform + pos: 18.5,-29.5 + parent: 2 + - uid: 489 + components: + - type: Transform + pos: 12.5,-27.5 + parent: 2 + - uid: 490 + components: + - type: Transform + pos: 11.5,-27.5 + parent: 2 + - uid: 492 + components: + - type: Transform + pos: 12.5,-29.5 + parent: 2 + - uid: 494 + components: + - type: Transform + pos: 12.5,-30.5 + parent: 2 + - uid: 496 + components: + - type: Transform + pos: -12.5,-37.5 + parent: 2 + - uid: 498 + components: + - type: Transform + pos: -12.5,-43.5 + parent: 2 + - uid: 499 + components: + - type: Transform + pos: -2.5,-42.5 + parent: 2 + - uid: 500 + components: + - type: Transform + pos: 12.5,-41.5 + parent: 2 + - uid: 501 + components: + - type: Transform + pos: -8.5,-34.5 + parent: 2 + - uid: 503 + components: + - type: Transform + pos: -8.5,-36.5 + parent: 2 + - uid: 504 + components: + - type: Transform + pos: 11.5,-41.5 + parent: 2 + - uid: 505 + components: + - type: Transform + pos: 7.5,-35.5 + parent: 2 + - uid: 506 + components: + - type: Transform + pos: 7.5,-34.5 + parent: 2 + - uid: 507 + components: + - type: Transform + pos: 5.5,-34.5 + parent: 2 + - uid: 508 + components: + - type: Transform + pos: 4.5,-34.5 + parent: 2 + - uid: 509 + components: + - type: Transform + pos: 3.5,-34.5 + parent: 2 + - uid: 510 + components: + - type: Transform + pos: 2.5,-34.5 + parent: 2 + - uid: 511 + components: + - type: Transform + pos: 11.5,-43.5 + parent: 2 + - uid: 512 + components: + - type: Transform + pos: 13.5,-41.5 + parent: 2 + - uid: 513 + components: + - type: Transform + pos: 2.5,-35.5 + parent: 2 + - uid: 514 + components: + - type: Transform + pos: 1.5,-35.5 + parent: 2 + - uid: 515 + components: + - type: Transform + pos: -2.5,-35.5 + parent: 2 + - uid: 516 + components: + - type: Transform + pos: -3.5,-35.5 + parent: 2 + - uid: 517 + components: + - type: Transform + pos: 14.5,-41.5 + parent: 2 + - uid: 518 + components: + - type: Transform + pos: 7.5,-36.5 + parent: 2 + - uid: 519 + components: + - type: Transform + pos: 6.5,-36.5 + parent: 2 + - uid: 520 + components: + - type: Transform + pos: 6.5,-37.5 + parent: 2 + - uid: 521 + components: + - type: Transform + pos: -3.5,-29.5 + parent: 2 + - uid: 522 + components: + - type: Transform + pos: -12.5,-32.5 + parent: 2 + - uid: 523 + components: + - type: Transform + pos: 15.5,-41.5 + parent: 2 + - uid: 524 + components: + - type: Transform + pos: -11.5,-30.5 + parent: 2 + - uid: 525 + components: + - type: Transform + pos: -9.5,-30.5 + parent: 2 + - uid: 526 + components: + - type: Transform + pos: -7.5,-30.5 + parent: 2 + - uid: 527 + components: + - type: Transform + pos: -5.5,-30.5 + parent: 2 + - uid: 528 + components: + - type: Transform + pos: -0.5,-32.5 + parent: 2 + - uid: 535 + components: + - type: Transform + pos: -3.5,-34.5 + parent: 2 + - uid: 536 + components: + - type: Transform + pos: -12.5,-42.5 + parent: 2 + - uid: 537 + components: + - type: Transform + pos: -12.5,-41.5 + parent: 2 + - uid: 538 + components: + - type: Transform + pos: 16.5,-41.5 + parent: 2 + - uid: 539 + components: + - type: Transform + pos: -12.5,-36.5 + parent: 2 + - uid: 541 + components: + - type: Transform + pos: -7.5,-34.5 + parent: 2 + - uid: 542 + components: + - type: Transform + pos: -6.5,-34.5 + parent: 2 + - uid: 543 + components: + - type: Transform + pos: -5.5,-34.5 + parent: 2 + - uid: 544 + components: + - type: Transform + pos: -4.5,-34.5 + parent: 2 + - uid: 545 + components: + - type: Transform + pos: -8.5,-43.5 + parent: 2 + - uid: 546 + components: + - type: Transform + pos: -8.5,-42.5 + parent: 2 + - uid: 547 + components: + - type: Transform + pos: -7.5,-42.5 + parent: 2 + - uid: 548 + components: + - type: Transform + pos: -6.5,-41.5 + parent: 2 + - uid: 549 + components: + - type: Transform + pos: -7.5,-41.5 + parent: 2 + - uid: 550 + components: + - type: Transform + pos: -7.5,-36.5 + parent: 2 + - uid: 551 + components: + - type: Transform + pos: -6.5,-37.5 + parent: 2 + - uid: 552 + components: + - type: Transform + pos: 11.5,-32.5 + parent: 2 + - uid: 553 + components: + - type: Transform + pos: 11.5,-36.5 + parent: 2 + - uid: 554 + components: + - type: Transform + pos: 1.5,-42.5 + parent: 2 + - uid: 555 + components: + - type: Transform + pos: 1.5,-36.5 + parent: 2 + - uid: 556 + components: + - type: Transform + pos: -2.5,-36.5 + parent: 2 + - uid: 557 + components: + - type: Transform + pos: -2.5,-43.5 + parent: 2 + - uid: 558 + components: + - type: Transform + pos: 1.5,-43.5 + parent: 2 + - uid: 563 + components: + - type: Transform + pos: -6.5,-23.5 + parent: 2 + - uid: 564 + components: + - type: Transform + pos: -16.5,-23.5 + parent: 2 + - uid: 621 + components: + - type: Transform + pos: 1.5,-49.5 + parent: 2 + - uid: 626 + components: + - type: Transform + pos: -3.5,-43.5 + parent: 2 + - uid: 627 + components: + - type: Transform + pos: 12.5,-46.5 + parent: 2 + - uid: 628 + components: + - type: Transform + pos: 17.5,-41.5 + parent: 2 + - uid: 629 + components: + - type: Transform + pos: 12.5,-37.5 + parent: 2 + - uid: 630 + components: + - type: Transform + pos: 2.5,-43.5 + parent: 2 + - uid: 631 + components: + - type: Transform + pos: 5.5,-48.5 + parent: 2 + - uid: 634 + components: + - type: Transform + pos: -3.5,-44.5 + parent: 2 + - uid: 635 + components: + - type: Transform + pos: 2.5,-44.5 + parent: 2 + - uid: 638 + components: + - type: Transform + pos: 0.5,-49.5 + parent: 2 + - uid: 639 + components: + - type: Transform + pos: -0.5,-49.5 + parent: 2 + - uid: 640 + components: + - type: Transform + pos: -1.5,-49.5 + parent: 2 + - uid: 641 + components: + - type: Transform + pos: -2.5,-49.5 + parent: 2 + - uid: 642 + components: + - type: Transform + pos: -6.5,-48.5 + parent: 2 + - uid: 643 + components: + - type: Transform + pos: -7.5,-50.5 + parent: 2 + - uid: 644 + components: + - type: Transform + pos: -7.5,-49.5 + parent: 2 + - uid: 645 + components: + - type: Transform + pos: -8.5,-51.5 + parent: 2 + - uid: 646 + components: + - type: Transform + pos: -7.5,-51.5 + parent: 2 + - uid: 647 + components: + - type: Transform + pos: -7.5,-52.5 + parent: 2 + - uid: 648 + components: + - type: Transform + pos: -7.5,-56.5 + parent: 2 + - uid: 649 + components: + - type: Transform + pos: -6.5,-56.5 + parent: 2 + - uid: 650 + components: + - type: Transform + pos: -5.5,-56.5 + parent: 2 + - uid: 651 + components: + - type: Transform + pos: -7.5,-58.5 + parent: 2 + - uid: 652 + components: + - type: Transform + pos: -6.5,-58.5 + parent: 2 + - uid: 653 + components: + - type: Transform + pos: -5.5,-58.5 + parent: 2 + - uid: 654 + components: + - type: Transform + pos: 4.5,-58.5 + parent: 2 + - uid: 655 + components: + - type: Transform + pos: 5.5,-58.5 + parent: 2 + - uid: 656 + components: + - type: Transform + pos: 6.5,-58.5 + parent: 2 + - uid: 657 + components: + - type: Transform + pos: 4.5,-56.5 + parent: 2 + - uid: 658 + components: + - type: Transform + pos: 5.5,-56.5 + parent: 2 + - uid: 659 + components: + - type: Transform + pos: 6.5,-56.5 + parent: 2 + - uid: 660 + components: + - type: Transform + pos: 6.5,-52.5 + parent: 2 + - uid: 661 + components: + - type: Transform + pos: 6.5,-51.5 + parent: 2 + - uid: 662 + components: + - type: Transform + pos: 4.5,-63.5 + parent: 2 + - uid: 663 + components: + - type: Transform + pos: 5.5,-63.5 + parent: 2 + - uid: 664 + components: + - type: Transform + pos: 6.5,-63.5 + parent: 2 + - uid: 665 + components: + - type: Transform + pos: 4.5,-65.5 + parent: 2 + - uid: 666 + components: + - type: Transform + pos: 5.5,-65.5 + parent: 2 + - uid: 667 + components: + - type: Transform + pos: 6.5,-65.5 + parent: 2 + - uid: 668 + components: + - type: Transform + pos: -5.5,-65.5 + parent: 2 + - uid: 669 + components: + - type: Transform + pos: -6.5,-65.5 + parent: 2 + - uid: 670 + components: + - type: Transform + pos: -7.5,-65.5 + parent: 2 + - uid: 671 + components: + - type: Transform + pos: -7.5,-63.5 + parent: 2 + - uid: 672 + components: + - type: Transform + pos: -6.5,-63.5 + parent: 2 + - uid: 673 + components: + - type: Transform + pos: -5.5,-63.5 + parent: 2 + - uid: 680 + components: + - type: Transform + pos: 14.5,-56.5 + parent: 2 + - uid: 681 + components: + - type: Transform + pos: 11.5,-51.5 + parent: 2 + - uid: 682 + components: + - type: Transform + pos: 12.5,-51.5 + parent: 2 + - uid: 683 + components: + - type: Transform + pos: 7.5,-51.5 + parent: 2 + - uid: 689 + components: + - type: Transform + pos: 16.5,-37.5 + parent: 2 + - uid: 690 + components: + - type: Transform + pos: -15.5,-65.5 + parent: 2 + - uid: 691 + components: + - type: Transform + pos: -14.5,-56.5 + parent: 2 + - uid: 692 + components: + - type: Transform + pos: -13.5,-58.5 + parent: 2 + - uid: 693 + components: + - type: Transform + pos: 12.5,-58.5 + parent: 2 + - uid: 696 + components: + - type: Transform + pos: 14.5,-58.5 + parent: 2 + - uid: 697 + components: + - type: Transform + pos: 12.5,-56.5 + parent: 2 + - uid: 698 + components: + - type: Transform + pos: 13.5,-56.5 + parent: 2 + - uid: 705 + components: + - type: Transform + pos: 6.5,-49.5 + parent: 2 + - uid: 706 + components: + - type: Transform + pos: 6.5,-48.5 + parent: 2 + - uid: 707 + components: + - type: Transform + pos: 6.5,-50.5 + parent: 2 + - uid: 711 + components: + - type: Transform + pos: 12.5,-45.5 + parent: 2 + - uid: 712 + components: + - type: Transform + pos: 11.5,-45.5 + parent: 2 + - uid: 713 + components: + - type: Transform + pos: 10.5,-29.5 + parent: 2 + - uid: 714 + components: + - type: Transform + pos: 11.5,-44.5 + parent: 2 + - uid: 719 + components: + - type: Transform + pos: 6.5,-44.5 + parent: 2 + - uid: 720 + components: + - type: Transform + pos: 11.5,-29.5 + parent: 2 + - uid: 722 + components: + - type: Transform + pos: -7.5,-48.5 + parent: 2 + - uid: 723 + components: + - type: Transform + pos: -12.5,-51.5 + parent: 2 + - uid: 724 + components: + - type: Transform + pos: -12.5,-45.5 + parent: 2 + - uid: 725 + components: + - type: Transform + pos: -14.5,-58.5 + parent: 2 + - uid: 726 + components: + - type: Transform + pos: -14.5,-65.5 + parent: 2 + - uid: 727 + components: + - type: Transform + pos: -13.5,-65.5 + parent: 2 + - uid: 728 + components: + - type: Transform + pos: -15.5,-63.5 + parent: 2 + - uid: 729 + components: + - type: Transform + pos: -14.5,-63.5 + parent: 2 + - uid: 730 + components: + - type: Transform + pos: -13.5,-63.5 + parent: 2 + - uid: 732 + components: + - type: Transform + pos: -13.5,-52.5 + parent: 2 + - uid: 749 + components: + - type: Transform + pos: -13.5,-51.5 + parent: 2 + - uid: 750 + components: + - type: Transform + pos: -13.5,-56.5 + parent: 2 + - uid: 751 + components: + - type: Transform + pos: -15.5,-56.5 + parent: 2 + - uid: 752 + components: + - type: Transform + pos: -15.5,-58.5 + parent: 2 + - uid: 753 + components: + - type: Transform + pos: 17.5,-36.5 + parent: 2 + - uid: 754 + components: + - type: Transform + pos: 7.5,-44.5 + parent: 2 + - uid: 755 + components: + - type: Transform + pos: 17.5,-37.5 + parent: 2 + - uid: 757 + components: + - type: Transform + pos: 12.5,-50.5 + parent: 2 + - uid: 758 + components: + - type: Transform + pos: 12.5,-52.5 + parent: 2 + - uid: 761 + components: + - type: Transform + pos: 13.5,-58.5 + parent: 2 + - uid: 776 + components: + - type: Transform + pos: -10.5,-68.5 + parent: 2 + - uid: 778 + components: + - type: Transform + pos: 1.5,-13.5 + parent: 2 + - uid: 783 + components: + - type: Transform + pos: -13.5,-46.5 + parent: 2 + - uid: 785 + components: + - type: Transform + pos: -13.5,-50.5 + parent: 2 + - uid: 787 + components: + - type: Transform + pos: -12.5,-44.5 + parent: 2 + - uid: 788 + components: + - type: Transform + pos: -13.5,-45.5 + parent: 2 + - uid: 794 + components: + - type: Transform + pos: -8.5,-44.5 + parent: 2 + - uid: 795 + components: + - type: Transform + pos: -7.5,-44.5 + parent: 2 + - uid: 796 + components: + - type: Transform + pos: -11.5,-31.5 + parent: 2 + - uid: 804 + components: + - type: Transform + pos: 12.5,-63.5 + parent: 2 + - uid: 805 + components: + - type: Transform + pos: 13.5,-63.5 + parent: 2 + - uid: 806 + components: + - type: Transform + pos: 14.5,-63.5 + parent: 2 + - uid: 807 + components: + - type: Transform + pos: 12.5,-65.5 + parent: 2 + - uid: 808 + components: + - type: Transform + pos: 13.5,-65.5 + parent: 2 + - uid: 809 + components: + - type: Transform + pos: 14.5,-65.5 + parent: 2 + - uid: 824 + components: + - type: Transform + pos: 9.5,-68.5 + parent: 2 + - uid: 830 + components: + - type: Transform + pos: -4.5,-30.5 + parent: 2 + - uid: 831 + components: + - type: Transform + pos: -3.5,-30.5 + parent: 2 + - uid: 856 + components: + - type: Transform + pos: 18.5,-36.5 + parent: 2 + - uid: 857 + components: + - type: Transform + pos: 19.5,-36.5 + parent: 2 + - uid: 858 + components: + - type: Transform + pos: 19.5,-37.5 + parent: 2 + - uid: 859 + components: + - type: Transform + pos: 20.5,-37.5 + parent: 2 + - uid: 860 + components: + - type: Transform + pos: 21.5,-37.5 + parent: 2 + - uid: 861 + components: + - type: Transform + pos: 45.5,-1.5 + parent: 2 + - uid: 862 + components: + - type: Transform + pos: 1.5,-9.5 + parent: 2 + - uid: 863 + components: + - type: Transform + pos: 45.5,0.5 + parent: 2 + - uid: 864 + components: + - type: Transform + pos: 21.5,-41.5 + parent: 2 + - uid: 865 + components: + - type: Transform + pos: 20.5,-41.5 + parent: 2 + - uid: 866 + components: + - type: Transform + pos: 19.5,-41.5 + parent: 2 + - uid: 867 + components: + - type: Transform + pos: 17.5,-42.5 + parent: 2 + - uid: 868 + components: + - type: Transform + pos: 18.5,-42.5 + parent: 2 + - uid: 869 + components: + - type: Transform + pos: 19.5,-42.5 + parent: 2 + - uid: 881 + components: + - type: Transform + pos: -13.5,-37.5 + parent: 2 + - uid: 882 + components: + - type: Transform + pos: -14.5,-37.5 + parent: 2 + - uid: 883 + components: + - type: Transform + pos: -15.5,-37.5 + parent: 2 + - uid: 884 + components: + - type: Transform + pos: -16.5,-37.5 + parent: 2 + - uid: 885 + components: + - type: Transform + pos: -17.5,-37.5 + parent: 2 + - uid: 886 + components: + - type: Transform + pos: -18.5,-37.5 + parent: 2 + - uid: 887 + components: + - type: Transform + pos: -18.5,-36.5 + parent: 2 + - uid: 888 + components: + - type: Transform + pos: -19.5,-36.5 + parent: 2 + - uid: 889 + components: + - type: Transform + pos: -20.5,-36.5 + parent: 2 + - uid: 890 + components: + - type: Transform + pos: -20.5,-37.5 + parent: 2 + - uid: 891 + components: + - type: Transform + pos: -21.5,-37.5 + parent: 2 + - uid: 892 + components: + - type: Transform + pos: -22.5,-37.5 + parent: 2 + - uid: 893 + components: + - type: Transform + pos: -22.5,-41.5 + parent: 2 + - uid: 894 + components: + - type: Transform + pos: -21.5,-41.5 + parent: 2 + - uid: 895 + components: + - type: Transform + pos: -20.5,-41.5 + parent: 2 + - uid: 896 + components: + - type: Transform + pos: -20.5,-42.5 + parent: 2 + - uid: 897 + components: + - type: Transform + pos: -19.5,-42.5 + parent: 2 + - uid: 898 + components: + - type: Transform + pos: -18.5,-42.5 + parent: 2 + - uid: 899 + components: + - type: Transform + pos: -18.5,-41.5 + parent: 2 + - uid: 900 + components: + - type: Transform + pos: -17.5,-41.5 + parent: 2 + - uid: 901 + components: + - type: Transform + pos: -16.5,-41.5 + parent: 2 + - uid: 902 + components: + - type: Transform + pos: -15.5,-41.5 + parent: 2 + - uid: 903 + components: + - type: Transform + pos: -14.5,-41.5 + parent: 2 + - uid: 904 + components: + - type: Transform + pos: -13.5,-41.5 + parent: 2 + - uid: 906 + components: + - type: Transform + pos: -12.5,-35.5 + parent: 2 + - uid: 907 + components: + - type: Transform + pos: -12.5,-34.5 + parent: 2 + - uid: 908 + components: + - type: Transform + pos: 4.5,-29.5 + parent: 2 + - uid: 909 + components: + - type: Transform + pos: 1.5,-28.5 + parent: 2 + - uid: 918 + components: + - type: Transform + pos: 10.5,-3.5 + parent: 2 + - uid: 919 + components: + - type: Transform + pos: 11.5,-3.5 + parent: 2 + - uid: 920 + components: + - type: Transform + pos: 11.5,-2.5 + parent: 2 + - uid: 921 + components: + - type: Transform + pos: 12.5,-2.5 + parent: 2 + - uid: 923 + components: + - type: Transform + pos: 14.5,-2.5 + parent: 2 + - uid: 924 + components: + - type: Transform + pos: 27.5,-3.5 + parent: 2 + - uid: 925 + components: + - type: Transform + pos: 27.5,-4.5 + parent: 2 + - uid: 926 + components: + - type: Transform + pos: 26.5,-4.5 + parent: 2 + - uid: 927 + components: + - type: Transform + pos: 25.5,-4.5 + parent: 2 + - uid: 928 + components: + - type: Transform + pos: 21.5,-4.5 + parent: 2 + - uid: 937 + components: + - type: Transform + pos: 27.5,-9.5 + parent: 2 + - uid: 939 + components: + - type: Transform + pos: 29.5,-14.5 + parent: 2 + - uid: 940 + components: + - type: Transform + pos: 19.5,-2.5 + parent: 2 + - uid: 941 + components: + - type: Transform + pos: 18.5,-2.5 + parent: 2 + - uid: 942 + components: + - type: Transform + pos: 15.5,-2.5 + parent: 2 + - uid: 943 + components: + - type: Transform + pos: 16.5,-2.5 + parent: 2 + - uid: 944 + components: + - type: Transform + pos: 17.5,-2.5 + parent: 2 + - uid: 945 + components: + - type: Transform + pos: 18.5,-18.5 + parent: 2 + - uid: 946 + components: + - type: Transform + pos: 29.5,-16.5 + parent: 2 + - uid: 947 + components: + - type: Transform + pos: 30.5,-11.5 + parent: 2 + - uid: 948 + components: + - type: Transform + pos: 18.5,-19.5 + parent: 2 + - uid: 950 + components: + - type: Transform + pos: 29.5,-15.5 + parent: 2 + - uid: 952 + components: + - type: Transform + pos: 28.5,-16.5 + parent: 2 + - uid: 955 + components: + - type: Transform + pos: 19.5,-10.5 + parent: 2 + - uid: 956 + components: + - type: Transform + pos: 18.5,-10.5 + parent: 2 + - uid: 957 + components: + - type: Transform + pos: 17.5,-10.5 + parent: 2 + - uid: 958 + components: + - type: Transform + pos: 33.5,-9.5 + parent: 2 + - uid: 959 + components: + - type: Transform + pos: 24.5,-15.5 + parent: 2 + - uid: 961 + components: + - type: Transform + pos: 34.5,-9.5 + parent: 2 + - uid: 962 + components: + - type: Transform + pos: 31.5,-14.5 + parent: 2 + - uid: 963 + components: + - type: Transform + pos: 30.5,-2.5 + parent: 2 + - uid: 964 + components: + - type: Transform + pos: 29.5,-2.5 + parent: 2 + - uid: 965 + components: + - type: Transform + pos: 28.5,-2.5 + parent: 2 + - uid: 966 + components: + - type: Transform + pos: 27.5,-2.5 + parent: 2 + - uid: 972 + components: + - type: Transform + pos: 40.5,-20.5 + parent: 2 + - uid: 973 + components: + - type: Transform + pos: 20.5,-14.5 + parent: 2 + - uid: 977 + components: + - type: Transform + pos: 28.5,-10.5 + parent: 2 + - uid: 978 + components: + - type: Transform + pos: 27.5,-10.5 + parent: 2 + - uid: 981 + components: + - type: Transform + pos: 19.5,-4.5 + parent: 2 + - uid: 982 + components: + - type: Transform + pos: 20.5,-4.5 + parent: 2 + - uid: 983 + components: + - type: Transform + pos: 19.5,-3.5 + parent: 2 + - uid: 986 + components: + - type: Transform + pos: 14.5,-8.5 + parent: 2 + - uid: 987 + components: + - type: Transform + pos: 14.5,-7.5 + parent: 2 + - uid: 988 + components: + - type: Transform + pos: 14.5,-6.5 + parent: 2 + - uid: 989 + components: + - type: Transform + pos: 14.5,-5.5 + parent: 2 + - uid: 990 + components: + - type: Transform + pos: 14.5,-4.5 + parent: 2 + - uid: 991 + components: + - type: Transform + pos: 14.5,-3.5 + parent: 2 + - uid: 994 + components: + - type: Transform + pos: 11.5,1.5 + parent: 2 + - uid: 996 + components: + - type: Transform + pos: 36.5,-10.5 + parent: 2 + - uid: 997 + components: + - type: Transform + pos: 30.5,-10.5 + parent: 2 + - uid: 998 + components: + - type: Transform + pos: 30.5,-9.5 + parent: 2 + - uid: 999 + components: + - type: Transform + pos: 31.5,-9.5 + parent: 2 + - uid: 1000 + components: + - type: Transform + pos: 29.5,-10.5 + parent: 2 + - uid: 1001 + components: + - type: Transform + pos: 32.5,-9.5 + parent: 2 + - uid: 1002 + components: + - type: Transform + pos: 32.5,-8.5 + parent: 2 + - uid: 1005 + components: + - type: Transform + pos: 5.5,16.5 + parent: 2 + - uid: 1014 + components: + - type: Transform + pos: 32.5,-7.5 + parent: 2 + - uid: 1015 + components: + - type: Transform + pos: 32.5,-6.5 + parent: 2 + - uid: 1016 + components: + - type: Transform + pos: 32.5,-5.5 + parent: 2 + - uid: 1017 + components: + - type: Transform + pos: 32.5,-2.5 + parent: 2 + - uid: 1018 + components: + - type: Transform + pos: 32.5,-4.5 + parent: 2 + - uid: 1019 + components: + - type: Transform + pos: 31.5,-2.5 + parent: 2 + - uid: 1024 + components: + - type: Transform + pos: 32.5,-3.5 + parent: 2 + - uid: 1030 + components: + - type: Transform + pos: 19.5,-8.5 + parent: 2 + - uid: 1031 + components: + - type: Transform + pos: 19.5,-9.5 + parent: 2 + - uid: 1034 + components: + - type: Transform + pos: 27.5,-8.5 + parent: 2 + - uid: 1046 + components: + - type: Transform + pos: 25.5,-16.5 + parent: 2 + - uid: 1047 + components: + - type: Transform + pos: 27.5,-16.5 + parent: 2 + - uid: 1048 + components: + - type: Transform + pos: 24.5,-16.5 + parent: 2 + - uid: 1052 + components: + - type: Transform + pos: 20.5,-15.5 + parent: 2 + - uid: 1054 + components: + - type: Transform + pos: 30.5,-13.5 + parent: 2 + - uid: 1055 + components: + - type: Transform + pos: 26.5,-16.5 + parent: 2 + - uid: 1058 + components: + - type: Transform + pos: 22.5,-15.5 + parent: 2 + - uid: 1060 + components: + - type: Transform + pos: 30.5,-14.5 + parent: 2 + - uid: 1062 + components: + - type: Transform + pos: 21.5,-15.5 + parent: 2 + - uid: 1064 + components: + - type: Transform + pos: 19.5,-14.5 + parent: 2 + - uid: 1090 + components: + - type: Transform + pos: 23.5,-14.5 + parent: 2 + - uid: 1091 + components: + - type: Transform + pos: 23.5,-10.5 + parent: 2 + - uid: 1092 + components: + - type: Transform + pos: 23.5,-15.5 + parent: 2 + - uid: 1095 + components: + - type: Transform + pos: 36.5,-11.5 + parent: 2 + - uid: 1098 + components: + - type: Transform + pos: 36.5,-12.5 + parent: 2 + - uid: 1099 + components: + - type: Transform + pos: 35.5,-13.5 + parent: 2 + - uid: 1100 + components: + - type: Transform + pos: 35.5,-14.5 + parent: 2 + - uid: 1101 + components: + - type: Transform + pos: 36.5,-13.5 + parent: 2 + - uid: 1102 + components: + - type: Transform + pos: 33.5,-14.5 + parent: 2 + - uid: 1103 + components: + - type: Transform + pos: 34.5,-14.5 + parent: 2 + - uid: 1104 + components: + - type: Transform + pos: 12.5,1.5 + parent: 2 + - uid: 1105 + components: + - type: Transform + pos: 32.5,-14.5 + parent: 2 + - uid: 1107 + components: + - type: Transform + pos: 13.5,1.5 + parent: 2 + - uid: 1110 + components: + - type: Transform + pos: 36.5,-9.5 + parent: 2 + - uid: 1111 + components: + - type: Transform + pos: 35.5,-9.5 + parent: 2 + - uid: 1112 + components: + - type: Transform + pos: 14.5,1.5 + parent: 2 + - uid: 1113 + components: + - type: Transform + pos: 15.5,1.5 + parent: 2 + - uid: 1114 + components: + - type: Transform + pos: 16.5,1.5 + parent: 2 + - uid: 1115 + components: + - type: Transform + pos: 17.5,1.5 + parent: 2 + - uid: 1116 + components: + - type: Transform + pos: 18.5,1.5 + parent: 2 + - uid: 1117 + components: + - type: Transform + pos: 19.5,1.5 + parent: 2 + - uid: 1118 + components: + - type: Transform + pos: 20.5,1.5 + parent: 2 + - uid: 1119 + components: + - type: Transform + pos: 20.5,2.5 + parent: 2 + - uid: 1120 + components: + - type: Transform + pos: 26.5,2.5 + parent: 2 + - uid: 1121 + components: + - type: Transform + pos: 26.5,1.5 + parent: 2 + - uid: 1122 + components: + - type: Transform + pos: 27.5,1.5 + parent: 2 + - uid: 1125 + components: + - type: Transform + pos: 26.5,3.5 + parent: 2 + - uid: 1127 + components: + - type: Transform + pos: 24.5,3.5 + parent: 2 + - uid: 1128 + components: + - type: Transform + pos: 22.5,3.5 + parent: 2 + - uid: 1130 + components: + - type: Transform + pos: 20.5,3.5 + parent: 2 + - uid: 1134 + components: + - type: Transform + pos: 13.5,2.5 + parent: 2 + - uid: 1135 + components: + - type: Transform + pos: 13.5,3.5 + parent: 2 + - uid: 1136 + components: + - type: Transform + pos: 13.5,4.5 + parent: 2 + - uid: 1137 + components: + - type: Transform + pos: 13.5,5.5 + parent: 2 + - uid: 1138 + components: + - type: Transform + pos: 13.5,6.5 + parent: 2 + - uid: 1139 + components: + - type: Transform + pos: 14.5,6.5 + parent: 2 + - uid: 1140 + components: + - type: Transform + pos: 14.5,7.5 + parent: 2 + - uid: 1141 + components: + - type: Transform + pos: 14.5,8.5 + parent: 2 + - uid: 1142 + components: + - type: Transform + pos: 14.5,9.5 + parent: 2 + - uid: 1143 + components: + - type: Transform + pos: -12.5,-33.5 + parent: 2 + - uid: 1146 + components: + - type: Transform + pos: 18.5,9.5 + parent: 2 + - uid: 1147 + components: + - type: Transform + pos: 19.5,9.5 + parent: 2 + - uid: 1151 + components: + - type: Transform + pos: 19.5,4.5 + parent: 2 + - uid: 1152 + components: + - type: Transform + pos: 20.5,4.5 + parent: 2 + - uid: 1190 + components: + - type: Transform + pos: 27.5,3.5 + parent: 2 + - uid: 1191 + components: + - type: Transform + pos: 27.5,4.5 + parent: 2 + - uid: 1192 + components: + - type: Transform + pos: 27.5,5.5 + parent: 2 + - uid: 1195 + components: + - type: Transform + pos: 29.5,5.5 + parent: 2 + - uid: 1196 + components: + - type: Transform + pos: 29.5,4.5 + parent: 2 + - uid: 1197 + components: + - type: Transform + pos: 30.5,4.5 + parent: 2 + - uid: 1198 + components: + - type: Transform + pos: 31.5,4.5 + parent: 2 + - uid: 1199 + components: + - type: Transform + pos: 32.5,4.5 + parent: 2 + - uid: 1200 + components: + - type: Transform + pos: 33.5,4.5 + parent: 2 + - uid: 1201 + components: + - type: Transform + pos: 33.5,5.5 + parent: 2 + - uid: 1204 + components: + - type: Transform + pos: 27.5,9.5 + parent: 2 + - uid: 1205 + components: + - type: Transform + pos: 27.5,10.5 + parent: 2 + - uid: 1206 + components: + - type: Transform + pos: 26.5,10.5 + parent: 2 + - uid: 1207 + components: + - type: Transform + pos: 25.5,10.5 + parent: 2 + - uid: 1208 + components: + - type: Transform + pos: 24.5,10.5 + parent: 2 + - uid: 1209 + components: + - type: Transform + pos: 23.5,10.5 + parent: 2 + - uid: 1210 + components: + - type: Transform + pos: 22.5,10.5 + parent: 2 + - uid: 1211 + components: + - type: Transform + pos: 21.5,10.5 + parent: 2 + - uid: 1212 + components: + - type: Transform + pos: 21.5,9.5 + parent: 2 + - uid: 1213 + components: + - type: Transform + pos: 20.5,9.5 + parent: 2 + - uid: 1214 + components: + - type: Transform + pos: 28.5,10.5 + parent: 2 + - uid: 1215 + components: + - type: Transform + pos: 29.5,10.5 + parent: 2 + - uid: 1216 + components: + - type: Transform + pos: 30.5,10.5 + parent: 2 + - uid: 1219 + components: + - type: Transform + pos: 33.5,10.5 + parent: 2 + - uid: 1220 + components: + - type: Transform + pos: 33.5,9.5 + parent: 2 + - uid: 1221 + components: + - type: Transform + pos: 33.5,8.5 + parent: 2 + - uid: 1222 + components: + - type: Transform + pos: 33.5,7.5 + parent: 2 + - uid: 1223 + components: + - type: Transform + pos: 28.5,5.5 + parent: 2 + - uid: 1229 + components: + - type: Transform + pos: 34.5,5.5 + parent: 2 + - uid: 1230 + components: + - type: Transform + pos: 35.5,5.5 + parent: 2 + - uid: 1231 + components: + - type: Transform + pos: 36.5,5.5 + parent: 2 + - uid: 1240 + components: + - type: Transform + pos: 37.5,5.5 + parent: 2 + - uid: 1241 + components: + - type: Transform + pos: 38.5,5.5 + parent: 2 + - uid: 1242 + components: + - type: Transform + pos: 38.5,6.5 + parent: 2 + - uid: 1243 + components: + - type: Transform + pos: 38.5,7.5 + parent: 2 + - uid: 1244 + components: + - type: Transform + pos: 38.5,8.5 + parent: 2 + - uid: 1250 + components: + - type: Transform + pos: 34.5,10.5 + parent: 2 + - uid: 1269 + components: + - type: Transform + pos: 29.5,1.5 + parent: 2 + - uid: 1270 + components: + - type: Transform + pos: 30.5,1.5 + parent: 2 + - uid: 1271 + components: + - type: Transform + pos: 31.5,1.5 + parent: 2 + - uid: 1272 + components: + - type: Transform + pos: 32.5,1.5 + parent: 2 + - uid: 1273 + components: + - type: Transform + pos: 33.5,1.5 + parent: 2 + - uid: 1274 + components: + - type: Transform + pos: 34.5,1.5 + parent: 2 + - uid: 1275 + components: + - type: Transform + pos: 35.5,1.5 + parent: 2 + - uid: 1276 + components: + - type: Transform + pos: 36.5,1.5 + parent: 2 + - uid: 1277 + components: + - type: Transform + pos: 37.5,1.5 + parent: 2 + - uid: 1278 + components: + - type: Transform + pos: 38.5,1.5 + parent: 2 + - uid: 1292 + components: + - type: Transform + pos: 33.5,-2.5 + parent: 2 + - uid: 1293 + components: + - type: Transform + pos: 34.5,-2.5 + parent: 2 + - uid: 1295 + components: + - type: Transform + pos: 36.5,-2.5 + parent: 2 + - uid: 1296 + components: + - type: Transform + pos: 37.5,-2.5 + parent: 2 + - uid: 1297 + components: + - type: Transform + pos: 38.5,-2.5 + parent: 2 + - uid: 1298 + components: + - type: Transform + pos: 39.5,-2.5 + parent: 2 + - uid: 1299 + components: + - type: Transform + pos: 40.5,-2.5 + parent: 2 + - uid: 1300 + components: + - type: Transform + pos: 41.5,-2.5 + parent: 2 + - uid: 1301 + components: + - type: Transform + pos: 39.5,1.5 + parent: 2 + - uid: 1302 + components: + - type: Transform + pos: 40.5,1.5 + parent: 2 + - uid: 1303 + components: + - type: Transform + pos: 41.5,1.5 + parent: 2 + - uid: 1304 + components: + - type: Transform + pos: 45.5,-6.5 + parent: 2 + - uid: 1305 + components: + - type: Transform + pos: 46.5,-15.5 + parent: 2 + - uid: 1306 + components: + - type: Transform + pos: 47.5,-15.5 + parent: 2 + - uid: 1313 + components: + - type: Transform + pos: 47.5,-12.5 + parent: 2 + - uid: 1317 + components: + - type: Transform + pos: 47.5,-10.5 + parent: 2 + - uid: 1320 + components: + - type: Transform + pos: 46.5,-7.5 + parent: 2 + - uid: 1321 + components: + - type: Transform + pos: 45.5,-7.5 + parent: 2 + - uid: 1322 + components: + - type: Transform + pos: 47.5,-7.5 + parent: 2 + - uid: 1323 + components: + - type: Transform + pos: 41.5,-3.5 + parent: 2 + - uid: 1324 + components: + - type: Transform + pos: 41.5,-4.5 + parent: 2 + - uid: 1325 + components: + - type: Transform + pos: 41.5,-5.5 + parent: 2 + - uid: 1326 + components: + - type: Transform + pos: 41.5,-6.5 + parent: 2 + - uid: 1327 + components: + - type: Transform + pos: 41.5,-7.5 + parent: 2 + - uid: 1328 + components: + - type: Transform + pos: 41.5,-8.5 + parent: 2 + - uid: 1329 + components: + - type: Transform + pos: 41.5,-9.5 + parent: 2 + - uid: 1330 + components: + - type: Transform + pos: 41.5,-10.5 + parent: 2 + - uid: 1331 + components: + - type: Transform + pos: 41.5,-11.5 + parent: 2 + - uid: 1333 + components: + - type: Transform + pos: 41.5,-13.5 + parent: 2 + - uid: 1334 + components: + - type: Transform + pos: 41.5,-14.5 + parent: 2 + - uid: 1335 + components: + - type: Transform + pos: 41.5,-15.5 + parent: 2 + - uid: 1336 + components: + - type: Transform + pos: 41.5,-16.5 + parent: 2 + - uid: 1337 + components: + - type: Transform + pos: 41.5,-17.5 + parent: 2 + - uid: 1338 + components: + - type: Transform + pos: 41.5,-18.5 + parent: 2 + - uid: 1339 + components: + - type: Transform + pos: 41.5,-19.5 + parent: 2 + - uid: 1340 + components: + - type: Transform + pos: 41.5,-20.5 + parent: 2 + - uid: 1341 + components: + - type: Transform + pos: 39.5,-20.5 + parent: 2 + - uid: 1342 + components: + - type: Transform + pos: 38.5,-20.5 + parent: 2 + - uid: 1343 + components: + - type: Transform + pos: 16.5,-27.5 + parent: 2 + - uid: 1344 + components: + - type: Transform + pos: 36.5,-20.5 + parent: 2 + - uid: 1345 + components: + - type: Transform + pos: 35.5,-20.5 + parent: 2 + - uid: 1346 + components: + - type: Transform + pos: 34.5,-20.5 + parent: 2 + - uid: 1347 + components: + - type: Transform + pos: 33.5,-20.5 + parent: 2 + - uid: 1348 + components: + - type: Transform + pos: 32.5,-20.5 + parent: 2 + - uid: 1349 + components: + - type: Transform + pos: 31.5,-20.5 + parent: 2 + - uid: 1350 + components: + - type: Transform + pos: 30.5,-20.5 + parent: 2 + - uid: 1351 + components: + - type: Transform + pos: 30.5,-36.5 + parent: 2 + - uid: 1352 + components: + - type: Transform + pos: 45.5,-15.5 + parent: 2 + - uid: 1353 + components: + - type: Transform + pos: 45.5,-24.5 + parent: 2 + - uid: 1357 + components: + - type: Transform + pos: 45.5,-20.5 + parent: 2 + - uid: 1358 + components: + - type: Transform + pos: 45.5,-19.5 + parent: 2 + - uid: 1359 + components: + - type: Transform + pos: 45.5,-18.5 + parent: 2 + - uid: 1360 + components: + - type: Transform + pos: 45.5,-17.5 + parent: 2 + - uid: 1361 + components: + - type: Transform + pos: 45.5,-16.5 + parent: 2 + - uid: 1362 + components: + - type: Transform + pos: 45.5,-5.5 + parent: 2 + - uid: 1363 + components: + - type: Transform + pos: 45.5,-4.5 + parent: 2 + - uid: 1364 + components: + - type: Transform + pos: 45.5,-3.5 + parent: 2 + - uid: 1365 + components: + - type: Transform + pos: 45.5,-2.5 + parent: 2 + - uid: 1366 + components: + - type: Transform + pos: 51.5,-15.5 + parent: 2 + - uid: 1367 + components: + - type: Transform + pos: 48.5,-15.5 + parent: 2 + - uid: 1368 + components: + - type: Transform + pos: 49.5,-15.5 + parent: 2 + - uid: 1369 + components: + - type: Transform + pos: 54.5,-15.5 + parent: 2 + - uid: 1370 + components: + - type: Transform + pos: 54.5,-14.5 + parent: 2 + - uid: 1371 + components: + - type: Transform + pos: 54.5,-16.5 + parent: 2 + - uid: 1372 + components: + - type: Transform + pos: 54.5,-17.5 + parent: 2 + - uid: 1373 + components: + - type: Transform + pos: 54.5,-18.5 + parent: 2 + - uid: 1374 + components: + - type: Transform + pos: 54.5,-19.5 + parent: 2 + - uid: 1375 + components: + - type: Transform + pos: 55.5,-14.5 + parent: 2 + - uid: 1376 + components: + - type: Transform + pos: 51.5,-7.5 + parent: 2 + - uid: 1377 + components: + - type: Transform + pos: 49.5,-7.5 + parent: 2 + - uid: 1378 + components: + - type: Transform + pos: 48.5,-7.5 + parent: 2 + - uid: 1379 + components: + - type: Transform + pos: 54.5,-7.5 + parent: 2 + - uid: 1380 + components: + - type: Transform + pos: 54.5,-8.5 + parent: 2 + - uid: 1381 + components: + - type: Transform + pos: 54.5,-6.5 + parent: 2 + - uid: 1410 + components: + - type: Transform + pos: 54.5,-9.5 + parent: 2 + - uid: 1440 + components: + - type: Transform + pos: 53.5,-19.5 + parent: 2 + - uid: 1441 + components: + - type: Transform + pos: 53.5,-20.5 + parent: 2 + - uid: 1442 + components: + - type: Transform + pos: 53.5,-21.5 + parent: 2 + - uid: 1443 + components: + - type: Transform + pos: 52.5,-21.5 + parent: 2 + - uid: 1444 + components: + - type: Transform + pos: 51.5,-21.5 + parent: 2 + - uid: 1445 + components: + - type: Transform + pos: 50.5,-21.5 + parent: 2 + - uid: 1446 + components: + - type: Transform + pos: 49.5,-21.5 + parent: 2 + - uid: 1447 + components: + - type: Transform + pos: 48.5,-21.5 + parent: 2 + - uid: 1448 + components: + - type: Transform + pos: 48.5,-20.5 + parent: 2 + - uid: 1449 + components: + - type: Transform + pos: 47.5,-20.5 + parent: 2 + - uid: 1450 + components: + - type: Transform + pos: 46.5,-20.5 + parent: 2 + - uid: 1479 + components: + - type: Transform + pos: 56.5,-14.5 + parent: 2 + - uid: 1480 + components: + - type: Transform + pos: 57.5,-14.5 + parent: 2 + - uid: 1481 + components: + - type: Transform + pos: 57.5,-13.5 + parent: 2 + - uid: 1482 + components: + - type: Transform + pos: 59.5,-13.5 + parent: 2 + - uid: 1483 + components: + - type: Transform + pos: 60.5,-13.5 + parent: 2 + - uid: 1484 + components: + - type: Transform + pos: 61.5,-13.5 + parent: 2 + - uid: 1487 + components: + - type: Transform + pos: 61.5,-16.5 + parent: 2 + - uid: 1488 + components: + - type: Transform + pos: 61.5,-17.5 + parent: 2 + - uid: 1489 + components: + - type: Transform + pos: 61.5,-18.5 + parent: 2 + - uid: 1490 + components: + - type: Transform + pos: 60.5,-18.5 + parent: 2 + - uid: 1491 + components: + - type: Transform + pos: 59.5,-18.5 + parent: 2 + - uid: 1492 + components: + - type: Transform + pos: 58.5,-18.5 + parent: 2 + - uid: 1493 + components: + - type: Transform + pos: 57.5,-18.5 + parent: 2 + - uid: 1494 + components: + - type: Transform + pos: 56.5,-18.5 + parent: 2 + - uid: 1495 + components: + - type: Transform + pos: 56.5,-17.5 + parent: 2 + - uid: 1496 + components: + - type: Transform + pos: 55.5,-17.5 + parent: 2 + - uid: 1506 + components: + - type: Transform + pos: 59.5,-9.5 + parent: 2 + - uid: 1507 + components: + - type: Transform + pos: 60.5,-9.5 + parent: 2 + - uid: 1509 + components: + - type: Transform + pos: 58.5,-8.5 + parent: 2 + - uid: 1510 + components: + - type: Transform + pos: 57.5,-8.5 + parent: 2 + - uid: 1511 + components: + - type: Transform + pos: 56.5,-8.5 + parent: 2 + - uid: 1512 + components: + - type: Transform + pos: 55.5,-8.5 + parent: 2 + - uid: 1521 + components: + - type: Transform + pos: 54.5,-5.5 + parent: 2 + - uid: 1522 + components: + - type: Transform + pos: 54.5,-4.5 + parent: 2 + - uid: 1523 + components: + - type: Transform + pos: 54.5,-3.5 + parent: 2 + - uid: 1524 + components: + - type: Transform + pos: 53.5,-3.5 + parent: 2 + - uid: 1525 + components: + - type: Transform + pos: 53.5,-2.5 + parent: 2 + - uid: 1526 + components: + - type: Transform + pos: 53.5,-1.5 + parent: 2 + - uid: 1527 + components: + - type: Transform + pos: 52.5,-1.5 + parent: 2 + - uid: 1528 + components: + - type: Transform + pos: 51.5,-1.5 + parent: 2 + - uid: 1529 + components: + - type: Transform + pos: 50.5,-1.5 + parent: 2 + - uid: 1530 + components: + - type: Transform + pos: 49.5,-1.5 + parent: 2 + - uid: 1531 + components: + - type: Transform + pos: 48.5,-1.5 + parent: 2 + - uid: 1532 + components: + - type: Transform + pos: 48.5,-2.5 + parent: 2 + - uid: 1533 + components: + - type: Transform + pos: 47.5,-2.5 + parent: 2 + - uid: 1534 + components: + - type: Transform + pos: 46.5,-2.5 + parent: 2 + - uid: 1542 + components: + - type: Transform + pos: 58.5,-9.5 + parent: 2 + - uid: 1544 + components: + - type: Transform + pos: 45.5,-22.5 + parent: 2 + - uid: 1545 + components: + - type: Transform + pos: 41.5,-24.5 + parent: 2 + - uid: 1546 + components: + - type: Transform + pos: 40.5,-24.5 + parent: 2 + - uid: 1547 + components: + - type: Transform + pos: 39.5,-24.5 + parent: 2 + - uid: 1548 + components: + - type: Transform + pos: 38.5,-24.5 + parent: 2 + - uid: 1550 + components: + - type: Transform + pos: 36.5,-24.5 + parent: 2 + - uid: 1551 + components: + - type: Transform + pos: 35.5,-24.5 + parent: 2 + - uid: 1552 + components: + - type: Transform + pos: 34.5,-24.5 + parent: 2 + - uid: 1553 + components: + - type: Transform + pos: 34.5,-25.5 + parent: 2 + - uid: 1554 + components: + - type: Transform + pos: 34.5,-26.5 + parent: 2 + - uid: 1555 + components: + - type: Transform + pos: 34.5,-27.5 + parent: 2 + - uid: 1556 + components: + - type: Transform + pos: 34.5,-28.5 + parent: 2 + - uid: 1557 + components: + - type: Transform + pos: 34.5,-29.5 + parent: 2 + - uid: 1558 + components: + - type: Transform + pos: 34.5,-30.5 + parent: 2 + - uid: 1559 + components: + - type: Transform + pos: 34.5,-31.5 + parent: 2 + - uid: 1560 + components: + - type: Transform + pos: 34.5,-32.5 + parent: 2 + - uid: 1561 + components: + - type: Transform + pos: 34.5,-33.5 + parent: 2 + - uid: 1562 + components: + - type: Transform + pos: 34.5,-34.5 + parent: 2 + - uid: 1566 + components: + - type: Transform + pos: 34.5,-38.5 + parent: 2 + - uid: 1567 + components: + - type: Transform + pos: 34.5,-39.5 + parent: 2 + - uid: 1568 + components: + - type: Transform + pos: 34.5,-40.5 + parent: 2 + - uid: 1569 + components: + - type: Transform + pos: 34.5,-41.5 + parent: 2 + - uid: 1570 + components: + - type: Transform + pos: 33.5,-41.5 + parent: 2 + - uid: 1571 + components: + - type: Transform + pos: 32.5,-41.5 + parent: 2 + - uid: 1572 + components: + - type: Transform + pos: 31.5,-41.5 + parent: 2 + - uid: 1573 + components: + - type: Transform + pos: 30.5,-41.5 + parent: 2 + - uid: 1575 + components: + - type: Transform + pos: 28.5,-41.5 + parent: 2 + - uid: 1576 + components: + - type: Transform + pos: 27.5,-41.5 + parent: 2 + - uid: 1577 + components: + - type: Transform + pos: 26.5,-41.5 + parent: 2 + - uid: 1578 + components: + - type: Transform + pos: 25.5,-41.5 + parent: 2 + - uid: 1579 + components: + - type: Transform + pos: 24.5,-41.5 + parent: 2 + - uid: 1580 + components: + - type: Transform + pos: 23.5,-41.5 + parent: 2 + - uid: 1581 + components: + - type: Transform + pos: 22.5,-41.5 + parent: 2 + - uid: 1582 + components: + - type: Transform + pos: 22.5,-37.5 + parent: 2 + - uid: 1583 + components: + - type: Transform + pos: 23.5,-37.5 + parent: 2 + - uid: 1584 + components: + - type: Transform + pos: 24.5,-37.5 + parent: 2 + - uid: 1585 + components: + - type: Transform + pos: 25.5,-37.5 + parent: 2 + - uid: 1586 + components: + - type: Transform + pos: 26.5,-37.5 + parent: 2 + - uid: 1587 + components: + - type: Transform + pos: 27.5,-37.5 + parent: 2 + - uid: 1588 + components: + - type: Transform + pos: 28.5,-37.5 + parent: 2 + - uid: 1589 + components: + - type: Transform + pos: 29.5,-37.5 + parent: 2 + - uid: 1590 + components: + - type: Transform + pos: 30.5,-37.5 + parent: 2 + - uid: 1591 + components: + - type: Transform + pos: 30.5,-35.5 + parent: 2 + - uid: 1592 + components: + - type: Transform + pos: 30.5,-34.5 + parent: 2 + - uid: 1593 + components: + - type: Transform + pos: 30.5,-33.5 + parent: 2 + - uid: 1594 + components: + - type: Transform + pos: 30.5,-32.5 + parent: 2 + - uid: 1595 + components: + - type: Transform + pos: 30.5,-31.5 + parent: 2 + - uid: 1596 + components: + - type: Transform + pos: 30.5,-30.5 + parent: 2 + - uid: 1597 + components: + - type: Transform + pos: 30.5,-29.5 + parent: 2 + - uid: 1598 + components: + - type: Transform + pos: 30.5,-28.5 + parent: 2 + - uid: 1599 + components: + - type: Transform + pos: 30.5,-27.5 + parent: 2 + - uid: 1600 + components: + - type: Transform + pos: 30.5,-26.5 + parent: 2 + - uid: 1601 + components: + - type: Transform + pos: 30.5,-25.5 + parent: 2 + - uid: 1602 + components: + - type: Transform + pos: 30.5,-24.5 + parent: 2 + - uid: 1603 + components: + - type: Transform + pos: 30.5,-23.5 + parent: 2 + - uid: 1604 + components: + - type: Transform + pos: 30.5,-22.5 + parent: 2 + - uid: 1605 + components: + - type: Transform + pos: 30.5,-21.5 + parent: 2 + - uid: 1607 + components: + - type: Transform + pos: 45.5,1.5 + parent: 2 + - uid: 1608 + components: + - type: Transform + pos: 44.5,1.5 + parent: 2 + - uid: 1609 + components: + - type: Transform + pos: 43.5,1.5 + parent: 2 + - uid: 1610 + components: + - type: Transform + pos: 42.5,1.5 + parent: 2 + - uid: 1619 + components: + - type: Transform + pos: 18.5,-34.5 + parent: 2 + - uid: 1620 + components: + - type: Transform + pos: 19.5,-33.5 + parent: 2 + - uid: 1621 + components: + - type: Transform + pos: 20.5,-33.5 + parent: 2 + - uid: 1622 + components: + - type: Transform + pos: 21.5,-33.5 + parent: 2 + - uid: 1623 + components: + - type: Transform + pos: 21.5,-32.5 + parent: 2 + - uid: 1624 + components: + - type: Transform + pos: 21.5,-31.5 + parent: 2 + - uid: 1625 + components: + - type: Transform + pos: 21.5,-30.5 + parent: 2 + - uid: 1626 + components: + - type: Transform + pos: 21.5,-29.5 + parent: 2 + - uid: 1627 + components: + - type: Transform + pos: 21.5,-28.5 + parent: 2 + - uid: 1628 + components: + - type: Transform + pos: 20.5,-28.5 + parent: 2 + - uid: 1629 + components: + - type: Transform + pos: 19.5,-28.5 + parent: 2 + - uid: 1644 + components: + - type: Transform + pos: 29.5,-41.5 + parent: 2 + - uid: 1677 + components: + - type: Transform + pos: 2.5,-3.5 + parent: 2 + - uid: 1678 + components: + - type: Transform + pos: 2.5,-2.5 + parent: 2 + - uid: 1679 + components: + - type: Transform + pos: 3.5,-2.5 + parent: 2 + - uid: 1680 + components: + - type: Transform + pos: 3.5,1.5 + parent: 2 + - uid: 1681 + components: + - type: Transform + pos: 2.5,1.5 + parent: 2 + - uid: 1682 + components: + - type: Transform + pos: 2.5,2.5 + parent: 2 + - uid: 1683 + components: + - type: Transform + pos: -3.5,2.5 + parent: 2 + - uid: 1684 + components: + - type: Transform + pos: -3.5,1.5 + parent: 2 + - uid: 1685 + components: + - type: Transform + pos: -4.5,1.5 + parent: 2 + - uid: 1686 + components: + - type: Transform + pos: -4.5,-2.5 + parent: 2 + - uid: 1687 + components: + - type: Transform + pos: -3.5,-2.5 + parent: 2 + - uid: 1688 + components: + - type: Transform + pos: -3.5,-3.5 + parent: 2 + - uid: 1689 + components: + - type: Transform + pos: -3.5,-10.5 + parent: 2 + - uid: 1690 + components: + - type: Transform + pos: -3.5,-9.5 + parent: 2 + - uid: 1691 + components: + - type: Transform + pos: -2.5,-9.5 + parent: 2 + - uid: 1692 + components: + - type: Transform + pos: -2.5,-8.5 + parent: 2 + - uid: 1693 + components: + - type: Transform + pos: -2.5,-7.5 + parent: 2 + - uid: 1703 + components: + - type: Transform + pos: -8.5,-2.5 + parent: 2 + - uid: 1704 + components: + - type: Transform + pos: -44.5,-24.5 + parent: 2 + - uid: 1705 + components: + - type: Transform + pos: 7.5,1.5 + parent: 2 + - uid: 1707 + components: + - type: Transform + pos: 2.5,6.5 + parent: 2 + - uid: 1709 + components: + - type: Transform + pos: 5.5,6.5 + parent: 2 + - uid: 1712 + components: + - type: Transform + pos: -6.5,6.5 + parent: 2 + - uid: 1713 + components: + - type: Transform + pos: -3.5,6.5 + parent: 2 + - uid: 1715 + components: + - type: Transform + pos: -7.5,5.5 + parent: 2 + - uid: 1716 + components: + - type: Transform + pos: -7.5,6.5 + parent: 2 + - uid: 1729 + components: + - type: Transform + pos: 7.5,5.5 + parent: 2 + - uid: 1730 + components: + - type: Transform + pos: -10.5,-4.5 + parent: 2 + - uid: 1733 + components: + - type: Transform + pos: 6.5,6.5 + parent: 2 + - uid: 1735 + components: + - type: Transform + pos: 6.5,5.5 + parent: 2 + - uid: 1739 + components: + - type: Transform + pos: -8.5,5.5 + parent: 2 + - uid: 1740 + components: + - type: Transform + pos: -10.5,-8.5 + parent: 2 + - uid: 1743 + components: + - type: Transform + pos: -8.5,-4.5 + parent: 2 + - uid: 1744 + components: + - type: Transform + pos: 7.5,-4.5 + parent: 2 + - uid: 1746 + components: + - type: Transform + pos: -10.5,-3.5 + parent: 2 + - uid: 1747 + components: + - type: Transform + pos: 8.5,1.5 + parent: 2 + - uid: 1748 + components: + - type: Transform + pos: 9.5,1.5 + parent: 2 + - uid: 1749 + components: + - type: Transform + pos: 9.5,2.5 + parent: 2 + - uid: 1750 + components: + - type: Transform + pos: 10.5,2.5 + parent: 2 + - uid: 1751 + components: + - type: Transform + pos: 11.5,2.5 + parent: 2 + - uid: 1754 + components: + - type: Transform + pos: 1.5,6.5 + parent: 2 + - uid: 1755 + components: + - type: Transform + pos: 1.5,7.5 + parent: 2 + - uid: 1756 + components: + - type: Transform + pos: 1.5,8.5 + parent: 2 + - uid: 1757 + components: + - type: Transform + pos: -2.5,6.5 + parent: 2 + - uid: 1758 components: - type: Transform - pos: 6.5,-10.5 - parent: 818 - - uid: 3 + pos: -2.5,7.5 + parent: 2 + - uid: 1759 components: - type: Transform - pos: -7.5,-17.5 - parent: 818 - - uid: 4 + pos: -2.5,8.5 + parent: 2 + - uid: 1762 components: - type: Transform - pos: -7.5,-10.5 - parent: 818 - - uid: 5 + pos: -10.5,-7.5 + parent: 2 + - uid: 1763 components: - type: Transform - pos: 6.5,-17.5 - parent: 818 - - uid: 11 + pos: -8.5,1.5 + parent: 2 + - uid: 1764 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 12.5,-10.5 - parent: 818 - - uid: 12 + pos: -9.5,1.5 + parent: 2 + - uid: 1765 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 12.5,-17.5 - parent: 818 - - uid: 13 + pos: -10.5,1.5 + parent: 2 + - uid: 1766 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -13.5,-17.5 - parent: 818 - - uid: 14 + pos: -10.5,-2.5 + parent: 2 + - uid: 1767 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -13.5,-10.5 - parent: 818 -- proto: AirlockExternalLocked - entities: - - uid: 589 + pos: -9.5,-2.5 + parent: 2 + - uid: 1768 + components: + - type: Transform + pos: 9.5,-8.5 + parent: 2 + - uid: 1770 + components: + - type: Transform + pos: 9.5,-6.5 + parent: 2 + - uid: 1771 + components: + - type: Transform + pos: 9.5,-5.5 + parent: 2 + - uid: 1772 + components: + - type: Transform + pos: 9.5,-4.5 + parent: 2 + - uid: 1773 + components: + - type: Transform + pos: -10.5,-6.5 + parent: 2 + - uid: 1774 + components: + - type: Transform + pos: 9.5,5.5 + parent: 2 + - uid: 1775 + components: + - type: Transform + pos: -10.5,-5.5 + parent: 2 + - uid: 1776 + components: + - type: Transform + pos: 6.5,8.5 + parent: 2 + - uid: 1777 + components: + - type: Transform + pos: 5.5,8.5 + parent: 2 + - uid: 1778 components: - - type: MetaData - flags: PvsPriority - type: Transform pos: 4.5,8.5 - parent: 818 -- proto: AirlockGlass - entities: - - uid: 252 + parent: 2 + - uid: 1779 components: - type: Transform - pos: -9.5,-4.5 - parent: 818 - - uid: 253 + pos: -4.5,9.5 + parent: 2 + - uid: 1780 components: - type: Transform - pos: -10.5,-4.5 - parent: 818 - - uid: 254 + pos: 2.5,8.5 + parent: 2 + - uid: 1781 components: - type: Transform - pos: -11.5,-4.5 - parent: 818 - - uid: 255 + pos: 9.5,3.5 + parent: 2 + - uid: 1782 components: - type: Transform - pos: 8.5,-4.5 - parent: 818 - - uid: 256 + pos: 9.5,4.5 + parent: 2 + - uid: 1783 components: - type: Transform - pos: 9.5,-4.5 - parent: 818 - - uid: 257 + pos: -10.5,2.5 + parent: 2 + - uid: 1784 components: - type: Transform - pos: 10.5,-4.5 - parent: 818 -- proto: AirlockGlassShuttleEasyPryLocked - entities: - - uid: 1 + pos: -10.5,3.5 + parent: 2 + - uid: 1785 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -15.5,-10.5 - parent: 818 - - uid: 6 + pos: -10.5,4.5 + parent: 2 + - uid: 1786 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -15.5,-17.5 - parent: 818 - - uid: 7 + pos: -10.5,5.5 + parent: 2 + - uid: 1787 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 14.5,-10.5 - parent: 818 - - uid: 8 + pos: -10.5,6.5 + parent: 2 + - uid: 1788 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 14.5,-17.5 - parent: 818 - - uid: 9 + pos: -10.5,7.5 + parent: 2 + - uid: 1789 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 4.5,-10.5 - parent: 818 - - uid: 15 + pos: -10.5,8.5 + parent: 2 + - uid: 1790 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 4.5,-17.5 - parent: 818 - - uid: 16 + pos: -9.5,8.5 + parent: 2 + - uid: 1792 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -5.5,-10.5 - parent: 818 - - uid: 17 + pos: -7.5,8.5 + parent: 2 + - uid: 1793 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -5.5,-17.5 - parent: 818 -- proto: AirlockMaint - entities: - - uid: 146 + pos: -6.5,8.5 + parent: 2 + - uid: 1794 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 3.5,3.5 - parent: 818 -- proto: APCBasic - entities: - - uid: 205 + pos: -5.5,8.5 + parent: 2 + - uid: 1795 components: - type: Transform - pos: 6.5,2.5 - parent: 818 - - uid: 206 + pos: 3.5,9.5 + parent: 2 + - uid: 1796 components: - type: Transform - pos: -13.5,2.5 - parent: 818 - - uid: 211 + pos: -3.5,8.5 + parent: 2 + - uid: 1798 components: - type: Transform - pos: -13.5,-11.5 - parent: 818 - - uid: 212 + pos: 9.5,7.5 + parent: 2 + - uid: 1799 components: - type: Transform - pos: 6.5,-11.5 - parent: 818 - - uid: 355 + pos: 9.5,8.5 + parent: 2 + - uid: 1800 components: - type: Transform - rot: 3.141592653589793 rad - pos: 1.5,6.5 - parent: 818 - - uid: 846 + pos: 8.5,8.5 + parent: 2 + - uid: 1801 components: - type: Transform - pos: 2.5,3.5 - parent: 818 -- proto: ArrivalsShuttleTimer - entities: - - uid: 597 + pos: 7.5,8.5 + parent: 2 + - uid: 1838 components: - type: Transform - pos: -7.5,-5.5 - parent: 818 - - uid: 633 + pos: -12.5,-8.5 + parent: 2 + - uid: 1839 components: - type: Transform - pos: 6.5,-5.5 - parent: 818 - - uid: 928 + pos: -12.5,-7.5 + parent: 2 + - uid: 1840 components: - type: Transform - pos: -6.5,-14.5 - parent: 818 - - uid: 929 + pos: -12.5,-6.5 + parent: 2 + - uid: 1841 components: - type: Transform - pos: 5.5,-14.5 - parent: 818 -- proto: AtmosDeviceFanTiny - entities: - - uid: 296 + pos: -12.5,-5.5 + parent: 2 + - uid: 1842 components: - type: Transform - pos: -6.5,-10.5 - parent: 818 - - uid: 297 + pos: -12.5,-4.5 + parent: 2 + - uid: 1843 components: - type: Transform - pos: -14.5,-10.5 - parent: 818 - - uid: 298 + pos: -12.5,-3.5 + parent: 2 + - uid: 1844 components: - type: Transform - pos: -14.5,-17.5 - parent: 818 - - uid: 299 + pos: -12.5,-2.5 + parent: 2 + - uid: 1845 components: - type: Transform - pos: -6.5,-17.5 - parent: 818 - - uid: 300 + pos: -13.5,-2.5 + parent: 2 + - uid: 1846 components: - type: Transform - pos: 5.5,-17.5 - parent: 818 - - uid: 301 + pos: -14.5,-2.5 + parent: 2 + - uid: 1847 components: - type: Transform - pos: 5.5,-10.5 - parent: 818 - - uid: 302 + pos: -15.5,-2.5 + parent: 2 + - uid: 1848 components: - type: Transform - pos: 13.5,-10.5 - parent: 818 - - uid: 303 + pos: -16.5,-2.5 + parent: 2 + - uid: 1849 components: - type: Transform - pos: 13.5,-17.5 - parent: 818 - - uid: 809 + pos: -17.5,-2.5 + parent: 2 + - uid: 1850 components: - type: Transform - pos: 4.5,8.5 - parent: 818 -- proto: BarSignEngineChange - entities: - - uid: 215 + pos: -18.5,-2.5 + parent: 2 + - uid: 1851 components: - type: Transform - pos: -10.5,5.5 - parent: 818 -- proto: BlockGameArcade - entities: - - uid: 727 + pos: -18.5,-3.5 + parent: 2 + - uid: 1852 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -13.5,-1.5 - parent: 818 - - uid: 728 + pos: -18.5,-4.5 + parent: 2 + - uid: 1853 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -13.5,0.5 - parent: 818 -- proto: BookshelfFilled - entities: - - uid: 442 + pos: -19.5,-4.5 + parent: 2 + - uid: 1857 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 7.5,3.5 - parent: 818 - - uid: 752 + pos: -20.5,-4.5 + parent: 2 + - uid: 1858 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 11.5,3.5 - parent: 818 -- proto: BoozeDispenser - entities: - - uid: 710 + pos: -21.5,-4.5 + parent: 2 + - uid: 1859 components: - type: Transform - pos: -11.5,4.5 - parent: 818 -- proto: CableApcExtension - entities: - - uid: 203 + pos: -22.5,-4.5 + parent: 2 + - uid: 1860 components: - type: Transform - pos: 1.5,6.5 - parent: 818 - - uid: 208 + pos: -26.5,-4.5 + parent: 2 + - uid: 1861 components: - type: Transform - pos: -3.5,7.5 - parent: 818 - - uid: 218 + pos: -27.5,-4.5 + parent: 2 + - uid: 1862 components: - type: Transform - pos: -4.5,4.5 - parent: 818 - - uid: 402 + pos: -28.5,-4.5 + parent: 2 + - uid: 1863 components: - type: Transform - pos: -4.5,7.5 - parent: 818 - - uid: 404 + pos: -29.5,-4.5 + parent: 2 + - uid: 1864 components: - type: Transform - pos: 2.5,1.5 - parent: 818 - - uid: 410 + pos: -30.5,-4.5 + parent: 2 + - uid: 1865 components: - type: Transform - pos: 2.5,2.5 - parent: 818 - - uid: 411 + pos: -29.5,-5.5 + parent: 2 + - uid: 1866 components: - type: Transform - pos: 3.5,5.5 - parent: 818 - - uid: 412 + pos: -29.5,-9.5 + parent: 2 + - uid: 1867 components: - type: Transform - pos: 3.5,4.5 - parent: 818 - - uid: 426 + pos: -29.5,-10.5 + parent: 2 + - uid: 1868 components: - type: Transform - pos: -2.5,7.5 - parent: 818 - - uid: 427 + pos: -28.5,-10.5 + parent: 2 + - uid: 1869 components: - type: Transform - pos: -1.5,7.5 - parent: 818 - - uid: 428 + pos: -23.5,-10.5 + parent: 2 + - uid: 1870 components: - type: Transform - pos: -0.5,7.5 - parent: 818 - - uid: 429 + pos: -22.5,-10.5 + parent: 2 + - uid: 1871 components: - type: Transform - pos: 0.5,7.5 - parent: 818 - - uid: 430 + pos: -21.5,-10.5 + parent: 2 + - uid: 1872 components: - type: Transform - pos: 1.5,-0.5 - parent: 818 - - uid: 431 + pos: -21.5,-9.5 + parent: 2 + - uid: 1873 components: - type: Transform - pos: 1.5,-1.5 - parent: 818 - - uid: 434 + pos: -20.5,-9.5 + parent: 2 + - uid: 1874 components: - type: Transform - pos: 0.5,-0.5 - parent: 818 - - uid: 435 + pos: -19.5,-9.5 + parent: 2 + - uid: 1875 components: - type: Transform - pos: -0.5,-0.5 - parent: 818 - - uid: 436 + pos: -18.5,-9.5 + parent: 2 + - uid: 1876 components: - type: Transform - pos: -1.5,-0.5 - parent: 818 - - uid: 437 + pos: -19.5,-5.5 + parent: 2 + - uid: 1935 components: - type: Transform - pos: -2.5,-0.5 - parent: 818 - - uid: 438 + pos: -30.5,-3.5 + parent: 2 + - uid: 1936 components: - type: Transform - pos: -3.5,-0.5 - parent: 818 - - uid: 439 + pos: -30.5,-2.5 + parent: 2 + - uid: 1937 components: - type: Transform - pos: -4.5,-0.5 - parent: 818 - - uid: 440 + pos: -31.5,-2.5 + parent: 2 + - uid: 1938 components: - type: Transform - pos: -2.5,-1.5 - parent: 818 - - uid: 443 + pos: -32.5,-2.5 + parent: 2 + - uid: 1939 components: - type: Transform - pos: 2.5,-0.5 - parent: 818 - - uid: 444 + pos: -33.5,-2.5 + parent: 2 + - uid: 1940 components: - type: Transform - pos: 3.5,-0.5 - parent: 818 - - uid: 445 + pos: -34.5,-2.5 + parent: 2 + - uid: 1941 components: - type: Transform - pos: 4.5,-0.5 - parent: 818 - - uid: 446 + pos: -35.5,-2.5 + parent: 2 + - uid: 1942 components: - type: Transform - pos: -5.5,-0.5 - parent: 818 - - uid: 447 + pos: -36.5,-2.5 + parent: 2 + - uid: 1943 components: - type: Transform - pos: -13.5,2.5 - parent: 818 - - uid: 448 + pos: -36.5,-3.5 + parent: 2 + - uid: 1944 components: - type: Transform - pos: -13.5,1.5 - parent: 818 - - uid: 449 + pos: -36.5,-4.5 + parent: 2 + - uid: 1945 components: - type: Transform - pos: -13.5,0.5 - parent: 818 - - uid: 450 + pos: -36.5,-5.5 + parent: 2 + - uid: 1946 components: - type: Transform - pos: -13.5,-0.5 - parent: 818 - - uid: 451 + pos: -36.5,-6.5 + parent: 2 + - uid: 1947 components: - type: Transform - pos: -12.5,-0.5 - parent: 818 - - uid: 452 + pos: -36.5,-7.5 + parent: 2 + - uid: 1948 components: - type: Transform - pos: -11.5,-0.5 - parent: 818 - - uid: 453 + pos: -36.5,-8.5 + parent: 2 + - uid: 1949 components: - type: Transform - pos: -10.5,-0.5 - parent: 818 - - uid: 454 + pos: -36.5,-9.5 + parent: 2 + - uid: 1950 components: - type: Transform - pos: -9.5,-0.5 - parent: 818 - - uid: 455 + pos: -35.5,-9.5 + parent: 2 + - uid: 1951 + components: + - type: Transform + pos: -34.5,-9.5 + parent: 2 + - uid: 1952 + components: + - type: Transform + pos: -33.5,-9.5 + parent: 2 + - uid: 1953 + components: + - type: Transform + pos: -32.5,-9.5 + parent: 2 + - uid: 1954 + components: + - type: Transform + pos: -31.5,-9.5 + parent: 2 + - uid: 1955 + components: + - type: Transform + pos: -30.5,-9.5 + parent: 2 + - uid: 1992 + components: + - type: Transform + pos: -21.5,-11.5 + parent: 2 + - uid: 1993 + components: + - type: Transform + pos: -21.5,-12.5 + parent: 2 + - uid: 1994 components: - type: Transform - pos: -8.5,-0.5 - parent: 818 - - uid: 456 + pos: -21.5,-13.5 + parent: 2 + - uid: 1995 components: - type: Transform - pos: -7.5,-0.5 - parent: 818 - - uid: 457 + pos: -21.5,-14.5 + parent: 2 + - uid: 1996 components: - type: Transform - pos: -10.5,-1.5 - parent: 818 - - uid: 458 + pos: -22.5,-14.5 + parent: 2 + - uid: 1997 components: - type: Transform - pos: -10.5,-2.5 - parent: 818 - - uid: 459 + pos: -22.5,-15.5 + parent: 2 + - uid: 1998 components: - type: Transform - pos: -10.5,-3.5 - parent: 818 - - uid: 460 + pos: -23.5,-15.5 + parent: 2 + - uid: 1999 components: - type: Transform - pos: -10.5,0.5 - parent: 818 - - uid: 461 + pos: -25.5,-15.5 + parent: 2 + - uid: 2000 components: - type: Transform - pos: -10.5,1.5 - parent: 818 - - uid: 462 + pos: -26.5,-15.5 + parent: 2 + - uid: 2001 components: - type: Transform - pos: -10.5,2.5 - parent: 818 - - uid: 463 + pos: -27.5,-15.5 + parent: 2 + - uid: 2002 components: - type: Transform - pos: -10.5,3.5 - parent: 818 - - uid: 464 + pos: -28.5,-15.5 + parent: 2 + - uid: 2003 components: - type: Transform - pos: -11.5,-3.5 - parent: 818 - - uid: 465 + pos: -29.5,-15.5 + parent: 2 + - uid: 2004 components: - type: Transform - pos: -9.5,-3.5 - parent: 818 - - uid: 466 + pos: -29.5,-14.5 + parent: 2 + - uid: 2005 components: - type: Transform - pos: -11.5,3.5 - parent: 818 - - uid: 467 + pos: -29.5,-13.5 + parent: 2 + - uid: 2006 components: - type: Transform - pos: -9.5,3.5 - parent: 818 - - uid: 468 + pos: -29.5,-12.5 + parent: 2 + - uid: 2007 components: - type: Transform - pos: -13.5,-11.5 - parent: 818 - - uid: 469 + pos: -28.5,-12.5 + parent: 2 + - uid: 2008 components: - type: Transform - pos: -12.5,-11.5 - parent: 818 - - uid: 470 + pos: -28.5,-11.5 + parent: 2 + - uid: 2020 components: - type: Transform - pos: -11.5,-11.5 - parent: 818 - - uid: 471 + pos: -22.5,-16.5 + parent: 2 + - uid: 2021 components: - type: Transform - pos: -11.5,-10.5 - parent: 818 - - uid: 472 + pos: -21.5,-16.5 + parent: 2 + - uid: 2022 components: - type: Transform - pos: 10.5,-16.5 - parent: 818 - - uid: 473 + pos: -21.5,-17.5 + parent: 2 + - uid: 2023 components: - type: Transform - pos: 10.5,-15.5 - parent: 818 - - uid: 474 + pos: -21.5,-18.5 + parent: 2 + - uid: 2024 components: - type: Transform - pos: 10.5,-14.5 - parent: 818 - - uid: 475 + pos: -21.5,-19.5 + parent: 2 + - uid: 2025 components: - type: Transform - pos: 10.5,-12.5 - parent: 818 - - uid: 476 + pos: -22.5,-19.5 + parent: 2 + - uid: 2026 components: - type: Transform - pos: -11.5,-13.5 - parent: 818 - - uid: 477 + pos: -22.5,-20.5 + parent: 2 + - uid: 2027 components: - type: Transform - pos: -10.5,-17.5 - parent: 818 - - uid: 478 + pos: -23.5,-20.5 + parent: 2 + - uid: 2028 components: - type: Transform - pos: -10.5,-18.5 - parent: 818 - - uid: 479 + pos: -24.5,-20.5 + parent: 2 + - uid: 2029 components: - type: Transform - pos: -10.5,-19.5 - parent: 818 - - uid: 480 + pos: -25.5,-20.5 + parent: 2 + - uid: 2030 components: - type: Transform - pos: -10.5,-20.5 - parent: 818 - - uid: 481 + pos: -26.5,-20.5 + parent: 2 + - uid: 2031 components: - type: Transform - pos: -11.5,-17.5 - parent: 818 - - uid: 482 + pos: -27.5,-20.5 + parent: 2 + - uid: 2032 components: - type: Transform - pos: -12.5,-17.5 - parent: 818 - - uid: 483 + pos: -27.5,-19.5 + parent: 2 + - uid: 2033 components: - type: Transform - pos: -13.5,-17.5 - parent: 818 - - uid: 484 + pos: -28.5,-19.5 + parent: 2 + - uid: 2034 components: - type: Transform - pos: -14.5,-17.5 - parent: 818 - - uid: 485 + pos: -28.5,-18.5 + parent: 2 + - uid: 2035 components: - type: Transform - pos: -9.5,-17.5 - parent: 818 - - uid: 486 + pos: -28.5,-17.5 + parent: 2 + - uid: 2036 components: - type: Transform - pos: -8.5,-17.5 - parent: 818 - - uid: 487 + pos: -28.5,-16.5 + parent: 2 + - uid: 2099 components: - type: Transform - pos: -7.5,-17.5 - parent: 818 - - uid: 488 + pos: -37.5,1.5 + parent: 2 + - uid: 2107 components: - type: Transform - pos: -6.5,-17.5 - parent: 818 - - uid: 489 + pos: -36.5,1.5 + parent: 2 + - uid: 2157 components: - type: Transform - pos: -10.5,-10.5 - parent: 818 - - uid: 490 + pos: -17.5,3.5 + parent: 2 + - uid: 2158 components: - type: Transform - pos: -9.5,-10.5 - parent: 818 - - uid: 491 + pos: -16.5,3.5 + parent: 2 + - uid: 2159 components: - type: Transform - pos: -8.5,-10.5 - parent: 818 - - uid: 492 + pos: -15.5,3.5 + parent: 2 + - uid: 2160 components: - type: Transform - pos: -7.5,-10.5 - parent: 818 - - uid: 493 + pos: -14.5,3.5 + parent: 2 + - uid: 2161 components: - type: Transform - pos: -6.5,-10.5 - parent: 818 - - uid: 494 + pos: -14.5,4.5 + parent: 2 + - uid: 2162 components: - type: Transform - pos: -12.5,-10.5 - parent: 818 - - uid: 495 + pos: -13.5,4.5 + parent: 2 + - uid: 2163 components: - type: Transform - pos: -13.5,-10.5 - parent: 818 - - uid: 496 + pos: -12.5,4.5 + parent: 2 + - uid: 2164 components: - type: Transform - pos: -14.5,-10.5 - parent: 818 - - uid: 497 + pos: -12.5,5.5 + parent: 2 + - uid: 2165 components: - type: Transform - pos: -11.5,-14.5 - parent: 818 - - uid: 498 + pos: -12.5,6.5 + parent: 2 + - uid: 2166 components: - type: Transform - pos: -12.5,-14.5 - parent: 818 - - uid: 499 + pos: -12.5,7.5 + parent: 2 + - uid: 2167 components: - type: Transform - pos: -9.5,-13.5 - parent: 818 - - uid: 500 + pos: -12.5,8.5 + parent: 2 + - uid: 2168 components: - type: Transform - pos: -8.5,-13.5 - parent: 818 - - uid: 501 + pos: -12.5,9.5 + parent: 2 + - uid: 2169 components: - type: Transform - pos: -10.5,-9.5 - parent: 818 - - uid: 502 + pos: -13.5,9.5 + parent: 2 + - uid: 2170 components: - type: Transform - pos: -10.5,-8.5 - parent: 818 - - uid: 503 + pos: -14.5,9.5 + parent: 2 + - uid: 2171 components: - type: Transform - pos: -10.5,-7.5 - parent: 818 - - uid: 504 + pos: -15.5,9.5 + parent: 2 + - uid: 2172 components: - type: Transform - pos: -10.5,-6.5 - parent: 818 - - uid: 505 + pos: -16.5,9.5 + parent: 2 + - uid: 2173 components: - type: Transform - pos: 6.5,-11.5 - parent: 818 - - uid: 506 + pos: -17.5,9.5 + parent: 2 + - uid: 2174 components: - type: Transform - pos: 7.5,-11.5 - parent: 818 - - uid: 507 + pos: -18.5,9.5 + parent: 2 + - uid: 2175 components: - type: Transform - pos: 7.5,-10.5 - parent: 818 - - uid: 508 + pos: -18.5,10.5 + parent: 2 + - uid: 2176 components: - type: Transform - pos: 6.5,-10.5 - parent: 818 - - uid: 509 + pos: -19.5,10.5 + parent: 2 + - uid: 2183 components: - type: Transform - pos: 5.5,-10.5 - parent: 818 - - uid: 510 + pos: -17.5,4.5 + parent: 2 + - uid: 2186 components: - type: Transform - pos: 8.5,-11.5 - parent: 818 - - uid: 511 + pos: -35.5,1.5 + parent: 2 + - uid: 2187 components: - type: Transform - pos: 8.5,-10.5 - parent: 818 - - uid: 512 + pos: -34.5,1.5 + parent: 2 + - uid: 2188 components: - type: Transform - pos: 9.5,-10.5 - parent: 818 - - uid: 513 + pos: -33.5,1.5 + parent: 2 + - uid: 2191 components: - type: Transform - pos: 10.5,-10.5 - parent: 818 - - uid: 514 + pos: -30.5,1.5 + parent: 2 + - uid: 2194 components: - type: Transform - pos: 11.5,-10.5 - parent: 818 - - uid: 515 + pos: -27.5,1.5 + parent: 2 + - uid: 2195 components: - type: Transform - pos: 12.5,-10.5 - parent: 818 - - uid: 516 + pos: -27.5,2.5 + parent: 2 + - uid: 2196 components: - type: Transform - pos: 13.5,-10.5 - parent: 818 - - uid: 517 + pos: -27.5,3.5 + parent: 2 + - uid: 2200 components: - type: Transform - pos: 8.5,-16.5 - parent: 818 - - uid: 518 + pos: -31.5,3.5 + parent: 2 + - uid: 2201 components: - type: Transform - pos: 8.5,-15.5 - parent: 818 - - uid: 519 + pos: -32.5,3.5 + parent: 2 + - uid: 2202 components: - type: Transform - pos: 8.5,-13.5 - parent: 818 - - uid: 520 + pos: -33.5,3.5 + parent: 2 + - uid: 2203 components: - type: Transform - pos: 8.5,-12.5 - parent: 818 - - uid: 521 + pos: -33.5,2.5 + parent: 2 + - uid: 2204 components: - type: Transform - pos: -11.5,-12.5 - parent: 818 - - uid: 522 + pos: -37.5,2.5 + parent: 2 + - uid: 2205 components: - type: Transform - pos: 9.5,-17.5 - parent: 818 - - uid: 523 + pos: -37.5,3.5 + parent: 2 + - uid: 2206 components: - type: Transform - pos: 9.5,-18.5 - parent: 818 - - uid: 524 + pos: -38.5,3.5 + parent: 2 + - uid: 2207 components: - type: Transform - pos: 9.5,-19.5 - parent: 818 - - uid: 525 + pos: -39.5,3.5 + parent: 2 + - uid: 2208 components: - type: Transform - pos: 9.5,-20.5 - parent: 818 - - uid: 526 + pos: -40.5,3.5 + parent: 2 + - uid: 2209 components: - type: Transform - pos: 8.5,-17.5 - parent: 818 - - uid: 527 + pos: -41.5,3.5 + parent: 2 + - uid: 2210 components: - type: Transform - pos: 7.5,-17.5 - parent: 818 - - uid: 528 + pos: -41.5,4.5 + parent: 2 + - uid: 2211 components: - type: Transform - pos: 6.5,-17.5 - parent: 818 - - uid: 529 + pos: -41.5,5.5 + parent: 2 + - uid: 2212 components: - type: Transform - pos: 5.5,-17.5 - parent: 818 - - uid: 530 + pos: -42.5,5.5 + parent: 2 + - uid: 2213 components: - type: Transform - pos: 10.5,-17.5 - parent: 818 - - uid: 531 + pos: -42.5,6.5 + parent: 2 + - uid: 2214 components: - type: Transform - pos: 11.5,-17.5 - parent: 818 - - uid: 532 + pos: -42.5,7.5 + parent: 2 + - uid: 2215 components: - type: Transform - pos: 12.5,-17.5 - parent: 818 - - uid: 533 + pos: -42.5,8.5 + parent: 2 + - uid: 2216 components: - type: Transform - pos: 13.5,-17.5 - parent: 818 - - uid: 534 + pos: -42.5,9.5 + parent: 2 + - uid: 2217 components: - type: Transform - pos: 8.5,-14.5 - parent: 818 - - uid: 535 + pos: -41.5,9.5 + parent: 2 + - uid: 2218 components: - type: Transform - pos: 7.5,-14.5 - parent: 818 - - uid: 536 + pos: -40.5,9.5 + parent: 2 + - uid: 2219 components: - type: Transform - pos: 10.5,-13.5 - parent: 818 - - uid: 537 + pos: -39.5,9.5 + parent: 2 + - uid: 2220 components: - type: Transform - pos: 11.5,-13.5 - parent: 818 - - uid: 538 + pos: -38.5,9.5 + parent: 2 + - uid: 2221 components: - type: Transform - pos: 9.5,-9.5 - parent: 818 - - uid: 539 + pos: -37.5,9.5 + parent: 2 + - uid: 2222 components: - type: Transform - pos: 9.5,-8.5 - parent: 818 - - uid: 540 + pos: -36.5,9.5 + parent: 2 + - uid: 2223 components: - type: Transform - pos: 9.5,-7.5 - parent: 818 - - uid: 541 + pos: -35.5,9.5 + parent: 2 + - uid: 2224 components: - type: Transform - pos: 9.5,-6.5 - parent: 818 - - uid: 542 + pos: -34.5,9.5 + parent: 2 + - uid: 2225 components: - type: Transform - pos: 6.5,2.5 - parent: 818 - - uid: 543 + pos: -33.5,9.5 + parent: 2 + - uid: 2226 components: - type: Transform - pos: 6.5,1.5 - parent: 818 - - uid: 544 + pos: -32.5,9.5 + parent: 2 + - uid: 2227 components: - type: Transform - pos: 6.5,0.5 - parent: 818 - - uid: 545 + pos: -31.5,9.5 + parent: 2 + - uid: 2228 components: - type: Transform - pos: 6.5,-0.5 - parent: 818 - - uid: 546 + pos: -37.5,8.5 + parent: 2 + - uid: 2229 components: - type: Transform - pos: 7.5,-0.5 - parent: 818 - - uid: 547 + pos: -38.5,6.5 + parent: 2 + - uid: 2230 components: - type: Transform - pos: 8.5,-0.5 - parent: 818 - - uid: 548 + pos: -37.5,6.5 + parent: 2 + - uid: 2231 components: - type: Transform - pos: 9.5,-0.5 - parent: 818 - - uid: 549 + pos: -31.5,4.5 + parent: 2 + - uid: 2235 components: - type: Transform - pos: 9.5,0.5 - parent: 818 - - uid: 550 + pos: -21.5,3.5 + parent: 2 + - uid: 2236 components: - type: Transform - pos: 9.5,1.5 - parent: 818 - - uid: 551 + pos: -21.5,2.5 + parent: 2 + - uid: 2237 components: - type: Transform - pos: 9.5,2.5 - parent: 818 - - uid: 552 + pos: -21.5,1.5 + parent: 2 + - uid: 2238 components: - type: Transform - pos: 9.5,3.5 - parent: 818 - - uid: 553 + pos: -20.5,3.5 + parent: 2 + - uid: 2240 components: - type: Transform - pos: 10.5,-0.5 - parent: 818 - - uid: 554 + pos: -18.5,1.5 + parent: 2 + - uid: 2242 components: - type: Transform - pos: 8.5,3.5 - parent: 818 - - uid: 555 + pos: -28.5,3.5 + parent: 2 + - uid: 2243 components: - type: Transform - pos: 10.5,3.5 - parent: 818 - - uid: 556 + pos: -15.5,1.5 + parent: 2 + - uid: 2244 components: - type: Transform - pos: 11.5,-0.5 - parent: 818 - - uid: 557 + pos: -14.5,1.5 + parent: 2 + - uid: 2245 components: - type: Transform - pos: 12.5,-0.5 - parent: 818 - - uid: 558 + pos: -13.5,1.5 + parent: 2 + - uid: 2246 components: - type: Transform - pos: 9.5,-1.5 - parent: 818 - - uid: 559 + pos: -12.5,1.5 + parent: 2 + - uid: 2247 components: - type: Transform - pos: 9.5,-2.5 - parent: 818 - - uid: 560 + pos: -12.5,2.5 + parent: 2 + - uid: 2248 components: - type: Transform - pos: 9.5,-3.5 - parent: 818 - - uid: 561 + pos: -11.5,2.5 + parent: 2 + - uid: 2258 components: - type: Transform - pos: 8.5,-3.5 - parent: 818 - - uid: 562 + pos: -19.5,14.5 + parent: 2 + - uid: 2260 components: - type: Transform - pos: 10.5,-3.5 - parent: 818 - - uid: 563 + pos: -21.5,14.5 + parent: 2 + - uid: 2261 components: - type: Transform - pos: 1.5,7.5 - parent: 818 - - uid: 564 + pos: -22.5,14.5 + parent: 2 + - uid: 2262 components: - type: Transform - pos: 2.5,7.5 - parent: 818 - - uid: 565 + pos: -23.5,14.5 + parent: 2 + - uid: 2263 components: - type: Transform - pos: 3.5,7.5 - parent: 818 - - uid: 566 + pos: -24.5,14.5 + parent: 2 + - uid: 2264 components: - type: Transform - pos: 3.5,6.5 - parent: 818 - - uid: 579 + pos: -25.5,14.5 + parent: 2 + - uid: 2265 components: - type: Transform - pos: 2.5,0.5 - parent: 818 - - uid: 599 + pos: -26.5,14.5 + parent: 2 + - uid: 2267 components: - type: Transform - pos: -4.5,6.5 - parent: 818 - - uid: 601 + pos: -28.5,14.5 + parent: 2 + - uid: 2268 components: - type: Transform - pos: -4.5,5.5 - parent: 818 - - uid: 651 + pos: -29.5,14.5 + parent: 2 + - uid: 2283 components: - type: Transform - pos: 10.5,-11.5 - parent: 818 - - uid: 652 + pos: -13.5,10.5 + parent: 2 + - uid: 2284 components: - type: Transform - pos: -11.5,-16.5 - parent: 818 - - uid: 653 + pos: -13.5,11.5 + parent: 2 + - uid: 2285 components: - type: Transform - pos: -11.5,-15.5 - parent: 818 - - uid: 654 + pos: -13.5,12.5 + parent: 2 + - uid: 2286 components: - type: Transform - pos: -9.5,-16.5 - parent: 818 - - uid: 655 + pos: -13.5,13.5 + parent: 2 + - uid: 2287 components: - type: Transform - pos: -9.5,-15.5 - parent: 818 - - uid: 656 + pos: -14.5,13.5 + parent: 2 + - uid: 2288 components: - type: Transform - pos: -9.5,-14.5 - parent: 818 - - uid: 657 + pos: -14.5,14.5 + parent: 2 + - uid: 2289 components: - type: Transform - pos: -9.5,-12.5 - parent: 818 - - uid: 658 + pos: -14.5,15.5 + parent: 2 + - uid: 2293 components: - type: Transform - pos: -9.5,-11.5 - parent: 818 - - uid: 842 + pos: -18.5,15.5 + parent: 2 + - uid: 2294 components: - type: Transform - pos: -4.5,0.5 - parent: 818 - - uid: 843 + pos: -18.5,14.5 + parent: 2 + - uid: 2303 components: - type: Transform - pos: -4.5,1.5 - parent: 818 - - uid: 844 + pos: -30.5,9.5 + parent: 2 + - uid: 2304 components: - type: Transform - pos: 2.5,3.5 - parent: 818 -- proto: CableHV - entities: - - uid: 413 + pos: -30.5,10.5 + parent: 2 + - uid: 2305 components: - type: Transform - pos: -3.5,8.5 - parent: 818 - - uid: 415 + pos: -29.5,10.5 + parent: 2 + - uid: 2323 components: - type: Transform - pos: -4.5,8.5 - parent: 818 - - uid: 416 + pos: -36.5,10.5 + parent: 2 + - uid: 2324 components: - type: Transform - pos: -2.5,8.5 - parent: 818 - - uid: 734 + pos: -36.5,11.5 + parent: 2 + - uid: 2325 components: - type: Transform - pos: -0.5,8.5 - parent: 818 - - uid: 735 + pos: -36.5,13.5 + parent: 2 + - uid: 2326 components: - type: Transform - pos: -1.5,8.5 - parent: 818 -- proto: CableMV - entities: - - uid: 177 + pos: -36.5,14.5 + parent: 2 + - uid: 2327 components: - type: Transform - pos: 3.5,3.5 - parent: 818 - - uid: 201 + pos: -35.5,14.5 + parent: 2 + - uid: 2329 components: - type: Transform - pos: 6.5,-0.5 - parent: 818 - - uid: 210 + pos: -29.5,15.5 + parent: 2 + - uid: 2333 components: - type: Transform - pos: 6.5,1.5 - parent: 818 - - uid: 214 + pos: -32.5,16.5 + parent: 2 + - uid: 2334 components: - type: Transform - pos: 6.5,0.5 - parent: 818 - - uid: 219 + pos: -31.5,15.5 + parent: 2 + - uid: 2336 components: - type: Transform - pos: 7.5,-0.5 - parent: 818 - - uid: 221 + pos: -30.5,15.5 + parent: 2 + - uid: 2339 components: - type: Transform - pos: 3.5,-0.5 - parent: 818 - - uid: 224 + pos: -31.5,16.5 + parent: 2 + - uid: 2368 components: - type: Transform - pos: 1.5,-0.5 - parent: 818 - - uid: 226 + pos: -43.5,9.5 + parent: 2 + - uid: 2369 components: - type: Transform - pos: 6.5,2.5 - parent: 818 - - uid: 227 + pos: -43.5,13.5 + parent: 2 + - uid: 2370 components: - type: Transform - pos: 8.5,-0.5 - parent: 818 - - uid: 228 + pos: -42.5,13.5 + parent: 2 + - uid: 2371 components: - type: Transform - pos: 9.5,-0.5 - parent: 818 - - uid: 349 + pos: -42.5,14.5 + parent: 2 + - uid: 2372 components: - type: Transform - pos: 9.5,-1.5 - parent: 818 - - uid: 350 + pos: -42.5,15.5 + parent: 2 + - uid: 2373 components: - type: Transform - pos: 5.5,-0.5 - parent: 818 - - uid: 352 + pos: -41.5,15.5 + parent: 2 + - uid: 2374 components: - type: Transform - pos: 2.5,-0.5 - parent: 818 - - uid: 353 + pos: -40.5,15.5 + parent: 2 + - uid: 2375 components: - type: Transform - pos: 4.5,-0.5 - parent: 818 - - uid: 354 + pos: -39.5,15.5 + parent: 2 + - uid: 2376 components: - type: Transform - pos: 1.5,6.5 - parent: 818 - - uid: 356 + pos: -38.5,15.5 + parent: 2 + - uid: 2377 components: - type: Transform - pos: 9.5,-7.5 - parent: 818 - - uid: 357 + pos: -38.5,14.5 + parent: 2 + - uid: 2378 components: - type: Transform - pos: 9.5,-6.5 - parent: 818 - - uid: 358 + pos: -37.5,14.5 + parent: 2 + - uid: 2380 components: - type: Transform - pos: 9.5,-5.5 - parent: 818 - - uid: 359 + pos: -18.5,16.5 + parent: 2 + - uid: 2381 components: - type: Transform - pos: 9.5,-3.5 - parent: 818 - - uid: 360 + pos: -18.5,17.5 + parent: 2 + - uid: 2382 components: - type: Transform - pos: 9.5,-4.5 - parent: 818 - - uid: 361 + pos: -18.5,18.5 + parent: 2 + - uid: 2383 components: - type: Transform - pos: 9.5,-2.5 - parent: 818 - - uid: 362 + pos: -29.5,16.5 + parent: 2 + - uid: 2384 components: - type: Transform - pos: 9.5,-8.5 - parent: 818 - - uid: 363 + pos: -29.5,17.5 + parent: 2 + - uid: 2385 components: - type: Transform - pos: 9.5,-9.5 - parent: 818 - - uid: 364 + pos: -29.5,18.5 + parent: 2 + - uid: 2386 components: - type: Transform - pos: 9.5,-10.5 - parent: 818 - - uid: 365 + pos: -28.5,18.5 + parent: 2 + - uid: 2389 components: - type: Transform - pos: 9.5,-11.5 - parent: 818 - - uid: 366 + pos: -25.5,18.5 + parent: 2 + - uid: 2392 components: - type: Transform - pos: 8.5,-11.5 - parent: 818 - - uid: 367 + pos: -22.5,18.5 + parent: 2 + - uid: 2395 components: - type: Transform - pos: 7.5,-11.5 - parent: 818 - - uid: 368 + pos: -19.5,18.5 + parent: 2 + - uid: 2417 components: - type: Transform - pos: 6.5,-11.5 - parent: 818 - - uid: 369 + pos: -15.5,2.5 + parent: 2 + - uid: 2430 components: - type: Transform - pos: 0.5,-0.5 - parent: 818 - - uid: 370 + pos: -37.5,-2.5 + parent: 2 + - uid: 2431 components: - type: Transform - pos: -0.5,-0.5 - parent: 818 - - uid: 371 + pos: -38.5,-2.5 + parent: 2 + - uid: 2432 components: - type: Transform - pos: -1.5,-0.5 - parent: 818 - - uid: 372 + pos: -39.5,-2.5 + parent: 2 + - uid: 2433 components: - type: Transform - pos: -2.5,-0.5 - parent: 818 - - uid: 373 + pos: -40.5,-2.5 + parent: 2 + - uid: 2434 components: - type: Transform - pos: -3.5,-0.5 - parent: 818 - - uid: 374 + pos: -41.5,-2.5 + parent: 2 + - uid: 2435 components: - type: Transform - pos: -4.5,-0.5 - parent: 818 - - uid: 375 + pos: -41.5,-3.5 + parent: 2 + - uid: 2436 components: - type: Transform - pos: -5.5,-0.5 - parent: 818 - - uid: 376 + pos: -41.5,-4.5 + parent: 2 + - uid: 2437 components: - type: Transform - pos: -6.5,-0.5 - parent: 818 - - uid: 377 + pos: -41.5,-5.5 + parent: 2 + - uid: 2438 components: - type: Transform - pos: -7.5,-0.5 - parent: 818 - - uid: 378 + pos: -41.5,-6.5 + parent: 2 + - uid: 2439 components: - type: Transform - pos: -8.5,-0.5 - parent: 818 - - uid: 379 + pos: -41.5,-7.5 + parent: 2 + - uid: 2441 components: - type: Transform - pos: -9.5,-0.5 - parent: 818 - - uid: 380 + pos: -41.5,-9.5 + parent: 2 + - uid: 2443 components: - type: Transform - pos: -10.5,-0.5 - parent: 818 - - uid: 381 + pos: -39.5,1.5 + parent: 2 + - uid: 2444 components: - type: Transform - pos: -11.5,-0.5 - parent: 818 - - uid: 382 + pos: -40.5,1.5 + parent: 2 + - uid: 2445 components: - type: Transform - pos: -12.5,-0.5 - parent: 818 - - uid: 383 + pos: -41.5,1.5 + parent: 2 + - uid: 2446 components: - type: Transform - pos: -13.5,-0.5 - parent: 818 - - uid: 384 + pos: -42.5,1.5 + parent: 2 + - uid: 2447 components: - type: Transform - pos: -13.5,0.5 - parent: 818 - - uid: 385 + pos: -43.5,1.5 + parent: 2 + - uid: 2448 components: - type: Transform - pos: -13.5,1.5 - parent: 818 - - uid: 386 + pos: -44.5,1.5 + parent: 2 + - uid: 2465 components: - type: Transform - pos: -13.5,2.5 - parent: 818 - - uid: 387 + pos: -47.5,-8.5 + parent: 2 + - uid: 2466 components: - type: Transform - pos: -10.5,-1.5 - parent: 818 - - uid: 388 + pos: -48.5,-8.5 + parent: 2 + - uid: 2467 components: - type: Transform - pos: -10.5,-2.5 - parent: 818 - - uid: 389 + pos: -49.5,-8.5 + parent: 2 + - uid: 2468 components: - type: Transform - pos: -10.5,-3.5 - parent: 818 - - uid: 390 + pos: -49.5,-14.5 + parent: 2 + - uid: 2469 components: - type: Transform - pos: -10.5,-4.5 - parent: 818 - - uid: 391 + pos: -48.5,-14.5 + parent: 2 + - uid: 2470 components: - type: Transform - pos: -10.5,-5.5 - parent: 818 - - uid: 392 + pos: -47.5,-14.5 + parent: 2 + - uid: 2471 components: - type: Transform - pos: -10.5,-6.5 - parent: 818 - - uid: 393 + pos: -49.5,-7.5 + parent: 2 + - uid: 2472 components: - type: Transform - pos: -10.5,-7.5 - parent: 818 - - uid: 394 + pos: -50.5,-7.5 + parent: 2 + - uid: 2473 components: - type: Transform - pos: -10.5,-8.5 - parent: 818 - - uid: 395 + pos: -55.5,-7.5 + parent: 2 + - uid: 2474 components: - type: Transform - pos: -10.5,-9.5 - parent: 818 - - uid: 396 + pos: -56.5,-7.5 + parent: 2 + - uid: 2476 components: - type: Transform - pos: -10.5,-10.5 - parent: 818 - - uid: 397 + pos: -58.5,-9.5 + parent: 2 + - uid: 2477 components: - type: Transform - pos: -10.5,-11.5 - parent: 818 - - uid: 398 + pos: -58.5,-8.5 + parent: 2 + - uid: 2481 components: - type: Transform - pos: -11.5,-11.5 - parent: 818 - - uid: 399 + pos: -56.5,-15.5 + parent: 2 + - uid: 2482 components: - type: Transform - pos: -12.5,-11.5 - parent: 818 - - uid: 400 + pos: -55.5,-15.5 + parent: 2 + - uid: 2483 components: - type: Transform - pos: -13.5,-11.5 - parent: 818 - - uid: 418 + pos: -49.5,-15.5 + parent: 2 + - uid: 2484 components: - type: Transform - pos: 3.5,1.5 - parent: 818 - - uid: 419 + pos: -50.5,-15.5 + parent: 2 + - uid: 2485 components: - type: Transform - pos: 3.5,2.5 - parent: 818 - - uid: 421 + pos: -50.5,-16.5 + parent: 2 + - uid: 2488 components: - type: Transform - pos: -0.5,7.5 - parent: 818 - - uid: 422 + pos: -54.5,-16.5 + parent: 2 + - uid: 2489 components: - type: Transform - pos: 0.5,7.5 - parent: 818 - - uid: 423 + pos: -55.5,-16.5 + parent: 2 + - uid: 2490 components: - type: Transform - pos: 1.5,7.5 - parent: 818 - - uid: 424 + pos: -55.5,-6.5 + parent: 2 + - uid: 2491 components: - type: Transform - pos: 2.5,7.5 - parent: 818 - - uid: 425 + pos: -54.5,-6.5 + parent: 2 + - uid: 2492 components: - type: Transform - pos: 3.5,7.5 - parent: 818 - - uid: 567 + pos: -50.5,-6.5 + parent: 2 + - uid: 2511 components: - type: Transform - pos: 3.5,4.5 - parent: 818 - - uid: 568 + pos: -58.5,-14.5 + parent: 2 + - uid: 2512 components: - type: Transform - pos: 3.5,5.5 - parent: 818 - - uid: 569 + pos: -58.5,-13.5 + parent: 2 + - uid: 2517 components: - type: Transform - pos: 3.5,6.5 - parent: 818 - - uid: 570 + pos: -59.5,-13.5 + parent: 2 + - uid: 2519 components: - type: Transform - pos: -0.5,8.5 - parent: 818 - - uid: 803 + pos: -59.5,-11.5 + parent: 2 + - uid: 2521 components: - type: Transform - pos: 3.5,0.5 - parent: 818 - - uid: 845 + pos: -59.5,-9.5 + parent: 2 + - uid: 2546 components: - type: Transform - pos: 2.5,3.5 - parent: 818 -- proto: CableTerminal - entities: - - uid: 417 + pos: -47.5,-15.5 + parent: 2 + - uid: 2547 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -3.5,8.5 - parent: 818 -- proto: Catwalk - entities: - - uid: 580 + pos: -46.5,-15.5 + parent: 2 + - uid: 2548 components: - type: Transform - pos: 3.5,6.5 - parent: 818 - - uid: 584 + pos: -45.5,-15.5 + parent: 2 + - uid: 2549 components: - type: Transform - pos: 2.5,7.5 - parent: 818 - - uid: 590 + pos: -47.5,-7.5 + parent: 2 + - uid: 2550 components: - type: Transform - pos: 3.5,5.5 - parent: 818 - - uid: 596 + pos: -46.5,-7.5 + parent: 2 + - uid: 2551 components: - type: Transform - pos: 1.5,7.5 - parent: 818 - - uid: 747 + pos: -45.5,-7.5 + parent: 2 + - uid: 2553 components: - type: Transform - pos: 3.5,4.5 - parent: 818 - - uid: 810 + pos: -50.5,-5.5 + parent: 2 + - uid: 2554 components: - type: Transform - pos: 0.5,7.5 - parent: 818 - - uid: 811 + pos: -49.5,-5.5 + parent: 2 + - uid: 2555 components: - type: Transform - pos: -0.5,7.5 - parent: 818 - - uid: 812 + pos: -48.5,-5.5 + parent: 2 + - uid: 2556 components: - type: Transform - pos: -1.5,7.5 - parent: 818 - - uid: 813 + pos: -47.5,-5.5 + parent: 2 + - uid: 2557 components: - type: Transform - pos: -2.5,7.5 - parent: 818 - - uid: 814 + pos: -47.5,-4.5 + parent: 2 + - uid: 2558 components: - type: Transform - pos: -3.5,7.5 - parent: 818 - - uid: 815 + pos: -47.5,-1.5 + parent: 2 + - uid: 2559 components: - type: Transform - pos: -4.5,7.5 - parent: 818 -- proto: Chair - entities: - - uid: 592 + pos: -47.5,-2.5 + parent: 2 + - uid: 2561 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -7.5,-14.5 - parent: 818 - - uid: 593 + pos: -47.5,-0.5 + parent: 2 + - uid: 2562 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -7.5,-15.5 - parent: 818 - - uid: 603 + pos: -48.5,-0.5 + parent: 2 + - uid: 2563 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -7.5,-13.5 - parent: 818 - - uid: 604 + pos: -49.5,-0.5 + parent: 2 + - uid: 2564 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -7.5,-12.5 - parent: 818 - - uid: 605 + pos: -49.5,0.5 + parent: 2 + - uid: 2565 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -11.5,-15.5 - parent: 818 - - uid: 606 + pos: -50.5,0.5 + parent: 2 + - uid: 2566 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -11.5,-14.5 - parent: 818 - - uid: 607 + pos: -51.5,0.5 + parent: 2 + - uid: 2567 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -11.5,-13.5 - parent: 818 - - uid: 608 + pos: -52.5,0.5 + parent: 2 + - uid: 2568 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -11.5,-12.5 - parent: 818 - - uid: 609 + pos: -54.5,0.5 + parent: 2 + - uid: 2569 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -13.5,-15.5 - parent: 818 - - uid: 610 + pos: -55.5,0.5 + parent: 2 + - uid: 2570 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -13.5,-14.5 - parent: 818 - - uid: 611 + pos: -56.5,0.5 + parent: 2 + - uid: 2575 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -13.5,-13.5 - parent: 818 - - uid: 612 + pos: -56.5,-4.5 + parent: 2 + - uid: 2576 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -13.5,-12.5 - parent: 818 - - uid: 613 + pos: -56.5,-5.5 + parent: 2 + - uid: 2577 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -9.5,-15.5 - parent: 818 - - uid: 614 + pos: -55.5,-5.5 + parent: 2 + - uid: 2592 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -9.5,-14.5 - parent: 818 - - uid: 615 + pos: -50.5,6.5 + parent: 2 + - uid: 2593 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -9.5,-13.5 - parent: 818 - - uid: 616 + pos: -49.5,6.5 + parent: 2 + - uid: 2594 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -9.5,-12.5 - parent: 818 - - uid: 617 + pos: -49.5,5.5 + parent: 2 + - uid: 2595 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,-15.5 - parent: 818 - - uid: 618 + pos: -48.5,5.5 + parent: 2 + - uid: 2596 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,-14.5 - parent: 818 - - uid: 619 + pos: -47.5,5.5 + parent: 2 + - uid: 2597 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,-13.5 - parent: 818 - - uid: 620 + pos: -47.5,4.5 + parent: 2 + - uid: 2598 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,-12.5 - parent: 818 - - uid: 621 + pos: -47.5,3.5 + parent: 2 + - uid: 2599 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 10.5,-15.5 - parent: 818 - - uid: 622 + pos: -47.5,2.5 + parent: 2 + - uid: 2600 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 10.5,-14.5 - parent: 818 - - uid: 623 + pos: -47.5,1.5 + parent: 2 + - uid: 2601 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 10.5,-13.5 - parent: 818 - - uid: 624 + pos: -48.5,1.5 + parent: 2 + - uid: 2602 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 10.5,-12.5 - parent: 818 - - uid: 625 + pos: -49.5,1.5 + parent: 2 + - uid: 2603 + components: + - type: Transform + pos: -56.5,1.5 + parent: 2 + - uid: 2606 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 8.5,-15.5 - parent: 818 - - uid: 626 + pos: -56.5,4.5 + parent: 2 + - uid: 2607 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 8.5,-14.5 - parent: 818 - - uid: 627 + pos: -56.5,5.5 + parent: 2 + - uid: 2608 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 8.5,-13.5 - parent: 818 - - uid: 628 + pos: -55.5,5.5 + parent: 2 + - uid: 2609 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 8.5,-12.5 - parent: 818 - - uid: 629 + pos: -55.5,6.5 + parent: 2 + - uid: 2610 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 12.5,-15.5 - parent: 818 - - uid: 630 + pos: -54.5,6.5 + parent: 2 + - uid: 2679 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 12.5,-14.5 - parent: 818 - - uid: 631 + pos: -47.5,-3.5 + parent: 2 + - uid: 2682 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 12.5,-13.5 - parent: 818 - - uid: 632 + pos: -45.5,-0.5 + parent: 2 + - uid: 2683 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 12.5,-12.5 - parent: 818 - - uid: 847 + pos: -45.5,-1.5 + parent: 2 + - uid: 2684 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -12.5,-8.5 - parent: 818 - - uid: 848 + pos: -45.5,-2.5 + parent: 2 + - uid: 2685 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -8.5,-8.5 - parent: 818 - - uid: 849 + pos: -45.5,-3.5 + parent: 2 + - uid: 2686 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -8.5,-7.5 - parent: 818 - - uid: 850 + pos: -45.5,-4.5 + parent: 2 + - uid: 2687 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -8.5,-6.5 - parent: 818 -- proto: ChairOfficeDark - entities: - - uid: 591 + pos: -45.5,-5.5 + parent: 2 + - uid: 2702 components: - type: Transform - rot: 3.141592653589793 rad - pos: 9.5,3.5 - parent: 818 -- proto: ChairWood - entities: - - uid: 577 + pos: -55.5,-17.5 + parent: 2 + - uid: 2703 components: - type: Transform - pos: 10.5,1.5 - parent: 818 - - uid: 703 + pos: -56.5,-17.5 + parent: 2 + - uid: 2704 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 8.5,0.5 - parent: 818 - - uid: 704 + pos: -50.5,-17.5 + parent: 2 + - uid: 2705 components: - type: Transform - pos: 9.5,1.5 - parent: 818 - - uid: 714 + pos: -49.5,-17.5 + parent: 2 + - uid: 2706 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 8.5,-0.5 - parent: 818 -- proto: ChessBoard - entities: - - uid: 918 + pos: -48.5,-17.5 + parent: 2 + - uid: 2707 components: - type: Transform - pos: 12.503689,-2.3981738 - parent: 818 -- proto: ClosetWallEmergencyFilledRandom - entities: - - uid: 344 + pos: -47.5,-17.5 + parent: 2 + - uid: 2708 components: - type: Transform - pos: -5.5,2.5 - parent: 818 -- proto: ClosetWallFireFilledRandom - entities: - - uid: 432 + pos: -47.5,-18.5 + parent: 2 + - uid: 2709 components: - type: Transform - pos: 4.5,2.5 - parent: 818 -- proto: ComfyChair - entities: - - uid: 595 + pos: -47.5,-19.5 + parent: 2 + - uid: 2710 components: - type: Transform - rot: 3.141592653589793 rad - pos: 6.5,-3.5 - parent: 818 - - uid: 718 + pos: -47.5,-20.5 + parent: 2 + - uid: 2711 components: - type: Transform - pos: 12.5,-1.5 - parent: 818 - - uid: 749 + pos: -47.5,-21.5 + parent: 2 + - uid: 2712 components: - type: Transform - pos: 12.5,1.5 - parent: 818 - - uid: 759 + pos: -47.5,-22.5 + parent: 2 + - uid: 2713 components: - type: Transform - rot: 3.141592653589793 rad - pos: 12.5,-0.5 - parent: 818 - - uid: 760 + pos: -48.5,-22.5 + parent: 2 + - uid: 2714 components: - type: Transform - rot: 3.141592653589793 rad - pos: 12.5,-3.5 - parent: 818 -- proto: DisposalBend - entities: - - uid: 853 + pos: -49.5,-22.5 + parent: 2 + - uid: 2716 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -10.5,-7.5 - parent: 818 - - uid: 862 + pos: -50.5,-23.5 + parent: 2 + - uid: 2717 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -10.5,0.5 - parent: 818 - - uid: 891 + pos: -51.5,-23.5 + parent: 2 + - uid: 2718 components: - type: Transform - pos: 3.5,7.5 - parent: 818 - - uid: 893 + pos: -52.5,-23.5 + parent: 2 + - uid: 2719 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -4.5,7.5 - parent: 818 - - uid: 898 + pos: -54.5,-23.5 + parent: 2 + - uid: 2720 components: - type: Transform - rot: 3.141592653589793 rad - pos: 9.5,-7.5 - parent: 818 - - uid: 899 + pos: -55.5,-23.5 + parent: 2 + - uid: 2721 components: - type: Transform - pos: 9.5,-1.5 - parent: 818 - - uid: 900 + pos: -56.5,-23.5 + parent: 2 + - uid: 2723 components: - type: Transform - rot: 3.141592653589793 rad - pos: 3.5,-1.5 - parent: 818 -- proto: DisposalJunctionFlipped - entities: - - uid: 892 + pos: -56.5,-19.5 + parent: 2 + - uid: 2724 components: - type: Transform - rot: 3.141592653589793 rad - pos: 3.5,0.5 - parent: 818 -- proto: DisposalPipe - entities: - - uid: 854 + pos: -56.5,-21.5 + parent: 2 + - uid: 2730 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -11.5,-7.5 - parent: 818 - - uid: 855 + pos: -49.5,-23.5 + parent: 2 + - uid: 2731 components: - type: Transform - rot: 3.141592653589793 rad - pos: -10.5,-6.5 - parent: 818 - - uid: 856 + pos: -49.5,-24.5 + parent: 2 + - uid: 2732 components: - type: Transform - rot: 3.141592653589793 rad - pos: -10.5,-5.5 - parent: 818 - - uid: 857 + pos: -48.5,-24.5 + parent: 2 + - uid: 2733 components: - type: Transform - rot: 3.141592653589793 rad - pos: -10.5,-4.5 - parent: 818 - - uid: 858 + pos: -47.5,-24.5 + parent: 2 + - uid: 2734 components: - type: Transform - rot: 3.141592653589793 rad - pos: -10.5,-3.5 - parent: 818 - - uid: 859 + pos: -47.5,-25.5 + parent: 2 + - uid: 2735 components: - type: Transform - rot: 3.141592653589793 rad - pos: -10.5,-2.5 - parent: 818 - - uid: 860 + pos: -47.5,-26.5 + parent: 2 + - uid: 2736 components: - type: Transform - rot: 3.141592653589793 rad - pos: -10.5,-1.5 - parent: 818 - - uid: 861 + pos: -47.5,-27.5 + parent: 2 + - uid: 2737 components: - type: Transform - rot: 3.141592653589793 rad - pos: -10.5,-0.5 - parent: 818 - - uid: 863 + pos: -47.5,-28.5 + parent: 2 + - uid: 2738 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -9.5,0.5 - parent: 818 - - uid: 864 + pos: -48.5,-28.5 + parent: 2 + - uid: 2739 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -8.5,0.5 - parent: 818 - - uid: 865 + pos: -49.5,-28.5 + parent: 2 + - uid: 2740 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,0.5 - parent: 818 - - uid: 866 + pos: -49.5,-29.5 + parent: 2 + - uid: 2741 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -6.5,0.5 - parent: 818 - - uid: 867 + pos: -50.5,-29.5 + parent: 2 + - uid: 2743 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -5.5,0.5 - parent: 818 - - uid: 868 + pos: -52.5,-29.5 + parent: 2 + - uid: 2745 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -4.5,0.5 - parent: 818 - - uid: 869 + pos: -54.5,-29.5 + parent: 2 + - uid: 2746 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -3.5,0.5 - parent: 818 - - uid: 870 + pos: -55.5,-29.5 + parent: 2 + - uid: 2747 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -2.5,0.5 - parent: 818 - - uid: 871 + pos: -55.5,-28.5 + parent: 2 + - uid: 2748 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -1.5,0.5 - parent: 818 - - uid: 872 + pos: -56.5,-28.5 + parent: 2 + - uid: 2752 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -0.5,0.5 - parent: 818 - - uid: 873 + pos: -56.5,-24.5 + parent: 2 + - uid: 2823 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 0.5,0.5 - parent: 818 - - uid: 874 + pos: -45.5,-6.5 + parent: 2 + - uid: 2825 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 1.5,0.5 - parent: 818 - - uid: 875 + pos: -45.5,1.5 + parent: 2 + - uid: 2826 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 2.5,0.5 - parent: 818 - - uid: 876 + pos: -41.5,-10.5 + parent: 2 + - uid: 2827 components: - type: Transform - pos: 3.5,1.5 - parent: 818 - - uid: 877 + pos: -41.5,-11.5 + parent: 2 + - uid: 2828 components: - type: Transform - pos: 3.5,2.5 - parent: 818 - - uid: 878 + pos: -41.5,-12.5 + parent: 2 + - uid: 2829 components: - type: Transform - pos: 3.5,3.5 - parent: 818 - - uid: 879 + pos: -41.5,-13.5 + parent: 2 + - uid: 2830 components: - type: Transform - pos: 3.5,4.5 - parent: 818 - - uid: 880 + pos: -41.5,-14.5 + parent: 2 + - uid: 2831 components: - type: Transform - pos: 3.5,5.5 - parent: 818 - - uid: 881 + pos: -41.5,-15.5 + parent: 2 + - uid: 2832 components: - type: Transform - pos: 3.5,6.5 - parent: 818 - - uid: 882 + pos: -41.5,-16.5 + parent: 2 + - uid: 2833 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 2.5,7.5 - parent: 818 - - uid: 883 + pos: -41.5,-17.5 + parent: 2 + - uid: 2834 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 1.5,7.5 - parent: 818 - - uid: 884 + pos: -41.5,-18.5 + parent: 2 + - uid: 2835 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 0.5,7.5 - parent: 818 - - uid: 885 + pos: -41.5,-19.5 + parent: 2 + - uid: 2836 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -0.5,7.5 - parent: 818 - - uid: 886 + pos: -41.5,-20.5 + parent: 2 + - uid: 2837 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -1.5,7.5 - parent: 818 - - uid: 887 + pos: -45.5,-24.5 + parent: 2 + - uid: 2838 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -2.5,7.5 - parent: 818 - - uid: 888 + pos: -45.5,-23.5 + parent: 2 + - uid: 2839 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -3.5,7.5 - parent: 818 - - uid: 889 + pos: -45.5,-22.5 + parent: 2 + - uid: 2840 components: - type: Transform - rot: 3.141592653589793 rad - pos: -4.5,6.5 - parent: 818 - - uid: 890 + pos: -45.5,-21.5 + parent: 2 + - uid: 2841 components: - type: Transform - rot: 3.141592653589793 rad - pos: -4.5,5.5 - parent: 818 - - uid: 901 + pos: -45.5,-20.5 + parent: 2 + - uid: 2842 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 10.5,-7.5 - parent: 818 - - uid: 902 + pos: -45.5,-19.5 + parent: 2 + - uid: 2843 components: - type: Transform - pos: 9.5,-6.5 - parent: 818 - - uid: 903 + pos: -45.5,-18.5 + parent: 2 + - uid: 2844 components: - type: Transform - pos: 9.5,-5.5 - parent: 818 - - uid: 904 + pos: -45.5,-17.5 + parent: 2 + - uid: 2845 components: - type: Transform - pos: 9.5,-4.5 - parent: 818 - - uid: 905 + pos: -45.5,-16.5 + parent: 2 + - uid: 2846 components: - type: Transform - pos: 9.5,-3.5 - parent: 818 - - uid: 906 + pos: -43.5,-24.5 + parent: 2 + - uid: 2847 components: - type: Transform - pos: 9.5,-2.5 - parent: 818 - - uid: 907 + pos: -42.5,-24.5 + parent: 2 + - uid: 2848 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 8.5,-1.5 - parent: 818 - - uid: 908 + pos: -41.5,-24.5 + parent: 2 + - uid: 2849 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 7.5,-1.5 - parent: 818 - - uid: 909 + pos: -40.5,-24.5 + parent: 2 + - uid: 2850 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 6.5,-1.5 - parent: 818 - - uid: 910 + pos: -39.5,-24.5 + parent: 2 + - uid: 2851 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 5.5,-1.5 - parent: 818 - - uid: 911 + pos: -38.5,-24.5 + parent: 2 + - uid: 2852 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 4.5,-1.5 - parent: 818 - - uid: 912 + pos: -37.5,-24.5 + parent: 2 + - uid: 2853 components: - type: Transform - rot: 3.141592653589793 rad - pos: 3.5,-0.5 - parent: 818 -- proto: DisposalTrunk - entities: - - uid: 852 + pos: -36.5,-24.5 + parent: 2 + - uid: 2854 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -12.5,-7.5 - parent: 818 - - uid: 894 + pos: -35.5,-24.5 + parent: 2 + - uid: 2855 components: - type: Transform - rot: 3.141592653589793 rad - pos: -4.5,4.5 - parent: 818 - - uid: 897 + pos: -35.5,-25.5 + parent: 2 + - uid: 2856 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 11.5,-7.5 - parent: 818 -- proto: DisposalUnit - entities: - - uid: 851 + pos: -35.5,-26.5 + parent: 2 + - uid: 2858 components: - type: Transform - pos: -12.5,-7.5 - parent: 818 - - uid: 896 + pos: -35.5,-28.5 + parent: 2 + - uid: 2863 components: - type: Transform - pos: 11.5,-7.5 - parent: 818 -- proto: DrinkGlass - entities: - - uid: 915 + pos: -35.5,-33.5 + parent: 2 + - uid: 2865 components: - type: Transform - pos: -12.587411,2.5765429 - parent: 818 - - uid: 916 + pos: -35.5,-35.5 + parent: 2 + - uid: 2866 components: - type: Transform - pos: -12.321786,2.7171679 - parent: 818 -- proto: DrinkShaker - entities: - - uid: 914 + pos: -35.5,-36.5 + parent: 2 + - uid: 2867 components: - type: Transform - pos: -12.649911,2.7640429 - parent: 818 -- proto: ExtinguisherCabinetFilled - entities: - - uid: 213 + pos: -35.5,-37.5 + parent: 2 + - uid: 2868 components: - type: Transform - pos: -6.5,-2.5 - parent: 818 - - uid: 816 + pos: -35.5,-38.5 + parent: 2 + - uid: 2869 components: - type: Transform - pos: 5.5,-2.5 - parent: 818 -- proto: FirelockEdge - entities: - - uid: 690 + pos: -35.5,-39.5 + parent: 2 + - uid: 2870 components: - type: Transform - pos: -8.5,-11.5 - parent: 818 - - uid: 694 + pos: -35.5,-40.5 + parent: 2 + - uid: 2871 components: - type: Transform - pos: -12.5,-11.5 - parent: 818 - - uid: 695 + pos: -35.5,-41.5 + parent: 2 + - uid: 2872 components: - type: Transform - rot: 3.141592653589793 rad - pos: -8.5,-16.5 - parent: 818 - - uid: 696 + pos: 11.5,-26.5 + parent: 2 + - uid: 2873 components: - type: Transform - rot: 3.141592653589793 rad - pos: -12.5,-16.5 - parent: 818 - - uid: 697 + pos: -34.5,-41.5 + parent: 2 + - uid: 2874 components: - type: Transform - rot: 3.141592653589793 rad - pos: 7.5,-16.5 - parent: 818 - - uid: 698 + pos: -33.5,-41.5 + parent: 2 + - uid: 2875 components: - type: Transform - rot: 3.141592653589793 rad - pos: 11.5,-16.5 - parent: 818 - - uid: 699 + pos: -32.5,-41.5 + parent: 2 + - uid: 2876 components: - type: Transform - pos: 11.5,-11.5 - parent: 818 - - uid: 700 + pos: -31.5,-41.5 + parent: 2 + - uid: 2877 components: - type: Transform - pos: 7.5,-11.5 - parent: 818 - - uid: 822 + pos: -30.5,-41.5 + parent: 2 + - uid: 2878 components: - type: Transform - pos: 10.5,-3.5 - parent: 818 - - uid: 823 + pos: -29.5,-41.5 + parent: 2 + - uid: 2879 components: - type: Transform - pos: 9.5,-3.5 - parent: 818 - - uid: 824 + pos: -28.5,-41.5 + parent: 2 + - uid: 2880 components: - type: Transform - pos: 8.5,-3.5 - parent: 818 - - uid: 825 + pos: -27.5,-41.5 + parent: 2 + - uid: 2881 components: - type: Transform - rot: 3.141592653589793 rad - pos: 8.5,-5.5 - parent: 818 - - uid: 826 + pos: -26.5,-41.5 + parent: 2 + - uid: 2882 components: - type: Transform - rot: 3.141592653589793 rad - pos: 9.5,-5.5 - parent: 818 - - uid: 827 + pos: -25.5,-41.5 + parent: 2 + - uid: 2883 components: - type: Transform - rot: 3.141592653589793 rad - pos: 10.5,-5.5 - parent: 818 - - uid: 828 + pos: -24.5,-41.5 + parent: 2 + - uid: 2884 components: - type: Transform - pos: -9.5,-3.5 - parent: 818 - - uid: 829 + pos: -23.5,-41.5 + parent: 2 + - uid: 2885 components: - type: Transform - pos: -10.5,-3.5 - parent: 818 - - uid: 830 + pos: -23.5,-37.5 + parent: 2 + - uid: 2886 components: - type: Transform - pos: -11.5,-3.5 - parent: 818 - - uid: 831 + pos: -24.5,-37.5 + parent: 2 + - uid: 2887 components: - type: Transform - rot: 3.141592653589793 rad - pos: -11.5,-5.5 - parent: 818 - - uid: 832 + pos: -25.5,-37.5 + parent: 2 + - uid: 2888 components: - type: Transform - rot: 3.141592653589793 rad - pos: -10.5,-5.5 - parent: 818 - - uid: 833 + pos: -26.5,-37.5 + parent: 2 + - uid: 2889 components: - type: Transform - rot: 3.141592653589793 rad - pos: -9.5,-5.5 - parent: 818 -- proto: FirelockGlass - entities: - - uid: 194 + pos: -27.5,-37.5 + parent: 2 + - uid: 2890 components: - type: Transform - pos: 5.5,0.5 - parent: 818 - - uid: 216 + pos: -28.5,-37.5 + parent: 2 + - uid: 2891 components: - type: Transform - pos: -10.5,2.5 - parent: 818 - - uid: 220 + pos: -29.5,-37.5 + parent: 2 + - uid: 2892 components: - type: Transform - pos: -9.5,2.5 - parent: 818 - - uid: 305 + pos: -30.5,-37.5 + parent: 2 + - uid: 2893 components: - type: Transform - pos: -6.5,0.5 - parent: 818 - - uid: 345 + pos: -31.5,-37.5 + parent: 2 + - uid: 2894 components: - type: Transform - pos: 5.5,-1.5 - parent: 818 - - uid: 346 + pos: -31.5,-36.5 + parent: 2 + - uid: 2895 components: - type: Transform - pos: 5.5,-0.5 - parent: 818 - - uid: 347 + pos: -31.5,-35.5 + parent: 2 + - uid: 2896 components: - type: Transform - pos: -6.5,-1.5 - parent: 818 - - uid: 348 + pos: -31.5,-34.5 + parent: 2 + - uid: 2897 components: - type: Transform - pos: -6.5,-0.5 - parent: 818 - - uid: 586 + pos: -31.5,-33.5 + parent: 2 + - uid: 2898 components: - type: Transform - pos: -11.5,2.5 - parent: 818 - - uid: 716 + pos: -31.5,-32.5 + parent: 2 + - uid: 2899 components: - type: Transform - pos: -12.5,2.5 - parent: 818 -- proto: GeneratorBasic15kW - entities: - - uid: 124 + pos: -31.5,-31.5 + parent: 2 + - uid: 2900 components: - type: Transform - pos: -4.5,8.5 - parent: 818 -- proto: GravityGeneratorMini - entities: - - uid: 808 + pos: -31.5,-30.5 + parent: 2 + - uid: 2901 components: - type: Transform - pos: 1.5,8.5 - parent: 818 -- proto: Grille - entities: - - uid: 96 + pos: -31.5,-29.5 + parent: 2 + - uid: 2902 components: - type: Transform - pos: -14.5,-15.5 - parent: 818 - - uid: 97 + pos: -31.5,-28.5 + parent: 2 + - uid: 2903 components: - type: Transform - pos: -14.5,-14.5 - parent: 818 - - uid: 98 + pos: -31.5,-27.5 + parent: 2 + - uid: 2904 components: - type: Transform - pos: -14.5,-13.5 - parent: 818 - - uid: 99 + pos: -31.5,-26.5 + parent: 2 + - uid: 2905 components: - type: Transform - pos: -6.5,-13.5 - parent: 818 - - uid: 101 + pos: -31.5,-25.5 + parent: 2 + - uid: 2906 components: - type: Transform - pos: 5.5,-15.5 - parent: 818 - - uid: 102 + pos: -31.5,-24.5 + parent: 2 + - uid: 2907 components: - type: Transform - pos: 5.5,-14.5 - parent: 818 - - uid: 103 + pos: -31.5,-23.5 + parent: 2 + - uid: 2908 components: - type: Transform - pos: 13.5,-15.5 - parent: 818 - - uid: 104 + pos: -31.5,-22.5 + parent: 2 + - uid: 2909 components: - type: Transform - pos: 13.5,-14.5 - parent: 818 - - uid: 125 + pos: -31.5,-21.5 + parent: 2 + - uid: 2910 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,-19.5 - parent: 818 - - uid: 126 + pos: -31.5,-20.5 + parent: 2 + - uid: 2911 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,-20.5 - parent: 818 - - uid: 127 + pos: -32.5,-20.5 + parent: 2 + - uid: 2912 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -8.5,-20.5 - parent: 818 - - uid: 128 + pos: -33.5,-20.5 + parent: 2 + - uid: 2913 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -8.5,-21.5 - parent: 818 - - uid: 129 + pos: -34.5,-20.5 + parent: 2 + - uid: 2914 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -9.5,-21.5 - parent: 818 - - uid: 130 + pos: -35.5,-20.5 + parent: 2 + - uid: 2915 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -11.5,-21.5 - parent: 818 - - uid: 131 + pos: -36.5,-20.5 + parent: 2 + - uid: 2916 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -12.5,-21.5 - parent: 818 - - uid: 132 + pos: -37.5,-20.5 + parent: 2 + - uid: 2917 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -12.5,-20.5 - parent: 818 - - uid: 133 + pos: -38.5,-20.5 + parent: 2 + - uid: 2918 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -13.5,-20.5 - parent: 818 - - uid: 134 + pos: -39.5,-20.5 + parent: 2 + - uid: 2919 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -13.5,-19.5 - parent: 818 - - uid: 135 + pos: -40.5,-20.5 + parent: 2 + - uid: 2937 components: - type: Transform - pos: 5.5,-13.5 - parent: 818 - - uid: 136 + pos: 2.5,9.5 + parent: 2 + - uid: 2938 components: - type: Transform - pos: 5.5,-12.5 - parent: 818 - - uid: 137 + pos: 2.5,10.5 + parent: 2 + - uid: 2939 components: - type: Transform - pos: 13.5,-13.5 - parent: 818 - - uid: 138 + pos: 1.5,10.5 + parent: 2 + - uid: 2942 components: - type: Transform - pos: 13.5,-12.5 - parent: 818 - - uid: 139 + pos: 1.5,13.5 + parent: 2 + - uid: 2945 components: - type: Transform - pos: -14.5,-12.5 - parent: 818 - - uid: 140 + pos: 1.5,16.5 + parent: 2 + - uid: 2948 components: - type: Transform - pos: -6.5,-15.5 - parent: 818 - - uid: 141 + pos: 1.5,19.5 + parent: 2 + - uid: 2949 components: - type: Transform - pos: -6.5,-12.5 - parent: 818 - - uid: 142 + pos: 2.5,19.5 + parent: 2 + - uid: 2950 components: - type: Transform - pos: -6.5,-14.5 - parent: 818 - - uid: 143 + pos: 4.5,20.5 + parent: 2 + - uid: 2951 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,-8.5 - parent: 818 - - uid: 144 + pos: -3.5,19.5 + parent: 2 + - uid: 2952 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,-7.5 - parent: 818 - - uid: 145 + pos: 2.5,20.5 + parent: 2 + - uid: 2953 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,-6.5 - parent: 818 - - uid: 147 + pos: -2.5,19.5 + parent: 2 + - uid: 2956 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -13.5,-8.5 - parent: 818 - - uid: 148 + pos: -2.5,16.5 + parent: 2 + - uid: 2959 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -13.5,-7.5 - parent: 818 - - uid: 149 + pos: -2.5,13.5 + parent: 2 + - uid: 2962 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -13.5,-6.5 - parent: 818 - - uid: 151 + pos: -2.5,10.5 + parent: 2 + - uid: 2963 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 12.5,-8.5 - parent: 818 - - uid: 152 + pos: -3.5,9.5 + parent: 2 + - uid: 2964 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 12.5,-7.5 - parent: 818 - - uid: 153 + pos: -3.5,10.5 + parent: 2 + - uid: 2966 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 12.5,-6.5 - parent: 818 - - uid: 155 + pos: -3.5,20.5 + parent: 2 + - uid: 2967 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,-8.5 - parent: 818 - - uid: 156 + pos: -4.5,20.5 + parent: 2 + - uid: 2968 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,-7.5 - parent: 818 - - uid: 157 + pos: 3.5,20.5 + parent: 2 + - uid: 2969 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,-6.5 - parent: 818 - - uid: 167 + pos: -5.5,20.5 + parent: 2 + - uid: 2983 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 12.5,-19.5 - parent: 818 - - uid: 168 + pos: -3.5,24.5 + parent: 2 + - uid: 2984 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 12.5,-20.5 - parent: 818 - - uid: 169 + pos: -4.5,24.5 + parent: 2 + - uid: 2985 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 11.5,-20.5 - parent: 818 - - uid: 170 + pos: -5.5,24.5 + parent: 2 + - uid: 2986 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 11.5,-21.5 - parent: 818 - - uid: 171 + pos: -6.5,24.5 + parent: 2 + - uid: 2987 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 10.5,-21.5 - parent: 818 - - uid: 172 + pos: -6.5,23.5 + parent: 2 + - uid: 2989 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 8.5,-21.5 - parent: 818 - - uid: 173 + pos: -6.5,21.5 + parent: 2 + - uid: 2990 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 7.5,-21.5 - parent: 818 - - uid: 174 + pos: -6.5,20.5 + parent: 2 + - uid: 2991 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 7.5,-20.5 - parent: 818 - - uid: 175 + pos: 3.5,24.5 + parent: 2 + - uid: 2993 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,-20.5 - parent: 818 - - uid: 176 + pos: 4.5,24.5 + parent: 2 + - uid: 2994 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,-19.5 - parent: 818 - - uid: 178 + pos: 5.5,24.5 + parent: 2 + - uid: 2995 components: - type: Transform - pos: 3.5,-2.5 - parent: 818 - - uid: 183 + pos: 5.5,23.5 + parent: 2 + - uid: 2996 components: - type: Transform - pos: -3.5,-2.5 - parent: 818 - - uid: 184 + pos: 5.5,22.5 + parent: 2 + - uid: 2997 components: - type: Transform - pos: 4.5,-2.5 - parent: 818 - - uid: 191 + pos: 5.5,21.5 + parent: 2 + - uid: 2998 components: - type: Transform - pos: -5.5,-2.5 - parent: 818 - - uid: 197 + pos: 5.5,20.5 + parent: 2 + - uid: 3002 components: - type: Transform - pos: -4.5,-2.5 - parent: 818 - - uid: 229 + pos: 4.5,9.5 + parent: 2 + - uid: 3003 components: - type: Transform - pos: 2.5,-2.5 - parent: 818 - - uid: 233 + pos: 4.5,10.5 + parent: 2 + - uid: 3011 components: - type: Transform - pos: -8.5,-4.5 - parent: 818 - - uid: 234 + pos: 4.5,18.5 + parent: 2 + - uid: 3012 components: - type: Transform - pos: 11.5,-4.5 - parent: 818 - - uid: 235 + pos: 4.5,19.5 + parent: 2 + - uid: 3013 components: - type: Transform - pos: 7.5,-4.5 - parent: 818 - - uid: 244 + pos: -5.5,19.5 + parent: 2 + - uid: 3014 components: - type: Transform - pos: -12.5,-4.5 - parent: 818 - - uid: 276 + pos: -5.5,18.5 + parent: 2 + - uid: 3019 components: - type: Transform - pos: 13.5,-2.5 - parent: 818 - - uid: 277 + pos: -6.5,17.5 + parent: 2 + - uid: 3020 components: - type: Transform - pos: 13.5,-1.5 - parent: 818 - - uid: 278 + pos: -6.5,15.5 + parent: 2 + - uid: 3021 components: - type: Transform - pos: 13.5,-0.5 - parent: 818 - - uid: 279 + pos: -6.5,14.5 + parent: 2 + - uid: 3022 components: - type: Transform - pos: 13.5,0.5 - parent: 818 - - uid: 280 + pos: -6.5,13.5 + parent: 2 + - uid: 3023 components: - type: Transform - pos: -14.5,-2.5 - parent: 818 - - uid: 281 + pos: -5.5,9.5 + parent: 2 + - uid: 3038 components: - type: Transform - pos: -14.5,-1.5 - parent: 818 - - uid: 282 + pos: -2.5,24.5 + parent: 2 + - uid: 3039 components: - type: Transform - pos: -14.5,-0.5 - parent: 818 - - uid: 283 + pos: 1.5,24.5 + parent: 2 + - uid: 3040 components: - type: Transform - pos: -14.5,0.5 - parent: 818 - - uid: 318 + pos: -5.5,10.5 + parent: 2 + - uid: 3041 components: - type: Transform - pos: -13.5,3.5 - parent: 818 - - uid: 319 + pos: -6.5,10.5 + parent: 2 + - uid: 3079 components: - type: Transform - pos: -13.5,4.5 - parent: 818 - - uid: 320 + pos: -9.5,28.5 + parent: 2 + - uid: 3080 components: - type: Transform - pos: -12.5,4.5 - parent: 818 - - uid: 321 + pos: -7.5,28.5 + parent: 2 + - uid: 3081 components: - type: Transform - pos: -12.5,5.5 - parent: 818 - - uid: 322 + pos: -6.5,25.5 + parent: 2 + - uid: 3082 components: - type: Transform - pos: -11.5,5.5 - parent: 818 - - uid: 323 + pos: -6.5,28.5 + parent: 2 + - uid: 3083 components: - type: Transform - pos: -10.5,5.5 - parent: 818 - - uid: 324 + pos: -6.5,29.5 + parent: 2 + - uid: 3084 components: - type: Transform - pos: -9.5,5.5 - parent: 818 - - uid: 325 + pos: -6.5,30.5 + parent: 2 + - uid: 3085 components: - type: Transform - pos: -8.5,5.5 - parent: 818 - - uid: 326 + pos: -6.5,31.5 + parent: 2 + - uid: 3086 components: - type: Transform - pos: -8.5,4.5 - parent: 818 - - uid: 327 + pos: -6.5,32.5 + parent: 2 + - uid: 3087 components: - type: Transform - pos: -7.5,4.5 - parent: 818 - - uid: 328 + pos: -5.5,32.5 + parent: 2 + - uid: 3088 components: - type: Transform - pos: -7.5,3.5 - parent: 818 - - uid: 329 + pos: -4.5,32.5 + parent: 2 + - uid: 3089 components: - type: Transform - pos: 6.5,3.5 - parent: 818 - - uid: 330 + pos: -3.5,32.5 + parent: 2 + - uid: 3090 components: - type: Transform - pos: 6.5,4.5 - parent: 818 - - uid: 331 + pos: -2.5,32.5 + parent: 2 + - uid: 3091 components: - type: Transform - pos: 7.5,4.5 - parent: 818 - - uid: 332 + pos: -1.5,32.5 + parent: 2 + - uid: 3092 components: - type: Transform - pos: 7.5,5.5 - parent: 818 - - uid: 333 + pos: -0.5,32.5 + parent: 2 + - uid: 3093 components: - type: Transform - pos: 8.5,5.5 - parent: 818 - - uid: 334 + pos: 0.5,32.5 + parent: 2 + - uid: 3094 components: - type: Transform - pos: 9.5,5.5 - parent: 818 - - uid: 335 + pos: 1.5,32.5 + parent: 2 + - uid: 3095 components: - type: Transform - pos: 10.5,5.5 - parent: 818 - - uid: 336 + pos: 2.5,32.5 + parent: 2 + - uid: 3096 components: - type: Transform - pos: 11.5,5.5 - parent: 818 - - uid: 337 + pos: 3.5,32.5 + parent: 2 + - uid: 3097 components: - type: Transform - pos: 11.5,4.5 - parent: 818 - - uid: 338 + pos: 4.5,32.5 + parent: 2 + - uid: 3098 components: - type: Transform - pos: 12.5,4.5 - parent: 818 - - uid: 339 + pos: 5.5,32.5 + parent: 2 + - uid: 3099 components: - type: Transform - pos: 12.5,3.5 - parent: 818 -- proto: PaperBin10 - entities: - - uid: 737 + pos: 5.5,31.5 + parent: 2 + - uid: 3100 components: - type: Transform - rot: 3.141592653589793 rad - pos: 8.5,4.5 - parent: 818 -- proto: PosterLegitCohibaRobustoAd - entities: - - uid: 927 + pos: 5.5,30.5 + parent: 2 + - uid: 3101 components: - type: Transform - pos: -6.5,1.5 - parent: 818 -- proto: PosterLegitEnlist - entities: - - uid: 926 + pos: 5.5,29.5 + parent: 2 + - uid: 3102 components: - type: Transform - pos: -14.5,1.5 - parent: 818 -- proto: PosterLegitHighClassMartini - entities: - - uid: 925 + pos: 5.5,28.5 + parent: 2 + - uid: 3103 components: - type: Transform - pos: -6.5,-3.5 - parent: 818 -- proto: PosterLegitJustAWeekAway - entities: - - uid: 821 + pos: 5.5,27.5 + parent: 2 + - uid: 3104 components: - type: Transform - pos: 5.5,1.5 - parent: 818 -- proto: PosterLegitNanomichiAd - entities: - - uid: 820 + pos: 5.5,26.5 + parent: 2 + - uid: 3105 components: - type: Transform - pos: -4.5,3.5 - parent: 818 -- proto: PosterLegitNanotrasenLogo - entities: - - uid: 246 + pos: 5.5,25.5 + parent: 2 + - uid: 3107 components: - type: Transform - pos: -7.5,-11.5 - parent: 818 - - uid: 247 + pos: 4.5,-28.5 + parent: 2 + - uid: 3109 components: - type: Transform - pos: -13.5,-4.5 - parent: 818 - - uid: 248 + pos: 1.5,-27.5 + parent: 2 + - uid: 3147 components: - type: Transform - pos: 12.5,-4.5 - parent: 818 - - uid: 249 + pos: -9.5,27.5 + parent: 2 + - uid: 3148 components: - type: Transform - pos: 6.5,-16.5 - parent: 818 - - uid: 250 + pos: -9.5,26.5 + parent: 2 + - uid: 3149 components: - type: Transform - pos: -13.5,-16.5 - parent: 818 - - uid: 251 + pos: -9.5,25.5 + parent: 2 + - uid: 3150 components: - type: Transform - pos: 12.5,-11.5 - parent: 818 - - uid: 922 + pos: -9.5,24.5 + parent: 2 + - uid: 3151 components: - type: Transform - pos: -0.5,6.5 - parent: 818 -- proto: PosterLegitNTTGC - entities: - - uid: 924 + pos: -9.5,23.5 + parent: 2 + - uid: 3152 components: - type: Transform - pos: 5.5,-3.5 - parent: 818 -- proto: PosterLegitPDAAd - entities: - - uid: 920 + pos: -9.5,22.5 + parent: 2 + - uid: 3153 components: - type: Transform - pos: 12.5,-16.5 - parent: 818 -- proto: PosterLegitVacation - entities: - - uid: 921 + pos: -9.5,21.5 + parent: 2 + - uid: 3154 components: - type: Transform - pos: -7.5,-16.5 - parent: 818 -- proto: PosterLegitWorkForAFuture - entities: - - uid: 923 + pos: -9.5,20.5 + parent: 2 + - uid: 3155 components: - type: Transform - pos: 12.5,2.5 - parent: 818 -- proto: PottedPlantRandom - entities: - - uid: 236 + pos: -8.5,20.5 + parent: 2 + - uid: 3156 components: - type: Transform - pos: 7.5,-19.5 - parent: 818 - - uid: 237 + pos: -7.5,20.5 + parent: 2 + - uid: 3157 components: - type: Transform - pos: -12.5,-19.5 - parent: 818 - - uid: 238 + pos: -7.5,32.5 + parent: 2 + - uid: 3158 components: - type: Transform - pos: 11.5,-19.5 - parent: 818 - - uid: 239 + pos: -8.5,32.5 + parent: 2 + - uid: 3159 components: - type: Transform - pos: -8.5,-19.5 - parent: 818 - - uid: 733 + pos: -9.5,30.5 + parent: 2 + - uid: 3160 components: - type: Transform - pos: -8.5,-5.5 - parent: 818 - - uid: 741 + pos: -9.5,31.5 + parent: 2 + - uid: 3161 components: - type: Transform - pos: -7.5,-3.5 - parent: 818 -- proto: PottedPlantRandomPlastic - entities: - - uid: 708 + pos: -9.5,32.5 + parent: 2 + - uid: 3163 components: - type: Transform - pos: -13.5,1.5 - parent: 818 - - uid: 755 + pos: -9.5,29.5 + parent: 2 + - uid: 3180 components: - type: Transform - pos: -13.5,-3.5 - parent: 818 -- proto: Poweredlight - entities: - - uid: 150 + pos: -2.5,31.5 + parent: 2 + - uid: 3181 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: -1.5707963267948966 rad - pos: -8.5,-5.5 - parent: 818 - - uid: 188 + pos: 2.5,31.5 + parent: 2 + - uid: 3182 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: -1.5707963267948966 rad - pos: 11.5,2.5 - parent: 818 - - uid: 195 + pos: 2.5,30.5 + parent: 2 + - uid: 3183 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 3.141592653589793 rad - pos: -2.5,-1.5 - parent: 818 - - uid: 209 + pos: -43.5,5.5 + parent: 2 + - uid: 3185 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: 7.5,-5.5 - parent: 818 - - uid: 341 + pos: -44.5,7.5 + parent: 2 + - uid: 3186 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 3.141592653589793 rad - pos: 1.5,-1.5 - parent: 818 - - uid: 634 + pos: -45.5,4.5 + parent: 2 + - uid: 3187 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 9.5,-16.5 - parent: 818 - - uid: 636 + pos: -43.5,4.5 + parent: 2 + - uid: 3188 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 3.141592653589793 rad - pos: 9.5,-11.5 - parent: 818 - - uid: 649 + pos: -46.5,4.5 + parent: 2 + - uid: 3190 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 3.141592653589793 rad - pos: -10.5,-11.5 - parent: 818 - - uid: 650 + pos: -43.5,7.5 + parent: 2 + - uid: 3191 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -10.5,-16.5 - parent: 818 - - uid: 687 + pos: -45.5,7.5 + parent: 2 + - uid: 3192 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: -13.5,1.5 - parent: 818 - - uid: 701 + pos: -45.5,6.5 + parent: 2 + - uid: 3193 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 3.141592653589793 rad - pos: -6.5,3.5 - parent: 818 - - uid: 702 + pos: -45.5,5.5 + parent: 2 + - uid: 3194 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 3.141592653589793 rad - pos: 5.5,3.5 - parent: 818 - - uid: 715 + pos: -46.5,-0.5 + parent: 2 + - uid: 3200 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -0.5,5.5 - parent: 818 - - uid: 717 + pos: -37.5,-6.5 + parent: 2 + - uid: 3201 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: -1.5707963267948966 rad - pos: -7.5,-3.5 - parent: 818 - - uid: 742 + pos: -38.5,-6.5 + parent: 2 + - uid: 3202 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,-3.5 - parent: 818 -- proto: RandomSpawner - entities: - - uid: 895 + pos: -38.5,-5.5 + parent: 2 + - uid: 3203 components: - type: Transform - pos: -4.5,4.5 - parent: 818 -- proto: RandomVending - entities: - - uid: 835 + pos: -39.5,-5.5 + parent: 2 + - uid: 3204 components: - type: Transform - pos: 9.5,-20.5 - parent: 818 - - uid: 836 + pos: -39.5,-3.5 + parent: 2 + - uid: 3218 components: - type: Transform - pos: -10.5,-20.5 - parent: 818 -- proto: RandomVendingDrinks - entities: - - uid: 692 + pos: -40.5,-9.5 + parent: 2 + - uid: 3219 components: - type: Transform - pos: 11.5,-5.5 - parent: 818 -- proto: RandomVendingSnacks - entities: - - uid: 834 + pos: -39.5,-9.5 + parent: 2 + - uid: 3220 components: - type: Transform - pos: 11.5,-6.5 - parent: 818 -- proto: ReinforcedWindow - entities: - - uid: 19 + pos: -39.5,-12.5 + parent: 2 + - uid: 3221 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,-20.5 - parent: 818 - - uid: 20 + pos: -39.5,-10.5 + parent: 2 + - uid: 3222 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -8.5,-20.5 - parent: 818 - - uid: 21 + pos: -33.5,-10.5 + parent: 2 + - uid: 3223 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -8.5,-21.5 - parent: 818 - - uid: 22 + pos: -33.5,-11.5 + parent: 2 + - uid: 3224 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -9.5,-21.5 - parent: 818 - - uid: 24 + pos: -33.5,-12.5 + parent: 2 + - uid: 3226 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,-19.5 - parent: 818 - - uid: 25 + pos: -33.5,-13.5 + parent: 2 + - uid: 3227 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -11.5,-21.5 - parent: 818 - - uid: 26 + pos: -31.5,-13.5 + parent: 2 + - uid: 3228 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -12.5,-21.5 - parent: 818 - - uid: 27 + pos: -30.5,-13.5 + parent: 2 + - uid: 3232 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -12.5,-20.5 - parent: 818 - - uid: 28 + pos: -35.5,-14.5 + parent: 2 + - uid: 3233 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -13.5,-20.5 - parent: 818 - - uid: 29 + pos: -35.5,-13.5 + parent: 2 + - uid: 3234 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -13.5,-19.5 - parent: 818 - - uid: 30 + pos: -36.5,-13.5 + parent: 2 + - uid: 3235 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 8.5,-21.5 - parent: 818 - - uid: 31 + pos: -37.5,-13.5 + parent: 2 + - uid: 3236 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 7.5,-21.5 - parent: 818 - - uid: 32 + pos: -38.5,-13.5 + parent: 2 + - uid: 3237 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 7.5,-20.5 - parent: 818 - - uid: 33 + pos: -39.5,-13.5 + parent: 2 + - uid: 3238 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,-20.5 - parent: 818 - - uid: 34 + pos: -40.5,-14.5 + parent: 2 + - uid: 3239 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,-19.5 - parent: 818 - - uid: 35 + pos: -39.5,-14.5 + parent: 2 + - uid: 3240 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 10.5,-21.5 - parent: 818 - - uid: 36 + pos: -35.5,-15.5 + parent: 2 + - uid: 3241 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 11.5,-21.5 - parent: 818 - - uid: 37 + pos: -35.5,-16.5 + parent: 2 + - uid: 3242 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 11.5,-20.5 - parent: 818 - - uid: 38 + pos: -34.5,-16.5 + parent: 2 + - uid: 3243 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 12.5,-20.5 - parent: 818 - - uid: 39 + pos: -33.5,-16.5 + parent: 2 + - uid: 3244 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 12.5,-19.5 - parent: 818 - - uid: 91 + pos: -32.5,-16.5 + parent: 2 + - uid: 3245 components: - type: Transform - pos: -14.5,-12.5 - parent: 818 - - uid: 93 + pos: -31.5,-16.5 + parent: 2 + - uid: 3246 components: - type: Transform - pos: -14.5,-14.5 - parent: 818 - - uid: 94 + pos: -31.5,-15.5 + parent: 2 + - uid: 3247 components: - type: Transform - pos: -6.5,-13.5 - parent: 818 - - uid: 95 + pos: -30.5,-15.5 + parent: 2 + - uid: 3252 components: - type: Transform - pos: -6.5,-12.5 - parent: 818 - - uid: 100 + pos: 11.5,-25.5 + parent: 2 + - uid: 3253 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,-8.5 - parent: 818 - - uid: 105 + pos: 11.5,-24.5 + parent: 2 + - uid: 3254 components: - type: Transform - pos: 5.5,-12.5 - parent: 818 - - uid: 106 + pos: 10.5,-26.5 + parent: 2 + - uid: 3256 components: - type: Transform - pos: 5.5,-14.5 - parent: 818 - - uid: 107 + pos: 8.5,-26.5 + parent: 2 + - uid: 3257 components: - type: Transform - pos: 13.5,-12.5 - parent: 818 - - uid: 108 + pos: 8.5,-25.5 + parent: 2 + - uid: 3258 components: - type: Transform - pos: 13.5,-13.5 - parent: 818 - - uid: 109 + pos: 8.5,-24.5 + parent: 2 + - uid: 3272 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 12.5,-8.5 - parent: 818 - - uid: 110 + pos: 33.5,-5.5 + parent: 2 + - uid: 3273 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 12.5,-7.5 - parent: 818 - - uid: 111 + pos: 36.5,-8.5 + parent: 2 + - uid: 3274 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 12.5,-6.5 - parent: 818 - - uid: 113 + pos: 36.5,-7.5 + parent: 2 + - uid: 3275 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,-6.5 - parent: 818 - - uid: 115 + pos: 36.5,-6.5 + parent: 2 + - uid: 3277 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,-7.5 - parent: 818 - - uid: 116 + pos: 34.5,-6.5 + parent: 2 + - uid: 3278 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,-8.5 - parent: 818 - - uid: 117 + pos: 34.5,-5.5 + parent: 2 + - uid: 3279 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,-7.5 - parent: 818 - - uid: 118 + pos: 39.5,-10.5 + parent: 2 + - uid: 3280 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,-6.5 - parent: 818 - - uid: 121 + pos: 39.5,-6.5 + parent: 2 + - uid: 3284 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -13.5,-8.5 - parent: 818 - - uid: 122 + pos: 38.5,-13.5 + parent: 2 + - uid: 3285 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -13.5,-7.5 - parent: 818 - - uid: 123 + pos: 39.5,-13.5 + parent: 2 + - uid: 3286 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -13.5,-6.5 - parent: 818 - - uid: 159 + pos: 40.5,-13.5 + parent: 2 + - uid: 3289 components: - type: Transform - pos: -14.5,-13.5 - parent: 818 - - uid: 160 + pos: 35.5,-15.5 + parent: 2 + - uid: 3290 components: - type: Transform - pos: -14.5,-15.5 - parent: 818 - - uid: 161 + pos: 35.5,-16.5 + parent: 2 + - uid: 3291 components: - type: Transform - pos: -6.5,-14.5 - parent: 818 - - uid: 162 + pos: 36.5,-16.5 + parent: 2 + - uid: 3292 components: - type: Transform - pos: -6.5,-15.5 - parent: 818 - - uid: 163 + pos: 37.5,-16.5 + parent: 2 + - uid: 3293 components: - type: Transform - pos: 5.5,-13.5 - parent: 818 - - uid: 164 + pos: 38.5,-16.5 + parent: 2 + - uid: 3294 components: - type: Transform - pos: 13.5,-15.5 - parent: 818 - - uid: 165 + pos: 39.5,-16.5 + parent: 2 + - uid: 3296 components: - type: Transform - pos: 5.5,-15.5 - parent: 818 - - uid: 166 + pos: 40.5,-16.5 + parent: 2 + - uid: 3298 components: - type: Transform - pos: 13.5,-14.5 - parent: 818 - - uid: 185 + pos: 37.5,-3.5 + parent: 2 + - uid: 3299 components: - type: Transform - pos: -5.5,-2.5 - parent: 818 - - uid: 186 + pos: 37.5,-4.5 + parent: 2 + - uid: 3300 components: - type: Transform - pos: 2.5,-2.5 - parent: 818 - - uid: 192 + pos: 38.5,-4.5 + parent: 2 + - uid: 3312 components: - type: Transform - pos: 4.5,-2.5 - parent: 818 - - uid: 196 + pos: 42.5,5.5 + parent: 2 + - uid: 3313 components: - type: Transform - pos: 3.5,-2.5 - parent: 818 - - uid: 198 + pos: 42.5,6.5 + parent: 2 + - uid: 3314 components: - type: Transform - pos: -3.5,-2.5 - parent: 818 - - uid: 232 + pos: 42.5,7.5 + parent: 2 + - uid: 3315 components: - type: Transform - pos: -4.5,-2.5 - parent: 818 - - uid: 240 + pos: 43.5,7.5 + parent: 2 + - uid: 3316 components: - type: Transform - pos: -12.5,-4.5 - parent: 818 - - uid: 241 + pos: 44.5,7.5 + parent: 2 + - uid: 3317 components: - type: Transform - pos: 11.5,-4.5 - parent: 818 - - uid: 242 + pos: 45.5,7.5 + parent: 2 + - uid: 3318 components: - type: Transform - pos: 7.5,-4.5 - parent: 818 - - uid: 243 + pos: 45.5,5.5 + parent: 2 + - uid: 3319 components: - type: Transform - pos: -8.5,-4.5 - parent: 818 - - uid: 268 + pos: 44.5,5.5 + parent: 2 + - uid: 3320 components: - type: Transform - pos: -14.5,-2.5 - parent: 818 - - uid: 269 + pos: 45.5,6.5 + parent: 2 + - uid: 3322 components: - type: Transform - pos: -14.5,-1.5 - parent: 818 - - uid: 270 + pos: 41.5,6.5 + parent: 2 + - uid: 3323 components: - type: Transform - pos: -14.5,-0.5 - parent: 818 - - uid: 271 + pos: 40.5,6.5 + parent: 2 + - uid: 3324 components: - type: Transform - pos: -14.5,0.5 - parent: 818 - - uid: 272 + pos: 39.5,6.5 + parent: 2 + - uid: 3325 components: - type: Transform - pos: 13.5,-2.5 - parent: 818 - - uid: 273 + pos: 46.5,7.5 + parent: 2 + - uid: 3326 components: - type: Transform - pos: 13.5,-1.5 - parent: 818 - - uid: 274 + pos: 47.5,7.5 + parent: 2 + - uid: 3327 components: - type: Transform - pos: 13.5,-0.5 - parent: 818 - - uid: 275 + pos: 47.5,6.5 + parent: 2 + - uid: 3328 components: - type: Transform - pos: 13.5,0.5 - parent: 818 - - uid: 284 + pos: 47.5,5.5 + parent: 2 + - uid: 3329 components: - type: Transform - pos: -13.5,4.5 - parent: 818 - - uid: 285 + pos: 47.5,4.5 + parent: 2 + - uid: 3330 components: - type: Transform - pos: -12.5,4.5 - parent: 818 - - uid: 286 + pos: 48.5,4.5 + parent: 2 + - uid: 3331 components: - type: Transform - pos: -10.5,5.5 - parent: 818 - - uid: 287 + pos: 48.5,3.5 + parent: 2 + - uid: 3332 components: - type: Transform - pos: -11.5,5.5 - parent: 818 - - uid: 288 + pos: 49.5,3.5 + parent: 2 + - uid: 3333 components: - type: Transform - pos: -8.5,4.5 - parent: 818 - - uid: 289 + pos: 50.5,3.5 + parent: 2 + - uid: 3334 components: - type: Transform - pos: -8.5,5.5 - parent: 818 - - uid: 290 + pos: 51.5,3.5 + parent: 2 + - uid: 3335 components: - type: Transform - pos: -12.5,5.5 - parent: 818 - - uid: 291 + pos: 52.5,3.5 + parent: 2 + - uid: 3336 components: - type: Transform - pos: -13.5,3.5 - parent: 818 - - uid: 292 + pos: 49.5,-0.5 + parent: 2 + - uid: 3337 components: - type: Transform - pos: -9.5,5.5 - parent: 818 - - uid: 293 + pos: 49.5,0.5 + parent: 2 + - uid: 3338 components: - type: Transform - pos: 6.5,3.5 - parent: 818 - - uid: 294 + pos: 49.5,2.5 + parent: 2 + - uid: 3339 components: - type: Transform - pos: -7.5,3.5 - parent: 818 - - uid: 295 + pos: 54.5,-1.5 + parent: 2 + - uid: 3340 components: - type: Transform - pos: -7.5,4.5 - parent: 818 - - uid: 308 + pos: 54.5,3.5 + parent: 2 + - uid: 3341 components: - type: Transform - pos: 6.5,4.5 - parent: 818 - - uid: 309 + pos: 53.5,3.5 + parent: 2 + - uid: 3342 components: - type: Transform - pos: 7.5,4.5 - parent: 818 - - uid: 310 + pos: 54.5,-0.5 + parent: 2 + - uid: 3367 components: - type: Transform - pos: 7.5,5.5 - parent: 818 - - uid: 311 + pos: 10.5,-6.5 + parent: 2 + - uid: 3368 components: - type: Transform - pos: 8.5,5.5 - parent: 818 - - uid: 312 + pos: 11.5,-6.5 + parent: 2 + - uid: 3369 components: - type: Transform - pos: 9.5,5.5 - parent: 818 - - uid: 313 + pos: 12.5,-6.5 + parent: 2 + - uid: 3370 components: - type: Transform - pos: 10.5,5.5 - parent: 818 - - uid: 314 + pos: 11.5,-4.5 + parent: 2 + - uid: 3377 components: - type: Transform - pos: 11.5,5.5 - parent: 818 - - uid: 315 + pos: -11.5,-3.5 + parent: 2 + - uid: 5652 components: - type: Transform - pos: 11.5,4.5 - parent: 818 - - uid: 316 + pos: 5.5,10.5 + parent: 2 + - uid: 5653 components: - type: Transform - pos: 12.5,4.5 - parent: 818 - - uid: 317 + pos: 6.5,10.5 + parent: 2 + - uid: 5654 components: - type: Transform - pos: 12.5,3.5 - parent: 818 -- proto: SignNanotrasen1 - entities: - - uid: 721 + pos: 7.5,10.5 + parent: 2 + - uid: 5655 components: - type: Transform - pos: -2.5,-2.5 - parent: 818 -- proto: SignNanotrasen2 - entities: - - uid: 722 + pos: 8.5,10.5 + parent: 2 + - uid: 5656 components: - type: Transform - pos: -1.5,-2.5 - parent: 818 -- proto: SignNanotrasen3 - entities: - - uid: 719 + pos: 9.5,10.5 + parent: 2 + - uid: 5657 components: - type: Transform - pos: -0.5,-2.5 - parent: 818 -- proto: SignNanotrasen4 - entities: - - uid: 801 + pos: 10.5,10.5 + parent: 2 + - uid: 5658 components: - type: Transform - pos: 0.5,-2.5 - parent: 818 -- proto: SignNanotrasen5 - entities: - - uid: 802 + pos: 11.5,10.5 + parent: 2 + - uid: 5659 components: - type: Transform - pos: 1.5,-2.5 - parent: 818 -- proto: SignNosmoking - entities: - - uid: 720 + pos: 11.5,9.5 + parent: 2 + - uid: 5660 components: - type: Transform - pos: -7.5,2.5 - parent: 818 -- proto: SignShipDock - entities: - - uid: 200 + pos: 11.5,8.5 + parent: 2 + - uid: 5661 components: - type: Transform - pos: 6.5,-4.5 - parent: 818 - - uid: 245 + pos: 11.5,7.5 + parent: 2 + - uid: 5662 components: - type: Transform - pos: -7.5,-4.5 - parent: 818 -- proto: SignSpace - entities: - - uid: 571 + pos: 11.5,6.5 + parent: 2 + - uid: 5663 components: - type: Transform - pos: 12.5,-18.5 - parent: 818 - - uid: 640 + pos: 11.5,5.5 + parent: 2 + - uid: 5664 components: - type: Transform - pos: -7.5,-18.5 - parent: 818 - - uid: 688 + pos: 11.5,4.5 + parent: 2 + - uid: 5665 components: - type: Transform - pos: -13.5,-18.5 - parent: 818 - - uid: 689 + pos: 11.5,3.5 + parent: 2 + - uid: 5666 components: - type: Transform - pos: -7.5,-9.5 - parent: 818 - - uid: 691 + pos: -6.5,12.5 + parent: 2 + - uid: 5669 components: - type: Transform - pos: -13.5,-9.5 - parent: 818 - - uid: 705 + pos: -9.5,11.5 + parent: 2 + - uid: 5670 components: - type: Transform - pos: 12.5,-9.5 - parent: 818 - - uid: 709 + pos: -10.5,11.5 + parent: 2 + - uid: 5671 components: - type: Transform - pos: 6.5,-9.5 - parent: 818 - - uid: 817 + pos: -11.5,11.5 + parent: 2 + - uid: 5672 components: - type: Transform - pos: 6.5,-18.5 - parent: 818 - - uid: 819 + pos: -12.5,11.5 + parent: 2 + - uid: 5673 components: - type: Transform - pos: 4.5,7.5 - parent: 818 -- proto: SinkWide - entities: - - uid: 913 + pos: 6.5,20.5 + parent: 2 + - uid: 5674 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -12.5,3.5 - parent: 818 -- proto: SmallLight - entities: - - uid: 598 + pos: 7.5,20.5 + parent: 2 + - uid: 5675 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -8.5,2.5 - parent: 818 - - uid: 641 + pos: 8.5,20.5 + parent: 2 + - uid: 5676 components: - type: Transform - pos: -14.5,-17.5 - parent: 818 - - uid: 642 + pos: 8.5,19.5 + parent: 2 + - uid: 5677 components: - type: Transform - pos: -6.5,-17.5 - parent: 818 - - uid: 643 + pos: 8.5,18.5 + parent: 2 + - uid: 5678 components: - type: Transform - pos: -14.5,-10.5 - parent: 818 - - uid: 644 + pos: 8.5,17.5 + parent: 2 + - uid: 5679 components: - type: Transform - pos: -6.5,-10.5 - parent: 818 - - uid: 645 + pos: 8.5,16.5 + parent: 2 + - uid: 5680 components: - type: Transform - pos: 5.5,-10.5 - parent: 818 - - uid: 646 + pos: 8.5,15.5 + parent: 2 + - uid: 5681 components: - type: Transform - pos: 13.5,-10.5 - parent: 818 - - uid: 647 + pos: 8.5,14.5 + parent: 2 + - uid: 5682 components: - type: Transform - pos: 13.5,-17.5 - parent: 818 - - uid: 648 + pos: 8.5,13.5 + parent: 2 + - uid: 5683 components: - type: Transform - pos: 5.5,-17.5 - parent: 818 - - uid: 917 + pos: 8.5,12.5 + parent: 2 + - uid: 5684 components: - type: Transform - rot: 3.141592653589793 rad - pos: -0.5,7.5 - parent: 818 -- proto: SMESBasic - entities: - - uid: 805 + pos: 8.5,11.5 + parent: 2 + - uid: 5685 components: - type: Transform - pos: -2.5,8.5 - parent: 818 -- proto: soda_dispenser - entities: - - uid: 795 + pos: -9.5,12.5 + parent: 2 + - uid: 5686 components: - type: Transform - pos: -10.5,4.5 - parent: 818 -- proto: SpaceVillainArcadeFilled - entities: - - uid: 731 + pos: -9.5,13.5 + parent: 2 + - uid: 5687 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -13.5,-2.5 - parent: 818 - - uid: 732 + pos: -9.5,14.5 + parent: 2 + - uid: 5688 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -13.5,-0.5 - parent: 818 -- proto: SpawnPointLatejoin - entities: - - uid: 763 + pos: -9.5,15.5 + parent: 2 + - uid: 5689 components: - type: Transform - pos: -7.5,-15.5 - parent: 818 - - uid: 764 + pos: -9.5,16.5 + parent: 2 + - uid: 5690 components: - type: Transform - pos: -7.5,-14.5 - parent: 818 - - uid: 765 + pos: -9.5,17.5 + parent: 2 + - uid: 5691 components: - type: Transform - pos: -7.5,-13.5 - parent: 818 - - uid: 766 + pos: -9.5,18.5 + parent: 2 + - uid: 5692 components: - type: Transform - pos: -7.5,-12.5 - parent: 818 - - uid: 767 + pos: -9.5,19.5 + parent: 2 + - uid: 7724 components: - type: Transform - pos: -9.5,-15.5 - parent: 818 - - uid: 768 + pos: 5.5,18.5 + parent: 2 + - uid: 7725 components: - type: Transform - pos: -9.5,-14.5 - parent: 818 - - uid: 769 + pos: 5.5,17.5 + parent: 2 + - uid: 7727 components: - type: Transform - pos: -9.5,-13.5 - parent: 818 - - uid: 770 + pos: 5.5,15.5 + parent: 2 + - uid: 7728 components: - type: Transform - pos: -9.5,-12.5 - parent: 818 - - uid: 771 + pos: 5.5,14.5 + parent: 2 + - uid: 7729 components: - type: Transform - pos: -11.5,-15.5 - parent: 818 - - uid: 772 + pos: 5.5,13.5 + parent: 2 + - uid: 7730 components: - type: Transform - pos: -11.5,-14.5 - parent: 818 - - uid: 773 + pos: 5.5,12.5 + parent: 2 + - uid: 7731 components: - type: Transform - pos: -11.5,-13.5 - parent: 818 - - uid: 774 + pos: -6.5,18.5 + parent: 2 + - uid: 7942 components: - type: Transform - pos: -11.5,-12.5 - parent: 818 - - uid: 775 + pos: 43.5,-24.5 + parent: 2 + - uid: 8406 components: - type: Transform - pos: -13.5,-15.5 - parent: 818 - - uid: 776 + pos: -20.5,14.5 + parent: 2 + - uid: 8501 components: - type: Transform - pos: -13.5,-14.5 - parent: 818 - - uid: 777 + pos: -27.5,-21.5 + parent: 2 + - uid: 8636 components: - type: Transform - pos: -13.5,-13.5 - parent: 818 - - uid: 778 + pos: -27.5,-22.5 + parent: 2 + - uid: 8637 components: - type: Transform - pos: -13.5,-12.5 - parent: 818 - - uid: 779 + pos: -27.5,-23.5 + parent: 2 + - uid: 8638 components: - type: Transform - pos: 6.5,-15.5 - parent: 818 - - uid: 780 + pos: -28.5,-23.5 + parent: 2 + - uid: 8639 components: - type: Transform - pos: 6.5,-14.5 - parent: 818 - - uid: 781 + pos: -29.5,-23.5 + parent: 2 + - uid: 8640 components: - type: Transform - pos: 6.5,-13.5 - parent: 818 - - uid: 782 + pos: -30.5,-23.5 + parent: 2 + - uid: 8643 components: - type: Transform - pos: 6.5,-12.5 - parent: 818 - - uid: 783 + pos: 36.5,2.5 + parent: 2 + - uid: 8644 components: - type: Transform - pos: 8.5,-15.5 - parent: 818 - - uid: 784 + pos: 42.5,4.5 + parent: 2 + - uid: 8645 components: - type: Transform - pos: 8.5,-14.5 - parent: 818 - - uid: 785 + pos: 39.5,2.5 + parent: 2 + - uid: 8762 components: - type: Transform - pos: 8.5,-13.5 - parent: 818 - - uid: 786 + pos: -46.5,-24.5 + parent: 2 + - uid: 8763 components: - type: Transform - pos: 8.5,-12.5 - parent: 818 - - uid: 787 + pos: -18.5,-21.5 + parent: 2 + - uid: 8764 components: - type: Transform - pos: 10.5,-15.5 - parent: 818 - - uid: 788 + pos: -19.5,-21.5 + parent: 2 + - uid: 8765 components: - type: Transform - pos: 10.5,-14.5 - parent: 818 - - uid: 789 + pos: -20.5,-21.5 + parent: 2 + - uid: 8766 components: - type: Transform - pos: 10.5,-13.5 - parent: 818 - - uid: 790 + pos: -21.5,-21.5 + parent: 2 + - uid: 8767 components: - type: Transform - pos: 10.5,-12.5 - parent: 818 - - uid: 791 + pos: -22.5,-21.5 + parent: 2 +- proto: WardrobeAtmosphericsFilled + entities: + - uid: 1421 components: - type: Transform - pos: 12.5,-15.5 - parent: 818 - - uid: 792 + pos: 52.5,-19.5 + parent: 2 +- proto: WardrobeCargoFilled + entities: + - uid: 1040 components: - type: Transform - pos: 12.5,-14.5 - parent: 818 - - uid: 793 + pos: 15.5,-3.5 + parent: 2 + - uid: 1041 components: - type: Transform - pos: 12.5,-13.5 - parent: 818 - - uid: 794 + pos: 17.5,-9.5 + parent: 2 + - uid: 1042 components: - type: Transform - pos: 12.5,-12.5 - parent: 818 -- proto: SS13Memorial - entities: - - uid: 594 + pos: 18.5,-9.5 + parent: 2 + - uid: 1084 components: - type: Transform - pos: -0.5,4.5 - parent: 818 -- proto: Stool + pos: 17.5,-3.5 + parent: 2 +- proto: WardrobeChemistryFilled entities: - - uid: 119 + - uid: 1923 components: - type: Transform - rot: 3.141592653589793 rad - pos: -11.5,-20.5 - parent: 818 - - uid: 639 + pos: -30.5,-5.5 + parent: 2 + - uid: 1925 components: - type: Transform - rot: 3.141592653589793 rad - pos: -9.5,-20.5 - parent: 818 - - uid: 723 + pos: -35.5,-7.5 + parent: 2 + - uid: 1926 components: - type: Transform - rot: 3.141592653589793 rad - pos: 10.5,-20.5 - parent: 818 - - uid: 724 + pos: -33.5,-3.5 + parent: 2 + - uid: 1929 components: - type: Transform - rot: 3.141592653589793 rad - pos: 8.5,-20.5 - parent: 818 - - uid: 729 + pos: -30.5,-8.5 + parent: 2 +- proto: WardrobeEngineeringFilled + entities: + - uid: 1383 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -12.5,-1.5 - parent: 818 - - uid: 730 + pos: 49.5,-2.5 + parent: 2 +- proto: WardrobeGrey + entities: + - uid: 360 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -12.5,-2.5 - parent: 818 - - uid: 738 + pos: -6.5,-22.5 + parent: 2 + - uid: 372 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -12.5,-0.5 - parent: 818 - - uid: 740 + pos: -6.5,-10.5 + parent: 2 + - uid: 386 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -12.5,0.5 - parent: 818 -- proto: StoolBar - entities: - - uid: 230 + pos: -10.5,-22.5 + parent: 2 + - uid: 393 components: - type: Transform - rot: 3.141592653589793 rad - pos: -9.5,1.5 - parent: 818 - - uid: 342 + pos: -10.5,-10.5 + parent: 2 + - uid: 398 components: - type: Transform - rot: 3.141592653589793 rad - pos: -11.5,1.5 - parent: 818 - - uid: 433 + pos: -16.5,-10.5 + parent: 2 + - uid: 401 components: - type: Transform - rot: 3.141592653589793 rad - pos: -10.5,1.5 - parent: 818 -- proto: SubstationBasic + pos: -16.5,-22.5 + parent: 2 +- proto: WardrobeMedicalDoctorFilled entities: - - uid: 807 + - uid: 1889 components: - type: Transform - pos: -0.5,8.5 - parent: 818 -- proto: TableCarpet + pos: -14.5,-3.5 + parent: 2 +- proto: WardrobeMixed entities: - - uid: 572 + - uid: 128 components: - type: Transform - pos: 9.5,0.5 - parent: 818 - - uid: 573 + pos: 9.5,-18.5 + parent: 2 + - uid: 220 components: - type: Transform - pos: 9.5,-0.5 - parent: 818 - - uid: 574 + pos: 9.5,-14.5 + parent: 2 +- proto: WardrobeMixedFilled + entities: + - uid: 8715 components: - type: Transform - pos: 10.5,-0.5 - parent: 818 - - uid: 576 + pos: -2.5,-21.5 + parent: 2 +- proto: WardrobeRoboticsFilled + entities: + - uid: 1160 components: - type: Transform - pos: 10.5,0.5 - parent: 818 -- proto: TableReinforced + pos: 14.5,3.5 + parent: 2 +- proto: WardrobeSalvageFilled entities: - - uid: 585 + - uid: 1027 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -9.5,2.5 - parent: 818 - - uid: 707 + pos: 29.5,-9.5 + parent: 2 +- proto: WardrobeScienceFilled + entities: + - uid: 1158 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -10.5,4.5 - parent: 818 - - uid: 751 + pos: 18.5,8.5 + parent: 2 +- proto: WardrobeSecurityFilled + entities: + - uid: 2083 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -11.5,4.5 - parent: 818 - - uid: 796 + pos: -34.5,2.5 + parent: 2 +- proto: WaterCooler + entities: + - uid: 967 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -10.5,2.5 - parent: 818 - - uid: 797 + pos: 20.5,-10.5 + parent: 2 + - uid: 1267 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -12.5,2.5 - parent: 818 - - uid: 798 + pos: 26.5,9.5 + parent: 2 + - uid: 1464 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -11.5,2.5 - parent: 818 -- proto: TableWood - entities: - - uid: 441 + pos: 48.5,-10.5 + parent: 2 + - uid: 1983 components: - type: Transform - pos: 12.5,0.5 - parent: 818 - - uid: 575 + pos: -28.5,-7.5 + parent: 2 + - uid: 2257 components: - type: Transform - pos: 6.5,-2.5 - parent: 818 - - uid: 587 + pos: -29.5,9.5 + parent: 2 + - uid: 2753 components: - type: Transform - pos: 12.5,-2.5 - parent: 818 - - uid: 706 + pos: -54.5,-17.5 + parent: 2 +- proto: WaterTankFull + entities: + - uid: 8585 components: - type: Transform - pos: 9.5,4.5 - parent: 818 - - uid: 750 + pos: 47.5,3.5 + parent: 2 + - uid: 8592 components: - type: Transform - pos: 10.5,4.5 - parent: 818 - - uid: 756 + pos: 12.5,-3.5 + parent: 2 + - uid: 8629 components: - type: Transform - pos: 8.5,4.5 - parent: 818 -- proto: TelecomServerFilled + pos: -40.5,-3.5 + parent: 2 +- proto: WeaponCapacitorRecharger entities: - - uid: 919 + - uid: 2409 components: - type: Transform - pos: -1.5,8.5 - parent: 818 -- proto: VendingMachineBooze + pos: -28.5,17.5 + parent: 2 +- proto: WeaponDisablerPractice entities: - - uid: 753 + - uid: 2414 components: - - type: MetaData - flags: SessionSpecific - type: Transform - pos: -9.5,4.5 - parent: 818 -- proto: VendingMachineCigs + pos: -28.725246,15.634623 + parent: 2 +- proto: WeaponFlareGun entities: - - uid: 744 + - uid: 7913 components: - - type: MetaData - flags: SessionSpecific - type: Transform - pos: -7.5,1.5 - parent: 818 -- proto: VendingMachineCola + pos: 46.435905,-3.308063 + parent: 2 +- proto: WeaponLaserCarbinePractice entities: - - uid: 635 + - uid: 2413 components: - - type: MetaData - flags: SessionSpecific - type: Transform - pos: -12.5,-5.5 - parent: 818 -- proto: VendingMachineGames + pos: -28.548155,15.457631 + parent: 2 +- proto: WeaponRevolverDeckard entities: - - uid: 748 + - uid: 7737 components: - - type: MetaData - flags: SessionSpecific - type: Transform - pos: 6.5,1.5 - parent: 818 -- proto: VendingMachineSnack + pos: -3.537204,14.761298 + parent: 2 +- proto: WeaponTaser entities: - - uid: 637 + - uid: 3057 components: - - type: MetaData - flags: SessionSpecific - type: Transform - pos: -12.5,-6.5 - parent: 818 -- proto: WallRiveted + pos: 2.5111954,11.4883375 + parent: 2 +- proto: WeaponTetherGun entities: - - uid: 10 - components: - - type: MetaData - flags: PvsPriority - - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,-4.5 - parent: 818 - - uid: 23 + - uid: 3059 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: -10.5,-21.5 - parent: 818 - - uid: 40 + pos: -5.5782247,14.510563 + parent: 2 +- proto: WeaponTurretHostile + entities: + - uid: 1237 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: 9.5,-21.5 - parent: 818 - - uid: 41 + pos: 4.5,16.5 + parent: 2 + - uid: 8651 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,-18.5 - parent: 818 - - uid: 42 + pos: -5.5,16.5 + parent: 2 +- proto: Welder + entities: + - uid: 7915 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: 5.5,-18.5 - parent: 818 - - uid: 43 + pos: 46.47083,-16.33574 + parent: 2 + - uid: 8633 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: 4.5,-18.5 - parent: 818 - - uid: 44 + pos: -37.304085,-5.3643703 + parent: 2 +- proto: WelderExperimental + entities: + - uid: 3055 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: 12.5,-18.5 - parent: 818 - - uid: 45 + pos: -3.513493,11.505985 + parent: 2 +- proto: WelderMini + entities: + - uid: 1178 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: 13.5,-18.5 - parent: 818 - - uid: 46 + rot: 3.141592653589793 rad + pos: 14.519531,4.4526725 + parent: 2 +- proto: WeldingFuelTankFull + entities: + - uid: 8584 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: 14.5,-18.5 - parent: 818 - - uid: 47 + pos: 35.5,4.5 + parent: 2 + - uid: 8586 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: -5.5,-18.5 - parent: 818 - - uid: 48 + pos: 40.5,-3.5 + parent: 2 + - uid: 8588 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: -6.5,-18.5 - parent: 818 - - uid: 49 + pos: 4.5,26.5 + parent: 2 +- proto: Window + entities: + - uid: 21 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,-18.5 - parent: 818 - - uid: 50 + pos: 12.5,-14.5 + parent: 2 + - uid: 23 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: -13.5,-18.5 - parent: 818 - - uid: 51 + pos: 12.5,-19.5 + parent: 2 + - uid: 24 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: -14.5,-18.5 - parent: 818 - - uid: 52 + pos: 8.5,-20.5 + parent: 2 + - uid: 25 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: -15.5,-18.5 - parent: 818 - - uid: 53 + pos: 8.5,-19.5 + parent: 2 + - uid: 45 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: -13.5,-9.5 - parent: 818 - - uid: 54 + pos: 12.5,-21.5 + parent: 2 + - uid: 46 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: -14.5,-9.5 - parent: 818 + pos: 8.5,-18.5 + parent: 2 - uid: 55 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: -15.5,-9.5 - parent: 818 + pos: 12.5,-18.5 + parent: 2 - uid: 56 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,-9.5 - parent: 818 + pos: 12.5,-20.5 + parent: 2 - uid: 57 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: -6.5,-9.5 - parent: 818 - - uid: 58 + pos: 8.5,-21.5 + parent: 2 + - uid: 65 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: -5.5,-9.5 - parent: 818 - - uid: 59 + pos: 8.5,-14.5 + parent: 2 + - uid: 67 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: -5.5,-11.5 - parent: 818 - - uid: 60 + pos: 1.5,-19.5 + parent: 2 + - uid: 100 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: -6.5,-11.5 - parent: 818 - - uid: 61 + pos: 12.5,-13.5 + parent: 2 + - uid: 105 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,-11.5 - parent: 818 - - uid: 62 + pos: 12.5,-11.5 + parent: 2 + - uid: 176 + components: + - type: Transform + pos: 12.5,-12.5 + parent: 2 + - uid: 187 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: -13.5,-11.5 - parent: 818 - - uid: 63 + pos: 2.5,-18.5 + parent: 2 + - uid: 188 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: -14.5,-11.5 - parent: 818 - - uid: 64 + pos: 2.5,-14.5 + parent: 2 + - uid: 189 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: -15.5,-11.5 - parent: 818 - - uid: 65 + pos: 1.5,-14.5 + parent: 2 + - uid: 190 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: -13.5,-16.5 - parent: 818 - - uid: 66 + pos: 1.5,-18.5 + parent: 2 + - uid: 209 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: -14.5,-16.5 - parent: 818 - - uid: 67 + pos: 8.5,-11.5 + parent: 2 + - uid: 210 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: -15.5,-16.5 - parent: 818 - - uid: 68 + pos: 8.5,-12.5 + parent: 2 + - uid: 211 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,-16.5 - parent: 818 - - uid: 69 + pos: 8.5,-13.5 + parent: 2 + - uid: 317 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: -6.5,-16.5 - parent: 818 - - uid: 70 + pos: -2.5,-19.5 + parent: 2 + - uid: 318 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: -5.5,-16.5 - parent: 818 - - uid: 71 + pos: -2.5,-18.5 + parent: 2 + - uid: 319 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: 12.5,-16.5 - parent: 818 - - uid: 72 + pos: -3.5,-18.5 + parent: 2 + - uid: 320 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: 13.5,-16.5 - parent: 818 - - uid: 73 + pos: -3.5,-14.5 + parent: 2 + - uid: 321 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: 14.5,-16.5 - parent: 818 - - uid: 74 + pos: -2.5,-14.5 + parent: 2 + - uid: 335 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: 14.5,-11.5 - parent: 818 - - uid: 75 + pos: -17.5,-17.5 + parent: 2 + - uid: 336 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: 13.5,-11.5 - parent: 818 - - uid: 76 + pos: -17.5,-16.5 + parent: 2 + - uid: 337 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: 12.5,-11.5 - parent: 818 - - uid: 77 + pos: -17.5,-15.5 + parent: 2 + - uid: 350 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: 14.5,-9.5 - parent: 818 - - uid: 78 + pos: 16.5,-17.5 + parent: 2 + - uid: 351 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: 13.5,-9.5 - parent: 818 - - uid: 79 + pos: 16.5,-16.5 + parent: 2 + - uid: 352 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: 12.5,-9.5 - parent: 818 - - uid: 80 + pos: 16.5,-15.5 + parent: 2 + - uid: 414 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,-9.5 - parent: 818 - - uid: 81 + pos: 2.5,-20.5 + parent: 2 + - uid: 415 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: 5.5,-9.5 - parent: 818 - - uid: 82 + pos: 3.5,-20.5 + parent: 2 + - uid: 416 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: 4.5,-9.5 - parent: 818 - - uid: 83 + pos: -3.5,-20.5 + parent: 2 + - uid: 417 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,-11.5 - parent: 818 - - uid: 84 + pos: -4.5,-20.5 + parent: 2 + - uid: 540 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: 5.5,-11.5 - parent: 818 - - uid: 85 + pos: 1.5,-12.5 + parent: 2 + - uid: 797 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: 4.5,-11.5 - parent: 818 - - uid: 86 + pos: -2.5,-12.5 + parent: 2 + - uid: 936 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,-16.5 - parent: 818 - - uid: 87 + pos: 27.5,-5.5 + parent: 2 + - uid: 968 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: 5.5,-16.5 - parent: 818 - - uid: 88 + pos: 18.5,-11.5 + parent: 2 + - uid: 969 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: 4.5,-16.5 - parent: 818 - - uid: 89 + pos: 18.5,-12.5 + parent: 2 + - uid: 992 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,-4.5 - parent: 818 - - uid: 90 + pos: 19.5,-6.5 + parent: 2 + - uid: 1033 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: -13.5,-4.5 - parent: 818 - - uid: 92 + pos: 27.5,-6.5 + parent: 2 + - uid: 1050 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: 1.5707963267948966 rad - pos: 12.5,-4.5 - parent: 818 - - uid: 112 + pos: 19.5,-5.5 + parent: 2 + - uid: 1154 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: -1.5707963267948966 rad - pos: 6.5,-5.5 - parent: 818 - - uid: 114 + pos: 19.5,6.5 + parent: 2 + - uid: 1155 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: -1.5707963267948966 rad - pos: -13.5,-5.5 - parent: 818 - - uid: 120 + pos: 19.5,7.5 + parent: 2 + - uid: 1156 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 5.5,1.5 - parent: 818 - - uid: 154 + pos: 19.5,8.5 + parent: 2 + - uid: 1400 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: -1.5707963267948966 rad - pos: 12.5,-5.5 - parent: 818 - - uid: 158 + pos: 52.5,-15.5 + parent: 2 + - uid: 1401 components: - - type: MetaData - flags: PvsPriority - type: Transform - rot: -1.5707963267948966 rad - pos: -7.5,-5.5 - parent: 818 - - uid: 179 + pos: 53.5,-15.5 + parent: 2 + - uid: 1402 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -2.5,-2.5 - parent: 818 - - uid: 180 + pos: 52.5,-7.5 + parent: 2 + - uid: 1403 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 5.5,-3.5 - parent: 818 - - uid: 182 + pos: 53.5,-7.5 + parent: 2 + - uid: 1646 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 1.5,-2.5 - parent: 818 - - uid: 187 + pos: 13.5,-37.5 + parent: 2 + - uid: 1647 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -6.5,-2.5 - parent: 818 - - uid: 189 + pos: 14.5,-37.5 + parent: 2 + - uid: 1648 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 5.5,-4.5 - parent: 818 - - uid: 190 + pos: 15.5,-37.5 + parent: 2 + - uid: 1696 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 1.5,9.5 - parent: 818 - - uid: 193 + pos: -7.5,-7.5 + parent: 2 + - uid: 1697 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 5.5,-2.5 - parent: 818 - - uid: 199 + pos: -6.5,-7.5 + parent: 2 + - uid: 1698 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -6.5,-4.5 - parent: 818 - - uid: 202 + pos: -7.5,-6.5 + parent: 2 + - uid: 1699 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -6.5,1.5 - parent: 818 - - uid: 207 + pos: -8.5,-6.5 + parent: 2 + - uid: 1700 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -6.5,-3.5 - parent: 818 - - uid: 217 + pos: -8.5,-5.5 + parent: 2 + - uid: 1706 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -4.5,3.5 - parent: 818 - - uid: 222 + pos: 7.5,3.5 + parent: 2 + - uid: 1710 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -2.5,9.5 - parent: 818 - - uid: 223 + pos: 4.5,6.5 + parent: 2 + - uid: 1720 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -0.5,9.5 - parent: 818 - - uid: 225 + pos: -8.5,-3.5 + parent: 2 + - uid: 1721 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -1.5,9.5 - parent: 818 - - uid: 231 + pos: -3.5,-7.5 + parent: 2 + - uid: 1722 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -4.5,9.5 - parent: 818 - - uid: 258 + pos: 2.5,-7.5 + parent: 2 + - uid: 1723 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -14.5,-4.5 - parent: 818 - - uid: 259 + pos: 5.5,-7.5 + parent: 2 + - uid: 1724 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 13.5,-3.5 - parent: 818 - - uid: 260 + pos: 6.5,-7.5 + parent: 2 + - uid: 1725 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 13.5,-4.5 - parent: 818 - - uid: 261 + pos: 6.5,-6.5 + parent: 2 + - uid: 1726 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -14.5,-3.5 - parent: 818 - - uid: 262 + pos: 7.5,-6.5 + parent: 2 + - uid: 1727 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 13.5,1.5 - parent: 818 - - uid: 263 + pos: 7.5,-5.5 + parent: 2 + - uid: 1728 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 13.5,2.5 - parent: 818 - - uid: 264 + pos: 7.5,-3.5 + parent: 2 + - uid: 1731 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 12.5,2.5 - parent: 818 - - uid: 265 + pos: 3.5,6.5 + parent: 2 + - uid: 1738 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -14.5,1.5 - parent: 818 - - uid: 266 + pos: -8.5,3.5 + parent: 2 + - uid: 1741 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -14.5,2.5 - parent: 818 - - uid: 267 + pos: -8.5,4.5 + parent: 2 + - uid: 1742 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -13.5,2.5 - parent: 818 - - uid: 304 + pos: -8.5,2.5 + parent: 2 + - uid: 1745 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -7.5,2.5 - parent: 818 - - uid: 306 + pos: 7.5,2.5 + parent: 2 + - uid: 1753 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -6.5,2.5 - parent: 818 - - uid: 307 + pos: 7.5,4.5 + parent: 2 + - uid: 1760 + components: + - type: Transform + pos: -4.5,6.5 + parent: 2 + - uid: 1761 + components: + - type: Transform + pos: -5.5,6.5 + parent: 2 + - uid: 1894 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 6.5,2.5 - parent: 818 - - uid: 340 + pos: -19.5,-7.5 + parent: 2 + - uid: 1895 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 5.5,2.5 - parent: 818 - - uid: 343 + pos: -19.5,-8.5 + parent: 2 + - uid: 1904 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 0.5,9.5 - parent: 818 - - uid: 351 + pos: -29.5,-8.5 + parent: 2 + - uid: 1905 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -3.5,9.5 - parent: 818 - - uid: 401 + pos: -29.5,-7.5 + parent: 2 + - uid: 2046 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -5.5,2.5 - parent: 818 - - uid: 403 + pos: -20.5,-3.5 + parent: 2 + - uid: 2047 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 4.5,9.5 - parent: 818 - - uid: 405 + pos: -20.5,-2.5 + parent: 2 + - uid: 2048 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -1.5,6.5 - parent: 818 - - uid: 406 + pos: -19.5,-2.5 + parent: 2 + - uid: 2049 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 4.5,2.5 - parent: 818 - - uid: 407 + pos: -28.5,-3.5 + parent: 2 + - uid: 2050 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 2.5,6.5 - parent: 818 - - uid: 408 + pos: -28.5,-2.5 + parent: 2 + - uid: 2051 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 2.5,4.5 - parent: 818 - - uid: 409 + pos: -29.5,-2.5 + parent: 2 + - uid: 2133 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 2.5,5.5 - parent: 818 - - uid: 414 + pos: -31.5,8.5 + parent: 2 + - uid: 2134 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 3.5,9.5 - parent: 818 - - uid: 420 + pos: -31.5,7.5 + parent: 2 + - uid: 2135 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 2.5,3.5 - parent: 818 - - uid: 578 + pos: -31.5,6.5 + parent: 2 + - uid: 2136 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -3.5,3.5 - parent: 818 - - uid: 581 + pos: -38.5,5.5 + parent: 2 + - uid: 2137 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -3.5,5.5 - parent: 818 - - uid: 582 + pos: -38.5,4.5 + parent: 2 + - uid: 2180 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -3.5,4.5 - parent: 818 - - uid: 583 + pos: -17.5,6.5 + parent: 2 + - uid: 2181 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -3.5,6.5 - parent: 818 - - uid: 588 + pos: -17.5,7.5 + parent: 2 + - uid: 2182 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -2.5,6.5 - parent: 818 - - uid: 602 + pos: -17.5,8.5 + parent: 2 + - uid: 2249 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 0.5,6.5 - parent: 818 - - uid: 693 + pos: -25.5,11.5 + parent: 2 + - uid: 2250 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 1.5,6.5 - parent: 818 - - uid: 711 + pos: -25.5,12.5 + parent: 2 + - uid: 2251 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -1.5,-2.5 - parent: 818 - - uid: 712 + pos: -25.5,13.5 + parent: 2 + - uid: 2252 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -0.5,-2.5 - parent: 818 - - uid: 713 + pos: -23.5,13.5 + parent: 2 + - uid: 2253 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 0.5,-2.5 - parent: 818 - - uid: 725 + pos: -23.5,12.5 + parent: 2 + - uid: 2254 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -5.5,4.5 - parent: 818 - - uid: 726 + pos: -23.5,11.5 + parent: 2 + - uid: 2306 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -5.5,3.5 - parent: 818 - - uid: 736 + pos: -24.5,11.5 + parent: 2 +- proto: WindowDirectional + entities: + - uid: 64 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -5.5,5.5 - parent: 818 - - uid: 739 + rot: 3.141592653589793 rad + pos: 7.5,-14.5 + parent: 2 + - uid: 104 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -5.5,6.5 - parent: 818 - - uid: 743 + rot: 3.141592653589793 rad + pos: 11.5,-14.5 + parent: 2 + - uid: 197 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -5.5,7.5 - parent: 818 - - uid: 745 + rot: 3.141592653589793 rad + pos: 9.5,-14.5 + parent: 2 + - uid: 200 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -5.5,8.5 - parent: 818 - - uid: 746 + rot: 3.141592653589793 rad + pos: 15.5,-14.5 + parent: 2 + - uid: 201 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 2.5,9.5 - parent: 818 - - uid: 754 + rot: 3.141592653589793 rad + pos: 13.5,-14.5 + parent: 2 + - uid: 202 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 4.5,7.5 - parent: 818 - - uid: 757 + pos: 13.5,-18.5 + parent: 2 + - uid: 203 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 4.5,3.5 - parent: 818 - - uid: 758 + pos: 15.5,-18.5 + parent: 2 + - uid: 204 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 4.5,6.5 - parent: 818 - - uid: 762 + pos: 5.5,-18.5 + parent: 2 + - uid: 205 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 4.5,5.5 - parent: 818 - - uid: 799 + rot: 3.141592653589793 rad + pos: 5.5,-14.5 + parent: 2 + - uid: 206 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: 4.5,4.5 - parent: 818 - - uid: 800 + pos: 11.5,-18.5 + parent: 2 + - uid: 207 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -5.5,9.5 - parent: 818 - - uid: 804 + pos: 9.5,-18.5 + parent: 2 + - uid: 208 components: - - type: MetaData - flags: PvsPriority - type: Transform - pos: -0.5,6.5 - parent: 818 -- proto: WarpPoint - entities: - - uid: 638 + pos: 7.5,-18.5 + parent: 2 + - uid: 1617 components: - type: Transform - pos: -0.5,1.5 - parent: 818 - - type: WarpPoint - location: Terminal -- proto: Windoor - entities: - - uid: 806 + rot: 1.5707963267948966 rad + pos: 9.5,-60.5 + parent: 2 + - uid: 2055 components: - type: Transform - pos: -8.5,2.5 - parent: 818 - - uid: 841 + pos: -27.5,6.5 + parent: 2 + - uid: 2056 components: - type: Transform - pos: -2.5,3.5 - parent: 818 -- proto: WindowReinforcedDirectional - entities: - - uid: 181 + rot: -1.5707963267948966 rad + pos: -27.5,6.5 + parent: 2 + - uid: 2057 components: - type: Transform rot: 1.5707963267948966 rad - pos: -9.5,2.5 - parent: 818 - - uid: 204 + pos: -27.5,6.5 + parent: 2 + - uid: 2058 components: - type: Transform rot: 1.5707963267948966 rad - pos: 0.5,8.5 - parent: 818 - - uid: 600 + pos: -27.5,7.5 + parent: 2 + - uid: 2059 components: - type: Transform rot: -1.5707963267948966 rad - pos: 2.5,8.5 - parent: 818 - - uid: 659 + pos: -27.5,7.5 + parent: 2 + - uid: 2060 components: - type: Transform - pos: 9.5,-15.5 - parent: 818 - - uid: 660 + rot: 3.141592653589793 rad + pos: -27.5,7.5 + parent: 2 + - uid: 2064 components: - type: Transform - rot: 3.141592653589793 rad - pos: 9.5,-12.5 - parent: 818 - - uid: 661 + rot: -1.5707963267948966 rad + pos: -21.5,6.5 + parent: 2 + - uid: 2065 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 9.5,-12.5 - parent: 818 - - uid: 662 + rot: -1.5707963267948966 rad + pos: -21.5,7.5 + parent: 2 + - uid: 2066 + components: + - type: Transform + pos: -21.5,6.5 + parent: 2 + - uid: 2067 components: - type: Transform rot: 1.5707963267948966 rad - pos: 9.5,-13.5 - parent: 818 - - uid: 663 + pos: -21.5,7.5 + parent: 2 + - uid: 2068 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,7.5 + parent: 2 + - uid: 2069 components: - type: Transform rot: 1.5707963267948966 rad - pos: 9.5,-14.5 - parent: 818 - - uid: 664 + pos: -21.5,6.5 + parent: 2 + - uid: 2259 components: - type: Transform rot: 1.5707963267948966 rad - pos: 9.5,-15.5 - parent: 818 - - uid: 665 + pos: -10.5,-60.5 + parent: 2 + - uid: 2615 components: - type: Transform rot: -1.5707963267948966 rad - pos: 9.5,-15.5 - parent: 818 - - uid: 666 + pos: -49.5,2.5 + parent: 2 + - uid: 2616 components: - type: Transform rot: -1.5707963267948966 rad - pos: 9.5,-14.5 - parent: 818 - - uid: 667 + pos: -49.5,4.5 + parent: 2 + - uid: 2756 components: - type: Transform rot: -1.5707963267948966 rad - pos: 9.5,-13.5 - parent: 818 - - uid: 668 + pos: -49.5,-25.5 + parent: 2 + - uid: 2757 components: - type: Transform rot: -1.5707963267948966 rad - pos: 9.5,-12.5 - parent: 818 - - uid: 669 + pos: -49.5,-27.5 + parent: 2 + - uid: 3136 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-61.5 + parent: 2 + - uid: 3287 + components: + - type: Transform + pos: 38.5,-6.5 + parent: 2 + - uid: 3288 components: - type: Transform rot: 3.141592653589793 rad - pos: -10.5,-12.5 - parent: 818 - - uid: 670 + pos: 38.5,-10.5 + parent: 2 + - uid: 6894 components: - type: Transform - pos: -10.5,-15.5 - parent: 818 - - uid: 671 + rot: 1.5707963267948966 rad + pos: 9.5,-62.5 + parent: 2 + - uid: 7584 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -10.5,-15.5 - parent: 818 - - uid: 672 + rot: 1.5707963267948966 rad + pos: 9.5,-59.5 + parent: 2 + - uid: 7585 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -10.5,-14.5 - parent: 818 - - uid: 673 + rot: 1.5707963267948966 rad + pos: 9.5,-61.5 + parent: 2 + - uid: 7587 components: - type: Transform rot: -1.5707963267948966 rad - pos: -10.5,-13.5 - parent: 818 - - uid: 674 + pos: 9.5,-61.5 + parent: 2 + - uid: 7802 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -10.5,-12.5 - parent: 818 - - uid: 675 + rot: 3.141592653589793 rad + pos: -10.5,-59.5 + parent: 2 + - uid: 8273 components: - type: Transform rot: 1.5707963267948966 rad - pos: -10.5,-12.5 - parent: 818 - - uid: 676 + pos: -10.5,-62.5 + parent: 2 + - uid: 8274 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -10.5,-13.5 - parent: 818 - - uid: 677 + pos: -10.5,-62.5 + parent: 2 + - uid: 8275 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -10.5,-14.5 - parent: 818 - - uid: 678 + rot: -1.5707963267948966 rad + pos: -10.5,-61.5 + parent: 2 + - uid: 8276 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -10.5,-15.5 - parent: 818 - - uid: 679 + rot: -1.5707963267948966 rad + pos: -10.5,-60.5 + parent: 2 + - uid: 8277 components: - type: Transform - rot: 3.141592653589793 rad - pos: -9.5,-16.5 - parent: 818 - - uid: 680 + rot: -1.5707963267948966 rad + pos: -10.5,-59.5 + parent: 2 + - uid: 8278 components: - type: Transform - rot: 3.141592653589793 rad - pos: -11.5,-16.5 - parent: 818 - - uid: 681 + rot: 1.5707963267948966 rad + pos: -10.5,-59.5 + parent: 2 + - uid: 8279 components: - type: Transform - pos: -11.5,-11.5 - parent: 818 - - uid: 682 + rot: -1.5707963267948966 rad + pos: -10.5,-62.5 + parent: 2 + - uid: 8280 components: - type: Transform - pos: -9.5,-11.5 - parent: 818 - - uid: 683 + rot: -1.5707963267948966 rad + pos: 9.5,-62.5 + parent: 2 + - uid: 8281 components: - type: Transform - pos: 10.5,-11.5 - parent: 818 - - uid: 684 + rot: -1.5707963267948966 rad + pos: 9.5,-60.5 + parent: 2 + - uid: 8282 components: - type: Transform - pos: 8.5,-11.5 - parent: 818 - - uid: 685 + rot: -1.5707963267948966 rad + pos: 9.5,-59.5 + parent: 2 + - uid: 8283 components: - type: Transform rot: 3.141592653589793 rad - pos: 8.5,-16.5 - parent: 818 - - uid: 686 + pos: 9.5,-59.5 + parent: 2 + - uid: 8284 components: - type: Transform - rot: 3.141592653589793 rad - pos: 10.5,-16.5 - parent: 818 - - uid: 837 + pos: 9.5,-62.5 + parent: 2 +- proto: WindowReinforcedDirectional + entities: + - uid: 2415 components: - type: Transform - pos: 1.5,3.5 - parent: 818 - - uid: 838 + rot: -1.5707963267948966 rad + pos: -25.5,15.5 + parent: 2 + - uid: 2416 components: - type: Transform - pos: 0.5,3.5 - parent: 818 - - uid: 839 + rot: -1.5707963267948966 rad + pos: -25.5,17.5 + parent: 2 +- proto: Wrench + entities: + - uid: 7824 components: - type: Transform - pos: -0.5,3.5 - parent: 818 - - uid: 840 + rot: -1.5707963267948966 rad + pos: 16.606297,2.5340981 + parent: 2 + - uid: 7922 components: - type: Transform - pos: -1.5,3.5 - parent: 818 + pos: 52.155132,-20.448378 + parent: 2 + - uid: 8547 + components: + - type: Transform + pos: 32.404167,2.531181 + parent: 2 +- proto: Zipties + entities: + - uid: 7800 + components: + - type: Transform + pos: -1.1729649,-2.290776 + parent: 2 ... diff --git a/Resources/Maps/Shuttles/DeltaV/barge.yml b/Resources/Maps/Shuttles/DeltaV/barge.yml new file mode 100644 index 00000000000..e64f9315ee1 --- /dev/null +++ b/Resources/Maps/Shuttles/DeltaV/barge.yml @@ -0,0 +1,4367 @@ +meta: + format: 6 + postmapinit: false +tilemap: + 0: Space + 24: FloorDark + 25: FloorDarkDiagonal + 29: FloorDarkMono + 71: FloorSteel + 77: FloorSteelMono + 81: FloorTechMaint + 94: FloorWood + 96: Lattice + 97: Plating +entities: +- proto: "" + entities: + - uid: 1 + components: + - type: MetaData + - type: Transform + - type: MapGrid + chunks: + -1,-1: + ind: -1,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAUQAAAAAAUQAAAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAARwAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAYQAAAAAAYQAAAAAAGAAAAAAAGAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAYQAAAAAAGAAAAAAAGAAAAAAAGAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAGAAAAAAAGAAAAAAAGAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAGAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAARwAAAAAARwAAAAAARwAAAAAARwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAARwAAAAAARwAAAAAARwAAAAAARwAAAAAARwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAGQAAAAAAGQAAAAAAXgAAAAAARwAAAAAARwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAXgAAAAAARwAAAAAARwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAXgAAAAAARwAAAAAARwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAXgAAAAAARwAAAAAARwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAXgAAAAAARwAAAAAARwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAARwAAAAAARwAAAAAARwAAAAAARwAAAAAARwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAARwAAAAAARwAAAAAARwAAAAAARwAAAAAARwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAATQAAAAAAYQAAAAAA + version: 6 + 0,-1: + ind: 0,-1 + tiles: UQAAAAAAUQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARwAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAGAAAAAAAYQAAAAAAYQAAAAAAYAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAGAAAAAAAGAAAAAAAYQAAAAAAYAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAGAAAAAAAGAAAAAAAYQAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAGAAAAAAAYQAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARwAAAAAARwAAAAAARwAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARwAAAAAARwAAAAAARwAAAAAARwAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAATQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAARwAAAAAARwAAAAAATQAAAAAATQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAARwAAAAAARwAAAAAATQAAAAAATQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAARwAAAAAARwAAAAAATQAAAAAATQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAARwAAAAAARwAAAAAATQAAAAAATQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAATQAAAAAATQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAARwAAAAAARwAAAAAARwAAAAAARwAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,0: + ind: -1,0 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAYQAAAAAARwAAAAAARwAAAAAARwAAAAAARwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAYQAAAAAATQAAAAAARwAAAAAARwAAAAAARwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAYQAAAAAATQAAAAAATQAAAAAARwAAAAAARwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAYQAAAAAATQAAAAAATQAAAAAARwAAAAAARwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAHQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAYQAAAAAAGAAAAAAAGAAAAAAAGAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAGAAAAAAAGAAAAAAAGAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAGAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 0,0: + ind: 0,0 + tiles: YQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAARwAAAAAARwAAAAAARwAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAARwAAAAAARwAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAHQAAAAAARwAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,-2: + ind: -1,-2 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAYQAAAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAAAAAAAAAYQAAAAAAUQAAAAAAUQAAAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAA + version: 6 + 0,-2: + ind: 0,-2 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAAAAAUQAAAAAAYQAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + - type: Broadphase + - type: Physics + bodyStatus: InAir + angularDamping: 0.05 + linearDamping: 0.05 + fixedRotation: False + bodyType: Dynamic + - type: Fixtures + fixtures: {} + - type: OccluderTree + - type: Shuttle + - type: GridPathfinding + - type: Gravity + gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + - type: DecalGrid + chunkCollection: + version: 2 + nodes: + - node: + angle: 1.5707963267948966 rad + color: '#FFFFFFFF' + id: Arrows + decals: + 54: 4,3 + 55: 4,2 + 116: 4,0 + - node: + color: '#FFFFFFFF' + id: Bot + decals: + 98: 2,2 + 99: 2,1 + 100: 2,0 + 101: 3,0 + 102: 3,1 + 103: 3,2 + 104: -3,3 + 105: -3,2 + 106: -4,2 + 107: -4,3 + - node: + color: '#FFFFFFFF' + id: BotRight + decals: + 108: 3,-4 + 109: 3,-5 + 110: 3,-6 + 111: 3,-7 + 112: 4,-7 + 113: 4,-6 + 114: 4,-5 + 115: 4,-4 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkLineN + decals: + 56: -3,-16 + 57: -2,-16 + 58: -1,-16 + 59: 0,-16 + 60: 1,-16 + 94: -5,-9 + 95: -4,-9 + 127: -5,-2 + 128: -4,-2 + 129: -3,-2 + 130: -2,-2 + 131: -1,-2 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkLineS + decals: + 40: -4,-10 + 41: -3,-10 + 42: -2,-10 + 43: -1,-10 + 44: 0,-10 + 45: 1,-10 + 46: 2,-10 + 66: -3,-14 + 67: -2,-14 + 68: -1,-14 + 69: 0,-14 + 70: 1,-14 + 87: -5,-3 + 88: -4,-3 + 138: -4,0 + 139: -3,0 + 140: -2,0 + 141: -1,0 + 156: -4,5 + 157: -3,5 + 158: -2,5 + 159: -1,5 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkLineW + decals: + 132: 1,-2 + 133: 1,-3 + 134: 1,-4 + 135: 1,-5 + 136: 1,-6 + 137: 1,-7 + - node: + color: '#A4610696' + id: BrickTileWhiteLineN + decals: + 142: -5,-2 + 143: -4,-2 + 144: -3,-2 + 145: -2,-2 + 146: -1,-2 + 166: -5,-9 + 167: -4,-9 + - node: + color: '#EFB34196' + id: BrickTileWhiteLineN + decals: + 61: -3,-16 + 62: -2,-16 + 63: -1,-16 + 64: 0,-16 + 65: 1,-16 + - node: + color: '#334E6DC8' + id: BrickTileWhiteLineS + decals: + 47: -4,-10 + 48: -3,-10 + 49: -2,-10 + 50: -1,-10 + 51: 0,-10 + 52: 1,-10 + 53: 2,-10 + - node: + color: '#A4610696' + id: BrickTileWhiteLineS + decals: + 147: -4,0 + 148: -3,0 + 149: -2,0 + 150: -1,0 + 160: -4,5 + 161: -3,5 + 162: -2,5 + 163: -1,5 + 164: -5,-3 + 165: -4,-3 + - node: + color: '#EFB34196' + id: BrickTileWhiteLineS + decals: + 71: -3,-14 + 72: -2,-14 + 73: -1,-14 + 74: 0,-14 + 75: 1,-14 + - node: + color: '#A4610696' + id: BrickTileWhiteLineW + decals: + 151: 1,-2 + 152: 1,-4 + 153: 1,-5 + 154: 1,-6 + 155: 1,-7 + - node: + color: '#FFFFFFFF' + id: Delivery + decals: + 117: 4,1 + 118: 0,3 + 119: 0,2 + 120: 0,1 + - node: + color: '#79150096' + id: DiagonalCheckerBOverlay + decals: + 28: -6,-4 + 29: -6,-6 + 30: -6,-7 + 31: -5,-4 + 32: -6,-5 + 33: -5,-5 + 34: -5,-7 + 35: -5,-6 + 36: -4,-7 + 37: -4,-6 + 38: -4,-5 + 39: -4,-4 + 92: -5,-8 + 93: -4,-8 + - node: + color: '#334E6DC8' + id: HalfTileOverlayGreyscale + decals: + 2: -4,-12 + 3: 2,-12 + 4: -3,-12 + 5: -2,-12 + 6: -1,-12 + 7: 0,-12 + 8: 1,-12 + 9: -4,-12 + 10: -3,-12 + 11: -2,-12 + 12: -1,-12 + 13: 0,-12 + 14: 1,-12 + 15: 2,-12 + - node: + color: '#EFB34196' + id: HalfTileOverlayGreyscale180 + decals: + 0: -3,-18 + 1: 1,-18 + - node: + angle: 1.5707963267948966 rad + color: '#FFFFFFFF' + id: LoadingArea + decals: + 121: 2,3 + 122: 2,-1 + - node: + angle: 3.141592653589793 rad + color: '#FFFFFFFF' + id: LoadingArea + decals: + 123: 1,-1 + - node: + angle: 3.141592653589793 rad + color: '#FFFFFFFF' + id: StandClear + decals: + 124: -5,3 + 125: -5,2 + 126: -5,1 + - node: + color: '#79150096' + id: WarnFull + decals: + 16: 5,3 + 17: 5,2 + 18: 5,1 + 19: 5,0 + 20: 5,-4 + 21: 5,-5 + 22: 5,-6 + 23: 5,-7 + 24: -7,-7 + 25: -7,-6 + 26: -7,-5 + 27: -7,-4 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinInnerNe + decals: + 97: -4,-9 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinInnerNw + decals: + 82: -2,-9 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinInnerSe + decals: + 91: -4,-3 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinInnerSw + decals: + 90: -2,-3 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinLineE + decals: + 83: -4,-4 + 84: -4,-5 + 85: -4,-6 + 86: -4,-7 + 96: -4,-8 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinLineN + decals: + 81: -3,-9 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinLineS + decals: + 89: -3,-3 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinLineW + decals: + 76: -2,-4 + 77: -2,-5 + 78: -2,-6 + 79: -2,-7 + 80: -2,-8 + - type: GridAtmosphere + version: 2 + data: + tiles: + -2,-4: + 0: 26146 + -2,-5: + 0: 26342 + -2,-3: + 1: 40960 + 0: 68 + -2,-2: + 1: 52424 + -2,-1: + 1: 2188 + 0: 8704 + -2,0: + 0: 26214 + -1,-4: + 1: 65102 + -1,-3: + 1: 65311 + -1,-2: + 1: 65535 + -1,-1: + 1: 20479 + -1,0: + 1: 65535 + -1,-5: + 1: 61124 + 0: 1 + 0,-4: + 1: 29459 + 0,-3: + 1: 63303 + 0,-5: + 1: 13073 + 0: 132 + 0,-2: + 1: 61156 + 0,-1: + 1: 60942 + 0,0: + 1: 61166 + 1,-4: + 0: 13090 + 1,-3: + 0: 17 + 1: 8192 + 1,-2: + 1: 4368 + 1,-1: + 1: 4353 + 1,0: + 1: 4883 + 1,-5: + 0: 13107 + -2,1: + 0: 17504 + -1,1: + 1: 53236 + -1,2: + 0: 1 + 0,1: + 1: 6094 + 0,2: + 0: 4 + 1,1: + 1: 4128 + -2,-6: + 0: 25668 + 1,-6: + 0: 12561 + uniqueMixes: + - volume: 2500 + immutable: True + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.15 + moles: + - 21.824879 + - 82.10312 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + chunkSize: 4 + - type: RadiationGridResistance + - type: GasTileOverlay + - type: SpreaderGrid + - type: GravityShake + shakeTimes: 10 +- proto: AirCanister + entities: + - uid: 2 + components: + - type: Transform + pos: 1.5,-15.5 + parent: 1 +- proto: AirlockCargoGlass + entities: + - uid: 3 + components: + - type: Transform + pos: -1.5,-0.5 + parent: 1 + - uid: 4 + components: + - type: Transform + pos: -1.5,4.5 + parent: 1 + - uid: 5 + components: + - type: Transform + pos: 1.5,6.5 + parent: 1 + - uid: 6 + components: + - type: Transform + pos: 2.5,-7.5 + parent: 1 +- proto: AirlockCommandGlass + entities: + - uid: 7 + components: + - type: Transform + pos: 2.5,-10.5 + parent: 1 + - uid: 8 + components: + - type: Transform + pos: -3.5,-10.5 + parent: 1 +- proto: AirlockEngineeringGlass + entities: + - uid: 9 + components: + - type: Transform + pos: -1.5,-14.5 + parent: 1 + - uid: 10 + components: + - type: Transform + pos: 0.5,-14.5 + parent: 1 +- proto: AirlockExternalShuttleLocked + entities: + - uid: 11 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,0.5 + parent: 1 + - uid: 12 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,2.5 + parent: 1 +- proto: APCBasic + entities: + - uid: 13 + components: + - type: MetaData + name: Bow APC + - type: Transform + pos: -2.5,7.5 + parent: 1 + - uid: 14 + components: + - type: MetaData + name: Bridge APC + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-14.5 + parent: 1 + - uid: 157 + components: + - type: MetaData + name: Bar APC + - type: Transform + pos: -0.5,-0.5 + parent: 1 +- proto: AtmosDeviceFanTiny + entities: + - uid: 15 + components: + - type: Transform + pos: -4.5,3.5 + parent: 1 + - uid: 16 + components: + - type: Transform + pos: 5.5,-0.5 + parent: 1 + - uid: 17 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,0.5 + parent: 1 + - uid: 18 + components: + - type: Transform + pos: -4.5,2.5 + parent: 1 + - uid: 19 + components: + - type: Transform + pos: 5.5,3.5 + parent: 1 + - uid: 20 + components: + - type: Transform + pos: 5.5,2.5 + parent: 1 +- proto: BarSign + entities: + - uid: 21 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-4.5 + parent: 1 +- proto: BlastDoor + entities: + - uid: 22 + components: + - type: Transform + pos: 5.5,-0.5 + parent: 1 + - uid: 23 + components: + - type: Transform + pos: 5.5,3.5 + parent: 1 + - uid: 24 + components: + - type: Transform + pos: -4.5,3.5 + parent: 1 + - uid: 25 + components: + - type: Transform + pos: -4.5,2.5 + parent: 1 + - uid: 26 + components: + - type: Transform + pos: -4.5,1.5 + parent: 1 +- proto: BoozeDispenser + entities: + - uid: 249 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-5.5 + parent: 1 +- proto: CableApcExtension + entities: + - uid: 27 + components: + - type: Transform + pos: -2.5,-14.5 + parent: 1 + - uid: 28 + components: + - type: Transform + pos: -0.5,7.5 + parent: 1 + - uid: 29 + components: + - type: Transform + pos: 1.5,7.5 + parent: 1 + - uid: 30 + components: + - type: Transform + pos: 2.5,6.5 + parent: 1 + - uid: 31 + components: + - type: Transform + pos: -0.5,6.5 + parent: 1 + - uid: 32 + components: + - type: Transform + pos: 4.5,6.5 + parent: 1 + - uid: 33 + components: + - type: Transform + pos: 2.5,-8.5 + parent: 1 + - uid: 34 + components: + - type: Transform + pos: 2.5,-7.5 + parent: 1 + - uid: 35 + components: + - type: Transform + pos: -4.5,-6.5 + parent: 1 + - uid: 36 + components: + - type: Transform + pos: -0.5,5.5 + parent: 1 + - uid: 37 + components: + - type: Transform + pos: -0.5,4.5 + parent: 1 + - uid: 38 + components: + - type: Transform + pos: -2.5,7.5 + parent: 1 + - uid: 39 + components: + - type: Transform + pos: -1.5,7.5 + parent: 1 + - uid: 40 + components: + - type: Transform + pos: 0.5,7.5 + parent: 1 + - uid: 41 + components: + - type: Transform + pos: 1.5,6.5 + parent: 1 + - uid: 42 + components: + - type: Transform + pos: 3.5,6.5 + parent: 1 + - uid: 43 + components: + - type: Transform + pos: -2.5,6.5 + parent: 1 + - uid: 44 + components: + - type: Transform + pos: -3.5,6.5 + parent: 1 + - uid: 45 + components: + - type: Transform + pos: -4.5,6.5 + parent: 1 + - uid: 46 + components: + - type: Transform + pos: -4.5,3.5 + parent: 1 + - uid: 47 + components: + - type: Transform + pos: -4.5,2.5 + parent: 1 + - uid: 48 + components: + - type: Transform + pos: -4.5,1.5 + parent: 1 + - uid: 49 + components: + - type: Transform + pos: -4.5,0.5 + parent: 1 + - uid: 50 + components: + - type: Transform + pos: -4.5,-0.5 + parent: 1 + - uid: 51 + components: + - type: Transform + pos: -4.5,-1.5 + parent: 1 + - uid: 52 + components: + - type: Transform + pos: -4.5,-2.5 + parent: 1 + - uid: 53 + components: + - type: Transform + pos: -4.5,-3.5 + parent: 1 + - uid: 54 + components: + - type: Transform + pos: -4.5,-4.5 + parent: 1 + - uid: 55 + components: + - type: Transform + pos: -4.5,-5.5 + parent: 1 + - uid: 56 + components: + - type: Transform + pos: -0.5,-7.5 + parent: 1 + - uid: 57 + components: + - type: Transform + pos: 2.5,-6.5 + parent: 1 + - uid: 58 + components: + - type: Transform + pos: 2.5,-5.5 + parent: 1 + - uid: 59 + components: + - type: Transform + pos: 2.5,-4.5 + parent: 1 + - uid: 60 + components: + - type: Transform + pos: 3.5,-4.5 + parent: 1 + - uid: 61 + components: + - type: Transform + pos: 3.5,-1.5 + parent: 1 + - uid: 62 + components: + - type: Transform + pos: 3.5,-0.5 + parent: 1 + - uid: 63 + components: + - type: Transform + pos: 3.5,0.5 + parent: 1 + - uid: 64 + components: + - type: Transform + pos: 3.5,1.5 + parent: 1 + - uid: 65 + components: + - type: Transform + pos: 3.5,2.5 + parent: 1 + - uid: 66 + components: + - type: Transform + pos: 3.5,3.5 + parent: 1 + - uid: 67 + components: + - type: Transform + pos: 2.5,-1.5 + parent: 1 + - uid: 68 + components: + - type: Transform + pos: 1.5,-1.5 + parent: 1 + - uid: 69 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 + - uid: 70 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 + - uid: 71 + components: + - type: Transform + pos: -1.5,-1.5 + parent: 1 + - uid: 72 + components: + - type: Transform + pos: -2.5,-1.5 + parent: 1 + - uid: 73 + components: + - type: Transform + pos: -3.5,-1.5 + parent: 1 + - uid: 74 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 + - uid: 76 + components: + - type: Transform + pos: -0.5,1.5 + parent: 1 + - uid: 77 + components: + - type: Transform + pos: -0.5,2.5 + parent: 1 + - uid: 78 + components: + - type: Transform + pos: -0.5,3.5 + parent: 1 + - uid: 79 + components: + - type: Transform + pos: -0.5,-2.5 + parent: 1 + - uid: 80 + components: + - type: Transform + pos: -0.5,-3.5 + parent: 1 + - uid: 81 + components: + - type: Transform + pos: -0.5,-4.5 + parent: 1 + - uid: 82 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 1 + - uid: 83 + components: + - type: Transform + pos: -0.5,-6.5 + parent: 1 + - uid: 84 + components: + - type: Transform + pos: -0.5,-7.5 + parent: 1 + - uid: 85 + components: + - type: Transform + pos: -0.5,-8.5 + parent: 1 + - uid: 86 + components: + - type: Transform + pos: -2.5,-13.5 + parent: 1 + - uid: 87 + components: + - type: Transform + pos: -2.5,-12.5 + parent: 1 + - uid: 88 + components: + - type: Transform + pos: -3.5,-12.5 + parent: 1 + - uid: 89 + components: + - type: Transform + pos: -3.5,-11.5 + parent: 1 + - uid: 90 + components: + - type: Transform + pos: -3.5,-10.5 + parent: 1 + - uid: 91 + components: + - type: Transform + pos: -3.5,-9.5 + parent: 1 + - uid: 92 + components: + - type: Transform + pos: -4.5,-9.5 + parent: 1 + - uid: 93 + components: + - type: Transform + pos: -5.5,-9.5 + parent: 1 + - uid: 94 + components: + - type: Transform + pos: -1.5,-13.5 + parent: 1 + - uid: 95 + components: + - type: Transform + pos: -0.5,-13.5 + parent: 1 + - uid: 96 + components: + - type: Transform + pos: 0.5,-13.5 + parent: 1 + - uid: 97 + components: + - type: Transform + pos: 1.5,-13.5 + parent: 1 + - uid: 98 + components: + - type: Transform + pos: 1.5,-12.5 + parent: 1 + - uid: 99 + components: + - type: Transform + pos: 1.5,-11.5 + parent: 1 + - uid: 100 + components: + - type: Transform + pos: 2.5,-11.5 + parent: 1 + - uid: 101 + components: + - type: Transform + pos: 2.5,-10.5 + parent: 1 + - uid: 102 + components: + - type: Transform + pos: 2.5,-9.5 + parent: 1 + - uid: 103 + components: + - type: Transform + pos: 3.5,-9.5 + parent: 1 + - uid: 104 + components: + - type: Transform + pos: 4.5,-9.5 + parent: 1 + - uid: 105 + components: + - type: Transform + pos: 0.5,-14.5 + parent: 1 + - uid: 106 + components: + - type: Transform + pos: 0.5,-15.5 + parent: 1 + - uid: 107 + components: + - type: Transform + pos: 0.5,-16.5 + parent: 1 + - uid: 108 + components: + - type: Transform + pos: 0.5,-17.5 + parent: 1 + - uid: 109 + components: + - type: Transform + pos: 0.5,-18.5 + parent: 1 + - uid: 110 + components: + - type: Transform + pos: 1.5,-18.5 + parent: 1 + - uid: 111 + components: + - type: Transform + pos: 2.5,-18.5 + parent: 1 + - uid: 112 + components: + - type: Transform + pos: -1.5,-14.5 + parent: 1 + - uid: 113 + components: + - type: Transform + pos: -1.5,-15.5 + parent: 1 + - uid: 114 + components: + - type: Transform + pos: -1.5,-16.5 + parent: 1 + - uid: 115 + components: + - type: Transform + pos: -1.5,-17.5 + parent: 1 + - uid: 116 + components: + - type: Transform + pos: -1.5,-18.5 + parent: 1 + - uid: 117 + components: + - type: Transform + pos: -2.5,-18.5 + parent: 1 + - uid: 118 + components: + - type: Transform + pos: -3.5,-18.5 + parent: 1 + - uid: 119 + components: + - type: Transform + pos: 1.5,-10.5 + parent: 1 + - uid: 120 + components: + - type: Transform + pos: 0.5,-10.5 + parent: 1 + - uid: 121 + components: + - type: Transform + pos: -0.5,-10.5 + parent: 1 + - uid: 122 + components: + - type: Transform + pos: -1.5,-10.5 + parent: 1 + - uid: 123 + components: + - type: Transform + pos: -2.5,-10.5 + parent: 1 + - uid: 124 + components: + - type: Transform + pos: -1.5,-7.5 + parent: 1 + - uid: 125 + components: + - type: Transform + pos: -3.5,-7.5 + parent: 1 + - uid: 126 + components: + - type: Transform + pos: -2.5,-7.5 + parent: 1 + - uid: 127 + components: + - type: Transform + pos: -4.5,-7.5 + parent: 1 +- proto: CableHV + entities: + - uid: 128 + components: + - type: Transform + pos: 1.5,-17.5 + parent: 1 + - uid: 129 + components: + - type: Transform + pos: 0.5,-17.5 + parent: 1 + - uid: 130 + components: + - type: Transform + pos: -1.5,-17.5 + parent: 1 + - uid: 131 + components: + - type: Transform + pos: -0.5,-17.5 + parent: 1 + - uid: 132 + components: + - type: Transform + pos: 1.5,-16.5 + parent: 1 + - uid: 133 + components: + - type: Transform + pos: 1.5,-16.5 + parent: 1 + - uid: 134 + components: + - type: Transform + pos: -2.5,-17.5 + parent: 1 + - uid: 135 + components: + - type: Transform + pos: -2.5,-16.5 + parent: 1 + - uid: 136 + components: + - type: Transform + pos: -2.5,-15.5 + parent: 1 + - uid: 137 + components: + - type: Transform + pos: -5.5,-22.5 + parent: 1 + - uid: 138 + components: + - type: Transform + pos: -5.5,-21.5 + parent: 1 + - uid: 139 + components: + - type: Transform + pos: -5.5,-20.5 + parent: 1 + - uid: 140 + components: + - type: Transform + pos: -5.5,-19.5 + parent: 1 + - uid: 141 + components: + - type: Transform + pos: -5.5,-18.5 + parent: 1 + - uid: 142 + components: + - type: Transform + pos: -5.5,-17.5 + parent: 1 + - uid: 143 + components: + - type: Transform + pos: -5.5,-16.5 + parent: 1 + - uid: 144 + components: + - type: Transform + pos: -6.5,-20.5 + parent: 1 + - uid: 145 + components: + - type: Transform + pos: -6.5,-19.5 + parent: 1 + - uid: 146 + components: + - type: Transform + pos: -6.5,-18.5 + parent: 1 + - uid: 147 + components: + - type: Transform + pos: -6.5,-17.5 + parent: 1 + - uid: 148 + components: + - type: Transform + pos: -6.5,-16.5 + parent: 1 + - uid: 149 + components: + - type: Transform + pos: -6.5,-15.5 + parent: 1 + - uid: 150 + components: + - type: Transform + pos: -6.5,-14.5 + parent: 1 + - uid: 151 + components: + - type: Transform + pos: -6.5,-13.5 + parent: 1 + - uid: 152 + components: + - type: Transform + pos: -5.5,-13.5 + parent: 1 + - uid: 153 + components: + - type: Transform + pos: -4.5,-13.5 + parent: 1 + - uid: 154 + components: + - type: Transform + pos: -3.5,-13.5 + parent: 1 + - uid: 155 + components: + - type: Transform + pos: -2.5,-13.5 + parent: 1 + - uid: 156 + components: + - type: Transform + pos: -1.5,-13.5 + parent: 1 + - uid: 159 + components: + - type: Transform + pos: -0.5,-13.5 + parent: 1 + - uid: 160 + components: + - type: Transform + pos: 0.5,-13.5 + parent: 1 + - uid: 161 + components: + - type: Transform + pos: 1.5,-13.5 + parent: 1 + - uid: 162 + components: + - type: Transform + pos: 2.5,-13.5 + parent: 1 + - uid: 163 + components: + - type: Transform + pos: 3.5,-13.5 + parent: 1 + - uid: 164 + components: + - type: Transform + pos: 4.5,-13.5 + parent: 1 + - uid: 165 + components: + - type: Transform + pos: 5.5,-13.5 + parent: 1 + - uid: 166 + components: + - type: Transform + pos: 5.5,-14.5 + parent: 1 + - uid: 167 + components: + - type: Transform + pos: 5.5,-15.5 + parent: 1 + - uid: 168 + components: + - type: Transform + pos: 5.5,-16.5 + parent: 1 + - uid: 169 + components: + - type: Transform + pos: 5.5,-17.5 + parent: 1 + - uid: 170 + components: + - type: Transform + pos: 5.5,-18.5 + parent: 1 + - uid: 171 + components: + - type: Transform + pos: 5.5,-19.5 + parent: 1 + - uid: 172 + components: + - type: Transform + pos: 5.5,-20.5 + parent: 1 + - uid: 173 + components: + - type: Transform + pos: 4.5,-16.5 + parent: 1 + - uid: 174 + components: + - type: Transform + pos: 4.5,-17.5 + parent: 1 + - uid: 175 + components: + - type: Transform + pos: 4.5,-18.5 + parent: 1 + - uid: 176 + components: + - type: Transform + pos: 4.5,-19.5 + parent: 1 + - uid: 177 + components: + - type: Transform + pos: 4.5,-20.5 + parent: 1 + - uid: 178 + components: + - type: Transform + pos: 4.5,-21.5 + parent: 1 + - uid: 179 + components: + - type: Transform + pos: 4.5,-22.5 + parent: 1 + - uid: 180 + components: + - type: Transform + pos: 4.5,-23.5 + parent: 1 + - uid: 181 + components: + - type: Transform + pos: -5.5,-23.5 + parent: 1 + - uid: 182 + components: + - type: Transform + pos: 0.5,-14.5 + parent: 1 + - uid: 638 + components: + - type: Transform + pos: 1.5,-15.5 + parent: 1 + - uid: 639 + components: + - type: Transform + pos: 0.5,-15.5 + parent: 1 +- proto: CableMV + entities: + - uid: 183 + components: + - type: Transform + pos: -2.5,-15.5 + parent: 1 + - uid: 184 + components: + - type: Transform + pos: -1.5,-14.5 + parent: 1 + - uid: 185 + components: + - type: Transform + pos: -1.5,-12.5 + parent: 1 + - uid: 186 + components: + - type: Transform + pos: -3.5,-12.5 + parent: 1 + - uid: 187 + components: + - type: Transform + pos: -3.5,-9.5 + parent: 1 + - uid: 188 + components: + - type: Transform + pos: -2.5,-8.5 + parent: 1 + - uid: 189 + components: + - type: Transform + pos: -0.5,-8.5 + parent: 1 + - uid: 190 + components: + - type: Transform + pos: -0.5,-6.5 + parent: 1 + - uid: 191 + components: + - type: Transform + pos: -0.5,3.5 + parent: 1 + - uid: 192 + components: + - type: Transform + pos: -1.5,6.5 + parent: 1 + - uid: 193 + components: + - type: Transform + pos: -2.5,7.5 + parent: 1 + - uid: 194 + components: + - type: Transform + pos: -0.5,-4.5 + parent: 1 + - uid: 195 + components: + - type: Transform + pos: -0.5,-2.5 + parent: 1 + - uid: 196 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 + - uid: 197 + components: + - type: Transform + pos: -0.5,1.5 + parent: 1 + - uid: 198 + components: + - type: Transform + pos: -3.5,-11.5 + parent: 1 + - uid: 199 + components: + - type: Transform + pos: -0.5,5.5 + parent: 1 + - uid: 200 + components: + - type: Transform + pos: -0.5,4.5 + parent: 1 + - uid: 201 + components: + - type: Transform + pos: -1.5,-15.5 + parent: 1 + - uid: 202 + components: + - type: Transform + pos: -1.5,-13.5 + parent: 1 + - uid: 203 + components: + - type: Transform + pos: -2.5,-12.5 + parent: 1 + - uid: 204 + components: + - type: Transform + pos: -3.5,-10.5 + parent: 1 + - uid: 205 + components: + - type: Transform + pos: -3.5,-8.5 + parent: 1 + - uid: 206 + components: + - type: Transform + pos: -1.5,-8.5 + parent: 1 + - uid: 207 + components: + - type: Transform + pos: -0.5,-7.5 + parent: 1 + - uid: 208 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 1 + - uid: 209 + components: + - type: Transform + pos: -0.5,-3.5 + parent: 1 + - uid: 210 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 + - uid: 211 + components: + - type: Transform + pos: -0.5,0.5 + parent: 1 + - uid: 212 + components: + - type: Transform + pos: -0.5,2.5 + parent: 1 + - uid: 213 + components: + - type: Transform + pos: -0.5,6.5 + parent: 1 + - uid: 214 + components: + - type: Transform + pos: -2.5,6.5 + parent: 1 + - uid: 215 + components: + - type: Transform + pos: -2.5,-14.5 + parent: 1 +- proto: CableTerminal + entities: + - uid: 216 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-17.5 + parent: 1 +- proto: Catwalk + entities: + - uid: 217 + components: + - type: Transform + pos: -2.5,-16.5 + parent: 1 + - uid: 218 + components: + - type: Transform + pos: -1.5,-16.5 + parent: 1 + - uid: 219 + components: + - type: Transform + pos: -0.5,-16.5 + parent: 1 + - uid: 220 + components: + - type: Transform + pos: 0.5,-16.5 + parent: 1 + - uid: 221 + components: + - type: Transform + pos: 1.5,-16.5 + parent: 1 +- proto: ChairPilotSeat + entities: + - uid: 222 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-12.5 + parent: 1 + - uid: 223 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-12.5 + parent: 1 + - uid: 224 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-12.5 + parent: 1 +- proto: ComfyChair + entities: + - uid: 225 + components: + - type: Transform + pos: -1.5,7.5 + parent: 1 + - uid: 226 + components: + - type: Transform + pos: 0.5,7.5 + parent: 1 +- proto: ComputerFrame + entities: + - uid: 227 + components: + - type: Transform + pos: 0.5,-11.5 + parent: 1 +- proto: ComputerShuttle + entities: + - uid: 228 + components: + - type: Transform + pos: -0.5,-11.5 + parent: 1 +- proto: ComputerSolarControl + entities: + - uid: 229 + components: + - type: Transform + pos: -0.5,-15.5 + parent: 1 +- proto: ComputerStationRecords + entities: + - uid: 230 + components: + - type: Transform + pos: -1.5,-11.5 + parent: 1 +- proto: ConveyorBelt + entities: + - uid: 231 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,1.5 + parent: 1 + - uid: 232 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,1.5 + parent: 1 + - uid: 233 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,1.5 + parent: 1 + - uid: 234 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,1.5 + parent: 1 + - uid: 235 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-3.5 + parent: 1 + - uid: 236 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-2.5 + parent: 1 + - uid: 237 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-1.5 + parent: 1 + - uid: 238 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-0.5 + parent: 1 + - uid: 239 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-0.5 + parent: 1 + - uid: 240 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,3.5 + parent: 1 + - uid: 241 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,3.5 + parent: 1 + - uid: 242 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,3.5 + parent: 1 + - uid: 243 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-0.5 + parent: 1 + - uid: 244 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-4.5 + parent: 1 + - uid: 245 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-5.5 + parent: 1 +- proto: DrinkGinBottleFull + entities: + - uid: 246 + components: + - type: Transform + pos: -5.610529,-6.2079597 + parent: 1 +- proto: DrinkVacuumFlask + entities: + - uid: 252 + components: + - type: Transform + pos: -0.49386668,7.58623 + parent: 1 +- proto: DrinkWhiskeyBottleFull + entities: + - uid: 253 + components: + - type: Transform + pos: -5.752516,-5.9667106 + parent: 1 +- proto: ExtinguisherCabinetFilled + entities: + - uid: 254 + components: + - type: Transform + pos: -4.5,6.5 + parent: 1 +- proto: FaxMachineBase + entities: + - uid: 255 + components: + - type: Transform + pos: -2.5,-11.5 + parent: 1 + - uid: 256 + components: + - type: Transform + pos: -2.5,-11.5 + parent: 1 +- proto: FireAlarm + entities: + - uid: 257 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-13.5 + parent: 1 + - type: DeviceList + devices: + - 261 + - 260 + - 270 + - 262 + - uid: 258 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,0.5 + parent: 1 + - type: DeviceList + devices: + - 264 + - 265 + - 266 + - 263 + - 262 + - uid: 259 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,4.5 + parent: 1 + - type: DeviceList + devices: + - 269 + - 266 + - 265 + - 264 + - 267 + - 268 +- proto: Firelock + entities: + - uid: 260 + components: + - type: Transform + pos: -1.5,-14.5 + parent: 1 + - uid: 261 + components: + - type: Transform + pos: 0.5,-14.5 + parent: 1 +- proto: FirelockGlass + entities: + - uid: 262 + components: + - type: Transform + pos: -1.5,-0.5 + parent: 1 + - uid: 263 + components: + - type: Transform + pos: -1.5,4.5 + parent: 1 + - uid: 264 + components: + - type: Transform + pos: 0.5,1.5 + parent: 1 + - uid: 265 + components: + - type: Transform + pos: 0.5,2.5 + parent: 1 + - uid: 266 + components: + - type: Transform + pos: 0.5,3.5 + parent: 1 + - uid: 267 + components: + - type: Transform + pos: 2.5,-2.5 + parent: 1 + - uid: 268 + components: + - type: Transform + pos: 1.5,-2.5 + parent: 1 + - uid: 269 + components: + - type: Transform + pos: 1.5,6.5 + parent: 1 + - uid: 270 + components: + - type: Transform + pos: 2.5,-7.5 + parent: 1 +- proto: GasMixerFlipped + entities: + - uid: 271 + components: + - type: Transform + pos: 0.5,-18.5 + parent: 1 + - type: AtmosPipeColor + color: '#03FCD3FF' +- proto: GasPassiveVent + entities: + - uid: 634 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPipeBend + entities: + - uid: 273 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-12.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 274 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-18.5 + parent: 1 + - uid: 275 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-16.5 + parent: 1 + - type: AtmosPipeColor + color: '#03FCD3FF' + - uid: 300 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 306 + components: + - type: Transform + pos: 2.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 630 + components: + - type: Transform + pos: -1.5,-12.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 631 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-12.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 632 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 633 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPipeStraight + entities: + - uid: 75 + components: + - type: Transform + pos: 2.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 158 + components: + - type: Transform + pos: 2.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 247 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 248 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 250 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 251 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 277 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 278 + components: + - type: Transform + pos: -0.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 279 + components: + - type: Transform + pos: -0.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 280 + components: + - type: Transform + pos: -0.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 281 + components: + - type: Transform + pos: 0.5,-14.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 282 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 283 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 284 + components: + - type: Transform + pos: -0.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 285 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 287 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-18.5 + parent: 1 + - uid: 290 + components: + - type: Transform + pos: 0.5,-13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 291 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-12.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 292 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 293 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 294 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 295 + components: + - type: Transform + pos: -0.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 296 + components: + - type: Transform + pos: -0.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 297 + components: + - type: Transform + pos: -0.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 298 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 299 + components: + - type: Transform + pos: -0.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 301 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 304 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 305 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 474 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 475 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 589 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 590 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 591 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 592 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 593 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 594 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 595 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 596 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 603 + components: + - type: Transform + pos: -1.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 604 + components: + - type: Transform + pos: -1.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 605 + components: + - type: Transform + pos: -1.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 606 + components: + - type: Transform + pos: -1.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 613 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-16.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 614 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-15.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 615 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-14.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 619 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 620 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 621 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 622 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 623 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 624 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 625 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 626 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 627 + components: + - type: Transform + pos: -3.5,-10.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 628 + components: + - type: Transform + pos: -3.5,-11.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 629 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-12.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 636 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 637 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 640 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' +- proto: GasPipeTJunction + entities: + - uid: 272 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 276 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 286 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 289 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-17.5 + parent: 1 + - type: AtmosPipeColor + color: '#03FCD3FF' + - uid: 303 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 307 + components: + - type: Transform + pos: 0.5,-12.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 308 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-16.5 + parent: 1 + - type: AtmosPipeColor + color: '#03FCD3FF' + - uid: 309 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 597 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 599 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 600 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 607 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 616 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-13.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 617 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 618 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPort + entities: + - uid: 310 + components: + - type: Transform + pos: 1.5,-15.5 + parent: 1 + - type: AtmosPipeColor + color: '#03FCD3FF' + - uid: 311 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-19.5 + parent: 1 + - uid: 312 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-19.5 + parent: 1 +- proto: GasPressurePump + entities: + - uid: 288 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-15.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' +- proto: GasVentPump + entities: + - uid: 302 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 313 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 314 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-12.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 315 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 316 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 635 + components: + - type: Transform + pos: 2.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 641 + components: + - type: Transform + pos: 3.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 642 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-17.5 + parent: 1 + - type: AtmosPipeColor + color: '#03FCD3FF' +- proto: GasVentScrubber + entities: + - uid: 598 + components: + - type: Transform + pos: -1.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 601 + components: + - type: Transform + pos: 2.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 602 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 608 + components: + - type: Transform + pos: -2.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 609 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 610 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 611 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-13.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 612 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-17.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GravityGeneratorMini + entities: + - uid: 318 + components: + - type: Transform + pos: -2.5,-16.5 + parent: 1 +- proto: Grille + entities: + - uid: 319 + components: + - type: Transform + pos: -0.5,-20.5 + parent: 1 + - uid: 320 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 + - uid: 321 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,1.5 + parent: 1 + - uid: 322 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-2.5 + parent: 1 + - uid: 323 + components: + - type: Transform + pos: 4.5,5.5 + parent: 1 + - uid: 324 + components: + - type: Transform + pos: -2.5,-0.5 + parent: 1 + - uid: 325 + components: + - type: Transform + pos: -2.5,4.5 + parent: 1 + - uid: 326 + components: + - type: Transform + pos: 4.5,-8.5 + parent: 1 + - uid: 327 + components: + - type: Transform + pos: 0.5,-5.5 + parent: 1 + - uid: 328 + components: + - type: Transform + pos: 4.5,-2.5 + parent: 1 + - uid: 329 + components: + - type: Transform + pos: -6.5,-6.5 + parent: 1 + - uid: 330 + components: + - type: Transform + pos: -4.5,5.5 + parent: 1 + - uid: 331 + components: + - type: Transform + pos: 0.5,-4.5 + parent: 1 + - uid: 332 + components: + - type: Transform + pos: -3.5,4.5 + parent: 1 + - uid: 333 + components: + - type: Transform + pos: 1.5,-10.5 + parent: 1 + - uid: 334 + components: + - type: Transform + pos: 0.5,-10.5 + parent: 1 + - uid: 335 + components: + - type: Transform + pos: -0.5,-10.5 + parent: 1 + - uid: 336 + components: + - type: Transform + pos: -1.5,-10.5 + parent: 1 + - uid: 337 + components: + - type: Transform + pos: -2.5,-10.5 + parent: 1 + - uid: 338 + components: + - type: Transform + pos: 3.5,-7.5 + parent: 1 + - uid: 339 + components: + - type: Transform + pos: -5.5,-8.5 + parent: 1 + - uid: 340 + components: + - type: Transform + pos: -0.5,-14.5 + parent: 1 + - uid: 341 + components: + - type: Transform + pos: -3.5,7.5 + parent: 1 + - uid: 342 + components: + - type: Transform + pos: -1.5,8.5 + parent: 1 + - uid: 343 + components: + - type: Transform + pos: -0.5,8.5 + parent: 1 + - uid: 344 + components: + - type: Transform + pos: 0.5,8.5 + parent: 1 + - uid: 345 + components: + - type: Transform + pos: 2.5,7.5 + parent: 1 + - uid: 346 + components: + - type: Transform + pos: -5.5,-1.5 + parent: 1 + - uid: 347 + components: + - type: Transform + pos: -4.5,-11.5 + parent: 1 + - uid: 348 + components: + - type: Transform + pos: -4.5,-12.5 + parent: 1 + - uid: 349 + components: + - type: Transform + pos: 3.5,-11.5 + parent: 1 + - uid: 350 + components: + - type: Transform + pos: 3.5,-12.5 + parent: 1 + - uid: 351 + components: + - type: Transform + pos: -3.5,-16.5 + parent: 1 + - uid: 352 + components: + - type: Transform + pos: -3.5,-17.5 + parent: 1 + - uid: 353 + components: + - type: Transform + pos: 2.5,-16.5 + parent: 1 + - uid: 354 + components: + - type: Transform + pos: 2.5,-17.5 + parent: 1 + - uid: 355 + components: + - type: Transform + pos: -1.5,-20.5 + parent: 1 + - uid: 356 + components: + - type: Transform + pos: 0.5,-20.5 + parent: 1 + - uid: 357 + components: + - type: Transform + pos: -6.5,-5.5 + parent: 1 + - uid: 358 + components: + - type: Transform + pos: -3.5,-0.5 + parent: 1 + - uid: 359 + components: + - type: Transform + pos: -4.5,0.5 + parent: 1 + - uid: 360 + components: + - type: Transform + pos: -6.5,-3.5 + parent: 1 + - uid: 361 + components: + - type: Transform + pos: -6.5,-4.5 + parent: 1 + - uid: 362 + components: + - type: Transform + pos: 5.5,-6.5 + parent: 1 + - uid: 363 + components: + - type: Transform + pos: 5.5,-5.5 + parent: 1 + - uid: 364 + components: + - type: Transform + pos: 5.5,-4.5 + parent: 1 + - uid: 365 + components: + - type: Transform + pos: 5.5,-3.5 + parent: 1 +- proto: Gyroscope + entities: + - uid: 366 + components: + - type: Transform + pos: -3.5,8.5 + parent: 1 +- proto: HandLabeler + entities: + - uid: 367 + components: + - type: Transform + pos: 1.4998418,4.4436564 + parent: 1 +- proto: LockerBoozeFilled + entities: + - uid: 368 + components: + - type: Transform + pos: -5.5,-3.5 + parent: 1 +- proto: LockerChiefEngineer + entities: + - uid: 369 + components: + - type: Transform + pos: -3.5,6.5 + parent: 1 +- proto: LockerSalvageSpecialistFilled + entities: + - uid: 370 + components: + - type: Transform + pos: -2.5,-1.5 + parent: 1 + - uid: 371 + components: + - type: Transform + pos: -3.5,-1.5 + parent: 1 +- proto: Paper + entities: + - uid: 372 + components: + - type: Transform + pos: -2.646852,-13.416534 + parent: 1 + - uid: 373 + components: + - type: Transform + pos: -2.4338698,-13.530063 + parent: 1 +- proto: PlasticFlapsAirtightClear + entities: + - uid: 374 + components: + - type: Transform + pos: -4.5,1.5 + parent: 1 +- proto: PortableGeneratorSuperPacman + entities: + - uid: 317 + components: + - type: Transform + pos: 1.5,-17.5 + parent: 1 +- proto: PowerCellRecharger + entities: + - uid: 375 + components: + - type: Transform + pos: 1.5,-11.5 + parent: 1 +- proto: Poweredlight + entities: + - uid: 376 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-18.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 377 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,8.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 378 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,8.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 379 + components: + - type: Transform + pos: -2.5,6.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 380 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-2.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 381 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-3.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 382 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,0.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 383 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,0.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 384 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-18.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 385 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-18.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 386 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-13.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 387 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-9.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 388 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-9.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 +- proto: PoweredlightSodium + entities: + - uid: 389 + components: + - type: Transform + pos: -6.5,3.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 +- proto: PoweredSmallLight + entities: + - uid: 390 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,5.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 391 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-6.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 +- proto: ReinforcedWindow + entities: + - uid: 392 + components: + - type: Transform + pos: 1.5,-10.5 + parent: 1 + - uid: 393 + components: + - type: Transform + pos: 0.5,-10.5 + parent: 1 + - uid: 394 + components: + - type: Transform + pos: -2.5,-10.5 + parent: 1 + - uid: 395 + components: + - type: Transform + pos: -0.5,-10.5 + parent: 1 + - uid: 396 + components: + - type: Transform + pos: -1.5,-10.5 + parent: 1 + - uid: 397 + components: + - type: Transform + pos: -0.5,-14.5 + parent: 1 +- proto: SheetUranium + entities: + - uid: 473 + components: + - type: Transform + pos: 1.2595522,-16.723648 + parent: 1 +- proto: ShuttersNormal + entities: + - uid: 398 + components: + - type: Transform + pos: 0.5,1.5 + parent: 1 + - uid: 399 + components: + - type: Transform + pos: 0.5,2.5 + parent: 1 + - uid: 400 + components: + - type: Transform + pos: 0.5,3.5 + parent: 1 + - uid: 401 + components: + - type: Transform + pos: 1.5,-2.5 + parent: 1 + - uid: 402 + components: + - type: Transform + pos: 2.5,-2.5 + parent: 1 +- proto: ShuttleWindow + entities: + - uid: 403 + components: + - type: Transform + pos: -6.5,-4.5 + parent: 1 + - uid: 404 + components: + - type: Transform + pos: 5.5,-3.5 + parent: 1 + - uid: 405 + components: + - type: Transform + pos: -4.5,5.5 + parent: 1 + - uid: 406 + components: + - type: Transform + pos: -3.5,7.5 + parent: 1 + - uid: 407 + components: + - type: Transform + pos: 2.5,7.5 + parent: 1 + - uid: 408 + components: + - type: Transform + pos: -6.5,-3.5 + parent: 1 + - uid: 409 + components: + - type: Transform + pos: 0.5,8.5 + parent: 1 + - uid: 410 + components: + - type: Transform + pos: -0.5,8.5 + parent: 1 + - uid: 411 + components: + - type: Transform + pos: -1.5,8.5 + parent: 1 + - uid: 412 + components: + - type: Transform + pos: -5.5,-1.5 + parent: 1 + - uid: 413 + components: + - type: Transform + pos: 5.5,-4.5 + parent: 1 + - uid: 414 + components: + - type: Transform + pos: 5.5,-5.5 + parent: 1 + - uid: 415 + components: + - type: Transform + pos: 5.5,-6.5 + parent: 1 + - uid: 416 + components: + - type: Transform + pos: 4.5,-8.5 + parent: 1 + - uid: 417 + components: + - type: Transform + pos: -4.5,0.5 + parent: 1 + - uid: 418 + components: + - type: Transform + pos: -4.5,-12.5 + parent: 1 + - uid: 419 + components: + - type: Transform + pos: 3.5,-11.5 + parent: 1 + - uid: 420 + components: + - type: Transform + pos: 3.5,-12.5 + parent: 1 + - uid: 421 + components: + - type: Transform + pos: -4.5,-11.5 + parent: 1 + - uid: 422 + components: + - type: Transform + pos: -3.5,-17.5 + parent: 1 + - uid: 423 + components: + - type: Transform + pos: -3.5,-16.5 + parent: 1 + - uid: 424 + components: + - type: Transform + pos: 2.5,-17.5 + parent: 1 + - uid: 425 + components: + - type: Transform + pos: 2.5,-16.5 + parent: 1 + - uid: 426 + components: + - type: Transform + pos: 0.5,-20.5 + parent: 1 + - uid: 427 + components: + - type: Transform + pos: -0.5,-20.5 + parent: 1 + - uid: 428 + components: + - type: Transform + pos: -1.5,-20.5 + parent: 1 + - uid: 429 + components: + - type: Transform + pos: -6.5,-6.5 + parent: 1 + - uid: 430 + components: + - type: Transform + pos: -6.5,-5.5 + parent: 1 + - uid: 431 + components: + - type: Transform + pos: -5.5,-8.5 + parent: 1 + - uid: 432 + components: + - type: Transform + pos: 5.5,1.5 + parent: 1 + - uid: 433 + components: + - type: Transform + pos: 4.5,5.5 + parent: 1 +- proto: SignalButton + entities: + - uid: 434 + components: + - type: Transform + pos: -0.5,4.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 24: + - Pressed: Toggle + 25: + - Pressed: Toggle + 26: + - Pressed: Toggle + - uid: 435 + components: + - type: Transform + pos: -6.5,4.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 24: + - Pressed: Toggle + 25: + - Pressed: Toggle + 26: + - Pressed: Toggle + - uid: 436 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-3.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 401: + - Pressed: Toggle + 402: + - Pressed: Toggle + - uid: 437 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-1.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 22: + - Pressed: Toggle + 23: + - Pressed: Toggle + - uid: 438 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-0.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 401: + - Pressed: Toggle + 402: + - Pressed: Toggle + - uid: 439 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,4.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 400: + - Pressed: Toggle + 399: + - Pressed: Toggle + 398: + - Pressed: Toggle +- proto: SignCargoDock + entities: + - uid: 440 + components: + - type: Transform + pos: 5.5,4.5 + parent: 1 +- proto: SignEngineering + entities: + - uid: 441 + components: + - type: Transform + pos: 1.5,-14.5 + parent: 1 +- proto: SMESBasic + entities: + - uid: 442 + components: + - type: Transform + pos: -2.5,-17.5 + parent: 1 +- proto: SolarPanel + entities: + - uid: 443 + components: + - type: Transform + pos: -6.5,-19.5 + parent: 1 + - uid: 444 + components: + - type: Transform + pos: 4.5,-22.5 + parent: 1 + - uid: 445 + components: + - type: Transform + pos: 4.5,-21.5 + parent: 1 + - uid: 446 + components: + - type: Transform + pos: 4.5,-20.5 + parent: 1 + - uid: 447 + components: + - type: Transform + pos: 4.5,-19.5 + parent: 1 + - uid: 448 + components: + - type: Transform + pos: 4.5,-18.5 + parent: 1 + - uid: 449 + components: + - type: Transform + pos: 4.5,-17.5 + parent: 1 + - uid: 450 + components: + - type: Transform + pos: 4.5,-16.5 + parent: 1 + - uid: 451 + components: + - type: Transform + pos: -6.5,-20.5 + parent: 1 + - uid: 452 + components: + - type: Transform + pos: -5.5,-22.5 + parent: 1 + - uid: 453 + components: + - type: Transform + pos: -5.5,-21.5 + parent: 1 + - uid: 454 + components: + - type: Transform + pos: -5.5,-20.5 + parent: 1 + - uid: 455 + components: + - type: Transform + pos: -5.5,-19.5 + parent: 1 + - uid: 456 + components: + - type: Transform + pos: -5.5,-18.5 + parent: 1 + - uid: 457 + components: + - type: Transform + pos: -5.5,-17.5 + parent: 1 + - uid: 458 + components: + - type: Transform + pos: -5.5,-16.5 + parent: 1 + - uid: 459 + components: + - type: Transform + pos: -6.5,-18.5 + parent: 1 + - uid: 460 + components: + - type: Transform + pos: -6.5,-17.5 + parent: 1 + - uid: 461 + components: + - type: Transform + pos: -6.5,-16.5 + parent: 1 + - uid: 462 + components: + - type: Transform + pos: -6.5,-15.5 + parent: 1 + - uid: 463 + components: + - type: Transform + pos: -6.5,-14.5 + parent: 1 + - uid: 464 + components: + - type: Transform + pos: 5.5,-20.5 + parent: 1 + - uid: 465 + components: + - type: Transform + pos: 5.5,-19.5 + parent: 1 + - uid: 466 + components: + - type: Transform + pos: 5.5,-18.5 + parent: 1 + - uid: 467 + components: + - type: Transform + pos: 5.5,-17.5 + parent: 1 + - uid: 468 + components: + - type: Transform + pos: 5.5,-16.5 + parent: 1 + - uid: 469 + components: + - type: Transform + pos: 5.5,-15.5 + parent: 1 + - uid: 470 + components: + - type: Transform + pos: 5.5,-14.5 + parent: 1 +- proto: SolarTracker + entities: + - uid: 471 + components: + - type: Transform + pos: -5.5,-23.5 + parent: 1 + - uid: 472 + components: + - type: Transform + pos: 4.5,-23.5 + parent: 1 +- proto: StoolBar + entities: + - uid: 476 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-7.5 + parent: 1 + - uid: 477 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-5.5 + parent: 1 + - uid: 478 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-3.5 + parent: 1 + - uid: 479 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-4.5 + parent: 1 + - uid: 480 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-6.5 + parent: 1 +- proto: SubstationBasic + entities: + - uid: 481 + components: + - type: Transform + pos: -2.5,-15.5 + parent: 1 +- proto: TableGlass + entities: + - uid: 482 + components: + - type: Transform + pos: -0.5,7.5 + parent: 1 +- proto: TableReinforced + entities: + - uid: 483 + components: + - type: Transform + pos: 1.5,-11.5 + parent: 1 + - uid: 484 + components: + - type: Transform + pos: -2.5,-11.5 + parent: 1 + - uid: 485 + components: + - type: Transform + pos: 1.5,4.5 + parent: 1 +- proto: TableReinforcedGlass + entities: + - uid: 486 + components: + - type: Transform + pos: -2.5,-13.5 + parent: 1 +- proto: TableWood + entities: + - uid: 487 + components: + - type: Transform + pos: -3.5,-4.5 + parent: 1 + - uid: 488 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-6.5 + parent: 1 + - uid: 489 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-7.5 + parent: 1 + - uid: 490 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-7.5 + parent: 1 + - uid: 491 + components: + - type: Transform + pos: -5.5,-5.5 + parent: 1 + - uid: 492 + components: + - type: Transform + pos: -5.5,-6.5 + parent: 1 + - uid: 493 + components: + - type: Transform + pos: -3.5,-5.5 + parent: 1 + - uid: 494 + components: + - type: Transform + pos: -3.5,-3.5 + parent: 1 +- proto: Thruster + entities: + - uid: 495 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-1.5 + parent: 1 + - uid: 496 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-19.5 + parent: 1 + - uid: 497 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-10.5 + parent: 1 + - uid: 498 + components: + - type: Transform + pos: -5.5,7.5 + parent: 1 + - uid: 499 + components: + - type: Transform + pos: 4.5,7.5 + parent: 1 + - uid: 500 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,8.5 + parent: 1 + - uid: 501 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-8.5 + parent: 1 + - uid: 502 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-19.5 + parent: 1 + - uid: 503 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-10.5 + parent: 1 + - uid: 504 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-8.5 + parent: 1 + - uid: 505 + components: + - type: Transform + pos: 5.5,5.5 + parent: 1 + - uid: 506 + components: + - type: Transform + pos: -6.5,5.5 + parent: 1 +- proto: TwoWayLever + entities: + - uid: 507 + components: + - type: Transform + pos: -3.5,0.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 234: + - Left: Forward + - Right: Reverse + - Middle: Off + 233: + - Left: Forward + - Right: Reverse + - Middle: Off + 232: + - Left: Forward + - Right: Reverse + - Middle: Off + 231: + - Left: Forward + - Right: Reverse + - Middle: Off + - uid: 508 + components: + - type: Transform + pos: -6.5,0.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 231: + - Left: Forward + - Right: Reverse + - Middle: Off + 232: + - Left: Forward + - Right: Reverse + - Middle: Off + 233: + - Left: Forward + - Right: Reverse + - Middle: Off + 234: + - Left: Forward + - Right: Reverse + - Middle: Off + - uid: 509 + components: + - type: Transform + pos: 4.5,-1.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 243: + - Left: Forward + - Right: Reverse + - Middle: Off + 238: + - Left: Forward + - Right: Reverse + - Middle: Off + 239: + - Left: Forward + - Right: Reverse + - Middle: Off + 242: + - Left: Forward + - Right: Reverse + - Middle: Off + 240: + - Left: Forward + - Right: Reverse + - Middle: Off + 241: + - Left: Forward + - Right: Reverse + - Middle: Off + - uid: 510 + components: + - type: Transform + pos: 1.5,-6.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 245: + - Left: Forward + - Right: Reverse + - Middle: Off + 244: + - Left: Forward + - Right: Reverse + - Middle: Off + 235: + - Left: Forward + - Right: Reverse + - Middle: Off + 236: + - Left: Forward + - Right: Reverse + - Middle: Off + 237: + - Left: Forward + - Right: Reverse + - Middle: Off +- proto: VendingMachineBoozeUnlocked + entities: + - uid: 511 + components: + - type: Transform + pos: -5.5,-4.5 + parent: 1 +- proto: VendingMachineEngiDrobe + entities: + - uid: 512 + components: + - type: Transform + pos: 3.5,5.5 + parent: 1 +- proto: VendingMachineSalvage + entities: + - uid: 513 + components: + - type: Transform + pos: -4.5,-1.5 + parent: 1 +- proto: WallShuttle + entities: + - uid: 514 + components: + - type: Transform + pos: 4.5,4.5 + parent: 1 + - uid: 515 + components: + - type: Transform + pos: -5.5,-0.5 + parent: 1 + - uid: 516 + components: + - type: Transform + pos: 2.5,-15.5 + parent: 1 + - uid: 517 + components: + - type: Transform + pos: -0.5,-19.5 + parent: 1 + - uid: 518 + components: + - type: Transform + pos: 0.5,0.5 + parent: 1 + - uid: 519 + components: + - type: Transform + pos: 5.5,-1.5 + parent: 1 + - uid: 520 + components: + - type: Transform + pos: 0.5,-2.5 + parent: 1 + - uid: 521 + components: + - type: Transform + pos: 0.5,4.5 + parent: 1 + - uid: 522 + components: + - type: Transform + pos: 0.5,-6.5 + parent: 1 + - uid: 523 + components: + - type: Transform + pos: -2.5,8.5 + parent: 1 + - uid: 524 + components: + - type: Transform + pos: -0.5,4.5 + parent: 1 + - uid: 525 + components: + - type: Transform + pos: -5.5,-2.5 + parent: 1 + - uid: 526 + components: + - type: Transform + pos: 5.5,-2.5 + parent: 1 + - uid: 527 + components: + - type: Transform + pos: -4.5,-9.5 + parent: 1 + - uid: 528 + components: + - type: Transform + pos: -6.5,4.5 + parent: 1 + - uid: 529 + components: + - type: Transform + pos: -4.5,7.5 + parent: 1 + - uid: 530 + components: + - type: Transform + pos: -4.5,6.5 + parent: 1 + - uid: 531 + components: + - type: Transform + pos: 0.5,-7.5 + parent: 1 + - uid: 532 + components: + - type: Transform + pos: 1.5,8.5 + parent: 1 + - uid: 533 + components: + - type: Transform + pos: 1.5,7.5 + parent: 1 + - uid: 534 + components: + - type: Transform + pos: 3.5,6.5 + parent: 1 + - uid: 535 + components: + - type: Transform + pos: 3.5,7.5 + parent: 1 + - uid: 536 + components: + - type: Transform + pos: 4.5,6.5 + parent: 1 + - uid: 537 + components: + - type: Transform + pos: -6.5,-2.5 + parent: 1 + - uid: 538 + components: + - type: Transform + pos: -4.5,-0.5 + parent: 1 + - uid: 539 + components: + - type: Transform + pos: 1.5,-7.5 + parent: 1 + - uid: 540 + components: + - type: Transform + pos: 0.5,5.5 + parent: 1 + - uid: 541 + components: + - type: Transform + pos: 4.5,-7.5 + parent: 1 + - uid: 542 + components: + - type: Transform + pos: 0.5,-0.5 + parent: 1 + - uid: 543 + components: + - type: Transform + pos: -6.5,-7.5 + parent: 1 + - uid: 544 + components: + - type: Transform + pos: -5.5,-7.5 + parent: 1 + - uid: 545 + components: + - type: Transform + pos: -5.5,-9.5 + parent: 1 + - uid: 546 + components: + - type: Transform + pos: 1.5,-19.5 + parent: 1 + - uid: 547 + components: + - type: Transform + pos: 4.5,-9.5 + parent: 1 + - uid: 548 + components: + - type: Transform + pos: 3.5,-9.5 + parent: 1 + - uid: 549 + components: + - type: Transform + pos: 3.5,-10.5 + parent: 1 + - uid: 550 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 + - uid: 551 + components: + - type: Transform + pos: 1.5,5.5 + parent: 1 + - uid: 552 + components: + - type: Transform + pos: -2.5,-20.5 + parent: 1 + - uid: 553 + components: + - type: Transform + pos: 1.5,-20.5 + parent: 1 + - uid: 554 + components: + - type: Transform + pos: -3.5,-15.5 + parent: 1 + - uid: 555 + components: + - type: Transform + pos: -2.5,-14.5 + parent: 1 + - uid: 556 + components: + - type: Transform + pos: 1.5,-18.5 + parent: 1 + - uid: 557 + components: + - type: Transform + pos: 2.5,-18.5 + parent: 1 + - uid: 558 + components: + - type: Transform + pos: -2.5,-19.5 + parent: 1 + - uid: 559 + components: + - type: Transform + pos: -5.5,4.5 + parent: 1 + - uid: 560 + components: + - type: Transform + pos: -3.5,-18.5 + parent: 1 + - uid: 561 + components: + - type: Transform + pos: 5.5,4.5 + parent: 1 + - uid: 562 + components: + - type: Transform + pos: 5.5,-7.5 + parent: 1 + - uid: 563 + components: + - type: Transform + pos: 1.5,-14.5 + parent: 1 + - uid: 564 + components: + - type: Transform + pos: 2.5,-14.5 + parent: 1 + - uid: 565 + components: + - type: Transform + pos: 2.5,-13.5 + parent: 1 + - uid: 566 + components: + - type: Transform + pos: -4.5,-13.5 + parent: 1 + - uid: 567 + components: + - type: Transform + pos: -3.5,-13.5 + parent: 1 + - uid: 568 + components: + - type: Transform + pos: 3.5,-13.5 + parent: 1 + - uid: 569 + components: + - type: Transform + pos: -3.5,-14.5 + parent: 1 + - uid: 570 + components: + - type: Transform + pos: -2.5,-18.5 + parent: 1 + - uid: 571 + components: + - type: Transform + pos: -2.5,7.5 + parent: 1 + - uid: 572 + components: + - type: Transform + pos: 0.5,-3.5 + parent: 1 + - uid: 573 + components: + - type: Transform + pos: -4.5,-10.5 + parent: 1 + - uid: 574 + components: + - type: Transform + pos: -4.5,4.5 + parent: 1 +- proto: WardrobeSalvageFilled + entities: + - uid: 575 + components: + - type: Transform + pos: 1.5,-13.5 + parent: 1 +- proto: WarpPoint + entities: + - uid: 643 + components: + - type: Transform + pos: 0.5,-2.5 + parent: 1 + - type: WarpPoint + location: The Barge +- proto: WaterCooler + entities: + - uid: 576 + components: + - type: Transform + pos: -2.5,6.5 + parent: 1 +- proto: WindoorBarLocked + entities: + - uid: 577 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-3.5 + parent: 1 +- proto: Window + entities: + - uid: 578 + components: + - type: Transform + pos: -3.5,4.5 + parent: 1 + - uid: 579 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 + - uid: 580 + components: + - type: Transform + pos: -2.5,-0.5 + parent: 1 + - uid: 581 + components: + - type: Transform + pos: 4.5,-2.5 + parent: 1 + - uid: 582 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-2.5 + parent: 1 + - uid: 583 + components: + - type: Transform + pos: -3.5,-0.5 + parent: 1 + - uid: 584 + components: + - type: Transform + pos: 0.5,-4.5 + parent: 1 + - uid: 585 + components: + - type: Transform + pos: 0.5,-5.5 + parent: 1 + - uid: 586 + components: + - type: Transform + pos: 3.5,-7.5 + parent: 1 + - uid: 587 + components: + - type: Transform + pos: -2.5,4.5 + parent: 1 +- proto: WindowDirectional + entities: + - uid: 588 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-3.5 + parent: 1 +... diff --git a/Resources/Maps/Shuttles/DeltaV/helix.yml b/Resources/Maps/Shuttles/DeltaV/helix.yml new file mode 100644 index 00000000000..b77327935ab --- /dev/null +++ b/Resources/Maps/Shuttles/DeltaV/helix.yml @@ -0,0 +1,3131 @@ +meta: + format: 6 + postmapinit: false +tilemap: + 0: Space + 24: FloorDark + 29: FloorDarkMono + 81: FloorTechMaint + 84: FloorWhite + 85: FloorWhiteDiagonal + 96: Lattice + 97: Plating +entities: +- proto: "" + entities: + - uid: 1 + components: + - type: MetaData + - type: Transform + - type: MapGrid + chunks: + -1,-1: + ind: -1,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAA + version: 6 + -1,0: + ind: -1,0 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAVAAAAAACVAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAVAAAAAAAVAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAVAAAAAAAYQAAAAAAVAAAAAABYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAVAAAAAACVAAAAAADVAAAAAACVAAAAAAAYQAAAAAAVAAAAAABVAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAVAAAAAADVAAAAAAAVAAAAAACVAAAAAABYQAAAAAAVAAAAAADVQAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAVAAAAAADVAAAAAABVAAAAAABVAAAAAABVAAAAAADVAAAAAADVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAVAAAAAADYQAAAAAAYQAAAAAAVAAAAAADVQAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAVAAAAAABVAAAAAADVAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 0,-1: + ind: 0,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 0,0: + ind: 0,0 + tiles: YQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAABYQAAAAAAVAAAAAADVAAAAAADVAAAAAABYQAAAAAAVAAAAAAAVAAAAAABVAAAAAADYQAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAACYQAAAAAAVAAAAAABVAAAAAACVAAAAAACYQAAAAAAVAAAAAAAVAAAAAACVAAAAAABYQAAAAAAYQAAAAAAYQAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAABYQAAAAAAVAAAAAAAVAAAAAABVAAAAAACYQAAAAAAVAAAAAABYQAAAAAAVAAAAAABYQAAAAAAGAAAAAABYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAVAAAAAAAVAAAAAAAVAAAAAADVAAAAAABVAAAAAADYQAAAAAAVAAAAAABVAAAAAAAVAAAAAAAVAAAAAACGAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYAAAAAAAVAAAAAACYQAAAAAAVAAAAAACVAAAAAADYQAAAAAAYQAAAAAAVAAAAAADVQAAAAACVAAAAAADYQAAAAAAGAAAAAACYQAAAAAAYQAAAAAAUQAAAAAAYQAAAAAAYAAAAAAAVAAAAAAAYQAAAAAAVAAAAAADVAAAAAAAVAAAAAADYQAAAAAAVAAAAAACVQAAAAACVAAAAAAAYQAAAAAAGAAAAAAAUQAAAAAAUQAAAAAAUQAAAAAAYQAAAAAAYAAAAAAAVQAAAAADVQAAAAAAVQAAAAAAVQAAAAADVQAAAAADVQAAAAACVQAAAAADVQAAAAABVAAAAAACVAAAAAADGAAAAAACUQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAVAAAAAAAYQAAAAAAVAAAAAACVAAAAAACVAAAAAABYQAAAAAAVAAAAAACVAAAAAADVAAAAAADVAAAAAADYQAAAAAAYQAAAAAAYQAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAHQAAAAACYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAAAAAUQAAAAAAUQAAAAAAYQAAAAAAGAAAAAABGAAAAAABGAAAAAACYQAAAAAAYAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAHQAAAAAAGAAAAAABGAAAAAADGAAAAAABYQAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAAAAAUQAAAAAAUQAAAAAAYQAAAAAAGAAAAAACGAAAAAADGAAAAAABYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + - type: Broadphase + - type: Physics + bodyStatus: InAir + angularDamping: 0.05 + linearDamping: 0.05 + fixedRotation: False + bodyType: Dynamic + - type: Fixtures + fixtures: {} + - type: OccluderTree + - type: Shuttle + - type: GridPathfinding + - type: Gravity + gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + - type: DecalGrid + chunkCollection: + version: 2 + nodes: + - node: + color: '#FFFFFFFF' + id: BrickTileDarkCornerSe + decals: + 99: 6,10 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkLineE + decals: + 49: -4,4 + 50: -4,5 + 51: -4,6 + 100: 6,11 + 101: 6,12 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkLineN + decals: + 43: -2,2 + 44: -1,2 + 45: 0,2 + 46: 6,2 + 47: 7,2 + 48: 8,2 + 85: 2,4 + 86: 3,4 + 87: 4,4 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkLineS + decals: + 37: -2,4 + 38: -1,4 + 39: 0,4 + 40: 6,4 + 41: 7,4 + 42: 8,4 + 88: 2,1 + 89: 3,1 + 90: 4,1 + 97: 4,10 + 98: 5,10 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkLineW + decals: + 52: -7,4 + 53: -7,5 + 54: -7,6 + 55: 10,3 + 56: 10,4 + 57: 10,5 + 58: 10,6 + 59: 10,7 + 60: 10,8 + - node: + color: '#FFFFFFFF' + id: BrickTileWhiteCornerNe + decals: + 15: 7,7 + - node: + color: '#FFFFFFFF' + id: BrickTileWhiteCornerNw + decals: + 14: -1,7 + - node: + color: '#334E6DC8' + id: BrickTileWhiteCornerSe + decals: + 104: 6,10 + - node: + color: '#FFFFFFFF' + id: BrickTileWhiteEndS + decals: + 13: -1,5 + 16: 7,5 + - node: + color: '#FFFFFFFF' + id: BrickTileWhiteInnerSe + decals: + 28: -1,7 + - node: + color: '#FFFFFFFF' + id: BrickTileWhiteInnerSw + decals: + 36: 7,7 + - node: + color: '#334E6DC8' + id: BrickTileWhiteLineE + decals: + 102: 6,12 + 103: 6,11 + - node: + color: '#52B4E996' + id: BrickTileWhiteLineE + decals: + 67: -4,4 + 68: -4,5 + 69: -4,6 + - node: + color: '#FFFFFFFF' + id: BrickTileWhiteLineE + decals: + 17: 7,6 + 18: -1,6 + - node: + color: '#52B4E996' + id: BrickTileWhiteLineN + decals: + 64: -2,2 + 65: -1,2 + 66: 0,2 + 76: 6,2 + 77: 7,2 + 78: 8,2 + - node: + color: '#D58C18FF' + id: BrickTileWhiteLineN + decals: + 94: 2,4 + 95: 3,4 + 96: 4,4 + - node: + color: '#FFFFFFFF' + id: BrickTileWhiteLineN + decals: + 21: 6,7 + 22: 5,7 + 23: 4,7 + 24: 3,7 + 25: 2,7 + 26: 1,7 + 27: 0,7 + - node: + color: '#334E6DC8' + id: BrickTileWhiteLineS + decals: + 105: 5,10 + 106: 4,10 + - node: + color: '#52B4E996' + id: BrickTileWhiteLineS + decals: + 61: -2,4 + 62: -1,4 + 63: 0,4 + 73: 6,4 + 74: 7,4 + 75: 8,4 + - node: + color: '#D58C18FF' + id: BrickTileWhiteLineS + decals: + 91: 2,1 + 92: 3,1 + 93: 4,1 + - node: + color: '#FFFFFFFF' + id: BrickTileWhiteLineS + decals: + 29: 0,7 + 30: 1,7 + 31: 2,7 + 32: 3,7 + 33: 4,7 + 34: 5,7 + 35: 6,7 + - node: + color: '#52B4E996' + id: BrickTileWhiteLineW + decals: + 70: -7,4 + 71: -7,5 + 72: -7,6 + 79: 10,3 + 80: 10,4 + 81: 10,5 + 82: 10,6 + 83: 10,7 + 84: 10,8 + - node: + color: '#FFFFFFFF' + id: BrickTileWhiteLineW + decals: + 19: -1,6 + 20: 7,6 + - node: + color: '#52B4E996' + id: DiagonalCheckerAOverlay + decals: + 0: -1,5 + 1: -1,6 + 2: -1,7 + 3: 0,7 + 4: 1,7 + 5: 2,7 + 6: 3,7 + 7: 4,7 + 8: 5,7 + 9: 6,7 + 10: 7,7 + 11: 7,6 + 12: 7,5 + - node: + color: '#FFFFFFFF' + id: WarnLineS + decals: + 107: 11,4 + 108: 11,5 + 109: 11,6 + 110: 11,7 + - type: GridAtmosphere + version: 2 + data: + tiles: + -1,-1: + 0: 256 + 1: 17408 + -1,0: + 1: 23748 + 0: 16 + 0,-1: + 1: 4352 + 0: 50176 + -3,1: + 0: 2184 + -2,1: + 1: 36590 + -2,2: + 0: 130 + -2,0: + 0: 1024 + -1,1: + 1: 53213 + -1,2: + 1: 14 + 0: 17920 + 0,0: + 1: 56785 + 0,1: + 1: 64991 + 0,2: + 1: 63245 + 0,3: + 1: 7 + 0: 3072 + 1,-1: + 0: 4352 + 1: 17408 + 1,0: + 1: 24020 + 2,-1: + 1: 4352 + 0: 1024 + 2,0: + 1: 20753 + 0: 64 + 1,1: + 1: 64973 + 1,2: + 1: 30493 + 1,3: + 1: 7 + 0: 256 + 2,1: + 1: 64991 + 2,2: + 1: 1 + 0: 4992 + 3,0: + 0: 256 + 3,1: + 1: 819 + 0: 2184 + 3,2: + 0: 2 + uniqueMixes: + - volume: 2500 + immutable: True + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.15 + moles: + - 21.824879 + - 82.10312 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + chunkSize: 4 + - type: GasTileOverlay + - type: RadiationGridResistance + - type: SpreaderGrid + - type: GravityShake + nextShake: 0 + shakeTimes: 10 +- proto: AirCanister + entities: + - uid: 2 + components: + - type: Transform + pos: 12.5,6.5 + parent: 1 +- proto: AirlockChemistryLocked + entities: + - uid: 20 + components: + - type: Transform + pos: 1.5,4.5 + parent: 1 +- proto: AirlockCommandGlass + entities: + - uid: 3 + components: + - type: Transform + pos: 4.5,9.5 + parent: 1 +- proto: AirlockEngineeringGlass + entities: + - uid: 4 + components: + - type: Transform + pos: 3.5,11.5 + parent: 1 +- proto: AirlockExternalGlass + entities: + - uid: 5 + components: + - type: Transform + pos: -1.5,0.5 + parent: 1 + - uid: 6 + components: + - type: Transform + pos: 0.5,0.5 + parent: 1 + - uid: 7 + components: + - type: Transform + pos: 6.5,0.5 + parent: 1 + - uid: 8 + components: + - type: Transform + pos: 8.5,0.5 + parent: 1 +- proto: AirlockGlassShuttle + entities: + - uid: 9 + components: + - type: Transform + pos: -1.5,-1.5 + parent: 1 + - uid: 10 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 + - uid: 11 + components: + - type: Transform + pos: 6.5,-1.5 + parent: 1 + - uid: 12 + components: + - type: Transform + pos: 8.5,-1.5 + parent: 1 +- proto: AirlockMedicalGlass + entities: + - uid: 13 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,7.5 + parent: 1 + - uid: 14 + components: + - type: Transform + pos: -1.5,3.5 + parent: 1 + - uid: 15 + components: + - type: Transform + pos: 8.5,3.5 + parent: 1 + - uid: 16 + components: + - type: Transform + pos: -2.5,6.5 + parent: 1 + - uid: 17 + components: + - type: Transform + pos: 1.5,7.5 + parent: 1 + - uid: 18 + components: + - type: Transform + pos: 5.5,7.5 + parent: 1 + - uid: 19 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,4.5 + parent: 1 +- proto: APCBasic + entities: + - uid: 21 + components: + - type: MetaData + name: Bridge APC + - type: Transform + pos: 3.5,12.5 + parent: 1 + - uid: 121 + components: + - type: MetaData + name: Chemistry APC + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,3.5 + parent: 1 + - uid: 205 + components: + - type: MetaData + name: Treatment APC + - type: Transform + pos: -3.5,7.5 + parent: 1 + - uid: 448 + components: + - type: MetaData + name: Cryo APC + - type: Transform + pos: 10.5,8.5 + parent: 1 +- proto: AtmosDeviceFanTiny + entities: + - uid: 23 + components: + - type: Transform + pos: -1.5,-1.5 + parent: 1 + - uid: 24 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 + - uid: 25 + components: + - type: Transform + pos: 6.5,-1.5 + parent: 1 + - uid: 26 + components: + - type: Transform + pos: 8.5,-1.5 + parent: 1 +- proto: BedsheetMedical + entities: + - uid: 467 + components: + - type: Transform + pos: -6.5,4.5 + parent: 1 + - uid: 475 + components: + - type: Transform + pos: -6.5,5.5 + parent: 1 + - uid: 476 + components: + - type: Transform + pos: -6.5,6.5 + parent: 1 +- proto: CableApcExtension + entities: + - uid: 27 + components: + - type: Transform + pos: 9.5,7.5 + parent: 1 + - uid: 28 + components: + - type: Transform + pos: 10.5,7.5 + parent: 1 + - uid: 29 + components: + - type: Transform + pos: 11.5,7.5 + parent: 1 + - uid: 30 + components: + - type: Transform + pos: 3.5,12.5 + parent: 1 + - uid: 31 + components: + - type: Transform + pos: 3.5,11.5 + parent: 1 + - uid: 32 + components: + - type: Transform + pos: 2.5,11.5 + parent: 1 + - uid: 33 + components: + - type: Transform + pos: 1.5,11.5 + parent: 1 + - uid: 34 + components: + - type: Transform + pos: 0.5,11.5 + parent: 1 + - uid: 35 + components: + - type: Transform + pos: 0.5,10.5 + parent: 1 + - uid: 36 + components: + - type: Transform + pos: 4.5,11.5 + parent: 1 + - uid: 37 + components: + - type: Transform + pos: 5.5,11.5 + parent: 1 + - uid: 38 + components: + - type: Transform + pos: 6.5,11.5 + parent: 1 + - uid: 39 + components: + - type: Transform + pos: 6.5,10.5 + parent: 1 + - uid: 40 + components: + - type: Transform + pos: 4.5,10.5 + parent: 1 + - uid: 41 + components: + - type: Transform + pos: 4.5,9.5 + parent: 1 + - uid: 42 + components: + - type: Transform + pos: 4.5,8.5 + parent: 1 + - uid: 43 + components: + - type: Transform + pos: 4.5,7.5 + parent: 1 + - uid: 44 + components: + - type: Transform + pos: 3.5,7.5 + parent: 1 + - uid: 45 + components: + - type: Transform + pos: 2.5,7.5 + parent: 1 + - uid: 46 + components: + - type: Transform + pos: 1.5,7.5 + parent: 1 + - uid: 47 + components: + - type: Transform + pos: 0.5,7.5 + parent: 1 + - uid: 48 + components: + - type: Transform + pos: -0.5,7.5 + parent: 1 + - uid: 49 + components: + - type: Transform + pos: -1.5,7.5 + parent: 1 + - uid: 50 + components: + - type: Transform + pos: 5.5,7.5 + parent: 1 + - uid: 51 + components: + - type: Transform + pos: 6.5,7.5 + parent: 1 + - uid: 53 + components: + - type: Transform + pos: 8.5,7.5 + parent: 1 + - uid: 55 + components: + - type: Transform + pos: 7.5,5.5 + parent: 1 + - uid: 56 + components: + - type: Transform + pos: 7.5,4.5 + parent: 1 + - uid: 57 + components: + - type: Transform + pos: 8.5,4.5 + parent: 1 + - uid: 58 + components: + - type: Transform + pos: 9.5,4.5 + parent: 1 + - uid: 59 + components: + - type: Transform + pos: 10.5,4.5 + parent: 1 + - uid: 60 + components: + - type: Transform + pos: 11.5,4.5 + parent: 1 + - uid: 61 + components: + - type: Transform + pos: 12.5,4.5 + parent: 1 + - uid: 62 + components: + - type: Transform + pos: 13.5,4.5 + parent: 1 + - uid: 63 + components: + - type: Transform + pos: 14.5,4.5 + parent: 1 + - uid: 65 + components: + - type: Transform + pos: 3.5,4.5 + parent: 1 + - uid: 67 + components: + - type: Transform + pos: -0.5,5.5 + parent: 1 + - uid: 68 + components: + - type: Transform + pos: -0.5,4.5 + parent: 1 + - uid: 69 + components: + - type: Transform + pos: -1.5,4.5 + parent: 1 + - uid: 70 + components: + - type: Transform + pos: -2.5,4.5 + parent: 1 + - uid: 71 + components: + - type: Transform + pos: -3.5,4.5 + parent: 1 + - uid: 72 + components: + - type: Transform + pos: -4.5,4.5 + parent: 1 + - uid: 73 + components: + - type: Transform + pos: -5.5,4.5 + parent: 1 + - uid: 74 + components: + - type: Transform + pos: -6.5,4.5 + parent: 1 + - uid: 75 + components: + - type: Transform + pos: -6.5,5.5 + parent: 1 + - uid: 76 + components: + - type: Transform + pos: -6.5,6.5 + parent: 1 + - uid: 77 + components: + - type: Transform + pos: 14.5,5.5 + parent: 1 + - uid: 78 + components: + - type: Transform + pos: 14.5,6.5 + parent: 1 + - uid: 80 + components: + - type: Transform + pos: 6.5,2.5 + parent: 1 + - uid: 81 + components: + - type: Transform + pos: 6.5,1.5 + parent: 1 + - uid: 82 + components: + - type: Transform + pos: 6.5,0.5 + parent: 1 + - uid: 83 + components: + - type: Transform + pos: 6.5,-0.5 + parent: 1 + - uid: 84 + components: + - type: Transform + pos: 6.5,-1.5 + parent: 1 + - uid: 85 + components: + - type: Transform + pos: 7.5,1.5 + parent: 1 + - uid: 86 + components: + - type: Transform + pos: 8.5,1.5 + parent: 1 + - uid: 87 + components: + - type: Transform + pos: 8.5,0.5 + parent: 1 + - uid: 88 + components: + - type: Transform + pos: 8.5,-0.5 + parent: 1 + - uid: 89 + components: + - type: Transform + pos: 8.5,-1.5 + parent: 1 + - uid: 91 + components: + - type: Transform + pos: 0.5,2.5 + parent: 1 + - uid: 92 + components: + - type: Transform + pos: 0.5,1.5 + parent: 1 + - uid: 93 + components: + - type: Transform + pos: 0.5,0.5 + parent: 1 + - uid: 94 + components: + - type: Transform + pos: 0.5,-0.5 + parent: 1 + - uid: 95 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 + - uid: 96 + components: + - type: Transform + pos: -1.5,3.5 + parent: 1 + - uid: 97 + components: + - type: Transform + pos: -1.5,2.5 + parent: 1 + - uid: 98 + components: + - type: Transform + pos: -1.5,1.5 + parent: 1 + - uid: 99 + components: + - type: Transform + pos: -1.5,0.5 + parent: 1 + - uid: 100 + components: + - type: Transform + pos: -1.5,-0.5 + parent: 1 + - uid: 101 + components: + - type: Transform + pos: -1.5,-1.5 + parent: 1 + - uid: 102 + components: + - type: Transform + pos: -0.5,1.5 + parent: 1 + - uid: 103 + components: + - type: Transform + pos: 8.5,2.5 + parent: 1 + - uid: 104 + components: + - type: Transform + pos: 8.5,3.5 + parent: 1 + - uid: 105 + components: + - type: Transform + pos: -1.5,8.5 + parent: 1 + - uid: 106 + components: + - type: Transform + pos: -2.5,8.5 + parent: 1 + - uid: 122 + components: + - type: Transform + pos: 3.5,3.5 + parent: 1 + - uid: 123 + components: + - type: Transform + pos: 3.5,2.5 + parent: 1 + - uid: 124 + components: + - type: Transform + pos: 3.5,1.5 + parent: 1 + - uid: 450 + components: + - type: Transform + pos: 10.5,8.5 + parent: 1 + - uid: 464 + components: + - type: Transform + pos: 1.5,3.5 + parent: 1 + - uid: 465 + components: + - type: Transform + pos: 2.5,3.5 + parent: 1 +- proto: CableHV + entities: + - uid: 107 + components: + - type: Transform + pos: 0.5,12.5 + parent: 1 + - uid: 108 + components: + - type: Transform + pos: 1.5,12.5 + parent: 1 + - uid: 109 + components: + - type: Transform + pos: 2.5,12.5 + parent: 1 + - uid: 110 + components: + - type: Transform + pos: 0.5,10.5 + parent: 1 + - uid: 111 + components: + - type: Transform + pos: 0.5,11.5 + parent: 1 + - uid: 112 + components: + - type: Transform + pos: 0.5,12.5 + parent: 1 + - uid: 446 + components: + - type: Transform + pos: -0.5,10.5 + parent: 1 +- proto: CableMV + entities: + - uid: 22 + components: + - type: Transform + pos: -1.5,6.5 + parent: 1 + - uid: 52 + components: + - type: Transform + pos: 2.5,7.5 + parent: 1 + - uid: 54 + components: + - type: Transform + pos: -2.5,6.5 + parent: 1 + - uid: 64 + components: + - type: Transform + pos: 0.5,6.5 + parent: 1 + - uid: 66 + components: + - type: Transform + pos: 0.5,7.5 + parent: 1 + - uid: 79 + components: + - type: Transform + pos: 1.5,7.5 + parent: 1 + - uid: 113 + components: + - type: Transform + pos: 2.5,12.5 + parent: 1 + - uid: 114 + components: + - type: Transform + pos: 3.5,12.5 + parent: 1 + - uid: 115 + components: + - type: Transform + pos: 3.5,11.5 + parent: 1 + - uid: 116 + components: + - type: Transform + pos: 4.5,11.5 + parent: 1 + - uid: 117 + components: + - type: Transform + pos: 4.5,10.5 + parent: 1 + - uid: 118 + components: + - type: Transform + pos: 4.5,9.5 + parent: 1 + - uid: 119 + components: + - type: Transform + pos: 4.5,8.5 + parent: 1 + - uid: 120 + components: + - type: Transform + pos: 4.5,7.5 + parent: 1 + - uid: 125 + components: + - type: Transform + pos: -3.5,6.5 + parent: 1 + - uid: 126 + components: + - type: Transform + pos: -0.5,6.5 + parent: 1 + - uid: 451 + components: + - type: Transform + pos: 10.5,7.5 + parent: 1 + - uid: 452 + components: + - type: Transform + pos: 10.5,8.5 + parent: 1 + - uid: 453 + components: + - type: Transform + pos: 9.5,7.5 + parent: 1 + - uid: 454 + components: + - type: Transform + pos: 8.5,7.5 + parent: 1 + - uid: 455 + components: + - type: Transform + pos: 7.5,7.5 + parent: 1 + - uid: 456 + components: + - type: Transform + pos: 6.5,7.5 + parent: 1 + - uid: 457 + components: + - type: Transform + pos: 5.5,7.5 + parent: 1 + - uid: 458 + components: + - type: Transform + pos: 3.5,7.5 + parent: 1 + - uid: 459 + components: + - type: Transform + pos: -3.5,7.5 + parent: 1 + - uid: 460 + components: + - type: Transform + pos: 0.5,5.5 + parent: 1 + - uid: 461 + components: + - type: Transform + pos: 0.5,4.5 + parent: 1 + - uid: 462 + components: + - type: Transform + pos: 1.5,4.5 + parent: 1 + - uid: 463 + components: + - type: Transform + pos: 1.5,3.5 + parent: 1 +- proto: CableTerminal + entities: + - uid: 127 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,12.5 + parent: 1 +- proto: Catwalk + entities: + - uid: 128 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,11.5 + parent: 1 + - uid: 129 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,11.5 + parent: 1 + - uid: 130 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,11.5 + parent: 1 +- proto: Chair + entities: + - uid: 131 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,1.5 + parent: 1 + - uid: 132 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,1.5 + parent: 1 + - uid: 133 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,6.5 + parent: 1 + - uid: 134 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,5.5 + parent: 1 +- proto: ChairFolding + entities: + - uid: 135 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,11.5 + parent: 1 +- proto: ChairOfficeLight + entities: + - uid: 136 + components: + - type: Transform + pos: 3.5,4.5 + parent: 1 + - uid: 137 + components: + - type: Transform + pos: 3.5,3.5 + parent: 1 + - uid: 138 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,4.5 + parent: 1 +- proto: ChairPilotSeat + entities: + - uid: 139 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,11.5 + parent: 1 +- proto: chem_master + entities: + - uid: 140 + components: + - type: Transform + pos: 4.5,3.5 + parent: 1 +- proto: ChemDispenser + entities: + - uid: 141 + components: + - type: Transform + pos: 4.5,2.5 + parent: 1 +- proto: ChemistryHotplate + entities: + - uid: 142 + components: + - type: Transform + pos: 3.5,1.5 + parent: 1 +- proto: ClosetWallEmergencyFilledRandom + entities: + - uid: 445 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,7.5 + parent: 1 +- proto: ClothingEyesHudMedical + entities: + - uid: 143 + components: + - type: Transform + pos: 7.532101,8.5749855 + parent: 1 +- proto: ClothingNeckStethoscope + entities: + - uid: 144 + components: + - type: Transform + pos: -4.509046,7.6246953 + parent: 1 +- proto: ClothingOuterWinterChem + entities: + - uid: 145 + components: + - type: Transform + pos: 3.9942956,1.5917455 + parent: 1 +- proto: ComputerCrewMonitoring + entities: + - uid: 146 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,11.5 + parent: 1 +- proto: ComputerMedicalRecords + entities: + - uid: 147 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,4.5 + parent: 1 +- proto: ComputerShuttle + entities: + - uid: 148 + components: + - type: Transform + pos: 5.5,12.5 + parent: 1 +- proto: CryoPod + entities: + - uid: 149 + components: + - type: Transform + pos: 13.5,5.5 + parent: 1 +- proto: ExtinguisherCabinetFilled + entities: + - uid: 152 + components: + - type: Transform + pos: 5.5,5.5 + parent: 1 + - uid: 153 + components: + - type: Transform + pos: 1.5,5.5 + parent: 1 +- proto: FaxMachineBase + entities: + - uid: 154 + components: + - type: Transform + pos: 6.5,12.5 + parent: 1 +- proto: FirelockGlass + entities: + - uid: 155 + components: + - type: Transform + pos: 4.5,9.5 + parent: 1 + - uid: 156 + components: + - type: Transform + pos: 1.5,7.5 + parent: 1 + - uid: 157 + components: + - type: Transform + pos: 5.5,7.5 + parent: 1 + - uid: 158 + components: + - type: Transform + pos: 2.5,5.5 + parent: 1 + - uid: 159 + components: + - type: Transform + pos: 3.5,5.5 + parent: 1 + - uid: 160 + components: + - type: Transform + pos: 1.5,4.5 + parent: 1 + - uid: 161 + components: + - type: Transform + pos: -1.5,3.5 + parent: 1 + - uid: 162 + components: + - type: Transform + pos: 8.5,3.5 + parent: 1 + - uid: 163 + components: + - type: Transform + pos: 6.5,3.5 + parent: 1 + - uid: 164 + components: + - type: Transform + pos: 0.5,3.5 + parent: 1 +- proto: GasPassiveVent + entities: + - uid: 165 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPipeBend + entities: + - uid: 166 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,4.5 + parent: 1 + - uid: 167 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,4.5 + parent: 1 + - uid: 168 + components: + - type: Transform + pos: 10.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 170 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 184 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 469 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 470 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPipeStraight + entities: + - uid: 169 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 171 + components: + - type: Transform + pos: 11.5,5.5 + parent: 1 + - uid: 172 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 173 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 174 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 175 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 176 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 177 + components: + - type: Transform + pos: 4.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 178 + components: + - type: Transform + pos: 4.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 179 + components: + - type: Transform + pos: 4.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 180 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 181 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 182 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 186 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 187 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 188 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 189 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 191 + components: + - type: Transform + pos: 8.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 192 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 193 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 199 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 471 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 472 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 473 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 474 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPipeTJunction + entities: + - uid: 183 + components: + - type: Transform + pos: 8.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 190 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 194 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,4.5 + parent: 1 + - uid: 195 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 196 + components: + - type: Transform + pos: 4.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 197 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 198 + components: + - type: Transform + pos: 3.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 204 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPort + entities: + - uid: 200 + components: + - type: Transform + pos: 12.5,6.5 + parent: 1 +- proto: GasPressurePump + entities: + - uid: 201 + components: + - type: Transform + pos: 12.5,5.5 + parent: 1 +- proto: GasThermoMachineFreezer + entities: + - uid: 202 + components: + - type: Transform + pos: 11.5,6.5 + parent: 1 +- proto: GasVentScrubber + entities: + - uid: 90 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 185 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 203 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 206 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 207 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 208 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 466 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 468 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GeneratorWallmountBasic + entities: + - uid: 210 + components: + - type: Transform + pos: -0.5,10.5 + parent: 1 +- proto: GravityGeneratorMini + entities: + - uid: 211 + components: + - type: Transform + pos: 2.5,10.5 + parent: 1 +- proto: Grille + entities: + - uid: 212 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 + - uid: 213 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 + - uid: 214 + components: + - type: Transform + pos: -0.5,0.5 + parent: 1 + - uid: 215 + components: + - type: Transform + pos: 7.5,-1.5 + parent: 1 + - uid: 216 + components: + - type: Transform + pos: 7.5,-0.5 + parent: 1 + - uid: 217 + components: + - type: Transform + pos: 7.5,0.5 + parent: 1 + - uid: 218 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,3.5 + parent: 1 + - uid: 219 + components: + - type: Transform + pos: 1.5,-0.5 + parent: 1 + - uid: 220 + components: + - type: Transform + pos: 9.5,-0.5 + parent: 1 + - uid: 221 + components: + - type: Transform + pos: 5.5,-0.5 + parent: 1 + - uid: 222 + components: + - type: Transform + pos: -2.5,-0.5 + parent: 1 + - uid: 223 + components: + - type: Transform + pos: 2.5,0.5 + parent: 1 + - uid: 224 + components: + - type: Transform + pos: 3.5,0.5 + parent: 1 + - uid: 225 + components: + - type: Transform + pos: 4.5,0.5 + parent: 1 + - uid: 226 + components: + - type: Transform + pos: 10.5,2.5 + parent: 1 + - uid: 227 + components: + - type: Transform + pos: 1.5,1.5 + parent: 1 + - uid: 228 + components: + - type: Transform + pos: 5.5,1.5 + parent: 1 + - uid: 229 + components: + - type: Transform + pos: -0.5,12.5 + parent: 1 + - uid: 230 + components: + - type: Transform + pos: -0.5,11.5 + parent: 1 + - uid: 231 + components: + - type: Transform + pos: -2.5,9.5 + parent: 1 + - uid: 232 + components: + - type: Transform + pos: 0.5,13.5 + parent: 1 + - uid: 233 + components: + - type: Transform + pos: 1.5,13.5 + parent: 1 + - uid: 234 + components: + - type: Transform + pos: 2.5,13.5 + parent: 1 + - uid: 235 + components: + - type: Transform + pos: 6.5,13.5 + parent: 1 + - uid: 236 + components: + - type: Transform + pos: 5.5,13.5 + parent: 1 + - uid: 237 + components: + - type: Transform + pos: 4.5,13.5 + parent: 1 + - uid: 238 + components: + - type: Transform + pos: 7.5,11.5 + parent: 1 + - uid: 239 + components: + - type: Transform + pos: 7.5,12.5 + parent: 1 + - uid: 240 + components: + - type: Transform + pos: 11.5,8.5 + parent: 1 + - uid: 241 + components: + - type: Transform + pos: 13.5,3.5 + parent: 1 + - uid: 242 + components: + - type: Transform + pos: 9.5,5.5 + parent: 1 + - uid: 243 + components: + - type: Transform + pos: 9.5,6.5 + parent: 1 + - uid: 244 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,5.5 + parent: 1 + - uid: 245 + components: + - type: Transform + pos: -6.5,3.5 + parent: 1 + - uid: 246 + components: + - type: Transform + pos: -5.5,3.5 + parent: 1 + - uid: 247 + components: + - type: Transform + pos: -7.5,6.5 + parent: 1 + - uid: 248 + components: + - type: Transform + pos: -7.5,5.5 + parent: 1 + - uid: 249 + components: + - type: Transform + pos: -7.5,4.5 + parent: 1 + - uid: 250 + components: + - type: Transform + pos: -6.5,7.5 + parent: 1 + - uid: 251 + components: + - type: Transform + pos: -4.5,8.5 + parent: 1 + - uid: 252 + components: + - type: Transform + pos: -3.5,2.5 + parent: 1 + - uid: 253 + components: + - type: Transform + pos: -2.5,4.5 + parent: 1 + - uid: 254 + components: + - type: Transform + pos: 1.5,2.5 + parent: 1 + - uid: 255 + components: + - type: Transform + pos: -2.5,5.5 + parent: 1 + - uid: 256 + components: + - type: Transform + pos: 5.5,2.5 + parent: 1 + - uid: 257 + components: + - type: Transform + pos: 13.5,7.5 + parent: 1 + - uid: 258 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,4.5 + parent: 1 + - uid: 259 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,6.5 + parent: 1 + - uid: 260 + components: + - type: Transform + pos: 1.5,6.5 + parent: 1 + - uid: 261 + components: + - type: Transform + pos: 1.5,8.5 + parent: 1 + - uid: 262 + components: + - type: Transform + pos: 5.5,6.5 + parent: 1 + - uid: 263 + components: + - type: Transform + pos: 5.5,8.5 + parent: 1 + - uid: 264 + components: + - type: Transform + pos: 7.5,3.5 + parent: 1 + - uid: 265 + components: + - type: Transform + pos: -0.5,3.5 + parent: 1 + - uid: 266 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,5.5 + parent: 1 +- proto: Gyroscope + entities: + - uid: 267 + components: + - type: Transform + pos: 1.5,10.5 + parent: 1 +- proto: HandheldHealthAnalyzer + entities: + - uid: 268 + components: + - type: Transform + pos: -0.54647624,8.518518 + parent: 1 +- proto: HospitalCurtainsOpen + entities: + - uid: 269 + components: + - type: Transform + pos: -5.5,4.5 + parent: 1 + - uid: 270 + components: + - type: Transform + pos: -5.5,5.5 + parent: 1 + - uid: 271 + components: + - type: Transform + pos: -5.5,6.5 + parent: 1 +- proto: KitchenReagentGrinder + entities: + - uid: 272 + components: + - type: Transform + pos: 4.5,1.5 + parent: 1 +- proto: LockerChemistryFilled + entities: + - uid: 273 + components: + - type: Transform + pos: 2.5,1.5 + parent: 1 +- proto: MachineElectrolysisUnit + entities: + - uid: 477 + components: + - type: Transform + pos: 4.5,4.5 + parent: 1 +- proto: MedicalBed + entities: + - uid: 274 + components: + - type: Transform + pos: -6.5,4.5 + parent: 1 + - uid: 275 + components: + - type: Transform + pos: -6.5,6.5 + parent: 1 + - uid: 276 + components: + - type: Transform + pos: -6.5,5.5 + parent: 1 +- proto: MedkitAdvancedFilled + entities: + - uid: 277 + components: + - type: Transform + pos: 2.4920883,8.533883 + parent: 1 +- proto: MedkitFilled + entities: + - uid: 278 + components: + - type: Transform + pos: 0.4190662,8.562265 + parent: 1 + - uid: 279 + components: + - type: Transform + pos: 6.8521543,8.576456 + parent: 1 +- proto: MedkitOxygenFilled + entities: + - uid: 280 + components: + - type: Transform + pos: 0.064097166,8.590648 + parent: 1 + - uid: 281 + components: + - type: Transform + pos: 6.568179,8.533883 + parent: 1 +- proto: MedkitRadiationFilled + entities: + - uid: 282 + components: + - type: Transform + pos: 2.831725,8.561308 + parent: 1 +- proto: MedkitToxinFilled + entities: + - uid: 283 + components: + - type: Transform + pos: 3.286086,8.547117 + parent: 1 +- proto: PortableGeneratorPacman + entities: + - uid: 209 + components: + - type: Transform + pos: 0.5,12.5 + parent: 1 +- proto: PottedPlantRandom + entities: + - uid: 284 + components: + - type: Transform + pos: 4.5,12.5 + parent: 1 +- proto: Poweredlight + entities: + - uid: 285 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,9.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 286 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-1.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 287 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-1.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 288 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,9.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 289 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,14.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 +- proto: PoweredlightLED + entities: + - uid: 290 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,4.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 291 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,4.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 292 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,5.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 293 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,5.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 294 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-1.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 295 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-1.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 296 + components: + - type: Transform + pos: 3.5,8.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 +- proto: PoweredSmallLight + entities: + - uid: 449 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,10.5 + parent: 1 +- proto: SheetPlasma + entities: + - uid: 447 + components: + - type: Transform + pos: 0.53972864,11.9265995 + parent: 1 +- proto: ShuttleWindow + entities: + - uid: 297 + components: + - type: Transform + pos: -3.5,2.5 + parent: 1 + - uid: 298 + components: + - type: Transform + pos: -5.5,3.5 + parent: 1 + - uid: 299 + components: + - type: Transform + pos: -6.5,3.5 + parent: 1 + - uid: 300 + components: + - type: Transform + pos: 5.5,13.5 + parent: 1 + - uid: 301 + components: + - type: Transform + pos: 6.5,13.5 + parent: 1 + - uid: 302 + components: + - type: Transform + pos: 7.5,11.5 + parent: 1 + - uid: 303 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,3.5 + parent: 1 + - uid: 304 + components: + - type: Transform + pos: 4.5,13.5 + parent: 1 + - uid: 305 + components: + - type: Transform + pos: 7.5,12.5 + parent: 1 + - uid: 306 + components: + - type: Transform + pos: -7.5,4.5 + parent: 1 + - uid: 307 + components: + - type: Transform + pos: 1.5,13.5 + parent: 1 + - uid: 308 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,4.5 + parent: 1 + - uid: 309 + components: + - type: Transform + pos: 13.5,7.5 + parent: 1 + - uid: 310 + components: + - type: Transform + pos: 9.5,6.5 + parent: 1 + - uid: 311 + components: + - type: Transform + pos: 9.5,5.5 + parent: 1 + - uid: 312 + components: + - type: Transform + pos: 5.5,6.5 + parent: 1 + - uid: 313 + components: + - type: Transform + pos: 1.5,6.5 + parent: 1 + - uid: 314 + components: + - type: Transform + pos: 4.5,5.5 + parent: 1 + - uid: 315 + components: + - type: Transform + pos: 5.5,8.5 + parent: 1 + - uid: 316 + components: + - type: Transform + pos: -2.5,9.5 + parent: 1 + - uid: 317 + components: + - type: Transform + pos: 1.5,8.5 + parent: 1 + - uid: 318 + components: + - type: Transform + pos: 11.5,8.5 + parent: 1 + - uid: 319 + components: + - type: Transform + pos: -2.5,4.5 + parent: 1 + - uid: 320 + components: + - type: Transform + pos: -0.5,3.5 + parent: 1 + - uid: 321 + components: + - type: Transform + pos: 1.5,2.5 + parent: 1 + - uid: 322 + components: + - type: Transform + pos: 1.5,1.5 + parent: 1 + - uid: 323 + components: + - type: Transform + pos: 2.5,0.5 + parent: 1 + - uid: 324 + components: + - type: Transform + pos: 3.5,0.5 + parent: 1 + - uid: 325 + components: + - type: Transform + pos: 4.5,0.5 + parent: 1 + - uid: 326 + components: + - type: Transform + pos: 7.5,3.5 + parent: 1 + - uid: 327 + components: + - type: Transform + pos: -4.5,8.5 + parent: 1 + - uid: 328 + components: + - type: Transform + pos: 7.5,0.5 + parent: 1 + - uid: 329 + components: + - type: Transform + pos: 7.5,-0.5 + parent: 1 + - uid: 330 + components: + - type: Transform + pos: 7.5,-1.5 + parent: 1 + - uid: 331 + components: + - type: Transform + pos: 5.5,-0.5 + parent: 1 + - uid: 332 + components: + - type: Transform + pos: -0.5,0.5 + parent: 1 + - uid: 333 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 + - uid: 334 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 + - uid: 335 + components: + - type: Transform + pos: 1.5,-0.5 + parent: 1 + - uid: 336 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,5.5 + parent: 1 + - uid: 337 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,6.5 + parent: 1 + - uid: 338 + components: + - type: Transform + pos: 0.5,13.5 + parent: 1 + - uid: 339 + components: + - type: Transform + pos: -0.5,12.5 + parent: 1 + - uid: 340 + components: + - type: Transform + pos: -0.5,11.5 + parent: 1 + - uid: 341 + components: + - type: Transform + pos: 2.5,13.5 + parent: 1 + - uid: 342 + components: + - type: Transform + pos: -7.5,6.5 + parent: 1 + - uid: 343 + components: + - type: Transform + pos: -7.5,5.5 + parent: 1 + - uid: 344 + components: + - type: Transform + pos: 13.5,3.5 + parent: 1 + - uid: 345 + components: + - type: Transform + pos: 10.5,2.5 + parent: 1 + - uid: 346 + components: + - type: Transform + pos: -2.5,5.5 + parent: 1 + - uid: 347 + components: + - type: Transform + pos: -6.5,7.5 + parent: 1 + - uid: 348 + components: + - type: Transform + pos: -2.5,-0.5 + parent: 1 + - uid: 349 + components: + - type: Transform + pos: 9.5,-0.5 + parent: 1 + - uid: 350 + components: + - type: Transform + pos: 5.5,2.5 + parent: 1 + - uid: 351 + components: + - type: Transform + pos: 5.5,1.5 + parent: 1 +- proto: SMESBasic + entities: + - uid: 352 + components: + - type: Transform + pos: 1.5,12.5 + parent: 1 +- proto: SubstationBasic + entities: + - uid: 353 + components: + - type: Transform + pos: 2.5,12.5 + parent: 1 +- proto: TableReinforced + entities: + - uid: 354 + components: + - type: Transform + pos: 2.5,5.5 + parent: 1 + - uid: 355 + components: + - type: Transform + pos: 3.5,5.5 + parent: 1 + - uid: 356 + components: + - type: Transform + pos: 0.5,3.5 + parent: 1 + - uid: 357 + components: + - type: Transform + pos: 6.5,3.5 + parent: 1 + - uid: 358 + components: + - type: Transform + pos: 6.5,12.5 + parent: 1 + - uid: 359 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,10.5 + parent: 1 +- proto: TableReinforcedGlass + entities: + - uid: 360 + components: + - type: Transform + pos: -4.5,7.5 + parent: 1 + - uid: 361 + components: + - type: Transform + pos: 11.5,7.5 + parent: 1 + - uid: 362 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,1.5 + parent: 1 + - uid: 363 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,1.5 + parent: 1 + - uid: 364 + components: + - type: Transform + pos: 4.5,4.5 + parent: 1 + - uid: 365 + components: + - type: Transform + pos: 2.5,8.5 + parent: 1 + - uid: 366 + components: + - type: Transform + pos: 3.5,8.5 + parent: 1 + - uid: 367 + components: + - type: Transform + pos: 6.5,8.5 + parent: 1 + - uid: 368 + components: + - type: Transform + pos: 7.5,8.5 + parent: 1 + - uid: 369 + components: + - type: Transform + pos: 0.5,8.5 + parent: 1 + - uid: 370 + components: + - type: Transform + pos: -0.5,8.5 + parent: 1 + - uid: 371 + components: + - type: Transform + pos: 10.5,3.5 + parent: 1 +- proto: Thruster + entities: + - uid: 372 + components: + - type: Transform + pos: -4.5,9.5 + parent: 1 + - uid: 373 + components: + - type: Transform + pos: 11.5,9.5 + parent: 1 + - uid: 374 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,2.5 + parent: 1 + - uid: 375 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,1.5 + parent: 1 + - uid: 376 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,1.5 + parent: 1 + - uid: 377 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,2.5 + parent: 1 + - uid: 378 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-1.5 + parent: 1 + - uid: 379 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-1.5 + parent: 1 +- proto: VendingMachineCoffee + entities: + - uid: 380 + components: + - type: Transform + pos: -2.5,8.5 + parent: 1 +- proto: VendingMachineMedical + entities: + - uid: 381 + components: + - type: Transform + pos: -3.5,3.5 + parent: 1 +- proto: WallShuttle + entities: + - uid: 382 + components: + - type: Transform + pos: 1.5,3.5 + parent: 1 + - uid: 383 + components: + - type: Transform + pos: 5.5,5.5 + parent: 1 + - uid: 384 + components: + - type: Transform + pos: 11.5,2.5 + parent: 1 + - uid: 385 + components: + - type: Transform + pos: 11.5,3.5 + parent: 1 + - uid: 386 + components: + - type: Transform + pos: 1.5,5.5 + parent: 1 + - uid: 387 + components: + - type: Transform + pos: 5.5,4.5 + parent: 1 + - uid: 388 + components: + - type: Transform + pos: 9.5,3.5 + parent: 1 + - uid: 389 + components: + - type: Transform + pos: 9.5,1.5 + parent: 1 + - uid: 390 + components: + - type: Transform + pos: 9.5,0.5 + parent: 1 + - uid: 391 + components: + - type: Transform + pos: 9.5,-1.5 + parent: 1 + - uid: 392 + components: + - type: Transform + pos: 5.5,-1.5 + parent: 1 + - uid: 393 + components: + - type: Transform + pos: -1.5,9.5 + parent: 1 + - uid: 394 + components: + - type: Transform + pos: 0.5,9.5 + parent: 1 + - uid: 395 + components: + - type: Transform + pos: -0.5,9.5 + parent: 1 + - uid: 396 + components: + - type: Transform + pos: 7.5,9.5 + parent: 1 + - uid: 397 + components: + - type: Transform + pos: 8.5,9.5 + parent: 1 + - uid: 398 + components: + - type: Transform + pos: 3.5,12.5 + parent: 1 + - uid: 399 + components: + - type: Transform + pos: -2.5,7.5 + parent: 1 + - uid: 400 + components: + - type: Transform + pos: -3.5,7.5 + parent: 1 + - uid: 401 + components: + - type: Transform + pos: -3.5,8.5 + parent: 1 + - uid: 402 + components: + - type: Transform + pos: -5.5,7.5 + parent: 1 + - uid: 403 + components: + - type: Transform + pos: -7.5,7.5 + parent: 1 + - uid: 404 + components: + - type: Transform + pos: -4.5,3.5 + parent: 1 + - uid: 405 + components: + - type: Transform + pos: -4.5,2.5 + parent: 1 + - uid: 406 + components: + - type: Transform + pos: -7.5,3.5 + parent: 1 + - uid: 407 + components: + - type: Transform + pos: -0.5,13.5 + parent: 1 + - uid: 408 + components: + - type: Transform + pos: 10.5,8.5 + parent: 1 + - uid: 409 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,3.5 + parent: 1 + - uid: 410 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,9.5 + parent: 1 + - uid: 411 + components: + - type: Transform + pos: -2.5,3.5 + parent: 1 + - uid: 412 + components: + - type: Transform + pos: -2.5,2.5 + parent: 1 + - uid: 413 + components: + - type: Transform + pos: -2.5,1.5 + parent: 1 + - uid: 414 + components: + - type: Transform + pos: -2.5,0.5 + parent: 1 + - uid: 415 + components: + - type: Transform + pos: 9.5,2.5 + parent: 1 + - uid: 416 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,9.5 + parent: 1 + - uid: 417 + components: + - type: Transform + pos: 12.5,8.5 + parent: 1 + - uid: 418 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,7.5 + parent: 1 + - uid: 419 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,10.5 + parent: 1 + - uid: 420 + components: + - type: Transform + pos: 5.5,0.5 + parent: 1 + - uid: 421 + components: + - type: Transform + pos: 5.5,3.5 + parent: 1 + - uid: 422 + components: + - type: Transform + pos: 1.5,0.5 + parent: 1 + - uid: 423 + components: + - type: Transform + pos: -2.5,-1.5 + parent: 1 + - uid: 424 + components: + - type: Transform + pos: 6.5,9.5 + parent: 1 + - uid: 425 + components: + - type: Transform + pos: 5.5,9.5 + parent: 1 + - uid: 426 + components: + - type: Transform + pos: 3.5,10.5 + parent: 1 + - uid: 427 + components: + - type: Transform + pos: 3.5,9.5 + parent: 1 + - uid: 428 + components: + - type: Transform + pos: 2.5,9.5 + parent: 1 + - uid: 429 + components: + - type: Transform + pos: 1.5,9.5 + parent: 1 + - uid: 430 + components: + - type: Transform + pos: -5.5,8.5 + parent: 1 + - uid: 431 + components: + - type: Transform + pos: -3.5,9.5 + parent: 1 + - uid: 432 + components: + - type: Transform + pos: 12.5,7.5 + parent: 1 + - uid: 433 + components: + - type: Transform + pos: 3.5,13.5 + parent: 1 + - uid: 434 + components: + - type: Transform + pos: 7.5,13.5 + parent: 1 + - uid: 435 + components: + - type: Transform + pos: 1.5,-1.5 + parent: 1 + - uid: 436 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,10.5 + parent: 1 + - uid: 437 + components: + - type: Transform + pos: 9.5,8.5 + parent: 1 +- proto: WarpPoint + entities: + - uid: 483 + components: + - type: Transform + pos: 3.5,5.5 + parent: 1 + - type: WarpPoint + location: NTMC Helix +- proto: WeaponCapacitorRecharger + entities: + - uid: 438 + components: + - type: Transform + pos: 6.5,10.5 + parent: 1 +- proto: WindoorSecureChemistryLocked + entities: + - uid: 150 + components: + - type: Transform + pos: 2.5,5.5 + parent: 1 + - uid: 151 + components: + - type: Transform + pos: 3.5,5.5 + parent: 1 +- proto: WindoorSecureMedicalLocked + entities: + - uid: 439 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,5.5 + parent: 1 + - uid: 440 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,5.5 + parent: 1 +- proto: WindowTintedDirectional + entities: + - uid: 441 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,4.5 + parent: 1 + - uid: 442 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,5.5 + parent: 1 + - uid: 443 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,5.5 + parent: 1 + - uid: 444 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,4.5 + parent: 1 +... diff --git a/Resources/Maps/Shuttles/DeltaV/ntcv-nomad.yml b/Resources/Maps/Shuttles/DeltaV/ntcv-nomad.yml new file mode 100644 index 00000000000..4e193ab0071 --- /dev/null +++ b/Resources/Maps/Shuttles/DeltaV/ntcv-nomad.yml @@ -0,0 +1,1151 @@ +meta: + format: 6 + postmapinit: false +tilemap: + 0: Space + 36: FloorEighties + 55: FloorMono + 60: FloorRGlass + 64: FloorShuttleBlue + 68: FloorShuttleWhite + 81: FloorTechMaint + 96: Lattice + 97: Plating +entities: +- proto: "" + entities: + - uid: 1 + components: + - type: MetaData + - type: Transform + - type: MapGrid + chunks: + -1,-1: + ind: -1,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAUQAAAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAUQAAAAAAUQAAAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAUQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAJAAAAAAAJAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAJAAAAAAAJAAAAAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAJAAAAAAAJAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAPAAAAAAARAAAAAAA + version: 6 + 0,-1: + ind: 0,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAAAAAYQAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAUQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAUQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAUQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAUQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAUQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAAAAAYQAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAAAAYQAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,0: + ind: -1,0 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 0,0: + ind: 0,0 + tiles: QAAAAAAAYQAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + - type: Broadphase + - type: Physics + bodyStatus: InAir + angularDamping: 0.05 + linearDamping: 0.05 + fixedRotation: False + bodyType: Dynamic + - type: Fixtures + fixtures: {} + - type: OccluderTree + - type: Shuttle + - type: GridPathfinding + - type: Gravity + gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + - type: DecalGrid + chunkCollection: + version: 2 + nodes: + - node: + color: '#FFFFFFFF' + id: Bot + decals: + 0: -2,-8 + 1: -3,-8 + 2: -1,-8 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkCornerNe + decals: + 5: -2,-3 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkCornerNw + decals: + 4: -3,-3 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkCornerSe + decals: + 6: -2,-5 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkCornerSw + decals: + 3: -3,-5 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkLineE + decals: + 7: -2,-4 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkLineW + decals: + 8: -3,-4 + - type: GridAtmosphere + version: 2 + data: + tiles: + -1,-3: + 0: 4608 + 1: 49152 + -1,-2: + 1: 24814 + -1,-1: + 1: 49262 + 0: 4352 + -1,0: + 0: 33 + 1: 12 + 0,-3: + 1: 4096 + 0: 16896 + 0,-2: + 1: 14131 + 0,-1: + 1: 4403 + 0: 17408 + 0,0: + 1: 1 + 0: 36 + uniqueMixes: + - volume: 2500 + immutable: True + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.15 + moles: + - 21.824879 + - 82.10312 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + chunkSize: 4 + - type: RadiationGridResistance + - type: GasTileOverlay + - type: SpreaderGrid +- proto: AirCanister + entities: + - uid: 2 + components: + - type: Transform + pos: 0.5,-8.5 + parent: 1 +- proto: Airlock + entities: + - uid: 3 + components: + - type: Transform + pos: -0.5,-3.5 + parent: 1 +- proto: AirlockCommand + entities: + - uid: 4 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 +- proto: AirlockExternalGlassShuttleLocked + entities: + - uid: 5 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-5.5 + parent: 1 +- proto: APCBasic + entities: + - uid: 6 + components: + - type: MetaData + name: Main APC + - type: Transform + pos: -0.5,-5.5 + parent: 1 +- proto: AtmosDeviceFanTiny + entities: + - uid: 7 + components: + - type: Transform + pos: 2.5,-5.5 + parent: 1 +- proto: Bed + entities: + - uid: 8 + components: + - type: Transform + pos: -1.5,-2.5 + parent: 1 +- proto: BedsheetSpawner + entities: + - uid: 9 + components: + - type: Transform + pos: -1.5,-2.5 + parent: 1 +- proto: CableApcExtension + entities: + - uid: 10 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 1 + - uid: 11 + components: + - type: Transform + pos: -0.5,-6.5 + parent: 1 + - uid: 12 + components: + - type: Transform + pos: -0.5,-7.5 + parent: 1 + - uid: 13 + components: + - type: Transform + pos: -0.5,-8.5 + parent: 1 + - uid: 14 + components: + - type: Transform + pos: -1.5,-8.5 + parent: 1 + - uid: 15 + components: + - type: Transform + pos: 0.5,-8.5 + parent: 1 + - uid: 16 + components: + - type: Transform + pos: 0.5,-5.5 + parent: 1 + - uid: 17 + components: + - type: Transform + pos: 1.5,-5.5 + parent: 1 + - uid: 18 + components: + - type: Transform + pos: -0.5,-4.5 + parent: 1 + - uid: 19 + components: + - type: Transform + pos: -0.5,-3.5 + parent: 1 + - uid: 20 + components: + - type: Transform + pos: -0.5,-2.5 + parent: 1 + - uid: 21 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 + - uid: 22 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 + - uid: 23 + components: + - type: Transform + pos: 1.5,-1.5 + parent: 1 + - uid: 24 + components: + - type: Transform + pos: -1.5,-1.5 + parent: 1 + - uid: 25 + components: + - type: Transform + pos: -2.5,-1.5 + parent: 1 + - uid: 26 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 + - uid: 27 + components: + - type: Transform + pos: -0.5,0.5 + parent: 1 + - uid: 28 + components: + - type: Transform + pos: -1.5,0.5 + parent: 1 + - uid: 29 + components: + - type: Transform + pos: 0.5,0.5 + parent: 1 + - uid: 30 + components: + - type: Transform + pos: -1.5,-3.5 + parent: 1 + - uid: 31 + components: + - type: Transform + pos: 0.5,-3.5 + parent: 1 + - uid: 32 + components: + - type: Transform + pos: 1.5,-3.5 + parent: 1 + - uid: 33 + components: + - type: Transform + pos: -2.5,-5.5 + parent: 1 + - uid: 34 + components: + - type: Transform + pos: -2.5,-3.5 + parent: 1 +- proto: CableHV + entities: + - uid: 35 + components: + - type: Transform + pos: -1.5,-8.5 + parent: 1 + - uid: 36 + components: + - type: Transform + pos: -1.5,-7.5 + parent: 1 + - uid: 37 + components: + - type: Transform + pos: -1.5,-6.5 + parent: 1 + - uid: 38 + components: + - type: Transform + pos: -1.5,-5.5 + parent: 1 +- proto: CableMV + entities: + - uid: 39 + components: + - type: Transform + pos: -1.5,-5.5 + parent: 1 + - uid: 40 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 1 +- proto: Catwalk + entities: + - uid: 41 + components: + - type: Transform + pos: 0.5,-5.5 + parent: 1 + - uid: 42 + components: + - type: Transform + pos: 0.5,-4.5 + parent: 1 + - uid: 43 + components: + - type: Transform + pos: 0.5,-3.5 + parent: 1 + - uid: 44 + components: + - type: Transform + pos: 0.5,-2.5 + parent: 1 + - uid: 45 + components: + - type: Transform + pos: 0.5,-6.5 + parent: 1 + - uid: 46 + components: + - type: Transform + pos: -0.5,-6.5 + parent: 1 + - uid: 47 + components: + - type: Transform + pos: -1.5,-6.5 + parent: 1 + - uid: 48 + components: + - type: Transform + pos: 1.5,-5.5 + parent: 1 + - uid: 49 + components: + - type: Transform + pos: 0.5,-7.5 + parent: 1 +- proto: Chair + entities: + - uid: 50 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-4.5 + parent: 1 + - uid: 51 + components: + - type: Transform + pos: -2.5,-3.5 + parent: 1 +- proto: ChairPilotSeat + entities: + - uid: 52 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-0.5 + parent: 1 +- proto: ClosetEmergencyFilledRandom + entities: + - uid: 54 + components: + - type: Transform + pos: 1.5,-4.5 + parent: 1 +- proto: ClosetSteelBase + entities: + - uid: 53 + components: + - type: Transform + pos: -2.5,-2.5 + parent: 1 +- proto: ClosetToolFilled + entities: + - uid: 55 + components: + - type: Transform + pos: 1.5,-7.5 + parent: 1 +- proto: ComputerAlert + entities: + - uid: 56 + components: + - type: Transform + pos: 0.5,0.5 + parent: 1 +- proto: ComputerShuttle + entities: + - uid: 57 + components: + - type: Transform + pos: -0.5,0.5 + parent: 1 +- proto: CratePrivateSecure + entities: + - uid: 58 + components: + - type: Transform + pos: -2.5,-6.5 + parent: 1 +- proto: EmergencyLight + entities: + - uid: 59 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-2.5 + parent: 1 + - type: PointLight + enabled: True + - type: ActiveEmergencyLight + - uid: 60 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-4.5 + parent: 1 + - type: PointLight + enabled: True + - type: ActiveEmergencyLight + - uid: 61 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-0.5 + parent: 1 + - type: PointLight + enabled: True + - type: ActiveEmergencyLight +- proto: GasPassiveVent + entities: + - uid: 158 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPipeStraight + entities: + - uid: 62 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 63 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 64 + components: + - type: Transform + pos: 0.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 65 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 66 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 67 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 151 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 152 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 153 + components: + - type: Transform + pos: -1.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 154 + components: + - type: Transform + pos: -1.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 155 + components: + - type: Transform + pos: -1.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 156 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPipeTJunction + entities: + - uid: 68 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 69 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 157 + components: + - type: Transform + pos: -1.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 159 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPort + entities: + - uid: 70 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' +- proto: GasVentPump + entities: + - uid: 71 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 72 + components: + - type: Transform + pos: 0.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 73 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' +- proto: GasVentScrubber + entities: + - uid: 148 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 149 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 150 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GravityGeneratorMini + entities: + - uid: 75 + components: + - type: Transform + pos: -0.5,-8.5 + parent: 1 +- proto: Grille + entities: + - uid: 76 + components: + - type: Transform + pos: 1.5,-0.5 + parent: 1 + - uid: 77 + components: + - type: Transform + pos: 1.5,0.5 + parent: 1 + - uid: 78 + components: + - type: Transform + pos: 0.5,1.5 + parent: 1 + - uid: 79 + components: + - type: Transform + pos: -0.5,1.5 + parent: 1 + - uid: 80 + components: + - type: Transform + pos: -1.5,1.5 + parent: 1 + - uid: 81 + components: + - type: Transform + pos: -3.5,-4.5 + parent: 1 + - uid: 82 + components: + - type: Transform + pos: -3.5,-3.5 + parent: 1 + - uid: 83 + components: + - type: Transform + pos: -3.5,-2.5 + parent: 1 + - uid: 84 + components: + - type: Transform + pos: -2.5,-0.5 + parent: 1 + - uid: 85 + components: + - type: Transform + pos: -2.5,0.5 + parent: 1 + - uid: 86 + components: + - type: Transform + pos: 2.5,-3.5 + parent: 1 + - uid: 87 + components: + - type: Transform + pos: 2.5,-4.5 + parent: 1 + - uid: 88 + components: + - type: Transform + pos: 2.5,-6.5 + parent: 1 +- proto: Gyroscope + entities: + - uid: 89 + components: + - type: Transform + pos: -1.5,0.5 + parent: 1 +- proto: MedkitFilled + entities: + - uid: 90 + components: + - type: Transform + pos: 1.6860802,-2.5876162 + parent: 1 +- proto: MedkitOxygenFilled + entities: + - uid: 91 + components: + - type: Transform + pos: 1.3110802,-2.3061707 + parent: 1 +- proto: PortableGeneratorPacman + entities: + - uid: 74 + components: + - type: Transform + pos: -1.5,-8.5 + parent: 1 +- proto: Poweredlight + entities: + - uid: 92 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-7.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 95 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-7.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 +- proto: PoweredLightBlueInterior + entities: + - uid: 96 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-4.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 +- proto: PoweredSmallLight + entities: + - uid: 94 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-0.5 + parent: 1 + - uid: 114 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-4.5 + parent: 1 +- proto: Rack + entities: + - uid: 97 + components: + - type: Transform + pos: 1.5,-2.5 + parent: 1 +- proto: RandomFoodMeal + entities: + - uid: 98 + components: + - type: Transform + pos: -2.5,-4.5 + parent: 1 +- proto: SheetPlasma + entities: + - uid: 147 + components: + - type: Transform + pos: -1.4101079,-7.5853066 + parent: 1 +- proto: ShuttleWindow + entities: + - uid: 99 + components: + - type: Transform + pos: 2.5,-4.5 + parent: 1 + - uid: 100 + components: + - type: Transform + pos: 1.5,-0.5 + parent: 1 + - uid: 101 + components: + - type: Transform + pos: 1.5,0.5 + parent: 1 + - uid: 102 + components: + - type: Transform + pos: 0.5,1.5 + parent: 1 + - uid: 103 + components: + - type: Transform + pos: -0.5,1.5 + parent: 1 + - uid: 104 + components: + - type: Transform + pos: -1.5,1.5 + parent: 1 + - uid: 105 + components: + - type: Transform + pos: -2.5,0.5 + parent: 1 + - uid: 106 + components: + - type: Transform + pos: -2.5,-0.5 + parent: 1 + - uid: 107 + components: + - type: Transform + pos: 2.5,-3.5 + parent: 1 + - uid: 108 + components: + - type: Transform + pos: 2.5,-6.5 + parent: 1 + - uid: 109 + components: + - type: Transform + pos: -3.5,-2.5 + parent: 1 + - uid: 110 + components: + - type: Transform + pos: -3.5,-3.5 + parent: 1 + - uid: 111 + components: + - type: Transform + pos: -3.5,-4.5 + parent: 1 +- proto: SubstationWallBasic + entities: + - uid: 112 + components: + - type: Transform + pos: -1.5,-5.5 + parent: 1 +- proto: Table + entities: + - uid: 113 + components: + - type: Transform + pos: -2.5,-4.5 + parent: 1 +- proto: TableReinforcedGlass + entities: + - uid: 93 + components: + - type: Transform + pos: -1.5,-0.5 + parent: 1 +- proto: Thruster + entities: + - uid: 115 + components: + - type: Transform + pos: 2.5,0.5 + parent: 1 + - uid: 116 + components: + - type: Transform + pos: -3.5,0.5 + parent: 1 + - uid: 117 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-0.5 + parent: 1 + - uid: 118 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-0.5 + parent: 1 + - uid: 119 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-9.5 + parent: 1 + - uid: 120 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-9.5 + parent: 1 +- proto: VendingMachineCoffee + entities: + - uid: 121 + components: + - type: Transform + pos: 1.5,-3.5 + parent: 1 +- proto: WallShuttle + entities: + - uid: 122 + components: + - type: Transform + pos: -0.5,-2.5 + parent: 1 + - uid: 123 + components: + - type: Transform + pos: -0.5,-4.5 + parent: 1 + - uid: 124 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 1 + - uid: 125 + components: + - type: Transform + pos: -1.5,-5.5 + parent: 1 + - uid: 126 + components: + - type: Transform + pos: -2.5,-5.5 + parent: 1 + - uid: 127 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 + - uid: 128 + components: + - type: Transform + pos: -1.5,-1.5 + parent: 1 + - uid: 129 + components: + - type: Transform + pos: -3.5,-6.5 + parent: 1 + - uid: 130 + components: + - type: Transform + pos: -3.5,-5.5 + parent: 1 + - uid: 131 + components: + - type: Transform + pos: -2.5,-1.5 + parent: 1 + - uid: 132 + components: + - type: Transform + pos: 1.5,-1.5 + parent: 1 + - uid: 133 + components: + - type: Transform + pos: 2.5,-2.5 + parent: 1 + - uid: 134 + components: + - type: Transform + pos: 2.5,-7.5 + parent: 1 + - uid: 135 + components: + - type: Transform + pos: -3.5,-7.5 + parent: 1 + - uid: 136 + components: + - type: Transform + pos: -2.5,-8.5 + parent: 1 + - uid: 137 + components: + - type: Transform + pos: 1.5,-8.5 + parent: 1 + - uid: 138 + components: + - type: Transform + pos: 0.5,-9.5 + parent: 1 + - uid: 139 + components: + - type: Transform + pos: -0.5,-9.5 + parent: 1 + - uid: 140 + components: + - type: Transform + pos: -1.5,-9.5 + parent: 1 +- proto: WallShuttleDiagonal + entities: + - uid: 141 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-8.5 + parent: 1 + - uid: 142 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-8.5 + parent: 1 + - uid: 143 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,1.5 + parent: 1 + - uid: 144 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-1.5 + parent: 1 + - uid: 145 + components: + - type: Transform + pos: -2.5,1.5 + parent: 1 + - uid: 146 + components: + - type: Transform + pos: -3.5,-1.5 + parent: 1 +- proto: WarpPoint + entities: + - uid: 160 + components: + - type: Transform + pos: -0.5,-4.5 + parent: 1 + - type: WarpPoint + location: NTCV Nomad +... diff --git a/Resources/Maps/Shuttles/DeltaV/ntsv-tote.yml b/Resources/Maps/Shuttles/DeltaV/ntsv-tote.yml new file mode 100644 index 00000000000..78c692ba339 --- /dev/null +++ b/Resources/Maps/Shuttles/DeltaV/ntsv-tote.yml @@ -0,0 +1,1231 @@ +meta: + format: 6 + postmapinit: false +tilemap: + 0: Space + 55: FloorMono + 60: FloorRGlass + 61: FloorReinforced + 81: FloorTechMaint + 96: Lattice + 97: Plating +entities: +- proto: "" + entities: + - uid: 1 + components: + - type: MetaData + - type: Transform + - type: MapGrid + chunks: + -1,-1: + ind: -1,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYAAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAUQAAAAAAUQAAAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAUQAAAAAAUQAAAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPQAAAAAAUQAAAAAAUQAAAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPQAAAAAAUQAAAAAAUQAAAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAUQAAAAAAUQAAAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAUQAAAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAPAAAAAAAUQAAAAAA + version: 6 + 0,-1: + ind: 0,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAAAAAUQAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAUQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAUQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAANwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAUQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAAAAAYQAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAAAAYQAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,0: + ind: -1,0 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAPAAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 0,0: + ind: 0,0 + tiles: PAAAAAAAYQAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + - type: Broadphase + - type: Physics + bodyStatus: InAir + angularDamping: 0.05 + linearDamping: 0.05 + fixedRotation: False + bodyType: Dynamic + - type: Fixtures + fixtures: {} + - type: OccluderTree + - type: Shuttle + - type: GridPathfinding + - type: Gravity + gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + - type: DecalGrid + chunkCollection: + version: 2 + nodes: + - node: + color: '#FFFFFFFF' + id: BrickTileDarkCornerNe + decals: + 1: -2,-3 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkCornerNw + decals: + 0: -3,-3 + - node: + color: '#FFFFFFFF' + id: DeliveryGreyscale + decals: + 2: -3,-5 + 3: -2,-5 + 4: -1,-7 + 5: -2,-7 + 6: -2,-6 + 7: -3,-6 + 8: -3,-7 + 9: -3,-8 + 10: -2,-8 + 11: -1,-8 + 12: -1,-6 + 13: -1,-5 + - type: GridAtmosphere + version: 2 + data: + tiles: + -1,-3: + 0: 4848 + 1: 57344 + -1,-2: + 1: 61166 + -1,-1: + 1: 52366 + 0: 4352 + -1,0: + 0: 33 + 1: 12 + 0,-3: + 0: 17008 + 1: 12288 + 0,-2: + 1: 29555 + 0,-1: + 1: 4355 + 0: 17408 + 0,0: + 1: 1 + 0: 36 + uniqueMixes: + - volume: 2500 + immutable: True + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.15 + moles: + - 21.824879 + - 82.10312 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + chunkSize: 4 + - type: RadiationGridResistance + - type: GasTileOverlay + - type: SpreaderGrid + - type: GravityShake + shakeTimes: 10 +- proto: AirCanister + entities: + - uid: 2 + components: + - type: Transform + pos: 0.5,-8.5 + parent: 1 +- proto: AirlockCommandGlass + entities: + - uid: 3 + components: + - type: Transform + pos: -0.5,-2.5 + parent: 1 +- proto: AirlockExternalGlassShuttleLocked + entities: + - uid: 4 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-6.5 + parent: 1 + - uid: 5 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-4.5 + parent: 1 +- proto: APCBasic + entities: + - uid: 6 + components: + - type: MetaData + name: Main APC + - type: Transform + pos: 0.5,-2.5 + parent: 1 +- proto: AtmosDeviceFanTiny + entities: + - uid: 7 + components: + - type: Transform + pos: 2.5,-4.5 + parent: 1 + - uid: 8 + components: + - type: Transform + pos: -3.5,-6.5 + parent: 1 + - uid: 9 + components: + - type: Transform + pos: 2.5,-6.5 + parent: 1 + - uid: 10 + components: + - type: Transform + pos: -3.5,-5.5 + parent: 1 +- proto: BlastDoor + entities: + - uid: 11 + components: + - type: Transform + pos: 2.5,-3.5 + parent: 1 + - uid: 12 + components: + - type: Transform + pos: 2.5,-7.5 + parent: 1 + - uid: 13 + components: + - type: Transform + pos: -3.5,-6.5 + parent: 1 + - uid: 14 + components: + - type: Transform + pos: -3.5,-5.5 + parent: 1 +- proto: CableApcExtension + entities: + - uid: 15 + components: + - type: Transform + pos: -1.5,-5.5 + parent: 1 + - uid: 16 + components: + - type: Transform + pos: 1.5,-8.5 + parent: 1 + - uid: 17 + components: + - type: Transform + pos: 0.5,-3.5 + parent: 1 + - uid: 18 + components: + - type: Transform + pos: -2.5,-5.5 + parent: 1 + - uid: 19 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 1 + - uid: 20 + components: + - type: Transform + pos: 0.5,-7.5 + parent: 1 + - uid: 21 + components: + - type: Transform + pos: 0.5,-6.5 + parent: 1 + - uid: 22 + components: + - type: Transform + pos: 0.5,-5.5 + parent: 1 + - uid: 23 + components: + - type: Transform + pos: 0.5,-4.5 + parent: 1 + - uid: 24 + components: + - type: Transform + pos: 0.5,-2.5 + parent: 1 + - uid: 25 + components: + - type: Transform + pos: 0.5,-0.5 + parent: 1 + - uid: 26 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 + - uid: 27 + components: + - type: Transform + pos: -0.5,-8.5 + parent: 1 + - uid: 28 + components: + - type: Transform + pos: -1.5,-8.5 + parent: 1 + - uid: 29 + components: + - type: Transform + pos: 0.5,-8.5 + parent: 1 + - uid: 30 + components: + - type: Transform + pos: 1.5,-5.5 + parent: 1 + - uid: 31 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 + - uid: 32 + components: + - type: Transform + pos: 1.5,-1.5 + parent: 1 + - uid: 33 + components: + - type: Transform + pos: -1.5,-1.5 + parent: 1 + - uid: 34 + components: + - type: Transform + pos: -2.5,-1.5 + parent: 1 + - uid: 35 + components: + - type: Transform + pos: -0.5,0.5 + parent: 1 + - uid: 36 + components: + - type: Transform + pos: -1.5,0.5 + parent: 1 + - uid: 37 + components: + - type: Transform + pos: 0.5,0.5 + parent: 1 +- proto: CableHV + entities: + - uid: 38 + components: + - type: Transform + pos: -0.5,-8.5 + parent: 1 + - uid: 39 + components: + - type: Transform + pos: -2.5,-8.5 + parent: 1 + - uid: 40 + components: + - type: Transform + pos: -1.5,-8.5 + parent: 1 + - uid: 41 + components: + - type: Transform + pos: 0.5,-8.5 + parent: 1 + - uid: 42 + components: + - type: Transform + pos: 0.5,-9.5 + parent: 1 +- proto: CableMV + entities: + - uid: 43 + components: + - type: Transform + pos: 0.5,-7.5 + parent: 1 + - uid: 44 + components: + - type: Transform + pos: 0.5,-5.5 + parent: 1 + - uid: 45 + components: + - type: Transform + pos: 0.5,-4.5 + parent: 1 + - uid: 46 + components: + - type: Transform + pos: 0.5,-3.5 + parent: 1 + - uid: 47 + components: + - type: Transform + pos: 0.5,-8.5 + parent: 1 + - uid: 48 + components: + - type: Transform + pos: 0.5,-9.5 + parent: 1 + - uid: 49 + components: + - type: Transform + pos: 0.5,-6.5 + parent: 1 + - uid: 50 + components: + - type: Transform + pos: 0.5,-2.5 + parent: 1 +- proto: Catwalk + entities: + - uid: 51 + components: + - type: Transform + pos: 1.5,-6.5 + parent: 1 + - uid: 52 + components: + - type: Transform + pos: 0.5,-6.5 + parent: 1 + - uid: 53 + components: + - type: Transform + pos: 0.5,-5.5 + parent: 1 + - uid: 54 + components: + - type: Transform + pos: 0.5,-4.5 + parent: 1 + - uid: 55 + components: + - type: Transform + pos: 1.5,-4.5 + parent: 1 + - uid: 56 + components: + - type: Transform + pos: 0.5,-3.5 + parent: 1 + - uid: 57 + components: + - type: Transform + pos: -0.5,-3.5 + parent: 1 + - uid: 58 + components: + - type: Transform + pos: -1.5,-3.5 + parent: 1 + - uid: 59 + components: + - type: Transform + pos: -2.5,-3.5 + parent: 1 + - uid: 60 + components: + - type: Transform + pos: 0.5,-7.5 + parent: 1 +- proto: ChairPilotSeat + entities: + - uid: 61 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-0.5 + parent: 1 + - uid: 62 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-0.5 + parent: 1 +- proto: ClosetEmergencyFilledRandom + entities: + - uid: 63 + components: + - type: Transform + pos: -2.5,-3.5 + parent: 1 +- proto: ComputerRadar + entities: + - uid: 64 + components: + - type: Transform + pos: 0.5,0.5 + parent: 1 +- proto: ComputerShuttle + entities: + - uid: 65 + components: + - type: Transform + pos: -1.5,0.5 + parent: 1 +- proto: ConveyorBelt + entities: + - uid: 66 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-3.5 + parent: 1 + - uid: 67 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-3.5 + parent: 1 + - uid: 68 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-7.5 + parent: 1 + - uid: 69 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-7.5 + parent: 1 +- proto: DrinkColaBottleFull + entities: + - uid: 70 + components: + - type: Transform + pos: 0.28666458,-1.4368018 + parent: 1 +- proto: DrinkSpaceUpBottleFull + entities: + - uid: 71 + components: + - type: Transform + pos: 0.6929146,-1.4993457 + parent: 1 +- proto: EmergencyLight + entities: + - uid: 72 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-5.5 + parent: 1 + - type: PointLight + enabled: True + - type: ActiveEmergencyLight + - uid: 73 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-1.5 + parent: 1 + - type: PointLight + enabled: True + - type: ActiveEmergencyLight +- proto: FoodSnackEnergy + entities: + - uid: 74 + components: + - type: Transform + pos: -1.2862521,-1.5931605 + parent: 1 + - uid: 75 + components: + - type: Transform + pos: -1.3695854,-1.2908673 + parent: 1 +- proto: GasPassiveVent + entities: + - uid: 164 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPipeBend + entities: + - uid: 76 + components: + - type: Transform + pos: 0.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 77 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 170 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPipeStraight + entities: + - uid: 78 + components: + - type: Transform + pos: 0.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 79 + components: + - type: Transform + pos: 0.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 80 + components: + - type: Transform + pos: -0.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 81 + components: + - type: Transform + pos: 0.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 82 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 166 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 167 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 168 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 169 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPipeTJunction + entities: + - uid: 83 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 165 + components: + - type: Transform + pos: -1.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPort + entities: + - uid: 84 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' +- proto: GasVentPump + entities: + - uid: 85 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 86 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' +- proto: GasVentScrubber + entities: + - uid: 163 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 171 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GravityGeneratorMini + entities: + - uid: 89 + components: + - type: Transform + pos: -0.5,-8.5 + parent: 1 +- proto: Grille + entities: + - uid: 90 + components: + - type: Transform + pos: 2.5,-5.5 + parent: 1 + - uid: 91 + components: + - type: Transform + pos: 1.5,-0.5 + parent: 1 + - uid: 92 + components: + - type: Transform + pos: 1.5,0.5 + parent: 1 + - uid: 93 + components: + - type: Transform + pos: 0.5,1.5 + parent: 1 + - uid: 94 + components: + - type: Transform + pos: -0.5,1.5 + parent: 1 + - uid: 95 + components: + - type: Transform + pos: -1.5,1.5 + parent: 1 + - uid: 96 + components: + - type: Transform + pos: -2.5,-0.5 + parent: 1 + - uid: 97 + components: + - type: Transform + pos: -2.5,0.5 + parent: 1 + - uid: 98 + components: + - type: Transform + pos: -3.5,-7.5 + parent: 1 + - uid: 99 + components: + - type: Transform + pos: -3.5,-4.5 + parent: 1 +- proto: Gyroscope + entities: + - uid: 100 + components: + - type: Transform + pos: 1.5,-8.5 + parent: 1 +- proto: MedkitFilled + entities: + - uid: 101 + components: + - type: Transform + pos: -1.6612521,-1.7599429 + parent: 1 +- proto: Paper + entities: + - uid: 102 + components: + - type: Transform + pos: -0.7629169,0.68541837 + parent: 1 + - uid: 103 + components: + - type: Transform + pos: -0.6379169,0.518636 + parent: 1 +- proto: PlasticFlapsAirtightClear + entities: + - uid: 104 + components: + - type: Transform + pos: 2.5,-7.5 + parent: 1 + - uid: 105 + components: + - type: Transform + pos: 2.5,-3.5 + parent: 1 +- proto: PlushieRouny + entities: + - uid: 106 + components: + - type: Transform + pos: -0.2629169,0.8417771 + parent: 1 +- proto: PortableGeneratorPacman + entities: + - uid: 87 + components: + - type: Transform + pos: -2.5,-8.5 + parent: 1 +- proto: Poweredlight + entities: + - uid: 107 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-1.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 108 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-1.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 109 + components: + - type: Transform + pos: -1.5,-3.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 +- proto: PoweredLightBlueInterior + entities: + - uid: 110 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-8.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 +- proto: Rack + entities: + - uid: 111 + components: + - type: Transform + pos: -1.5,-1.5 + parent: 1 +- proto: RandomPosterLegit + entities: + - uid: 112 + components: + - type: Transform + pos: -1.5,-2.5 + parent: 1 +- proto: SheetPlasma + entities: + - uid: 88 + components: + - type: Transform + pos: -1.484477,-8.427256 + parent: 1 +- proto: ShuttleWindow + entities: + - uid: 113 + components: + - type: Transform + pos: -3.5,-4.5 + parent: 1 + - uid: 114 + components: + - type: Transform + pos: -3.5,-7.5 + parent: 1 + - uid: 115 + components: + - type: Transform + pos: 1.5,-0.5 + parent: 1 + - uid: 116 + components: + - type: Transform + pos: 1.5,0.5 + parent: 1 + - uid: 117 + components: + - type: Transform + pos: 0.5,1.5 + parent: 1 + - uid: 118 + components: + - type: Transform + pos: -0.5,1.5 + parent: 1 + - uid: 119 + components: + - type: Transform + pos: -1.5,1.5 + parent: 1 + - uid: 120 + components: + - type: Transform + pos: -2.5,0.5 + parent: 1 + - uid: 121 + components: + - type: Transform + pos: -2.5,-0.5 + parent: 1 + - uid: 122 + components: + - type: Transform + pos: 2.5,-5.5 + parent: 1 +- proto: SignalSwitch + entities: + - uid: 123 + components: + - type: Transform + pos: 1.5,-2.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 11: + - On: Open + - Off: Close + 12: + - On: Open + - Off: Close +- proto: SignalSwitchDirectional + entities: + - uid: 124 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-4.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 14: + - On: Open + - Off: Close + 13: + - On: Open + - Off: Close +- proto: SubstationWallBasic + entities: + - uid: 125 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-9.5 + parent: 1 +- proto: Table + entities: + - uid: 126 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 +- proto: TableReinforced + entities: + - uid: 127 + components: + - type: Transform + pos: -0.5,0.5 + parent: 1 +- proto: Thruster + entities: + - uid: 128 + components: + - type: Transform + pos: 2.5,0.5 + parent: 1 + - uid: 129 + components: + - type: Transform + pos: -3.5,0.5 + parent: 1 + - uid: 130 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-0.5 + parent: 1 + - uid: 131 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-0.5 + parent: 1 + - uid: 132 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-10.5 + parent: 1 + - uid: 133 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-10.5 + parent: 1 + - uid: 134 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-10.5 + parent: 1 +- proto: ToolboxMechanicalFilled + entities: + - uid: 135 + components: + - type: Transform + pos: -1.680508,-3.6486564 + parent: 1 +- proto: TwoWayLever + entities: + - uid: 136 + components: + - type: Transform + pos: 1.5,-5.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 68: + - Left: Forward + - Right: Reverse + - Middle: Off + 69: + - Left: Forward + - Right: Reverse + - Middle: Off + 66: + - Left: Forward + - Right: Reverse + - Middle: Off + 67: + - Left: Forward + - Right: Reverse + - Middle: Off +- proto: WallShuttle + entities: + - uid: 137 + components: + - type: Transform + pos: 2.5,-8.5 + parent: 1 + - uid: 138 + components: + - type: Transform + pos: -3.5,-8.5 + parent: 1 + - uid: 139 + components: + - type: Transform + pos: 1.5,-9.5 + parent: 1 + - uid: 140 + components: + - type: Transform + pos: -3.5,-2.5 + parent: 1 + - uid: 141 + components: + - type: Transform + pos: -2.5,-9.5 + parent: 1 + - uid: 142 + components: + - type: Transform + pos: -2.5,-1.5 + parent: 1 + - uid: 143 + components: + - type: Transform + pos: 2.5,-2.5 + parent: 1 + - uid: 144 + components: + - type: Transform + pos: 0.5,-9.5 + parent: 1 + - uid: 145 + components: + - type: Transform + pos: -0.5,-9.5 + parent: 1 + - uid: 146 + components: + - type: Transform + pos: -1.5,-9.5 + parent: 1 + - uid: 147 + components: + - type: Transform + pos: -3.5,-3.5 + parent: 1 + - uid: 148 + components: + - type: Transform + pos: 0.5,-2.5 + parent: 1 + - uid: 149 + components: + - type: Transform + pos: -1.5,-2.5 + parent: 1 + - uid: 150 + components: + - type: Transform + pos: -3.5,-9.5 + parent: 1 + - uid: 151 + components: + - type: Transform + pos: -2.5,-2.5 + parent: 1 + - uid: 152 + components: + - type: Transform + pos: 1.5,-2.5 + parent: 1 + - uid: 153 + components: + - type: Transform + pos: 1.5,-1.5 + parent: 1 + - uid: 154 + components: + - type: Transform + pos: 2.5,-9.5 + parent: 1 + - uid: 155 + components: + - type: Transform + pos: 0.5,-10.5 + parent: 1 + - uid: 156 + components: + - type: Transform + pos: -1.5,-10.5 + parent: 1 +- proto: WallShuttleDiagonal + entities: + - uid: 157 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,1.5 + parent: 1 + - uid: 158 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-1.5 + parent: 1 + - uid: 159 + components: + - type: Transform + pos: -2.5,1.5 + parent: 1 + - uid: 160 + components: + - type: Transform + pos: -3.5,-1.5 + parent: 1 + - uid: 161 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-10.5 + parent: 1 + - uid: 162 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-10.5 + parent: 1 +- proto: WarpPoint + entities: + - uid: 172 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 1 + - type: WarpPoint + location: NTSV Tote +... diff --git a/Resources/Maps/Shuttles/DeltaV/ntv-pulse.yml b/Resources/Maps/Shuttles/DeltaV/ntv-pulse.yml new file mode 100644 index 00000000000..f68aebe500d --- /dev/null +++ b/Resources/Maps/Shuttles/DeltaV/ntv-pulse.yml @@ -0,0 +1,3622 @@ +meta: + format: 6 + postmapinit: false +tilemap: + 0: Space + 12: FloorBar + 24: FloorDark + 29: FloorDarkMono + 36: FloorEighties + 40: FloorGlass + 53: FloorMetalDiamond + 61: FloorReinforced + 81: FloorTechMaint + 82: FloorTechMaint2 + 94: FloorWood + 95: FloorWoodTile + 96: Lattice + 97: Plating +entities: +- proto: "" + entities: + - uid: 1 + components: + - type: MetaData + - type: Transform + - type: MapGrid + chunks: + -1,-1: + ind: -1,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAUgAAAAAAYQAAAAAAYQAAAAAAYAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAUgAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAPQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAUgAAAAAAUgAAAAAAYQAAAAAAUQAAAAAAGAAAAAAANQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAGAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAGAAAAAAAGAAAAAAAGAAAAAAAGAAAAAAAGAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAGAAAAAAAYQAAAAAAYQAAAAAAGAAAAAAAGAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAGAAAAAAAGAAAAAAAGAAAAAAAGAAAAAAAGAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAYQAAAAAAUQAAAAAAPQAAAAAAPQAAAAAAPQAAAAAAYQAAAAAA + version: 6 + 0,-1: + ind: 0,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAYQAAAAAAUgAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAUgAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAUQAAAAAAYQAAAAAAUgAAAAAAUgAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAUQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAUQAAAAAAYQAAAAAAUQAAAAAAUQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAYQAAAAAAUQAAAAAAYQAAAAAAUQAAAAAAYQAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,0: + ind: -1,0 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAHQAAAAAAGAAAAAAAGAAAAAAAGAAAAAAAGAAAAAAAGAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAHQAAAAAAYQAAAAAAHQAAAAAAHQAAAAAAYQAAAAAAGAAAAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPQAAAAAAHQAAAAAAYQAAAAAAHQAAAAAAHQAAAAAAYQAAAAAAGAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAAAAAGAAAAAAAYQAAAAAAHQAAAAAAHQAAAAAAYQAAAAAAGAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPQAAAAAAGAAAAAAAYQAAAAAAHQAAAAAAHQAAAAAAYQAAAAAAGAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAAAAAGAAAAAAAYQAAAAAAHQAAAAAAHQAAAAAAYQAAAAAAGAAAAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAAAAAGAAAAAAAYQAAAAAAHQAAAAAAHQAAAAAAYQAAAAAAGAAAAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAHQAAAAAAYQAAAAAAHQAAAAAAHQAAAAAAYQAAAAAAGAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAHQAAAAAAGAAAAAAAGAAAAAAAGAAAAAAAGAAAAAAAGAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAHQAAAAAAGAAAAAAAGAAAAAAAYQAAAAAAUQAAAAAAUQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAANQAAAAAANQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAUQAAAAAAUQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 0,0: + ind: 0,0 + tiles: GAAAAAAAGAAAAAAAJAAAAAAAJAAAAAAAJAAAAAAAJAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAGAAAAAAAJAAAAAAAJAAAAAAAJAAAAAAAJAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAGAAAAAAAJAAAAAAAJAAAAAAAJAAAAAAAJAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAUQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAADAAAAAAADAAAAAAADAAAAAAADAAAAAAADAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAADAAAAAAAKAAAAAAADAAAAAAAKAAAAAAADAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAKAAAAAAADAAAAAAAKAAAAAAADAAAAAAADAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAADAAAAAAADAAAAAAADAAAAAAADAAAAAAADAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAAAAXgAAAAAAXgAAAAAAXgAAAAAAXgAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAAAAXgAAAAAAXgAAAAAAXgAAAAAAXgAAAAAAYQAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXwAAAAAAXwAAAAAAXwAAAAAAXwAAAAAAXwAAAAAAYQAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + - type: Broadphase + - type: Physics + bodyStatus: InAir + angularDamping: 0.05 + linearDamping: 0.05 + fixedRotation: False + bodyType: Dynamic + - type: Fixtures + fixtures: {} + - type: OccluderTree + - type: Shuttle + - type: GridPathfinding + - type: Gravity + gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + - type: DecalGrid + chunkCollection: + version: 2 + nodes: + - node: + color: '#FFFFFFFF' + id: BrickTileDarkLineW + decals: + 18: 2,0 + 19: 2,1 + 20: 2,2 + - node: + color: '#FFFFFFFF' + id: Delivery + decals: + 0: -5,2 + 1: -4,2 + 2: -4,3 + 3: -5,3 + 4: -4,5 + 5: -5,5 + 6: -5,6 + 7: -4,6 + 14: -5,1 + 15: -4,1 + 16: -4,7 + 17: -5,7 + - node: + color: '#FFFFFFFF' + id: WarnBox + decals: + 21: -1,-6 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinLineN + decals: + 8: 0,7 + 9: 1,7 + 10: 2,7 + 11: 3,7 + 12: 4,7 + 13: 5,7 + - type: GridAtmosphere + version: 2 + data: + tiles: + -2,-1: + 0: 4352 + 1: 36044 + -2,-3: + 0: 8192 + -2,-2: + 1: 3272 + -2,0: + 1: 65262 + -1,-2: + 1: 53008 + 0: 12 + -1,-1: + 1: 4095 + -1,-3: + 0: 57344 + -1,0: + 1: 30711 + 0,-3: + 0: 12288 + 0,-2: + 0: 1 + 1: 8136 + 0,-1: + 1: 3581 + 0,0: + 1: 12287 + 1,-2: + 1: 272 + 1,-1: + 1: 273 + 0: 17408 + 1,-3: + 0: 8192 + 1,0: + 1: 819 + -2,1: + 1: 61182 + -2,2: + 1: 3310 + 0: 256 + -1,1: + 1: 32759 + -1,2: + 1: 26215 + -2,3: + 0: 8 + -1,3: + 0: 15 + 0,1: + 1: 65535 + 0,2: + 1: 4095 + 0,3: + 0: 15 + 1,1: + 1: 13107 + 1,2: + 1: 273 + 0: 1088 + uniqueMixes: + - volume: 2500 + immutable: True + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.15 + moles: + - 21.824879 + - 82.10312 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + chunkSize: 4 + - type: GasTileOverlay + - type: RadiationGridResistance + - type: SpreaderGrid + - type: GravityShake + shakeTimes: 10 +- proto: AirAlarm + entities: + - uid: 2 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,9.5 + parent: 1 + - type: DeviceList + devices: + - 306 + - 237 + - 236 + - 233 + - 540 + - uid: 3 + components: + - type: Transform + pos: 2.5,3.5 + parent: 1 + - type: DeviceList + devices: + - 233 + - 234 + - 305 + - 251 + - uid: 4 + components: + - type: Transform + pos: -3.5,9.5 + parent: 1 + - type: DeviceList + devices: + - 235 + - 234 + - 236 + - 237 + - 293 + - 279 + - 262 + - 308 + - uid: 5 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-3.5 + parent: 1 + - type: DeviceList + devices: + - 235 + - 307 + - 303 + - 405 + - 22 + - 21 +- proto: AirCanister + entities: + - uid: 6 + components: + - type: Transform + pos: 4.5,-3.5 + parent: 1 +- proto: Airlock + entities: + - uid: 7 + components: + - type: MetaData + name: Dorms + - type: Transform + pos: -0.5,1.5 + parent: 1 + - uid: 8 + components: + - type: MetaData + name: Dorms + - type: Transform + pos: 1.5,3.5 + parent: 1 +- proto: AirlockAtmospherics + entities: + - uid: 9 + components: + - type: MetaData + name: Atmospherics + - type: Transform + pos: 1.5,-2.5 + parent: 1 +- proto: AirlockCommand + entities: + - uid: 10 + components: + - type: MetaData + name: Bridge + - type: Transform + pos: -4.5,-0.5 + parent: 1 +- proto: AirlockEngineering + entities: + - uid: 11 + components: + - type: MetaData + name: Starboard Power Room + - type: Transform + pos: 1.5,-5.5 + parent: 1 + - uid: 12 + components: + - type: MetaData + name: Port Power Room + - type: Transform + pos: -2.5,-5.5 + parent: 1 +- proto: AirlockExternalGlassLocked + entities: + - uid: 13 + components: + - type: Transform + pos: -2.5,9.5 + parent: 1 + - type: DeviceLinkSink + invokeCounter: 1 + - uid: 14 + components: + - type: Transform + pos: -2.5,11.5 + parent: 1 + - type: DeviceLinkSink + invokeCounter: 1 + - uid: 15 + components: + - type: Transform + pos: -1.5,9.5 + parent: 1 + - type: DeviceLinkSink + invokeCounter: 1 + - uid: 16 + components: + - type: Transform + pos: -1.5,11.5 + parent: 1 + - type: DeviceLinkSink + invokeCounter: 1 +- proto: AirlockExternalGlassShuttleLocked + entities: + - uid: 17 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,5.5 + parent: 1 + - uid: 18 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,3.5 + parent: 1 +- proto: AirlockGlass + entities: + - uid: 19 + components: + - type: MetaData + name: Bar + - type: Transform + pos: -0.5,6.5 + parent: 1 + - uid: 20 + components: + - type: MetaData + name: Bar + - type: Transform + pos: -0.5,5.5 + parent: 1 +- proto: APCBasic + entities: + - uid: 24 + components: + - type: MetaData + name: Dorms APC + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,2.5 + parent: 1 + - uid: 25 + components: + - type: MetaData + name: Bar APC + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,7.5 + parent: 1 + - uid: 51 + components: + - type: MetaData + name: Cargo Hold APC + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-0.5 + parent: 1 +- proto: APCHighCapacity + entities: + - uid: 26 + components: + - type: MetaData + name: Engineering APC + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-4.5 + parent: 1 +- proto: AppraisalTool + entities: + - uid: 27 + components: + - type: Transform + pos: -6.307013,2.3947196 + parent: 1 +- proto: AtmosDeviceFanTiny + entities: + - uid: 28 + components: + - type: Transform + pos: -7.5,3.5 + parent: 1 + - uid: 29 + components: + - type: Transform + pos: -7.5,5.5 + parent: 1 +- proto: BarSignTheSun + entities: + - uid: 30 + components: + - type: Transform + pos: 3.5,11.5 + parent: 1 +- proto: Bed + entities: + - uid: 31 + components: + - type: Transform + pos: 5.5,2.5 + parent: 1 + - uid: 32 + components: + - type: Transform + pos: 3.5,0.5 + parent: 1 + - uid: 33 + components: + - type: Transform + pos: 5.5,0.5 + parent: 1 + - uid: 34 + components: + - type: Transform + pos: 3.5,2.5 + parent: 1 +- proto: BedsheetSpawner + entities: + - uid: 35 + components: + - type: Transform + pos: 3.5,2.5 + parent: 1 + - uid: 36 + components: + - type: Transform + pos: 5.5,2.5 + parent: 1 + - uid: 37 + components: + - type: Transform + pos: 5.5,0.5 + parent: 1 + - uid: 38 + components: + - type: Transform + pos: 3.5,0.5 + parent: 1 +- proto: BlastDoor + entities: + - uid: 39 + components: + - type: Transform + pos: -7.5,6.5 + parent: 1 +- proto: BoxFolderGrey + entities: + - uid: 40 + components: + - type: Transform + pos: -1.6694045,-1.2501366 + parent: 1 +- proto: CableApcExtension + entities: + - uid: 41 + components: + - type: Transform + pos: 3.5,9.5 + parent: 1 + - uid: 42 + components: + - type: Transform + pos: -0.5,1.5 + parent: 1 + - uid: 43 + components: + - type: Transform + pos: -0.5,2.5 + parent: 1 + - uid: 44 + components: + - type: Transform + pos: 3.5,11.5 + parent: 1 + - uid: 45 + components: + - type: Transform + pos: -1.5,-5.5 + parent: 1 + - uid: 46 + components: + - type: Transform + pos: 0.5,1.5 + parent: 1 + - uid: 47 + components: + - type: Transform + pos: 1.5,1.5 + parent: 1 + - uid: 48 + components: + - type: Transform + pos: 2.5,1.5 + parent: 1 + - uid: 49 + components: + - type: Transform + pos: 3.5,1.5 + parent: 1 + - uid: 50 + components: + - type: Transform + pos: 4.5,1.5 + parent: 1 + - uid: 52 + components: + - type: Transform + pos: -2.5,2.5 + parent: 1 + - uid: 53 + components: + - type: Transform + pos: 0.5,7.5 + parent: 1 + - uid: 54 + components: + - type: Transform + pos: -4.5,1.5 + parent: 1 + - uid: 55 + components: + - type: Transform + pos: -5.5,2.5 + parent: 1 + - uid: 56 + components: + - type: Transform + pos: -5.5,3.5 + parent: 1 + - uid: 57 + components: + - type: Transform + pos: -5.5,4.5 + parent: 1 + - uid: 58 + components: + - type: Transform + pos: -5.5,5.5 + parent: 1 + - uid: 59 + components: + - type: Transform + pos: -5.5,6.5 + parent: 1 + - uid: 60 + components: + - type: Transform + pos: -5.5,7.5 + parent: 1 + - uid: 61 + components: + - type: Transform + pos: -3.5,7.5 + parent: 1 + - uid: 62 + components: + - type: Transform + pos: -2.5,6.5 + parent: 1 + - uid: 63 + components: + - type: Transform + pos: -2.5,4.5 + parent: 1 + - uid: 64 + components: + - type: Transform + pos: -2.5,5.5 + parent: 1 + - uid: 65 + components: + - type: Transform + pos: -2.5,3.5 + parent: 1 + - uid: 66 + components: + - type: Transform + pos: -2.5,7.5 + parent: 1 + - uid: 67 + components: + - type: Transform + pos: -2.5,8.5 + parent: 1 + - uid: 68 + components: + - type: Transform + pos: -2.5,9.5 + parent: 1 + - uid: 69 + components: + - type: Transform + pos: -5.5,1.5 + parent: 1 + - uid: 70 + components: + - type: Transform + pos: -3.5,1.5 + parent: 1 + - uid: 71 + components: + - type: Transform + pos: -0.5,7.5 + parent: 1 + - uid: 72 + components: + - type: Transform + pos: 1.5,6.5 + parent: 1 + - uid: 73 + components: + - type: Transform + pos: 1.5,7.5 + parent: 1 + - uid: 74 + components: + - type: Transform + pos: 1.5,8.5 + parent: 1 + - uid: 75 + components: + - type: Transform + pos: 3.5,10.5 + parent: 1 + - uid: 76 + components: + - type: Transform + pos: 3.5,8.5 + parent: 1 + - uid: 77 + components: + - type: Transform + pos: 3.5,7.5 + parent: 1 + - uid: 78 + components: + - type: Transform + pos: 3.5,6.5 + parent: 1 + - uid: 79 + components: + - type: Transform + pos: 4.5,6.5 + parent: 1 + - uid: 80 + components: + - type: Transform + pos: 4.5,5.5 + parent: 1 + - uid: 81 + components: + - type: Transform + pos: 2.5,6.5 + parent: 1 + - uid: 82 + components: + - type: Transform + pos: 1.5,5.5 + parent: 1 + - uid: 83 + components: + - type: Transform + pos: -2.5,-4.5 + parent: 1 + - uid: 84 + components: + - type: Transform + pos: -2.5,-5.5 + parent: 1 + - uid: 85 + components: + - type: Transform + pos: -3.5,-5.5 + parent: 1 + - uid: 86 + components: + - type: Transform + pos: -4.5,-5.5 + parent: 1 + - uid: 87 + components: + - type: Transform + pos: -4.5,-6.5 + parent: 1 + - uid: 88 + components: + - type: Transform + pos: -2.5,-6.5 + parent: 1 + - uid: 89 + components: + - type: Transform + pos: -1.5,-6.5 + parent: 1 + - uid: 90 + components: + - type: Transform + pos: 0.5,-5.5 + parent: 1 + - uid: 91 + components: + - type: Transform + pos: 0.5,-6.5 + parent: 1 + - uid: 92 + components: + - type: Transform + pos: 1.5,-6.5 + parent: 1 + - uid: 93 + components: + - type: Transform + pos: 2.5,-6.5 + parent: 1 + - uid: 94 + components: + - type: Transform + pos: 3.5,-6.5 + parent: 1 + - uid: 95 + components: + - type: Transform + pos: -2.5,-3.5 + parent: 1 + - uid: 96 + components: + - type: Transform + pos: -2.5,-2.5 + parent: 1 + - uid: 97 + components: + - type: Transform + pos: -3.5,-2.5 + parent: 1 + - uid: 98 + components: + - type: Transform + pos: -4.5,-2.5 + parent: 1 + - uid: 99 + components: + - type: Transform + pos: -1.5,-2.5 + parent: 1 + - uid: 100 + components: + - type: Transform + pos: -0.5,-2.5 + parent: 1 + - uid: 101 + components: + - type: Transform + pos: 0.5,-2.5 + parent: 1 + - uid: 102 + components: + - type: Transform + pos: 1.5,-2.5 + parent: 1 + - uid: 103 + components: + - type: Transform + pos: 2.5,-2.5 + parent: 1 + - uid: 104 + components: + - type: Transform + pos: 3.5,-2.5 + parent: 1 + - uid: 105 + components: + - type: Transform + pos: -2.5,1.5 + parent: 1 + - uid: 106 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 1 + - uid: 107 + components: + - type: Transform + pos: -5.5,-6.5 + parent: 1 + - uid: 108 + components: + - type: Transform + pos: 1.5,9.5 + parent: 1 + - uid: 109 + components: + - type: Transform + pos: 2.5,9.5 + parent: 1 + - uid: 110 + components: + - type: Transform + pos: -2.5,10.5 + parent: 1 + - uid: 111 + components: + - type: Transform + pos: -2.5,11.5 + parent: 1 + - uid: 112 + components: + - type: Transform + pos: -4.5,7.5 + parent: 1 + - uid: 113 + components: + - type: Transform + pos: 4.5,9.5 + parent: 1 + - uid: 114 + components: + - type: Transform + pos: 5.5,9.5 + parent: 1 + - uid: 115 + components: + - type: Transform + pos: -5.5,8.5 + parent: 1 + - uid: 116 + components: + - type: Transform + pos: -5.5,9.5 + parent: 1 + - uid: 117 + components: + - type: Transform + pos: -6.5,9.5 + parent: 1 + - uid: 118 + components: + - type: Transform + pos: -5.5,-2.5 + parent: 1 + - uid: 119 + components: + - type: Transform + pos: 4.5,-2.5 + parent: 1 + - uid: 120 + components: + - type: Transform + pos: -5.5,-7.5 + parent: 1 + - uid: 121 + components: + - type: Transform + pos: 4.5,-6.5 + parent: 1 + - uid: 122 + components: + - type: Transform + pos: 4.5,-7.5 + parent: 1 + - uid: 543 + components: + - type: Transform + pos: -5.5,-0.5 + parent: 1 + - uid: 544 + components: + - type: Transform + pos: -5.5,0.5 + parent: 1 +- proto: CableHV + entities: + - uid: 123 + components: + - type: Transform + pos: -5.5,-6.5 + parent: 1 + - uid: 124 + components: + - type: Transform + pos: -5.5,-5.5 + parent: 1 + - uid: 125 + components: + - type: Transform + pos: -4.5,-6.5 + parent: 1 + - uid: 126 + components: + - type: Transform + pos: -4.5,-7.5 + parent: 1 + - uid: 127 + components: + - type: Transform + pos: -3.5,-7.5 + parent: 1 + - uid: 128 + components: + - type: Transform + pos: 4.5,-6.5 + parent: 1 + - uid: 129 + components: + - type: Transform + pos: 4.5,-5.5 + parent: 1 + - uid: 130 + components: + - type: Transform + pos: 3.5,-6.5 + parent: 1 + - uid: 131 + components: + - type: Transform + pos: 3.5,-7.5 + parent: 1 + - uid: 132 + components: + - type: Transform + pos: 2.5,-7.5 + parent: 1 + - uid: 310 + components: + - type: Transform + pos: 4.5,-4.5 + parent: 1 + - uid: 313 + components: + - type: Transform + pos: -5.5,-4.5 + parent: 1 +- proto: CableMV + entities: + - uid: 133 + components: + - type: Transform + pos: -3.5,-7.5 + parent: 1 + - uid: 134 + components: + - type: Transform + pos: -3.5,-6.5 + parent: 1 + - uid: 135 + components: + - type: Transform + pos: -3.5,-5.5 + parent: 1 + - uid: 136 + components: + - type: Transform + pos: -2.5,-5.5 + parent: 1 + - uid: 137 + components: + - type: Transform + pos: -1.5,-5.5 + parent: 1 + - uid: 138 + components: + - type: Transform + pos: 2.5,-7.5 + parent: 1 + - uid: 139 + components: + - type: Transform + pos: 2.5,-6.5 + parent: 1 + - uid: 140 + components: + - type: Transform + pos: 2.5,-5.5 + parent: 1 + - uid: 141 + components: + - type: Transform + pos: 1.5,-5.5 + parent: 1 + - uid: 142 + components: + - type: Transform + pos: 0.5,-5.5 + parent: 1 + - uid: 143 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 1 + - uid: 144 + components: + - type: Transform + pos: -2.5,-4.5 + parent: 1 + - uid: 145 + components: + - type: Transform + pos: -2.5,-3.5 + parent: 1 + - uid: 146 + components: + - type: Transform + pos: -2.5,-2.5 + parent: 1 + - uid: 147 + components: + - type: Transform + pos: -3.5,-2.5 + parent: 1 + - uid: 148 + components: + - type: Transform + pos: -4.5,-2.5 + parent: 1 + - uid: 149 + components: + - type: Transform + pos: -4.5,-1.5 + parent: 1 + - uid: 150 + components: + - type: Transform + pos: -4.5,-0.5 + parent: 1 + - uid: 151 + components: + - type: Transform + pos: -4.5,0.5 + parent: 1 + - uid: 152 + components: + - type: Transform + pos: -3.5,0.5 + parent: 1 + - uid: 153 + components: + - type: Transform + pos: -2.5,0.5 + parent: 1 + - uid: 154 + components: + - type: Transform + pos: -1.5,0.5 + parent: 1 + - uid: 155 + components: + - type: Transform + pos: -1.5,1.5 + parent: 1 + - uid: 156 + components: + - type: Transform + pos: -1.5,2.5 + parent: 1 + - uid: 157 + components: + - type: Transform + pos: -1.5,3.5 + parent: 1 + - uid: 158 + components: + - type: Transform + pos: -1.5,4.5 + parent: 1 + - uid: 159 + components: + - type: Transform + pos: -1.5,5.5 + parent: 1 + - uid: 160 + components: + - type: Transform + pos: -1.5,6.5 + parent: 1 + - uid: 161 + components: + - type: Transform + pos: -0.5,2.5 + parent: 1 + - uid: 162 + components: + - type: Transform + pos: -1.5,7.5 + parent: 1 + - uid: 163 + components: + - type: Transform + pos: -0.5,7.5 + parent: 1 + - uid: 542 + components: + - type: Transform + pos: -5.5,-0.5 + parent: 1 +- proto: CableTerminal + entities: + - uid: 164 + components: + - type: Transform + pos: -4.5,-6.5 + parent: 1 + - uid: 165 + components: + - type: Transform + pos: 3.5,-6.5 + parent: 1 +- proto: Catwalk + entities: + - uid: 166 + components: + - type: Transform + pos: -1.5,10.5 + parent: 1 + - uid: 167 + components: + - type: Transform + pos: 3.5,-3.5 + parent: 1 + - uid: 168 + components: + - type: Transform + pos: 2.5,-3.5 + parent: 1 + - uid: 169 + components: + - type: Transform + pos: 2.5,-2.5 + parent: 1 + - uid: 170 + components: + - type: Transform + pos: 3.5,-1.5 + parent: 1 + - uid: 171 + components: + - type: Transform + pos: -3.5,-5.5 + parent: 1 + - uid: 172 + components: + - type: Transform + pos: -3.5,-6.5 + parent: 1 + - uid: 173 + components: + - type: Transform + pos: -4.5,-6.5 + parent: 1 + - uid: 174 + components: + - type: Transform + pos: 2.5,-5.5 + parent: 1 + - uid: 175 + components: + - type: Transform + pos: 2.5,-6.5 + parent: 1 + - uid: 176 + components: + - type: Transform + pos: 3.5,-6.5 + parent: 1 + - uid: 177 + components: + - type: Transform + pos: -2.5,10.5 + parent: 1 + - uid: 178 + components: + - type: Transform + pos: -2.5,1.5 + parent: 1 + - uid: 179 + components: + - type: Transform + pos: -2.5,2.5 + parent: 1 + - uid: 180 + components: + - type: Transform + pos: -2.5,3.5 + parent: 1 + - uid: 181 + components: + - type: Transform + pos: -2.5,4.5 + parent: 1 + - uid: 182 + components: + - type: Transform + pos: -2.5,5.5 + parent: 1 + - uid: 183 + components: + - type: Transform + pos: -2.5,6.5 + parent: 1 + - uid: 184 + components: + - type: Transform + pos: -2.5,7.5 + parent: 1 + - uid: 185 + components: + - type: Transform + pos: -5.5,7.5 + parent: 1 + - uid: 186 + components: + - type: Transform + pos: -5.5,6.5 + parent: 1 + - uid: 187 + components: + - type: Transform + pos: -5.5,5.5 + parent: 1 + - uid: 188 + components: + - type: Transform + pos: -5.5,4.5 + parent: 1 + - uid: 189 + components: + - type: Transform + pos: -5.5,3.5 + parent: 1 + - uid: 190 + components: + - type: Transform + pos: -5.5,2.5 + parent: 1 + - uid: 191 + components: + - type: Transform + pos: -5.5,1.5 + parent: 1 + - uid: 192 + components: + - type: Transform + pos: -4.5,-2.5 + parent: 1 + - uid: 193 + components: + - type: Transform + pos: -3.5,-2.5 + parent: 1 +- proto: Chair + entities: + - uid: 194 + components: + - type: Transform + pos: 5.5,6.5 + parent: 1 + - uid: 195 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,4.5 + parent: 1 +- proto: ChairFolding + entities: + - uid: 196 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.6808124,0.7546359 + parent: 1 +- proto: ChairPilotSeat + entities: + - uid: 197 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-2.5 + parent: 1 + - uid: 198 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-2.5 + parent: 1 + - uid: 199 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-3.5 + parent: 1 +- proto: CigarGold + entities: + - uid: 200 + components: + - type: Transform + pos: -1.6225295,-1.4221318 + parent: 1 +- proto: CigPackBlack + entities: + - uid: 201 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.3932991,8.65878 + parent: 1 +- proto: ClosetWallEmergencyFilledRandom + entities: + - uid: 202 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,4.5 + parent: 1 + - uid: 203 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-0.5 + parent: 1 + - uid: 204 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-4.5 + parent: 1 +- proto: ClosetWallFireFilledRandom + entities: + - uid: 205 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-0.5 + parent: 1 + - uid: 206 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,3.5 + parent: 1 +- proto: ClothingOuterSuitEmergency + entities: + - uid: 207 + components: + - type: Transform + pos: 0.3350801,2.7445116 + parent: 1 +- proto: ComputerPowerMonitoring + entities: + - uid: 214 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-4.5 + parent: 1 +- proto: ComputerRadar + entities: + - uid: 208 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-3.5 + parent: 1 +- proto: ComputerShuttle + entities: + - uid: 209 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 +- proto: ComputerStationRecords + entities: + - uid: 210 + components: + - type: Transform + pos: -2.5,-1.5 + parent: 1 +- proto: ConveyorBelt + entities: + - uid: 211 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,6.5 + parent: 1 + - uid: 212 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,6.5 + parent: 1 +- proto: Dresser + entities: + - uid: 213 + components: + - type: Transform + pos: 5.5,1.5 + parent: 1 +- proto: DrinkHotCoffee + entities: + - uid: 216 + components: + - type: Transform + pos: -6.3448253,0.66087633 + parent: 1 +- proto: DrinkShotGlass + entities: + - uid: 218 + components: + - type: Transform + pos: 2.4960687,8.513334 + parent: 1 + - uid: 219 + components: + - type: Transform + pos: 2.610652,8.7739315 + parent: 1 +- proto: DrinkVodkaBottleFull + entities: + - uid: 220 + components: + - type: Transform + pos: 2.173152,8.951138 + parent: 1 +- proto: EmergencyLight + entities: + - uid: 221 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,3.5 + parent: 1 + - type: PointLight + enabled: True + - type: ActiveEmergencyLight + - uid: 222 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,2.5 + parent: 1 + - type: PointLight + enabled: True + - type: ActiveEmergencyLight + - uid: 223 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,8.5 + parent: 1 + - type: PointLight + enabled: True + - type: ActiveEmergencyLight + - uid: 224 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-3.5 + parent: 1 + - type: PointLight + enabled: True + - type: ActiveEmergencyLight + - uid: 225 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-5.5 + parent: 1 + - type: PointLight + enabled: True + - type: ActiveEmergencyLight + - uid: 226 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-5.5 + parent: 1 + - type: PointLight + enabled: True + - type: ActiveEmergencyLight + - uid: 227 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-2.5 + parent: 1 + - type: PointLight + enabled: True + - type: ActiveEmergencyLight +- proto: ExtinguisherCabinetFilled + entities: + - uid: 228 + components: + - type: Transform + pos: 5.5,9.5 + parent: 1 + - uid: 229 + components: + - type: Transform + pos: -0.5,0.5 + parent: 1 + - uid: 230 + components: + - type: Transform + pos: -3.5,-4.5 + parent: 1 +- proto: FaxMachineBase + entities: + - uid: 231 + components: + - type: Transform + pos: -5.5,-1.5 + parent: 1 + - type: FaxMachine + name: NTV Pulse +- proto: filingCabinetDrawer + entities: + - uid: 232 + components: + - type: Transform + pos: -3.5,-1.5 + parent: 1 +- proto: Firelock + entities: + - uid: 233 + components: + - type: Transform + pos: 1.5,3.5 + parent: 1 + - uid: 234 + components: + - type: Transform + pos: -0.5,1.5 + parent: 1 + - uid: 235 + components: + - type: Transform + pos: -4.5,-0.5 + parent: 1 +- proto: FirelockGlass + entities: + - uid: 236 + components: + - type: Transform + pos: -0.5,5.5 + parent: 1 + - uid: 237 + components: + - type: Transform + pos: -0.5,6.5 + parent: 1 +- proto: FlashlightLantern + entities: + - uid: 238 + components: + - type: Transform + pos: -6.628556,2.4650698 + parent: 1 +- proto: Floodlight + entities: + - uid: 239 + components: + - type: Transform + pos: -1.1984899,0.8095134 + parent: 1 + - uid: 240 + components: + - type: Transform + pos: -1.6047399,0.54891473 + parent: 1 +- proto: FloorDrain + entities: + - uid: 241 + components: + - type: Transform + pos: 2.5,9.5 + parent: 1 + - type: Fixtures + fixtures: {} + - uid: 242 + components: + - type: Transform + pos: -3.5,4.5 + parent: 1 + - type: Fixtures + fixtures: {} +- proto: FoodBoxPizzaFilled + entities: + - uid: 243 + components: + - type: Transform + pos: 4.233193,8.783597 + parent: 1 +- proto: FoodDonutJellySlugcat + entities: + - uid: 244 + components: + - type: Transform + pos: -6.6627116,0.43958795 + parent: 1 +- proto: FoodLemon + entities: + - uid: 245 + components: + - type: Transform + pos: 2.5562944,10.4626045 + parent: 1 +- proto: GasMixer + entities: + - uid: 246 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-2.5 + parent: 1 + - type: GasMixer + inletTwoConcentration: 0.78 + inletOneConcentration: 0.22 + targetPressure: 200 + - type: AtmosPipeColor + color: '#0055CCFF' +- proto: GasPassiveVent + entities: + - uid: 247 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPipeBend + entities: + - uid: 215 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 248 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-1.5 + parent: 1 + - uid: 249 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 256 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 257 + components: + - type: Transform + pos: -1.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 258 + components: + - type: Transform + pos: -0.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 259 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 260 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 309 + components: + - type: Transform + pos: 2.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPipeFourway + entities: + - uid: 290 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 295 + components: + - type: Transform + pos: 2.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' +- proto: GasPipeStraight + entities: + - uid: 23 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 217 + components: + - type: Transform + pos: 1.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 252 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 254 + components: + - type: Transform + pos: 1.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 263 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 264 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 265 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 266 + components: + - type: Transform + pos: -4.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 267 + components: + - type: Transform + pos: -4.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 268 + components: + - type: Transform + pos: -4.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 269 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 270 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 271 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 272 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 273 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 274 + components: + - type: Transform + pos: -1.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 275 + components: + - type: Transform + pos: -1.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 276 + components: + - type: Transform + pos: -1.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 277 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 278 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 280 + components: + - type: Transform + pos: 1.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 281 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 282 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 283 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 284 + components: + - type: Transform + pos: -2.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 285 + components: + - type: Transform + pos: -2.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 286 + components: + - type: Transform + pos: -2.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 287 + components: + - type: Transform + pos: -2.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 288 + components: + - type: Transform + pos: -2.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 289 + components: + - type: Transform + pos: -1.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 291 + components: + - type: Transform + pos: -0.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 292 + components: + - type: Transform + pos: -0.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 298 + components: + - type: Transform + pos: -2.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 402 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 403 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 404 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 539 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 541 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 545 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 546 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPipeTJunction + entities: + - uid: 250 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 253 + components: + - type: Transform + pos: -1.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 255 + components: + - type: Transform + pos: -2.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 261 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 296 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 297 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 299 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 304 + components: + - type: Transform + pos: 1.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPort + entities: + - uid: 300 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-2.5 + parent: 1 + - uid: 301 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-1.5 + parent: 1 + - uid: 302 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' +- proto: GasPressurePump + entities: + - uid: 294 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' +- proto: GasVentPump + entities: + - uid: 21 + components: + - type: Transform + pos: 2.5,-1.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 5 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 251 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,1.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 3 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 262 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,5.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 4 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 279 + components: + - type: Transform + pos: -4.5,2.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 4 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 303 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 540 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,5.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 2 + - type: AtmosPipeColor + color: '#0055CCFF' +- proto: GasVentScrubber + entities: + - uid: 22 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-5.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 5 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 293 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,2.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 4 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 305 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,1.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 3 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 306 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 307 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 308 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,6.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 4 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 405 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-5.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 5 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GeneratorWallmountBasic + entities: + - uid: 311 + components: + - type: Transform + pos: -5.5,-4.5 + parent: 1 + - uid: 312 + components: + - type: Transform + pos: 4.5,-4.5 + parent: 1 +- proto: GravityGeneratorMini + entities: + - uid: 314 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 1 +- proto: Grille + entities: + - uid: 315 + components: + - type: Transform + pos: -1.5,-0.5 + parent: 1 + - uid: 316 + components: + - type: Transform + pos: -2.5,-0.5 + parent: 1 + - uid: 317 + components: + - type: Transform + pos: -1.5,-6.5 + parent: 1 + - uid: 318 + components: + - type: Transform + pos: -3.5,10.5 + parent: 1 + - uid: 319 + components: + - type: Transform + pos: 0.5,-6.5 + parent: 1 + - uid: 320 + components: + - type: Transform + pos: -6.5,-2.5 + parent: 1 + - uid: 321 + components: + - type: Transform + pos: -6.5,-3.5 + parent: 1 + - uid: 322 + components: + - type: Transform + pos: -7.5,2.5 + parent: 1 + - uid: 323 + components: + - type: Transform + pos: -7.5,4.5 + parent: 1 + - uid: 324 + components: + - type: Transform + pos: 6.5,5.5 + parent: 1 + - uid: 325 + components: + - type: Transform + pos: 6.5,6.5 + parent: 1 + - uid: 326 + components: + - type: Transform + pos: 6.5,2.5 + parent: 1 + - uid: 327 + components: + - type: Transform + pos: 6.5,1.5 + parent: 1 + - uid: 328 + components: + - type: Transform + pos: -3.5,-0.5 + parent: 1 + - uid: 329 + components: + - type: Transform + pos: 1.5,11.5 + parent: 1 +- proto: Gyroscope + entities: + - uid: 330 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-7.5 + parent: 1 +- proto: KitchenKnife + entities: + - uid: 331 + components: + - type: Transform + pos: 2.277079,10.592456 + parent: 1 +- proto: KitchenMicrowave + entities: + - uid: 332 + components: + - type: Transform + pos: 1.5,10.5 + parent: 1 +- proto: Lighter + entities: + - uid: 333 + components: + - type: Transform + pos: -1.2787795,-1.5315821 + parent: 1 + - uid: 334 + components: + - type: Transform + pos: 1.7105913,8.442174 + parent: 1 +- proto: LockerSalvageSpecialistFilled + entities: + - uid: 335 + components: + - type: Transform + pos: -4.5,10.5 + parent: 1 +- proto: MedkitFilled + entities: + - uid: 336 + components: + - type: Transform + pos: -6.3264723,2.7152433 + parent: 1 +- proto: MopItem + entities: + - uid: 337 + components: + - type: Transform + pos: 4.867828,9.871551 + parent: 1 +- proto: Paper + entities: + - uid: 338 + components: + - type: Transform + pos: -5.7074904,-2.1822014 + parent: 1 + - uid: 339 + components: + - type: Transform + pos: -5.7074904,-2.3229237 + parent: 1 + - uid: 340 + components: + - type: Transform + pos: -5.6918654,-2.4792824 + parent: 1 +- proto: Pen + entities: + - uid: 341 + components: + - type: Transform + pos: -5.4483495,-2.034501 + parent: 1 +- proto: PlasticFlapsAirtightClear + entities: + - uid: 342 + components: + - type: Transform + pos: -7.5,6.5 + parent: 1 +- proto: PlushieLamp + entities: + - uid: 343 + components: + - type: Transform + pos: 2.506168,0.7502857 + parent: 1 +- proto: PlushieSharkBlue + entities: + - uid: 344 + components: + - type: Transform + pos: 4.764161,0.654635 + parent: 1 +- proto: PlushieSlime + entities: + - uid: 345 + components: + - type: Transform + pos: 4.164697,2.2077966 + parent: 1 +- proto: PlushieSnake + entities: + - uid: 346 + components: + - type: Transform + pos: 4.789697,2.541362 + parent: 1 +- proto: PortableGeneratorPacman + entities: + - uid: 533 + components: + - type: Transform + pos: -5.5,-5.5 + parent: 1 + - uid: 534 + components: + - type: Transform + pos: 4.5,-5.5 + parent: 1 +- proto: PosterLegitBarDrinks + entities: + - uid: 347 + components: + - type: Transform + pos: 5.5,8.5 + parent: 1 +- proto: PottedPlantRandom + entities: + - uid: 348 + components: + - type: Transform + pos: 0.5,4.5 + parent: 1 +- proto: PowerCellRecharger + entities: + - uid: 349 + components: + - type: Transform + pos: -6.5,1.5 + parent: 1 +- proto: Poweredlight + entities: + - uid: 350 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,4.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 351 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,7.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 352 + components: + - type: Transform + pos: -5.5,10.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 353 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 354 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-3.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 355 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-4.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 356 + components: + - type: Transform + pos: -5.5,-1.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 +- proto: PoweredLightBlueInterior + entities: + - uid: 360 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,12.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 361 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,12.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 362 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-1.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 363 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-1.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 364 + components: + - type: Transform + pos: -0.5,-7.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 +- proto: PoweredLightColoredFrostyBlue + entities: + - uid: 358 + components: + - type: Transform + pos: 0.5,10.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 359 + components: + - type: Transform + pos: 4.5,10.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 +- proto: PoweredlightLED + entities: + - uid: 365 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,0.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 366 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,7.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 367 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,4.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 +- proto: PoweredSmallLight + entities: + - uid: 357 + components: + - type: Transform + pos: 3.5,2.5 + parent: 1 + - uid: 368 + components: + - type: Transform + pos: -4.5,-5.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 369 + components: + - type: Transform + pos: 3.5,-1.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 370 + components: + - type: Transform + pos: 3.5,-5.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 371 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,10.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 +- proto: Rack + entities: + - uid: 372 + components: + - type: Transform + pos: 0.5,2.5 + parent: 1 + - uid: 373 + components: + - type: Transform + pos: -6.5,2.5 + parent: 1 +- proto: RandomInstruments + entities: + - uid: 374 + components: + - type: Transform + pos: 5.5,5.5 + parent: 1 +- proto: RandomPainting + entities: + - uid: 375 + components: + - type: Transform + pos: 4.5,3.5 + parent: 1 + - uid: 376 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 +- proto: RandomPosterLegit + entities: + - uid: 377 + components: + - type: Transform + pos: -4.5,-4.5 + parent: 1 + - uid: 378 + components: + - type: Transform + pos: 3.5,-4.5 + parent: 1 + - uid: 379 + components: + - type: Transform + pos: 0.5,3.5 + parent: 1 +- proto: RandomVending + entities: + - uid: 380 + components: + - type: Transform + pos: 5.5,7.5 + parent: 1 +- proto: SchoolgirlUniformSpawner + entities: + - uid: 381 + components: + - type: Transform + pos: 5.5,1.5 + parent: 1 +- proto: Screwdriver + entities: + - uid: 382 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.2805943,-2.319523 + parent: 1 +- proto: SheetPlasma + entities: + - uid: 535 + components: + - type: Transform + pos: -5.529743,-6.471845 + parent: 1 + - uid: 536 + components: + - type: Transform + pos: 4.501507,-6.45622 + parent: 1 +- proto: ShuttleWindow + entities: + - uid: 383 + components: + - type: Transform + pos: -7.5,2.5 + parent: 1 + - uid: 384 + components: + - type: Transform + pos: -3.5,10.5 + parent: 1 + - uid: 385 + components: + - type: Transform + pos: -7.5,4.5 + parent: 1 + - uid: 386 + components: + - type: Transform + pos: -1.5,-6.5 + parent: 1 + - uid: 387 + components: + - type: Transform + pos: 0.5,-6.5 + parent: 1 + - uid: 388 + components: + - type: Transform + pos: -1.5,-0.5 + parent: 1 + - uid: 389 + components: + - type: Transform + pos: -2.5,-0.5 + parent: 1 + - uid: 390 + components: + - type: Transform + pos: -3.5,-0.5 + parent: 1 + - uid: 391 + components: + - type: Transform + pos: 6.5,5.5 + parent: 1 + - uid: 392 + components: + - type: Transform + pos: 6.5,6.5 + parent: 1 + - uid: 393 + components: + - type: Transform + pos: 1.5,11.5 + parent: 1 + - uid: 394 + components: + - type: Transform + pos: 6.5,1.5 + parent: 1 + - uid: 395 + components: + - type: Transform + pos: 6.5,2.5 + parent: 1 + - uid: 396 + components: + - type: Transform + pos: -6.5,-2.5 + parent: 1 + - uid: 397 + components: + - type: Transform + pos: -6.5,-3.5 + parent: 1 +- proto: SignalButton + entities: + - uid: 398 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,7.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 39: + - Pressed: Toggle +- proto: SMESBasic + entities: + - uid: 399 + components: + - type: MetaData + name: Port SMES + - type: Transform + pos: -4.5,-7.5 + parent: 1 + - uid: 400 + components: + - type: MetaData + name: Starboard SMES + - type: Transform + pos: 3.5,-7.5 + parent: 1 +- proto: soda_dispenser + entities: + - uid: 418 + components: + - type: Transform + pos: 3.5,10.5 + parent: 1 +- proto: StoolBar + entities: + - uid: 406 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,7.5 + parent: 1 + - uid: 407 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,7.5 + parent: 1 + - uid: 408 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,7.5 + parent: 1 + - uid: 409 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,7.5 + parent: 1 +- proto: SubstationWallBasic + entities: + - uid: 410 + components: + - type: MetaData + name: port substation + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-7.5 + parent: 1 + - uid: 411 + components: + - type: MetaData + name: starboard substation + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-7.5 + parent: 1 +- proto: Table + entities: + - uid: 412 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,5.5 + parent: 1 +- proto: TableCounterMetal + entities: + - uid: 413 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-2.5 + parent: 1 + - uid: 414 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-1.5 + parent: 1 + - uid: 415 + components: + - type: Transform + pos: -6.5,0.5 + parent: 1 + - uid: 416 + components: + - type: Transform + pos: -6.5,1.5 + parent: 1 +- proto: TableCounterWood + entities: + - uid: 417 + components: + - type: Transform + pos: 1.5,10.5 + parent: 1 + - uid: 419 + components: + - type: Transform + pos: 2.5,10.5 + parent: 1 + - uid: 420 + components: + - type: Transform + pos: 3.5,10.5 + parent: 1 +- proto: TableGlass + entities: + - uid: 421 + components: + - type: Transform + pos: 2.5,0.5 + parent: 1 +- proto: TableReinforced + entities: + - uid: 422 + components: + - type: Transform + pos: -1.5,-1.5 + parent: 1 +- proto: TableWoodReinforced + entities: + - uid: 423 + components: + - type: Transform + pos: 2.5,8.5 + parent: 1 + - uid: 424 + components: + - type: Transform + pos: 1.5,8.5 + parent: 1 + - uid: 425 + components: + - type: Transform + pos: 4.5,8.5 + parent: 1 + - uid: 426 + components: + - type: Transform + pos: 3.5,8.5 + parent: 1 +- proto: Thruster + entities: + - uid: 427 + components: + - type: Transform + pos: 6.5,9.5 + parent: 1 + - uid: 428 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-8.5 + parent: 1 + - uid: 429 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-8.5 + parent: 1 + - uid: 430 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-8.5 + parent: 1 + - uid: 431 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-7.5 + parent: 1 + - uid: 432 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-7.5 + parent: 1 + - uid: 433 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-8.5 + parent: 1 + - uid: 434 + components: + - type: Transform + pos: -7.5,10.5 + parent: 1 + - uid: 435 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-1.5 + parent: 1 + - uid: 436 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-1.5 + parent: 1 +- proto: ToolboxElectricalFilled + entities: + - uid: 437 + components: + - type: Transform + pos: 0.654815,-1.6675713 + parent: 1 +- proto: ToolboxEmergencyFilled + entities: + - uid: 438 + components: + - type: Transform + pos: 0.60379,2.4271085 + parent: 1 +- proto: ToolboxMechanicalFilled + entities: + - uid: 439 + components: + - type: Transform + pos: 0.3318984,-1.313158 + parent: 1 +- proto: TwoWayLever + entities: + - uid: 440 + components: + - type: Transform + pos: -6.5,7.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 212: + - Left: Forward + - Right: Reverse + - Middle: Off + 211: + - Left: Forward + - Right: Reverse + - Middle: Off +- proto: VendingMachineBoozeUnlocked + entities: + - uid: 401 + components: + - type: Transform + pos: 4.5,10.5 + parent: 1 +- proto: VendingMachineChefvend + entities: + - uid: 441 + components: + - type: Transform + pos: 0.5,10.5 + parent: 1 +- proto: VendingMachineSalvage + entities: + - uid: 442 + components: + - type: Transform + pos: -5.5,10.5 + parent: 1 +- proto: VendingMachineTankDispenserEVA + entities: + - uid: 443 + components: + - type: Transform + pos: -6.5,8.5 + parent: 1 +- proto: WallShuttle + entities: + - uid: 444 + components: + - type: Transform + pos: 3.5,3.5 + parent: 1 + - uid: 445 + components: + - type: Transform + pos: 2.5,3.5 + parent: 1 + - uid: 446 + components: + - type: Transform + pos: -3.5,-8.5 + parent: 1 + - uid: 447 + components: + - type: Transform + pos: -2.5,-7.5 + parent: 1 + - uid: 448 + components: + - type: Transform + pos: -2.5,-6.5 + parent: 1 + - uid: 449 + components: + - type: Transform + pos: -0.5,-6.5 + parent: 1 + - uid: 450 + components: + - type: Transform + pos: 1.5,-6.5 + parent: 1 + - uid: 451 + components: + - type: Transform + pos: 4.5,-8.5 + parent: 1 + - uid: 452 + components: + - type: Transform + pos: 5.5,10.5 + parent: 1 + - uid: 453 + components: + - type: Transform + pos: 5.5,11.5 + parent: 1 + - uid: 454 + components: + - type: Transform + pos: 1.5,-4.5 + parent: 1 + - uid: 455 + components: + - type: Transform + pos: 2.5,-4.5 + parent: 1 + - uid: 456 + components: + - type: Transform + pos: -5.5,-7.5 + parent: 1 + - uid: 457 + components: + - type: Transform + pos: -6.5,-7.5 + parent: 1 + - uid: 458 + components: + - type: Transform + pos: -6.5,-6.5 + parent: 1 + - uid: 459 + components: + - type: Transform + pos: -6.5,-5.5 + parent: 1 + - uid: 460 + components: + - type: Transform + pos: -6.5,-4.5 + parent: 1 + - uid: 461 + components: + - type: Transform + pos: 1.5,-1.5 + parent: 1 + - uid: 462 + components: + - type: Transform + pos: 3.5,-4.5 + parent: 1 + - uid: 463 + components: + - type: Transform + pos: 4.5,-4.5 + parent: 1 + - uid: 464 + components: + - type: Transform + pos: -2.5,-4.5 + parent: 1 + - uid: 465 + components: + - type: Transform + pos: -3.5,-4.5 + parent: 1 + - uid: 466 + components: + - type: Transform + pos: -0.5,3.5 + parent: 1 + - uid: 467 + components: + - type: Transform + pos: 0.5,3.5 + parent: 1 + - uid: 468 + components: + - type: Transform + pos: 4.5,-0.5 + parent: 1 + - uid: 469 + components: + - type: Transform + pos: 3.5,-0.5 + parent: 1 + - uid: 470 + components: + - type: Transform + pos: -4.5,-4.5 + parent: 1 + - uid: 471 + components: + - type: Transform + pos: -5.5,-4.5 + parent: 1 + - uid: 472 + components: + - type: Transform + pos: 4.5,3.5 + parent: 1 + - uid: 473 + components: + - type: Transform + pos: -0.5,2.5 + parent: 1 + - uid: 474 + components: + - type: Transform + pos: -0.5,0.5 + parent: 1 + - uid: 475 + components: + - type: Transform + pos: -5.5,-0.5 + parent: 1 + - uid: 476 + components: + - type: Transform + pos: -6.5,-1.5 + parent: 1 + - uid: 477 + components: + - type: Transform + pos: -6.5,-0.5 + parent: 1 + - uid: 478 + components: + - type: Transform + pos: -3.5,-7.5 + parent: 1 + - uid: 479 + components: + - type: Transform + pos: -4.5,-8.5 + parent: 1 + - uid: 480 + components: + - type: Transform + pos: -5.5,-8.5 + parent: 1 + - uid: 481 + components: + - type: Transform + pos: -7.5,0.5 + parent: 1 + - uid: 482 + components: + - type: Transform + pos: 3.5,-8.5 + parent: 1 + - uid: 483 + components: + - type: Transform + pos: 2.5,-8.5 + parent: 1 + - uid: 484 + components: + - type: Transform + pos: 2.5,-7.5 + parent: 1 + - uid: 485 + components: + - type: Transform + pos: 1.5,-7.5 + parent: 1 + - uid: 486 + components: + - type: Transform + pos: -0.5,10.5 + parent: 1 + - uid: 487 + components: + - type: Transform + pos: 1.5,-3.5 + parent: 1 + - uid: 488 + components: + - type: Transform + pos: 2.5,-0.5 + parent: 1 + - uid: 489 + components: + - type: Transform + pos: 1.5,-0.5 + parent: 1 + - uid: 490 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 + - uid: 491 + components: + - type: Transform + pos: 0.5,-0.5 + parent: 1 + - uid: 492 + components: + - type: Transform + pos: -0.5,7.5 + parent: 1 + - uid: 493 + components: + - type: Transform + pos: -0.5,8.5 + parent: 1 + - uid: 494 + components: + - type: Transform + pos: -0.5,9.5 + parent: 1 + - uid: 495 + components: + - type: Transform + pos: -6.5,10.5 + parent: 1 + - uid: 496 + components: + - type: Transform + pos: 5.5,3.5 + parent: 1 + - uid: 497 + components: + - type: Transform + pos: -0.5,4.5 + parent: 1 + - uid: 498 + components: + - type: Transform + pos: 5.5,-0.5 + parent: 1 + - uid: 499 + components: + - type: Transform + pos: 5.5,-1.5 + parent: 1 + - uid: 500 + components: + - type: Transform + pos: 5.5,-2.5 + parent: 1 + - uid: 501 + components: + - type: Transform + pos: 5.5,-3.5 + parent: 1 + - uid: 502 + components: + - type: Transform + pos: 5.5,-4.5 + parent: 1 + - uid: 503 + components: + - type: Transform + pos: 5.5,-5.5 + parent: 1 + - uid: 504 + components: + - type: Transform + pos: 5.5,-6.5 + parent: 1 + - uid: 505 + components: + - type: Transform + pos: 5.5,-7.5 + parent: 1 + - uid: 506 + components: + - type: Transform + pos: 4.5,-7.5 + parent: 1 + - uid: 507 + components: + - type: Transform + pos: -7.5,1.5 + parent: 1 + - uid: 508 + components: + - type: Transform + pos: -7.5,7.5 + parent: 1 + - uid: 509 + components: + - type: Transform + pos: -7.5,8.5 + parent: 1 + - uid: 510 + components: + - type: Transform + pos: 5.5,9.5 + parent: 1 + - uid: 511 + components: + - type: Transform + pos: -6.5,11.5 + parent: 1 + - uid: 512 + components: + - type: Transform + pos: 6.5,8.5 + parent: 1 + - uid: 513 + components: + - type: Transform + pos: 6.5,7.5 + parent: 1 + - uid: 514 + components: + - type: Transform + pos: 6.5,4.5 + parent: 1 + - uid: 515 + components: + - type: Transform + pos: 6.5,3.5 + parent: 1 + - uid: 516 + components: + - type: Transform + pos: 6.5,0.5 + parent: 1 + - uid: 517 + components: + - type: Transform + pos: -3.5,9.5 + parent: 1 + - uid: 518 + components: + - type: Transform + pos: -7.5,9.5 + parent: 1 + - uid: 519 + components: + - type: Transform + pos: -5.5,11.5 + parent: 1 + - uid: 520 + components: + - type: Transform + pos: -4.5,11.5 + parent: 1 + - uid: 521 + components: + - type: Transform + pos: -3.5,11.5 + parent: 1 + - uid: 522 + components: + - type: Transform + pos: -0.5,11.5 + parent: 1 + - uid: 523 + components: + - type: Transform + pos: 0.5,11.5 + parent: 1 + - uid: 524 + components: + - type: Transform + pos: 2.5,11.5 + parent: 1 + - uid: 525 + components: + - type: Transform + pos: 3.5,11.5 + parent: 1 + - uid: 526 + components: + - type: Transform + pos: 4.5,11.5 + parent: 1 + - uid: 527 + components: + - type: Transform + pos: 5.5,8.5 + parent: 1 +- proto: WallShuttleDiagonal + entities: + - uid: 528 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-0.5 + parent: 1 + - uid: 529 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,9.5 + parent: 1 + - uid: 530 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-0.5 + parent: 1 +- proto: WardrobeMixedFilled + entities: + - uid: 531 + components: + - type: Transform + pos: 2.5,2.5 + parent: 1 +- proto: WarpPoint + entities: + - uid: 547 + components: + - type: Transform + pos: 0.5,0.5 + parent: 1 + - type: WarpPoint + location: NTV Pulse +- proto: Windoor + entities: + - uid: 532 + components: + - type: MetaData + name: Bar + - type: Transform + pos: 0.5,8.5 + parent: 1 +... diff --git a/Resources/Maps/Shuttles/DeltaV/ntxr-saucer.yml b/Resources/Maps/Shuttles/DeltaV/ntxr-saucer.yml new file mode 100644 index 00000000000..efd3f56991f --- /dev/null +++ b/Resources/Maps/Shuttles/DeltaV/ntxr-saucer.yml @@ -0,0 +1,2868 @@ +meta: + format: 6 + postmapinit: false +tilemap: + 0: Space + 34: FloorDarkDiagonal + 35: FloorDarkDiagonalMini + 38: FloorDarkMono + 69: FloorMetalDiamond + 1: FloorMining + 3: FloorMiningDark + 2: FloorMiningLight + 74: FloorMono + 83: FloorReinforced + 97: FloorSteel + 102: FloorSteelDiagonal + 113: FloorTechMaint2 + 129: Lattice + 130: Plating +entities: +- proto: "" + entities: + - uid: 1 + components: + - type: MetaData + - type: Transform + - type: MapGrid + chunks: + 0,0: + ind: 0,0 + tiles: gQAAAAAAgQAAAAAAgQAAAAAAggAAAAAAJgAAAAAAIwAAAAAASgAAAAAAAQAAAAAAAwAAAAAAggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAgQAAAAAAUwAAAAAAggAAAAAAJgAAAAAAIwAAAAAAggAAAAAAAgAAAAAAAgAAAAAAUwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUwAAAAAAUwAAAAAAIgAAAAAAIgAAAAAAJgAAAAAAIwAAAAAAUwAAAAAAAgAAAAAAAgAAAAAAggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAJgAAAAAAJgAAAAAAIwAAAAAAggAAAAAAAgAAAAAAAgAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAIwAAAAAAIwAAAAAAggAAAAAAggAAAAAAggAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASgAAAAAAggAAAAAAggAAAAAAggAAAAAAggAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAZgAAAAAAggAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZgAAAAAAZgAAAAAAUwAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUwAAAAAAUwAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,0: + ind: -1,0 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAggAAAAAARQAAAAAARQAAAAAASgAAAAAAIwAAAAAAJgAAAAAAggAAAAAAgQAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAggAAAAAARQAAAAAAggAAAAAAggAAAAAAIwAAAAAAJgAAAAAAggAAAAAAUwAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAggAAAAAARQAAAAAAggAAAAAAUwAAAAAAIwAAAAAAJgAAAAAAIgAAAAAAIgAAAAAAUwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAggAAAAAAggAAAAAAggAAAAAAIwAAAAAAJgAAAAAAJgAAAAAAIgAAAAAAIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAggAAAAAAggAAAAAAggAAAAAAIwAAAAAAIwAAAAAAJgAAAAAAJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAgQAAAAAAggAAAAAAggAAAAAAggAAAAAAggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAggAAAAAAZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAUwAAAAAAZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAUwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,-1: + ind: -1,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAggAAAAAAggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAgQAAAAAAggAAAAAAggAAAAAAIwAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAggAAAAAAggAAAAAAggAAAAAAIwAAAAAAIwAAAAAAJgAAAAAAJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAcQAAAAAAcQAAAAAAggAAAAAAIwAAAAAAJgAAAAAAJgAAAAAAIgAAAAAAIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAggAAAAAAcQAAAAAAcQAAAAAAUwAAAAAAIwAAAAAAJgAAAAAAIgAAAAAAIgAAAAAAUwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAggAAAAAAcQAAAAAAcQAAAAAAggAAAAAAIwAAAAAAJgAAAAAAggAAAAAAUwAAAAAAgQAAAAAA + version: 6 + 0,-1: + ind: 0,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUwAAAAAAggAAAAAAggAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAIwAAAAAAIwAAAAAAggAAAAAAggAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAAAAAAJgAAAAAAJgAAAAAAIwAAAAAAIwAAAAAAggAAAAAAggAAAAAAggAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIgAAAAAAIgAAAAAAIgAAAAAAJgAAAAAAJgAAAAAAIwAAAAAAggAAAAAAAQAAAAAAAQAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUwAAAAAAUwAAAAAAIgAAAAAAIgAAAAAAJgAAAAAAIwAAAAAAUwAAAAAAAQAAAAAAAQAAAAAAggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAgQAAAAAAUwAAAAAAggAAAAAAJgAAAAAAIwAAAAAAggAAAAAAAQAAAAAAAwAAAAAAUwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + - type: Broadphase + - type: Physics + bodyStatus: InAir + angularDamping: 0.05 + linearDamping: 0.05 + fixedRotation: False + bodyType: Dynamic + - type: Fixtures + fixtures: {} + - type: OccluderTree + - type: SpreaderGrid + - type: Shuttle + - type: GridPathfinding + - type: Gravity + gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + - type: DecalGrid + chunkCollection: + version: 2 + nodes: [] + - type: GridAtmosphere + version: 2 + data: + tiles: + 0,0: + 0: 55 + 1: 64512 + 0,-1: + 0: 12288 + 1: 3327 + -1,0: + 0: 140 + 1: 63249 + 0,1: + 1: 13087 + 0: 34816 + -1,1: + 1: 34831 + 0: 8704 + 0,2: + 0: 4 + 1,0: + 1: 48063 + 1,1: + 1: 1 + 0: 32 + 1,-1: + 1: 48049 + 2,0: + 1: 4369 + 0: 8192 + 2,1: + 0: 1 + 2,-1: + 1: 4368 + 0: 33 + -2,0: + 1: 48063 + -3,0: + 0: 32768 + -2,-1: + 1: 48048 + 0: 1 + -2,1: + 0: 193 + -1,-1: + 1: 6143 + 0: 32768 + -1,2: + 0: 4 + -3,-1: + 0: 128 + -2,-2: + 0: 49152 + -1,-2: + 0: 512 + 1: 51200 + 0,-2: + 1: 29184 + 0: 2048 + 1,-2: + 0: 8192 + uniqueMixes: + - volume: 2500 + immutable: True + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.15 + moles: + - 21.824879 + - 82.10312 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + chunkSize: 4 + - type: GasTileOverlay + - type: RadiationGridResistance +- proto: AirAlarm + entities: + - uid: 2 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,1.5 + parent: 1 + - type: DeviceList + devices: + - 233 + - uid: 3 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,6.5 + parent: 1 + - type: DeviceList + devices: + - 228 + - 232 + - 137 + - uid: 4 + components: + - type: Transform + pos: 3.5,5.5 + parent: 1 + - type: DeviceList + devices: + - 136 + - 135 + - 131 + - 132 + - 230 + - 226 + - 137 + - uid: 5 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-4.5 + parent: 1 + - type: DeviceList + devices: + - 134 + - 133 + - 129 + - 130 + - 231 + - 227 + - uid: 6 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-0.5 + parent: 1 + - type: DeviceList + devices: + - 229 + - 234 +- proto: AirCanister + entities: + - uid: 7 + components: + - type: Transform + pos: -7.5,1.5 + parent: 1 +- proto: AirlockCommandGlass + entities: + - uid: 8 + components: + - type: MetaData + name: Bridge + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,5.5 + parent: 1 +- proto: AirlockEngineeringGlass + entities: + - uid: 9 + components: + - type: MetaData + name: Engineering + - type: Transform + pos: -5.5,0.5 + parent: 1 +- proto: AirlockExternalGlassShuttleLocked + entities: + - uid: 10 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 1 + - uid: 11 + components: + - type: Transform + pos: 1.5,-5.5 + parent: 1 +- proto: AirlockScienceGlass + entities: + - uid: 12 + components: + - type: Transform + pos: 6.5,0.5 + parent: 1 +- proto: APCBasic + entities: + - uid: 13 + components: + - type: MetaData + name: Propulsion APC + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,0.5 + parent: 1 + - uid: 14 + components: + - type: MetaData + name: Bridge APC + - type: Transform + pos: 1.5,5.5 + parent: 1 + - uid: 15 + components: + - type: MetaData + name: Engineering APC + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,0.5 + parent: 1 + - uid: 16 + components: + - type: MetaData + name: Laboratory APC + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,-1.5 + parent: 1 +- proto: AtmosDeviceFanTiny + entities: + - uid: 17 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 1 + - uid: 18 + components: + - type: Transform + pos: 1.5,-5.5 + parent: 1 +- proto: BlastDoor + entities: + - uid: 19 + components: + - type: Transform + pos: 9.5,0.5 + parent: 1 +- proto: BoxFolderBlack + entities: + - uid: 20 + components: + - type: Transform + pos: 7.375682,3.6192398 + parent: 1 +- proto: ButtonFrameCaution + entities: + - uid: 21 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,2.5 + parent: 1 +- proto: CableApcExtension + entities: + - uid: 22 + components: + - type: Transform + pos: -3.5,3.5 + parent: 1 + - uid: 23 + components: + - type: Transform + pos: -2.5,3.5 + parent: 1 + - uid: 24 + components: + - type: Transform + pos: -3.5,2.5 + parent: 1 + - uid: 25 + components: + - type: Transform + pos: -3.5,1.5 + parent: 1 + - uid: 26 + components: + - type: Transform + pos: -3.5,0.5 + parent: 1 + - uid: 27 + components: + - type: Transform + pos: -3.5,-0.5 + parent: 1 + - uid: 28 + components: + - type: Transform + pos: -3.5,-1.5 + parent: 1 + - uid: 29 + components: + - type: Transform + pos: -3.5,-2.5 + parent: 1 + - uid: 30 + components: + - type: Transform + pos: -2.5,-2.5 + parent: 1 + - uid: 31 + components: + - type: Transform + pos: 3.5,3.5 + parent: 1 + - uid: 32 + components: + - type: Transform + pos: 4.5,3.5 + parent: 1 + - uid: 33 + components: + - type: Transform + pos: 4.5,1.5 + parent: 1 + - uid: 34 + components: + - type: Transform + pos: 4.5,-0.5 + parent: 1 + - uid: 35 + components: + - type: Transform + pos: 4.5,-1.5 + parent: 1 + - uid: 36 + components: + - type: Transform + pos: 4.5,-2.5 + parent: 1 + - uid: 37 + components: + - type: Transform + pos: 3.5,-2.5 + parent: 1 + - uid: 38 + components: + - type: Transform + pos: 3.5,-3.5 + parent: 1 + - uid: 39 + components: + - type: Transform + pos: 2.5,-3.5 + parent: 1 + - uid: 40 + components: + - type: Transform + pos: 1.5,-3.5 + parent: 1 + - uid: 41 + components: + - type: Transform + pos: 0.5,-3.5 + parent: 1 + - uid: 42 + components: + - type: Transform + pos: -0.5,-3.5 + parent: 1 + - uid: 43 + components: + - type: Transform + pos: -1.5,-3.5 + parent: 1 + - uid: 44 + components: + - type: Transform + pos: -2.5,-3.5 + parent: 1 + - uid: 45 + components: + - type: Transform + pos: -2.5,4.5 + parent: 1 + - uid: 46 + components: + - type: Transform + pos: -1.5,4.5 + parent: 1 + - uid: 47 + components: + - type: Transform + pos: 4.5,0.5 + parent: 1 + - uid: 48 + components: + - type: Transform + pos: 2.5,4.5 + parent: 1 + - uid: 49 + components: + - type: Transform + pos: 3.5,4.5 + parent: 1 + - uid: 50 + components: + - type: Transform + pos: 1.5,5.5 + parent: 1 + - uid: 51 + components: + - type: Transform + pos: 2.5,0.5 + parent: 1 + - uid: 52 + components: + - type: Transform + pos: 1.5,0.5 + parent: 1 + - uid: 53 + components: + - type: Transform + pos: 0.5,0.5 + parent: 1 + - uid: 54 + components: + - type: Transform + pos: -0.5,0.5 + parent: 1 + - uid: 55 + components: + - type: Transform + pos: -1.5,0.5 + parent: 1 + - uid: 56 + components: + - type: Transform + pos: -2.5,0.5 + parent: 1 + - uid: 57 + components: + - type: Transform + pos: 4.5,2.5 + parent: 1 + - uid: 58 + components: + - type: Transform + pos: 1.5,6.5 + parent: 1 + - uid: 59 + components: + - type: Transform + pos: 0.5,6.5 + parent: 1 + - uid: 60 + components: + - type: Transform + pos: -0.5,6.5 + parent: 1 + - uid: 61 + components: + - type: Transform + pos: -8.5,0.5 + parent: 1 + - uid: 62 + components: + - type: Transform + pos: -7.5,0.5 + parent: 1 + - uid: 63 + components: + - type: Transform + pos: -6.5,0.5 + parent: 1 + - uid: 64 + components: + - type: Transform + pos: -6.5,-0.5 + parent: 1 + - uid: 65 + components: + - type: Transform + pos: -6.5,-1.5 + parent: 1 + - uid: 66 + components: + - type: Transform + pos: -6.5,1.5 + parent: 1 + - uid: 67 + components: + - type: Transform + pos: -6.5,2.5 + parent: 1 + - uid: 68 + components: + - type: Transform + pos: 7.5,-1.5 + parent: 1 + - uid: 69 + components: + - type: Transform + pos: 7.5,-0.5 + parent: 1 + - uid: 70 + components: + - type: Transform + pos: 7.5,0.5 + parent: 1 + - uid: 71 + components: + - type: Transform + pos: 7.5,1.5 + parent: 1 + - uid: 72 + components: + - type: Transform + pos: 7.5,2.5 + parent: 1 + - uid: 73 + components: + - type: Transform + pos: 8.5,-1.5 + parent: 1 + - uid: 74 + components: + - type: Transform + pos: 9.5,-1.5 + parent: 1 +- proto: CableHV + entities: + - uid: 75 + components: + - type: Transform + pos: -6.5,3.5 + parent: 1 + - uid: 76 + components: + - type: Transform + pos: -6.5,4.5 + parent: 1 + - uid: 77 + components: + - type: Transform + pos: -5.5,3.5 + parent: 1 +- proto: CableMV + entities: + - uid: 78 + components: + - type: Transform + pos: -5.5,3.5 + parent: 1 + - uid: 79 + components: + - type: Transform + pos: 1.5,5.5 + parent: 1 + - uid: 80 + components: + - type: Transform + pos: 1.5,4.5 + parent: 1 + - uid: 81 + components: + - type: Transform + pos: -8.5,0.5 + parent: 1 + - uid: 82 + components: + - type: Transform + pos: -6.5,2.5 + parent: 1 + - uid: 83 + components: + - type: Transform + pos: -6.5,1.5 + parent: 1 + - uid: 84 + components: + - type: Transform + pos: -6.5,0.5 + parent: 1 + - uid: 85 + components: + - type: Transform + pos: -5.5,0.5 + parent: 1 + - uid: 86 + components: + - type: Transform + pos: -4.5,0.5 + parent: 1 + - uid: 87 + components: + - type: Transform + pos: -3.5,0.5 + parent: 1 + - uid: 88 + components: + - type: Transform + pos: -2.5,0.5 + parent: 1 + - uid: 89 + components: + - type: Transform + pos: -7.5,0.5 + parent: 1 + - uid: 90 + components: + - type: Transform + pos: -3.5,1.5 + parent: 1 + - uid: 91 + components: + - type: Transform + pos: -3.5,2.5 + parent: 1 + - uid: 92 + components: + - type: Transform + pos: -3.5,3.5 + parent: 1 + - uid: 93 + components: + - type: Transform + pos: -2.5,3.5 + parent: 1 + - uid: 94 + components: + - type: Transform + pos: -2.5,4.5 + parent: 1 + - uid: 95 + components: + - type: Transform + pos: -1.5,4.5 + parent: 1 + - uid: 96 + components: + - type: Transform + pos: -0.5,4.5 + parent: 1 + - uid: 97 + components: + - type: Transform + pos: 0.5,4.5 + parent: 1 + - uid: 98 + components: + - type: Transform + pos: -6.5,3.5 + parent: 1 + - uid: 99 + components: + - type: Transform + pos: 2.5,4.5 + parent: 1 + - uid: 100 + components: + - type: Transform + pos: 3.5,4.5 + parent: 1 + - uid: 101 + components: + - type: Transform + pos: 3.5,3.5 + parent: 1 + - uid: 102 + components: + - type: Transform + pos: 4.5,3.5 + parent: 1 + - uid: 103 + components: + - type: Transform + pos: 4.5,2.5 + parent: 1 + - uid: 104 + components: + - type: Transform + pos: 4.5,1.5 + parent: 1 + - uid: 105 + components: + - type: Transform + pos: 4.5,0.5 + parent: 1 + - uid: 106 + components: + - type: Transform + pos: 5.5,0.5 + parent: 1 + - uid: 107 + components: + - type: Transform + pos: 6.5,0.5 + parent: 1 + - uid: 108 + components: + - type: Transform + pos: 7.5,0.5 + parent: 1 + - uid: 109 + components: + - type: Transform + pos: 7.5,-0.5 + parent: 1 + - uid: 110 + components: + - type: Transform + pos: 7.5,-1.5 + parent: 1 + - uid: 111 + components: + - type: Transform + pos: 8.5,-1.5 + parent: 1 + - uid: 112 + components: + - type: Transform + pos: 9.5,-1.5 + parent: 1 +- proto: Catwalk + entities: + - uid: 113 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,3.5 + parent: 1 + - uid: 114 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,2.5 + parent: 1 + - uid: 115 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,3.5 + parent: 1 + - uid: 116 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,1.5 + parent: 1 +- proto: ChairOfficeDark + entities: + - uid: 117 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.11448622,6.8175697 + parent: 1 + - uid: 118 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.1198888,6.8331947 + parent: 1 +- proto: ChairOfficeLight + entities: + - uid: 119 + components: + - type: Transform + pos: 8.473543,2.5225933 + parent: 1 +- proto: ClosetFireFilled + entities: + - uid: 120 + components: + - type: Transform + pos: 2.5,-4.5 + parent: 1 +- proto: ClosetWallEmergencyFilledRandom + entities: + - uid: 121 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-0.5 + parent: 1 + - uid: 122 + components: + - type: Transform + pos: -1.5,5.5 + parent: 1 +- proto: ComputerAnalysisConsole + entities: + - uid: 123 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,1.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 268: + - ArtifactAnalyzerSender: ArtifactAnalyzerReceiver +- proto: ComputerRadar + entities: + - uid: 124 + components: + - type: Transform + pos: -0.5,7.5 + parent: 1 +- proto: ComputerShuttle + entities: + - uid: 125 + components: + - type: Transform + pos: 0.5,7.5 + parent: 1 +- proto: ComputerStationRecords + entities: + - uid: 126 + components: + - type: Transform + pos: 1.5,7.5 + parent: 1 +- proto: ExtinguisherCabinetFilled + entities: + - uid: 127 + components: + - type: Transform + pos: 6.5,1.5 + parent: 1 + - uid: 128 + components: + - type: Transform + pos: -5.5,1.5 + parent: 1 +- proto: FirelockGlass + entities: + - uid: 129 + components: + - type: Transform + pos: 4.5,-0.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 5 + - uid: 130 + components: + - type: Transform + pos: 5.5,-0.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 5 + - uid: 131 + components: + - type: Transform + pos: 4.5,1.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 4 + - uid: 132 + components: + - type: Transform + pos: 5.5,1.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 4 + - uid: 133 + components: + - type: Transform + pos: -3.5,-0.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 5 + - uid: 134 + components: + - type: Transform + pos: -4.5,-0.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 5 + - uid: 135 + components: + - type: Transform + pos: -4.5,1.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 4 + - uid: 136 + components: + - type: Transform + pos: -3.5,1.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 4 + - uid: 137 + components: + - type: Transform + pos: 0.5,5.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 4 + - 3 +- proto: FoodTinBeansTrash + entities: + - uid: 138 + components: + - type: Transform + pos: 7.995858,2.192436 + parent: 1 +- proto: FoodTinMRETrash + entities: + - uid: 139 + components: + - type: Transform + pos: -7.6862683,-0.79131925 + parent: 1 +- proto: GasMixerFlipped + entities: + - uid: 140 + components: + - type: Transform + pos: -6.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#03FCD3FF' +- proto: GasPassiveVent + entities: + - uid: 141 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPipeBend + entities: + - uid: 142 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#03FCD3FF' + - uid: 143 + components: + - type: Transform + pos: -6.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#03FCD3FF' + - uid: 144 + components: + - type: Transform + pos: 0.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 145 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 146 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 147 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 148 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 149 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 150 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 151 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 152 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 153 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 154 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 155 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 156 + components: + - type: Transform + pos: -3.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 157 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 158 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 159 + components: + - type: Transform + pos: 5.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 160 + components: + - type: Transform + pos: 4.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 161 + components: + - type: Transform + pos: 4.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' +- proto: GasPipeFourway + entities: + - uid: 162 + components: + - type: Transform + pos: -0.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPipeStraight + entities: + - uid: 163 + components: + - type: Transform + pos: 0.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 164 + components: + - type: Transform + pos: -0.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 165 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 166 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 167 + components: + - type: Transform + pos: 0.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 169 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 170 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 171 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 172 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 173 + components: + - type: Transform + pos: -3.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 174 + components: + - type: Transform + pos: -3.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 175 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 176 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 177 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 178 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 179 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 180 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 181 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 182 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 183 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 184 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 185 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 186 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 187 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 188 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 189 + components: + - type: Transform + pos: -3.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 190 + components: + - type: Transform + pos: -3.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 191 + components: + - type: Transform + pos: -4.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 192 + components: + - type: Transform + pos: -4.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 193 + components: + - type: Transform + pos: -4.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 194 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 195 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 196 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 197 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 198 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 199 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 200 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 201 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 202 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 203 + components: + - type: Transform + pos: 4.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 204 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 205 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 206 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 207 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 208 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 209 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 210 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 211 + components: + - type: Transform + pos: 5.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPipeTJunction + entities: + - uid: 212 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 213 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 214 + components: + - type: Transform + pos: 2.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 215 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 216 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 217 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#03FCD3FF' + - uid: 218 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 219 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 220 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 221 + components: + - type: Transform + pos: -2.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPort + entities: + - uid: 222 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-1.5 + parent: 1 + - uid: 223 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-2.5 + parent: 1 + - uid: 224 + components: + - type: Transform + pos: -7.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#03FCD3FF' +- proto: GasPressurePump + entities: + - uid: 225 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0055CCFF' +- proto: GasVentPump + entities: + - uid: 226 + components: + - type: Transform + pos: -1.5,4.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 4 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 227 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-3.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 5 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 228 + components: + - type: Transform + pos: 0.5,6.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 3 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 229 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,0.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 6 + - type: AtmosPipeColor + color: '#0055CCFF' +- proto: GasVentScrubber + entities: + - uid: 230 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,3.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 4 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 231 + components: + - type: Transform + pos: 3.5,-2.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 5 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 232 + components: + - type: Transform + pos: -0.5,6.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 3 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 233 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,2.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 2 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 234 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,-1.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 6 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GeneratorWallmountAPU + entities: + - uid: 235 + components: + - type: Transform + pos: -6.5,4.5 + parent: 1 +- proto: GravityGeneratorMini + entities: + - uid: 236 + components: + - type: Transform + pos: -7.5,2.5 + parent: 1 +- proto: Grille + entities: + - uid: 237 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 + - uid: 238 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 + - uid: 239 + components: + - type: Transform + pos: 1.5,2.5 + parent: 1 + - uid: 240 + components: + - type: Transform + pos: 0.5,2.5 + parent: 1 + - uid: 241 + components: + - type: Transform + pos: -0.5,2.5 + parent: 1 + - uid: 242 + components: + - type: Transform + pos: -1.5,1.5 + parent: 1 + - uid: 243 + components: + - type: Transform + pos: -1.5,-0.5 + parent: 1 + - uid: 244 + components: + - type: Transform + pos: 1.5,-1.5 + parent: 1 + - uid: 245 + components: + - type: Transform + pos: 2.5,-0.5 + parent: 1 + - uid: 246 + components: + - type: Transform + pos: 2.5,1.5 + parent: 1 + - uid: 247 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,7.5 + parent: 1 + - uid: 248 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,8.5 + parent: 1 + - uid: 249 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,8.5 + parent: 1 + - uid: 250 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,8.5 + parent: 1 + - uid: 251 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,7.5 + parent: 1 + - uid: 252 + components: + - type: Transform + pos: 0.5,-5.5 + parent: 1 + - uid: 253 + components: + - type: Transform + pos: -5.5,2.5 + parent: 1 + - uid: 254 + components: + - type: Transform + pos: -5.5,-1.5 + parent: 1 + - uid: 255 + components: + - type: Transform + pos: 6.5,-1.5 + parent: 1 + - uid: 256 + components: + - type: Transform + pos: 6.5,2.5 + parent: 1 + - uid: 257 + components: + - type: Transform + pos: 9.5,-0.5 + parent: 1 + - uid: 258 + components: + - type: Transform + pos: 9.5,1.5 + parent: 1 +- proto: GrilleDiagonal + entities: + - uid: 259 + components: + - type: Transform + pos: -1.5,2.5 + parent: 1 + - uid: 260 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,2.5 + parent: 1 + - uid: 261 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-1.5 + parent: 1 + - uid: 262 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-1.5 + parent: 1 + - uid: 263 + components: + - type: Transform + pos: -1.5,8.5 + parent: 1 + - uid: 264 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,8.5 + parent: 1 +- proto: Gyroscope + entities: + - uid: 265 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,0.5 + parent: 1 +- proto: IntercomScience + entities: + - uid: 266 + components: + - type: Transform + pos: -2.5,-0.5 + parent: 1 + - uid: 267 + components: + - type: Transform + pos: 3.5,-0.5 + parent: 1 +- proto: MachineArtifactAnalyzer + entities: + - uid: 268 + components: + - type: Transform + pos: 8.5,0.5 + parent: 1 +- proto: NitrogenCanister + entities: + - uid: 269 + components: + - type: Transform + pos: -6.5,-2.5 + parent: 1 +- proto: NodeScanner + entities: + - uid: 270 + components: + - type: Transform + pos: 7.7409034,3.4383478 + parent: 1 +- proto: OxygenCanister + entities: + - uid: 271 + components: + - type: Transform + pos: -7.5,-1.5 + parent: 1 +- proto: PlasmaReinforcedWindowDirectional + entities: + - uid: 272 + components: + - type: Transform + pos: 8.5,1.5 + parent: 1 + - uid: 273 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,0.5 + parent: 1 + - uid: 274 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-0.5 + parent: 1 +- proto: PlasmaWindow + entities: + - uid: 275 + components: + - type: Transform + pos: -5.5,2.5 + parent: 1 + - uid: 276 + components: + - type: Transform + pos: -5.5,-1.5 + parent: 1 + - uid: 277 + components: + - type: Transform + pos: 6.5,2.5 + parent: 1 + - uid: 278 + components: + - type: Transform + pos: 6.5,-1.5 + parent: 1 +- proto: PortableGeneratorSuperPacman + entities: + - uid: 279 + components: + - type: Transform + pos: -6.5,3.5 + parent: 1 +- proto: PosterContrabandSaucerNumberOne + entities: + - uid: 280 + components: + - type: MetaData + desc: 'Out of every shuttle in the experimental fleet, Saucer was rated #1! Congratulations!' + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,5.5 + parent: 1 +- proto: Poweredlight + entities: + - uid: 281 + components: + - type: Transform + pos: -2.5,-1.5 + parent: 1 + - uid: 282 + components: + - type: Transform + pos: 3.5,-1.5 + parent: 1 + - uid: 283 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,2.5 + parent: 1 + - uid: 284 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,2.5 + parent: 1 +- proto: PoweredSmallLight + entities: + - uid: 285 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,6.5 + parent: 1 + - uid: 286 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,3.5 + parent: 1 + - uid: 287 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-2.5 + parent: 1 + - uid: 288 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,0.5 + parent: 1 + - uid: 289 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,0.5 + parent: 1 + - uid: 290 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-2.5 + parent: 1 + - uid: 291 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,3.5 + parent: 1 +- proto: RandomArtifactSpawner + entities: + - uid: 292 + components: + - type: Transform + pos: 8.5,0.5 + parent: 1 +- proto: RandomPosterAny + entities: + - uid: 293 + components: + - type: Transform + pos: -5.5,-0.5 + parent: 1 + - uid: 294 + components: + - type: Transform + pos: 3.5,-4.5 + parent: 1 +- proto: RandomVendingDrinks + entities: + - uid: 295 + components: + - type: Transform + pos: -1.5,-4.5 + parent: 1 +- proto: ReinforcedPlasmaWindow + entities: + - uid: 296 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-0.5 + parent: 1 + - uid: 297 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-1.5 + parent: 1 + - uid: 298 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-1.5 + parent: 1 + - uid: 299 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,1.5 + parent: 1 + - uid: 300 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,2.5 + parent: 1 + - uid: 301 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,2.5 + parent: 1 + - uid: 302 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,1.5 + parent: 1 + - uid: 303 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,2.5 + parent: 1 + - uid: 304 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-0.5 + parent: 1 + - uid: 305 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-1.5 + parent: 1 + - uid: 306 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,7.5 + parent: 1 + - uid: 307 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,8.5 + parent: 1 + - uid: 308 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,8.5 + parent: 1 + - uid: 309 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,8.5 + parent: 1 + - uid: 310 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,7.5 + parent: 1 + - uid: 311 + components: + - type: Transform + pos: 0.5,-5.5 + parent: 1 + - uid: 312 + components: + - type: Transform + pos: 9.5,-0.5 + parent: 1 + - uid: 313 + components: + - type: Transform + pos: 9.5,1.5 + parent: 1 +- proto: ReinforcedPlasmaWindowDiagonal + entities: + - uid: 314 + components: + - type: Transform + pos: -1.5,2.5 + parent: 1 + - uid: 315 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-1.5 + parent: 1 + - uid: 316 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-1.5 + parent: 1 + - uid: 317 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,2.5 + parent: 1 + - uid: 318 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,8.5 + parent: 1 + - uid: 319 + components: + - type: Transform + pos: -1.5,8.5 + parent: 1 +- proto: SheetUranium + entities: + - uid: 320 + components: + - type: Transform + pos: -6.4077168,2.6208723 + parent: 1 +- proto: SignalSwitchDirectional + entities: + - uid: 321 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,2.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 19: + - On: Open + - Off: Close +- proto: SubstationWallBasic + entities: + - uid: 322 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,3.5 + parent: 1 +- proto: Table + entities: + - uid: 323 + components: + - type: Transform + pos: 7.5,3.5 + parent: 1 + - uid: 324 + components: + - type: Transform + pos: 7.5,-2.5 + parent: 1 +- proto: TableReinforcedGlass + entities: + - uid: 325 + components: + - type: Transform + pos: -7.5,-0.5 + parent: 1 +- proto: Thruster + entities: + - uid: 326 + components: + - type: Transform + pos: 0.5,-0.5 + parent: 1 + - uid: 327 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,1.5 + parent: 1 + - uid: 328 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,0.5 + parent: 1 + - uid: 329 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-0.5 + parent: 1 + - uid: 330 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,1.5 + parent: 1 + - uid: 331 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,1.5 + parent: 1 + - uid: 332 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,0.5 + parent: 1 + - uid: 333 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-0.5 + parent: 1 +- proto: ToolboxElectricalFilled + entities: + - uid: 334 + components: + - type: Transform + pos: -7.511682,-0.39638507 + parent: 1 +- proto: ToolboxMechanicalFilled + entities: + - uid: 335 + components: + - type: Transform + pos: 7.492151,-2.442748 + parent: 1 +- proto: WallReinforced + entities: + - uid: 336 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,1.5 + parent: 1 + - uid: 337 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,0.5 + parent: 1 + - uid: 338 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-0.5 + parent: 1 + - uid: 339 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-0.5 + parent: 1 + - uid: 340 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,0.5 + parent: 1 + - uid: 341 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,1.5 + parent: 1 + - uid: 342 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,6.5 + parent: 1 + - uid: 343 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,6.5 + parent: 1 + - uid: 344 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,5.5 + parent: 1 + - uid: 345 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,5.5 + parent: 1 + - uid: 346 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,5.5 + parent: 1 + - uid: 347 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,5.5 + parent: 1 + - uid: 348 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,5.5 + parent: 1 + - uid: 349 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,5.5 + parent: 1 + - uid: 350 + components: + - type: Transform + pos: 5.5,4.5 + parent: 1 + - uid: 351 + components: + - type: Transform + pos: 9.5,2.5 + parent: 1 + - uid: 352 + components: + - type: Transform + pos: 6.5,4.5 + parent: 1 + - uid: 353 + components: + - type: Transform + pos: 9.5,-1.5 + parent: 1 + - uid: 354 + components: + - type: Transform + pos: 6.5,-3.5 + parent: 1 + - uid: 355 + components: + - type: Transform + pos: 7.5,-3.5 + parent: 1 + - uid: 356 + components: + - type: Transform + pos: 7.5,4.5 + parent: 1 + - uid: 357 + components: + - type: Transform + pos: 5.5,-3.5 + parent: 1 + - uid: 358 + components: + - type: Transform + pos: 4.5,-4.5 + parent: 1 + - uid: 359 + components: + - type: Transform + pos: 3.5,-4.5 + parent: 1 + - uid: 360 + components: + - type: Transform + pos: 2.5,-5.5 + parent: 1 + - uid: 361 + components: + - type: Transform + pos: -1.5,-5.5 + parent: 1 + - uid: 362 + components: + - type: Transform + pos: -2.5,-4.5 + parent: 1 + - uid: 363 + components: + - type: Transform + pos: -3.5,-4.5 + parent: 1 + - uid: 364 + components: + - type: Transform + pos: -4.5,-3.5 + parent: 1 + - uid: 365 + components: + - type: Transform + pos: -4.5,4.5 + parent: 1 + - uid: 366 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-3.5 + parent: 1 + - uid: 367 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-3.5 + parent: 1 + - uid: 368 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-1.5 + parent: 1 + - uid: 369 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-0.5 + parent: 1 + - uid: 370 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,0.5 + parent: 1 + - uid: 371 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,1.5 + parent: 1 + - uid: 372 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,2.5 + parent: 1 + - uid: 373 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,4.5 + parent: 1 + - uid: 374 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,4.5 + parent: 1 +- proto: WallReinforcedDiagonal + entities: + - uid: 375 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-3.5 + parent: 1 + - uid: 376 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-2.5 + parent: 1 + - uid: 377 + components: + - type: Transform + pos: -8.5,3.5 + parent: 1 + - uid: 378 + components: + - type: Transform + pos: -7.5,4.5 + parent: 1 + - uid: 379 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,3.5 + parent: 1 + - uid: 380 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-3.5 + parent: 1 + - uid: 381 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-2.5 + parent: 1 + - uid: 382 + components: + - type: Transform + pos: -4.5,5.5 + parent: 1 + - uid: 383 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-4.5 + parent: 1 + - uid: 384 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-5.5 + parent: 1 + - uid: 385 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-5.5 + parent: 1 + - uid: 386 + components: + - type: Transform + pos: -2.5,6.5 + parent: 1 + - uid: 387 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,6.5 + parent: 1 + - uid: 388 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,-2.5 + parent: 1 + - uid: 389 + components: + - type: Transform + pos: 8.5,-2.5 + parent: 1 + - uid: 390 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,3.5 + parent: 1 + - uid: 391 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,4.5 + parent: 1 + - uid: 392 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,3.5 + parent: 1 + - uid: 393 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-4.5 + parent: 1 + - uid: 394 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,5.5 + parent: 1 +- proto: WallSolid + entities: + - uid: 395 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,5.5 + parent: 1 + - uid: 396 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,5.5 + parent: 1 + - uid: 397 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-2.5 + parent: 1 + - uid: 398 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-0.5 + parent: 1 + - uid: 399 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,1.5 + parent: 1 + - uid: 400 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,3.5 + parent: 1 + - uid: 401 + components: + - type: Transform + pos: 6.5,-2.5 + parent: 1 + - uid: 402 + components: + - type: Transform + pos: 6.5,-0.5 + parent: 1 + - uid: 403 + components: + - type: Transform + pos: 6.5,1.5 + parent: 1 + - uid: 404 + components: + - type: Transform + pos: 6.5,3.5 + parent: 1 +- proto: WallSolidDiagonal + entities: + - uid: 405 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-3.5 + parent: 1 + - uid: 406 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-2.5 + parent: 1 + - uid: 407 + components: + - type: Transform + pos: 4.5,-3.5 + parent: 1 + - uid: 408 + components: + - type: Transform + pos: 5.5,-2.5 + parent: 1 + - uid: 409 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,3.5 + parent: 1 + - uid: 410 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,4.5 + parent: 1 + - uid: 411 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,4.5 + parent: 1 + - uid: 412 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,3.5 + parent: 1 +- proto: WarpPointShuttle + entities: + - uid: 416 + components: + - type: Transform + pos: 0.5,-3.5 + parent: 1 + - type: WarpPoint + location: NTXR Saucer +- proto: WindoorSecurePlasma + entities: + - uid: 413 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-0.5 + parent: 1 + - type: DeviceLinkSink + invokeCounter: 1 + - type: DeviceLinkSource + linkedPorts: + 414: + - DoorStatus: Close + - uid: 414 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-1.5 + parent: 1 + - type: DeviceLinkSink + invokeCounter: 1 + - type: DeviceLinkSource + linkedPorts: + 413: + - DoorStatus: Close +- proto: Wrench + entities: + - uid: 415 + components: + - type: Transform + pos: -6.8139668,-1.5055215 + parent: 1 +... diff --git a/Resources/Maps/Shuttles/DeltaV/prospector.yml b/Resources/Maps/Shuttles/DeltaV/prospector.yml new file mode 100644 index 00000000000..07957ef67c7 --- /dev/null +++ b/Resources/Maps/Shuttles/DeltaV/prospector.yml @@ -0,0 +1,1471 @@ +meta: + format: 6 + postmapinit: false +tilemap: + 0: Space + 24: FloorDark + 71: FloorSteel + 77: FloorSteelMono + 81: FloorTechMaint + 96: Lattice + 97: Plating +entities: +- proto: "" + entities: + - uid: 1 + components: + - type: MetaData + - type: Transform + - type: MapGrid + chunks: + -1,-1: + ind: -1,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAUQAAAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAUQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAYQAAAAAARwAAAAAARwAAAAAARwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAARwAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAARwAAAAAARwAAAAAATQAAAAAARwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAARwAAAAAARwAAAAAATQAAAAAATQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAARwAAAAAARwAAAAAATQAAAAAATQAAAAAA + version: 6 + 0,-1: + ind: 0,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAUQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARwAAAAAARwAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 0,0: + ind: 0,0 + tiles: YQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAGAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAGAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAGAAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,0: + ind: -1,0 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAARwAAAAAARwAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAARwAAAAAAYQAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAYQAAAAAAGAAAAAAAGAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAGAAAAAAAGAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + - type: Broadphase + - type: Physics + bodyStatus: InAir + angularDamping: 0.05 + linearDamping: 0.05 + fixedRotation: False + bodyType: Dynamic + - type: Fixtures + fixtures: {} + - type: OccluderTree + - type: Shuttle + - type: GridPathfinding + - type: Gravity + gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + - type: DecalGrid + chunkCollection: + version: 2 + nodes: + - node: + angle: 4.71238898038469 rad + color: '#FFFFFFFF' + id: Arrows + decals: + 29: -3,-3 + 30: -4,-2 + 31: -4,0 + - node: + color: '#FFFFFFFF' + id: Bot + decals: + 24: -1,-1 + 25: -1,-2 + 26: -2,-1 + 27: -2,-2 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkCornerNe + decals: + 12: 1,3 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkLineE + decals: + 10: 1,1 + 11: 1,2 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkLineN + decals: + 0: -3,-5 + 1: -2,-5 + 2: -1,-5 + 3: 0,-5 + 4: 1,-5 + 13: 0,3 + 14: -1,3 + 15: -2,3 + 16: -3,3 + - node: + color: '#334E6DC8' + id: BrickTileWhiteCornerNe + decals: + 21: 1,3 + - node: + color: '#334E6DC8' + id: BrickTileWhiteLineE + decals: + 22: 1,2 + 23: 1,1 + - node: + color: '#334E6DC8' + id: BrickTileWhiteLineN + decals: + 17: -3,3 + 18: -2,3 + 19: -1,3 + 20: 0,3 + - node: + color: '#A4610696' + id: BrickTileWhiteLineN + decals: + 5: -3,-5 + 6: -2,-5 + 7: -1,-5 + 8: 0,-5 + 9: 1,-5 + - node: + angle: 4.71238898038469 rad + color: '#FFFFFFFF' + id: LoadingArea + decals: + 28: -2,-3 + - type: GridAtmosphere + version: 2 + data: + tiles: + -2,-1: + 0: 20032 + -2,0: + 0: 14 + 1: 35840 + -2,-2: + 1: 51200 + -1,-1: + 0: 65522 + -1,-2: + 1: 1 + 0: 61120 + -1,0: + 0: 61091 + 0,-2: + 0: 13072 + 1: 4 + 0,-1: + 0: 4368 + 1: 26208 + 0,0: + 0: 13104 + uniqueMixes: + - volume: 2500 + temperature: 293.15 + moles: + - 21.824879 + - 82.10312 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + immutable: True + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + chunkSize: 4 + - type: GasTileOverlay + - type: RadiationGridResistance + - type: SpreaderGrid + - type: GravityShake + shakeTimes: 10 +- proto: AirlockCargoGlass + entities: + - uid: 2 + components: + - type: Transform + pos: -2.5,-3.5 + parent: 1 +- proto: AirlockCommandGlass + entities: + - uid: 3 + components: + - type: Transform + pos: -2.5,1.5 + parent: 1 +- proto: AirlockExternalGlass + entities: + - uid: 4 + components: + - type: Transform + pos: -4.5,-1.5 + parent: 1 + - uid: 5 + components: + - type: Transform + pos: -4.5,0.5 + parent: 1 +- proto: AirlockGlassShuttle + entities: + - uid: 6 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-1.5 + parent: 1 + - uid: 7 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,0.5 + parent: 1 +- proto: APCBasic + entities: + - uid: 8 + components: + - type: MetaData + name: Main APC + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-6.5 + parent: 1 +- proto: AtmosDeviceFanTiny + entities: + - uid: 9 + components: + - type: Transform + pos: 0.5,-2.5 + parent: 1 + - uid: 10 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 + - uid: 11 + components: + - type: Transform + pos: 0.5,-0.5 + parent: 1 + - uid: 12 + components: + - type: Transform + pos: -6.5,-1.5 + parent: 1 + - uid: 13 + components: + - type: Transform + pos: -6.5,0.5 + parent: 1 +- proto: BlastDoorOpen + entities: + - uid: 14 + components: + - type: Transform + pos: 0.5,-0.5 + parent: 1 + - uid: 15 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 + - uid: 16 + components: + - type: Transform + pos: 0.5,-2.5 + parent: 1 + - uid: 17 + components: + - type: Transform + pos: -6.5,-2.5 + parent: 1 + - uid: 18 + components: + - type: Transform + pos: -4.5,-2.5 + parent: 1 +- proto: CableApcExtension + entities: + - uid: 19 + components: + - type: Transform + pos: -2.5,-4.5 + parent: 1 + - uid: 20 + components: + - type: Transform + pos: -2.5,-6.5 + parent: 1 + - uid: 21 + components: + - type: Transform + pos: -2.5,-5.5 + parent: 1 + - uid: 22 + components: + - type: Transform + pos: -2.5,-3.5 + parent: 1 + - uid: 23 + components: + - type: Transform + pos: -2.5,-2.5 + parent: 1 + - uid: 24 + components: + - type: Transform + pos: -2.5,-1.5 + parent: 1 + - uid: 25 + components: + - type: Transform + pos: -2.5,-0.5 + parent: 1 + - uid: 26 + components: + - type: Transform + pos: -2.5,0.5 + parent: 1 + - uid: 27 + components: + - type: Transform + pos: -2.5,1.5 + parent: 1 + - uid: 28 + components: + - type: Transform + pos: -2.5,2.5 + parent: 1 + - uid: 29 + components: + - type: Transform + pos: -2.5,3.5 + parent: 1 + - uid: 30 + components: + - type: Transform + pos: -1.5,3.5 + parent: 1 + - uid: 31 + components: + - type: Transform + pos: -0.5,3.5 + parent: 1 + - uid: 32 + components: + - type: Transform + pos: 0.5,3.5 + parent: 1 + - uid: 33 + components: + - type: Transform + pos: 1.5,3.5 + parent: 1 + - uid: 34 + components: + - type: Transform + pos: 1.5,2.5 + parent: 1 + - uid: 35 + components: + - type: Transform + pos: 1.5,1.5 + parent: 1 + - uid: 36 + components: + - type: Transform + pos: -1.5,-0.5 + parent: 1 + - uid: 37 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 + - uid: 38 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 + - uid: 39 + components: + - type: Transform + pos: -0.5,-2.5 + parent: 1 + - uid: 40 + components: + - type: Transform + pos: -0.5,-3.5 + parent: 1 + - uid: 41 + components: + - type: Transform + pos: -0.5,-4.5 + parent: 1 + - uid: 42 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 1 + - uid: 43 + components: + - type: Transform + pos: 0.5,-5.5 + parent: 1 + - uid: 44 + components: + - type: Transform + pos: 1.5,-5.5 + parent: 1 + - uid: 45 + components: + - type: Transform + pos: -3.5,-0.5 + parent: 1 + - uid: 46 + components: + - type: Transform + pos: -4.5,-0.5 + parent: 1 + - uid: 47 + components: + - type: Transform + pos: -5.5,-0.5 + parent: 1 + - uid: 48 + components: + - type: Transform + pos: -5.5,-1.5 + parent: 1 + - uid: 49 + components: + - type: Transform + pos: -5.5,-2.5 + parent: 1 + - uid: 50 + components: + - type: Transform + pos: -5.5,0.5 + parent: 1 +- proto: CableHV + entities: + - uid: 51 + components: + - type: Transform + pos: 0.5,-6.5 + parent: 1 + - uid: 52 + components: + - type: Transform + pos: -0.5,-6.5 + parent: 1 + - uid: 53 + components: + - type: Transform + pos: -1.5,-6.5 + parent: 1 +- proto: CableMV + entities: + - uid: 54 + components: + - type: Transform + pos: -1.5,-6.5 + parent: 1 + - uid: 55 + components: + - type: Transform + pos: -2.5,-6.5 + parent: 1 +- proto: CableTerminal + entities: + - uid: 56 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-6.5 + parent: 1 +- proto: Catwalk + entities: + - uid: 57 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-5.5 + parent: 1 + - uid: 58 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-5.5 + parent: 1 + - uid: 59 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-5.5 + parent: 1 +- proto: ChairFolding + entities: + - uid: 60 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-4.5 + parent: 1 +- proto: ChairPilotSeat + entities: + - uid: 61 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,2.5 + parent: 1 +- proto: ClothingNeckCloakMiner + entities: + - uid: 62 + components: + - type: Transform + pos: 1.5,1.5000001 + parent: 1 +- proto: ClothingOuterWinterMiner + entities: + - uid: 63 + components: + - type: Transform + pos: 1.5,1.5000001 + parent: 1 +- proto: ComputerShuttle + entities: + - uid: 64 + components: + - type: Transform + pos: 0.5,3.5 + parent: 1 +- proto: ComputerStationRecords + entities: + - uid: 65 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,2.5 + parent: 1 +- proto: ConveyorBelt + entities: + - uid: 66 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-2.5 + parent: 1 + - uid: 67 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-2.5 + parent: 1 + - uid: 68 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-2.5 + parent: 1 + - uid: 69 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-2.5 + parent: 1 + - uid: 70 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-2.5 + parent: 1 + - uid: 71 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-2.5 + parent: 1 + - uid: 72 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-2.5 + parent: 1 +- proto: DrinkFlaskOld + entities: + - uid: 73 + components: + - type: Transform + pos: -2.483875,3.5550194 + parent: 1 +- proto: FaxMachineBase + entities: + - uid: 74 + components: + - type: Transform + pos: 1.5,3.5 + parent: 1 +- proto: FirelockGlass + entities: + - uid: 75 + components: + - type: Transform + pos: -2.5,1.5 + parent: 1 + - uid: 76 + components: + - type: Transform + pos: -2.5,-3.5 + parent: 1 +- proto: GasPassiveVent + entities: + - uid: 77 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPipeBend + entities: + - uid: 78 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 79 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPipeStraight + entities: + - uid: 80 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 81 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 82 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 83 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 84 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 85 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 86 + components: + - type: Transform + pos: -2.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 87 + components: + - type: Transform + pos: -2.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 88 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPipeTJunction + entities: + - uid: 89 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 90 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasVentScrubber + entities: + - uid: 91 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 92 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 93 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GravityGeneratorMini + entities: + - uid: 94 + components: + - type: Transform + pos: 1.5,-5.5 + parent: 1 +- proto: Grille + entities: + - uid: 95 + components: + - type: Transform + pos: 1.5,0.5 + parent: 1 + - uid: 96 + components: + - type: Transform + pos: -0.5,0.5 + parent: 1 + - uid: 97 + components: + - type: Transform + pos: 2.5,1.5 + parent: 1 + - uid: 98 + components: + - type: Transform + pos: 2.5,2.5 + parent: 1 + - uid: 99 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-0.5 + parent: 1 + - uid: 100 + components: + - type: Transform + pos: -5.5,1.5 + parent: 1 + - uid: 101 + components: + - type: Transform + pos: -3.5,3.5 + parent: 1 + - uid: 102 + components: + - type: Transform + pos: -2.5,4.5 + parent: 1 + - uid: 103 + components: + - type: Transform + pos: -1.5,4.5 + parent: 1 + - uid: 104 + components: + - type: Transform + pos: 0.5,4.5 + parent: 1 + - uid: 105 + components: + - type: Transform + pos: 1.5,4.5 + parent: 1 + - uid: 106 + components: + - type: Transform + pos: 2.5,3.5 + parent: 1 + - uid: 107 + components: + - type: Transform + pos: -5.5,-3.5 + parent: 1 + - uid: 108 + components: + - type: Transform + pos: -3.5,-4.5 + parent: 1 + - uid: 109 + components: + - type: Transform + pos: 2.5,-5.5 + parent: 1 + - uid: 110 + components: + - type: Transform + pos: 2.5,-4.5 + parent: 1 + - uid: 111 + components: + - type: Transform + pos: 1.5,-3.5 + parent: 1 + - uid: 112 + components: + - type: Transform + pos: -3.5,-5.5 + parent: 1 + - uid: 113 + components: + - type: Transform + pos: -1.5,-7.5 + parent: 1 + - uid: 114 + components: + - type: Transform + pos: -0.5,-7.5 + parent: 1 + - uid: 115 + components: + - type: Transform + pos: 0.5,-7.5 + parent: 1 + - uid: 116 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-3.5 + parent: 1 + - uid: 117 + components: + - type: Transform + pos: -4.5,-0.5 + parent: 1 +- proto: GroundTobacco + entities: + - uid: 118 + components: + - type: Transform + pos: 1.6025628,-4.4469357 + parent: 1 +- proto: Gyroscope + entities: + - uid: 119 + components: + - type: Transform + pos: -4.5,2.5 + parent: 1 +- proto: IntercomSupply + entities: + - uid: 120 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,0.5 + parent: 1 + - uid: 121 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-3.5 + parent: 1 + - uid: 122 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,1.5 + parent: 1 +- proto: LockerSalvageSpecialistFilled + entities: + - uid: 123 + components: + - type: Transform + pos: -0.5,-4.5 + parent: 1 + - type: Lock + locked: False + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 124 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: Matchbox + entities: + - uid: 125 + components: + - type: Transform + pos: 1.6783751,-4.3457556 + parent: 1 +- proto: MiningDrill + entities: + - uid: 124 + components: + - type: Transform + parent: 123 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: OreProcessor + entities: + - uid: 126 + components: + - type: Transform + pos: -2.5,-5.5 + parent: 1 +- proto: PlasticFlapsAirtightClear + entities: + - uid: 127 + components: + - type: Transform + pos: -6.5,-2.5 + parent: 1 + - uid: 128 + components: + - type: Transform + pos: -4.5,-2.5 + parent: 1 +- proto: PortableGeneratorSuperPacman + entities: + - uid: 129 + components: + - type: Transform + pos: 0.5,-6.5 + parent: 1 +- proto: PottedPlantRandomPlastic + entities: + - uid: 130 + components: + - type: Transform + pos: -0.5,1.5 + parent: 1 +- proto: Poweredlight + entities: + - uid: 131 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,2.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 132 + components: + - type: Transform + pos: -4.5,-4.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 133 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-2.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 134 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-6.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 +- proto: PoweredlightSodium + entities: + - uid: 135 + components: + - type: Transform + pos: 2.5,-0.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 +- proto: Rack + entities: + - uid: 136 + components: + - type: Transform + pos: 1.5,1.5 + parent: 1 +- proto: ReinforcedWindow + entities: + - uid: 137 + components: + - type: Transform + pos: 1.5,0.5 + parent: 1 + - uid: 138 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-0.5 + parent: 1 + - uid: 139 + components: + - type: Transform + pos: -5.5,1.5 + parent: 1 + - uid: 140 + components: + - type: Transform + pos: 2.5,1.5 + parent: 1 + - uid: 141 + components: + - type: Transform + pos: 2.5,2.5 + parent: 1 + - uid: 142 + components: + - type: Transform + pos: 2.5,3.5 + parent: 1 + - uid: 143 + components: + - type: Transform + pos: 1.5,4.5 + parent: 1 + - uid: 144 + components: + - type: Transform + pos: 0.5,4.5 + parent: 1 + - uid: 145 + components: + - type: Transform + pos: -1.5,4.5 + parent: 1 + - uid: 146 + components: + - type: Transform + pos: -2.5,4.5 + parent: 1 + - uid: 147 + components: + - type: Transform + pos: -3.5,3.5 + parent: 1 + - uid: 148 + components: + - type: Transform + pos: -5.5,-3.5 + parent: 1 + - uid: 149 + components: + - type: Transform + pos: -3.5,-4.5 + parent: 1 + - uid: 150 + components: + - type: Transform + pos: 1.5,-3.5 + parent: 1 + - uid: 151 + components: + - type: Transform + pos: 2.5,-4.5 + parent: 1 + - uid: 152 + components: + - type: Transform + pos: -3.5,-5.5 + parent: 1 + - uid: 153 + components: + - type: Transform + pos: 2.5,-5.5 + parent: 1 + - uid: 154 + components: + - type: Transform + pos: 0.5,-7.5 + parent: 1 + - uid: 155 + components: + - type: Transform + pos: -0.5,-7.5 + parent: 1 + - uid: 156 + components: + - type: Transform + pos: -1.5,-7.5 + parent: 1 + - uid: 157 + components: + - type: Transform + pos: -4.5,-0.5 + parent: 1 +- proto: SheetPlasma + entities: + - uid: 158 + components: + - type: Transform + pos: 0.5786131,-5.6619444 + parent: 1 +- proto: SignalButton + entities: + - uid: 159 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-3.5 + parent: 1 + - uid: 160 + components: + - type: Transform + pos: -1.5,0.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 14: + - Pressed: Toggle + 15: + - Pressed: Toggle + 16: + - Pressed: Toggle + - uid: 161 + components: + - type: Transform + pos: 2.5,0.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 14: + - Pressed: Toggle + 15: + - Pressed: Toggle + 16: + - Pressed: Toggle +- proto: SignShipDock + entities: + - uid: 162 + components: + - type: Transform + pos: -6.5,-3.5 + parent: 1 +- proto: SMESBasic + entities: + - uid: 163 + components: + - type: Transform + pos: -0.5,-6.5 + parent: 1 +- proto: SmokingPipeFilledTobacco + entities: + - uid: 164 + components: + - type: Transform + pos: 1.4256667,-4.3204603 + parent: 1 +- proto: SubstationBasic + entities: + - uid: 165 + components: + - type: Transform + pos: -1.5,-6.5 + parent: 1 +- proto: Table + entities: + - uid: 166 + components: + - type: Transform + pos: 1.5,-4.5 + parent: 1 +- proto: TableReinforced + entities: + - uid: 167 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,3.5 + parent: 1 + - uid: 168 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,3.5 + parent: 1 +- proto: Thruster + entities: + - uid: 169 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-7.5 + parent: 1 + - uid: 170 + components: + - type: Transform + pos: -4.5,3.5 + parent: 1 + - uid: 171 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-7.5 + parent: 1 + - uid: 172 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,2.5 + parent: 1 +- proto: TwoWayLever + entities: + - uid: 173 + components: + - type: Transform + pos: -3.5,-0.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 71: + - Left: Forward + - Right: Reverse + - Middle: Off + 70: + - Left: Forward + - Right: Reverse + - Middle: Off + 69: + - Left: Forward + - Right: Reverse + - Middle: Off + 72: + - Left: Forward + - Right: Reverse + - Middle: Off + - uid: 174 + components: + - type: Transform + pos: 2.5,-0.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 68: + - Left: Forward + - Right: Reverse + - Middle: Off + 67: + - Left: Forward + - Right: Reverse + - Middle: Off + 66: + - Left: Forward + - Right: Reverse + - Middle: Off +- proto: WallReinforced + entities: + - uid: 175 + components: + - type: Transform + pos: 2.5,0.5 + parent: 1 + - uid: 176 + components: + - type: Transform + pos: 0.5,0.5 + parent: 1 + - uid: 177 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-3.5 + parent: 1 + - uid: 178 + components: + - type: Transform + pos: -6.5,1.5 + parent: 1 + - uid: 179 + components: + - type: Transform + pos: -4.5,1.5 + parent: 1 + - uid: 180 + components: + - type: Transform + pos: -3.5,1.5 + parent: 1 + - uid: 181 + components: + - type: Transform + pos: -3.5,2.5 + parent: 1 + - uid: 182 + components: + - type: Transform + pos: -3.5,4.5 + parent: 1 + - uid: 183 + components: + - type: Transform + pos: -0.5,4.5 + parent: 1 + - uid: 184 + components: + - type: Transform + pos: 2.5,4.5 + parent: 1 + - uid: 185 + components: + - type: Transform + pos: -4.5,-3.5 + parent: 1 + - uid: 186 + components: + - type: Transform + pos: -3.5,-3.5 + parent: 1 + - uid: 187 + components: + - type: Transform + pos: -3.5,-6.5 + parent: 1 + - uid: 188 + components: + - type: Transform + pos: 2.5,-3.5 + parent: 1 + - uid: 189 + components: + - type: Transform + pos: 2.5,-6.5 + parent: 1 + - uid: 190 + components: + - type: Transform + pos: -2.5,-7.5 + parent: 1 + - uid: 191 + components: + - type: Transform + pos: 1.5,-7.5 + parent: 1 + - uid: 192 + components: + - type: Transform + pos: -2.5,-6.5 + parent: 1 + - uid: 193 + components: + - type: Transform + pos: 1.5,-6.5 + parent: 1 + - uid: 194 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-3.5 + parent: 1 +- proto: WallSolid + entities: + - uid: 195 + components: + - type: Transform + pos: -1.5,1.5 + parent: 1 + - uid: 196 + components: + - type: Transform + pos: -1.5,0.5 + parent: 1 + - uid: 197 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-3.5 + parent: 1 +- proto: WarpPoint + entities: + - uid: 201 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 + - type: WarpPoint + location: NT-7 Prospector +- proto: WaterCooler + entities: + - uid: 198 + components: + - type: Transform + pos: -1.5,3.5 + parent: 1 +- proto: Window + entities: + - uid: 199 + components: + - type: Transform + pos: -0.5,0.5 + parent: 1 + - uid: 200 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-3.5 + parent: 1 +... diff --git a/Resources/Maps/Shuttles/DeltaV/pts.yml b/Resources/Maps/Shuttles/DeltaV/pts.yml new file mode 100644 index 00000000000..ae1deb5976c --- /dev/null +++ b/Resources/Maps/Shuttles/DeltaV/pts.yml @@ -0,0 +1,1182 @@ +meta: + format: 6 + postmapinit: false +tilemap: + 0: Space + 24: FloorDark + 29: FloorDarkMono + 33: FloorDarkPlastic + 1: FloorReinforced + 77: FloorSteelMono + 82: FloorTechMaint2 + 96: Lattice + 97: Plating +entities: +- proto: "" + entities: + - uid: 1 + components: + - type: MetaData + - type: Transform + - type: MapGrid + chunks: + -1,-1: + ind: -1,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAUgAAAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAIQAAAAADIQAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAATQAAAAAAIQAAAAACTQAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAATQAAAAADIQAAAAACTQAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAIQAAAAACIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAHQAAAAAAYQAAAAAAHQAAAAAAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAGAAAAAACAQAAAAAAIQAAAAABIQAAAAAD + version: 6 + -1,0: + ind: -1,0 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAHQAAAAACYQAAAAAAHQAAAAADIQAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAQAAAAAAIQAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYQAAAAAAGAAAAAACGAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAGAAAAAAAGAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 0,0: + ind: 0,0 + tiles: HQAAAAACYQAAAAAAHQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAACYQAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAADYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 0,-1: + ind: 0,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAAAAAYQAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAABTQAAAAADYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAATQAAAAACYQAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAYQAAAAAAYQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAACYQAAAAAAHQAAAAAAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAAAAAAAQAAAAAAGAAAAAADYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + - type: Broadphase + - type: Physics + bodyStatus: InAir + angularDamping: 0.05 + linearDamping: 0.05 + fixedRotation: False + bodyType: Dynamic + - type: Fixtures + fixtures: {} + - type: OccluderTree + - type: Shuttle + - type: GridPathfinding + - type: Gravity + gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + - type: DecalGrid + chunkCollection: + version: 2 + nodes: + - node: + angle: 1.5707963267948966 rad + color: '#FFFFFFFF' + id: Arrows + decals: + 0: 0,-2 + 1: 2,-2 + 2: 0,0 + 3: 2,0 + - node: + angle: 4.71238898038469 rad + color: '#FFFFFFFF' + id: Arrows + decals: + 4: -4,0 + 5: -4,-2 + 6: -2,0 + 7: -2,-2 + - node: + angle: 4.71238898038469 rad + color: '#FFFFFFFF' + id: Bot + decals: + 8: -2,-2 + 9: -4,-2 + 10: -4,0 + 11: -2,0 + 12: 0,0 + 13: 0,-2 + 14: 2,-2 + 15: 2,0 + 16: 1,-4 + 17: 1,-5 + 18: -3,-4 + 19: -3,-5 + 20: -1,-4 + 21: -1,-5 + - type: GridAtmosphere + version: 2 + data: + tiles: + -2,-1: + 0: 8 + 1: 2048 + -1,-1: + 1: 57294 + -2,0: + 1: 8 + -1,-2: + 0: 16 + 1: 60608 + -1,0: + 1: 52367 + 0: 256 + -1,-3: + 0: 49152 + 0,-3: + 0: 4096 + 0,-2: + 1: 12560 + 0: 64 + 0,-1: + 1: 24339 + 0: 8 + -1,1: + 0: 192 + 0,0: + 1: 4367 + 0: 1024 + 0,1: + 0: 16 + uniqueMixes: + - volume: 2500 + immutable: True + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.15 + moles: + - 21.824879 + - 82.10312 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + chunkSize: 4 + - type: GasTileOverlay + - type: RadiationGridResistance + - type: BecomesStation + id: PTS + - type: SpreaderGrid + - type: GravityShake + shakeTimes: 10 +- proto: AirlockCommand + entities: + - uid: 2 + components: + - type: Transform + pos: -0.5,1.5 + parent: 1 +- proto: AirlockExternalGlass + entities: + - uid: 3 + components: + - type: Transform + pos: -2.5,-1.5 + parent: 1 + - uid: 4 + components: + - type: Transform + pos: -2.5,0.5 + parent: 1 + - uid: 5 + components: + - type: Transform + pos: 1.5,0.5 + parent: 1 + - uid: 6 + components: + - type: Transform + pos: 1.5,-1.5 + parent: 1 +- proto: AirlockGlassShuttle + entities: + - uid: 7 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-1.5 + parent: 1 + - uid: 8 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,0.5 + parent: 1 + - uid: 9 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,0.5 + parent: 1 + - uid: 10 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-1.5 + parent: 1 +- proto: APCBasic + entities: + - uid: 11 + components: + - type: MetaData + name: Main APC + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-5.5 + parent: 1 +- proto: AtmosDeviceFanTiny + entities: + - uid: 12 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-1.5 + parent: 1 + - uid: 13 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,0.5 + parent: 1 + - uid: 14 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,0.5 + parent: 1 + - uid: 15 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-1.5 + parent: 1 +- proto: CableApcExtension + entities: + - uid: 16 + components: + - type: Transform + pos: 1.5,-5.5 + parent: 1 + - uid: 17 + components: + - type: Transform + pos: 1.5,-4.5 + parent: 1 + - uid: 18 + components: + - type: Transform + pos: 1.5,-3.5 + parent: 1 + - uid: 19 + components: + - type: Transform + pos: 1.5,-2.5 + parent: 1 + - uid: 20 + components: + - type: Transform + pos: 1.5,-1.5 + parent: 1 + - uid: 21 + components: + - type: Transform + pos: 1.5,-0.5 + parent: 1 + - uid: 22 + components: + - type: Transform + pos: 1.5,0.5 + parent: 1 + - uid: 23 + components: + - type: Transform + pos: 0.5,0.5 + parent: 1 + - uid: 24 + components: + - type: Transform + pos: 0.5,1.5 + parent: 1 + - uid: 25 + components: + - type: Transform + pos: 0.5,2.5 + parent: 1 + - uid: 26 + components: + - type: Transform + pos: 0.5,3.5 + parent: 1 + - uid: 27 + components: + - type: Transform + pos: -0.5,3.5 + parent: 1 + - uid: 28 + components: + - type: Transform + pos: -1.5,3.5 + parent: 1 + - uid: 29 + components: + - type: Transform + pos: -1.5,2.5 + parent: 1 + - uid: 30 + components: + - type: Transform + pos: -1.5,1.5 + parent: 1 + - uid: 31 + components: + - type: Transform + pos: -1.5,0.5 + parent: 1 + - uid: 32 + components: + - type: Transform + pos: -2.5,0.5 + parent: 1 + - uid: 33 + components: + - type: Transform + pos: -2.5,-0.5 + parent: 1 + - uid: 34 + components: + - type: Transform + pos: -2.5,-1.5 + parent: 1 + - uid: 35 + components: + - type: Transform + pos: -2.5,-2.5 + parent: 1 + - uid: 36 + components: + - type: Transform + pos: -2.5,-3.5 + parent: 1 + - uid: 37 + components: + - type: Transform + pos: -2.5,-4.5 + parent: 1 + - uid: 38 + components: + - type: Transform + pos: -2.5,-5.5 + parent: 1 + - uid: 39 + components: + - type: Transform + pos: -1.5,-5.5 + parent: 1 + - uid: 40 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 1 + - uid: 41 + components: + - type: Transform + pos: 0.5,-5.5 + parent: 1 + - uid: 42 + components: + - type: Transform + pos: 1.5,-5.5 + parent: 1 +- proto: CableHV + entities: + - uid: 43 + components: + - type: Transform + pos: 0.5,-6.5 + parent: 1 + - uid: 44 + components: + - type: Transform + pos: 0.5,-5.5 + parent: 1 + - uid: 45 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 1 + - uid: 46 + components: + - type: Transform + pos: -1.5,-5.5 + parent: 1 + - uid: 47 + components: + - type: Transform + pos: -2.5,-5.5 + parent: 1 +- proto: CableMV + entities: + - uid: 48 + components: + - type: Transform + pos: -2.5,-5.5 + parent: 1 + - uid: 49 + components: + - type: Transform + pos: -1.5,-5.5 + parent: 1 + - uid: 50 + components: + - type: Transform + pos: -0.5,-5.5 + parent: 1 + - uid: 51 + components: + - type: Transform + pos: 0.5,-5.5 + parent: 1 + - uid: 52 + components: + - type: Transform + pos: 1.5,-5.5 + parent: 1 +- proto: ChairPilotSeat + entities: + - uid: 53 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-3.5 + parent: 1 + - uid: 54 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-4.5 + parent: 1 + - uid: 55 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-3.5 + parent: 1 + - uid: 56 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-4.5 + parent: 1 + - uid: 57 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-3.5 + parent: 1 + - uid: 58 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-4.5 + parent: 1 + - uid: 59 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,2.5 + parent: 1 +- proto: ClosetWallEmergencyFilledRandom + entities: + - uid: 60 + components: + - type: Transform + pos: -2.5,-2.5 + parent: 1 + - uid: 61 + components: + - type: Transform + pos: 1.5,-2.5 + parent: 1 +- proto: ComputerFrame + entities: + - uid: 62 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,2.5 + parent: 1 +- proto: ComputerShuttle + entities: + - uid: 63 + components: + - type: Transform + pos: -0.5,3.5 + parent: 1 +- proto: ComputerStationRecords + entities: + - uid: 64 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,2.5 + parent: 1 +- proto: FirelockGlass + entities: + - uid: 65 + components: + - type: Transform + pos: -1.5,-2.5 + parent: 1 + - uid: 66 + components: + - type: Transform + pos: -0.5,-2.5 + parent: 1 + - uid: 67 + components: + - type: Transform + pos: 0.5,-2.5 + parent: 1 +- proto: GasPassiveVent + entities: + - uid: 68 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPipeStraight + entities: + - uid: 69 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 70 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 71 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 72 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 73 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 74 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 75 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 76 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasPipeTJunction + entities: + - uid: 77 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasVentScrubber + entities: + - uid: 78 + components: + - type: Transform + pos: -0.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 79 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#990000FF' +- proto: GravityGeneratorMini + entities: + - uid: 80 + components: + - type: Transform + pos: -0.5,-6.5 + parent: 1 +- proto: Grille + entities: + - uid: 81 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-0.5 + parent: 1 + - uid: 82 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-0.5 + parent: 1 + - uid: 83 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-0.5 + parent: 1 + - uid: 84 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-0.5 + parent: 1 + - uid: 85 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,1.5 + parent: 1 + - uid: 86 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,1.5 + parent: 1 + - uid: 87 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,3.5 + parent: 1 + - uid: 88 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,4.5 + parent: 1 + - uid: 89 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,4.5 + parent: 1 + - uid: 90 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,4.5 + parent: 1 + - uid: 91 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,3.5 + parent: 1 + - uid: 92 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,1.5 + parent: 1 + - uid: 93 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,1.5 + parent: 1 + - uid: 94 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-7.5 + parent: 1 + - uid: 95 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-7.5 + parent: 1 + - uid: 96 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-7.5 + parent: 1 + - uid: 97 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-6.5 + parent: 1 + - uid: 98 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-6.5 + parent: 1 + - uid: 99 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-4.5 + parent: 1 + - uid: 100 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-3.5 + parent: 1 + - uid: 101 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-4.5 + parent: 1 + - uid: 102 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-3.5 + parent: 1 +- proto: Gyroscope + entities: + - uid: 103 + components: + - type: Transform + pos: -1.5,-6.5 + parent: 1 +- proto: IntercomCommon + entities: + - uid: 104 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,2.5 + parent: 1 +- proto: PortableGeneratorPacman + entities: + - uid: 105 + components: + - type: Transform + pos: 0.5,-6.5 + parent: 1 +- proto: PowerCellRecharger + entities: + - uid: 106 + components: + - type: Transform + pos: -1.5,3.5 + parent: 1 +- proto: Poweredlight + entities: + - uid: 107 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-1.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 108 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-1.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 109 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,2.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 110 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-4.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 + - uid: 111 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-4.5 + parent: 1 + - type: ApcPowerReceiver + powerLoad: 0 +- proto: ReinforcedWindow + entities: + - uid: 112 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-0.5 + parent: 1 + - uid: 113 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-0.5 + parent: 1 + - uid: 114 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-0.5 + parent: 1 + - uid: 115 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-0.5 + parent: 1 + - uid: 116 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,3.5 + parent: 1 + - uid: 117 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,4.5 + parent: 1 + - uid: 118 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,4.5 + parent: 1 + - uid: 119 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,4.5 + parent: 1 + - uid: 120 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,3.5 + parent: 1 + - uid: 121 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,1.5 + parent: 1 + - uid: 122 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,1.5 + parent: 1 + - uid: 123 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-7.5 + parent: 1 + - uid: 124 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-7.5 + parent: 1 + - uid: 125 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-7.5 + parent: 1 + - uid: 126 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-6.5 + parent: 1 + - uid: 127 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-6.5 + parent: 1 + - uid: 128 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-3.5 + parent: 1 + - uid: 129 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-4.5 + parent: 1 + - uid: 130 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-3.5 + parent: 1 + - uid: 131 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-4.5 + parent: 1 +- proto: SheetPlasma + entities: + - uid: 132 + components: + - type: Transform + pos: 0.52801514,-5.708868 + parent: 1 +- proto: SubstationWallBasic + entities: + - uid: 133 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-5.5 + parent: 1 +- proto: TableReinforced + entities: + - uid: 134 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,3.5 + parent: 1 + - uid: 135 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,3.5 + parent: 1 +- proto: Thruster + entities: + - uid: 136 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-6.5 + parent: 1 + - uid: 137 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-6.5 + parent: 1 + - uid: 138 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,2.5 + parent: 1 + - uid: 139 + components: + - type: Transform + pos: 2.5,2.5 + parent: 1 +- proto: WallReinforced + entities: + - uid: 140 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,1.5 + parent: 1 + - uid: 141 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-2.5 + parent: 1 + - uid: 142 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,1.5 + parent: 1 + - uid: 143 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-2.5 + parent: 1 + - uid: 144 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-2.5 + parent: 1 + - uid: 145 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-2.5 + parent: 1 + - uid: 146 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-2.5 + parent: 1 + - uid: 147 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-2.5 + parent: 1 + - uid: 148 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,1.5 + parent: 1 + - uid: 149 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,1.5 + parent: 1 + - uid: 150 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,2.5 + parent: 1 + - uid: 151 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,2.5 + parent: 1 + - uid: 152 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,4.5 + parent: 1 + - uid: 153 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,4.5 + parent: 1 + - uid: 154 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-5.5 + parent: 1 + - uid: 155 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-5.5 + parent: 1 + - uid: 156 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-5.5 + parent: 1 + - uid: 157 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-5.5 + parent: 1 + - uid: 158 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-7.5 + parent: 1 + - uid: 159 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-7.5 + parent: 1 +- proto: WarpPoint + entities: + - uid: 162 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 + - type: WarpPoint + location: Private Transport Shuttle +- proto: Window + entities: + - uid: 160 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,1.5 + parent: 1 + - uid: 161 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,1.5 + parent: 1 +... diff --git a/Resources/Maps/Shuttles/pathfinder.yml b/Resources/Maps/Shuttles/pathfinder.yml index d28c1fc8206..ebe5cacfd37 100644 --- a/Resources/Maps/Shuttles/pathfinder.yml +++ b/Resources/Maps/Shuttles/pathfinder.yml @@ -20,8 +20,6 @@ entities: - type: MetaData name: Pathfinder - type: Transform - pos: -0.515625,-0.515625 - parent: invalid - type: MapGrid chunks: 0,0: @@ -3044,6 +3042,8 @@ entities: - type: Transform pos: 0.5,-0.5 parent: 1 + - type: WarpPoint + location: NTSP Bulwark - uid: 359 components: - type: Transform diff --git a/Resources/Maps/europa.yml b/Resources/Maps/europa.yml new file mode 100644 index 00000000000..21403bfb316 --- /dev/null +++ b/Resources/Maps/europa.yml @@ -0,0 +1,102358 @@ +meta: + format: 6 + postmapinit: false +tilemap: + 0: Space + 2: FloorArcadeBlue2 + 11: FloorAsteroidTile + 5: FloorAstroGrass + 14: FloorBar + 17: FloorBlueCircuit + 19: FloorBrokenWood + 20: FloorCarpetClown + 25: FloorClown + 29: FloorDark + 34: FloorDarkMono + 35: FloorDarkOffset + 1: FloorDesert + 44: FloorFreezer + 4: FloorGlass + 54: FloorGreenCircuit + 6: FloorHullReinforced + 58: FloorHydro + 60: FloorKitchen + 62: FloorLino + 65: FloorMime + 77: FloorReinforced + 80: FloorShowroom + 89: FloorSnow + 91: FloorSteel + 98: FloorSteelDirty + 99: FloorSteelHerringbone + 102: FloorSteelMono + 106: FloorTechMaint + 107: FloorTechMaint2 + 108: FloorTechMaint3 + 110: FloorWhite + 115: FloorWhiteMono + 119: FloorWhitePlastic + 120: FloorWood + 122: FloorWoodTile + 3: Lattice + 124: Plating +entities: +- proto: "" + entities: + - uid: 1 + components: + - type: MetaData + name: Ghetto + - type: Transform + parent: 77 + - type: Broadphase + - type: OccluderTree + - type: MapGrid + chunks: + -1,-1: + ind: -1,-1 + tiles: IgAAAAADfAAAAAAATQAAAAAATQAAAAAATQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAADfAAAAAAATQAAAAAATQAAAAAATQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAATQAAAAAATQAAAAAAIgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAHQAAAAABHQAAAAABWwAAAAADHQAAAAAAHQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAADZgAAAAAAZgAAAAADYgAAAAAACwAAAAAAWwAAAAACZgAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAACZgAAAAAAfAAAAAAAWwAAAAAAYgAAAAAAWwAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAATQAAAAAAfAAAAAAAZgAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAACCwAAAAAAfAAAAAAAeAAAAAADeAAAAAADeAAAAAAAWwAAAAABWwAAAAADCwAAAAAAWwAAAAACYgAAAAAAWwAAAAABfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAAAYgAAAAAAfAAAAAAAegAAAAACeAAAAAABEwAAAAAEWwAAAAACYgAAAAAAYgAAAAAAWwAAAAADYgAAAAAAWwAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAAAZgAAAAACfAAAAAAAeAAAAAAAEwAAAAAGeAAAAAABWwAAAAABWwAAAAABWwAAAAAAYgAAAAAACwAAAAAAWwAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAAAWwAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAADIgAAAAACIgAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAANgAAAAAAZgAAAAACCwAAAAAAfAAAAAAAWwAAAAAAWwAAAAAAWwAAAAAAfAAAAAAAIgAAAAADIgAAAAADIgAAAAAAIgAAAAADIgAAAAABfAAAAAAAfAAAAAAAfAAAAAAANgAAAAAAZgAAAAACYgAAAAAAZgAAAAABWwAAAAADWwAAAAACWwAAAAABfAAAAAAAIgAAAAABIgAAAAABIgAAAAAAIgAAAAAAIgAAAAABfAAAAAAAfAAAAAAAfAAAAAAANgAAAAAAZgAAAAABWwAAAAABfAAAAAAAHQAAAAABWwAAAAADHQAAAAADfAAAAAAAIgAAAAAAIgAAAAADIgAAAAADIgAAAAAAIgAAAAABfAAAAAAAfAAAAAAAfAAAAAAAHQAAAAACZgAAAAAAWwAAAAAAfAAAAAAAHQAAAAABWwAAAAACHQAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAADYgAAAAAAfAAAAAAAHQAAAAACHQAAAAACHQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAA + version: 6 + -1,0: + ind: -1,0 + tiles: ZgAAAAADWwAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAADYgAAAAAAWwAAAAADfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAZgAAAAACZgAAAAABYgAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAWwAAAAAAZgAAAAABYgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAAAZgAAAAADCwAAAAAAfAAAAAAAfAAAAAAAHQAAAAACWwAAAAACWwAAAAAAYgAAAAAAWwAAAAAAHQAAAAABHQAAAAADHQAAAAABeAAAAAACegAAAAACeAAAAAADYgAAAAAAZgAAAAADYgAAAAAAfAAAAAAAHQAAAAADHQAAAAABCwAAAAAAYgAAAAAAWwAAAAACWwAAAAACHQAAAAABIgAAAAAAHQAAAAACEwAAAAACWwAAAAAAWwAAAAABYgAAAAAAZgAAAAADCwAAAAAAfAAAAAAAHQAAAAACHQAAAAACHQAAAAADHQAAAAACHQAAAAAAHQAAAAAAHQAAAAAAHQAAAAADHQAAAAADeAAAAAADeAAAAAACeAAAAAACWwAAAAABZgAAAAADYgAAAAAAfAAAAAAAHQAAAAAAHQAAAAAAHQAAAAACHQAAAAAAHQAAAAADHQAAAAACHQAAAAAAHQAAAAABHQAAAAADHQAAAAACHQAAAAACHQAAAAAACwAAAAAAZgAAAAADYgAAAAAAfAAAAAAAWwAAAAADYgAAAAAAYgAAAAAAYgAAAAAAYgAAAAAAWwAAAAADWwAAAAADIgAAAAADWwAAAAADWwAAAAADWwAAAAADWwAAAAADYgAAAAAAZgAAAAACWwAAAAAAfAAAAAAAWwAAAAABCwAAAAAAWwAAAAAAWwAAAAACCwAAAAAAWwAAAAABWwAAAAAAWwAAAAABWwAAAAACYgAAAAAACwAAAAAAWwAAAAADWwAAAAADZgAAAAABWwAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAABfAAAAAAAWwAAAAABZgAAAAAAWwAAAAAAfAAAAAAAeAAAAAAAWwAAAAADfAAAAAAAWwAAAAABYgAAAAAAZgAAAAAAHQAAAAADHQAAAAACIgAAAAABfAAAAAAAawAAAAAAWwAAAAAAYgAAAAAAZgAAAAABWwAAAAACfAAAAAAAeAAAAAAAWwAAAAAAZgAAAAADWwAAAAAAYgAAAAAAZgAAAAAAIgAAAAADIgAAAAABIgAAAAABfAAAAAAAfAAAAAAAYgAAAAAAYgAAAAAAZgAAAAACWwAAAAABfAAAAAAAeAAAAAADWwAAAAAAfAAAAAAAWwAAAAABYgAAAAAAZgAAAAACIgAAAAABawAAAAAAIgAAAAAAfAAAAAAAWwAAAAADYgAAAAAAWwAAAAABZgAAAAADWwAAAAADfAAAAAAAeAAAAAABZgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAACfAAAAAAAfAAAAAAAZgAAAAAAZgAAAAACCwAAAAAAZgAAAAACCwAAAAAAfAAAAAAAWwAAAAADZgAAAAADfAAAAAAAIgAAAAADIgAAAAADIgAAAAADIgAAAAABIgAAAAADIgAAAAABfAAAAAAAZgAAAAADWwAAAAAA + version: 6 + -1,1: + ind: -1,1 + tiles: CwAAAAAAZgAAAAADWwAAAAAAfAAAAAAAWwAAAAABYgAAAAAAfAAAAAAAHQAAAAABAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAHQAAAAACfAAAAAAAYgAAAAAAWwAAAAADYgAAAAAAZgAAAAACYgAAAAAAfAAAAAAAZgAAAAADZgAAAAAAZgAAAAABZgAAAAACZgAAAAACZgAAAAABZgAAAAABZgAAAAAAZgAAAAACZgAAAAAAZgAAAAABZgAAAAADZgAAAAACZgAAAAABWwAAAAAAfAAAAAAAZgAAAAADZgAAAAABAQAAAAAAfAAAAAAAIgAAAAACIgAAAAABIgAAAAABIgAAAAAAfAAAAAAAAQAAAAAAZgAAAAACZgAAAAADZgAAAAACZgAAAAADWwAAAAABfAAAAAAAZgAAAAABZgAAAAABAQAAAAAAfAAAAAAAHQAAAAADIgAAAAABIgAAAAACHQAAAAADfAAAAAAAAQAAAAAAZgAAAAADZgAAAAABZgAAAAABZgAAAAADYgAAAAAAfAAAAAAAZgAAAAACZgAAAAADAQAAAAAAfAAAAAAAHQAAAAABIgAAAAACIgAAAAACHQAAAAACfAAAAAAAAQAAAAAAZgAAAAADZgAAAAAAWwAAAAABZgAAAAACWwAAAAADfAAAAAAAZgAAAAACZgAAAAABAQAAAAAAfAAAAAAAHQAAAAADIgAAAAABIgAAAAADHQAAAAACfAAAAAAAAQAAAAAAZgAAAAADZgAAAAABZgAAAAADZgAAAAAAZgAAAAABfAAAAAAACwAAAAAAYgAAAAAAWwAAAAACWwAAAAADWwAAAAAAWwAAAAACWwAAAAAAWwAAAAAAWwAAAAACWwAAAAADYgAAAAAAYgAAAAAAWwAAAAACZgAAAAACWwAAAAABWwAAAAABYgAAAAAAfAAAAAAAYgAAAAAAYgAAAAAAYgAAAAAAWwAAAAABCwAAAAAAYgAAAAAAYgAAAAAAWwAAAAAACwAAAAAAWwAAAAADYgAAAAAAZgAAAAABYgAAAAAAWwAAAAADWwAAAAACawAAAAAACwAAAAAAfAAAAAAADgAAAAAADgAAAAACDgAAAAABDgAAAAACDgAAAAACDgAAAAACDgAAAAABDgAAAAAAWwAAAAABZgAAAAACWwAAAAACIgAAAAACIgAAAAAAIgAAAAACIgAAAAACIgAAAAAADgAAAAACDgAAAAAADgAAAAACDgAAAAACDgAAAAAADgAAAAACDgAAAAACDgAAAAACCwAAAAAAZgAAAAABWwAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAADgAAAAAADgAAAAACDgAAAAACDgAAAAAADgAAAAAAIgAAAAAADgAAAAABDgAAAAADYgAAAAAAZgAAAAADWwAAAAADfAAAAAAAIgAAAAADIgAAAAACeAAAAAADfAAAAAAADgAAAAAADgAAAAAADgAAAAAADgAAAAABDgAAAAAADgAAAAABDgAAAAABDgAAAAADWwAAAAAAZgAAAAADCwAAAAAAfAAAAAAAIgAAAAACIgAAAAAAEwAAAAACfAAAAAAAeAAAAAABEwAAAAAAeAAAAAACegAAAAADeAAAAAACDgAAAAAADgAAAAACDgAAAAAAWwAAAAACZgAAAAACWwAAAAAAfAAAAAAAIgAAAAABIgAAAAACegAAAAAAeAAAAAADeAAAAAACegAAAAABeAAAAAAAEwAAAAADeAAAAAADDgAAAAAADgAAAAAADgAAAAACCwAAAAAAZgAAAAADWwAAAAADfAAAAAAAIgAAAAADIgAAAAAAeAAAAAABfAAAAAAAeAAAAAADeAAAAAABeAAAAAADeAAAAAAAegAAAAABDgAAAAADDgAAAAACDgAAAAADYgAAAAAAZgAAAAADWwAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAA + version: 6 + 0,-1: + ind: 0,-1 + tiles: fAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAeAAAAAADeAAAAAADeAAAAAACeAAAAAACfAAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAeAAAAAADeAAAAAACeAAAAAABeAAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAIwAAAAAAIwAAAAAAIwAAAAAAfAAAAAAAHQAAAAABHQAAAAABHQAAAAACHQAAAAABfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAIwAAAAAAIwAAAAAAIwAAAAAAOgAAAAAAHQAAAAABHQAAAAADHQAAAAADHQAAAAABfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAACfAAAAAAAfAAAAAAANgAAAAAANgAAAAAAHQAAAAABHQAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAfAAAAAAAbAAAAAAAfAAAAAAAfAAAAAAAbAAAAAAAIgAAAAABNgAAAAAAHQAAAAAAHQAAAAACfAAAAAAAfAAAAAAAfAAAAAAAagAAAAAAbAAAAAACfAAAAAAAbAAAAAAAawAAAAAAagAAAAAAagAAAAAAfAAAAAAAawAAAAAANgAAAAAANgAAAAAAHQAAAAABHQAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAbAAAAAABfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAAAfAAAAAAAfAAAAAAAHQAAAAADHQAAAAACHQAAAAAAHQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAbAAAAAACfAAAAAAAfAAAAAAAHQAAAAADHQAAAAAAHQAAAAAAHQAAAAACHQAAAAABfAAAAAAAfAAAAAAAHQAAAAABHQAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAagAAAAAAfAAAAAAAHQAAAAABHQAAAAACHQAAAAABHQAAAAADHQAAAAAAfAAAAAAAfAAAAAAAHQAAAAAAHQAAAAABfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAbAAAAAACfAAAAAAAeAAAAAADeAAAAAADEwAAAAAEeAAAAAABeAAAAAACfAAAAAAA + version: 6 + 0,0: + ind: 0,0 + tiles: fAAAAAAAYgAAAAAAYgAAAAAAfAAAAAAAWwAAAAADWwAAAAABfAAAAAAAZgAAAAABfAAAAAAAfAAAAAAAeAAAAAAAeAAAAAADfAAAAAAAeAAAAAAAegAAAAACfAAAAAAAfAAAAAAACwAAAAAAHQAAAAAAfAAAAAAAWwAAAAACWwAAAAACWwAAAAAACwAAAAAAWwAAAAABfAAAAAAAEwAAAAAFeAAAAAADeAAAAAABeAAAAAACeAAAAAACfAAAAAAAfAAAAAAAWwAAAAABHQAAAAABfAAAAAAACwAAAAAAawAAAAAAfAAAAAAAZgAAAAAAZgAAAAACZgAAAAADegAAAAABeAAAAAAAeAAAAAAAeAAAAAACEwAAAAAEfAAAAAAAfAAAAAAAWwAAAAAAHQAAAAABfAAAAAAAfAAAAAAAZgAAAAADYgAAAAAAawAAAAAAYgAAAAAAfAAAAAAAeAAAAAADeAAAAAAAeAAAAAABeAAAAAAAeAAAAAABfAAAAAAAfAAAAAAAYgAAAAAAHQAAAAABfAAAAAAAYgAAAAAAfAAAAAAAYgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAACYgAAAAAAHQAAAAADfAAAAAAACwAAAAAAZgAAAAABYgAAAAAAfAAAAAAAIgAAAAAAIgAAAAABIgAAAAABWwAAAAACZgAAAAACZgAAAAACWwAAAAABAQAAAAAAWwAAAAACCwAAAAAAHQAAAAADfAAAAAAACwAAAAAAZgAAAAAAWwAAAAAAfAAAAAAAIgAAAAADHQAAAAAAHQAAAAABYgAAAAAAZgAAAAACZgAAAAAAWwAAAAAAAQAAAAAAWwAAAAACWwAAAAAAHQAAAAADfAAAAAAAYgAAAAAAZgAAAAABYgAAAAAAfAAAAAAAIgAAAAABHQAAAAAAHQAAAAABCwAAAAAAZgAAAAAAZgAAAAABWwAAAAADAQAAAAAAZgAAAAAAYgAAAAAAHQAAAAACfAAAAAAAYgAAAAAAZgAAAAABCwAAAAAAfAAAAAAAIgAAAAACIgAAAAADIgAAAAABWwAAAAACZgAAAAACZgAAAAACWwAAAAABAQAAAAAAZgAAAAADWwAAAAADWwAAAAADfAAAAAAAYgAAAAAAZgAAAAADWwAAAAABfAAAAAAAIgAAAAACIgAAAAABIgAAAAACWwAAAAADZgAAAAABZgAAAAABWwAAAAACAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAACZgAAAAAAZgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAAAZgAAAAABfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAABIgAAAAADYgAAAAAAWwAAAAABZgAAAAACYgAAAAAAfAAAAAAAIgAAAAAAHQAAAAADIgAAAAABIgAAAAACZgAAAAADZgAAAAADWwAAAAABeAAAAAAAfAAAAAAAWwAAAAADZgAAAAABZgAAAAABZgAAAAAAZgAAAAAAYgAAAAAAfAAAAAAAIgAAAAACHQAAAAADIgAAAAAAYgAAAAAAZgAAAAADZgAAAAAAYgAAAAAAeAAAAAACfAAAAAAAWwAAAAADZgAAAAABWwAAAAAAYgAAAAAAYgAAAAAAYgAAAAAAfAAAAAAAIgAAAAADHQAAAAAAIgAAAAACWwAAAAADZgAAAAABZgAAAAAAWwAAAAAAWwAAAAACfAAAAAAAWwAAAAABZgAAAAADWwAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAABHQAAAAABIgAAAAAAWwAAAAADCwAAAAAAYgAAAAAAYgAAAAAAWwAAAAACfAAAAAAAWwAAAAADZgAAAAABWwAAAAABWwAAAAACWwAAAAADfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAADfAAAAAAAfAAAAAAAWwAAAAADWwAAAAADWwAAAAACWwAAAAAB + version: 6 + 0,1: + ind: 0,1 + tiles: fAAAAAAAWwAAAAAAZgAAAAADZgAAAAADWwAAAAABawAAAAAAfAAAAAAAZgAAAAAAHQAAAAACHQAAAAADHQAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAADZgAAAAABZgAAAAADWwAAAAAAWwAAAAADWwAAAAACfAAAAAAAeAAAAAABegAAAAADEwAAAAAFfAAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAfAAAAAAAWwAAAAADZgAAAAABZgAAAAAAWwAAAAACfAAAAAAAawAAAAAAZgAAAAACeAAAAAADeAAAAAACeAAAAAABfAAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAfAAAAAAAWwAAAAABZgAAAAACZgAAAAAAWwAAAAADWwAAAAADWwAAAAACZgAAAAABeAAAAAAAeAAAAAADeAAAAAABfAAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAfAAAAAAAWwAAAAABZgAAAAACYgAAAAAAWwAAAAADWwAAAAAAWwAAAAAAZgAAAAABEwAAAAABeAAAAAADeAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAABZgAAAAAAWwAAAAABfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAADZgAAAAABZgAAAAACfAAAAAAAfAAAAAAAawAAAAAAagAAAAAAfAAAAAAAawAAAAAAbAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAAAYgAAAAAAZgAAAAAAYgAAAAAAWQAAAAAAfAAAAAAAbAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAbAAAAAABagAAAAAAfAAAAAAAawAAAAAAagAAAAAAfAAAAAAADgAAAAADYgAAAAAAZgAAAAAAYgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAbAAAAAABDgAAAAAAWwAAAAABZgAAAAAAYgAAAAAAZgAAAAAACwAAAAAAHQAAAAACHQAAAAADHQAAAAAAHQAAAAAAWwAAAAAAeAAAAAACeAAAAAABAQAAAAAAfAAAAAAAfAAAAAAADgAAAAABCwAAAAAAZgAAAAADYgAAAAAAfAAAAAAAYgAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAYgAAAAAAegAAAAAAeAAAAAABAQAAAAAAfAAAAAAAbAAAAAAADgAAAAABYgAAAAAAZgAAAAABYgAAAAAAWwAAAAAAWwAAAAACHQAAAAABHQAAAAABHQAAAAAAHQAAAAADYgAAAAAAeAAAAAABeAAAAAADAQAAAAAAfAAAAAAAfAAAAAAADgAAAAADYgAAAAAAawAAAAAAZgAAAAABWwAAAAABYgAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAWwAAAAABEwAAAAAEeAAAAAADAQAAAAAAfAAAAAAAagAAAAAADgAAAAADfAAAAAAAZgAAAAADCwAAAAAAWwAAAAADfAAAAAAAWwAAAAACawAAAAAAWwAAAAACWwAAAAADIgAAAAAAeAAAAAABeAAAAAABAQAAAAAAfAAAAAAAawAAAAAADgAAAAADYgAAAAAAZgAAAAADfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAADWwAAAAABZgAAAAABfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAfAAAAAAAWwAAAAABfAAAAAAACwAAAAAAZgAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAfAAAAAAAUAAAAAAALAAAAAAALAAAAAAAfAAAAAAAfAAAAAAA + version: 6 + 1,-1: + ind: 1,-1 + tiles: fAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAeAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAWwAAAAACWwAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAegAAAAABeAAAAAAAeAAAAAAAfAAAAAAACwAAAAAAYgAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAeAAAAAADeAAAAAAAegAAAAADfAAAAAAAWwAAAAACYgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAeAAAAAACeAAAAAAAeAAAAAABfAAAAAAAYgAAAAAACwAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAACYgAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAbAAAAAAAfAAAAAAACwAAAAAAYgAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAawAAAAAAfAAAAAAAfAAAAAAAagAAAAAAfAAAAAAAfAAAAAAAYgAAAAAAWwAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAbAAAAAADbAAAAAABfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAWwAAAAADWwAAAAADfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAagAAAAAAfAAAAAAAbAAAAAADfAAAAAAAfAAAAAAAZgAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAbAAAAAADawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAagAAAAAAawAAAAAAfAAAAAAAawAAAAAAfAAAAAAAbAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAA + version: 6 + 1,0: + ind: 1,0 + tiles: fAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAbAAAAAACagAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAagAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAagAAAAAAawAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAAAZgAAAAAAZgAAAAAAZgAAAAAAZgAAAAAAZgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAagAAAAAAbAAAAAAAfAAAAAAAZgAAAAAAHQAAAAAAHQAAAAAAHQAAAAAAHQAAAAAAZgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAAAHQAAAAAAHQAAAAAAHQAAAAAAHQAAAAAAZgAAAAAAfAAAAAAAbAAAAAACfAAAAAAAHQAAAAADHQAAAAADHQAAAAACfAAAAAAAawAAAAAAfAAAAAAAZgAAAAAAZgAAAAAAHQAAAAAAHQAAAAAAHQAAAAAAHQAAAAAAZgAAAAAAfAAAAAAAbAAAAAADfAAAAAAAHQAAAAABHQAAAAACHQAAAAABfAAAAAAAfAAAAAAAagAAAAAAfAAAAAAAZgAAAAAAZgAAAAAAZgAAAAAAZgAAAAAAZgAAAAAAZgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAHQAAAAABHQAAAAAAHQAAAAACfAAAAAAAagAAAAAAawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAbAAAAAADfAAAAAAAfAAAAAAAagAAAAAAfAAAAAAAawAAAAAAbAAAAAACfAAAAAAAfAAAAAAAagAAAAAAbAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAagAAAAAAawAAAAAAfAAAAAAAbAAAAAABagAAAAAAfAAAAAAAagAAAAAAfAAAAAAAfAAAAAAAagAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAEwAAAAAFeAAAAAADeAAAAAAAfAAAAAAAHQAAAAABHQAAAAAAHQAAAAADHQAAAAACHQAAAAABHQAAAAAAfAAAAAAAHQAAAAAAZgAAAAACHQAAAAADfAAAAAAAHQAAAAABegAAAAADegAAAAAAEwAAAAAFIgAAAAAAHQAAAAABHQAAAAACHQAAAAABHQAAAAABHQAAAAADHQAAAAACIgAAAAABHQAAAAADZgAAAAACHQAAAAABIgAAAAADHQAAAAAAYgAAAAAAWwAAAAABHQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAACWwAAAAADHQAAAAADIgAAAAACHQAAAAAAHQAAAAACHQAAAAAAIgAAAAAAHQAAAAACIgAAAAABHQAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAABYgAAAAAAHQAAAAABfAAAAAAAeAAAAAACegAAAAADeAAAAAAAfAAAAAAAHQAAAAAAIgAAAAAAHQAAAAACfAAAAAAAawAAAAAAbAAAAAABfAAAAAAAAQAAAAAA + version: 6 + 1,1: + ind: 1,1 + tiles: fAAAAAAAfAAAAAAAIgAAAAAAfAAAAAAAEwAAAAADeAAAAAADeAAAAAABfAAAAAAAHQAAAAADNgAAAAAAHQAAAAACfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAHQAAAAAAHQAAAAABfAAAAAAAeAAAAAABeAAAAAAAeAAAAAADfAAAAAAAHQAAAAAANgAAAAAAHQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAIgAAAAAAHQAAAAADHQAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAHQAAAAAAHQAAAAACfAAAAAAAagAAAAAAawAAAAAAfAAAAAAAagAAAAAAagAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAagAAAAAAbAAAAAABfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAIgAAAAAAIgAAAAABIgAAAAABIgAAAAADIgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAHQAAAAABHQAAAAAAHQAAAAABHQAAAAADHQAAAAACfAAAAAAAWwAAAAABYgAAAAAAWwAAAAADfAAAAAAAfAAAAAAAawAAAAAAawAAAAAAfAAAAAAAfAAAAAAAWwAAAAAAZgAAAAACZgAAAAABCwAAAAAAYgAAAAAAWwAAAAADfAAAAAAAWwAAAAAACwAAAAAAYgAAAAAAfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAZgAAAAABZgAAAAAAWwAAAAAAYgAAAAAAWwAAAAACfAAAAAAAfAAAAAAAZgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAACYgAAAAAAWwAAAAABYgAAAAAAWwAAAAADYgAAAAAAfAAAAAAAagAAAAAAfAAAAAAAbAAAAAABfAAAAAAAfAAAAAAAagAAAAAAfAAAAAAAagAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAagAAAAAAfAAAAAAAagAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAHQAAAAAAHQAAAAACHQAAAAADHQAAAAACHQAAAAACHQAAAAAAfAAAAAAAawAAAAAAfAAAAAAAbAAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAHQAAAAABHQAAAAACCwAAAAAAZgAAAAAAYgAAAAAAHQAAAAAAHQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAagAAAAAAagAAAAAAfAAAAAAAbAAAAAADfAAAAAAAbAAAAAACHQAAAAADHQAAAAABYgAAAAAAZgAAAAADWwAAAAACHQAAAAAAHQAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAHQAAAAAAHQAAAAADWwAAAAACZgAAAAAAYgAAAAAAHQAAAAAAHQAAAAABfAAAAAAAagAAAAAAfAAAAAAAagAAAAAAfAAAAAAAfAAAAAAAbAAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAagAAAAAAfAAAAAAA + version: 6 + -2,-1: + ind: -2,-1 + tiles: fAAAAAAAIgAAAAAAYgAAAAAAIgAAAAADHQAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAHQAAAAAAHQAAAAAAHQAAAAADIgAAAAABHQAAAAAAIgAAAAAAfAAAAAAAIgAAAAABZgAAAAAAIgAAAAABHQAAAAABfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAHQAAAAADHQAAAAACHQAAAAADIgAAAAABIgAAAAAAIgAAAAADfAAAAAAAIgAAAAAAYgAAAAAAIgAAAAAAHQAAAAACfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAADZgAAAAAAIgAAAAABHQAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAHQAAAAADHQAAAAABHQAAAAACHQAAAAACHQAAAAABHQAAAAADHQAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAABfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAAACwAAAAAAWwAAAAAAYgAAAAAAWwAAAAADYgAAAAAAZgAAAAACHQAAAAAAIgAAAAADfAAAAAAAWwAAAAABWwAAAAABIgAAAAAAIgAAAAABIgAAAAABIgAAAAAAWwAAAAACWwAAAAACYgAAAAAAYgAAAAAAWwAAAAABCwAAAAAAZgAAAAACHQAAAAADIgAAAAACIgAAAAACCwAAAAAAYgAAAAAAIgAAAAABIgAAAAADIgAAAAACIgAAAAACWwAAAAABYgAAAAAAYgAAAAAAYgAAAAAAWwAAAAAAfAAAAAAAZgAAAAACHQAAAAADIgAAAAABfAAAAAAAYgAAAAAAYgAAAAAAIgAAAAADIgAAAAACIgAAAAADIgAAAAACWwAAAAACYgAAAAAAWwAAAAAAWwAAAAACWwAAAAADfAAAAAAAYgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAADZgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAADCwAAAAAAYgAAAAAAWwAAAAABWwAAAAAAfAAAAAAAWwAAAAADHQAAAAAAHQAAAAABIgAAAAADWwAAAAACYgAAAAAACwAAAAAAYgAAAAAAWwAAAAABfAAAAAAAfAAAAAAAZgAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAAAHQAAAAABHQAAAAADIgAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAABWwAAAAAAWwAAAAABfAAAAAAAIgAAAAABWwAAAAABYgAAAAAAHQAAAAADHQAAAAADIgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAeAAAAAADeAAAAAADeAAAAAADZgAAAAACZgAAAAAAZgAAAAAAZgAAAAADHQAAAAACHQAAAAAAIgAAAAABfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAeAAAAAAAeAAAAAAAeAAAAAABZgAAAAADZgAAAAADZgAAAAADZgAAAAAAHQAAAAAAHQAAAAACIgAAAAAAYgAAAAAAYgAAAAAAWwAAAAADCwAAAAAAWwAAAAAAfAAAAAAAegAAAAAAEwAAAAADeAAAAAACZgAAAAAAWwAAAAABWwAAAAADCwAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAYgAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAagAAAAAAawAAAAAAbAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAYgAAAAAA + version: 6 + -2,0: + ind: -2,0 + tiles: AQAAAAAAfAAAAAAAbAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAfAAAAAAAagAAAAAAagAAAAAAfAAAAAAAbAAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAAAAQAAAAAAfAAAAAAAagAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAagAAAAAAfAAAAAAAWwAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAABIgAAAAABIgAAAAACIgAAAAAAIgAAAAABfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAACawAAAAAAfAAAAAAAbAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAADHQAAAAAAHQAAAAAAHQAAAAABIgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAABHQAAAAACHQAAAAACHQAAAAABIgAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAADfAAAAAAAeAAAAAACeAAAAAACeAAAAAAAeAAAAAABfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAeAAAAAACeAAAAAADeAAAAAADeAAAAAACfAAAAAAAHQAAAAACHQAAAAACHQAAAAACHQAAAAADfAAAAAAAHQAAAAADHQAAAAADHQAAAAABHQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAABfAAAAAAAfAAAAAAAfAAAAAAAHQAAAAADZgAAAAADZgAAAAABZgAAAAABZgAAAAAAZgAAAAACZgAAAAADZgAAAAADHQAAAAABfAAAAAAAfAAAAAAAHQAAAAADHQAAAAAAIgAAAAABIgAAAAACfAAAAAAAYgAAAAAAZgAAAAADZgAAAAAAZgAAAAADZgAAAAAAZgAAAAADZgAAAAAAZgAAAAADHQAAAAAAfAAAAAAAfAAAAAAAHQAAAAABHQAAAAACIgAAAAABIgAAAAADIgAAAAABCwAAAAAAZgAAAAAAWwAAAAABWwAAAAAAfAAAAAAAHQAAAAADHQAAAAABHQAAAAACHQAAAAABfAAAAAAAfAAAAAAAHQAAAAACHQAAAAADIgAAAAAAIgAAAAACfAAAAAAAYgAAAAAAZgAAAAACYgAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAAAYgAAAAAAZgAAAAAACwAAAAAAAQAAAAAAfAAAAAAAHQAAAAABHQAAAAABeAAAAAADeAAAAAABfAAAAAAAbAAAAAAAfAAAAAAAfAAAAAAAWwAAAAADWwAAAAABfAAAAAAAWwAAAAAAZgAAAAABWwAAAAABAQAAAAAAfAAAAAAAHQAAAAAAHQAAAAADEwAAAAABeAAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAYgAAAAAAYgAAAAAAWwAAAAACWwAAAAACZgAAAAABCwAAAAAAAQAAAAAAfAAAAAAAHQAAAAADHQAAAAACeAAAAAACeAAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAADYgAAAAAAZgAAAAAAYgAAAAAAHQAAAAACIgAAAAAAHQAAAAACHQAAAAACeAAAAAACegAAAAACfAAAAAAA + version: 6 + -2,1: + ind: -2,1 + tiles: fAAAAAAAbAAAAAACfAAAAAAAWwAAAAAAYgAAAAAAfAAAAAAACwAAAAAAZgAAAAACYgAAAAAAfAAAAAAAfAAAAAAAHQAAAAADHQAAAAABeAAAAAADeAAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAACwAAAAAAYgAAAAAAWwAAAAADWwAAAAADZgAAAAADfAAAAAAAWwAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAACawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAADWwAAAAAAZgAAAAABWwAAAAACYgAAAAAAawAAAAAAWwAAAAAAZgAAAAACCwAAAAAAYgAAAAAAZgAAAAACfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAACWwAAAAABfAAAAAAAWwAAAAACZgAAAAACfAAAAAAAZgAAAAAAfAAAAAAAZgAAAAADfAAAAAAAZgAAAAABZgAAAAABfAAAAAAAfAAAAAAAagAAAAAAfAAAAAAAYgAAAAAAWwAAAAADCwAAAAAACwAAAAAAYgAAAAAAWwAAAAAAYgAAAAAAWwAAAAADYgAAAAAAZgAAAAAAWwAAAAACYgAAAAAAZgAAAAAAZgAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAbAAAAAABfAAAAAAAawAAAAAAfAAAAAAAbAAAAAAAawAAAAAAfAAAAAAAagAAAAAAfAAAAAAAbAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAagAAAAAAawAAAAAAfAAAAAAAfAAAAAAAagAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAfAAAAAAAbAAAAAADagAAAAAAZgAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAABYgAAAAAACwAAAAAAYgAAAAAAWwAAAAAACwAAAAAAYgAAAAAAIgAAAAACfAAAAAAAWwAAAAADZgAAAAACZgAAAAABZgAAAAABZgAAAAADfAAAAAAAfAAAAAAAZgAAAAACZgAAAAABZgAAAAABZgAAAAADZgAAAAABZgAAAAACZgAAAAADYgAAAAAAfAAAAAAACwAAAAAAWwAAAAAAZgAAAAABZgAAAAACZgAAAAAAfAAAAAAAfAAAAAAAZgAAAAADZgAAAAACZgAAAAAAZgAAAAABZgAAAAABZgAAAAACZgAAAAABWwAAAAADZgAAAAABWwAAAAAAZgAAAAACZgAAAAADZgAAAAADZgAAAAAAfAAAAAAAfAAAAAAAZgAAAAABZgAAAAACZgAAAAAAZgAAAAAAZgAAAAACZgAAAAACZgAAAAAAYgAAAAAAfAAAAAAAYgAAAAAAZgAAAAAAZgAAAAACZgAAAAAAZgAAAAACfAAAAAAAfAAAAAAAWwAAAAACWwAAAAABYgAAAAAAYgAAAAAAYgAAAAAACwAAAAAAYgAAAAAAWwAAAAADfAAAAAAAWwAAAAABZgAAAAACZgAAAAAAZgAAAAADZgAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAAAZgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAeAAAAAABeAAAAAACeAAAAAACfAAAAAAAYgAAAAAACwAAAAAAYgAAAAAAWwAAAAABZgAAAAAAZgAAAAADZgAAAAADZgAAAAABWwAAAAABWwAAAAADWwAAAAAB + version: 6 + 2,-1: + ind: 2,-1 + tiles: AQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAwAAAAAAAwAAAAAAAwAAAAAA + version: 6 + 2,0: + ind: 2,0 + tiles: AQAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAZgAAAAADYgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAABWwAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAHQAAAAABHQAAAAABHQAAAAACHQAAAAACZgAAAAAAWwAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAABfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAYgAAAAAAIgAAAAABYgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAADIgAAAAABIgAAAAABfAAAAAAAWwAAAAACYgAAAAAAWwAAAAACWwAAAAACZgAAAAACZgAAAAAAZgAAAAACZgAAAAACZgAAAAAAHQAAAAACHQAAAAACHQAAAAACHQAAAAAAHQAAAAADHQAAAAADIgAAAAABHQAAAAAAHQAAAAABHQAAAAABHQAAAAADHQAAAAABIgAAAAADEQAAAAAAfAAAAAAAZgAAAAACHQAAAAACHQAAAAACHQAAAAACHQAAAAADHQAAAAACHQAAAAABIgAAAAABHQAAAAACHQAAAAADHQAAAAADHQAAAAABHQAAAAADIgAAAAADEQAAAAAAfAAAAAAAZgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAABIgAAAAACIgAAAAAAfAAAAAAAWwAAAAACCwAAAAAAYgAAAAAAWwAAAAACZgAAAAADZgAAAAABZgAAAAADZgAAAAACZgAAAAABfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAYgAAAAAAIgAAAAAACwAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAHQAAAAACHQAAAAACHQAAAAAAHQAAAAAAZgAAAAABWwAAAAADWwAAAAACWwAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAA + version: 6 + 2,1: + ind: 2,1 + tiles: AQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAACWwAAAAADWwAAAAABWwAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAZgAAAAAACwAAAAAAYgAAAAAAWwAAAAABfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAwAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 0,2: + ind: 0,2 + tiles: fAAAAAAAWwAAAAAAawAAAAAAWwAAAAAAfAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAcwAAAAACLAAAAAAALAAAAAAAUAAAAAAALAAAAAAAbAAAAAAAfAAAAAAAWwAAAAABZgAAAAACYgAAAAAAZgAAAAADdwAAAAADdwAAAAADdwAAAAACdwAAAAADdwAAAAACfAAAAAAALAAAAAAAUAAAAAAALAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAACZgAAAAADYgAAAAAAZgAAAAACdwAAAAABdwAAAAAAdwAAAAAAdwAAAAAAdwAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAYgAAAAAAWwAAAAADWwAAAAADWwAAAAAAdwAAAAAAdwAAAAADdwAAAAADdwAAAAABdwAAAAABfAAAAAAAfAAAAAAAagAAAAAAawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAYgAAAAAAZgAAAAAAIgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAADZgAAAAAAZgAAAAADfAAAAAAAbAAAAAABfAAAAAAAagAAAAAAfAAAAAAAbAAAAAADawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAagAAAAAAawAAAAAAfAAAAAAAWwAAAAABZgAAAAAAWwAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAACwAAAAAAZgAAAAADWwAAAAACZgAAAAAAawAAAAAAfAAAAAAAbAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAACZgAAAAADWwAAAAABfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAAAZgAAAAACYgAAAAAAIgAAAAADbgAAAAADcwAAAAACcwAAAAADcwAAAAADcwAAAAAAbgAAAAAAbgAAAAADbgAAAAADbgAAAAABbgAAAAADbgAAAAACfAAAAAAAYgAAAAAAZgAAAAADCwAAAAAAfAAAAAAAbgAAAAAAcwAAAAACcwAAAAADcwAAAAACcwAAAAAAbgAAAAADcwAAAAAAcwAAAAAAcwAAAAADcwAAAAADbgAAAAADfAAAAAAAYgAAAAAAZgAAAAABfAAAAAAAbgAAAAACbgAAAAABbgAAAAADbgAAAAADbgAAAAACfAAAAAAAbgAAAAABcwAAAAAAcwAAAAABcwAAAAAAcwAAAAAAbgAAAAABfAAAAAAACwAAAAAAZgAAAAADawAAAAAAfAAAAAAAbgAAAAAAfAAAAAAAcwAAAAADcwAAAAACfAAAAAAAbgAAAAAAbgAAAAAAbgAAAAAAbgAAAAABbgAAAAACbgAAAAACfAAAAAAAWwAAAAACZgAAAAACYgAAAAAAbgAAAAADbgAAAAADcwAAAAAAcwAAAAACcwAAAAAAfAAAAAAAbgAAAAACIgAAAAACfAAAAAAAfAAAAAAAIgAAAAAAbgAAAAADfAAAAAAAZgAAAAAAZgAAAAABZgAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAABHQAAAAACHQAAAAADHQAAAAABHQAAAAABHQAAAAABfAAAAAAAWwAAAAABZgAAAAACWwAAAAABfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAAAIgAAAAADHQAAAAACHQAAAAAAHQAAAAABHQAAAAADHQAAAAABHQAAAAADHQAAAAAD + version: 6 + 1,2: + ind: 1,2 + tiles: fAAAAAAAawAAAAAAbAAAAAACfAAAAAAAfAAAAAAAawAAAAAAfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAbAAAAAABbAAAAAACbAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAagAAAAAAfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAagAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAbAAAAAACfAAAAAAAbAAAAAAAfAAAAAAAagAAAAAAfAAAAAAAawAAAAAAfAAAAAAAagAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAagAAAAAAagAAAAAAawAAAAAAagAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAbAAAAAABagAAAAAAawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAbAAAAAADfAAAAAAAawAAAAAAawAAAAAAbAAAAAAAfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAWwAAAAADWwAAAAABCwAAAAAAYgAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAAAYgAAAAAAYgAAAAAAWwAAAAACfAAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAbAAAAAAAagAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAbAAAAAADfAAAAAAAfAAAAAAAZgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAbAAAAAADbAAAAAACfAAAAAAAfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAbgAAAAABbgAAAAADbgAAAAADbgAAAAAAbgAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAcwAAAAAAbgAAAAADbgAAAAACbgAAAAABbgAAAAAAbgAAAAAAbgAAAAADfAAAAAAAHQAAAAACHQAAAAABHQAAAAADHQAAAAADHQAAAAACHQAAAAACfAAAAAAAawAAAAAAfAAAAAAAbgAAAAABbgAAAAADbgAAAAAAbgAAAAABbgAAAAACbgAAAAAAfAAAAAAAHQAAAAABHQAAAAACHQAAAAACHQAAAAACHQAAAAACHQAAAAABIgAAAAABagAAAAAAfAAAAAAAbgAAAAAAbgAAAAACbgAAAAABbgAAAAAAbgAAAAABfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAHQAAAAAAHQAAAAABHQAAAAACHQAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAADHQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAHQAAAAABHQAAAAAAfAAAAAAAHQAAAAACHQAAAAACHQAAAAAAHQAAAAAAfAAAAAAAfAAAAAAAHQAAAAABfAAAAAAAawAAAAAAfAAAAAAAHQAAAAABHQAAAAAAawAAAAAAHQAAAAAAHQAAAAABIgAAAAAAHQAAAAAAHQAAAAABHQAAAAAAHQAAAAACfAAAAAAAbAAAAAAAHQAAAAABHQAAAAAAHQAAAAACawAAAAAAfAAAAAAAHQAAAAACHQAAAAACHQAAAAAAHQAAAAABfAAAAAAAHQAAAAABHQAAAAADHQAAAAACHQAAAAABfAAAAAAAagAAAAAA + version: 6 + 2,2: + ind: 2,2 + tiles: fAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAAAwAAAAAAAQAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAAAwAAAAAAAQAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAAAwAAAAAAAQAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAAAwAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAAAwAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAAAwAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAwAAAAAAAwAAAAAAfAAAAAAAHQAAAAAAHQAAAAAAIgAAAAACIgAAAAADfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAIgAAAAAAHQAAAAAAHQAAAAADIgAAAAABIgAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAHQAAAAACHQAAAAABIgAAAAABIgAAAAABfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 3,0: + ind: 3,0 + tiles: AQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAwAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIgAAAAABfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAIgAAAAACfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAA + version: 6 + 3,1: + ind: 3,1 + tiles: fAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 1,3: + ind: 1,3 + tiles: fAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAbAAAAAABfAAAAAAAbgAAAAACcwAAAAAAcwAAAAACHQAAAAACHQAAAAACfAAAAAAAHQAAAAADHQAAAAADHQAAAAAAfAAAAAAAeAAAAAABeAAAAAADeAAAAAABfAAAAAAAfAAAAAAAfAAAAAAAbgAAAAADcwAAAAACcwAAAAAAHQAAAAABHQAAAAACfAAAAAAAeAAAAAACeAAAAAABeAAAAAADfAAAAAAAeAAAAAAAeAAAAAABeAAAAAADfAAAAAAAfAAAAAAAfAAAAAAAbgAAAAABcwAAAAABcwAAAAAAHQAAAAAAHQAAAAADfAAAAAAAeAAAAAADeAAAAAADEwAAAAAGfAAAAAAAeAAAAAAAeAAAAAAAegAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAEwAAAAAAeAAAAAAAegAAAAADeAAAAAACegAAAAAAEwAAAAACIgAAAAACfAAAAAAAbAAAAAAAfAAAAAAAHQAAAAAAHQAAAAACHQAAAAACEwAAAAAEIgAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAfAAAAAAAHQAAAAACHQAAAAAAHQAAAAABeAAAAAADeAAAAAAAeAAAAAAAegAAAAACeAAAAAACfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAbAAAAAAAfAAAAAAAfAAAAAAAHQAAAAADHQAAAAADHQAAAAACeAAAAAABeAAAAAADfAAAAAAAeAAAAAABeAAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAagAAAAAAfAAAAAAAfAAAAAAAbAAAAAADawAAAAAAfAAAAAAAfAAAAAAAbAAAAAABagAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAbAAAAAACfAAAAAAAfAAAAAAAfAAAAAAAagAAAAAAfAAAAAAAZgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAABZgAAAAACZgAAAAABZgAAAAAAZgAAAAAAZgAAAAADZgAAAAADagAAAAAAawAAAAAAbAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAADZgAAAAACZgAAAAADZgAAAAAAZgAAAAABZgAAAAAAfAAAAAAAbAAAAAACfAAAAAAAagAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAAAZgAAAAACZgAAAAADZgAAAAACfAAAAAAAfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAACwAAAAAAYgAAAAAAWwAAAAACWwAAAAADYgAAAAAAeAAAAAACeAAAAAACeAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAWwAAAAADZgAAAAABZgAAAAACYgAAAAAAWwAAAAADeAAAAAAAWwAAAAADeAAAAAACeAAAAAACfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAA + version: 6 + 2,3: + ind: 2,3 + tiles: fAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 0,3: + ind: 0,3 + tiles: fAAAAAAAWwAAAAADZgAAAAACCwAAAAAAZgAAAAACfAAAAAAAfAAAAAAAIgAAAAAAIgAAAAAAfAAAAAAAbgAAAAADcwAAAAADcwAAAAAAcwAAAAABbgAAAAADbgAAAAAAfAAAAAAAYgAAAAAAZgAAAAADYgAAAAAAfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAbgAAAAAAcwAAAAACcwAAAAACcwAAAAADbgAAAAAAfAAAAAAAfAAAAAAAYgAAAAAAZgAAAAACWwAAAAACfAAAAAAAfAAAAAAAfAAAAAAAcwAAAAACcwAAAAADbgAAAAABbgAAAAABcwAAAAABcwAAAAADcwAAAAACbgAAAAADcwAAAAAAWwAAAAADWwAAAAABZgAAAAACWwAAAAABfAAAAAAAbAAAAAACfAAAAAAAcwAAAAAAcwAAAAABfAAAAAAAbgAAAAAAcwAAAAADAQAAAAAAcwAAAAACbgAAAAAAfAAAAAAAZgAAAAAAZgAAAAABZgAAAAABYgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAcwAAAAADAQAAAAAAcwAAAAAAbgAAAAAAfAAAAAAAWwAAAAADWwAAAAACawAAAAAAWwAAAAADfAAAAAAAfAAAAAAAfAAAAAAAcwAAAAACcwAAAAADbgAAAAADbgAAAAACcwAAAAACAQAAAAAAcwAAAAADbgAAAAACfAAAAAAAWwAAAAADCwAAAAAAZgAAAAAAWwAAAAAAfAAAAAAAbAAAAAABfAAAAAAAcwAAAAAAcwAAAAACfAAAAAAAfAAAAAAAawAAAAAAfAAAAAAAcwAAAAAAbgAAAAACIgAAAAADYgAAAAAAawAAAAAAfAAAAAAAWwAAAAABfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAcwAAAAAAcwAAAAACfAAAAAAAcwAAAAAAcwAAAAABfAAAAAAAWwAAAAADWwAAAAAAZgAAAAABYgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAcwAAAAADcwAAAAADcwAAAAAAawAAAAAAfAAAAAAAcwAAAAADcwAAAAADcwAAAAABfAAAAAAAWwAAAAADfAAAAAAAZgAAAAAAYgAAAAAAfAAAAAAAagAAAAAAfAAAAAAAcwAAAAACcwAAAAADfAAAAAAAfAAAAAAAfAAAAAAAcwAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAACWwAAAAAAZgAAAAACawAAAAAAZgAAAAADbAAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAbgAAAAADcwAAAAAAbgAAAAACfAAAAAAAfAAAAAAAWwAAAAAAWwAAAAADfAAAAAAAWwAAAAACfAAAAAAAfAAAAAAAfAAAAAAAagAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAbgAAAAABcwAAAAADbgAAAAACfAAAAAAAbAAAAAABfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAcwAAAAADfAAAAAAAfAAAAAAAfAAAAAAAEwAAAAABeAAAAAABegAAAAACeAAAAAADfAAAAAAAagAAAAAAfAAAAAAAbgAAAAAAbgAAAAAAbgAAAAADIgAAAAACcwAAAAACcwAAAAAAcwAAAAACfAAAAAAAfAAAAAAAeAAAAAABeAAAAAADeAAAAAACEwAAAAACfAAAAAAAbAAAAAADfAAAAAAAbgAAAAADbgAAAAACbgAAAAACbgAAAAACcwAAAAADcwAAAAADcwAAAAADfAAAAAAAawAAAAAAEwAAAAAFeAAAAAADegAAAAACeAAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAbgAAAAAAcwAAAAABcwAAAAAAcwAAAAABcwAAAAADbAAAAAAC + version: 6 + -1,2: + ind: -1,2 + tiles: ZgAAAAABawAAAAAAYgAAAAAAfAAAAAAAWwAAAAADZgAAAAAAIgAAAAAAIgAAAAABIgAAAAAAZgAAAAAAYgAAAAAAfAAAAAAAIgAAAAACZgAAAAACCwAAAAAAWwAAAAAAZgAAAAABZgAAAAACZgAAAAABZgAAAAADYgAAAAAAZgAAAAAAIgAAAAADIgAAAAADIgAAAAADZgAAAAACYgAAAAAAZgAAAAADZgAAAAADZgAAAAABYgAAAAAAWwAAAAADZgAAAAACZgAAAAABWwAAAAAAfAAAAAAACwAAAAAAZgAAAAABIgAAAAABIgAAAAACIgAAAAACZgAAAAACWwAAAAACWwAAAAAAZgAAAAADZgAAAAACWwAAAAADWwAAAAABWwAAAAADZgAAAAADCwAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAAAfAAAAAAAfAAAAAAAZgAAAAAAZgAAAAADZgAAAAABfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAACZgAAAAABWwAAAAABfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAbAAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAYgAAAAAAZgAAAAADWwAAAAABfAAAAAAAbAAAAAACfAAAAAAAbAAAAAABfAAAAAAAawAAAAAAawAAAAAAbAAAAAABfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAACZgAAAAADWwAAAAABfAAAAAAAbAAAAAABawAAAAAAfAAAAAAAbAAAAAACawAAAAAAawAAAAAAawAAAAAAbAAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAADZgAAAAABYgAAAAAAfAAAAAAAbAAAAAABfAAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAbAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAABZgAAAAABWwAAAAADfAAAAAAAbAAAAAACawAAAAAAbAAAAAACawAAAAAAfAAAAAAAawAAAAAAawAAAAAAbAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAYgAAAAAAZgAAAAAAIgAAAAAAfAAAAAAAbAAAAAACawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAfAAAAAAAIgAAAAABIgAAAAACIgAAAAACIgAAAAAAWwAAAAAAZgAAAAABWwAAAAAAfAAAAAAAbAAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAfAAAAAAAIgAAAAACIgAAAAAAIgAAAAAAIgAAAAADYgAAAAAAZgAAAAAAYgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAagAAAAAAagAAAAAAagAAAAAAagAAAAAAWwAAAAACZgAAAAAAWwAAAAAAfAAAAAAAbAAAAAADawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAbAAAAAACagAAAAAAagAAAAAAagAAAAAAagAAAAAAYgAAAAAAZgAAAAACYgAAAAAAfAAAAAAAbAAAAAABawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAbAAAAAADagAAAAAAagAAAAAAagAAAAAAagAAAAAAYgAAAAAAZgAAAAACWwAAAAABfAAAAAAAbAAAAAACawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAbAAAAAAAagAAAAAAagAAAAAAagAAAAAAagAAAAAA + version: 6 + -2,2: + ind: -2,2 + tiles: awAAAAAAegAAAAAAeAAAAAADeAAAAAAAZgAAAAADWwAAAAACZgAAAAAAZgAAAAACZgAAAAADZgAAAAABZgAAAAACZgAAAAACZgAAAAABWwAAAAAACwAAAAAAWwAAAAADfAAAAAAAEwAAAAABeAAAAAADeAAAAAABfAAAAAAACwAAAAAAZgAAAAAAZgAAAAACZgAAAAAAfAAAAAAAZgAAAAACZgAAAAAAZgAAAAABWwAAAAACawAAAAAAfAAAAAAAfAAAAAAACwAAAAAAYgAAAAAAWwAAAAADfAAAAAAAIgAAAAACZgAAAAABZgAAAAAAZgAAAAACfAAAAAAAfAAAAAAAZgAAAAACfAAAAAAAYgAAAAAAYgAAAAAAfAAAAAAAbAAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAACZgAAAAADZgAAAAADZgAAAAABZgAAAAAAZgAAAAAAZgAAAAABZgAAAAACWwAAAAABWwAAAAABWwAAAAACbAAAAAACfAAAAAAAawAAAAAAagAAAAAAfAAAAAAAfAAAAAAAZgAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAbAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAbAAAAAABfAAAAAAAagAAAAAAfAAAAAAAIgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAACIgAAAAAAIgAAAAABIgAAAAADIgAAAAADIgAAAAABeAAAAAADeAAAAAADeAAAAAABeAAAAAACfAAAAAAAfAAAAAAAfAAAAAAAYgAAAAAAWwAAAAADfAAAAAAAIgAAAAABIgAAAAADPgAAAAAAfAAAAAAAIgAAAAAAIgAAAAABEwAAAAAFeAAAAAADeAAAAAABeAAAAAADZgAAAAAAfAAAAAAAZgAAAAAAYgAAAAAACwAAAAAAfAAAAAAAIgAAAAAAIgAAAAABPgAAAAAAfAAAAAAAIgAAAAADIgAAAAADegAAAAACeAAAAAABeAAAAAADeAAAAAAAZgAAAAADagAAAAAAfAAAAAAAYgAAAAAAWwAAAAABfAAAAAAAIgAAAAAAPgAAAAAAPgAAAAAAfAAAAAAAIgAAAAACIgAAAAAAeAAAAAACeAAAAAADeAAAAAABeAAAAAADfAAAAAAAagAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAbAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAbAAAAAACfAAAAAAAfAAAAAAAagAAAAAAbAAAAAACawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAagAAAAAAawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAagAAAAAAfAAAAAAAawAAAAAAbAAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAABfAAAAAAAIgAAAAAAWwAAAAACWwAAAAAAIgAAAAABIgAAAAADIgAAAAADIgAAAAADIgAAAAADIgAAAAAAIgAAAAACIgAAAAACIgAAAAABIgAAAAADIgAAAAAB + version: 6 + -2,3: + ind: -2,3 + tiles: ZgAAAAABZgAAAAAAZgAAAAACfAAAAAAAZgAAAAAAYwAAAAABYwAAAAACZgAAAAABZgAAAAACZgAAAAABZgAAAAABZgAAAAADZgAAAAAAZgAAAAABYwAAAAABYwAAAAABWwAAAAADfAAAAAAACwAAAAAAZgAAAAADWwAAAAACIgAAAAAAIgAAAAAAIgAAAAAAIgAAAAADIgAAAAACIgAAAAABIgAAAAADIgAAAAACIgAAAAACIgAAAAABIgAAAAADfAAAAAAAfAAAAAAAZgAAAAABZgAAAAADZgAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAwAAAAAAfAAAAAAAWwAAAAAAZgAAAAAAWwAAAAADfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAfAAAAAAAYgAAAAAAawAAAAAAYgAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAABYgAAAAAAWwAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAZgAAAAAAfAAAAAAAZgAAAAACWwAAAAACfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAYgAAAAAAZgAAAAAACwAAAAAAZgAAAAACfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAWwAAAAAAZgAAAAAAYgAAAAAAfAAAAAAAWwAAAAACfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAAAZgAAAAACYgAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAfAAAAAAAWwAAAAAAZgAAAAADYgAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAfAAAAAAAWwAAAAACZgAAAAACWwAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAfAAAAAAACwAAAAAAZgAAAAAAWwAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAfAAAAAAAWwAAAAADZgAAAAABfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAWwAAAAABCwAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAfAAAAAAAWwAAAAAAawAAAAAAWwAAAAACfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAA + version: 6 + -1,3: + ind: -1,3 + tiles: ZgAAAAAAZgAAAAACWwAAAAAAfAAAAAAAbAAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAbAAAAAABagAAAAAAagAAAAAAagAAAAAAagAAAAAACwAAAAAAZgAAAAACYgAAAAAAfAAAAAAAbAAAAAABawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAbAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAYgAAAAAAZgAAAAABYgAAAAAAfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAYgAAAAAAZgAAAAACWwAAAAABfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAAAYgAAAAAAYgAAAAAAWwAAAAABZgAAAAABWwAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAagAAAAAAfAAAAAAAZgAAAAADZgAAAAADZgAAAAADZgAAAAABWwAAAAAAZgAAAAABCwAAAAAAfAAAAAAAfAAAAAAAbAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAABYgAAAAAAIgAAAAABWwAAAAACZgAAAAABYgAAAAAAfAAAAAAAIgAAAAACIgAAAAADIgAAAAACeAAAAAADeAAAAAABfAAAAAAAawAAAAAAagAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAYgAAAAAAZgAAAAAAZgAAAAAAIgAAAAADIgAAAAACIgAAAAAAIgAAAAAAeAAAAAAAeAAAAAABfAAAAAAAawAAAAAAbAAAAAABfAAAAAAAWwAAAAAAWwAAAAADWwAAAAADYgAAAAAAZgAAAAAAWwAAAAADfAAAAAAAIgAAAAAAIgAAAAAAIgAAAAADeAAAAAAAeAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAAAWwAAAAACWwAAAAAACwAAAAAAZgAAAAADYgAAAAAAfAAAAAAAIgAAAAAAHQAAAAADHQAAAAABEwAAAAACeAAAAAADfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAAAWwAAAAADWwAAAAABCwAAAAAAZgAAAAACWwAAAAAAfAAAAAAAHQAAAAADHQAAAAABHQAAAAAAeAAAAAABegAAAAAAfAAAAAAAbAAAAAAAawAAAAAAfAAAAAAAWwAAAAAAWwAAAAADWwAAAAADYgAAAAAAZgAAAAAAWwAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAbAAAAAABawAAAAAAfAAAAAAAWwAAAAABYgAAAAAACwAAAAAAYgAAAAAAZgAAAAACWwAAAAACfAAAAAAAWwAAAAACWwAAAAACYgAAAAAAfAAAAAAAagAAAAAAagAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAABfAAAAAAAWwAAAAACZgAAAAACawAAAAAAfAAAAAAAYgAAAAAAWwAAAAABWwAAAAACfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAeAAAAAACegAAAAACfAAAAAAAZgAAAAABYgAAAAAAfAAAAAAAWwAAAAABYgAAAAAAYgAAAAAAZgAAAAACfAAAAAAAawAAAAAAagAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAeAAAAAACeAAAAAACYgAAAAAAfAAAAAAAWwAAAAABfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAagAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAeAAAAAADeAAAAAAA + version: 6 + -3,0: + ind: -3,0 + tiles: AQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAfAAAAAAAfAAAAAAAIgAAAAABfAAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAfAAAAAAAfAAAAAAAagAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAGQAAAAAAGQAAAAAAGQAAAAAAIgAAAAABfAAAAAAAfAAAAAAAagAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAQQAAAAAAQQAAAAAAbgAAAAACbgAAAAACfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAQQAAAAAAQQAAAAAAbgAAAAABbgAAAAAAcwAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAQQAAAAAAQQAAAAAAbgAAAAACbgAAAAADcwAAAAACfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAQQAAAAAAQQAAAAAAbgAAAAADbgAAAAADfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAIgAAAAAAIgAAAAADIgAAAAABIgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAIgAAAAABIgAAAAACIgAAAAADIgAAAAADIgAAAAABfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAeAAAAAADeAAAAAACEwAAAAAAegAAAAADfAAAAAAAbAAAAAABagAAAAAAawAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAeAAAAAAAeAAAAAABeAAAAAAAIgAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAeAAAAAADeAAAAAADEwAAAAAF + version: 6 + -3,1: + ind: -3,1 + tiles: AwAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAeAAAAAABeAAAAAADegAAAAAAAwAAAAAAAwAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAeAAAAAAAeAAAAAACeAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAWwAAAAABWwAAAAADWwAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAWwAAAAACWwAAAAABWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAYgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAagAAAAAA + version: 6 + -3,2: + ind: -3,2 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAawAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAagAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAAwAAAAAAAwAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAbAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAAACwAAAAAA + version: 6 + -2,4: + ind: -2,4 + tiles: AAAAAAAAfAAAAAAAWwAAAAADfAAAAAAAYgAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAfAAAAAAAWwAAAAACZgAAAAABWwAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAfAAAAAAAYgAAAAAAWwAAAAADYgAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAwAAAAAAfAAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -1,4: + ind: -1,4 + tiles: CwAAAAAAZgAAAAACfAAAAAAAfAAAAAAAAgAAAAAAAgAAAAAAawAAAAAAAgAAAAAAagAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAACwAAAAAAfAAAAAAAWwAAAAADfAAAAAAAawAAAAAAfAAAAAAAAgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAfAAAAAAAAQAAAAAAWwAAAAAAWwAAAAABYgAAAAAAfAAAAAAAAgAAAAAAawAAAAAAfAAAAAAAawAAAAAAagAAAAAAfAAAAAAAfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAgAAAAAAfAAAAAAAawAAAAAAagAAAAAAfAAAAAAAawAAAAAAfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAagAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAfAAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAfAAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAfAAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 0,4: + ind: 0,4 + tiles: fAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAbgAAAAADbgAAAAABbgAAAAAAbgAAAAABcwAAAAABcwAAAAAAcwAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAawAAAAAAbAAAAAADfAAAAAAAbgAAAAACbgAAAAABbgAAAAABbgAAAAABcwAAAAADcwAAAAACcwAAAAAAfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAagAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAbAAAAAAAfAAAAAAAagAAAAAAfAAAAAAAfAAAAAAAagAAAAAAbAAAAAAAbAAAAAABfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAagAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAbAAAAAABAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAagAAAAAAfAAAAAAAawAAAAAAbAAAAAAAfAAAAAAAfAAAAAAAbAAAAAABfAAAAAAAfAAAAAAAbAAAAAACawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAwAAAAAAAAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAwAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAwAAAAAAfAAAAAAAAwAAAAAAAwAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAA + version: 6 + 1,4: + ind: 1,4 + tiles: fAAAAAAAfAAAAAAAWwAAAAADZgAAAAAAZgAAAAACWwAAAAACWwAAAAACeAAAAAABeAAAAAABeAAAAAAAeAAAAAABfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAbAAAAAACfAAAAAAAWwAAAAACYgAAAAAACwAAAAAAYgAAAAAACwAAAAAAeAAAAAACeAAAAAAAeAAAAAAAeAAAAAABfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAYgAAAAAAWwAAAAACYgAAAAAAWwAAAAABZgAAAAACfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAwAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAwAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAfAAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -3,3: + ind: -3,3 + tiles: fAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAABZgAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAABWwAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAYgAAAAAAWwAAAAAAawAAAAAAWwAAAAAAfAAAAAAAWwAAAAAAWwAAAAAAWwAAAAAAWwAAAAAACwAAAAAAWwAAAAAAWwAAAAAAfAAAAAAAWwAAAAAACwAAAAAAawAAAAAAZgAAAAAAZgAAAAAAZgAAAAAACwAAAAAAZgAAAAAAYgAAAAAAZgAAAAAAZgAAAAAAawAAAAAAfAAAAAAAZgAAAAAAYgAAAAAAZgAAAAAAZgAAAAAAZgAAAAAAZgAAAAAAZgAAAAAACwAAAAAAWwAAAAAAawAAAAAAWwAAAAAAWwAAAAAAWwAAAAAAfAAAAAAAWwAAAAAAfAAAAAAAWwAAAAAAawAAAAAAWwAAAAAAWwAAAAAAYgAAAAAAWwAAAAAAYgAAAAAAawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -4,0: + ind: -4,0 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAwAAAAAAfAAAAAAAAwAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -4,2: + ind: -4,2 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAwAAAAAAAwAAAAAABAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAwAAAAAAAwAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAwAAAAAAAwAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAwAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAA + version: 6 + -3,-1: + ind: -3,-1 + tiles: fAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAWwAAAAAAWwAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAAAWwAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAZgAAAAAAWwAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAAAWwAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAAAWwAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAHQAAAAAAHQAAAAABZgAAAAAAWwAAAAAAWwAAAAAAWwAAAAAAYgAAAAAACwAAAAAAYgAAAAAAYgAAAAAAWwAAAAACCwAAAAAAYgAAAAAAWwAAAAACWwAAAAACfAAAAAAAHQAAAAAAHQAAAAACZgAAAAAAZgAAAAAAZgAAAAAAZgAAAAAAZgAAAAAAeAAAAAAAeAAAAAABeAAAAAABeAAAAAADeAAAAAAAEwAAAAAEZgAAAAAAZgAAAAADfAAAAAAAHQAAAAAAHQAAAAAAZgAAAAAAZgAAAAAAZgAAAAAAZgAAAAAAZgAAAAACeAAAAAAAeAAAAAADeAAAAAADeAAAAAADeAAAAAACeAAAAAADZgAAAAABZgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAZgAAAAAAZgAAAAACZgAAAAABEwAAAAAGeAAAAAABeAAAAAADeAAAAAACeAAAAAABegAAAAABZgAAAAACZgAAAAABZgAAAAAAfAAAAAAAfAAAAAAABQAAAAAAfAAAAAAAWwAAAAAAWwAAAAAAWwAAAAADYgAAAAAAWwAAAAACCwAAAAAAWwAAAAACWwAAAAABWwAAAAAAYgAAAAAACwAAAAAAWwAAAAABfAAAAAAAfAAAAAAABQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAAAfAAAAAAAHQAAAAAAHQAAAAABHQAAAAACfAAAAAAAfAAAAAAABQAAAAAAfAAAAAAAfAAAAAAAHQAAAAAAHQAAAAACHQAAAAACfAAAAAAAHQAAAAABHQAAAAAAHQAAAAADfAAAAAAAHQAAAAABHQAAAAACHQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAHQAAAAACHQAAAAADHQAAAAACfAAAAAAAHQAAAAADHQAAAAADHQAAAAACfAAAAAAAHQAAAAABHQAAAAADHQAAAAACfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAABfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAFAAAAAAAFAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAA + version: 6 + -2,-2: + ind: -2,-2 + tiles: fAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAATQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAATQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAAAWwAAAAAAWwAAAAAAWwAAAAAAWwAAAAAAWwAAAAAAWwAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAagAAAAAAagAAAAAAagAAAAAAagAAAAAAagAAAAAAagAAAAAAagAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAagAAAAAAagAAAAAAagAAAAAAagAAAAAAagAAAAAAagAAAAAAagAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAHQAAAAADHQAAAAACeAAAAAABeAAAAAAAeAAAAAABfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAHQAAAAAAHQAAAAADeAAAAAABeAAAAAAAeAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAHQAAAAAAHQAAAAADeAAAAAAAeAAAAAAAeAAAAAABfAAAAAAAIgAAAAADIgAAAAACIgAAAAABIgAAAAACfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAABfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAADIgAAAAADIgAAAAADIgAAAAABfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAHQAAAAABHQAAAAACHQAAAAACIgAAAAADIgAAAAABIgAAAAAC + version: 6 + -1,-2: + ind: -1,-2 + tiles: fAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAATQAAAAAATQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAATQAAAAAATQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAATQAAAAAAfAAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAATQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAATQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAagAAAAAAfAAAAAAAfAAAAAAAagAAAAAAagAAAAAAagAAAAAAagAAAAAAagAAAAAAagAAAAAAagAAAAAAagAAAAAAagAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAagAAAAAAagAAAAAAHQAAAAADfAAAAAAAfAAAAAAAagAAAAAAfAAAAAAAagAAAAAAfAAAAAAAagAAAAAAfAAAAAAAagAAAAAAfAAAAAAAWwAAAAAAWwAAAAAAfAAAAAAAagAAAAAAagAAAAAAfAAAAAAAfAAAAAAAagAAAAAAagAAAAAAagAAAAAAagAAAAAAagAAAAAAagAAAAAAagAAAAAAagAAAAAAagAAAAAAagAAAAAAagAAAAAAagAAAAAAagAAAAAAagAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAagAAAAAAagAAAAAAfAAAAAAAagAAAAAAagAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAagAAAAAAagAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAATQAAAAAATQAAAAAATQAAAAAAfAAAAAAAfAAAAAAATQAAAAAAfAAAAAAATQAAAAAAfAAAAAAATQAAAAAAfAAAAAAATQAAAAAAfAAAAAAATQAAAAAAfAAAAAAAfAAAAAAATQAAAAAATQAAAAAATQAAAAAAfAAAAAAAfAAAAAAATQAAAAAAfAAAAAAATQAAAAAAfAAAAAAATQAAAAAAfAAAAAAATQAAAAAAfAAAAAAATQAAAAAAfAAAAAAAfAAAAAAATQAAAAAATQAAAAAATQAAAAAAfAAAAAAAfAAAAAAATQAAAAAAfAAAAAAATQAAAAAAfAAAAAAATQAAAAAAfAAAAAAATQAAAAAAfAAAAAAATQAAAAAAfAAAAAAAfAAAAAAATQAAAAAATQAAAAAATQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAIgAAAAAAfAAAAAAATQAAAAAATQAAAAAATQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAA + version: 6 + 0,-2: + ind: 0,-2 + tiles: AQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAagAAAAAAagAAAAAAagAAAAAAagAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAagAAAAAAfAAAAAAAagAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAagAAAAAAagAAAAAAagAAAAAAagAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAATQAAAAAAfAAAAAAATQAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAATQAAAAAAfAAAAAAATQAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAATQAAAAAAfAAAAAAATQAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAA + version: 6 + 1,-2: + ind: 1,-2 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAA + version: 6 + -4,-1: + ind: -4,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAQAAAAAAfAAAAAAAfAAAAAAANgAAAAAANgAAAAAANgAAAAAAWwAAAAAAWwAAAAAAWwAAAAAAWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAEQAAAAAAEQAAAAAAZgAAAAAAZgAAAAAAZgAAAAAAZgAAAAAAZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAEQAAAAAAEQAAAAAAZgAAAAAAZgAAAAAAZgAAAAAAZgAAAAAAZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAANgAAAAAANgAAAAAANgAAAAAAWwAAAAAAWwAAAAAAZgAAAAAAZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAAAZgAAAAAAZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAAAZgAAAAAAZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAAAZgAAAAAAZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAWwAAAAAAZgAAAAAAZgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAABQAAAAAABQAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAABQAAAAAABQAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAABQAAAAAABQAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAwAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAA + version: 6 + 2,4: + ind: 2,4 + tiles: fAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -3,-2: + ind: -3,-2 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAawAAAAAAawAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAfAAAAAAA + version: 6 + -3,-3: + ind: -3,-3 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAA + version: 6 + -2,-3: + ind: -2,-3 + tiles: AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAwAAAAAAfAAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAfAAAAAAAAwAAAAAAAwAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAfAAAAAAATQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAATQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAATQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAATQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAATQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAATQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAawAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAA + version: 6 + -1,-3: + ind: -1,-3 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAfAAAAAAAAwAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAwAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAATQAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAATQAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAATQAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAATQAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAATQAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAATQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAATQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAATQAAAAAAfAAAAAAAawAAAAAAawAAAAAAawAAAAAAawAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAATQAAAAAATQAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAfAAAAAAAfAAAAAAAAQAAAAAAfAAAAAAAAQAAAAAAAQAAAAAA + version: 6 + 0,-3: + ind: 0,-3 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -4,-2: + ind: -4,-2 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAwAAAAAAfAAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAwAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAA + version: 6 + 3,-1: + ind: 3,-1 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAfAAAAAAAAwAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 2,-2: + ind: 2,-2 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + -4,3: + ind: -4,3 + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAwAAAAAAAwAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAwAAAAAAAwAAAAAABAAAAAAAfAAAAAAABAAAAAAAfAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAwAAAAAAAwAAAAAABAAAAAAAfAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAwAAAAAAAwAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAfAAAAAAAawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAWwAAAAAAYgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAwAAAAAAAwAAAAAAfAAAAAAAfAAAAAAAWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAwAAAAAAAwAAAAAAfAAAAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + 3,2: + ind: 3,2 + tiles: AwAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + version: 6 + - type: Physics + bodyStatus: InAir + angularDamping: 0.05 + linearDamping: 0.05 + fixedRotation: False + bodyType: Dynamic + - type: Fixtures + fixtures: {} + - type: SpreaderGrid + - type: GridPathfinding + - type: DecalGrid + chunkCollection: + version: 2 + nodes: + - node: + angle: -1.5707963267948966 rad + color: '#FFFFFFFF' + id: Arrows + decals: + 97: -18,31 + 1380: -7,37 + 1381: -7,49 + - node: + color: '#FFFFFFFF' + id: Arrows + decals: + 270: -23,8 + 1497: 22,59 + 1705: -21,-42 + - node: + angle: 1.5707963267948966 rad + color: '#FFFFFFFF' + id: Arrows + decals: + 1382: -10,37 + 1383: -10,49 + - node: + color: '#FFFFFFFF' + id: Basalt1 + decals: + 1564: 13.231785,28.846664 + - node: + color: '#FFFFFFFF' + id: Basalt5 + decals: + 1563: 13.088196,24.850246 + - node: + color: '#FFFFFFFF' + id: Basalt7 + decals: + 1565: 13.106144,28.93627 + - node: + color: '#A46106FF' + id: Bot + decals: + 332: -31,-14 + - node: + angle: -1.5707963267948966 rad + color: '#FFFFFFFF' + id: Bot + decals: + 202: 11,11 + 203: 8,7 + 204: 8,6 + - node: + color: '#FFFFFFFF' + id: Bot + decals: + 29: -3,26 + 63: 3,36 + 64: 10,29 + 71: -10,34 + 72: -9,34 + 73: -8,34 + 74: -4,32 + 93: -19,32 + 94: -19,31 + 103: -8,15 + 104: -7,15 + 105: -6,15 + 109: -4,11 + 113: -26,41 + 125: -28,28 + 126: -28,27 + 127: -28,26 + 128: -26,28 + 129: -26,27 + 130: -26,26 + 162: -5,8 + 183: 13,7 + 184: 12,7 + 185: 12,6 + 186: 13,6 + 208: 26,15 + 209: 26,14 + 268: -26,7 + 269: -23,7 + 275: -25,7 + 278: -1,-3 + 279: 3,-6 + 280: -26,8 + 301: -37,14 + 302: -37,4 + 360: 2,11 + 361: -14,42 + 378: -9,-4 + 379: -9,-3 + 380: -8,-4 + 381: -8,-3 + 382: -7,-3 + 383: -7,-4 + 384: -6,-4 + 385: -6,-3 + 386: -5,-3 + 387: -5,-4 + 401: 20,53 + 402: 4,41 + 403: 10,46 + 432: -1,53 + 433: -30,47 + 439: -12,57 + 440: 28,52 + 468: 20,21 + 469: 21,21 + 470: 19,21 + 493: 45,14 + 494: 48,13 + 495: 48,10 + 496: 45,9 + 521: 23,28 + 522: 23,29 + 523: 23,30 + 524: 17,28 + 525: 17,29 + 526: 17,30 + 527: 18,27 + 528: 20,27 + 529: 22,27 + 576: -1,49 + 577: -2,49 + 578: -3,49 + 579: -2,37 + 580: -2,36 + 613: -24,25 + 1384: 10,61 + 1385: -27,34 + 1386: -19,-6 + 1498: -11,43 + 1499: -10,43 + 1500: -6,43 + 1501: -7,43 + 1502: -10,40 + 1503: -7,38 + 1504: -6,37 + 1506: -10,37 + 1507: -6,43 + 1508: -6,42 + 1509: -7,42 + 1510: -10,42 + 1511: -11,42 + 1512: -11,39 + 1513: -11,45 + 1514: -10,45 + 1515: -10,46 + 1516: -11,46 + 1517: -7,45 + 1518: -6,45 + 1519: -6,46 + 1520: -6,46 + 1521: -7,46 + 1522: -6,49 + 1523: -6,48 + 1524: -7,48 + 1525: -7,49 + 1526: -10,48 + 1527: -10,49 + 1528: -11,49 + 1529: -11,48 + 1967: -26,-27 + 1968: -26,-29 + 1969: -25,-30 + 1970: -27,-33 + 1971: -26,-32 + 1972: -30,-31 + 1973: -30,-35 + 1974: -33,-33 + 1975: -27,-38 + 1976: -26,-38 + 1977: -16,-32 + 1978: -22,-29 + 2022: -25,-37 + 2023: -24,-37 + 2024: -24,-38 + 2025: -25,-38 + 2026: -25,-39 + 2027: -24,-39 + - node: + angle: 1.5707963267948966 rad + color: '#FFFFFFFF' + id: Bot + decals: + 344: -27,-11 + - node: + color: '#334E6DFF' + id: BotGreyscale + decals: + 324: -31,-16 + - node: + angle: 3.141592653589793 rad + color: '#52B4E9FF' + id: BotGreyscale + decals: + 320: -29,-13 + - node: + angle: 3.141592653589793 rad + color: '#9FED58FF' + id: BotGreyscale + decals: + 319: -29,-14 + - node: + color: '#D381C9FF' + id: BotGreyscale + decals: + 325: -29,-16 + - node: + angle: 3.141592653589793 rad + color: '#D4D4D4FF' + id: BotGreyscale + decals: + 316: -31,-13 + - node: + angle: 3.141592653589793 rad + color: '#DE3A3AFF' + id: BotGreyscale + decals: + 317: -31,-15 + - node: + angle: 3.141592653589793 rad + color: '#EFB341FF' + id: BotGreyscale + decals: + 318: -29,-15 + - node: + color: '#FFFFFFFF' + id: BotLeft + decals: + 1981: -17,-32 + 1982: -17,-31 + 1983: -17,-30 + 1984: -17,-29 + - node: + color: '#FFFFFFFF' + id: BotRight + decals: + 1979: -26,-30 + 1980: -26,-33 + - node: + color: '#FFFFFFFF' + id: Box + decals: + 1985: -29,-31 + 1986: -29,-32 + 1987: -28,-33 + 1988: -29,-34 + 1989: -29,-35 + 1990: -34,-33 + 1991: -27,-37 + 1992: -26,-37 + 1993: -21,-41 + 1994: -15,-37 + 1995: -15,-32 + 1996: -12,-27 + 2020: -22,-28 + 2021: -20,-42 + 2028: -25,-27 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkCornerNe + decals: + 223: 1,-4 + 281: -7,5 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkCornerNw + decals: + 225: -1,-4 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkCornerSe + decals: + 226: 1,-6 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkCornerSw + decals: + 111: -26,40 + 224: -1,-6 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkInnerNe + decals: + 220: -1,-6 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkInnerNw + decals: + 228: 1,-6 + 1322: -16,46 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkInnerSe + decals: + 62: 5,29 + 177: 14,13 + 227: -1,-4 + 272: -25,8 + 516: 22,28 + 1323: -28,50 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkInnerSw + decals: + 219: 1,-4 + 273: -23,8 + 512: 18,28 + 1321: -16,50 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkLineE + decals: + 56: 5,25 + 57: 5,26 + 58: 5,27 + 59: 5,28 + 68: -11,34 + 69: -11,33 + 70: -11,32 + 165: -7,4 + 175: 14,12 + 176: 14,11 + 196: 8,11 + 197: 8,12 + 198: 8,13 + 199: 8,14 + 210: 25,17 + 211: 25,16 + 216: -1,-5 + 221: 1,-5 + 276: -25,7 + 336: -32,-11 + 337: -32,-10 + 338: -32,-9 + 350: -20,-17 + 351: -20,-16 + 352: -20,-15 + 392: 18,49 + 393: 18,50 + 394: 18,51 + 533: 21,28 + 534: 21,29 + 535: 21,30 + 1311: -28,49 + 1312: -28,48 + 1313: -28,47 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkLineN + decals: + 75: 6,26 + 76: 7,26 + 77: 8,26 + 78: 9,26 + 163: -10,5 + 164: -9,5 + 218: 0,-6 + 222: 0,-4 + 282: -8,5 + 357: -13,-4 + 358: -11,-4 + 359: -12,-2 + 366: 11,-10 + 367: 12,-10 + 368: 13,-10 + 369: 14,-10 + 542: -6,36 + 543: -7,36 + 544: -9,36 + 545: -8,36 + 546: -10,36 + 547: -11,36 + 553: -4,48 + 554: -3,48 + 555: -2,48 + 556: -1,48 + 567: -4,48 + 1324: -24,49 + 1325: -20,49 + 1493: -11,-4 + 1494: -13,-4 + 1495: 1,-1 + 1496: 2,-1 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkLineS + decals: + 60: 8,29 + 61: 9,29 + 79: 6,29 + 80: 7,29 + 112: -25,40 + 171: 18,13 + 172: 17,13 + 173: 16,13 + 174: 15,13 + 205: 20,15 + 206: 21,15 + 207: 22,15 + 214: 25,16 + 215: 0,-4 + 229: 0,-6 + 231: 10,-1 + 232: 11,-1 + 233: 13,-1 + 234: 12,-1 + 235: 14,-1 + 291: -40,13 + 292: -39,13 + 293: -38,13 + 294: -37,13 + 303: -23,-12 + 304: -22,-12 + 305: -21,-12 + 306: -20,-12 + 307: -19,-12 + 308: -18,-12 + 309: -16,-12 + 310: -15,-12 + 335: -28,-16 + 353: -13,-12 + 354: -12,-12 + 355: -11,-12 + 356: -17,-12 + 395: 22,50 + 396: 23,50 + 397: 24,50 + 410: 14,48 + 411: 12,48 + 412: 11,48 + 413: 10,48 + 431: 13,48 + 463: 17,23 + 464: 18,23 + 465: 19,23 + 466: 20,23 + 467: 21,23 + 548: -6,50 + 549: -7,50 + 550: -8,50 + 551: -10,50 + 552: -11,50 + 557: -1,42 + 558: -2,42 + 559: -4,42 + 566: -4,42 + 1326: -20,47 + 1327: -24,47 + 1328: -1,44 + 1329: -3,44 + 1330: -2,44 + 1331: -4,44 + 1333: -14,-21 + 1505: -3,42 + - node: + color: '#FFFFFFFF' + id: BrickTileDarkLineW + decals: + 30: -10,27 + 31: -10,28 + 32: -10,29 + 33: -10,30 + 52: 10,28 + 53: 10,26 + 54: 10,27 + 55: 10,25 + 65: -7,34 + 66: -7,33 + 67: -7,32 + 110: -26,42 + 166: 11,12 + 167: 11,11 + 178: 11,9 + 179: 11,8 + 180: 11,7 + 181: 11,6 + 182: 11,5 + 187: 11,14 + 188: 11,13 + 192: 10,14 + 193: 10,13 + 194: 10,11 + 195: 10,12 + 212: 25,16 + 213: 25,17 + 217: 1,-5 + 230: -1,-5 + 274: -23,7 + 295: -29,9 + 296: -29,10 + 297: -29,11 + 311: -19,-21 + 312: -19,-20 + 313: -19,-19 + 314: -29,-7 + 315: -29,-3 + 398: 19,53 + 399: 19,54 + 400: 19,55 + 503: 35,42 + 504: 35,43 + 505: 35,44 + 530: 19,28 + 531: 19,29 + 532: 19,30 + 1308: -16,49 + 1309: -16,48 + 1310: -16,47 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelCornerNe + decals: + 82: 9,28 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelCornerNw + decals: + 81: 6,28 + 284: 2,8 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelCornerSw + decals: + 283: 2,1 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelInnerNe + decals: + 150: -27,31 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelInnerNw + decals: + 265: -18,7 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelInnerSw + decals: + 264: -18,10 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelLineE + decals: + 50: 9,25 + 51: 9,27 + 83: 9,26 + 147: -27,32 + 148: -27,33 + 149: -27,35 + 347: -24,-10 + 348: -24,-11 + 349: -24,-9 + 362: 27,12 + 363: 27,11 + 497: 39,15 + 498: 39,16 + 499: 39,17 + 500: 39,6 + 501: 39,7 + 502: 39,8 + 1297: -17,48 + 1302: -28,49 + 1303: -28,48 + 1304: -28,47 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelLineN + decals: + 85: 7,28 + 86: 8,28 + 118: -12,21 + 119: -11,21 + 120: -2,21 + 121: -1,21 + 144: -26,31 + 145: -25,31 + 146: -24,31 + 151: -12,7 + 152: -11,7 + 153: -10,7 + 154: -9,7 + 155: -8,7 + 156: -6,7 + 157: -7,7 + 258: -21,7 + 259: -20,7 + 260: -19,7 + 298: -35,17 + 299: -34,17 + 300: -33,17 + 1336: 25,61 + 1337: 24,61 + 1338: 23,61 + 1339: 22,61 + - node: + color: '#D4D4D4FF' + id: BrickTileSteelLineS + decals: + 507: 18,28 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelLineS + decals: + 87: -13,25 + 88: -12,25 + 89: -11,25 + 90: -10,25 + 91: -9,25 + 261: -21,10 + 262: -20,10 + 263: -19,10 + - node: + color: '#FFFFFFFF' + id: BrickTileSteelLineW + decals: + 48: 6,25 + 49: 6,27 + 84: 6,26 + 98: -6,11 + 136: -21,25 + 137: -21,26 + 138: -21,27 + 139: -21,28 + 140: -21,29 + 141: -24,26 + 142: -24,27 + 143: -24,28 + 168: 18,13 + 169: 18,14 + 170: 18,15 + 255: -23,15 + 256: -18,9 + 257: -18,8 + 285: 2,7 + 286: 2,6 + 287: 2,4 + 288: 2,5 + 289: 2,3 + 290: 2,2 + 345: -27,-10 + 346: -27,-9 + 364: 29,12 + 365: 29,11 + 388: 4,42 + 389: 4,43 + 390: 4,44 + 391: 4,45 + 539: -34,47 + 540: -34,48 + 541: -34,49 + 1298: -27,48 + 1299: -16,49 + 1300: -16,48 + 1301: -16,47 + 1340: 26,66 + - node: + color: '#FFFFFFFF' + id: BrickTileWhiteCornerNe + decals: + 45: 9,32 + - node: + color: '#A4610696' + id: BrickTileWhiteCornerNw + decals: + 615: -22,29 + - node: + color: '#FFFFFFFF' + id: BrickTileWhiteCornerNw + decals: + 46: 5,32 + - node: + color: '#334E6DC8' + id: BrickTileWhiteCornerSe + decals: + 716: -6,4 + - node: + color: '#A4610696' + id: BrickTileWhiteCornerSw + decals: + 614: -22,25 + - node: + color: '#FFFFFFFF' + id: BrickTileWhiteCornerSw + decals: + 409: 11,48 + - node: + color: '#334E6DC8' + id: BrickTileWhiteInnerNe + decals: + 789: -15,-6 + - node: + color: '#52B4E996' + id: BrickTileWhiteInnerNe + decals: + 871: 14,49 + 872: 14,53 + - node: + color: '#9FED5896' + id: BrickTileWhiteInnerNe + decals: + 646: 3,25 + 897: -14,54 + - node: + color: '#A4610696' + id: BrickTileWhiteInnerNe + decals: + 648: -14,25 + 650: -14,33 + 654: -6,33 + - node: + color: '#DE3A3A96' + id: BrickTileWhiteInnerNe + decals: + 774: -18,18 + 779: -18,20 + 894: -3,59 + - node: + color: '#EFB34196' + id: BrickTileWhiteInnerNe + decals: + 802: -15,-8 + 803: -17,-8 + 806: -15,-13 + 891: 17,44 + - node: + color: '#A4610696' + id: BrickTileWhiteInnerNw + decals: + 649: -16,25 + 653: -12,33 + 657: -4,33 + - node: + color: '#DE3A3A96' + id: BrickTileWhiteInnerNw + decals: + 755: -26,17 + 756: -26,14 + 769: -21,14 + 775: -19,18 + 776: -19,20 + 893: -1,59 + - node: + color: '#EFB34196' + id: BrickTileWhiteInnerNw + decals: + 800: -15,-8 + 801: -17,-8 + 892: 19,44 + - node: + color: '#52B4E996' + id: BrickTileWhiteInnerSe + decals: + 869: 14,55 + 870: 14,51 + - node: + color: '#9FED5896' + id: BrickTileWhiteInnerSe + decals: + 647: 3,30 + 898: -14,56 + - node: + color: '#A4610696' + id: BrickTileWhiteInnerSe + decals: + 651: -14,33 + 655: -6,33 + - node: + color: '#DE3A3A96' + id: BrickTileWhiteInnerSe + decals: + 773: -18,20 + 777: -18,18 + - node: + color: '#EFB34196' + id: BrickTileWhiteInnerSe + decals: + 798: -17,-9 + 799: -15,-9 + 805: -15,-11 + 809: -22,-13 + - node: + color: '#FFFFFFFF' + id: BrickTileWhiteInnerSe + decals: + 430: 13,55 + - node: + color: '#A4610696' + id: BrickTileWhiteInnerSw + decals: + 652: -12,33 + 656: -4,33 + - node: + color: '#DE3A3A96' + id: BrickTileWhiteInnerSw + decals: + 738: -16,22 + 757: -26,14 + 758: -26,17 + 759: -26,20 + 770: -21,16 + 772: -19,20 + 778: -19,18 + 841: -33,3 + - node: + color: '#EFB34196' + id: BrickTileWhiteInnerSw + decals: + 796: -15,-9 + 797: -17,-9 + 808: -20,-13 + - node: + color: '#FFFFFFFF' + id: BrickTileWhiteInnerSw + decals: + 421: 11,55 + - node: + color: '#334E6DC8' + id: BrickTileWhiteLineE + decals: + 717: -6,5 + 718: -6,6 + 719: -6,7 + 720: -1,8 + 721: -1,9 + 783: -15,0 + 784: -15,-1 + 785: -15,-3 + 786: -15,-2 + 787: -15,-4 + 788: -15,-5 + 824: -31,-9 + 825: -31,-10 + 826: -31,-11 + - node: + color: '#334E6DFF' + id: BrickTileWhiteLineE + decals: + 513: 22,28 + - node: + color: '#52B4E996' + id: BrickTileWhiteLineE + decals: + 867: 14,54 + 868: 14,50 + 877: 24,45 + 878: 24,46 + 879: 24,47 + - node: + color: '#52B4E9FF' + id: BrickTileWhiteLineE + decals: + 328: -30,-13 + 514: 22,29 + - node: + color: '#835432FF' + id: BrickTileWhiteLineE + decals: + 1305: -28,49 + 1306: -28,48 + 1307: -28,47 + - node: + color: '#9FED5896' + id: BrickTileWhiteLineE + decals: + 642: 3,29 + 643: 3,26 + 644: 3,27 + 645: 3,28 + 896: -14,55 + - node: + color: '#9FED58FF' + id: BrickTileWhiteLineE + decals: + 329: -30,-14 + - node: + color: '#A4610696' + id: BrickTileWhiteLineE + decals: + 581: -24,32 + 582: -24,35 + 589: -14,26 + 590: -14,27 + 591: -14,29 + 592: -14,28 + 593: -14,30 + 594: -14,31 + 595: -14,32 + 596: -14,35 + 597: -14,34 + 627: -24,33 + 628: -24,34 + 629: -24,31 + 636: -6,32 + 637: -6,34 + 639: -1,34 + 640: -1,33 + 641: -1,32 + - node: + color: '#D381C996' + id: BrickTileWhiteLineE + decals: + 658: 6,15 + 659: 6,16 + 660: 6,17 + 661: 6,18 + 662: 6,19 + 677: 18,15 + 678: 18,14 + 679: 18,13 + 682: 18,17 + 683: 18,18 + 684: 18,19 + 685: 18,16 + - node: + color: '#D381C9FF' + id: BrickTileWhiteLineE + decals: + 322: -30,-16 + - node: + color: '#DE3A3A96' + id: BrickTileWhiteLineE + decals: + 739: -21,18 + 740: -21,19 + 741: -21,20 + 742: -23,15 + 743: -23,10 + 744: -23,9 + 745: -23,8 + 760: -18,7 + 761: -18,8 + 762: -18,9 + 763: -18,10 + 771: -23,17 + - node: + color: '#DE3A3AFF' + id: BrickTileWhiteLineE + decals: + 515: 22,30 + - node: + color: '#EFB34196' + id: BrickTileWhiteLineE + decals: + 804: -15,-12 + 817: -25,-7 + 818: -25,-3 + 884: 22,42 + 885: 22,43 + - node: + color: '#EFB341FF' + id: BrickTileWhiteLineE + decals: + 330: -30,-15 + - node: + color: '#FFFFFFFF' + id: BrickTileWhiteLineE + decals: + 47: 9,31 + 415: 10,65 + 416: 10,64 + 417: 10,63 + 418: 10,62 + 422: 13,49 + 423: 13,50 + 424: 13,48 + 425: 13,51 + 426: 13,52 + 427: 13,53 + 428: 13,54 + - node: + color: '#334E6DC8' + id: BrickTileWhiteLineN + decals: + 698: -1,14 + 699: -2,14 + 700: -11,14 + 701: -12,14 + 705: -6,13 + 706: -5,13 + 707: -4,13 + 827: -28,-13 + - node: + color: '#52B4E996' + id: BrickTileWhiteLineN + decals: + 846: 5,45 + 847: 6,45 + 848: 7,45 + 849: 8,45 + 850: 4,45 + 858: 15,44 + 859: 10,44 + 862: 13,56 + 863: 14,56 + 864: 12,56 + 865: 11,56 + 866: 10,56 + - node: + color: '#A4610696' + id: BrickTileWhiteLineN + decals: + 598: -24,29 + 599: -25,29 + 600: -26,29 + 601: -27,29 + 602: -28,29 + 603: -29,29 + 604: -30,29 + 605: -31,29 + 619: -21,29 + 620: -20,29 + 621: -19,29 + 622: -18,29 + - node: + color: '#D381C996' + id: BrickTileWhiteLineN + decals: + 666: 10,14 + 667: 9,14 + 668: 8,14 + 669: 11,9 + 670: 12,9 + 671: 13,9 + 672: 14,9 + - node: + color: '#DE3A3A96' + id: BrickTileWhiteLineN + decals: + 836: -35,-3 + 837: -36,-3 + 838: -37,-3 + 895: -2,59 + - node: + color: '#EFB34196' + id: BrickTileWhiteLineN + decals: + 790: -18,-11 + 791: -17,-11 + 792: -16,-11 + 793: -15,-11 + 794: -16,-8 + 810: -19,-8 + 811: -20,-8 + 812: -21,-8 + 813: -22,-8 + 814: -23,-8 + 815: -28,-9 + 890: 18,44 + 1056: -29,-9 + - node: + color: '#FFFFFFFF' + id: BrickTileWhiteLineN + decals: + 41: 6,32 + 42: 8,32 + 43: 7,32 + - node: + color: '#334E6DC8' + id: BrickTileWhiteLineS + decals: + 686: -10,17 + 687: -9,17 + 688: -8,17 + 689: -7,17 + 690: -6,17 + 691: -5,17 + 692: -4,17 + 693: -3,17 + 694: -1,16 + 695: -12,16 + 696: -2,16 + 697: -11,16 + 708: -6,11 + 709: -5,11 + 710: -4,11 + 711: -10,4 + 712: -8,4 + 713: -9,4 + 714: -7,4 + 715: -11,4 + 828: -28,-18 + 829: -29,-18 + 830: -30,-18 + 831: -31,-18 + 832: -26,-16 + - node: + color: '#52B4E996' + id: BrickTileWhiteLineS + decals: + 842: 5,41 + 843: 6,41 + 844: 7,41 + 845: 8,41 + 851: 15,41 + 852: 14,41 + 853: 13,41 + 854: 12,41 + 855: 11,41 + 856: 10,41 + 857: 9,41 + 860: 14,46 + 861: 11,46 + 873: 16,53 + 874: 17,53 + 875: 18,53 + 876: 19,53 + 880: 36,42 + 881: 35,42 + 882: 34,42 + 883: 33,42 + - node: + color: '#9FED58FF' + id: BrickTileWhiteLineS + decals: + 508: 22,28 + - node: + color: '#A4610696' + id: BrickTileWhiteLineS + decals: + 606: -25,25 + 607: -26,25 + 608: -27,25 + 609: -28,25 + 610: -30,25 + 611: -29,25 + 612: -31,25 + 623: -18,25 + 624: -19,25 + 625: -20,25 + 626: -21,25 + - node: + color: '#D381C996' + id: BrickTileWhiteLineS + decals: + 663: 10,11 + 664: 9,11 + 665: 8,11 + 673: 14,5 + 674: 13,5 + 675: 12,5 + 676: 11,5 + - node: + color: '#D4D4D4FF' + id: BrickTileWhiteLineS + decals: + 506: 20,28 + - node: + color: '#DE3A3A96' + id: BrickTileWhiteLineS + decals: + 764: -28,9 + 765: -29,9 + 766: -30,9 + 767: -31,9 + 839: -34,3 + 840: -35,3 + - node: + color: '#EFB34196' + id: BrickTileWhiteLineS + decals: + 780: -15,-6 + 781: -16,-6 + 782: -17,-6 + 795: -16,-9 + 807: -21,-13 + 816: -28,-11 + 1055: -29,-11 + 1387: -18,-6 + - node: + color: '#FFFFFFFF' + id: BrickTileWhiteLineS + decals: + 408: 12,48 + 414: 10,55 + 429: 14,55 + - node: + color: '#334E6DC8' + id: BrickTileWhiteLineW + decals: + 702: -9,11 + 703: -9,12 + 704: -9,13 + 833: -34,-11 + 834: -34,-10 + 835: -34,-9 + - node: + color: '#334E6DFF' + id: BrickTileWhiteLineW + decals: + 323: -30,-16 + - node: + color: '#A4610696' + id: BrickTileWhiteLineW + decals: + 583: -19,35 + 584: -16,30 + 585: -16,29 + 586: -16,28 + 587: -16,27 + 588: -16,26 + 616: -22,28 + 617: -22,27 + 618: -22,26 + 630: -27,31 + 631: -27,32 + 632: -27,33 + 633: -27,35 + 634: -12,34 + 635: -12,32 + 638: -4,34 + - node: + color: '#A46106FF' + id: BrickTileWhiteLineW + decals: + 326: -30,-14 + 510: 18,29 + - node: + color: '#D381C996' + id: BrickTileWhiteLineW + decals: + 680: 24,14 + 681: 24,15 + - node: + color: '#D381C9FF' + id: BrickTileWhiteLineW + decals: + 511: 18,30 + - node: + color: '#D4D4D4FF' + id: BrickTileWhiteLineW + decals: + 327: -30,-13 + - node: + color: '#DE3A3A96' + id: BrickTileWhiteLineW + decals: + 722: -16,21 + 723: -16,20 + 724: -16,19 + 725: -16,18 + 726: -16,17 + 727: -16,16 + 728: -16,15 + 729: -16,14 + 730: -16,13 + 731: -16,12 + 732: -16,11 + 733: -16,10 + 734: -16,9 + 735: -16,8 + 736: -16,7 + 737: -16,6 + 746: -26,9 + 747: -26,10 + 748: -26,11 + 749: -26,12 + 750: -26,13 + 751: -26,15 + 752: -26,16 + 753: -26,18 + 754: -26,19 + 768: -21,15 + - node: + color: '#DE3A3AFF' + id: BrickTileWhiteLineW + decals: + 331: -30,-15 + - node: + color: '#EFB34196' + id: BrickTileWhiteLineW + decals: + 819: -32,-7 + 820: -32,-6 + 821: -32,-5 + 822: -32,-4 + 823: -32,-3 + 886: 17,41 + 887: 17,42 + 888: 17,43 + 889: 17,44 + - node: + color: '#EFB341FF' + id: BrickTileWhiteLineW + decals: + 509: 18,28 + - node: + color: '#FFFFFFFF' + id: BrickTileWhiteLineW + decals: + 44: 5,31 + 404: 11,52 + 405: 11,51 + 406: 11,50 + 407: 11,49 + 419: 11,53 + 420: 11,54 + - node: + color: '#FFFFFFFF' + id: Bushf3 + decals: + 1555: 0.11709809,64.98602 + 1556: 1.0014613,64.96498 + 1557: 12.035091,52.966652 + - node: + color: '#FFFFFFFF' + id: Bushh3 + decals: + 1547: -7.0494,15.9791565 + 1548: -5.933418,15.958117 + - node: + color: '#FFFFFFFF' + id: Bushi2 + decals: + 1549: -9.891994,18.96533 + 1550: -9.913052,20.017426 + 1551: -3.0908227,20.038467 + 1552: -3.0487103,19.175749 + 1553: -0.88728666,64.98602 + 1554: 1.9974208,64.9229 + - node: + color: '#FFFFFFFF' + id: Bushj3 + decals: + 1533: -22.886173,13.012378 + 1534: -32.94053,10.046228 + - node: + color: '#FFFFFFFF' + id: Bushk1 + decals: + 1537: -31.99912,0.0800693 + 1545: -8.647104,2.1095977 + 1546: -2.4871016,2.0885556 + - node: + color: '#FFFFFFFF' + id: Bushk2 + decals: + 1538: -22.932428,-19.975422 + - node: + color: '#FFFFFFFF' + id: Bushk3 + decals: + 1562: 15.112707,6.938092 + - node: + color: '#FFFFFFFF' + id: Bushl3 + decals: + 1544: -10.036817,2.02543 + 1558: 12.006357,51.07288 + - node: + color: '#FFFFFFFF' + id: Bushl4 + decals: + 1543: -7.131053,1.9202211 + - node: + color: '#FFFFFFFF' + id: Bushn1 + decals: + 1531: -22.8945,12.023409 + 1532: -22.957668,13.875094 + 1535: -33.02449,9.099344 + 1536: -32.98238,6.9320292 + 1539: -10.864893,2.0316825 + 1540: -6.085122,1.9895985 + 1541: -1.0036802,2.02543 + 1542: -3.867332,2.02543 + 1559: 11.985301,52.08289 + 1560: 15.112707,7.969144 + 1561: 15.04954,5.970165 + 1566: 13.106144,28.111897 + 1567: 13.106144,25.979279 + - node: + color: '#FFFFFFFF' + id: Caution + decals: + 1377: -9,37 + 1378: -8,37 + 1379: -8,49 + 1530: -9,49 + 2009: -22,-31 + 2010: -20,-31 + 2011: -18,-33 + 2012: -18,-34 + 2013: -18,-35 + 2014: -24,-33 + 2015: -24,-34 + 2016: -24,-35 + 2017: -22,-37 + 2018: -20,-37 + 2019: -21,-31 + - node: + color: '#FFFFFFFF' + id: Delivery + decals: + 95: -19,33 + 106: -5,15 + 131: -30,28 + 132: -30,27 + 133: -30,26 + 200: 6,20 + 342: -19,-3 + 373: -9,-5 + 374: -8,-5 + 375: -7,-5 + 376: -6,-5 + 377: -5,-5 + 471: 16,23 + 472: 16,24 + 517: 19,27 + 518: 21,27 + 1334: -13,-22 + 1335: -12,-22 + 1706: -23,-42 + 1707: -19,-42 + 1802: -22,-42 + 1997: -13,-25 + 1998: -12,-25 + 1999: -23,-33 + 2000: -23,-34 + 2001: -23,-35 + 2002: -22,-36 + 2003: -20,-36 + 2004: -19,-35 + 2005: -19,-34 + 2006: -19,-33 + 2007: -20,-32 + 2008: -22,-32 + - node: + color: '#DF5934FF' + id: Dirt + decals: + 1390: -29,54 + 1391: -29,65 + 1392: -29,60 + 1393: -29,57 + 1394: -29,48 + 1395: -15,65 + 1396: -15,60 + 1397: -15,56 + 1398: -15,48 + 1399: -15,43 + 1400: -15,38 + 1401: -15,32 + 1402: -15,27 + 1403: -15,23 + 1404: -15,18 + 1405: -15,14 + 1406: -15,9 + 1407: -15,3 + 1408: -16,0 + 1409: -16,-5 + 1410: -19,-4 + 1411: -15,28 + 1412: -15,33 + 1413: -15,41 + 1414: -15,53 + 1415: -2,52 + 1416: 2,58 + 1417: 2,55 + 1418: 2,52 + 1419: 2,50 + 1420: 2,48 + 1421: 2,44 + 1422: 2,41 + 1423: 2,40 + 1424: 2,31 + 1425: 2,29 + 1426: 2,24 + 1427: 2,19 + 1428: 2,14 + 1429: 5,12 + 1430: 3,12 + 1431: 5,8 + 1432: 5,5 + 1433: 7,2 + 1434: 8,2 + 1435: -2,14 + 1436: -2,19 + 1437: -1,20 + 1438: -11,19 + 1439: -11,18 + 1440: -12,20 + 1441: -2,18 + 1442: -15,5 + 1443: -21,8 + 1444: -20,9 + 1445: -24,8 + 1446: -25,9 + 1447: -25,13 + 1448: -25,16 + 1449: -25,19 + 1450: -22,19 + 1451: -19,19 + 1452: -25,14 + 1453: 13,13 + 1454: 13,11 + 1455: 12,8 + 1456: 13,8 + 1457: 13,7 + 1458: 18,24 + 1459: 17,23 + 1460: 20,30 + 1461: 20,64 + 1462: 19,63 + 1463: 21,59 + 1464: 23,60 + 1465: 24,59 + 1466: 20,29 + 1467: -8,17 + 1468: -5,17 + 1469: -36,-7 + 1470: -37,-9 + 1471: -37,-8 + 1472: -44,-8 + 1473: -45,-7 + 1474: -25,28 + 1475: -27,27 + 1476: -29,28 + 1477: -30,27 + 1478: -26,32 + 1479: -26,35 + 1480: -25,35 + 1481: -22,35 + 1482: -21,33 + 1483: -22,32 + 1484: -16,40 + - node: + color: '#89429BFF' + id: FullTileOverlayGreyscale + decals: + 1372: 30,5 + 1373: 31,6 + 1374: 29,6 + 1375: 29,4 + 1376: 31,4 + - node: + angle: -1.5707963267948966 rad + color: '#FFFFFFFF' + id: LoadingArea + decals: + 134: -31,28 + 135: -31,26 + 201: 8,20 + - node: + color: '#FFFFFFFF' + id: LoadingArea + decals: + 107: -9,15 + 277: -24,7 + 538: 20,30 + - node: + angle: 1.5707963267948966 rad + color: '#FFFFFFFF' + id: LoadingArea + decals: + 96: -21,31 + 343: -21,-3 + - node: + angle: 3.141592653589793 rad + color: '#FFFFFFFF' + id: LoadingArea + decals: + 108: -4,15 + 1644: -49,57 + 1645: -47,57 + - node: + color: '#FFFFFFFF' + id: MiniTileDarkLineE + decals: + 489: 37,13 + 490: 37,12 + 491: 37,10 + 492: 37,11 + - node: + color: '#FFFFFFFF' + id: MiniTileDarkLineW + decals: + 485: 45,12 + 486: 45,11 + 487: 39,11 + 488: 39,12 + - node: + color: '#FFFFFFFF' + id: MiniTileSteelCornerNe + decals: + 474: 47,13 + 1575: -28,66 + - node: + color: '#FFFFFFFF' + id: MiniTileSteelCornerNw + decals: + 473: 43,13 + 1573: -30,66 + 1622: -50,56 + - node: + color: '#FFFFFFFF' + id: MiniTileSteelCornerSe + decals: + 475: 47,10 + - node: + color: '#FFFFFFFF' + id: MiniTileSteelCornerSw + decals: + 476: 43,10 + 1623: -50,54 + - node: + color: '#FFFFFFFF' + id: MiniTileSteelInnerNw + decals: + 1602: -30,56 + - node: + color: '#FFFFFFFF' + id: MiniTileSteelInnerSw + decals: + 1601: -30,54 + - node: + color: '#FFFFFFFF' + id: MiniTileSteelLineE + decals: + 483: 47,12 + 484: 47,11 + 1576: -28,65 + 1577: -28,64 + 1578: -28,63 + 1579: -28,61 + 1580: -28,60 + 1581: -28,59 + 1582: -28,58 + 1583: -28,57 + 1584: -28,56 + 1585: -28,54 + 1586: -28,53 + 1587: -28,52 + 1588: -28,51 + 1589: -28,50 + - node: + color: '#FFFFFFFF' + id: MiniTileSteelLineN + decals: + 480: 44,13 + 481: 46,13 + 482: 45,13 + 1574: -29,66 + 1603: -31,56 + 1604: -32,56 + 1605: -33,56 + 1606: -35,56 + 1607: -34,56 + 1608: -36,56 + 1609: -37,56 + 1610: -38,56 + 1611: -39,56 + 1612: -40,56 + 1613: -42,56 + 1614: -41,56 + 1615: -43,56 + 1616: -44,56 + 1617: -45,56 + 1618: -46,56 + 1619: -47,56 + 1620: -48,56 + 1621: -49,56 + - node: + color: '#FFFFFFFF' + id: MiniTileSteelLineS + decals: + 477: 44,10 + 478: 46,10 + 479: 45,10 + 1625: -49,54 + 1626: -48,54 + 1627: -47,54 + 1628: -46,54 + 1629: -45,54 + 1630: -44,54 + 1631: -43,54 + 1632: -42,54 + 1633: -37,54 + 1634: -41,54 + 1635: -34,54 + 1636: -40,54 + 1637: -39,54 + 1638: -38,54 + 1639: -36,54 + 1640: -35,54 + 1641: -33,54 + 1642: -32,54 + 1643: -31,54 + - node: + color: '#FFFFFFFF' + id: MiniTileSteelLineW + decals: + 1569: -30,63 + 1570: -30,62 + 1571: -30,64 + 1572: -30,65 + 1590: -30,48 + 1591: -30,49 + 1592: -30,50 + 1593: -30,51 + 1594: -30,52 + 1595: -30,53 + 1596: -30,57 + 1597: -30,58 + 1598: -30,59 + 1599: -30,60 + 1600: -30,61 + 1624: -50,55 + - node: + color: '#9D9D97FF' + id: MiniTileWhiteCornerNe + decals: + 965: -14,66 + 1001: -28,66 + 1100: 6,13 + 1180: 21,25 + - node: + color: '#9D9D97FF' + id: MiniTileWhiteCornerNw + decals: + 966: -30,66 + 1000: -16,66 + 1036: -17,3 + 1137: -12,9 + 1252: 5,29 + - node: + color: '#9D9D97FF' + id: MiniTileWhiteCornerSe + decals: + 1033: -14,1 + 1045: -11,-5 + - node: + color: '#9D9D97FF' + id: MiniTileWhiteCornerSw + decals: + 1044: -13,-5 + 1093: 1,11 + 1120: 4,1 + - node: + color: '#9D9D97FF' + id: MiniTileWhiteInnerNe + decals: + 934: -14,56 + 978: -28,49 + 1069: -1,16 + 1081: 3,20 + 1097: 3,13 + 1125: 6,3 + 1163: 2,8 + 1193: 3,30 + 1217: 3,45 + - node: + color: '#9D9D97FF' + id: MiniTileWhiteInnerNw + decals: + 979: -16,49 + 1035: -16,3 + 1042: -17,-3 + 1070: -12,16 + 1139: -12,7 + 1140: -2,9 + 1179: 18,15 + 1192: 1,30 + - node: + color: '#9D9D97FF' + id: MiniTileWhiteInnerSe + decals: + 935: -14,54 + 1034: -15,1 + 1082: 3,25 + 1149: -1,14 + 1164: 2,1 + 1218: 3,42 + - node: + color: '#9D9D97FF' + id: MiniTileWhiteInnerSw + decals: + 936: -16,47 + 1004: -16,31 + 1009: -16,25 + 1031: -16,5 + 1087: 6,15 + 1109: 4,11 + 1150: -2,14 + 1219: 4,42 + 1236: 1,55 + - node: + color: '#9D9D97FF' + id: MiniTileWhiteLineE + decals: + 899: -14,41 + 900: -14,40 + 901: -14,38 + 902: -14,39 + 903: -14,37 + 914: -14,43 + 915: -14,44 + 916: -14,46 + 917: -14,45 + 918: -14,47 + 919: -14,48 + 920: -14,49 + 921: -14,50 + 922: -14,51 + 923: -14,52 + 924: -14,53 + 925: -14,57 + 926: -14,58 + 927: -14,59 + 928: -14,60 + 929: -14,61 + 930: -14,65 + 931: -14,64 + 932: -14,63 + 933: -14,62 + 989: -28,61 + 990: -28,63 + 991: -28,64 + 992: -28,65 + 993: -28,59 + 994: -28,58 + 995: -28,57 + 996: -28,56 + 997: -28,54 + 998: -28,51 + 999: -28,50 + 1010: -14,22 + 1011: -14,20 + 1012: -14,21 + 1013: -14,19 + 1014: -14,18 + 1015: -14,17 + 1016: -14,16 + 1017: -14,15 + 1018: -14,14 + 1019: -14,13 + 1020: -14,12 + 1021: -14,11 + 1022: -14,10 + 1023: -14,9 + 1024: -14,8 + 1025: -14,7 + 1026: -14,6 + 1027: -14,5 + 1028: -14,4 + 1029: -14,3 + 1030: -14,2 + 1048: -11,-4 + 1049: -5,-7 + 1050: -5,-8 + 1051: -5,-9 + 1057: -1,17 + 1058: -1,18 + 1059: -1,19 + 1060: -1,20 + 1061: -1,21 + 1062: -1,22 + 1077: 3,24 + 1078: 3,23 + 1079: 3,22 + 1080: 3,21 + 1095: 3,15 + 1096: 3,14 + 1101: 6,12 + 1102: 6,11 + 1103: 6,10 + 1104: 6,9 + 1105: 6,8 + 1110: 6,7 + 1111: 6,6 + 1112: 6,5 + 1113: 6,4 + 1145: -1,13 + 1146: -1,12 + 1147: -1,11 + 1148: -1,10 + 1161: 2,0 + 1162: 2,9 + 1165: 14,9 + 1166: 14,8 + 1167: 14,7 + 1168: 14,6 + 1169: 14,5 + 1181: 21,24 + 1182: 21,23 + 1187: 3,31 + 1188: 3,32 + 1189: 3,33 + 1190: 3,34 + 1194: 3,35 + 1195: 3,37 + 1196: 3,38 + 1197: 3,39 + 1198: 3,40 + 1199: 3,41 + 1213: 3,46 + 1214: 3,47 + 1215: 3,48 + 1216: 3,49 + 1220: 3,50 + 1221: 3,51 + 1222: 3,52 + 1223: 3,54 + 1224: 3,53 + 1225: 3,55 + 1226: 3,56 + 1227: 3,57 + 1228: 3,58 + 1229: 3,59 + 1277: -24,29 + 1278: -24,28 + 1279: -24,27 + 1280: -24,26 + 1281: -18,29 + 1282: -18,28 + 1283: -18,27 + 1284: -18,26 + 1285: -18,25 + 1286: -21,31 + 1287: -21,32 + 1288: -21,33 + 1289: -21,34 + 1290: -21,35 + 1291: -32,49 + 1292: -32,48 + 1293: -32,47 + 1485: -28,60 + 1486: -28,53 + 1487: -28,52 + - node: + color: '#9D9D97FF' + id: MiniTileWhiteLineN + decals: + 963: -15,66 + 964: -29,66 + 967: -27,49 + 968: -26,49 + 969: -24,49 + 970: -25,49 + 971: -23,49 + 972: -22,49 + 973: -21,49 + 974: -20,49 + 975: -19,49 + 976: -18,49 + 977: -17,49 + 1043: -18,-3 + 1083: 4,20 + 1084: 5,20 + 1098: 4,13 + 1099: 5,13 + 1126: 7,3 + 1127: 8,3 + 1128: -11,9 + 1129: -10,9 + 1130: -9,9 + 1131: -8,9 + 1132: -7,9 + 1133: -6,9 + 1134: -5,9 + 1135: -4,9 + 1136: -3,9 + 1173: 17,15 + 1174: 16,15 + 1175: 15,15 + 1176: 14,15 + 1177: 13,15 + 1178: 12,15 + 1183: 20,25 + 1184: 19,25 + 1185: 18,25 + 1186: 17,25 + 1245: -2,53 + 1246: -3,53 + 1253: 6,29 + 1254: 7,29 + 1255: 9,29 + 1256: -3,17 + 1257: -4,17 + 1258: -5,17 + 1259: -6,17 + 1260: -7,17 + 1261: -8,17 + 1262: -9,17 + 1263: -10,17 + - node: + color: '#9D9D97FF' + id: MiniTileWhiteLineS + decals: + 937: -18,47 + 938: -17,47 + 939: -19,47 + 940: -20,47 + 941: -21,47 + 942: -22,47 + 943: -23,47 + 944: -24,47 + 945: -25,47 + 946: -26,47 + 947: -27,47 + 948: -28,47 + 949: -29,47 + 1002: -17,31 + 1003: -18,31 + 1046: -12,-5 + 1085: 5,15 + 1086: 4,15 + 1094: 3,11 + 1121: 5,1 + 1122: 6,1 + 1123: 7,1 + 1124: 8,1 + 1170: 14,11 + 1171: 13,11 + 1172: 12,11 + 1237: 0,55 + 1238: -1,55 + 1239: -2,55 + 1240: -2,55 + 1241: -3,55 + 1242: -2,51 + 1243: -3,51 + 1244: -1,51 + 1264: -3,22 + 1265: -4,22 + 1266: -5,22 + 1267: -6,22 + 1268: -7,22 + 1269: -8,22 + 1270: -9,22 + 1271: -10,22 + - node: + color: '#9D9D97FF' + id: MiniTileWhiteLineW + decals: + 904: -16,37 + 905: -16,38 + 906: -16,39 + 907: -16,40 + 908: -16,41 + 909: -16,42 + 910: -16,43 + 911: -16,44 + 912: -16,45 + 913: -16,46 + 950: -30,48 + 951: -30,49 + 952: -30,50 + 953: -30,51 + 954: -30,52 + 955: -30,53 + 956: -30,57 + 957: -30,58 + 958: -30,59 + 959: -30,60 + 960: -30,61 + 961: -30,62 + 962: -30,64 + 980: -16,51 + 981: -16,50 + 982: -16,52 + 983: -16,56 + 984: -16,57 + 985: -16,58 + 986: -16,63 + 987: -16,64 + 988: -16,65 + 1005: -16,24 + 1006: -16,23 + 1007: -16,23 + 1008: -16,22 + 1032: -16,4 + 1037: -17,2 + 1038: -17,0 + 1039: -17,1 + 1040: -17,-1 + 1041: -17,-2 + 1047: -13,-4 + 1052: -29,-11 + 1053: -29,-10 + 1054: -29,-9 + 1063: -12,17 + 1064: -12,18 + 1065: -12,19 + 1066: -12,20 + 1067: -12,21 + 1068: -12,22 + 1071: 1,22 + 1072: 1,21 + 1073: 1,20 + 1074: 1,19 + 1075: 1,18 + 1076: 1,17 + 1088: 1,16 + 1089: 1,15 + 1090: 1,14 + 1091: 1,13 + 1092: 1,12 + 1106: 4,10 + 1107: 4,9 + 1108: 4,8 + 1114: 4,7 + 1115: 4,6 + 1116: 4,5 + 1117: 4,4 + 1118: 4,3 + 1119: 4,2 + 1138: -12,8 + 1141: -2,10 + 1142: -2,11 + 1143: -2,12 + 1144: -2,13 + 1151: 1,9 + 1152: 1,8 + 1153: 1,7 + 1154: 1,6 + 1155: 1,5 + 1156: 1,4 + 1157: 1,3 + 1158: 1,2 + 1159: 1,1 + 1160: 1,0 + 1191: 1,31 + 1200: 1,35 + 1201: 1,36 + 1202: 1,37 + 1203: 1,38 + 1204: 1,39 + 1205: 1,40 + 1206: 1,41 + 1207: 1,42 + 1208: 1,44 + 1209: 1,43 + 1210: 1,45 + 1211: 1,46 + 1212: 1,47 + 1230: 1,49 + 1231: 1,51 + 1232: 1,50 + 1233: 1,52 + 1234: 1,53 + 1235: 1,54 + 1247: 5,25 + 1248: 5,26 + 1249: 5,27 + 1250: 5,29 + 1251: 5,28 + 1272: -31,29 + 1273: -31,28 + 1274: -31,27 + 1275: -31,26 + 1276: -31,25 + 1294: -34,47 + 1295: -34,48 + 1296: -34,49 + 1388: 1,48 + 1488: -16,53 + 1489: -16,54 + 1490: -16,60 + 1491: -16,59 + 1492: -16,61 + - node: + color: '#FFFFFFFF' + id: Rock04 + decals: + 1568: 13.124092,27.018707 + - node: + color: '#FFFFFFFF' + id: SpaceStationSign1 + decals: + 1314: -25,48 + - node: + color: '#FFFFFFFF' + id: SpaceStationSign2 + decals: + 1315: -24,48 + - node: + color: '#FFFFFFFF' + id: SpaceStationSign3 + decals: + 1316: -23,48 + - node: + color: '#FFFFFFFF' + id: SpaceStationSign4 + decals: + 1317: -22,48 + - node: + color: '#FFFFFFFF' + id: SpaceStationSign5 + decals: + 1318: -21,48 + - node: + color: '#FFFFFFFF' + id: SpaceStationSign6 + decals: + 1319: -20,48 + - node: + color: '#FFFFFFFF' + id: SpaceStationSign7 + decals: + 1320: -19,48 + - node: + color: '#FFFFFFFF' + id: StandClear + decals: + 1761: -21,-25 + 1941: -21,-29 + 1942: -21,-32 + 1943: -21,-37 + 1944: -21,-36 + - node: + color: '#9C2020FF' + id: WarnCornerNE + decals: + 1824: -20,-33 + 1844: -14,-27 + 1845: -13,-28 + 1918: -24,-37 + - node: + color: '#FFFFFFFF' + id: WarnCornerNE + decals: + 1764: -12,-23 + 1795: -8,-31 + - node: + color: '#9C2020FF' + id: WarnCornerNW + decals: + 1823: -22,-33 + 1890: -30,-27 + 1908: -18,-37 + - node: + color: '#FFFFFFFF' + id: WarnCornerNW + decals: + 1342: 18,65 + 1763: -13,-23 + - node: + cleanable: True + color: '#FFFFFFFF' + id: WarnCornerNW + decals: + 1745: -31,-26 + - node: + color: '#9C2020FF' + id: WarnCornerSE + decals: + 1826: -20,-35 + 1859: -13,-41 + - node: + color: '#FFFFFFFF' + id: WarnCornerSE + decals: + 1650: -47,-7 + 1766: -12,-25 + 1797: -8,-33 + - node: + cleanable: True + color: '#FFFFFFFF' + id: WarnCornerSE + decals: + 1717: -12,-42 + - node: + color: '#9C2020FF' + id: WarnCornerSW + decals: + 1825: -22,-35 + 1876: -30,-41 + - node: + color: '#FFFFFFFF' + id: WarnCornerSW + decals: + 1341: 18,62 + 1767: -13,-25 + - node: + cleanable: True + color: '#FFFFFFFF' + id: WarnCornerSW + decals: + 1736: -31,-42 + - node: + color: '#9C2020FF' + id: WarnCornerSmallNE + decals: + 1846: -14,-28 + 1911: -20,-38 + 1915: -24,-38 + 1916: -25,-37 + 1924: -25,-33 + - node: + color: '#FFFFFFFF' + id: WarnCornerSmallNE + decals: + 574: -6,49 + 1696: -31,-42 + - node: + color: '#9C2020FF' + id: WarnCornerSmallNW + decals: + 1905: -17,-33 + 1906: -17,-37 + 1907: -18,-38 + 1914: -22,-38 + - node: + color: '#FFFFFFFF' + id: WarnCornerSmallNW + decals: + 575: -11,49 + 1676: -12,-42 + 1789: -7,-34 + - node: + color: '#9C2020FF' + id: WarnCornerSmallSE + decals: + 1899: -20,-30 + 1917: -25,-35 + 1923: -25,-30 + - node: + color: '#FFFFFFFF' + id: WarnCornerSmallSE + decals: + 572: -6,37 + 1661: -31,-26 + - node: + color: '#9C2020FF' + id: WarnCornerSmallSW + decals: + 1898: -22,-30 + 1902: -17,-30 + 1910: -17,-35 + - node: + color: '#FFFFFFFF' + id: WarnCornerSmallSW + decals: + 267: -22,8 + 573: -11,37 + 1785: -7,-30 + - node: + color: '#FFFFFFFF' + id: WarnEndN + decals: + 1781: -12,-28 + 1945: -31,-36 + - node: + color: '#FFFFFFFF' + id: WarnEndS + decals: + 1946: -31,-30 + - node: + color: '#9C2020FF' + id: WarnFull + decals: + 1827: -21,-34 + - node: + color: '#9C2020FF' + id: WarnLineE + decals: + 1807: -24,-27 + 1808: -24,-28 + 1809: -24,-29 + 1810: -24,-30 + 1811: -19,-30 + 1812: -19,-29 + 1813: -19,-28 + 1814: -19,-27 + 1820: -20,-34 + 1831: -18,-33 + 1832: -18,-34 + 1833: -18,-35 + 1847: -13,-29 + 1848: -13,-30 + 1849: -13,-31 + 1850: -13,-32 + 1851: -13,-33 + 1852: -13,-34 + 1853: -13,-35 + 1854: -13,-36 + 1855: -13,-37 + 1856: -13,-38 + 1857: -13,-39 + 1858: -13,-40 + 1919: -25,-36 + 1920: -25,-32 + 1921: -25,-31 + 1929: -20,-32 + 1930: -20,-31 + 1937: -20,-36 + 1938: -20,-37 + - node: + color: '#FFFFFFFF' + id: WarnLineE + decals: + 1651: -47,-6 + 1655: 42,8 + 1656: 42,7 + 1657: 42,6 + 1658: 40,8 + 1659: 40,7 + 1660: 40,6 + 1697: -31,-41 + 1698: -31,-40 + 1699: -31,-39 + 1700: -31,-38 + 1701: -31,-37 + 1702: -31,-29 + 1703: -31,-28 + 1704: -31,-27 + 1765: -12,-24 + 1776: -12,-30 + 1777: -12,-31 + 1778: -12,-32 + 1779: -12,-33 + 1780: -12,-34 + 1796: -8,-32 + - node: + cleanable: True + color: '#FFFFFFFF' + id: WarnLineE + decals: + 1709: -12,-29 + 1710: -12,-35 + 1711: -12,-37 + 1712: -12,-36 + 1713: -12,-38 + 1714: -12,-39 + 1715: -12,-40 + 1716: -12,-41 + - node: + color: '#9C2020FF' + id: WarnLineN + decals: + 1821: -21,-35 + 1834: -20,-37 + 1835: -21,-37 + 1836: -22,-37 + 1860: -14,-41 + 1861: -15,-41 + 1862: -16,-41 + 1863: -17,-41 + 1864: -18,-41 + 1865: -19,-41 + 1866: -20,-41 + 1867: -21,-41 + 1868: -22,-41 + 1869: -23,-41 + 1870: -24,-41 + 1871: -25,-41 + 1872: -26,-41 + 1873: -27,-41 + 1874: -28,-41 + 1875: -29,-41 + 1897: -23,-30 + 1900: -19,-30 + 1901: -18,-30 + 1922: -24,-30 + 1933: -23,-35 + 1934: -24,-35 + 1935: -18,-35 + 1936: -19,-35 + - node: + color: '#FFFFFFFF' + id: WarnLineN + decals: + 266: -23,8 + 271: -25,8 + 519: 21,28 + 520: 19,28 + 536: 21,28 + 537: 19,28 + 570: -5,37 + 571: -12,37 + 1343: 19,62 + 1344: 20,62 + 1345: 21,62 + 1646: -51,-7 + 1647: -50,-7 + 1648: -49,-7 + 1649: -48,-7 + 1662: -30,-26 + 1663: -29,-26 + 1664: -28,-26 + 1665: -27,-26 + 1666: -26,-26 + 1667: -25,-26 + 1752: -23,-25 + 1753: -22,-25 + 1754: -20,-25 + 1755: -19,-25 + 1756: -18,-25 + 1757: -17,-25 + 1758: -16,-25 + 1759: -15,-25 + 1760: -21,-25 + 1782: -10,-30 + 1783: -9,-30 + 1784: -8,-30 + 1798: -9,-33 + 1799: -10,-33 + 1800: -11,-33 + 1947: -31,-31 + 1948: -32,-31 + 1949: -33,-31 + 1950: -34,-31 + 1951: -35,-31 + 1952: -31,-35 + 1953: -32,-35 + 1954: -33,-35 + 1955: -35,-35 + 1956: -34,-35 + - node: + cleanable: True + color: '#FFFFFFFF' + id: WarnLineN + decals: + 1718: -13,-42 + 1719: -14,-42 + 1720: -15,-42 + 1721: -16,-42 + 1722: -17,-42 + 1723: -18,-42 + 1724: -19,-42 + 1725: -20,-42 + 1726: -21,-42 + 1727: -22,-42 + 1728: -23,-42 + 1729: -24,-42 + 1730: -25,-42 + 1731: -26,-42 + 1732: -27,-42 + 1733: -28,-42 + 1734: -29,-42 + 1735: -30,-42 + - node: + color: '#9C2020FF' + id: WarnLineS + decals: + 1803: -23,-30 + 1804: -23,-29 + 1805: -23,-28 + 1806: -23,-27 + 1815: -18,-27 + 1816: -18,-28 + 1817: -18,-29 + 1818: -18,-30 + 1819: -22,-34 + 1828: -24,-35 + 1829: -24,-34 + 1830: -24,-33 + 1877: -30,-40 + 1878: -30,-39 + 1879: -30,-38 + 1880: -30,-37 + 1881: -30,-36 + 1882: -30,-35 + 1883: -30,-34 + 1884: -30,-33 + 1885: -30,-32 + 1886: -30,-31 + 1887: -30,-30 + 1888: -30,-29 + 1889: -30,-28 + 1903: -17,-31 + 1904: -17,-32 + 1909: -17,-36 + 1931: -22,-32 + 1932: -22,-31 + 1939: -22,-37 + 1940: -22,-36 + - node: + color: '#FFFFFFFF' + id: WarnLineS + decals: + 560: -4,43 + 561: -4,42 + 562: -4,45 + 563: -4,46 + 564: -4,47 + 565: -4,48 + 1332: -4,44 + 1349: 18,63 + 1350: 18,64 + 1652: 41,8 + 1653: 41,7 + 1654: 41,6 + 1668: -12,-29 + 1669: -12,-35 + 1670: -12,-36 + 1671: -12,-37 + 1672: -12,-38 + 1673: -12,-39 + 1674: -12,-40 + 1675: -12,-41 + 1762: -13,-24 + 1768: -10,-25 + 1769: -10,-26 + 1770: -10,-27 + 1771: -12,-30 + 1772: -12,-31 + 1773: -12,-32 + 1774: -12,-34 + 1775: -12,-33 + 1786: -7,-31 + 1787: -7,-32 + 1788: -7,-33 + - node: + cleanable: True + color: '#FFFFFFFF' + id: WarnLineS + decals: + 1737: -31,-41 + 1738: -31,-40 + 1739: -31,-39 + 1740: -31,-38 + 1741: -31,-37 + 1742: -31,-29 + 1743: -31,-27 + 1744: -31,-28 + - node: + color: '#9C2020FF' + id: WarnLineW + decals: + 1822: -21,-33 + 1837: -22,-31 + 1838: -21,-31 + 1839: -20,-31 + 1840: -18,-27 + 1841: -17,-27 + 1842: -16,-27 + 1843: -15,-27 + 1891: -29,-27 + 1892: -28,-27 + 1893: -27,-27 + 1894: -26,-27 + 1895: -24,-27 + 1896: -25,-27 + 1912: -19,-38 + 1913: -23,-38 + 1925: -24,-33 + 1926: -23,-33 + 1927: -19,-33 + 1928: -18,-33 + - node: + color: '#FFFFFFFF' + id: WarnLineW + decals: + 321: -29,-17 + 333: -31,-17 + 334: -30,-17 + 568: -5,49 + 569: -12,49 + 1346: 21,65 + 1347: 20,65 + 1348: 19,65 + 1677: -13,-42 + 1678: -14,-42 + 1679: -15,-42 + 1680: -16,-42 + 1681: -17,-42 + 1682: -19,-42 + 1683: -18,-42 + 1684: -20,-42 + 1685: -21,-42 + 1686: -21,-42 + 1687: -22,-42 + 1688: -23,-42 + 1689: -24,-42 + 1690: -25,-42 + 1691: -26,-42 + 1692: -27,-42 + 1693: -28,-42 + 1694: -29,-42 + 1695: -30,-42 + 1790: -8,-34 + 1791: -9,-34 + 1792: -10,-34 + 1793: -10,-31 + 1794: -9,-31 + 1801: -11,-31 + 1957: -35,-35 + 1958: -34,-35 + 1959: -33,-35 + 1960: -32,-35 + 1961: -31,-35 + 1962: -31,-31 + 1963: -32,-31 + 1964: -34,-31 + 1965: -33,-31 + 1966: -35,-31 + - node: + cleanable: True + color: '#FFFFFFFF' + id: WarnLineW + decals: + 1708: -14,-23 + 1746: -30,-26 + 1747: -29,-26 + 1748: -28,-26 + 1749: -27,-26 + 1750: -26,-26 + 1751: -25,-26 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinCornerSe + decals: + 21: 0,24 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinCornerSw + decals: + 35: -8,24 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinInnerNe + decals: + 459: -44,-10 + 1362: 22,61 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinInnerNw + decals: + 8: -3,27 + 249: 15,12 + 460: -37,-10 + 1368: 19,-9 + 1370: 19,-11 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinInnerSe + decals: + 248: 14,13 + 462: -44,-6 + 1363: 22,66 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinInnerSw + decals: + 461: -37,-6 + 1369: 17,-10 + 1371: 19,-6 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinLineE + decals: + 9: 0,30 + 10: 0,29 + 11: 0,28 + 12: 0,27 + 13: 0,26 + 14: 0,25 + 114: -22,42 + 115: -22,41 + 116: -22,40 + 117: -22,39 + 158: -4,6 + 159: -4,5 + 160: -4,4 + 242: 14,11 + 243: 14,12 + 250: -20,16 + 251: -20,15 + 252: -20,14 + 253: -20,13 + 254: -20,12 + 434: -10,54 + 435: -10,55 + 436: -10,56 + 437: -10,57 + 438: -10,58 + 456: -44,-7 + 457: -44,-8 + 458: -44,-9 + 1351: 22,62 + 1352: 22,63 + 1353: 22,64 + 1354: 22,65 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinLineN + decals: + 0: -8,27 + 1: -7,27 + 2: -6,27 + 3: -5,27 + 4: -4,27 + 25: -3,30 + 26: -2,30 + 27: -1,30 + 28: 0,30 + 189: 8,16 + 190: 9,16 + 191: 10,16 + 236: 15,12 + 237: 16,12 + 238: 17,12 + 239: 18,12 + 339: -23,-6 + 340: -22,-6 + 341: -21,-6 + 441: -43,-10 + 442: -42,-10 + 443: -41,-10 + 444: -40,-10 + 445: -39,-10 + 446: -38,-10 + 1359: 23,61 + 1360: 24,61 + 1361: 25,61 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinLineS + decals: + 15: -6,24 + 16: -4,24 + 17: -5,24 + 18: -3,24 + 19: -2,24 + 20: -1,24 + 34: -7,24 + 122: -31,34 + 123: -30,34 + 124: -29,34 + 244: 15,13 + 245: 16,13 + 246: 17,13 + 247: 18,13 + 447: -43,-6 + 448: -42,-6 + 449: -40,-6 + 450: -41,-6 + 451: -39,-6 + 452: -38,-6 + 1355: 23,66 + 1356: 24,66 + 1357: 25,66 + 1358: 26,66 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinLineW + decals: + 5: -3,28 + 6: -3,29 + 7: -3,30 + 22: -8,25 + 23: -8,26 + 24: -8,27 + 36: 11,26 + 37: 11,27 + 38: 11,28 + 39: 11,29 + 40: 11,25 + 99: -11,14 + 100: -11,13 + 101: -11,12 + 102: -11,11 + 240: 15,12 + 241: 15,11 + 370: -10,-9 + 371: -10,-8 + 372: -10,-7 + 453: -37,-7 + 454: -37,-8 + 455: -37,-9 + 1364: 19,-10 + 1365: 19,-8 + 1366: 19,-7 + 1367: 17,-11 + - node: + color: '#FFFFFFFF' + id: grasssnow01 + decals: + 92: -9,21 + - node: + color: '#FFFFFFFF' + id: grasssnow04 + decals: + 161: -13,2 + - node: + color: '#835432FF' + id: prolizard + decals: + 1389: 22,65 + - type: RadiationGridResistance + - type: BecomesStation + id: Europa + - type: Shuttle + - type: GravityShake + shakeTimes: 10 + - type: GasTileOverlay + - type: Gravity + gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + - type: GridAtmosphere + version: 2 + data: + tiles: + -4,-4: + 0: 47325 + -4,-5: + 0: 56524 + -5,-4: + 0: 61695 + -4,-3: + 0: 45759 + -5,-3: + 0: 48127 + -4,-2: + 0: 45995 + -5,-2: + 0: 65227 + -4,-1: + 0: 48063 + -5,-1: + 0: 47343 + -4,0: + 0: 30579 + -3,-4: + 0: 40401 + -3,-3: + 0: 63679 + -3,-2: + 0: 46335 + -3,-1: + 0: 13243 + -3,-5: + 0: 37137 + 1: 136 + -2,-4: + 0: 65520 + -2,-3: + 0: 65535 + -2,-2: + 0: 63487 + -2,-1: + 0: 255 + -3,0: + 0: 3592 + -2,-5: + 0: 61440 + 2: 34 + 3: 136 + -2,0: + 0: 1805 + -1,-4: + 0: 65520 + -1,-3: + 0: 1911 + -1,-5: + 0: 61440 + 3: 34 + 4: 136 + -1,-2: + 0: 43566 + -1,-1: + 0: 682 + -1,0: + 0: 3844 + 0,-4: + 0: 65520 + 0,-3: + 0: 4080 + 0,-2: + 0: 65295 + 0,-1: + 0: 24831 + -5,0: + 0: 43691 + -4,1: + 0: 30583 + -5,1: + 0: 28898 + -4,2: + 0: 30583 + -4,3: + 0: 30583 + -5,3: + 0: 65399 + -4,4: + 0: 30583 + -3,1: + 0: 65534 + -3,2: + 0: 45311 + -3,3: + 0: 41919 + -3,4: + 0: 29691 + -2,1: + 0: 30711 + -2,2: + 0: 61695 + -2,3: + 0: 63743 + -2,4: + 0: 65526 + -1,1: + 0: 4095 + -1,2: + 0: 56575 + -1,3: + 0: 23773 + -1,4: + 0: 60669 + 0,2: + 0: 57463 + 0,3: + 0: 65262 + -5,4: + 0: 28423 + -4,5: + 0: 63351 + -5,5: + 0: 63247 + -4,6: + 0: 30719 + -4,7: + 0: 30583 + -4,8: + 0: 30711 + -5,7: + 0: 57463 + -3,5: + 0: 65335 + -3,6: + 0: 28927 + -3,7: + 0: 6135 + -3,8: + 0: 4095 + -2,5: + 0: 65535 + -2,6: + 0: 65535 + -2,7: + 0: 4095 + -2,8: + 0: 2047 + -1,5: + 0: 65486 + -1,6: + 0: 57343 + -1,7: + 0: 4095 + -1,8: + 0: 12287 + 0,5: + 0: 65262 + 0,6: + 0: 65535 + 0,7: + 0: 61439 + 0,-5: + 0: 61440 + 3: 170 + 0,0: + 0: 28262 + 1,-4: + 0: 4504 + 1,-3: + 0: 33040 + 1,-2: + 0: 43563 + 1,-1: + 0: 35562 + 2,-4: + 0: 17647 + 2,-3: + 0: 47249 + 2,-2: + 0: 32523 + 2,-1: + 0: 56785 + 1,0: + 0: 65528 + 2,-5: + 0: 20327 + 2,0: + 0: 57308 + 3,-4: + 0: 25839 + 3,-3: + 0: 32624 + 3,-2: + 0: 65319 + 3,-1: + 0: 30578 + 3,0: + 0: 30583 + 4,-4: + 0: 21743 + 4,-3: + 0: 65524 + 4,-2: + 0: 48047 + 4,-1: + 0: 48059 + 0,1: + 0: 26214 + 0,4: + 0: 61166 + 1,1: + 0: 30583 + 1,2: + 0: 30583 + 1,3: + 0: 29303 + 1,4: + 0: 65407 + 2,1: + 0: 65520 + 2,2: + 0: 61695 + 2,3: + 0: 12287 + 2,4: + 0: 30583 + 3,1: + 0: 65392 + 3,2: + 0: 62335 + 3,3: + 0: 65535 + 4,0: + 0: 30523 + 4,2: + 0: 28910 + 4,3: + 0: 32639 + 0,8: + 0: 61166 + 1,5: + 0: 65031 + 1,6: + 0: 65264 + 1,7: + 0: 65263 + 1,8: + 0: 61438 + 2,5: + 0: 63239 + 2,6: + 0: 65521 + 2,7: + 0: 14847 + 5: 32768 + 2,8: + 0: 45879 + 5: 136 + 3,4: + 0: 65520 + 3,5: + 0: 61680 + 3,6: + 0: 48056 + 3,7: + 0: 34875 + 5: 12288 + 3,8: + 5: 51 + 0: 63628 + 4,4: + 0: 26484 + 4,6: + 0: 59646 + 4,-5: + 0: 58988 + 5,-4: + 0: 5567 + 5,-3: + 0: 48049 + 5,-2: + 0: 53307 + 5,-1: + 0: 62943 + 5,-5: + 0: 64591 + 5,0: + 0: 65295 + 6,-4: + 0: 53111 + 6,-3: + 0: 65231 + 6,-2: + 0: 58095 + 6,-1: + 0: 61604 + 6,-5: + 0: 24132 + 6,0: + 0: 48015 + 7,-4: + 0: 65535 + 7,-3: + 0: 64584 + 7,-2: + 0: 64651 + 7,-1: + 0: 28414 + 7,-5: + 0: 44527 + 7,0: + 0: 2766 + 8,-4: + 0: 65139 + 8,-3: + 0: 65471 + 8,-2: + 0: 63479 + 8,-1: + 0: 65519 + 4,1: + 0: 26342 + 5,1: + 0: 4095 + 5,2: + 0: 61695 + 5,3: + 0: 32559 + 5,4: + 0: 61559 + 6,1: + 0: 3007 + 6,2: + 0: 45311 + 6,3: + 0: 30479 + 6,4: + 0: 61559 + 7,2: + 0: 45883 + 7,3: + 0: 13087 + 7,1: + 0: 3822 + 7,4: + 0: 13107 + 8,0: + 0: 61179 + 8,2: + 0: 63627 + 8,3: + 0: 34959 + 4,5: + 0: 61152 + 4,7: + 0: 3822 + 4,8: + 0: 61422 + 5,5: + 0: 47928 + 5,6: + 0: 61619 + 5,7: + 0: 8191 + 5,8: + 0: 49147 + 6,5: + 0: 47887 + 6,6: + 0: 61169 + 6,7: + 0: 61070 + 6,8: + 0: 61422 + 7,5: + 0: 30483 + 7,6: + 0: 63345 + 7,7: + 0: 20935 + 7,8: + 0: 8145 + 8,4: + 0: 35200 + 8,6: + 0: 64716 + 8,7: + 0: 64764 + -8,-4: + 0: 61166 + -8,-3: + 0: 49072 + -9,-3: + 0: 56769 + -8,-2: + 0: 65528 + -8,-1: + 0: 49407 + -8,0: + 0: 61645 + -8,-5: + 0: 60928 + -7,-4: + 0: 4369 + -7,-3: + 0: 65521 + -7,-2: + 0: 65521 + -7,-1: + 0: 61951 + -7,-5: + 0: 4352 + -7,0: + 0: 49167 + -6,-3: + 0: 65534 + -6,-1: + 0: 61678 + -6,-4: + 0: 59596 + -6,-2: + 0: 61006 + -6,0: + 0: 28687 + -6,-5: + 0: 49290 + -5,-5: + 0: 61951 + -8,1: + 0: 60943 + -9,0: + 0: 62566 + -9,1: + 0: 45614 + -8,2: + 0: 61156 + -9,2: + 0: 10915 + -8,3: + 0: 10928 + -9,3: + 0: 57587 + -8,4: + 0: 41898 + -7,1: + 0: 53708 + -7,2: + 0: 57308 + -7,3: + 0: 57308 + -7,4: + 0: 56573 + -6,1: + 0: 45175 + -6,2: + 0: 7167 + -6,3: + 0: 64443 + -6,4: + 0: 65337 + -5,2: + 0: 1911 + -9,4: + 0: 3822 + -8,5: + 0: 65082 + -9,5: + 0: 32904 + -8,6: + 0: 61408 + -9,6: + 0: 3200 + -8,7: + 0: 57583 + -9,7: + 0: 34828 + -8,8: + 0: 3822 + -7,5: + 0: 65423 + -7,6: + 0: 65520 + -7,7: + 0: 60671 + -7,8: + 0: 61167 + -6,5: + 0: 65295 + -6,6: + 0: 64976 + -6,7: + 0: 55517 + -6,8: + 0: 63967 + -5,6: + 0: 30576 + -5,8: + 0: 65279 + 8,-5: + 0: 4364 + 9,-2: + 0: 13572 + 9,-1: + 0: 16568 + 9,-4: + 0: 512 + 9,-3: + 0: 2 + 9,0: + 0: 14323 + 10,0: + 0: 20467 + 10,-1: + 0: 32768 + 11,-1: + 6: 57344 + 12,-1: + 6: 61440 + 8,1: + 0: 9838 + 9,1: + 0: 35337 + 9,2: + 0: 47887 + 9,3: + 0: 61627 + 10,1: + 0: 30464 + 10,2: + 0: 65287 + 10,3: + 0: 28927 + 9,4: + 0: 136 + 10,4: + 0: 119 + 11,0: + 0: 18160 + 11,1: + 0: 61564 + 11,2: + 0: 49008 + 11,3: + 0: 2043 + 11,4: + 0: 26383 + 12,0: + 0: 9200 + 12,1: + 0: 4131 + 12,2: + 0: 21831 + 12,3: + 0: 29781 + 8,5: + 0: 34952 + 8,8: + 0: 53212 + 9,5: + 0: 4239 + 9,6: + 0: 6583 + 9,7: + 0: 3345 + 9,8: + 0: 65530 + 10,5: + 0: 223 + 10,7: + 6: 24576 + 0: 12 + 10,6: + 0: 34820 + 10,8: + 6: 204 + 0: 65328 + 11,5: + 0: 399 + 11,6: + 0: 5088 + 12,4: + 0: 8705 + 12,5: + 0: 61567 + 12,6: + 0: 31 + 0,9: + 0: 61166 + -1,9: + 0: 62190 + 0,10: + 0: 61166 + -1,10: + 0: 65535 + 0,11: + 0: 61166 + -1,11: + 0: 65535 + 0,12: + 0: 61166 + 1,9: + 0: 45792 + 1,10: + 0: 65520 + 1,11: + 0: 41211 + 1,12: + 0: 43563 + 2,9: + 0: 62200 + 2,10: + 0: 57328 + 2,11: + 0: 64669 + 2,12: + 0: 57293 + 3,9: + 0: 64224 + 3,10: + 0: 65520 + 3,11: + 0: 65359 + 3,12: + 0: 32631 + 4,9: + 0: 61680 + 4,10: + 0: 61408 + 4,11: + 0: 65518 + 5,9: + 0: 61688 + 5,10: + 0: 30520 + 5,11: + 0: 65411 + 6,10: + 0: 65295 + 6,11: + 0: 57308 + 5,12: + 0: 56792 + 6,9: + 0: 20192 + 7,9: + 0: 9496 + 7,10: + 0: 64399 + 7,11: + 0: 48059 + 8,9: + 0: 61422 + 8,10: + 0: 65038 + 8,11: + 0: 52750 + 8,12: + 0: 52300 + 9,9: + 0: 65535 + 9,10: + 0: 21967 + 9,11: + 0: 63301 + 9,12: + 0: 14 + 10,9: + 0: 65535 + 10,10: + 0: 65535 + 10,11: + 0: 61167 + 10,12: + 0: 4 + 11,8: + 6: 33023 + 0: 32512 + 11,9: + 0: 30583 + 6: 34952 + 11,10: + 0: 4919 + 6: 200 + 11,11: + 0: 17 + 12,8: + 6: 8995 + 12,9: + 6: 3 + 13,0: + 0: 8752 + 6: 34890 + 13,1: + 0: 12838 + 6: 2184 + 13,2: + 0: 64427 + 13,3: + 0: 8959 + 13,4: + 0: 26211 + 14,3: + 0: 34816 + 14,4: + 0: 8 + 13,5: + 0: 3 + 4,12: + 0: 65520 + 4,13: + 0: 65520 + 3,13: + 0: 32375 + 4,14: + 0: 49648 + 3,14: + 0: 47895 + 4,15: + 0: 61166 + 3,15: + 0: 64441 + 4,16: + 0: 3822 + 5,13: + 0: 57116 + 5,14: + 0: 61680 + 5,15: + 0: 65535 + 5,16: + 0: 4095 + 6,12: + 0: 56784 + 6,13: + 0: 11791 + 6,14: + 0: 64186 + 6,15: + 0: 29631 + 6,16: + 0: 1911 + 7,12: + 0: 21968 + 7,13: + 0: 1861 + 7,14: + 0: 13194 + 7,15: + 0: 11315 + 7,16: + 0: 25150 + 8,13: + 0: 10231 + 8,14: + 0: 15671 + 8,15: + 0: 5395 + 8,16: + 0: 1 + 9,14: + 0: 512 + 9,13: + 0: 8 + -1,12: + 0: 57583 + 0,13: + 0: 65263 + -1,13: + 0: 57583 + 0,14: + 0: 65535 + -1,14: + 0: 61134 + 0,15: + 0: 65520 + -1,15: + 0: 56788 + 1,13: + 0: 11170 + 1,14: + 0: 58282 + 1,15: + 0: 10914 + 1,16: + 0: 62394 + 2,13: + 0: 52732 + 2,14: + 0: 47135 + 2,15: + 0: 53232 + 2,16: + 0: 37119 + 3,16: + 0: 39103 + -4,9: + 0: 30583 + -5,9: + 0: 28912 + -4,10: + 0: 30583 + -5,10: + 0: 2047 + -4,11: + 0: 30583 + -5,11: + 0: 61567 + -4,12: + 0: 30583 + -3,9: + 0: 65535 + -3,10: + 0: 65535 + -3,11: + 0: 65520 + -3,12: + 0: 4095 + -2,9: + 0: 63487 + -2,10: + 0: 30719 + -2,11: + 0: 65520 + -2,12: + 0: 4095 + -9,8: + 0: 34952 + -8,9: + 0: 8191 + -9,9: + 0: 36751 + -8,10: + 0: 7677 + -9,10: + 0: 35835 + -8,11: + 0: 53503 + -9,11: + 0: 61576 + -8,12: + 0: 52447 + 6: 4096 + -7,9: + 0: 58101 + -7,11: + 0: 61631 + -7,10: + 0: 3822 + -7,12: + 0: 4607 + -6,9: + 0: 61680 + -6,11: + 0: 61951 + -6,10: + 0: 36590 + -6,12: + 0: 255 + -5,12: + 0: 255 + -9,12: + 0: 255 + 6: 61440 + -8,13: + 0: 65484 + -9,13: + 0: 65280 + -8,14: + 0: 52431 + -9,14: + 0: 127 + -8,15: + 0: 60620 + -8,16: + 0: 3278 + -7,13: + 0: 12561 + -7,14: + 0: 13105 + -7,15: + 0: 4883 + -7,16: + 0: 8499 + -4,13: + 0: 63359 + -5,13: + 0: 32768 + -5,14: + 0: 34944 + -4,14: + 0: 30583 + -5,15: + 0: 2056 + -4,15: + 0: 30583 + -5,16: + 0: 136 + -4,16: + 0: 34679 + -3,13: + 0: 65295 + -3,14: + 0: 4095 + -3,15: + 0: 3959 + -3,16: + 0: 61439 + -2,13: + 0: 56655 + -2,14: + 0: 52701 + -2,15: + 0: 53247 + -2,16: + 0: 56029 + -1,16: + 0: 62385 + -12,0: + 0: 65349 + -12,-1: + 0: 12425 + -13,0: + 0: 36044 + -12,1: + 0: 50894 + -12,2: + 0: 61134 + -12,3: + 0: 19694 + -12,4: + 6: 1329 + 0: 206 + -11,0: + 0: 22288 + -11,1: + 0: 30209 + -11,2: + 0: 29719 + -11,3: + 0: 375 + -11,4: + 0: 252 + 6: 512 + -10,0: + 0: 65520 + -10,1: + 0: 65295 + -10,2: + 0: 61695 + -10,3: + 0: 4095 + -10,-1: + 0: 14523 + -9,-1: + 0: 25139 + -10,4: + 0: 1136 + -12,10: + 6: 3 + 0: 65532 + -13,10: + 6: 31 + 0: 65504 + -12,11: + 0: 65535 + -13,11: + 0: 65535 + -12,12: + 0: 65535 + -12,9: + 0: 32768 + -11,9: + 0: 4608 + -11,10: + 0: 65535 + -11,11: + 0: 65535 + -11,12: + 0: 65535 + -10,10: + 0: 15355 + -10,11: + 0: 37171 + -10,9: + 0: 11980 + -10,12: + 0: 4505 + 6: 57344 + -8,18: + 6: 13 + -8,17: + 0: 3618 + 6: 8192 + -7,17: + 0: 802 + 6: 8192 + -7,18: + 6: 3 + -5,18: + 6: 8 + -5,17: + 0: 2184 + 6: 32768 + -4,17: + 0: 4056 + 6: 32768 + -4,18: + 6: 7 + -3,17: + 0: 3890 + 6: 32768 + -3,18: + 6: 7 + -2,17: + 0: 3936 + 6: 32768 + -2,18: + 6: 7 + -1,17: + 0: 3840 + 6: 32768 + -1,18: + 6: 7 + 0,16: + 0: 61552 + 0,17: + 0: 51040 + 0,18: + 6: 42273 + 0: 196 + 1,18: + 0: 16881 + 6: 4096 + 1,17: + 0: 33006 + 2,17: + 0: 61681 + 2,18: + 0: 3327 + 2,19: + 0: 16 + 3,17: + 0: 12536 + 3,18: + 0: 1011 + 3,19: + 0: 8192 + 4,18: + 0: 758 + 4,17: + 0: 17636 + 4,19: + 0: 2 + 5,17: + 0: 2296 + 6: 49152 + 6,17: + 0: 247 + 6: 30720 + 7,17: + 0: 50 + 6: 30856 + -13,12: + 0: 61439 + 6: 4096 + -12,13: + 6: 15 + 0: 65280 + -13,13: + 6: 31 + 0: 52224 + -12,14: + 0: 767 + -13,14: + 0: 2188 + 6: 784 + -11,13: + 6: 15 + 0: 65280 + -11,14: + 0: 63 + -10,13: + 6: 3 + 0: 65280 + -10,14: + 0: 207 + -14,-1: + 6: 21009 + 0: 1034 + -14,0: + 6: 10 + -13,2: + 0: 2 + -13,1: + 0: 1088 + -13,3: + 0: 4 + -13,-1: + 0: 32782 + -15,11: + 6: 19532 + -15,12: + 6: 12 + -14,11: + 6: 4113 + 0: 61422 + -14,10: + 6: 6080 + 0: 59392 + -14,12: + 6: 50961 + 0: 2286 + -12,-4: + 0: 13104 + -13,-4: + 0: 65520 + -12,-3: + 0: 65331 + -13,-3: + 0: 61167 + -12,-2: + 0: 8191 + -13,-2: + 0: 65518 + -12,-5: + 0: 12256 + -11,-4: + 0: 61168 + -11,-3: + 0: 65519 + -11,-2: + 0: 12287 + -11,-1: + 0: 443 + -11,-5: + 0: 7676 + -10,-4: + 0: 65528 + -10,-3: + 0: 65535 + -10,-2: + 0: 45055 + -9,-4: + 0: 54 + -9,-2: + 0: 13105 + -9,-5: + 0: 8950 + -8,-8: + 0: 61183 + -8,-9: + 0: 65534 + -9,-8: + 0: 4334 + -8,-7: + 0: 3822 + -9,-7: + 0: 65329 + -8,-6: + 0: 3296 + -7,-8: + 0: 65535 + -7,-7: + 0: 3967 + 7: 128 + -7,-6: + 0: 58224 + -7,-9: + 0: 65535 + -6,-8: + 0: 65484 + -6,-7: + 0: 57599 + -6,-9: + 0: 65532 + -6,-6: + 0: 33006 + -5,-8: + 0: 65433 + -5,-7: + 0: 61695 + -5,-6: + 0: 61695 + -5,-9: + 0: 65529 + -4,-8: + 0: 65535 + -4,-7: + 0: 47359 + -4,-6: + 0: 51391 + -4,-9: + 0: 56797 + 5: 8738 + -3,-8: + 0: 7645 + -3,-7: + 0: 56817 + -3,-6: + 0: 5009 + 1: 32768 + -3,-9: + 0: 56597 + -2,-8: + 0: 819 + -2,-7: + 0: 65520 + -2,-6: + 0: 240 + 2: 8192 + 3: 32768 + -2,-9: + 0: 13064 + -1,-8: + 0: 247 + -1,-7: + 0: 65520 + -1,-6: + 0: 240 + 3: 8192 + 4: 32768 + -1,-9: + 0: 12834 + 0,-8: + 0: 2288 + 0,-7: + 0: 65520 + 0,-6: + 0: 240 + 3: 40960 + 1,-8: + 0: 2813 + 1,-7: + 0: 50176 + 1,-6: + 0: 12 + 1,-5: + 0: 1220 + 1,-9: + 0: 16384 + 2,-8: + 0: 53105 + 2,-7: + 0: 52975 + 2,-6: + 0: 64716 + 3,-8: + 0: 5383 + 3,-7: + 0: 4369 + 3,-6: + 0: 257 + 4,-7: + 0: 52972 + 4,-6: + 0: 52360 + 5,-8: + 0: 2832 + 5,-7: + 0: 57088 + 5,-6: + 0: 14335 + 6,-7: + 0: 61696 + 6,-6: + 0: 4893 + 6,-8: + 0: 1536 + 7,-8: + 0: 4096 + 7,-7: + 0: 133 + 7,-6: + 0: 17152 + -15,-4: + 6: 546 + 0: 17472 + -15,-3: + 0: 50278 + -15,-5: + 0: 32768 + 6: 19008 + -15,-2: + 0: 8 + -14,-3: + 0: 29198 + -14,-2: + 0: 61107 + 6: 4096 + -14,-4: + 0: 61152 + -13,-5: + 6: 240 + 0: 2048 + -11,-8: + 0: 16386 + -11,-9: + 0: 8192 + -10,-8: + 0: 29558 + -11,-7: + 0: 8 + -10,-7: + 0: 47847 + -11,-6: + 0: 32768 + -10,-6: + 0: 4381 + -10,-5: + 0: 1105 + -10,-9: + 0: 30259 + -9,-6: + 0: 9847 + -9,-9: + 0: 61152 + -12,-10: + 0: 2056 + -11,-10: + 0: 952 + -11,-11: + 0: 57412 + -11,-12: + 0: 49152 + -10,-11: + 0: 20660 + -10,-10: + 0: 65535 + -10,-12: + 0: 17672 + -9,-11: + 0: 29489 + -9,-10: + 0: 499 + -9,-12: + 0: 18436 + -8,-12: + 0: 12289 + -8,-11: + 0: 60929 + -8,-10: + 0: 61166 + -7,-11: + 0: 65280 + -7,-10: + 0: 65535 + -7,-12: + 0: 32 + -6,-12: + 6: 60672 + 0: 4096 + -6,-11: + 0: 65280 + -6,-10: + 0: 57343 + -5,-12: + 6: 15616 + -5,-11: + 0: 65288 + -5,-10: + 0: 57343 + -4,-12: + 6: 3840 + -4,-11: + 0: 65280 + -4,-10: + 0: 65535 + -3,-12: + 6: 19200 + -3,-11: + 0: 4354 + 6: 8 + -3,-10: + 0: 55569 + -2,-10: + 0: 3311 + -2,-12: + 6: 4096 + -2,-11: + 6: 16 + 0: 61120 + -1,-11: + 0: 29456 + -1,-10: + 0: 30719 + 0,-10: + 0: 16 + -14,-5: + 6: 240 + 13,-1: + 6: 20480 + 8,-6: + 0: 1024 + 9,-5: + 0: 16 + -14,13: + 6: 16512 + -14,14: + 6: 128 + uniqueMixes: + - volume: 2500 + temperature: 293.15 + moles: + - 21.824879 + - 82.10312 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.15 + moles: + - 6666.982 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.15 + moles: + - 0 + - 6666.982 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.15 + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.15 + moles: + - 0 + - 0 + - 0 + - 6666.982 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 235 + moles: + - 21.824879 + - 82.10312 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + immutable: True + temperature: 356.15 + moles: + - 21.824879 + - 20 + - 62.10312 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - volume: 2500 + temperature: 293.14993 + moles: + - 21.824879 + - 82.10312 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + chunkSize: 4 + - type: NavMap + - uid: 77 + components: + - type: MetaData + - type: Transform + - type: Map + mapPaused: True + - type: PhysicsMap + - type: GridTree + - type: MovedGrids + - type: Parallax + parallax: Desert + - type: Gravity + gravityShakeSound: !type:SoundPathSpecifier + path: /Audio/Effects/alert.ogg + inherent: True + enabled: True + - type: MapAtmosphere + space: False + mixture: + volume: 2500 + immutable: True + temperature: 356.15 + moles: + - 21.824879 + - 20 + - 62.10312 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: Broadphase + - type: OccluderTree + - type: LoadedMap +- proto: AccordionInstrument + entities: + - uid: 2598 + components: + - type: Transform + pos: -38.60536,9.642861 + parent: 1 +- proto: AcousticGuitarInstrument + entities: + - uid: 1387 + components: + - type: Transform + pos: -6.800043,18.724749 + parent: 1 + - uid: 3319 + components: + - type: Transform + pos: -20.403473,-19.355833 + parent: 1 +- proto: AdvMopItem + entities: + - uid: 14936 + components: + - type: Transform + pos: 13.457136,79.50341 + parent: 1 +- proto: AirAlarm + entities: + - uid: 11432 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,36.5 + parent: 1 + - uid: 11715 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,24.5 + parent: 1 + - type: DeviceList + devices: + - 10193 + - 10051 + - 9648 + - 9847 + - 10050 + - 10085 + - 10084 + - 10016 + - 10204 + - 10203 + - 12125 + - 10441 + - 10630 + - uid: 11716 + components: + - type: Transform + pos: 5.5,36.5 + parent: 1 + - type: DeviceList + devices: + - 12165 + - 10629 + - 10704 + - 10061 + - 10050 + - 10085 + - 10084 + - 9988 + - 9538 + - 8871 + - uid: 11859 + components: + - type: Transform + pos: -14.5,-21.5 + parent: 1 + - type: DeviceList + devices: + - 11940 + - 10464 + - 10440 + - 10082 + - 10081 + - uid: 11877 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,45.5 + parent: 1 + - uid: 11895 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,1.5 + parent: 1 + - uid: 11901 + components: + - type: Transform + pos: -29.5,-11.5 + parent: 1 + - uid: 11904 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,-3.5 + parent: 1 + - type: DeviceList + devices: + - 12232 + - 10724 + - 10723 + - 10130 + - uid: 11934 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,57.5 + parent: 1 + - type: DeviceList + devices: + - 11689 + - 10873 + - 10642 + - 8817 + - 9486 + - 9956 + - uid: 11941 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,-13.5 + parent: 1 + - uid: 11950 + components: + - type: Transform + pos: 4.5,21.5 + parent: 1 + - type: DeviceList + devices: + - 10815 + - 10877 + - 12277 + - 10174 + - 10173 + - 10175 + - 1672 + - 1668 + - 1669 + - 1709 + - 546 + - uid: 11977 + components: + - type: Transform + pos: -30.5,30.5 + parent: 1 + - type: DeviceList + devices: + - 12207 + - 10740 + - 10741 + - 10042 + - 10049 + - uid: 11980 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,13.5 + parent: 1 + - type: DeviceList + devices: + - 12227 + - 10677 + - 10678 + - 9591 + - 9374 + - uid: 11982 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-7.5 + parent: 1 + - type: DeviceList + devices: + - 12206 + - 10611 + - 10748 + - 9469 + - 9383 + - 8293 + - 10009 + - 10291 + - 9827 + - uid: 11992 + components: + - type: Transform + pos: -20.5,17.5 + parent: 1 + - type: DeviceList + devices: + - 11900 + - 10801 + - 10802 + - 9763 + - 9762 + - 10196 + - uid: 11993 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,60.5 + parent: 1 + - type: DeviceList + devices: + - 10078 + - 10004 + - 9890 + - 12271 + - 10484 + - 10387 + - uid: 12029 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 + - type: DeviceList + devices: + - 10524 + - 12269 + - 12030 + - 11979 + - 11913 + - uid: 12046 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,40.5 + parent: 1 + - type: DeviceList + devices: + - 12132 + - 10431 + - 10410 + - 10029 + - 10205 + - 10206 + - 10144 + - 10118 + - uid: 12120 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,40.5 + parent: 1 + - type: DeviceList + devices: + - 12133 + - 10886 + - 10885 + - 9311 + - 9866 + - 10108 + - 9696 + - 9283 + - 10069 + - 10074 + - 10010 + - 7772 + - 9013 + - 10161 + - 10144 + - 10118 + - uid: 12127 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,-21.5 + parent: 1 + - uid: 12138 + components: + - type: Transform + pos: -17.5,21.5 + parent: 1 + - type: DeviceList + devices: + - 10210 + - 9849 + - 10007 + - 9373 + - 12047 + - 10390 + - 10391 + - uid: 12145 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,14.5 + parent: 1 + - type: DeviceList + devices: + - 12190 + - 10869 + - 10870 + - 9654 + - 9599 + - 10228 + - 546 + - 1709 + - 1669 + - 1668 + - 1672 + - 10104 + - 9856 + - 10019 + - uid: 12146 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,7.5 + parent: 1 + - type: DeviceList + devices: + - 10858 + - 11617 + - 11860 + - 10094 + - 10015 + - uid: 12147 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-0.5 + parent: 1 + - type: DeviceList + devices: + - 10486 + - 10382 + - 11899 + - 10129 + - 10057 + - uid: 12148 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,18.5 + parent: 1 + - type: DeviceList + devices: + - 10796 + - 11876 + - 10797 + - 9659 + - 10070 + - uid: 12149 + components: + - type: Transform + pos: -22.5,21.5 + parent: 1 + - type: DeviceList + devices: + - 10667 + - 11975 + - 10813 + - 10132 + - 9373 + - 10007 + - 9844 + - 9341 + - 9851 + - 10196 + - 9134 + - 9499 + - 10222 + - 1436 + - uid: 12150 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,27.5 + parent: 1 + - type: DeviceList + devices: + - 12279 + - 10818 + - 10563 + - 8813 + - uid: 12152 + components: + - type: Transform + pos: 24.5,53.5 + parent: 1 + - type: DeviceList + devices: + - 11758 + - 12180 + - 10406 + - 9617 + - 10125 + - uid: 12154 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,21.5 + parent: 1 + - type: DeviceList + devices: + - 1297 + - 10274 + - 10111 + - 10226 + - 10323 + - 8799 + - 10338 + - 10249 + - 10317 + - 9672 + - 10013 + - 10121 + - 10318 + - 10287 + - 10316 + - 10314 + - 10137 + - 9889 + - 10213 + - 10214 + - 9862 + - 9910 + - 10152 + - 10265 + - 12131 + - uid: 12155 + components: + - type: Transform + pos: -37.5,-4.5 + parent: 1 + - uid: 12156 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-8.5 + parent: 1 + - type: DeviceList + devices: + - 11903 + - 10485 + - 10663 + - 10056 + - uid: 12157 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-17.5 + parent: 1 + - uid: 12160 + components: + - type: Transform + pos: -18.5,11.5 + parent: 1 + - type: DeviceList + devices: + - 10666 + - 10665 + - 11778 + - 9134 + - 9499 + - uid: 12161 + components: + - type: Transform + pos: -0.5,35.5 + parent: 1 + - type: DeviceList + devices: + - 11937 + - 10580 + - 10579 + - 10062 + - 10063 + - uid: 12164 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,4.5 + parent: 1 + - type: DeviceList + devices: + - 10553 + - 10745 + - 10735 + - 10014 + - uid: 12168 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,61.5 + parent: 1 + - uid: 12170 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,-9.5 + parent: 1 + - uid: 12171 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,31.5 + parent: 1 + - type: DeviceList + devices: + - 12182 + - 10738 + - 10739 + - 10064 + - 10063 + - uid: 12178 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-7.5 + parent: 1 + - uid: 12186 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,16.5 + parent: 1 + - type: DeviceList + devices: + - 10348 + - 11121 + - 12135 + - 11120 + - uid: 12187 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,7.5 + parent: 1 + - type: DeviceList + devices: + - 12136 + - 11122 + - 11119 + - 10347 + - uid: 12188 + components: + - type: Transform + pos: -21.5,43.5 + parent: 1 + - type: DeviceList + devices: + - 10733 + - 10732 + - 12163 + - 10072 + - 10022 + - 9607 + - 10071 + - uid: 12194 + components: + - type: Transform + pos: -32.5,19.5 + parent: 1 + - uid: 12195 + components: + - type: Transform + pos: -28.5,21.5 + parent: 1 + - type: DeviceList + devices: + - 12245 + - 10453 + - 11198 + - 9844 + - uid: 12198 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,-3.5 + parent: 1 + - type: DeviceList + devices: + - 15414 + - 15412 + - 15410 + - 15416 + - 15415 + - 15341 + - 15342 + - 15411 + - 15413 + - 15409 + - 15335 + - 15334 + - 15333 + - 8159 + - 8327 + - 15336 + - 15337 + - 15338 + - 15339 + - 15340 + - 11279 + - 12197 + - 10808 + - 10806 + - 12139 + - 10807 + - 9755 + - 9398 + - uid: 12200 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,31.5 + parent: 1 + - uid: 12201 + components: + - type: Transform + pos: 27.5,53.5 + parent: 1 + - type: DeviceList + devices: + - 12057 + - 10656 + - 10856 + - 10126 + - 10125 + - uid: 12202 + components: + - type: Transform + pos: -8.5,18.5 + parent: 1 + - type: DeviceList + devices: + - 10138 + - 9384 + - 9672 + - 10317 + - 10318 + - 10287 + - 9374 + - 9592 + - 12056 + - 11544 + - 11545 + - uid: 12203 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,10.5 + parent: 1 + - type: DeviceList + devices: + - 9293 + - 10089 + - 9591 + - 12226 + - 10747 + - 10746 + - uid: 12204 + components: + - type: Transform + pos: -3.5,10.5 + parent: 1 + - type: DeviceList + devices: + - 9592 + - 10015 + - 10094 + - 12225 + - 10743 + - 10744 + - 10014 + - uid: 12205 + components: + - type: Transform + pos: -23.5,36.5 + parent: 1 + - type: DeviceList + devices: + - 10552 + - 12060 + - 11878 + - 10170 + - 10117 + - 10042 + - 10043 + - 10146 + - uid: 12217 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,15.5 + parent: 1 + - type: DeviceList + devices: + - 10673 + - 10672 + - 12124 + - 10240 + - uid: 12218 + components: + - type: Transform + pos: 21.5,31.5 + parent: 1 + - type: DeviceList + devices: + - 12184 + - 10864 + - 10865 + - 10257 + - uid: 12219 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,42.5 + parent: 1 + - uid: 12221 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,6.5 + parent: 1 + - type: DeviceList + devices: + - 10231 + - 10230 + - 10229 + - 10874 + - 12189 + - 10734 + - 10129 + - 9248 + - uid: 12222 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,4.5 + parent: 1 + - type: DeviceList + devices: + - 11935 + - 10882 + - 10881 + - 8486 + - 9260 + - uid: 12223 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,56.5 + parent: 1 + - type: DeviceList + devices: + - 12129 + - 10713 + - 10407 + - 10212 + - 10211 + - 10133 + - 10038 + - 10039 + - 10040 + - 9959 + - 9646 + - 9302 + - uid: 12224 + components: + - type: Transform + pos: 17.5,26.5 + parent: 1 + - type: DeviceList + devices: + - 12183 + - 10863 + - 10862 + - 10860 + - 10861 + - 10258 + - 10256 + - uid: 12228 + components: + - type: Transform + pos: 22.5,44.5 + parent: 1 + - type: DeviceList + devices: + - 10693 + - 12220 + - 10694 + - 10008 + - 10029 + - uid: 12229 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,11.5 + parent: 1 + - uid: 12230 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,6.5 + parent: 1 + - uid: 12231 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,16.5 + parent: 1 + - uid: 12233 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,39.5 + parent: 1 + - type: DeviceList + devices: + - 12267 + - 10071 + - uid: 12242 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,14.5 + parent: 1 + - type: DeviceList + devices: + - 9849 + - 10210 + - 10047 + - 9058 + - 9664 + - 10516 + - 11997 + - 10518 + - 9762 + - 9763 + - 10289 + - 10090 + - 9472 + - uid: 12244 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,16.5 + parent: 1 + - type: DeviceList + devices: + - 10671 + - 11943 + - 10901 + - 10240 + - 10239 + - uid: 12246 + components: + - type: Transform + pos: 15.5,48.5 + parent: 1 + - type: DeviceList + devices: + - 12250 + - 10086 + - 9617 + - 10008 + - 10205 + - 10206 + - 10212 + - 10133 + - 10211 + - 10037 + - uid: 12247 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,48.5 + parent: 1 + - type: DeviceList + devices: + - 11968 + - 10791 + - 10731 + - 12130 + - 10303 + - 10307 + - 10308 + - 10158 + - 8868 + - 10091 + - 10092 + - 10235 + - 10293 + - 10273 + - uid: 12249 + components: + - type: Transform + pos: 22.5,13.5 + parent: 1 + - type: DeviceList + devices: + - 12002 + - 10511 + - 11705 + - 10241 + - 9661 + - uid: 12253 + components: + - type: Transform + pos: -19.5,-6.5 + parent: 1 + - uid: 12254 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,30.5 + parent: 1 + - type: DeviceList + devices: + - 10632 + - 10631 + - 11902 + - 1124 + - 972 + - 10117 + - uid: 12255 + components: + - type: Transform + pos: -30.5,35.5 + parent: 1 + - type: DeviceList + devices: + - 11479 + - 11794 + - 10876 + - 10146 + - uid: 12256 + components: + - type: Transform + pos: 39.5,14.5 + parent: 1 + - type: DeviceList + devices: + - 12134 + - 11117 + - 11118 + - 10343 + - 10344 + - 10342 + - 10341 + - uid: 12257 + components: + - type: Transform + pos: 34.5,13.5 + parent: 1 + - type: DeviceList + devices: + - 10943 + - 10944 + - 12123 + - 10285 + - 10284 + - 10341 + - 10342 + - 10220 + - uid: 12258 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,6.5 + parent: 1 + - type: DeviceList + devices: + - 12196 + - 10669 + - 10670 + - 10221 + - uid: 12259 + components: + - type: Transform + pos: -28.5,12.5 + parent: 1 + - type: DeviceList + devices: + - 1436 + - 12266 + - 10449 + - 10448 + - uid: 12260 + components: + - type: Transform + pos: -28.5,15.5 + parent: 1 + - type: DeviceList + devices: + - 12115 + - 10623 + - 10626 + - uid: 12261 + components: + - type: Transform + pos: -28.5,18.5 + parent: 1 + - type: DeviceList + devices: + - 12268 + - 10622 + - 10627 + - 9341 + - uid: 12262 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,25.5 + parent: 1 + - type: DeviceList + devices: + - 12169 + - 10582 + - 10581 + - 10049 + - uid: 12264 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,2.5 + parent: 1 + - type: DeviceList + devices: + - 10619 + - 12252 + - 10618 + - 10222 + - uid: 12265 + components: + - type: Transform + pos: 0.5,-11.5 + parent: 1 + - uid: 12270 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,10.5 + parent: 1 + - type: DeviceList + devices: + - 10916 + - 11595 + - 12276 + - 10224 + - 10223 + - 10070 + - 10239 + - 10241 + - uid: 12272 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,38.5 + parent: 1 + - type: DeviceList + devices: + - 12241 + - 10022 + - 9607 + - 10115 + - 10114 + - 10054 + - 8947 + - 10322 + - 10273 + - 10293 + - 10235 + - uid: 12273 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,55.5 + parent: 1 + - type: DeviceList + devices: + - 12243 + - 10729 + - 10730 + - 10103 + - 10102 + - 10101 + - 10100 + - 10304 + - 9850 + - 10052 + - 10109 + - 10110 + - 9887 + - uid: 12274 + components: + - type: Transform + pos: -22.5,-1.5 + parent: 1 + - uid: 12280 + components: + - type: Transform + pos: -18.5,36.5 + parent: 1 + - type: DeviceList + devices: + - 11692 + - 11682 + - 11661 + - 1124 + - 630 + - 23 + - 204 + - 42 + - 715 + - 10030 + - uid: 12281 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,46.5 + parent: 1 + - type: DeviceList + devices: + - 12251 + - 10888 + - 10889 + - 10158 + - uid: 12282 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,52.5 + parent: 1 + - type: DeviceList + devices: + - 12126 + - 10549 + - 10548 + - 9646 + - 9391 + - uid: 12283 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,50.5 + parent: 1 + - type: DeviceList + devices: + - 10628 + - 12018 + - 12162 + - 9302 + - uid: 12284 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,59.5 + parent: 1 + - type: DeviceList + devices: + - 11158 + - 12275 + - 10640 + - 9956 + - 10087 + - 10093 + - 10107 + - 10106 + - uid: 12285 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,59.5 + parent: 1 + - type: DeviceList + devices: + - 10641 + - 11863 + - 10751 + - 10278 + - 9703 + - 10283 + - uid: 12287 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,9.5 + parent: 1 + - type: DeviceList + devices: + - 11124 + - 11123 + - 12286 + - 10344 + - 10343 + - 10346 + - 10345 + - uid: 15242 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,53.5 + parent: 1 + - type: DeviceList + devices: + - 15260 + - 15289 + - 15288 + - 15236 + - 15237 + - 15238 + - 15239 + - 15240 + - 15241 + - 11863 +- proto: AirCanister + entities: + - uid: 3154 + components: + - type: Transform + pos: -32.5,25.5 + parent: 1 + - uid: 3729 + components: + - type: Transform + pos: -0.5,36.5 + parent: 1 + - uid: 5269 + components: + - type: Transform + pos: 48.5,11.5 + parent: 1 + - uid: 5421 + components: + - type: Transform + pos: 23.5,-4.5 + parent: 1 + - uid: 5900 + components: + - type: Transform + pos: 6.5,67.5 + parent: 1 + - uid: 6012 + components: + - type: Transform + pos: -20.5,-0.5 + parent: 1 + - uid: 14404 + components: + - type: Transform + anchored: True + pos: -18.5,-41.5 + parent: 1 + - type: Physics + angularDamping: 0 + linearDamping: 0 + bodyType: Static + - uid: 15499 + components: + - type: Transform + pos: 48.5,12.5 + parent: 1 + - uid: 15652 + components: + - type: Transform + pos: -11.5,-37.5 + parent: 1 + - uid: 15653 + components: + - type: Transform + pos: -11.5,-36.5 + parent: 1 +- proto: AirlockArmoryGlassLocked + entities: + - uid: 1737 + components: + - type: Transform + pos: -21.5,15.5 + parent: 1 +- proto: AirlockBarLocked + entities: + - uid: 910 + components: + - type: Transform + pos: -8.5,29.5 + parent: 1 +- proto: AirlockCaptainLocked + entities: + - uid: 1336 + components: + - type: Transform + pos: -4.5,5.5 + parent: 1 +- proto: AirlockCargo + entities: + - uid: 91 + components: + - type: Transform + pos: -22.5,35.5 + parent: 1 +- proto: AirlockCargoGlassLocked + entities: + - uid: 209 + components: + - type: Transform + pos: -19.5,35.5 + parent: 1 + - uid: 673 + components: + - type: Transform + pos: -22.5,32.5 + parent: 1 + - uid: 1107 + components: + - type: Transform + pos: -24.5,30.5 + parent: 1 + - uid: 1200 + components: + - type: Transform + pos: -25.5,30.5 + parent: 1 +- proto: AirlockChapelLocked + entities: + - uid: 1582 + components: + - type: Transform + pos: 13.5,-3.5 + parent: 1 + - uid: 2174 + components: + - type: Transform + pos: 13.5,-6.5 + parent: 1 +- proto: AirlockChemistryLocked + entities: + - uid: 3096 + components: + - type: Transform + pos: 18.5,45.5 + parent: 1 +- proto: AirlockChiefEngineerLocked + entities: + - uid: 2649 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-9.5 + parent: 1 + - uid: 2685 + components: + - type: Transform + pos: -20.5,-13.5 + parent: 1 + - uid: 2718 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,-17.5 + parent: 1 +- proto: AirlockChiefMedicalOfficerGlassLocked + entities: + - uid: 3585 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,54.5 + parent: 1 +- proto: AirlockChiefMedicalOfficerLocked + entities: + - uid: 3603 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,54.5 + parent: 1 +- proto: AirlockCommandGlassLocked + entities: + - uid: 442 + components: + - type: Transform + pos: 0.5,9.5 + parent: 1 + - uid: 1562 + components: + - type: Transform + pos: 0.5,8.5 + parent: 1 +- proto: AirlockCommandLocked + entities: + - uid: 625 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,15.5 + parent: 1 + - uid: 1621 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,12.5 + parent: 1 + - uid: 2444 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-3.5 + parent: 1 + - uid: 5308 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,31.5 + parent: 1 +- proto: AirlockEngineeringGlassLocked + entities: + - uid: 5 + components: + - type: Transform + pos: -9.5,-11.5 + parent: 1 + - uid: 2465 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-9.5 + parent: 1 + - uid: 2705 + components: + - type: Transform + pos: -28.5,-7.5 + parent: 1 + - uid: 2822 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,-9.5 + parent: 1 + - uid: 3081 + components: + - type: Transform + pos: -27.5,-7.5 + parent: 1 + - uid: 3200 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,-6.5 + parent: 1 + - uid: 4526 + components: + - type: Transform + pos: -33.5,41.5 + parent: 1 + - uid: 6271 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-25.5 + parent: 1 + - uid: 12607 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-23.5 + parent: 1 + - uid: 13202 + components: + - type: Transform + pos: -11.5,-21.5 + parent: 1 + - uid: 13629 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-26.5 + parent: 1 + - uid: 13632 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-25.5 + parent: 1 + - uid: 15990 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-13.5 + parent: 1 + - uid: 15991 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-21.5 + parent: 1 +- proto: AirlockEngineeringLocked + entities: + - uid: 1681 + components: + - type: Transform + pos: -11.5,-13.5 + parent: 1 + - uid: 2135 + components: + - type: Transform + pos: -30.5,48.5 + parent: 1 + - uid: 2277 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,-6.5 + parent: 1 + - uid: 2330 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-6.5 + parent: 1 + - uid: 2735 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-11.5 + parent: 1 + - uid: 3248 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,39.5 + parent: 1 + - uid: 3369 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,-11.5 + parent: 1 + - uid: 3867 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,34.5 + parent: 1 + - uid: 4162 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,-1.5 + parent: 1 + - uid: 4432 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,41.5 + parent: 1 + - uid: 4477 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,21.5 + parent: 1 + - uid: 4668 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,62.5 + parent: 1 + - uid: 4686 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,24.5 + parent: 1 +- proto: AirlockExternalGlassCargoLocked + entities: + - uid: 197 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,26.5 + parent: 1 + - uid: 198 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,28.5 + parent: 1 +- proto: AirlockExternalGlassEngineeringLocked + entities: + - uid: 3326 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,38.5 + parent: 1 + - uid: 3840 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,36.5 + parent: 1 + - uid: 4194 + components: + - type: Transform + pos: -37.5,41.5 + parent: 1 + - uid: 5313 + components: + - type: Transform + pos: 33.5,34.5 + parent: 1 + - uid: 5427 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,36.5 + parent: 1 + - uid: 5580 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,38.5 + parent: 1 +- proto: AirlockExternalGlassLocked + entities: + - uid: 4186 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,-11.5 + parent: 1 + - uid: 4216 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,-13.5 + parent: 1 + - uid: 4281 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,27.5 + parent: 1 + - uid: 4813 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,27.5 + parent: 1 + - uid: 5280 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,29.5 + parent: 1 + - uid: 5284 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,29.5 + parent: 1 + - uid: 5423 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,-13.5 + parent: 1 + - uid: 5424 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,-11.5 + parent: 1 +- proto: AirlockExternalGlassShuttleArrivals + entities: + - uid: 2381 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,62.5 + parent: 1 + - uid: 2409 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,55.5 + parent: 1 + - uid: 2607 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,62.5 + parent: 1 + - uid: 10319 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,55.5 + parent: 1 +- proto: AirlockExternalGlassShuttleEmergencyLocked + entities: + - uid: 15141 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -46.5,58.5 + parent: 1 + - uid: 15142 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -48.5,58.5 + parent: 1 +- proto: AirlockExternalGlassShuttleLocked + entities: + - uid: 16599 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,28.5 + parent: 1 + - uid: 16600 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,26.5 + parent: 1 +- proto: AirlockFreezerLocked + entities: + - uid: 899 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,32.5 + parent: 1 + - uid: 1091 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,32.5 + parent: 1 +- proto: AirlockGlass + entities: + - uid: 78 + components: + - type: Transform + pos: -15.5,36.5 + parent: 1 + - uid: 151 + components: + - type: Transform + pos: 9.5,2.5 + parent: 1 + - uid: 229 + components: + - type: Transform + pos: 3.5,22.5 + parent: 1 + - uid: 333 + components: + - type: Transform + pos: 1.5,37.5 + parent: 1 + - uid: 410 + components: + - type: Transform + pos: -15.5,22.5 + parent: 1 + - uid: 545 + components: + - type: Transform + pos: 1.5,22.5 + parent: 1 + - uid: 608 + components: + - type: Transform + pos: -13.5,22.5 + parent: 1 + - uid: 659 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,50.5 + parent: 1 + - uid: 674 + components: + - type: Transform + pos: -13.5,36.5 + parent: 1 + - uid: 694 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,50.5 + parent: 1 + - uid: 725 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,50.5 + parent: 1 + - uid: 760 + components: + - type: Transform + pos: -14.5,36.5 + parent: 1 + - uid: 771 + components: + - type: Transform + pos: 3.5,37.5 + parent: 1 + - uid: 796 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,50.5 + parent: 1 + - uid: 1070 + components: + - type: Transform + pos: 2.5,37.5 + parent: 1 + - uid: 1136 + components: + - type: Transform + pos: 2.5,22.5 + parent: 1 + - uid: 1289 + components: + - type: Transform + pos: -14.5,22.5 + parent: 1 + - uid: 1301 + components: + - type: Transform + pos: -16.5,40.5 + parent: 1 + - uid: 1302 + components: + - type: Transform + pos: -16.5,41.5 + parent: 1 + - uid: 1451 + components: + - type: Transform + pos: 4.5,10.5 + parent: 1 + - uid: 1576 + components: + - type: Transform + pos: 6.5,10.5 + parent: 1 + - uid: 1671 + components: + - type: Transform + pos: -28.5,50.5 + parent: 1 + - uid: 2038 + components: + - type: Transform + pos: 5.5,10.5 + parent: 1 + - uid: 2962 + components: + - type: Transform + pos: 1.5,46.5 + parent: 1 + - uid: 2978 + components: + - type: Transform + pos: 3.5,46.5 + parent: 1 + - uid: 3139 + components: + - type: Transform + pos: 2.5,46.5 + parent: 1 + - uid: 3790 + components: + - type: Transform + pos: 0.5,52.5 + parent: 1 + - uid: 4375 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,55.5 + parent: 1 + - uid: 4725 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,-4.5 + parent: 1 + - uid: 4797 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,-4.5 + parent: 1 + - uid: 6009 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,50.5 + parent: 1 + - uid: 15233 + components: + - type: Transform + pos: -30.5,56.5 + parent: 1 + - uid: 15234 + components: + - type: Transform + pos: -30.5,55.5 + parent: 1 + - uid: 15235 + components: + - type: Transform + pos: -30.5,54.5 + parent: 1 +- proto: AirlockHeadOfPersonnelLocked + entities: + - uid: 20 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,15.5 + parent: 1 + - uid: 1084 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,12.5 + parent: 1 +- proto: AirlockHeadOfSecurityGlassLocked + entities: + - uid: 1158 + components: + - type: Transform + pos: -26.5,10.5 + parent: 1 +- proto: AirlockHeadOfSecurityLocked + entities: + - uid: 888 + components: + - type: Transform + pos: -29.5,8.5 + parent: 1 +- proto: AirlockHydroGlassLocked + entities: + - uid: 892 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,25.5 + parent: 1 +- proto: AirlockJanitorLocked + entities: + - uid: 2190 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,25.5 + parent: 1 +- proto: AirlockKitchenGlassLocked + entities: + - uid: 1151 + components: + - type: Transform + pos: 4.5,31.5 + parent: 1 +- proto: AirlockLawyerLocked + entities: + - uid: 469 + components: + - type: Transform + pos: -1.5,60.5 + parent: 1 +- proto: AirlockMailGlassLocked + entities: + - uid: 59 + components: + - type: Transform + pos: -22.5,27.5 + parent: 1 +- proto: AirlockMaintCargoLocked + entities: + - uid: 1551 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,36.5 + parent: 1 +- proto: AirlockMaintEngiLocked + entities: + - uid: 1866 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,-1.5 + parent: 1 +- proto: AirlockMaintGlassLocked + entities: + - uid: 4423 + components: + - type: Transform + pos: -1.5,67.5 + parent: 1 + - uid: 4541 + components: + - type: Transform + pos: 24.5,34.5 + parent: 1 + - uid: 5059 + components: + - type: Transform + pos: 28.5,24.5 + parent: 1 + - uid: 5622 + components: + - type: Transform + pos: 27.5,29.5 + parent: 1 + - uid: 5646 + components: + - type: Transform + pos: 19.5,-5.5 + parent: 1 + - uid: 5876 + components: + - type: Transform + pos: 22.5,34.5 + parent: 1 + - uid: 5918 + components: + - type: Transform + pos: -6.5,66.5 + parent: 1 +- proto: AirlockMaintHydroLocked + entities: + - uid: 1609 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,24.5 + parent: 1 +- proto: AirlockMaintLocked + entities: + - uid: 304 + components: + - type: Transform + pos: 7.5,0.5 + parent: 1 + - uid: 535 + components: + - type: Transform + pos: 4.5,39.5 + parent: 1 + - uid: 780 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,23.5 + parent: 1 + - uid: 1036 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,38.5 + parent: 1 + - uid: 1196 + components: + - type: Transform + pos: -16.5,23.5 + parent: 1 + - uid: 1303 + components: + - type: Transform + pos: -16.5,37.5 + parent: 1 + - uid: 1522 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,43.5 + parent: 1 + - uid: 1549 + components: + - type: Transform + pos: 28.5,13.5 + parent: 1 + - uid: 1793 + components: + - type: Transform + pos: 28.5,10.5 + parent: 1 + - uid: 1993 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,44.5 + parent: 1 + - uid: 2205 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,34.5 + parent: 1 + - uid: 2231 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,5.5 + parent: 1 + - uid: 2739 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,21.5 + parent: 1 + - uid: 2775 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,-6.5 + parent: 1 + - uid: 3151 + components: + - type: Transform + pos: 13.5,38.5 + parent: 1 + - uid: 3252 + components: + - type: Transform + pos: 4.5,48.5 + parent: 1 + - uid: 3774 + components: + - type: Transform + pos: -12.5,52.5 + parent: 1 + - uid: 3986 + components: + - type: Transform + pos: -3.5,52.5 + parent: 1 + - uid: 4012 + components: + - type: Transform + pos: 4.5,58.5 + parent: 1 + - uid: 4042 + components: + - type: Transform + pos: -5.5,53.5 + parent: 1 + - uid: 5845 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,59.5 + parent: 1 + - uid: 6346 + components: + - type: Transform + pos: 25.5,58.5 + parent: 1 +- proto: AirlockMaintMedLocked + entities: + - uid: 3514 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,43.5 + parent: 1 + - uid: 3548 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,43.5 + parent: 1 + - uid: 3599 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,63.5 + parent: 1 +- proto: AirlockMaintSecLocked + entities: + - uid: 199 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,21.5 + parent: 1 +- proto: AirlockMaintTheatreLocked + entities: + - uid: 1282 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,3.5 + parent: 1 + - uid: 1375 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,8.5 + parent: 1 + - uid: 1616 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,7.5 + parent: 1 + - uid: 2121 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,12.5 + parent: 1 +- proto: AirlockMantisLocked + entities: + - uid: 512 + components: + - type: Transform + pos: 26.5,4.5 + parent: 1 + - uid: 631 + components: + - type: Transform + pos: 19.5,5.5 + parent: 1 +- proto: AirlockMedicalGlass + entities: + - uid: 2968 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,42.5 + parent: 1 + - uid: 3449 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,41.5 + parent: 1 +- proto: AirlockMedicalGlassLocked + entities: + - uid: 2753 + components: + - type: Transform + pos: 23.5,48.5 + parent: 1 + - uid: 3501 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,45.5 + parent: 1 + - uid: 3525 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,50.5 + parent: 1 +- proto: AirlockMedicalLocked + entities: + - uid: 1272 + components: + - type: Transform + pos: 25.5,46.5 + parent: 1 + - uid: 2663 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,45.5 + parent: 1 + - uid: 3182 + components: + - type: Transform + pos: 25.5,52.5 + parent: 1 + - uid: 3250 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,45.5 + parent: 1 +- proto: AirlockQuartermasterGlassLocked + entities: + - uid: 997 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,32.5 + parent: 1 +- proto: AirlockResearchDirectorGlassLocked + entities: + - uid: 1199 + components: + - type: Transform + pos: 19.5,14.5 + parent: 1 + - uid: 2834 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,12.5 + parent: 1 + - uid: 4523 + components: + - type: Transform + pos: 35.5,9.5 + parent: 1 + - uid: 4527 + components: + - type: Transform + pos: 30.5,12.5 + parent: 1 + - uid: 4973 + components: + - type: Transform + pos: 35.5,14.5 + parent: 1 +- proto: AirlockResearchDirectorLocked + entities: + - uid: 1761 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,14.5 + parent: 1 +- proto: AirlockSalvageGlassLocked + entities: + - uid: 241 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,33.5 + parent: 1 +- proto: AirlockSalvageLocked + entities: + - uid: 156 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,33.5 + parent: 1 + - uid: 327 + components: + - type: Transform + pos: -2.5,35.5 + parent: 1 + - uid: 430 + components: + - type: Transform + pos: -2.5,38.5 + parent: 1 +- proto: AirlockScienceGlassLocked + entities: + - uid: 19 + components: + - type: Transform + pos: 18.5,16.5 + parent: 1 + - uid: 1430 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,15.5 + parent: 1 + - uid: 1431 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,10.5 + parent: 1 + - uid: 1547 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,10.5 + parent: 1 +- proto: AirlockScienceLocked + entities: + - uid: 1398 + components: + - type: Transform + pos: 16.5,18.5 + parent: 1 + - uid: 1654 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,16.5 + parent: 1 +- proto: AirlockSecurityGlassLocked + entities: + - uid: 1665 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,9.5 + parent: 1 + - uid: 2108 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,8.5 + parent: 1 + - uid: 2686 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,18.5 + parent: 1 +- proto: AirlockSecurityLawyerGlassLocked + entities: + - uid: 363 + components: + - type: Transform + pos: -19.5,20.5 + parent: 1 + - uid: 1038 + components: + - type: Transform + pos: -19.5,18.5 + parent: 1 + - uid: 1575 + components: + - type: Transform + pos: -16.5,20.5 + parent: 1 + - uid: 1775 + components: + - type: Transform + pos: -16.5,18.5 + parent: 1 +- proto: AirlockSecurityLocked + entities: + - uid: 1946 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,2.5 + parent: 1 + - uid: 2758 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-1.5 + parent: 1 +- proto: AirlockServiceLocked + entities: + - uid: 677 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,39.5 + parent: 1 +- proto: AirlockVirologyGlassLocked + entities: + - uid: 2752 + components: + - type: Transform + pos: 12.5,57.5 + parent: 1 +- proto: AirlockVirologyLocked + entities: + - uid: 2747 + components: + - type: Transform + pos: 12.5,60.5 + parent: 1 +- proto: AirSensor + entities: + - uid: 10553 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,5.5 + parent: 1 + - uid: 11513 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-11.5 + parent: 1 + - uid: 11682 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,33.5 + parent: 1 + - uid: 11689 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,57.5 + parent: 1 + - uid: 11756 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,61.5 + parent: 1 + - uid: 11778 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,8.5 + parent: 1 + - uid: 11794 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,34.5 + parent: 1 + - uid: 11860 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,0.5 + parent: 1 + - uid: 11863 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,60.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 15242 + - 15243 + - uid: 11876 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,18.5 + parent: 1 + - uid: 11878 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,33.5 + parent: 1 + - uid: 11896 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,12.5 + parent: 1 + - uid: 11899 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-0.5 + parent: 1 + - uid: 11900 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,14.5 + parent: 1 + - uid: 11902 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,33.5 + parent: 1 + - uid: 11903 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-8.5 + parent: 1 + - uid: 11921 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-2.5 + parent: 1 + - uid: 11933 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,30.5 + parent: 1 + - uid: 11935 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,7.5 + parent: 1 + - uid: 11937 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,33.5 + parent: 1 + - uid: 11940 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-22.5 + parent: 1 + - uid: 11943 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,15.5 + parent: 1 + - uid: 11968 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,48.5 + parent: 1 + - uid: 11975 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,13.5 + parent: 1 + - uid: 11981 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,2.5 + parent: 1 + - uid: 11997 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,11.5 + parent: 1 + - uid: 12002 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,11.5 + parent: 1 + - uid: 12045 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-7.5 + parent: 1 + - uid: 12047 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,18.5 + parent: 1 + - uid: 12056 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,17.5 + parent: 1 + - uid: 12057 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,52.5 + parent: 1 + - uid: 12059 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-16.5 + parent: 1 + - uid: 12072 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-9.5 + parent: 1 + - uid: 12115 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,14.5 + parent: 1 + - uid: 12123 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,11.5 + parent: 1 + - uid: 12124 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,14.5 + parent: 1 + - uid: 12125 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,28.5 + parent: 1 + - uid: 12126 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,53.5 + parent: 1 + - uid: 12128 + components: + - type: Transform + pos: -32.5,17.5 + parent: 1 + - uid: 12129 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,50.5 + parent: 1 + - uid: 12130 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,48.5 + parent: 1 + - uid: 12131 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,25.5 + parent: 1 + - uid: 12132 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,41.5 + parent: 1 + - uid: 12133 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,44.5 + parent: 1 + - uid: 12134 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,13.5 + parent: 1 + - uid: 12135 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,17.5 + parent: 1 + - uid: 12136 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,6.5 + parent: 1 + - uid: 12139 + components: + - type: Transform + pos: -40.5,-5.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 12198 + - uid: 12153 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,28.5 + parent: 1 + - uid: 12162 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,50.5 + parent: 1 + - uid: 12163 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,42.5 + parent: 1 + - uid: 12165 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,34.5 + parent: 1 + - uid: 12167 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-10.5 + parent: 1 + - uid: 12169 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,28.5 + parent: 1 + - uid: 12179 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-16.5 + parent: 1 + - uid: 12180 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,49.5 + parent: 1 + - uid: 12182 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,33.5 + parent: 1 + - uid: 12183 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,23.5 + parent: 1 + - uid: 12184 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,30.5 + parent: 1 + - uid: 12185 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-4.5 + parent: 1 + - uid: 12189 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,7.5 + parent: 1 + - uid: 12190 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,16.5 + parent: 1 + - uid: 12191 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,28.5 + parent: 1 + - uid: 12196 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,7.5 + parent: 1 + - uid: 12197 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,-2.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 12198 + - uid: 12206 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-8.5 + parent: 1 + - uid: 12207 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,29.5 + parent: 1 + - uid: 12210 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,7.5 + parent: 1 + - uid: 12211 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-0.5 + parent: 1 + - uid: 12212 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,43.5 + parent: 1 + - uid: 12213 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,46.5 + parent: 1 + - uid: 12220 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,43.5 + parent: 1 + - uid: 12225 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,8.5 + parent: 1 + - uid: 12226 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,12.5 + parent: 1 + - uid: 12227 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,14.5 + parent: 1 + - uid: 12232 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-1.5 + parent: 1 + - uid: 12241 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,41.5 + parent: 1 + - uid: 12243 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,55.5 + parent: 1 + - uid: 12245 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,20.5 + parent: 1 + - uid: 12248 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-19.5 + parent: 1 + - uid: 12250 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,46.5 + parent: 1 + - uid: 12251 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,48.5 + parent: 1 + - uid: 12252 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,5.5 + parent: 1 + - uid: 12263 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-9.5 + parent: 1 + - uid: 12266 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,9.5 + parent: 1 + - uid: 12267 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,39.5 + parent: 1 + - uid: 12268 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,17.5 + parent: 1 + - uid: 12269 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-5.5 + parent: 1 + - uid: 12271 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,63.5 + parent: 1 + - uid: 12275 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,60.5 + parent: 1 + - uid: 12276 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,12.5 + parent: 1 + - uid: 12277 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,16.5 + parent: 1 + - uid: 12278 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,16.5 + parent: 1 + - uid: 12279 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,28.5 + parent: 1 + - uid: 12286 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,10.5 + parent: 1 + - uid: 15289 + components: + - type: Transform + pos: -39.5,55.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 15242 + - 15243 + - uid: 15413 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -48.5,-10.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 12198 + - uid: 15414 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -54.5,-11.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 12198 +- proto: AltarSatana + entities: + - uid: 5706 + components: + - type: Transform + pos: 27.5,35.5 + parent: 1 +- proto: AltarSpawner + entities: + - uid: 1955 + components: + - type: Transform + pos: 12.5,-1.5 + parent: 1 +- proto: AmmoniaCanister + entities: + - uid: 13266 + components: + - type: Transform + pos: -23.5,-36.5 + parent: 1 +- proto: AnomalyScanner + entities: + - uid: 1166 + components: + - type: Transform + pos: 9.514987,5.6907277 + parent: 1 + - uid: 1563 + components: + - type: Transform + pos: 9.661754,5.507269 + parent: 1 +- proto: APCBasic + entities: + - uid: 2891 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,-16.5 + parent: 1 + - uid: 6229 + components: + - type: Transform + pos: 17.5,59.5 + parent: 1 + - uid: 6563 + components: + - type: Transform + pos: -3.5,49.5 + parent: 1 + - uid: 6569 + components: + - type: Transform + pos: 17.5,16.5 + parent: 1 + - uid: 6570 + components: + - type: Transform + pos: 9.5,30.5 + parent: 1 + - uid: 6571 + components: + - type: Transform + pos: 21.5,38.5 + parent: 1 + - uid: 6576 + components: + - type: Transform + pos: -24.5,50.5 + parent: 1 + - uid: 6577 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,45.5 + parent: 1 + - uid: 6578 + components: + - type: Transform + pos: -3.5,31.5 + parent: 1 + - uid: 6579 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,11.5 + parent: 1 + - uid: 6582 + components: + - type: Transform + pos: -24.5,36.5 + parent: 1 + - uid: 6600 + components: + - type: Transform + pos: -17.5,11.5 + parent: 1 + - uid: 6620 + components: + - type: Transform + pos: 24.5,58.5 + parent: 1 + - uid: 6632 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,31.5 + parent: 1 + - uid: 6688 + components: + - type: Transform + pos: 1.5,60.5 + parent: 1 + - uid: 6892 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-8.5 + parent: 1 + - uid: 6897 + components: + - type: Transform + pos: -25.5,45.5 + parent: 1 + - uid: 6906 + components: + - type: Transform + pos: 7.5,4.5 + parent: 1 + - uid: 6922 + components: + - type: Transform + pos: -18.5,-6.5 + parent: 1 + - uid: 7022 + components: + - type: Transform + pos: -35.5,-1.5 + parent: 1 + - uid: 7294 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,10.5 + parent: 1 + - uid: 7471 + components: + - type: Transform + pos: 43.5,14.5 + parent: 1 + - uid: 7527 + components: + - type: Transform + pos: -1.5,35.5 + parent: 1 + - uid: 8953 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,4.5 + parent: 1 + - uid: 9347 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,46.5 + parent: 1 + - uid: 14279 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,15.5 + parent: 1 + - uid: 14503 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,55.5 + parent: 1 + - uid: 14654 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,16.5 + parent: 1 + - uid: 15905 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,-20.5 + parent: 1 + - uid: 16040 + components: + - type: Transform + pos: -21.5,-21.5 + parent: 1 +- proto: APCElectronics + entities: + - uid: 2323 + components: + - type: Transform + pos: -31.52634,-10.333147 + parent: 1 + - uid: 2580 + components: + - type: Transform + pos: -31.514109,-10.504375 + parent: 1 +- proto: AppleSeeds + entities: + - uid: 6025 + components: + - type: Transform + pos: -50.62662,-6.393624 + parent: 1 + - uid: 6167 + components: + - type: Transform + pos: -50.62662,-6.393624 + parent: 1 +- proto: AtmosDeviceFanTiny + entities: + - uid: 948 + components: + - type: Transform + pos: 10.5,32.5 + parent: 1 + - uid: 949 + components: + - type: Transform + pos: 14.5,32.5 + parent: 1 + - uid: 2440 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,62.5 + parent: 1 + - uid: 3277 + components: + - type: Transform + pos: -0.5,-10.5 + parent: 1 + - uid: 10026 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,55.5 + parent: 1 + - uid: 10179 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,55.5 + parent: 1 + - uid: 10199 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,62.5 + parent: 1 + - uid: 15179 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -46.5,58.5 + parent: 1 + - uid: 15180 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -48.5,58.5 + parent: 1 + - uid: 16612 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,26.5 + parent: 1 + - uid: 16613 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,28.5 + parent: 1 +- proto: AtmosFixBlockerMarker + entities: + - uid: 5694 + components: + - type: Transform + pos: -4.5,-19.5 + parent: 1 + - uid: 5695 + components: + - type: Transform + pos: -4.5,-18.5 + parent: 1 + - uid: 5696 + components: + - type: Transform + pos: -4.5,-20.5 + parent: 1 + - uid: 5761 + components: + - type: Transform + pos: -2.5,-20.5 + parent: 1 + - uid: 5762 + components: + - type: Transform + pos: -2.5,-19.5 + parent: 1 + - uid: 5763 + components: + - type: Transform + pos: -2.5,-18.5 + parent: 1 + - uid: 5764 + components: + - type: Transform + pos: 1.5,-20.5 + parent: 1 + - uid: 5765 + components: + - type: Transform + pos: 1.5,-19.5 + parent: 1 + - uid: 5766 + components: + - type: Transform + pos: 1.5,-18.5 + parent: 1 + - uid: 5767 + components: + - type: Transform + pos: 3.5,-20.5 + parent: 1 + - uid: 5768 + components: + - type: Transform + pos: 3.5,-19.5 + parent: 1 + - uid: 5769 + components: + - type: Transform + pos: 3.5,-18.5 + parent: 1 +- proto: AtmosFixFreezerMarker + entities: + - uid: 86 + components: + - type: Transform + pos: 13.5,32.5 + parent: 1 + - uid: 191 + components: + - type: Transform + pos: 12.5,31.5 + parent: 1 + - uid: 463 + components: + - type: Transform + pos: 12.5,33.5 + parent: 1 + - uid: 467 + components: + - type: Transform + pos: 11.5,32.5 + parent: 1 + - uid: 485 + components: + - type: Transform + pos: 11.5,33.5 + parent: 1 + - uid: 493 + components: + - type: Transform + pos: 13.5,31.5 + parent: 1 + - uid: 1019 + components: + - type: Transform + pos: 13.5,33.5 + parent: 1 + - uid: 1039 + components: + - type: Transform + pos: 11.5,31.5 + parent: 1 + - uid: 1149 + components: + - type: Transform + pos: 12.5,32.5 + parent: 1 + - uid: 12901 + components: + - type: Transform + pos: -14.5,-32.5 + parent: 1 + - uid: 12902 + components: + - type: Transform + pos: -14.5,-33.5 + parent: 1 + - uid: 12906 + components: + - type: Transform + pos: -14.5,-34.5 + parent: 1 + - uid: 12907 + components: + - type: Transform + pos: -14.5,-35.5 + parent: 1 +- proto: AtmosFixNitrogenMarker + entities: + - uid: 5698 + components: + - type: Transform + pos: -6.5,-18.5 + parent: 1 + - uid: 5804 + components: + - type: Transform + pos: -6.5,-20.5 + parent: 1 + - uid: 5805 + components: + - type: Transform + pos: -6.5,-19.5 + parent: 1 +- proto: AtmosFixOxygenMarker + entities: + - uid: 5704 + components: + - type: Transform + pos: -8.5,-19.5 + parent: 1 + - uid: 5705 + components: + - type: Transform + pos: -8.5,-20.5 + parent: 1 + - uid: 5803 + components: + - type: Transform + pos: -8.5,-18.5 + parent: 1 +- proto: AtmosFixPlasmaMarker + entities: + - uid: 5699 + components: + - type: Transform + pos: -0.5,-20.5 + parent: 1 + - uid: 5700 + components: + - type: Transform + pos: -0.5,-19.5 + parent: 1 + - uid: 5701 + components: + - type: Transform + pos: -0.5,-18.5 + parent: 1 +- proto: Autolathe + entities: + - uid: 1403 + components: + - type: Transform + pos: 17.5,11.5 + parent: 1 + - uid: 1789 + components: + - type: Transform + pos: -13.5,-14.5 + parent: 1 + - uid: 3582 + components: + - type: Transform + pos: -26.5,33.5 + parent: 1 + - uid: 15655 + components: + - type: Transform + pos: -16.5,-41.5 + parent: 1 +- proto: BagpipeInstrument + entities: + - uid: 2240 + components: + - type: Transform + pos: -37.427406,11.668766 + parent: 1 +- proto: BananaPhoneInstrument + entities: + - uid: 2674 + components: + - type: Transform + pos: -38.98036,1.8115087 + parent: 1 + - uid: 14942 + components: + - type: Transform + pos: 29.78358,2.285744 + parent: 1 +- proto: BanjoInstrument + entities: + - uid: 2876 + components: + - type: Transform + pos: -37.66178,11.653141 + parent: 1 +- proto: BannerCargo + entities: + - uid: 587 + components: + - type: Transform + pos: -16.5,35.5 + parent: 1 + - uid: 836 + components: + - type: Transform + pos: -16.5,31.5 + parent: 1 +- proto: BannerEngineering + entities: + - uid: 2415 + components: + - type: Transform + pos: -17.5,-5.5 + parent: 1 + - uid: 2942 + components: + - type: Transform + pos: -17.5,-2.5 + parent: 1 +- proto: BannerNanotrasen + entities: + - uid: 1237 + components: + - type: Transform + pos: -11.5,16.5 + parent: 1 + - uid: 1238 + components: + - type: Transform + pos: -0.5,16.5 + parent: 1 +- proto: BannerRevolution + entities: + - uid: 6024 + components: + - type: Transform + pos: 22.5,66.5 + parent: 1 + - uid: 6302 + components: + - type: Transform + pos: 22.5,61.5 + parent: 1 +- proto: BannerScience + entities: + - uid: 1683 + components: + - type: Transform + pos: 3.5,14.5 + parent: 1 +- proto: BannerSecurity + entities: + - uid: 1642 + components: + - type: Transform + pos: -15.5,17.5 + parent: 1 + - uid: 1887 + components: + - type: Transform + pos: -15.5,11.5 + parent: 1 +- proto: BannerSyndicate + entities: + - uid: 2417 + components: + - type: Transform + pos: 19.5,-10.5 + parent: 1 +- proto: Barricade + entities: + - uid: 4192 + components: + - type: Transform + pos: 20.5,57.5 + parent: 1 + - uid: 4590 + components: + - type: Transform + pos: 18.5,7.5 + parent: 1 + - uid: 5628 + components: + - type: Transform + pos: 23.5,57.5 + parent: 1 + - uid: 6129 + components: + - type: Transform + pos: 7.5,59.5 + parent: 1 + - uid: 6209 + components: + - type: Transform + pos: -19.5,22.5 + parent: 1 + - uid: 6211 + components: + - type: Transform + pos: 17.5,7.5 + parent: 1 + - uid: 6222 + components: + - type: Transform + pos: -17.5,45.5 + parent: 1 + - uid: 6433 + components: + - type: Transform + pos: 25.5,61.5 + parent: 1 +- proto: BarSign + entities: + - uid: 525 + components: + - type: Transform + pos: -5.5,31.5 + parent: 1 +- proto: BaseComputer + entities: + - uid: 4580 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,16.5 + parent: 1 + - uid: 4591 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,15.5 + parent: 1 + - uid: 5259 + components: + - type: Transform + pos: 42.5,13.5 + parent: 1 + - uid: 5262 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,10.5 + parent: 1 + - uid: 8337 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,17.5 + parent: 1 + - uid: 15481 + components: + - type: Transform + pos: 37.5,13.5 + parent: 1 + - uid: 15482 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,10.5 + parent: 1 +- proto: BaseGasCondenser + entities: + - uid: 10367 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,45.5 + parent: 1 +- proto: Bed + entities: + - uid: 543 + components: + - type: Transform + pos: -27.5,13.5 + parent: 1 + - uid: 586 + components: + - type: Transform + pos: -11.5,11.5 + parent: 1 + - uid: 649 + components: + - type: Transform + pos: -11.5,30.5 + parent: 1 + - uid: 707 + components: + - type: Transform + pos: -28.5,31.5 + parent: 1 + - uid: 1358 + components: + - type: Transform + pos: -27.5,16.5 + parent: 1 + - uid: 1454 + components: + - type: Transform + pos: -27.5,7.5 + parent: 1 + - uid: 1470 + components: + - type: Transform + pos: -3.5,4.5 + parent: 1 + - uid: 1916 + components: + - type: Transform + pos: -27.5,19.5 + parent: 1 + - uid: 2013 + components: + - type: Transform + pos: 22.5,17.5 + parent: 1 + - uid: 2622 + components: + - type: Transform + pos: -38.5,14.5 + parent: 1 + - uid: 2688 + components: + - type: Transform + pos: -39.5,6.5 + parent: 1 + - uid: 2733 + components: + - type: Transform + pos: -36.5,1.5 + parent: 1 + - uid: 2877 + components: + - type: Transform + pos: 7.5,65.5 + parent: 1 + - uid: 3129 + components: + - type: Transform + pos: -16.5,-20.5 + parent: 1 + - uid: 3234 + components: + - type: Transform + pos: 11.5,-10.5 + parent: 1 + - uid: 3290 + components: + - type: Transform + pos: 7.5,61.5 + parent: 1 + - uid: 4780 + components: + - type: Transform + pos: -44.5,-2.5 + parent: 1 + - uid: 4781 + components: + - type: Transform + pos: -40.5,-2.5 + parent: 1 + - uid: 10366 + components: + - type: Transform + pos: 23.5,54.5 + parent: 1 +- proto: BedsheetBlack + entities: + - uid: 727 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,30.5 + parent: 1 + - uid: 2637 + components: + - type: Transform + pos: 11.5,-10.5 + parent: 1 +- proto: BedsheetBrown + entities: + - uid: 1265 + components: + - type: Transform + pos: -27.5,13.5 + parent: 1 + - uid: 1640 + components: + - type: Transform + pos: -27.5,16.5 + parent: 1 + - uid: 1831 + components: + - type: Transform + pos: -27.5,19.5 + parent: 1 + - uid: 4992 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,-2.5 + parent: 1 + - uid: 4993 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,-2.5 + parent: 1 +- proto: BedsheetCaptain + entities: + - uid: 1471 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,4.5 + parent: 1 +- proto: BedsheetCE + entities: + - uid: 2828 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-20.5 + parent: 1 +- proto: BedsheetClown + entities: + - uid: 2603 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,1.5 + parent: 1 +- proto: BedsheetCMO + entities: + - uid: 12293 + components: + - type: Transform + pos: 23.5,54.5 + parent: 1 +- proto: BedsheetGreen + entities: + - uid: 2803 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,65.5 + parent: 1 + - uid: 2862 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,61.5 + parent: 1 +- proto: BedsheetHOP + entities: + - uid: 233 + components: + - type: Transform + pos: -11.5,11.5 + parent: 1 +- proto: BedsheetHOS + entities: + - uid: 2046 + components: + - type: Transform + pos: -27.5,7.5 + parent: 1 +- proto: BedsheetMedical + entities: + - uid: 1860 + components: + - type: Transform + pos: 7.5,57.5 + parent: 1 + - uid: 3470 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,54.5 + parent: 1 + - uid: 3482 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,51.5 + parent: 1 +- proto: BedsheetMime + entities: + - uid: 2294 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,6.5 + parent: 1 +- proto: BedsheetQM + entities: + - uid: 678 + components: + - type: Transform + pos: -28.5,31.5 + parent: 1 +- proto: BedsheetRainbow + entities: + - uid: 2420 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,14.5 + parent: 1 +- proto: BedsheetRD + entities: + - uid: 2012 + components: + - type: Transform + pos: 22.5,17.5 + parent: 1 +- proto: BikeHorn + entities: + - uid: 2427 + components: + - type: Transform + pos: -38.683483,1.7333837 + parent: 1 + - uid: 14949 + components: + - type: Transform + pos: 16.714632,-12.608087 + parent: 1 +- proto: BikeHornImplanter + entities: + - uid: 13702 + components: + - type: Transform + pos: 16.4409,-12.75538 + parent: 1 +- proto: BiomassReclaimer + entities: + - uid: 2316 + components: + - type: Transform + pos: 29.5,42.5 + parent: 1 +- proto: BlackBishop + entities: + - uid: 14950 + components: + - type: Transform + pos: 16.398788,-12.3135 + parent: 1 +- proto: BlastDoor + entities: + - uid: 3643 + components: + - type: Transform + pos: -0.5,-10.5 + parent: 1 + - uid: 4395 + components: + - type: Transform + pos: 30.5,56.5 + parent: 1 + - uid: 15597 + components: + - type: Transform + pos: -10.5,-30.5 + parent: 1 + - uid: 15598 + components: + - type: Transform + pos: -10.5,-31.5 + parent: 1 + - uid: 15599 + components: + - type: Transform + pos: -10.5,-32.5 + parent: 1 +- proto: BlastDoorOpen + entities: + - uid: 15608 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,-43.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16292 + - uid: 15610 + components: + - type: Transform + pos: -36.5,-31.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16292 + - uid: 15616 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,-25.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16292 + - uid: 15641 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,-25.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16292 + - uid: 15671 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,-25.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16292 + - uid: 15692 + components: + - type: Transform + pos: -36.5,-32.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16292 + - uid: 15693 + components: + - type: Transform + pos: -36.5,-33.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16292 + - uid: 15694 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,-43.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16292 + - uid: 15695 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,-43.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16292 + - uid: 15696 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,-43.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16292 + - uid: 15697 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,-43.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16292 + - uid: 15698 + components: + - type: Transform + pos: -4.5,-32.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16292 + - uid: 15699 + components: + - type: Transform + pos: -4.5,-31.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16292 + - uid: 15700 + components: + - type: Transform + pos: -4.5,-30.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16292 + - uid: 16294 + components: + - type: Transform + pos: -12.5,-24.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16292 + - uid: 16295 + components: + - type: Transform + pos: -11.5,-24.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16292 +- proto: BlockGameArcade + entities: + - uid: 15343 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -46.5,-14.5 + parent: 1 + - type: SpamEmitSound + enabled: False + - uid: 15344 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -47.5,-14.5 + parent: 1 + - type: SpamEmitSound + enabled: False +- proto: BodyBagFolded + entities: + - uid: 2490 + components: + - type: Transform + pos: 27.954758,42.817913 + parent: 1 + - uid: 14968 + components: + - type: Transform + pos: 34.551575,62.66763 + parent: 1 +- proto: BodyScannerComputerCircuitboard + entities: + - uid: 4673 + components: + - type: Transform + pos: 33.564117,42.61809 + parent: 1 + - uid: 14969 + components: + - type: Transform + pos: 39.554832,52.50766 + parent: 1 +- proto: BookBartendersManual + entities: + - uid: 529 + components: + - type: Transform + pos: -7.490233,27.640135 + parent: 1 +- proto: BookNarsieLegend + entities: + - uid: 6070 + components: + - type: Transform + pos: 25.695305,35.57942 + parent: 1 + - uid: 6160 + components: + - type: Transform + pos: 25.46093,35.57942 + parent: 1 +- proto: BookRandom + entities: + - uid: 660 + components: + - type: Transform + pos: -21.518456,39.749603 + parent: 1 +- proto: BookRandomStory + entities: + - uid: 2907 + components: + - type: Transform + pos: 13.435645,-10.397179 + parent: 1 +- proto: BooksBag + entities: + - uid: 749 + components: + - type: Transform + pos: -25.410957,40.60898 + parent: 1 +- proto: BookSecurity + entities: + - uid: 12835 + components: + - type: Transform + pos: -36.50768,-3.3184621 + parent: 1 +- proto: BookshelfFilled + entities: + - uid: 138 + components: + - type: Transform + pos: -17.5,39.5 + parent: 1 + - uid: 219 + components: + - type: Transform + pos: -18.5,39.5 + parent: 1 + - uid: 381 + components: + - type: Transform + pos: -20.5,39.5 + parent: 1 + - uid: 1316 + components: + - type: Transform + pos: -19.5,39.5 + parent: 1 + - uid: 4097 + components: + - type: Transform + pos: -34.5,-6.5 + parent: 1 + - uid: 4371 + components: + - type: Transform + pos: 28.5,49.5 + parent: 1 + - uid: 4400 + components: + - type: Transform + pos: 26.5,49.5 + parent: 1 + - uid: 4401 + components: + - type: Transform + pos: 27.5,49.5 + parent: 1 + - uid: 4474 + components: + - type: Transform + pos: -34.5,-5.5 + parent: 1 +- proto: BoozeDispenser + entities: + - uid: 728 + components: + - type: Transform + pos: -6.5,30.5 + parent: 1 + - uid: 14972 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,31.5 + parent: 1 +- proto: BorgCharger + entities: + - uid: 4576 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,17.5 + parent: 1 + - uid: 5256 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,17.5 + parent: 1 + - uid: 15551 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,13.5 + parent: 1 + - uid: 15552 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,10.5 + parent: 1 +- proto: BowImprovised + entities: + - uid: 14975 + components: + - type: Transform + pos: 44.48636,18.478416 + parent: 1 +- proto: BoxBodyBag + entities: + - uid: 2147 + components: + - type: Transform + pos: 27.465534,42.683376 + parent: 1 +- proto: BoxFlashbang + entities: + - uid: 1783 + components: + - type: Transform + pos: -19.239115,7.4664936 + parent: 1 +- proto: BoxFolderBlack + entities: + - uid: 73 + components: + - type: Transform + pos: -8.052396,8.577361 + parent: 1 +- proto: BoxFolderGrey + entities: + - uid: 693 + components: + - type: Transform + pos: -29.208933,33.624283 + parent: 1 +- proto: BoxFolderYellow + entities: + - uid: 2615 + components: + - type: Transform + pos: -18.612078,-16.133543 + parent: 1 + - uid: 10055 + components: + - type: Transform + pos: -18.69872,26.827934 + parent: 1 +- proto: BoxHandcuff + entities: + - uid: 1863 + components: + - type: Transform + pos: -19.493143,7.651867 + parent: 1 +- proto: BoxingBell + entities: + - uid: 6235 + components: + - type: Transform + pos: 23.5,66.5 + parent: 1 +- proto: BoxLatexGloves + entities: + - uid: 2867 + components: + - type: Transform + pos: 12.560403,44.696266 + parent: 1 +- proto: BoxLethalshot + entities: + - uid: 1708 + components: + - type: Transform + pos: -24.511253,3.5544705 + parent: 1 + - uid: 1826 + components: + - type: Transform + pos: -24.456215,3.5177789 + parent: 1 +- proto: BoxLightMixed + entities: + - uid: 200 + components: + - type: Transform + pos: 13.484392,3.669313 + parent: 1 +- proto: BoxMouthSwab + entities: + - uid: 509 + components: + - type: Transform + pos: 12.51552,26.689241 + parent: 1 + - uid: 3305 + components: + - type: Transform + pos: 13.46606,64.712524 + parent: 1 +- proto: BoxMRE + entities: + - uid: 1536 + components: + - type: Transform + pos: 15.463879,21.751036 + parent: 1 + - uid: 1571 + components: + - type: Transform + pos: 15.573954,21.665422 + parent: 1 +- proto: BoxPerformer + entities: + - uid: 2552 + components: + - type: Transform + pos: -38.130764,11.724825 + parent: 1 +- proto: BoxSterileMask + entities: + - uid: 1083 + components: + - type: Transform + pos: 6.581379,43.656715 + parent: 1 +- proto: BoxSyringe + entities: + - uid: 3694 + components: + - type: Transform + pos: 14.5382185,48.593643 + parent: 1 +- proto: BoxZiptie + entities: + - uid: 1804 + components: + - type: Transform + pos: -18.963215,7.6206985 + parent: 1 + - uid: 4264 + components: + - type: Transform + parent: 4263 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: BrbSign + entities: + - uid: 987 + components: + - type: Transform + pos: -3.4378695,12.963345 + parent: 1 +- proto: BriefcaseSyndie + entities: + - uid: 6077 + components: + - type: Transform + parent: 6076 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: BrigTimer + entities: + - uid: 108 + components: + - type: Transform + pos: -26.5,12.5 + parent: 1 + - uid: 230 + components: + - type: Transform + pos: -26.5,18.5 + parent: 1 + - uid: 1178 + components: + - type: Transform + pos: -26.5,15.5 + parent: 1 +- proto: Brutepack + entities: + - uid: 3159 + components: + - type: Transform + pos: 8.510118,51.68634 + parent: 1 +- proto: Bucket + entities: + - uid: 4692 + components: + - type: Transform + pos: 21.744858,24.390043 + parent: 1 +- proto: ButchCleaver + entities: + - uid: 14987 + components: + - type: Transform + pos: 29.511734,2.6415787 + parent: 1 +- proto: ButtonFrameCaution + entities: + - uid: 16290 + components: + - type: Transform + pos: -20.515276,-22.153706 + parent: 1 + - uid: 16291 + components: + - type: Transform + pos: -19.528513,-22.143335 + parent: 1 +- proto: CableApcExtension + entities: + - uid: 145 + components: + - type: Transform + pos: 36.5,14.5 + parent: 1 + - uid: 175 + components: + - type: Transform + pos: 35.5,33.5 + parent: 1 + - uid: 309 + components: + - type: Transform + pos: 35.5,16.5 + parent: 1 + - uid: 335 + components: + - type: Transform + pos: -3.5,17.5 + parent: 1 + - uid: 394 + components: + - type: Transform + pos: 15.5,47.5 + parent: 1 + - uid: 421 + components: + - type: Transform + pos: 16.5,47.5 + parent: 1 + - uid: 462 + components: + - type: Transform + pos: -12.5,55.5 + parent: 1 + - uid: 533 + components: + - type: Transform + pos: -3.5,49.5 + parent: 1 + - uid: 718 + components: + - type: Transform + pos: -3.5,25.5 + parent: 1 + - uid: 869 + components: + - type: Transform + pos: -6.5,17.5 + parent: 1 + - uid: 941 + components: + - type: Transform + pos: -4.5,17.5 + parent: 1 + - uid: 1966 + components: + - type: Transform + pos: -6.5,-11.5 + parent: 1 + - uid: 2673 + components: + - type: Transform + pos: 2.5,-23.5 + parent: 1 + - uid: 2946 + components: + - type: Transform + pos: -15.5,-20.5 + parent: 1 + - uid: 3732 + components: + - type: Transform + pos: 1.5,-23.5 + parent: 1 + - uid: 3945 + components: + - type: Transform + pos: 0.5,-23.5 + parent: 1 + - uid: 3970 + components: + - type: Transform + pos: -50.5,-8.5 + parent: 1 + - uid: 4023 + components: + - type: Transform + pos: -50.5,-9.5 + parent: 1 + - uid: 4040 + components: + - type: Transform + pos: -50.5,-10.5 + parent: 1 + - uid: 4043 + components: + - type: Transform + pos: -50.5,-11.5 + parent: 1 + - uid: 4700 + components: + - type: Transform + pos: -21.5,-21.5 + parent: 1 + - uid: 4918 + components: + - type: Transform + pos: 18.5,66.5 + parent: 1 + - uid: 4970 + components: + - type: Transform + pos: 9.5,-30.5 + parent: 1 + - uid: 4971 + components: + - type: Transform + pos: -47.5,-5.5 + parent: 1 + - uid: 4986 + components: + - type: Transform + pos: -47.5,-4.5 + parent: 1 + - uid: 5036 + components: + - type: Transform + pos: -47.5,-6.5 + parent: 1 + - uid: 5529 + components: + - type: Transform + pos: 17.5,66.5 + parent: 1 + - uid: 5715 + components: + - type: Transform + pos: -24.5,-27.5 + parent: 1 + - uid: 5801 + components: + - type: Transform + pos: 20.5,66.5 + parent: 1 + - uid: 5919 + components: + - type: Transform + pos: 17.5,59.5 + parent: 1 + - uid: 5946 + components: + - type: Transform + pos: 19.5,66.5 + parent: 1 + - uid: 5972 + components: + - type: Transform + pos: 17.5,63.5 + parent: 1 + - uid: 5973 + components: + - type: Transform + pos: 17.5,62.5 + parent: 1 + - uid: 6015 + components: + - type: Transform + pos: 17.5,64.5 + parent: 1 + - uid: 6018 + components: + - type: Transform + pos: 21.5,66.5 + parent: 1 + - uid: 6053 + components: + - type: Transform + pos: -8.5,-24.5 + parent: 1 + - uid: 6200 + components: + - type: Transform + pos: 21.5,61.5 + parent: 1 + - uid: 6201 + components: + - type: Transform + pos: 17.5,61.5 + parent: 1 + - uid: 6206 + components: + - type: Transform + pos: 20.5,61.5 + parent: 1 + - uid: 6345 + components: + - type: Transform + pos: 17.5,65.5 + parent: 1 + - uid: 6381 + components: + - type: Transform + pos: 19.5,61.5 + parent: 1 + - uid: 6422 + components: + - type: Transform + pos: 18.5,61.5 + parent: 1 + - uid: 6425 + components: + - type: Transform + pos: 18.5,60.5 + parent: 1 + - uid: 6426 + components: + - type: Transform + pos: 18.5,59.5 + parent: 1 + - uid: 6615 + components: + - type: Transform + pos: -8.5,29.5 + parent: 1 + - uid: 6616 + components: + - type: Transform + pos: -4.5,43.5 + parent: 1 + - uid: 6617 + components: + - type: Transform + pos: -4.5,49.5 + parent: 1 + - uid: 6687 + components: + - type: Transform + pos: -4.5,48.5 + parent: 1 + - uid: 6690 + components: + - type: Transform + pos: -39.5,-12.5 + parent: 1 + - uid: 6699 + components: + - type: Transform + pos: 1.5,-1.5 + parent: 1 + - uid: 6746 + components: + - type: Transform + pos: -4.5,46.5 + parent: 1 + - uid: 6757 + components: + - type: Transform + pos: -24.5,35.5 + parent: 1 + - uid: 6858 + components: + - type: Transform + pos: -1.5,14.5 + parent: 1 + - uid: 6868 + components: + - type: Transform + pos: -11.5,42.5 + parent: 1 + - uid: 6894 + components: + - type: Transform + pos: -17.5,29.5 + parent: 1 + - uid: 6904 + components: + - type: Transform + pos: -8.5,48.5 + parent: 1 + - uid: 6905 + components: + - type: Transform + pos: -10.5,48.5 + parent: 1 + - uid: 6914 + components: + - type: Transform + pos: -7.5,48.5 + parent: 1 + - uid: 6942 + components: + - type: Transform + pos: -18.5,25.5 + parent: 1 + - uid: 6973 + components: + - type: Transform + pos: -20.5,28.5 + parent: 1 + - uid: 6981 + components: + - type: Transform + pos: -9.5,29.5 + parent: 1 + - uid: 7015 + components: + - type: Transform + pos: -42.5,-11.5 + parent: 1 + - uid: 7016 + components: + - type: Transform + pos: -36.5,-7.5 + parent: 1 + - uid: 7017 + components: + - type: Transform + pos: -23.5,27.5 + parent: 1 + - uid: 7025 + components: + - type: Transform + pos: -17.5,25.5 + parent: 1 + - uid: 7027 + components: + - type: Transform + pos: -24.5,33.5 + parent: 1 + - uid: 7028 + components: + - type: Transform + pos: -24.5,32.5 + parent: 1 + - uid: 7114 + components: + - type: Transform + pos: -24.5,30.5 + parent: 1 + - uid: 7141 + components: + - type: Transform + pos: -24.5,36.5 + parent: 1 + - uid: 7143 + components: + - type: Transform + pos: -35.5,-8.5 + parent: 1 + - uid: 7158 + components: + - type: Transform + pos: -35.5,-1.5 + parent: 1 + - uid: 7174 + components: + - type: Transform + pos: -10.5,13.5 + parent: 1 + - uid: 7177 + components: + - type: Transform + pos: -22.5,27.5 + parent: 1 + - uid: 7178 + components: + - type: Transform + pos: 0.5,9.5 + parent: 1 + - uid: 7179 + components: + - type: Transform + pos: -24.5,34.5 + parent: 1 + - uid: 7180 + components: + - type: Transform + pos: -20.5,27.5 + parent: 1 + - uid: 7211 + components: + - type: Transform + pos: 1.5,4.5 + parent: 1 + - uid: 7212 + components: + - type: Transform + pos: -2.5,38.5 + parent: 1 + - uid: 7237 + components: + - type: Transform + pos: -10.5,15.5 + parent: 1 + - uid: 7253 + components: + - type: Transform + pos: -7.5,29.5 + parent: 1 + - uid: 7254 + components: + - type: Transform + pos: -20.5,29.5 + parent: 1 + - uid: 7261 + components: + - type: Transform + pos: -30.5,27.5 + parent: 1 + - uid: 7262 + components: + - type: Transform + pos: -29.5,27.5 + parent: 1 + - uid: 7263 + components: + - type: Transform + pos: -27.5,27.5 + parent: 1 + - uid: 7264 + components: + - type: Transform + pos: -28.5,27.5 + parent: 1 + - uid: 7270 + components: + - type: Transform + pos: -24.5,29.5 + parent: 1 + - uid: 7271 + components: + - type: Transform + pos: -5.5,29.5 + parent: 1 + - uid: 7272 + components: + - type: Transform + pos: -9.5,48.5 + parent: 1 + - uid: 7277 + components: + - type: Transform + pos: -44.5,-7.5 + parent: 1 + - uid: 7285 + components: + - type: Transform + pos: -11.5,50.5 + parent: 1 + - uid: 7286 + components: + - type: Transform + pos: -11.5,49.5 + parent: 1 + - uid: 7292 + components: + - type: Transform + pos: -6.5,29.5 + parent: 1 + - uid: 7297 + components: + - type: Transform + pos: -8.5,3.5 + parent: 1 + - uid: 7298 + components: + - type: Transform + pos: -9.5,3.5 + parent: 1 + - uid: 7299 + components: + - type: Transform + pos: -9.5,11.5 + parent: 1 + - uid: 7300 + components: + - type: Transform + pos: -35.5,-2.5 + parent: 1 + - uid: 7301 + components: + - type: Transform + pos: -2.5,37.5 + parent: 1 + - uid: 7302 + components: + - type: Transform + pos: -38.5,-2.5 + parent: 1 + - uid: 7305 + components: + - type: Transform + pos: -3.5,30.5 + parent: 1 + - uid: 7306 + components: + - type: Transform + pos: -3.5,31.5 + parent: 1 + - uid: 7307 + components: + - type: Transform + pos: -1.5,35.5 + parent: 1 + - uid: 7308 + components: + - type: Transform + pos: -2.5,35.5 + parent: 1 + - uid: 7309 + components: + - type: Transform + pos: -2.5,36.5 + parent: 1 + - uid: 7310 + components: + - type: Transform + pos: -41.5,-12.5 + parent: 1 + - uid: 7311 + components: + - type: Transform + pos: -35.5,-4.5 + parent: 1 + - uid: 7312 + components: + - type: Transform + pos: 1.5,3.5 + parent: 1 + - uid: 7313 + components: + - type: Transform + pos: -36.5,-12.5 + parent: 1 + - uid: 7328 + components: + - type: Transform + pos: -11.5,40.5 + parent: 1 + - uid: 7329 + components: + - type: Transform + pos: -11.5,47.5 + parent: 1 + - uid: 7330 + components: + - type: Transform + pos: 1.5,-4.5 + parent: 1 + - uid: 7337 + components: + - type: Transform + pos: 1.5,5.5 + parent: 1 + - uid: 7338 + components: + - type: Transform + pos: -6.5,48.5 + parent: 1 + - uid: 7339 + components: + - type: Transform + pos: -3.5,29.5 + parent: 1 + - uid: 7342 + components: + - type: Transform + pos: -1.5,12.5 + parent: 1 + - uid: 7343 + components: + - type: Transform + pos: -2.5,12.5 + parent: 1 + - uid: 7369 + components: + - type: Transform + pos: 2.5,-5.5 + parent: 1 + - uid: 7372 + components: + - type: Transform + pos: -19.5,25.5 + parent: 1 + - uid: 7373 + components: + - type: Transform + pos: -20.5,25.5 + parent: 1 + - uid: 7374 + components: + - type: Transform + pos: -20.5,26.5 + parent: 1 + - uid: 7375 + components: + - type: Transform + pos: -38.5,-5.5 + parent: 1 + - uid: 7376 + components: + - type: Transform + pos: -10.5,11.5 + parent: 1 + - uid: 7377 + components: + - type: Transform + pos: 1.5,1.5 + parent: 1 + - uid: 7378 + components: + - type: Transform + pos: 1.5,2.5 + parent: 1 + - uid: 7379 + components: + - type: Transform + pos: -36.5,-11.5 + parent: 1 + - uid: 7380 + components: + - type: Transform + pos: -30.5,34.5 + parent: 1 + - uid: 7381 + components: + - type: Transform + pos: -30.5,33.5 + parent: 1 + - uid: 7382 + components: + - type: Transform + pos: -30.5,32.5 + parent: 1 + - uid: 7383 + components: + - type: Transform + pos: -29.5,32.5 + parent: 1 + - uid: 7384 + components: + - type: Transform + pos: -28.5,32.5 + parent: 1 + - uid: 7385 + components: + - type: Transform + pos: -27.5,32.5 + parent: 1 + - uid: 7386 + components: + - type: Transform + pos: -10.5,4.5 + parent: 1 + - uid: 7387 + components: + - type: Transform + pos: -18.5,29.5 + parent: 1 + - uid: 7388 + components: + - type: Transform + pos: -19.5,29.5 + parent: 1 + - uid: 7390 + components: + - type: Transform + pos: -11.5,39.5 + parent: 1 + - uid: 7409 + components: + - type: Transform + pos: -18.5,34.5 + parent: 1 + - uid: 7410 + components: + - type: Transform + pos: -19.5,34.5 + parent: 1 + - uid: 7411 + components: + - type: Transform + pos: -20.5,34.5 + parent: 1 + - uid: 7412 + components: + - type: Transform + pos: -20.5,33.5 + parent: 1 + - uid: 7413 + components: + - type: Transform + pos: -20.5,32.5 + parent: 1 + - uid: 7414 + components: + - type: Transform + pos: -21.5,32.5 + parent: 1 + - uid: 7415 + components: + - type: Transform + pos: -22.5,32.5 + parent: 1 + - uid: 7416 + components: + - type: Transform + pos: -23.5,32.5 + parent: 1 + - uid: 7417 + components: + - type: Transform + pos: -4.5,29.5 + parent: 1 + - uid: 7418 + components: + - type: Transform + pos: -4.5,42.5 + parent: 1 + - uid: 7422 + components: + - type: Transform + pos: -35.5,-3.5 + parent: 1 + - uid: 7423 + components: + - type: Transform + pos: -6.5,7.5 + parent: 1 + - uid: 7424 + components: + - type: Transform + pos: -41.5,-11.5 + parent: 1 + - uid: 7425 + components: + - type: Transform + pos: -39.5,-11.5 + parent: 1 + - uid: 7426 + components: + - type: Transform + pos: -10.5,14.5 + parent: 1 + - uid: 7427 + components: + - type: Transform + pos: -21.5,27.5 + parent: 1 + - uid: 7428 + components: + - type: Transform + pos: -26.5,32.5 + parent: 1 + - uid: 7429 + components: + - type: Transform + pos: 1.5,0.5 + parent: 1 + - uid: 7430 + components: + - type: Transform + pos: 2.5,-2.5 + parent: 1 + - uid: 7434 + components: + - type: Transform + pos: -10.5,27.5 + parent: 1 + - uid: 7435 + components: + - type: Transform + pos: -10.5,33.5 + parent: 1 + - uid: 7436 + components: + - type: Transform + pos: -9.5,33.5 + parent: 1 + - uid: 7437 + components: + - type: Transform + pos: -24.5,31.5 + parent: 1 + - uid: 7438 + components: + - type: Transform + pos: -40.5,-11.5 + parent: 1 + - uid: 7439 + components: + - type: Transform + pos: -8.5,9.5 + parent: 1 + - uid: 7440 + components: + - type: Transform + pos: -7.5,9.5 + parent: 1 + - uid: 7441 + components: + - type: Transform + pos: -25.5,32.5 + parent: 1 + - uid: 7442 + components: + - type: Transform + pos: -44.5,-2.5 + parent: 1 + - uid: 7443 + components: + - type: Transform + pos: -38.5,-6.5 + parent: 1 + - uid: 7444 + components: + - type: Transform + pos: -37.5,-11.5 + parent: 1 + - uid: 7447 + components: + - type: Transform + pos: -38.5,-4.5 + parent: 1 + - uid: 7448 + components: + - type: Transform + pos: -40.5,-12.5 + parent: 1 + - uid: 7449 + components: + - type: Transform + pos: -4.5,50.5 + parent: 1 + - uid: 7450 + components: + - type: Transform + pos: -11.5,41.5 + parent: 1 + - uid: 7451 + components: + - type: Transform + pos: -11.5,43.5 + parent: 1 + - uid: 7453 + components: + - type: Transform + pos: -4.5,47.5 + parent: 1 + - uid: 7454 + components: + - type: Transform + pos: -4.5,36.5 + parent: 1 + - uid: 7455 + components: + - type: Transform + pos: -4.5,37.5 + parent: 1 + - uid: 7456 + components: + - type: Transform + pos: -4.5,38.5 + parent: 1 + - uid: 7457 + components: + - type: Transform + pos: -11.5,36.5 + parent: 1 + - uid: 7460 + components: + - type: Transform + pos: -11.5,37.5 + parent: 1 + - uid: 7461 + components: + - type: Transform + pos: -11.5,38.5 + parent: 1 + - uid: 7466 + components: + - type: Transform + pos: -37.5,-12.5 + parent: 1 + - uid: 7467 + components: + - type: Transform + pos: -24.5,28.5 + parent: 1 + - uid: 7468 + components: + - type: Transform + pos: -24.5,27.5 + parent: 1 + - uid: 7469 + components: + - type: Transform + pos: -25.5,27.5 + parent: 1 + - uid: 7470 + components: + - type: Transform + pos: -26.5,27.5 + parent: 1 + - uid: 7489 + components: + - type: Transform + pos: -8.5,15.5 + parent: 1 + - uid: 7490 + components: + - type: Transform + pos: -1.5,11.5 + parent: 1 + - uid: 7491 + components: + - type: Transform + pos: -1.5,10.5 + parent: 1 + - uid: 7492 + components: + - type: Transform + pos: -6.5,3.5 + parent: 1 + - uid: 7493 + components: + - type: Transform + pos: -27.5,14.5 + parent: 1 + - uid: 7494 + components: + - type: Transform + pos: -37.5,-7.5 + parent: 1 + - uid: 7495 + components: + - type: Transform + pos: -10.5,12.5 + parent: 1 + - uid: 7496 + components: + - type: Transform + pos: -38.5,-3.5 + parent: 1 + - uid: 7497 + components: + - type: Transform + pos: -38.5,-12.5 + parent: 1 + - uid: 7498 + components: + - type: Transform + pos: -5.5,3.5 + parent: 1 + - uid: 7500 + components: + - type: Transform + pos: -4.5,44.5 + parent: 1 + - uid: 7501 + components: + - type: Transform + pos: -4.5,45.5 + parent: 1 + - uid: 7502 + components: + - type: Transform + pos: -4.5,40.5 + parent: 1 + - uid: 7503 + components: + - type: Transform + pos: -4.5,41.5 + parent: 1 + - uid: 7504 + components: + - type: Transform + pos: -5.5,48.5 + parent: 1 + - uid: 7505 + components: + - type: Transform + pos: -4.5,39.5 + parent: 1 + - uid: 7507 + components: + - type: Transform + pos: -1.5,33.5 + parent: 1 + - uid: 7508 + components: + - type: Transform + pos: -1.5,34.5 + parent: 1 + - uid: 7509 + components: + - type: Transform + pos: -10.5,28.5 + parent: 1 + - uid: 7510 + components: + - type: Transform + pos: -10.5,29.5 + parent: 1 + - uid: 7511 + components: + - type: Transform + pos: -2.5,33.5 + parent: 1 + - uid: 7512 + components: + - type: Transform + pos: -3.5,33.5 + parent: 1 + - uid: 7513 + components: + - type: Transform + pos: -4.5,33.5 + parent: 1 + - uid: 7514 + components: + - type: Transform + pos: -5.5,33.5 + parent: 1 + - uid: 7515 + components: + - type: Transform + pos: -6.5,33.5 + parent: 1 + - uid: 7516 + components: + - type: Transform + pos: -7.5,33.5 + parent: 1 + - uid: 7517 + components: + - type: Transform + pos: -8.5,33.5 + parent: 1 + - uid: 7518 + components: + - type: Transform + pos: -11.5,44.5 + parent: 1 + - uid: 7519 + components: + - type: Transform + pos: -11.5,45.5 + parent: 1 + - uid: 7520 + components: + - type: Transform + pos: -1.5,35.5 + parent: 1 + - uid: 7523 + components: + - type: Transform + pos: -11.5,48.5 + parent: 1 + - uid: 7524 + components: + - type: Transform + pos: -11.5,46.5 + parent: 1 + - uid: 7528 + components: + - type: Transform + pos: -11.5,33.5 + parent: 1 + - uid: 7529 + components: + - type: Transform + pos: -4.5,15.5 + parent: 1 + - uid: 7530 + components: + - type: Transform + pos: 1.5,6.5 + parent: 1 + - uid: 7531 + components: + - type: Transform + pos: -7.5,11.5 + parent: 1 + - uid: 7532 + components: + - type: Transform + pos: 1.5,8.5 + parent: 1 + - uid: 7533 + components: + - type: Transform + pos: -42.5,-2.5 + parent: 1 + - uid: 7534 + components: + - type: Transform + pos: -5.5,11.5 + parent: 1 + - uid: 7535 + components: + - type: Transform + pos: -4.5,8.5 + parent: 1 + - uid: 7536 + components: + - type: Transform + pos: -3.5,8.5 + parent: 1 + - uid: 7537 + components: + - type: Transform + pos: -10.5,3.5 + parent: 1 + - uid: 7538 + components: + - type: Transform + pos: -27.5,17.5 + parent: 1 + - uid: 7539 + components: + - type: Transform + pos: -9.5,9.5 + parent: 1 + - uid: 7540 + components: + - type: Transform + pos: -10.5,9.5 + parent: 1 + - uid: 7541 + components: + - type: Transform + pos: -1.5,13.5 + parent: 1 + - uid: 7542 + components: + - type: Transform + pos: -35.5,-7.5 + parent: 1 + - uid: 7543 + components: + - type: Transform + pos: -38.5,-10.5 + parent: 1 + - uid: 7544 + components: + - type: Transform + pos: -39.5,-10.5 + parent: 1 + - uid: 7545 + components: + - type: Transform + pos: -7.5,4.5 + parent: 1 + - uid: 7546 + components: + - type: Transform + pos: 0.5,-4.5 + parent: 1 + - uid: 7547 + components: + - type: Transform + pos: -0.5,-4.5 + parent: 1 + - uid: 7548 + components: + - type: Transform + pos: -35.5,-6.5 + parent: 1 + - uid: 7549 + components: + - type: Transform + pos: -37.5,-10.5 + parent: 1 + - uid: 7550 + components: + - type: Transform + pos: -35.5,-9.5 + parent: 1 + - uid: 7551 + components: + - type: Transform + pos: -6.5,4.5 + parent: 1 + - uid: 7552 + components: + - type: Transform + pos: -42.5,-3.5 + parent: 1 + - uid: 7553 + components: + - type: Transform + pos: -35.5,-10.5 + parent: 1 + - uid: 7554 + components: + - type: Transform + pos: -36.5,-10.5 + parent: 1 + - uid: 7555 + components: + - type: Transform + pos: -5.5,38.5 + parent: 1 + - uid: 7556 + components: + - type: Transform + pos: -7.5,38.5 + parent: 1 + - uid: 7557 + components: + - type: Transform + pos: -6.5,38.5 + parent: 1 + - uid: 7558 + components: + - type: Transform + pos: -8.5,38.5 + parent: 1 + - uid: 7559 + components: + - type: Transform + pos: -9.5,38.5 + parent: 1 + - uid: 7560 + components: + - type: Transform + pos: -10.5,38.5 + parent: 1 + - uid: 7561 + components: + - type: Transform + pos: -40.5,-2.5 + parent: 1 + - uid: 7562 + components: + - type: Transform + pos: -39.5,-2.5 + parent: 1 + - uid: 7563 + components: + - type: Transform + pos: -6.5,9.5 + parent: 1 + - uid: 7564 + components: + - type: Transform + pos: 3.5,-5.5 + parent: 1 + - uid: 7565 + components: + - type: Transform + pos: -43.5,-10.5 + parent: 1 + - uid: 7566 + components: + - type: Transform + pos: -38.5,-11.5 + parent: 1 + - uid: 7567 + components: + - type: Transform + pos: 1.5,-0.5 + parent: 1 + - uid: 7568 + components: + - type: Transform + pos: -2.5,8.5 + parent: 1 + - uid: 7569 + components: + - type: Transform + pos: -42.5,-10.5 + parent: 1 + - uid: 7570 + components: + - type: Transform + pos: -41.5,-10.5 + parent: 1 + - uid: 7571 + components: + - type: Transform + pos: -7.5,15.5 + parent: 1 + - uid: 7572 + components: + - type: Transform + pos: -4.5,11.5 + parent: 1 + - uid: 7573 + components: + - type: Transform + pos: -3.5,11.5 + parent: 1 + - uid: 7574 + components: + - type: Transform + pos: -1.5,9.5 + parent: 1 + - uid: 7575 + components: + - type: Transform + pos: -0.5,9.5 + parent: 1 + - uid: 7576 + components: + - type: Transform + pos: -5.5,15.5 + parent: 1 + - uid: 7577 + components: + - type: Transform + pos: -6.5,6.5 + parent: 1 + - uid: 7578 + components: + - type: Transform + pos: -6.5,5.5 + parent: 1 + - uid: 7579 + components: + - type: Transform + pos: -42.5,-4.5 + parent: 1 + - uid: 7580 + components: + - type: Transform + pos: -42.5,-5.5 + parent: 1 + - uid: 7581 + components: + - type: Transform + pos: -1.5,8.5 + parent: 1 + - uid: 7582 + components: + - type: Transform + pos: 1.5,9.5 + parent: 1 + - uid: 7583 + components: + - type: Transform + pos: -38.5,-7.5 + parent: 1 + - uid: 7584 + components: + - type: Transform + pos: -39.5,-7.5 + parent: 1 + - uid: 7585 + components: + - type: Transform + pos: -6.5,8.5 + parent: 1 + - uid: 7586 + components: + - type: Transform + pos: -5.5,8.5 + parent: 1 + - uid: 7587 + components: + - type: Transform + pos: -35.5,-11.5 + parent: 1 + - uid: 7588 + components: + - type: Transform + pos: -35.5,-5.5 + parent: 1 + - uid: 7589 + components: + - type: Transform + pos: -8.5,11.5 + parent: 1 + - uid: 7590 + components: + - type: Transform + pos: -3.5,15.5 + parent: 1 + - uid: 7591 + components: + - type: Transform + pos: -4.5,13.5 + parent: 1 + - uid: 7592 + components: + - type: Transform + pos: -6.5,11.5 + parent: 1 + - uid: 7593 + components: + - type: Transform + pos: -11.5,9.5 + parent: 1 + - uid: 7594 + components: + - type: Transform + pos: -7.5,3.5 + parent: 1 + - uid: 7595 + components: + - type: Transform + pos: 1.5,-2.5 + parent: 1 + - uid: 7596 + components: + - type: Transform + pos: -3.5,12.5 + parent: 1 + - uid: 7597 + components: + - type: Transform + pos: -8.5,4.5 + parent: 1 + - uid: 7598 + components: + - type: Transform + pos: -9.5,4.5 + parent: 1 + - uid: 7599 + components: + - type: Transform + pos: -35.5,-12.5 + parent: 1 + - uid: 7600 + components: + - type: Transform + pos: -4.5,14.5 + parent: 1 + - uid: 7601 + components: + - type: Transform + pos: -43.5,-2.5 + parent: 1 + - uid: 7602 + components: + - type: Transform + pos: -44.5,-6.5 + parent: 1 + - uid: 7603 + components: + - type: Transform + pos: -44.5,-5.5 + parent: 1 + - uid: 7604 + components: + - type: Transform + pos: -43.5,-7.5 + parent: 1 + - uid: 7605 + components: + - type: Transform + pos: -42.5,-7.5 + parent: 1 + - uid: 7606 + components: + - type: Transform + pos: -41.5,-7.5 + parent: 1 + - uid: 7607 + components: + - type: Transform + pos: -40.5,-7.5 + parent: 1 + - uid: 7608 + components: + - type: Transform + pos: -6.5,15.5 + parent: 1 + - uid: 7609 + components: + - type: Transform + pos: 2.5,-3.5 + parent: 1 + - uid: 7610 + components: + - type: Transform + pos: 2.5,-4.5 + parent: 1 + - uid: 7611 + components: + - type: Transform + pos: -40.5,-10.5 + parent: 1 + - uid: 7612 + components: + - type: Transform + pos: -43.5,-11.5 + parent: 1 + - uid: 7613 + components: + - type: Transform + pos: -43.5,-12.5 + parent: 1 + - uid: 7614 + components: + - type: Transform + pos: -42.5,-12.5 + parent: 1 + - uid: 7615 + components: + - type: Transform + pos: -44.5,-8.5 + parent: 1 + - uid: 7616 + components: + - type: Transform + pos: -44.5,-9.5 + parent: 1 + - uid: 7617 + components: + - type: Transform + pos: -42.5,-6.5 + parent: 1 + - uid: 7619 + components: + - type: Transform + pos: 1.5,7.5 + parent: 1 + - uid: 7620 + components: + - type: Transform + pos: -1.5,15.5 + parent: 1 + - uid: 7621 + components: + - type: Transform + pos: -25.5,17.5 + parent: 1 + - uid: 7622 + components: + - type: Transform + pos: -30.5,10.5 + parent: 1 + - uid: 7623 + components: + - type: Transform + pos: -30.5,9.5 + parent: 1 + - uid: 7624 + components: + - type: Transform + pos: -28.5,9.5 + parent: 1 + - uid: 7625 + components: + - type: Transform + pos: -1.5,4.5 + parent: 1 + - uid: 7626 + components: + - type: Transform + pos: -19.5,-2.5 + parent: 1 + - uid: 7627 + components: + - type: Transform + pos: -20.5,-2.5 + parent: 1 + - uid: 7628 + components: + - type: Transform + pos: -35.5,8.5 + parent: 1 + - uid: 7629 + components: + - type: Transform + pos: -34.5,9.5 + parent: 1 + - uid: 7630 + components: + - type: Transform + pos: -8.5,-11.5 + parent: 1 + - uid: 7631 + components: + - type: Transform + pos: 12.5,-1.5 + parent: 1 + - uid: 7632 + components: + - type: Transform + pos: 12.5,-2.5 + parent: 1 + - uid: 7633 + components: + - type: Transform + pos: -8.5,-7.5 + parent: 1 + - uid: 7634 + components: + - type: Transform + pos: -7.5,-7.5 + parent: 1 + - uid: 7637 + components: + - type: Transform + pos: 12.5,49.5 + parent: 1 + - uid: 7638 + components: + - type: Transform + pos: -31.5,26.5 + parent: 1 + - uid: 7639 + components: + - type: Transform + pos: -29.5,6.5 + parent: 1 + - uid: 7640 + components: + - type: Transform + pos: -14.5,-6.5 + parent: 1 + - uid: 7641 + components: + - type: Transform + pos: -14.5,20.5 + parent: 1 + - uid: 7642 + components: + - type: Transform + pos: -27.5,-15.5 + parent: 1 + - uid: 7643 + components: + - type: Transform + pos: -6.5,-4.5 + parent: 1 + - uid: 7644 + components: + - type: Transform + pos: -6.5,-5.5 + parent: 1 + - uid: 7645 + components: + - type: Transform + pos: -6.5,-6.5 + parent: 1 + - uid: 7646 + components: + - type: Transform + pos: -6.5,-7.5 + parent: 1 + - uid: 7647 + components: + - type: Transform + pos: -21.5,15.5 + parent: 1 + - uid: 7648 + components: + - type: Transform + pos: -23.5,15.5 + parent: 1 + - uid: 7649 + components: + - type: Transform + pos: -17.5,20.5 + parent: 1 + - uid: 7650 + components: + - type: Transform + pos: -6.5,-2.5 + parent: 1 + - uid: 7651 + components: + - type: Transform + pos: -16.5,-20.5 + parent: 1 + - uid: 7652 + components: + - type: Transform + pos: -17.5,-20.5 + parent: 1 + - uid: 7653 + components: + - type: Transform + pos: -18.5,-20.5 + parent: 1 + - uid: 7654 + components: + - type: Transform + pos: 6.5,35.5 + parent: 1 + - uid: 7655 + components: + - type: Transform + pos: 0.5,-10.5 + parent: 1 + - uid: 7656 + components: + - type: Transform + pos: 0.5,-11.5 + parent: 1 + - uid: 7657 + components: + - type: Transform + pos: 7.5,31.5 + parent: 1 + - uid: 7658 + components: + - type: Transform + pos: -14.5,-7.5 + parent: 1 + - uid: 7659 + components: + - type: Transform + pos: 11.5,46.5 + parent: 1 + - uid: 7660 + components: + - type: Transform + pos: 11.5,47.5 + parent: 1 + - uid: 7661 + components: + - type: Transform + pos: 9.5,16.5 + parent: 1 + - uid: 7662 + components: + - type: Transform + pos: 9.5,17.5 + parent: 1 + - uid: 7663 + components: + - type: Transform + pos: 9.5,18.5 + parent: 1 + - uid: 7664 + components: + - type: Transform + pos: 20.5,39.5 + parent: 1 + - uid: 7665 + components: + - type: Transform + pos: -7.5,54.5 + parent: 1 + - uid: 7666 + components: + - type: Transform + pos: -7.5,55.5 + parent: 1 + - uid: 7667 + components: + - type: Transform + pos: -7.5,56.5 + parent: 1 + - uid: 7668 + components: + - type: Transform + pos: -7.5,57.5 + parent: 1 + - uid: 7669 + components: + - type: Transform + pos: 4.5,39.5 + parent: 1 + - uid: 7670 + components: + - type: Transform + pos: -26.5,14.5 + parent: 1 + - uid: 7671 + components: + - type: Transform + pos: 14.5,39.5 + parent: 1 + - uid: 7672 + components: + - type: Transform + pos: -17.5,19.5 + parent: 1 + - uid: 7687 + components: + - type: Transform + pos: -23.5,-9.5 + parent: 1 + - uid: 7688 + components: + - type: Transform + pos: -22.5,-9.5 + parent: 1 + - uid: 7706 + components: + - type: Transform + pos: -9.5,-7.5 + parent: 1 + - uid: 7707 + components: + - type: Transform + pos: -19.5,-14.5 + parent: 1 + - uid: 7708 + components: + - type: Transform + pos: -29.5,-9.5 + parent: 1 + - uid: 7709 + components: + - type: Transform + pos: -28.5,-9.5 + parent: 1 + - uid: 7710 + components: + - type: Transform + pos: -27.5,-9.5 + parent: 1 + - uid: 7711 + components: + - type: Transform + pos: -6.5,-3.5 + parent: 1 + - uid: 7712 + components: + - type: Transform + pos: -21.5,-10.5 + parent: 1 + - uid: 7713 + components: + - type: Transform + pos: -21.5,-9.5 + parent: 1 + - uid: 7714 + components: + - type: Transform + pos: -10.5,17.5 + parent: 1 + - uid: 7715 + components: + - type: Transform + pos: -9.5,17.5 + parent: 1 + - uid: 7716 + components: + - type: Transform + pos: -8.5,17.5 + parent: 1 + - uid: 7717 + components: + - type: Transform + pos: -34.5,6.5 + parent: 1 + - uid: 7718 + components: + - type: Transform + pos: -34.5,5.5 + parent: 1 + - uid: 7719 + components: + - type: Transform + pos: -24.5,49.5 + parent: 1 + - uid: 7720 + components: + - type: Transform + pos: -14.5,47.5 + parent: 1 + - uid: 7722 + components: + - type: Transform + pos: -6.5,-10.5 + parent: 1 + - uid: 7723 + components: + - type: Transform + pos: -6.5,-9.5 + parent: 1 + - uid: 7724 + components: + - type: Transform + pos: -34.5,10.5 + parent: 1 + - uid: 7725 + components: + - type: Transform + pos: -34.5,11.5 + parent: 1 + - uid: 7726 + components: + - type: Transform + pos: -34.5,12.5 + parent: 1 + - uid: 7727 + components: + - type: Transform + pos: -35.5,12.5 + parent: 1 + - uid: 7728 + components: + - type: Transform + pos: -36.5,12.5 + parent: 1 + - uid: 7729 + components: + - type: Transform + pos: -0.5,30.5 + parent: 1 + - uid: 7730 + components: + - type: Transform + pos: 8.5,35.5 + parent: 1 + - uid: 7731 + components: + - type: Transform + pos: -24.5,12.5 + parent: 1 + - uid: 7732 + components: + - type: Transform + pos: -24.5,11.5 + parent: 1 + - uid: 7737 + components: + - type: Transform + pos: -28.5,14.5 + parent: 1 + - uid: 7738 + components: + - type: Transform + pos: 6.5,-3.5 + parent: 1 + - uid: 7739 + components: + - type: Transform + pos: -21.5,-5.5 + parent: 1 + - uid: 7740 + components: + - type: Transform + pos: -15.5,-14.5 + parent: 1 + - uid: 7741 + components: + - type: Transform + pos: 20.5,43.5 + parent: 1 + - uid: 7742 + components: + - type: Transform + pos: 19.5,43.5 + parent: 1 + - uid: 7743 + components: + - type: Transform + pos: -7.5,-11.5 + parent: 1 + - uid: 7744 + components: + - type: Transform + pos: 7.5,48.5 + parent: 1 + - uid: 7745 + components: + - type: Transform + pos: 12.5,48.5 + parent: 1 + - uid: 7746 + components: + - type: Transform + pos: -33.5,-9.5 + parent: 1 + - uid: 7747 + components: + - type: Transform + pos: -32.5,-9.5 + parent: 1 + - uid: 7748 + components: + - type: Transform + pos: -30.5,-9.5 + parent: 1 + - uid: 7749 + components: + - type: Transform + pos: -31.5,-9.5 + parent: 1 + - uid: 7750 + components: + - type: Transform + pos: -19.5,-20.5 + parent: 1 + - uid: 7751 + components: + - type: Transform + pos: -19.5,-19.5 + parent: 1 + - uid: 7752 + components: + - type: Transform + pos: -19.5,-18.5 + parent: 1 + - uid: 7753 + components: + - type: Transform + pos: 8.5,31.5 + parent: 1 + - uid: 7754 + components: + - type: Transform + pos: 5.5,35.5 + parent: 1 + - uid: 7755 + components: + - type: Transform + pos: -11.5,-7.5 + parent: 1 + - uid: 7756 + components: + - type: Transform + pos: -12.5,-7.5 + parent: 1 + - uid: 7757 + components: + - type: Transform + pos: -10.5,23.5 + parent: 1 + - uid: 7758 + components: + - type: Transform + pos: 25.5,52.5 + parent: 1 + - uid: 7759 + components: + - type: Transform + pos: 26.5,52.5 + parent: 1 + - uid: 7760 + components: + - type: Transform + pos: 12.5,-0.5 + parent: 1 + - uid: 7761 + components: + - type: Transform + pos: -24.5,-9.5 + parent: 1 + - uid: 7762 + components: + - type: Transform + pos: -7.5,58.5 + parent: 1 + - uid: 7763 + components: + - type: Transform + pos: -8.5,58.5 + parent: 1 + - uid: 7764 + components: + - type: Transform + pos: -9.5,58.5 + parent: 1 + - uid: 7765 + components: + - type: Transform + pos: -10.5,58.5 + parent: 1 + - uid: 7771 + components: + - type: Transform + pos: -14.5,48.5 + parent: 1 + - uid: 7773 + components: + - type: Transform + pos: 18.5,46.5 + parent: 1 + - uid: 7774 + components: + - type: Transform + pos: 18.5,45.5 + parent: 1 + - uid: 7775 + components: + - type: Transform + pos: 18.5,44.5 + parent: 1 + - uid: 7776 + components: + - type: Transform + pos: 5.5,37.5 + parent: 1 + - uid: 7777 + components: + - type: Transform + pos: 5.5,38.5 + parent: 1 + - uid: 7778 + components: + - type: Transform + pos: 29.5,43.5 + parent: 1 + - uid: 7779 + components: + - type: Transform + pos: 25.5,43.5 + parent: 1 + - uid: 7780 + components: + - type: Transform + pos: -21.5,19.5 + parent: 1 + - uid: 7781 + components: + - type: Transform + pos: -20.5,19.5 + parent: 1 + - uid: 7782 + components: + - type: Transform + pos: -21.5,-8.5 + parent: 1 + - uid: 7783 + components: + - type: Transform + pos: -20.5,-7.5 + parent: 1 + - uid: 7784 + components: + - type: Transform + pos: -19.5,-7.5 + parent: 1 + - uid: 7785 + components: + - type: Transform + pos: -18.5,-7.5 + parent: 1 + - uid: 7786 + components: + - type: Transform + pos: -18.5,-6.5 + parent: 1 + - uid: 7787 + components: + - type: Transform + pos: 5.5,7.5 + parent: 1 + - uid: 7788 + components: + - type: Transform + pos: -20.5,15.5 + parent: 1 + - uid: 7789 + components: + - type: Transform + pos: -25.5,14.5 + parent: 1 + - uid: 7790 + components: + - type: Transform + pos: -12.5,-16.5 + parent: 1 + - uid: 7791 + components: + - type: Transform + pos: -12.5,-15.5 + parent: 1 + - uid: 7792 + components: + - type: Transform + pos: -12.5,-14.5 + parent: 1 + - uid: 7793 + components: + - type: Transform + pos: -12.5,-13.5 + parent: 1 + - uid: 7794 + components: + - type: Transform + pos: -27.5,-10.5 + parent: 1 + - uid: 7795 + components: + - type: Transform + pos: -27.5,-11.5 + parent: 1 + - uid: 7796 + components: + - type: Transform + pos: -18.5,18.5 + parent: 1 + - uid: 7797 + components: + - type: Transform + pos: -17.5,18.5 + parent: 1 + - uid: 7798 + components: + - type: Transform + pos: -20.5,18.5 + parent: 1 + - uid: 7799 + components: + - type: Transform + pos: -19.5,18.5 + parent: 1 + - uid: 7806 + components: + - type: Transform + pos: -16.5,-14.5 + parent: 1 + - uid: 7808 + components: + - type: Transform + pos: -39.5,14.5 + parent: 1 + - uid: 7809 + components: + - type: Transform + pos: -39.5,13.5 + parent: 1 + - uid: 7810 + components: + - type: Transform + pos: -29.5,8.5 + parent: 1 + - uid: 7811 + components: + - type: Transform + pos: -7.5,17.5 + parent: 1 + - uid: 7812 + components: + - type: Transform + pos: -6.5,22.5 + parent: 1 + - uid: 7813 + components: + - type: Transform + pos: -19.5,14.5 + parent: 1 + - uid: 7814 + components: + - type: Transform + pos: -19.5,13.5 + parent: 1 + - uid: 7815 + components: + - type: Transform + pos: -18.5,13.5 + parent: 1 + - uid: 7816 + components: + - type: Transform + pos: -17.5,13.5 + parent: 1 + - uid: 7817 + components: + - type: Transform + pos: -27.5,-14.5 + parent: 1 + - uid: 7818 + components: + - type: Transform + pos: -29.5,-15.5 + parent: 1 + - uid: 7819 + components: + - type: Transform + pos: -29.5,-16.5 + parent: 1 + - uid: 7820 + components: + - type: Transform + pos: -28.5,-16.5 + parent: 1 + - uid: 7821 + components: + - type: Transform + pos: -14.5,45.5 + parent: 1 + - uid: 7822 + components: + - type: Transform + pos: -25.5,42.5 + parent: 1 + - uid: 7823 + components: + - type: Transform + pos: 28.5,17.5 + parent: 1 + - uid: 7824 + components: + - type: Transform + pos: 28.5,16.5 + parent: 1 + - uid: 7825 + components: + - type: Transform + pos: 28.5,15.5 + parent: 1 + - uid: 7826 + components: + - type: Transform + pos: 8.5,50.5 + parent: 1 + - uid: 7827 + components: + - type: Transform + pos: -24.5,9.5 + parent: 1 + - uid: 7828 + components: + - type: Transform + pos: -23.5,8.5 + parent: 1 + - uid: 7829 + components: + - type: Transform + pos: -17.5,10.5 + parent: 1 + - uid: 7830 + components: + - type: Transform + pos: -17.5,11.5 + parent: 1 + - uid: 7831 + components: + - type: Transform + pos: -22.5,15.5 + parent: 1 + - uid: 7832 + components: + - type: Transform + pos: -20.5,48.5 + parent: 1 + - uid: 7833 + components: + - type: Transform + pos: -2.5,3.5 + parent: 1 + - uid: 7834 + components: + - type: Transform + pos: -3.5,3.5 + parent: 1 + - uid: 7835 + components: + - type: Transform + pos: -34.5,8.5 + parent: 1 + - uid: 7836 + components: + - type: Transform + pos: -25.5,-9.5 + parent: 1 + - uid: 7847 + components: + - type: Transform + pos: -23.5,7.5 + parent: 1 + - uid: 7848 + components: + - type: Transform + pos: -26.5,48.5 + parent: 1 + - uid: 7849 + components: + - type: Transform + pos: -25.5,48.5 + parent: 1 + - uid: 7850 + components: + - type: Transform + pos: -24.5,48.5 + parent: 1 + - uid: 7851 + components: + - type: Transform + pos: -23.5,48.5 + parent: 1 + - uid: 7852 + components: + - type: Transform + pos: -22.5,48.5 + parent: 1 + - uid: 7853 + components: + - type: Transform + pos: -21.5,48.5 + parent: 1 + - uid: 7854 + components: + - type: Transform + pos: -31.5,18.5 + parent: 1 + - uid: 7856 + components: + - type: Transform + pos: -34.5,7.5 + parent: 1 + - uid: 7857 + components: + - type: Transform + pos: -35.5,10.5 + parent: 1 + - uid: 7858 + components: + - type: Transform + pos: -19.5,15.5 + parent: 1 + - uid: 7859 + components: + - type: Transform + pos: 5.5,-3.5 + parent: 1 + - uid: 7860 + components: + - type: Transform + pos: 5.5,2.5 + parent: 1 + - uid: 7861 + components: + - type: Transform + pos: -37.5,8.5 + parent: 1 + - uid: 7862 + components: + - type: Transform + pos: 5.5,39.5 + parent: 1 + - uid: 7863 + components: + - type: Transform + pos: -34.5,16.5 + parent: 1 + - uid: 7864 + components: + - type: Transform + pos: -33.5,16.5 + parent: 1 + - uid: 7865 + components: + - type: Transform + pos: -22.5,19.5 + parent: 1 + - uid: 7866 + components: + - type: Transform + pos: 14.5,32.5 + parent: 1 + - uid: 7876 + components: + - type: Transform + pos: 8.5,39.5 + parent: 1 + - uid: 7877 + components: + - type: Transform + pos: -1.5,30.5 + parent: 1 + - uid: 7878 + components: + - type: Transform + pos: -2.5,30.5 + parent: 1 + - uid: 7879 + components: + - type: Transform + pos: 4.5,43.5 + parent: 1 + - uid: 7880 + components: + - type: Transform + pos: 3.5,43.5 + parent: 1 + - uid: 7881 + components: + - type: Transform + pos: 2.5,43.5 + parent: 1 + - uid: 7882 + components: + - type: Transform + pos: 2.5,44.5 + parent: 1 + - uid: 7883 + components: + - type: Transform + pos: -14.5,-11.5 + parent: 1 + - uid: 7884 + components: + - type: Transform + pos: -13.5,-11.5 + parent: 1 + - uid: 7885 + components: + - type: Transform + pos: -12.5,-11.5 + parent: 1 + - uid: 7886 + components: + - type: Transform + pos: 24.5,51.5 + parent: 1 + - uid: 7887 + components: + - type: Transform + pos: -27.5,-13.5 + parent: 1 + - uid: 7888 + components: + - type: Transform + pos: -27.5,-12.5 + parent: 1 + - uid: 7889 + components: + - type: Transform + pos: -29.5,7.5 + parent: 1 + - uid: 7890 + components: + - type: Transform + pos: -28.5,6.5 + parent: 1 + - uid: 7891 + components: + - type: Transform + pos: -13.5,55.5 + parent: 1 + - uid: 7892 + components: + - type: Transform + pos: 9.5,41.5 + parent: 1 + - uid: 7893 + components: + - type: Transform + pos: 10.5,41.5 + parent: 1 + - uid: 7894 + components: + - type: Transform + pos: 11.5,41.5 + parent: 1 + - uid: 7895 + components: + - type: Transform + pos: 12.5,41.5 + parent: 1 + - uid: 7896 + components: + - type: Transform + pos: 13.5,41.5 + parent: 1 + - uid: 7897 + components: + - type: Transform + pos: 14.5,41.5 + parent: 1 + - uid: 7898 + components: + - type: Transform + pos: 14.5,44.5 + parent: 1 + - uid: 7899 + components: + - type: Transform + pos: 14.5,43.5 + parent: 1 + - uid: 7900 + components: + - type: Transform + pos: -1.5,3.5 + parent: 1 + - uid: 7901 + components: + - type: Transform + pos: -18.5,-2.5 + parent: 1 + - uid: 7902 + components: + - type: Transform + pos: -29.5,9.5 + parent: 1 + - uid: 7903 + components: + - type: Transform + pos: -36.5,8.5 + parent: 1 + - uid: 7929 + components: + - type: Transform + pos: 7.5,35.5 + parent: 1 + - uid: 7930 + components: + - type: Transform + pos: -37.5,12.5 + parent: 1 + - uid: 7931 + components: + - type: Transform + pos: -38.5,12.5 + parent: 1 + - uid: 7932 + components: + - type: Transform + pos: -39.5,12.5 + parent: 1 + - uid: 7933 + components: + - type: Transform + pos: -10.5,-7.5 + parent: 1 + - uid: 7934 + components: + - type: Transform + pos: 6.5,37.5 + parent: 1 + - uid: 7935 + components: + - type: Transform + pos: 12.5,50.5 + parent: 1 + - uid: 7936 + components: + - type: Transform + pos: -21.5,-2.5 + parent: 1 + - uid: 7937 + components: + - type: Transform + pos: -21.5,-3.5 + parent: 1 + - uid: 7938 + components: + - type: Transform + pos: -5.5,17.5 + parent: 1 + - uid: 7939 + components: + - type: Transform + pos: -0.5,3.5 + parent: 1 + - uid: 7940 + components: + - type: Transform + pos: 14.5,23.5 + parent: 1 + - uid: 7941 + components: + - type: Transform + pos: -18.5,15.5 + parent: 1 + - uid: 7942 + components: + - type: Transform + pos: -17.5,15.5 + parent: 1 + - uid: 7943 + components: + - type: Transform + pos: -17.5,-14.5 + parent: 1 + - uid: 7944 + components: + - type: Transform + pos: -25.5,-2.5 + parent: 1 + - uid: 7945 + components: + - type: Transform + pos: -24.5,-2.5 + parent: 1 + - uid: 7946 + components: + - type: Transform + pos: -3.5,-8.5 + parent: 1 + - uid: 7947 + components: + - type: Transform + pos: -4.5,-8.5 + parent: 1 + - uid: 7948 + components: + - type: Transform + pos: -5.5,-8.5 + parent: 1 + - uid: 7949 + components: + - type: Transform + pos: -6.5,-8.5 + parent: 1 + - uid: 7950 + components: + - type: Transform + pos: -18.5,-14.5 + parent: 1 + - uid: 7951 + components: + - type: Transform + pos: 9.5,39.5 + parent: 1 + - uid: 7952 + components: + - type: Transform + pos: -9.5,-11.5 + parent: 1 + - uid: 7953 + components: + - type: Transform + pos: 21.5,38.5 + parent: 1 + - uid: 7954 + components: + - type: Transform + pos: 21.5,39.5 + parent: 1 + - uid: 7955 + components: + - type: Transform + pos: -27.5,9.5 + parent: 1 + - uid: 7956 + components: + - type: Transform + pos: -27.5,10.5 + parent: 1 + - uid: 7957 + components: + - type: Transform + pos: -26.5,10.5 + parent: 1 + - uid: 7958 + components: + - type: Transform + pos: -23.5,6.5 + parent: 1 + - uid: 7960 + components: + - type: Transform + pos: -1.5,-10.5 + parent: 1 + - uid: 7961 + components: + - type: Transform + pos: -2.5,-10.5 + parent: 1 + - uid: 7962 + components: + - type: Transform + pos: -3.5,-10.5 + parent: 1 + - uid: 7963 + components: + - type: Transform + pos: -4.5,-10.5 + parent: 1 + - uid: 7964 + components: + - type: Transform + pos: -5.5,-10.5 + parent: 1 + - uid: 7965 + components: + - type: Transform + pos: 21.5,43.5 + parent: 1 + - uid: 7966 + components: + - type: Transform + pos: 21.5,42.5 + parent: 1 + - uid: 7967 + components: + - type: Transform + pos: -21.5,-4.5 + parent: 1 + - uid: 7971 + components: + - type: Transform + pos: -26.5,-2.5 + parent: 1 + - uid: 7972 + components: + - type: Transform + pos: 8.5,37.5 + parent: 1 + - uid: 7973 + components: + - type: Transform + pos: -4.5,5.5 + parent: 1 + - uid: 7974 + components: + - type: Transform + pos: -3.5,5.5 + parent: 1 + - uid: 7975 + components: + - type: Transform + pos: -1.5,22.5 + parent: 1 + - uid: 7976 + components: + - type: Transform + pos: 15.5,-4.5 + parent: 1 + - uid: 7977 + components: + - type: Transform + pos: -27.5,-16.5 + parent: 1 + - uid: 7978 + components: + - type: Transform + pos: -5.5,22.5 + parent: 1 + - uid: 7979 + components: + - type: Transform + pos: -27.5,-6.5 + parent: 1 + - uid: 7980 + components: + - type: Transform + pos: -27.5,-7.5 + parent: 1 + - uid: 7981 + components: + - type: Transform + pos: -27.5,-8.5 + parent: 1 + - uid: 7983 + components: + - type: Transform + pos: -19.5,48.5 + parent: 1 + - uid: 7984 + components: + - type: Transform + pos: -5.5,5.5 + parent: 1 + - uid: 7985 + components: + - type: Transform + pos: -12.5,-17.5 + parent: 1 + - uid: 7986 + components: + - type: Transform + pos: -18.5,48.5 + parent: 1 + - uid: 7987 + components: + - type: Transform + pos: -17.5,48.5 + parent: 1 + - uid: 7988 + components: + - type: Transform + pos: 28.5,18.5 + parent: 1 + - uid: 7989 + components: + - type: Transform + pos: 20.5,19.5 + parent: 1 + - uid: 7990 + components: + - type: Transform + pos: 14.5,-4.5 + parent: 1 + - uid: 7991 + components: + - type: Transform + pos: -0.5,-10.5 + parent: 1 + - uid: 7992 + components: + - type: Transform + pos: -12.5,-20.5 + parent: 1 + - uid: 7994 + components: + - type: Transform + pos: -12.5,-21.5 + parent: 1 + - uid: 7995 + components: + - type: Transform + pos: -12.5,-22.5 + parent: 1 + - uid: 7999 + components: + - type: Transform + pos: 5.5,6.5 + parent: 1 + - uid: 8000 + components: + - type: Transform + pos: -27.5,-2.5 + parent: 1 + - uid: 8001 + components: + - type: Transform + pos: -28.5,-2.5 + parent: 1 + - uid: 8002 + components: + - type: Transform + pos: -29.5,-2.5 + parent: 1 + - uid: 8003 + components: + - type: Transform + pos: -29.5,-3.5 + parent: 1 + - uid: 8004 + components: + - type: Transform + pos: -29.5,-4.5 + parent: 1 + - uid: 8005 + components: + - type: Transform + pos: -29.5,-5.5 + parent: 1 + - uid: 8006 + components: + - type: Transform + pos: -29.5,-6.5 + parent: 1 + - uid: 8007 + components: + - type: Transform + pos: -28.5,-6.5 + parent: 1 + - uid: 8008 + components: + - type: Transform + pos: -12.5,-19.5 + parent: 1 + - uid: 8009 + components: + - type: Transform + pos: -12.5,-18.5 + parent: 1 + - uid: 8010 + components: + - type: Transform + pos: 23.5,46.5 + parent: 1 + - uid: 8011 + components: + - type: Transform + pos: 24.5,46.5 + parent: 1 + - uid: 8012 + components: + - type: Transform + pos: -21.5,-11.5 + parent: 1 + - uid: 8013 + components: + - type: Transform + pos: -20.5,-11.5 + parent: 1 + - uid: 8014 + components: + - type: Transform + pos: -20.5,-12.5 + parent: 1 + - uid: 8015 + components: + - type: Transform + pos: -20.5,-13.5 + parent: 1 + - uid: 8017 + components: + - type: Transform + pos: -32.5,18.5 + parent: 1 + - uid: 8018 + components: + - type: Transform + pos: -19.5,-15.5 + parent: 1 + - uid: 8019 + components: + - type: Transform + pos: -19.5,-16.5 + parent: 1 + - uid: 8020 + components: + - type: Transform + pos: -19.5,-17.5 + parent: 1 + - uid: 8021 + components: + - type: Transform + pos: 7.5,37.5 + parent: 1 + - uid: 8022 + components: + - type: Transform + pos: 15.5,39.5 + parent: 1 + - uid: 8023 + components: + - type: Transform + pos: -1.5,5.5 + parent: 1 + - uid: 8024 + components: + - type: Transform + pos: -2.5,5.5 + parent: 1 + - uid: 8025 + components: + - type: Transform + pos: -24.5,10.5 + parent: 1 + - uid: 8026 + components: + - type: Transform + pos: -25.5,10.5 + parent: 1 + - uid: 8027 + components: + - type: Transform + pos: -29.5,-12.5 + parent: 1 + - uid: 8028 + components: + - type: Transform + pos: -29.5,-13.5 + parent: 1 + - uid: 8029 + components: + - type: Transform + pos: -29.5,-14.5 + parent: 1 + - uid: 8030 + components: + - type: Transform + pos: -10.5,57.5 + parent: 1 + - uid: 8031 + components: + - type: Transform + pos: -23.5,5.5 + parent: 1 + - uid: 8032 + components: + - type: Transform + pos: -23.5,4.5 + parent: 1 + - uid: 8033 + components: + - type: Transform + pos: -24.5,17.5 + parent: 1 + - uid: 8034 + components: + - type: Transform + pos: -24.5,18.5 + parent: 1 + - uid: 8035 + components: + - type: Transform + pos: -24.5,19.5 + parent: 1 + - uid: 8036 + components: + - type: Transform + pos: -23.5,19.5 + parent: 1 + - uid: 8037 + components: + - type: Transform + pos: -23.5,9.5 + parent: 1 + - uid: 8038 + components: + - type: Transform + pos: -22.5,9.5 + parent: 1 + - uid: 8039 + components: + - type: Transform + pos: -21.5,9.5 + parent: 1 + - uid: 8040 + components: + - type: Transform + pos: -20.5,9.5 + parent: 1 + - uid: 8041 + components: + - type: Transform + pos: -19.5,9.5 + parent: 1 + - uid: 8042 + components: + - type: Transform + pos: -18.5,9.5 + parent: 1 + - uid: 8043 + components: + - type: Transform + pos: -17.5,9.5 + parent: 1 + - uid: 8044 + components: + - type: Transform + pos: 7.5,50.5 + parent: 1 + - uid: 8045 + components: + - type: Transform + pos: -16.5,48.5 + parent: 1 + - uid: 8046 + components: + - type: Transform + pos: -15.5,48.5 + parent: 1 + - uid: 8047 + components: + - type: Transform + pos: 9.5,35.5 + parent: 1 + - uid: 8048 + components: + - type: Transform + pos: 10.5,53.5 + parent: 1 + - uid: 8051 + components: + - type: Transform + pos: -33.5,13.5 + parent: 1 + - uid: 8052 + components: + - type: Transform + pos: -34.5,13.5 + parent: 1 + - uid: 8053 + components: + - type: Transform + pos: -21.5,-7.5 + parent: 1 + - uid: 8054 + components: + - type: Transform + pos: -21.5,-6.5 + parent: 1 + - uid: 8055 + components: + - type: Transform + pos: 18.5,43.5 + parent: 1 + - uid: 8056 + components: + - type: Transform + pos: 12.5,47.5 + parent: 1 + - uid: 8057 + components: + - type: Transform + pos: 13.5,47.5 + parent: 1 + - uid: 8058 + components: + - type: Transform + pos: 14.5,47.5 + parent: 1 + - uid: 8059 + components: + - type: Transform + pos: 14.5,46.5 + parent: 1 + - uid: 8060 + components: + - type: Transform + pos: 6.5,23.5 + parent: 1 + - uid: 8061 + components: + - type: Transform + pos: 7.5,23.5 + parent: 1 + - uid: 8062 + components: + - type: Transform + pos: 8.5,23.5 + parent: 1 + - uid: 8063 + components: + - type: Transform + pos: 8.5,24.5 + parent: 1 + - uid: 8064 + components: + - type: Transform + pos: 17.5,25.5 + parent: 1 + - uid: 8065 + components: + - type: Transform + pos: 16.5,25.5 + parent: 1 + - uid: 8066 + components: + - type: Transform + pos: 23.5,49.5 + parent: 1 + - uid: 8067 + components: + - type: Transform + pos: 24.5,49.5 + parent: 1 + - uid: 8068 + components: + - type: Transform + pos: 24.5,50.5 + parent: 1 + - uid: 8069 + components: + - type: Transform + pos: 0.5,30.5 + parent: 1 + - uid: 8071 + components: + - type: Transform + pos: 17.5,54.5 + parent: 1 + - uid: 8072 + components: + - type: Transform + pos: 17.5,53.5 + parent: 1 + - uid: 8073 + components: + - type: Transform + pos: 27.5,52.5 + parent: 1 + - uid: 8074 + components: + - type: Transform + pos: 27.5,51.5 + parent: 1 + - uid: 8075 + components: + - type: Transform + pos: 27.5,50.5 + parent: 1 + - uid: 8076 + components: + - type: Transform + pos: 27.5,49.5 + parent: 1 + - uid: 8077 + components: + - type: Transform + pos: 27.5,54.5 + parent: 1 + - uid: 8078 + components: + - type: Transform + pos: 25.5,60.5 + parent: 1 + - uid: 8079 + components: + - type: Transform + pos: 25.5,61.5 + parent: 1 + - uid: 8080 + components: + - type: Transform + pos: 25.5,62.5 + parent: 1 + - uid: 8081 + components: + - type: Transform + pos: 25.5,63.5 + parent: 1 + - uid: 8082 + components: + - type: Transform + pos: 25.5,64.5 + parent: 1 + - uid: 8083 + components: + - type: Transform + pos: 25.5,65.5 + parent: 1 + - uid: 8084 + components: + - type: Transform + pos: 26.5,65.5 + parent: 1 + - uid: 8085 + components: + - type: Transform + pos: 29.5,56.5 + parent: 1 + - uid: 8086 + components: + - type: Transform + pos: 28.5,56.5 + parent: 1 + - uid: 8087 + components: + - type: Transform + pos: 27.5,56.5 + parent: 1 + - uid: 8088 + components: + - type: Transform + pos: 27.5,57.5 + parent: 1 + - uid: 8089 + components: + - type: Transform + pos: 27.5,58.5 + parent: 1 + - uid: 8090 + components: + - type: Transform + pos: 28.5,58.5 + parent: 1 + - uid: 8091 + components: + - type: Transform + pos: 30.5,56.5 + parent: 1 + - uid: 8092 + components: + - type: Transform + pos: 27.5,59.5 + parent: 1 + - uid: 8093 + components: + - type: Transform + pos: 26.5,59.5 + parent: 1 + - uid: 8094 + components: + - type: Transform + pos: 25.5,59.5 + parent: 1 + - uid: 8095 + components: + - type: Transform + pos: -11.5,55.5 + parent: 1 + - uid: 8096 + components: + - type: Transform + pos: -10.5,56.5 + parent: 1 + - uid: 8097 + components: + - type: Transform + pos: -10.5,55.5 + parent: 1 + - uid: 8098 + components: + - type: Transform + pos: 24.5,59.5 + parent: 1 + - uid: 8099 + components: + - type: Transform + pos: 3.5,-11.5 + parent: 1 + - uid: 8100 + components: + - type: Transform + pos: 2.5,-11.5 + parent: 1 + - uid: 8101 + components: + - type: Transform + pos: 1.5,-11.5 + parent: 1 + - uid: 8102 + components: + - type: Transform + pos: 9.5,38.5 + parent: 1 + - uid: 8103 + components: + - type: Transform + pos: 10.5,39.5 + parent: 1 + - uid: 8104 + components: + - type: Transform + pos: -1.5,17.5 + parent: 1 + - uid: 8105 + components: + - type: Transform + pos: -2.5,17.5 + parent: 1 + - uid: 8106 + components: + - type: Transform + pos: -27.5,6.5 + parent: 1 + - uid: 8107 + components: + - type: Transform + pos: -26.5,17.5 + parent: 1 + - uid: 8110 + components: + - type: Transform + pos: 5.5,3.5 + parent: 1 + - uid: 8111 + components: + - type: Transform + pos: 6.5,-4.5 + parent: 1 + - uid: 8112 + components: + - type: Transform + pos: -2.5,-3.5 + parent: 1 + - uid: 8113 + components: + - type: Transform + pos: -1.5,-3.5 + parent: 1 + - uid: 8114 + components: + - type: Transform + pos: -1.5,-4.5 + parent: 1 + - uid: 8115 + components: + - type: Transform + pos: -3.5,-3.5 + parent: 1 + - uid: 8116 + components: + - type: Transform + pos: -3.5,-4.5 + parent: 1 + - uid: 8117 + components: + - type: Transform + pos: -2.5,-4.5 + parent: 1 + - uid: 8118 + components: + - type: Transform + pos: 5.5,-4.5 + parent: 1 + - uid: 8119 + components: + - type: Transform + pos: -2.5,-2.5 + parent: 1 + - uid: 8120 + components: + - type: Transform + pos: -2.5,-5.5 + parent: 1 + - uid: 8121 + components: + - type: Transform + pos: 5.5,-5.5 + parent: 1 + - uid: 8122 + components: + - type: Transform + pos: 5.5,-1.5 + parent: 1 + - uid: 8123 + components: + - type: Transform + pos: 5.5,-2.5 + parent: 1 + - uid: 8124 + components: + - type: Transform + pos: -2.5,-1.5 + parent: 1 + - uid: 8125 + components: + - type: Transform + pos: 5.5,-6.5 + parent: 1 + - uid: 8126 + components: + - type: Transform + pos: -2.5,-6.5 + parent: 1 + - uid: 8127 + components: + - type: Transform + pos: -2.5,-7.5 + parent: 1 + - uid: 8128 + components: + - type: Transform + pos: 5.5,-7.5 + parent: 1 + - uid: 8129 + components: + - type: Transform + pos: 4.5,-7.5 + parent: 1 + - uid: 8130 + components: + - type: Transform + pos: 3.5,-7.5 + parent: 1 + - uid: 8131 + components: + - type: Transform + pos: 2.5,-7.5 + parent: 1 + - uid: 8132 + components: + - type: Transform + pos: 1.5,-7.5 + parent: 1 + - uid: 8133 + components: + - type: Transform + pos: 0.5,-7.5 + parent: 1 + - uid: 8134 + components: + - type: Transform + pos: -0.5,-7.5 + parent: 1 + - uid: 8135 + components: + - type: Transform + pos: -22.5,39.5 + parent: 1 + - uid: 8136 + components: + - type: Transform + pos: -22.5,40.5 + parent: 1 + - uid: 8137 + components: + - type: Transform + pos: -22.5,41.5 + parent: 1 + - uid: 8138 + components: + - type: Transform + pos: -22.5,42.5 + parent: 1 + - uid: 8139 + components: + - type: Transform + pos: -21.5,42.5 + parent: 1 + - uid: 8140 + components: + - type: Transform + pos: -20.5,42.5 + parent: 1 + - uid: 8141 + components: + - type: Transform + pos: -20.5,41.5 + parent: 1 + - uid: 8142 + components: + - type: Transform + pos: -19.5,41.5 + parent: 1 + - uid: 8143 + components: + - type: Transform + pos: -18.5,41.5 + parent: 1 + - uid: 8144 + components: + - type: Transform + pos: -17.5,41.5 + parent: 1 + - uid: 8145 + components: + - type: Transform + pos: -14.5,42.5 + parent: 1 + - uid: 8146 + components: + - type: Transform + pos: -14.5,43.5 + parent: 1 + - uid: 8147 + components: + - type: Transform + pos: -14.5,44.5 + parent: 1 + - uid: 8148 + components: + - type: Transform + pos: -15.5,44.5 + parent: 1 + - uid: 8149 + components: + - type: Transform + pos: -16.5,44.5 + parent: 1 + - uid: 8150 + components: + - type: Transform + pos: -17.5,44.5 + parent: 1 + - uid: 8151 + components: + - type: Transform + pos: -18.5,44.5 + parent: 1 + - uid: 8152 + components: + - type: Transform + pos: -19.5,44.5 + parent: 1 + - uid: 8153 + components: + - type: Transform + pos: -20.5,44.5 + parent: 1 + - uid: 8154 + components: + - type: Transform + pos: -21.5,44.5 + parent: 1 + - uid: 8160 + components: + - type: Transform + pos: 30.5,43.5 + parent: 1 + - uid: 8161 + components: + - type: Transform + pos: 31.5,43.5 + parent: 1 + - uid: 8162 + components: + - type: Transform + pos: 24.5,43.5 + parent: 1 + - uid: 8163 + components: + - type: Transform + pos: -18.5,37.5 + parent: 1 + - uid: 8164 + components: + - type: Transform + pos: -19.5,37.5 + parent: 1 + - uid: 8165 + components: + - type: Transform + pos: -20.5,37.5 + parent: 1 + - uid: 8166 + components: + - type: Transform + pos: -21.5,37.5 + parent: 1 + - uid: 8167 + components: + - type: Transform + pos: -24.5,50.5 + parent: 1 + - uid: 8171 + components: + - type: Transform + pos: -30.5,44.5 + parent: 1 + - uid: 8172 + components: + - type: Transform + pos: -29.5,44.5 + parent: 1 + - uid: 8173 + components: + - type: Transform + pos: -28.5,44.5 + parent: 1 + - uid: 8174 + components: + - type: Transform + pos: -27.5,44.5 + parent: 1 + - uid: 8175 + components: + - type: Transform + pos: -26.5,44.5 + parent: 1 + - uid: 8176 + components: + - type: Transform + pos: -25.5,44.5 + parent: 1 + - uid: 8177 + components: + - type: Transform + pos: -25.5,45.5 + parent: 1 + - uid: 8178 + components: + - type: Transform + pos: -31.5,43.5 + parent: 1 + - uid: 8179 + components: + - type: Transform + pos: -31.5,44.5 + parent: 1 + - uid: 8180 + components: + - type: Transform + pos: -31.5,42.5 + parent: 1 + - uid: 8181 + components: + - type: Transform + pos: -31.5,41.5 + parent: 1 + - uid: 8182 + components: + - type: Transform + pos: -32.5,41.5 + parent: 1 + - uid: 8183 + components: + - type: Transform + pos: -33.5,41.5 + parent: 1 + - uid: 8184 + components: + - type: Transform + pos: -34.5,41.5 + parent: 1 + - uid: 8185 + components: + - type: Transform + pos: -35.5,41.5 + parent: 1 + - uid: 8186 + components: + - type: Transform + pos: -36.5,41.5 + parent: 1 + - uid: 8187 + components: + - type: Transform + pos: -31.5,40.5 + parent: 1 + - uid: 8188 + components: + - type: Transform + pos: -31.5,39.5 + parent: 1 + - uid: 8189 + components: + - type: Transform + pos: -31.5,38.5 + parent: 1 + - uid: 8190 + components: + - type: Transform + pos: -32.5,38.5 + parent: 1 + - uid: 8191 + components: + - type: Transform + pos: -33.5,38.5 + parent: 1 + - uid: 8192 + components: + - type: Transform + pos: -34.5,38.5 + parent: 1 + - uid: 8193 + components: + - type: Transform + pos: -35.5,38.5 + parent: 1 + - uid: 8194 + components: + - type: Transform + pos: -31.5,37.5 + parent: 1 + - uid: 8195 + components: + - type: Transform + pos: -31.5,36.5 + parent: 1 + - uid: 8196 + components: + - type: Transform + pos: -32.5,36.5 + parent: 1 + - uid: 8197 + components: + - type: Transform + pos: -33.5,36.5 + parent: 1 + - uid: 8198 + components: + - type: Transform + pos: -34.5,36.5 + parent: 1 + - uid: 8199 + components: + - type: Transform + pos: -35.5,36.5 + parent: 1 + - uid: 8200 + components: + - type: Transform + pos: -30.5,37.5 + parent: 1 + - uid: 8201 + components: + - type: Transform + pos: -29.5,37.5 + parent: 1 + - uid: 8202 + components: + - type: Transform + pos: -28.5,37.5 + parent: 1 + - uid: 8203 + components: + - type: Transform + pos: -27.5,37.5 + parent: 1 + - uid: 8204 + components: + - type: Transform + pos: -26.5,37.5 + parent: 1 + - uid: 8206 + components: + - type: Transform + pos: 23.5,19.5 + parent: 1 + - uid: 8207 + components: + - type: Transform + pos: 10.5,56.5 + parent: 1 + - uid: 8208 + components: + - type: Transform + pos: 9.5,56.5 + parent: 1 + - uid: 8209 + components: + - type: Transform + pos: 8.5,56.5 + parent: 1 + - uid: 8210 + components: + - type: Transform + pos: 7.5,56.5 + parent: 1 + - uid: 8211 + components: + - type: Transform + pos: 12.5,56.5 + parent: 1 + - uid: 8212 + components: + - type: Transform + pos: 12.5,57.5 + parent: 1 + - uid: 8213 + components: + - type: Transform + pos: 12.5,58.5 + parent: 1 + - uid: 8214 + components: + - type: Transform + pos: 12.5,59.5 + parent: 1 + - uid: 8215 + components: + - type: Transform + pos: 10.5,47.5 + parent: 1 + - uid: 8216 + components: + - type: Transform + pos: 9.5,47.5 + parent: 1 + - uid: 8217 + components: + - type: Transform + pos: 8.5,47.5 + parent: 1 + - uid: 8218 + components: + - type: Transform + pos: 7.5,47.5 + parent: 1 + - uid: 8219 + components: + - type: Transform + pos: -26.5,39.5 + parent: 1 + - uid: 8220 + components: + - type: Transform + pos: -26.5,40.5 + parent: 1 + - uid: 8221 + components: + - type: Transform + pos: -26.5,41.5 + parent: 1 + - uid: 8222 + components: + - type: Transform + pos: -26.5,42.5 + parent: 1 + - uid: 8223 + components: + - type: Transform + pos: 2.5,45.5 + parent: 1 + - uid: 8224 + components: + - type: Transform + pos: 2.5,46.5 + parent: 1 + - uid: 8225 + components: + - type: Transform + pos: 2.5,47.5 + parent: 1 + - uid: 8226 + components: + - type: Transform + pos: 2.5,42.5 + parent: 1 + - uid: 8227 + components: + - type: Transform + pos: -15.5,-7.5 + parent: 1 + - uid: 8228 + components: + - type: Transform + pos: -16.5,-7.5 + parent: 1 + - uid: 8229 + components: + - type: Transform + pos: -16.5,-8.5 + parent: 1 + - uid: 8230 + components: + - type: Transform + pos: -16.5,-9.5 + parent: 1 + - uid: 8231 + components: + - type: Transform + pos: -16.5,-10.5 + parent: 1 + - uid: 8232 + components: + - type: Transform + pos: -32.5,13.5 + parent: 1 + - uid: 8233 + components: + - type: Transform + pos: -31.5,13.5 + parent: 1 + - uid: 8234 + components: + - type: Transform + pos: -32.5,17.5 + parent: 1 + - uid: 8235 + components: + - type: Transform + pos: -32.5,16.5 + parent: 1 + - uid: 8236 + components: + - type: Transform + pos: -39.5,6.5 + parent: 1 + - uid: 8237 + components: + - type: Transform + pos: -39.5,7.5 + parent: 1 + - uid: 8238 + components: + - type: Transform + pos: -39.5,8.5 + parent: 1 + - uid: 8239 + components: + - type: Transform + pos: -38.5,8.5 + parent: 1 + - uid: 8240 + components: + - type: Transform + pos: -14.5,41.5 + parent: 1 + - uid: 8241 + components: + - type: Transform + pos: -14.5,40.5 + parent: 1 + - uid: 8242 + components: + - type: Transform + pos: -14.5,39.5 + parent: 1 + - uid: 8243 + components: + - type: Transform + pos: -14.5,38.5 + parent: 1 + - uid: 8244 + components: + - type: Transform + pos: -14.5,37.5 + parent: 1 + - uid: 8245 + components: + - type: Transform + pos: -15.5,37.5 + parent: 1 + - uid: 8246 + components: + - type: Transform + pos: -16.5,37.5 + parent: 1 + - uid: 8247 + components: + - type: Transform + pos: -17.5,37.5 + parent: 1 + - uid: 8248 + components: + - type: Transform + pos: -15.5,-11.5 + parent: 1 + - uid: 8249 + components: + - type: Transform + pos: -16.5,-11.5 + parent: 1 + - uid: 8250 + components: + - type: Transform + pos: -17.5,-11.5 + parent: 1 + - uid: 8251 + components: + - type: Transform + pos: -18.5,-11.5 + parent: 1 + - uid: 8252 + components: + - type: Transform + pos: -19.5,-11.5 + parent: 1 + - uid: 8253 + components: + - type: Transform + pos: 4.5,-3.5 + parent: 1 + - uid: 8254 + components: + - type: Transform + pos: 4.5,-4.5 + parent: 1 + - uid: 8255 + components: + - type: Transform + pos: 4.5,-5.5 + parent: 1 + - uid: 8256 + components: + - type: Transform + pos: -24.5,39.5 + parent: 1 + - uid: 8257 + components: + - type: Transform + pos: -23.5,39.5 + parent: 1 + - uid: 8258 + components: + - type: Transform + pos: 9.5,33.5 + parent: 1 + - uid: 8259 + components: + - type: Transform + pos: 9.5,34.5 + parent: 1 + - uid: 8260 + components: + - type: Transform + pos: 17.5,15.5 + parent: 1 + - uid: 8261 + components: + - type: Transform + pos: -14.5,52.5 + parent: 1 + - uid: 8262 + components: + - type: Transform + pos: -14.5,53.5 + parent: 1 + - uid: 8263 + components: + - type: Transform + pos: -28.5,52.5 + parent: 1 + - uid: 8264 + components: + - type: Transform + pos: -28.5,53.5 + parent: 1 + - uid: 8265 + components: + - type: Transform + pos: -28.5,54.5 + parent: 1 + - uid: 8266 + components: + - type: Transform + pos: -28.5,55.5 + parent: 1 + - uid: 8267 + components: + - type: Transform + pos: -28.5,56.5 + parent: 1 + - uid: 8269 + components: + - type: Transform + pos: 12.5,60.5 + parent: 1 + - uid: 8270 + components: + - type: Transform + pos: 2.5,40.5 + parent: 1 + - uid: 8271 + components: + - type: Transform + pos: 2.5,41.5 + parent: 1 + - uid: 8272 + components: + - type: Transform + pos: 21.5,19.5 + parent: 1 + - uid: 8273 + components: + - type: Transform + pos: 22.5,19.5 + parent: 1 + - uid: 8274 + components: + - type: Transform + pos: -25.5,39.5 + parent: 1 + - uid: 8275 + components: + - type: Transform + pos: 9.5,32.5 + parent: 1 + - uid: 8276 + components: + - type: Transform + pos: 9.5,31.5 + parent: 1 + - uid: 8277 + components: + - type: Transform + pos: 9.5,30.5 + parent: 1 + - uid: 8278 + components: + - type: Transform + pos: 25.5,19.5 + parent: 1 + - uid: 8279 + components: + - type: Transform + pos: 24.5,19.5 + parent: 1 + - uid: 8280 + components: + - type: Transform + pos: 24.5,58.5 + parent: 1 + - uid: 8281 + components: + - type: Transform + pos: 24.5,57.5 + parent: 1 + - uid: 8282 + components: + - type: Transform + pos: 23.5,57.5 + parent: 1 + - uid: 8283 + components: + - type: Transform + pos: 22.5,57.5 + parent: 1 + - uid: 8284 + components: + - type: Transform + pos: 21.5,57.5 + parent: 1 + - uid: 8285 + components: + - type: Transform + pos: 10.5,2.5 + parent: 1 + - uid: 8286 + components: + - type: Transform + pos: 11.5,2.5 + parent: 1 + - uid: 8287 + components: + - type: Transform + pos: 12.5,2.5 + parent: 1 + - uid: 8288 + components: + - type: Transform + pos: -30.5,15.5 + parent: 1 + - uid: 8289 + components: + - type: Transform + pos: -30.5,16.5 + parent: 1 + - uid: 8290 + components: + - type: Transform + pos: -30.5,17.5 + parent: 1 + - uid: 8291 + components: + - type: Transform + pos: -30.5,18.5 + parent: 1 + - uid: 8292 + components: + - type: Transform + pos: -30.5,13.5 + parent: 1 + - uid: 8294 + components: + - type: Transform + pos: 36.5,43.5 + parent: 1 + - uid: 8295 + components: + - type: Transform + pos: 35.5,43.5 + parent: 1 + - uid: 8296 + components: + - type: Transform + pos: 34.5,43.5 + parent: 1 + - uid: 8299 + components: + - type: Transform + pos: -34.5,3.5 + parent: 1 + - uid: 8300 + components: + - type: Transform + pos: -34.5,4.5 + parent: 1 + - uid: 8302 + components: + - type: Transform + pos: 33.5,43.5 + parent: 1 + - uid: 8303 + components: + - type: Transform + pos: 32.5,43.5 + parent: 1 + - uid: 8304 + components: + - type: Transform + pos: 4.5,12.5 + parent: 1 + - uid: 8305 + components: + - type: Transform + pos: -36.5,1.5 + parent: 1 + - uid: 8306 + components: + - type: Transform + pos: -37.5,1.5 + parent: 1 + - uid: 8307 + components: + - type: Transform + pos: -38.5,1.5 + parent: 1 + - uid: 8308 + components: + - type: Transform + pos: -30.5,14.5 + parent: 1 + - uid: 8309 + components: + - type: Transform + pos: -22.5,44.5 + parent: 1 + - uid: 8310 + components: + - type: Transform + pos: -23.5,44.5 + parent: 1 + - uid: 8311 + components: + - type: Transform + pos: -24.5,44.5 + parent: 1 + - uid: 8312 + components: + - type: Transform + pos: -16.5,41.5 + parent: 1 + - uid: 8313 + components: + - type: Transform + pos: -15.5,41.5 + parent: 1 + - uid: 8314 + components: + - type: Transform + pos: 9.5,29.5 + parent: 1 + - uid: 8315 + components: + - type: Transform + pos: 9.5,27.5 + parent: 1 + - uid: 8316 + components: + - type: Transform + pos: -1.5,27.5 + parent: 1 + - uid: 8317 + components: + - type: Transform + pos: 5.5,5.5 + parent: 1 + - uid: 8318 + components: + - type: Transform + pos: 5.5,4.5 + parent: 1 + - uid: 8319 + components: + - type: Transform + pos: -28.5,20.5 + parent: 1 + - uid: 8320 + components: + - type: Transform + pos: -27.5,20.5 + parent: 1 + - uid: 8321 + components: + - type: Transform + pos: -26.5,20.5 + parent: 1 + - uid: 8322 + components: + - type: Transform + pos: -25.5,20.5 + parent: 1 + - uid: 8323 + components: + - type: Transform + pos: -24.5,20.5 + parent: 1 + - uid: 8324 + components: + - type: Transform + pos: -28.5,17.5 + parent: 1 + - uid: 8333 + components: + - type: Transform + pos: -11.5,-22.5 + parent: 1 + - uid: 8334 + components: + - type: Transform + pos: -11.5,-23.5 + parent: 1 + - uid: 8335 + components: + - type: Transform + pos: -11.5,-24.5 + parent: 1 + - uid: 8338 + components: + - type: Transform + pos: -45.5,-7.5 + parent: 1 + - uid: 8339 + components: + - type: Transform + pos: -47.5,-3.5 + parent: 1 + - uid: 8342 + components: + - type: Transform + pos: -13.5,-22.5 + parent: 1 + - uid: 8343 + components: + - type: Transform + pos: -14.5,-22.5 + parent: 1 + - uid: 8344 + components: + - type: Transform + pos: -15.5,-22.5 + parent: 1 + - uid: 8345 + components: + - type: Transform + pos: -16.5,-22.5 + parent: 1 + - uid: 8360 + components: + - type: Transform + pos: -32.5,26.5 + parent: 1 + - uid: 8361 + components: + - type: Transform + pos: -33.5,26.5 + parent: 1 + - uid: 8362 + components: + - type: Transform + pos: -4.5,22.5 + parent: 1 + - uid: 8363 + components: + - type: Transform + pos: 26.5,43.5 + parent: 1 + - uid: 8364 + components: + - type: Transform + pos: 27.5,43.5 + parent: 1 + - uid: 8365 + components: + - type: Transform + pos: 27.5,46.5 + parent: 1 + - uid: 8366 + components: + - type: Transform + pos: 28.5,46.5 + parent: 1 + - uid: 8367 + components: + - type: Transform + pos: 29.5,46.5 + parent: 1 + - uid: 8368 + components: + - type: Transform + pos: 29.5,47.5 + parent: 1 + - uid: 8369 + components: + - type: Transform + pos: 28.5,43.5 + parent: 1 + - uid: 8370 + components: + - type: Transform + pos: 24.5,52.5 + parent: 1 + - uid: 8372 + components: + - type: Transform + pos: 0.5,52.5 + parent: 1 + - uid: 8373 + components: + - type: Transform + pos: 1.5,52.5 + parent: 1 + - uid: 8374 + components: + - type: Transform + pos: 1.5,53.5 + parent: 1 + - uid: 8375 + components: + - type: Transform + pos: 1.5,54.5 + parent: 1 + - uid: 8376 + components: + - type: Transform + pos: 1.5,55.5 + parent: 1 + - uid: 8377 + components: + - type: Transform + pos: 1.5,56.5 + parent: 1 + - uid: 8378 + components: + - type: Transform + pos: 1.5,57.5 + parent: 1 + - uid: 8379 + components: + - type: Transform + pos: 1.5,58.5 + parent: 1 + - uid: 8380 + components: + - type: Transform + pos: 3.5,63.5 + parent: 1 + - uid: 8381 + components: + - type: Transform + pos: 3.5,62.5 + parent: 1 + - uid: 8382 + components: + - type: Transform + pos: 3.5,61.5 + parent: 1 + - uid: 8383 + components: + - type: Transform + pos: 2.5,61.5 + parent: 1 + - uid: 8384 + components: + - type: Transform + pos: -0.5,63.5 + parent: 1 + - uid: 8385 + components: + - type: Transform + pos: -0.5,62.5 + parent: 1 + - uid: 8386 + components: + - type: Transform + pos: -0.5,61.5 + parent: 1 + - uid: 8387 + components: + - type: Transform + pos: 0.5,61.5 + parent: 1 + - uid: 8388 + components: + - type: Transform + pos: 1.5,61.5 + parent: 1 + - uid: 8389 + components: + - type: Transform + pos: -1.5,59.5 + parent: 1 + - uid: 8390 + components: + - type: Transform + pos: -0.5,59.5 + parent: 1 + - uid: 8391 + components: + - type: Transform + pos: 0.5,59.5 + parent: 1 + - uid: 8392 + components: + - type: Transform + pos: 1.5,59.5 + parent: 1 + - uid: 8393 + components: + - type: Transform + pos: 1.5,60.5 + parent: 1 + - uid: 8394 + components: + - type: Transform + pos: 23.5,54.5 + parent: 1 + - uid: 8395 + components: + - type: Transform + pos: 22.5,54.5 + parent: 1 + - uid: 8396 + components: + - type: Transform + pos: 21.5,54.5 + parent: 1 + - uid: 8397 + components: + - type: Transform + pos: 20.5,54.5 + parent: 1 + - uid: 8398 + components: + - type: Transform + pos: 19.5,54.5 + parent: 1 + - uid: 8399 + components: + - type: Transform + pos: 19.5,53.5 + parent: 1 + - uid: 8400 + components: + - type: Transform + pos: 18.5,53.5 + parent: 1 + - uid: 8401 + components: + - type: Transform + pos: -28.5,57.5 + parent: 1 + - uid: 8402 + components: + - type: Transform + pos: -28.5,58.5 + parent: 1 + - uid: 8403 + components: + - type: Transform + pos: -28.5,59.5 + parent: 1 + - uid: 8404 + components: + - type: Transform + pos: -28.5,60.5 + parent: 1 + - uid: 8405 + components: + - type: Transform + pos: -14.5,54.5 + parent: 1 + - uid: 8406 + components: + - type: Transform + pos: -14.5,55.5 + parent: 1 + - uid: 8407 + components: + - type: Transform + pos: -14.5,56.5 + parent: 1 + - uid: 8408 + components: + - type: Transform + pos: -14.5,57.5 + parent: 1 + - uid: 8409 + components: + - type: Transform + pos: -14.5,58.5 + parent: 1 + - uid: 8410 + components: + - type: Transform + pos: -14.5,59.5 + parent: 1 + - uid: 8411 + components: + - type: Transform + pos: -14.5,60.5 + parent: 1 + - uid: 8412 + components: + - type: Transform + pos: -14.5,61.5 + parent: 1 + - uid: 8413 + components: + - type: Transform + pos: -14.5,62.5 + parent: 1 + - uid: 8414 + components: + - type: Transform + pos: -14.5,63.5 + parent: 1 + - uid: 8415 + components: + - type: Transform + pos: -14.5,64.5 + parent: 1 + - uid: 8416 + components: + - type: Transform + pos: -14.5,65.5 + parent: 1 + - uid: 8417 + components: + - type: Transform + pos: -28.5,61.5 + parent: 1 + - uid: 8418 + components: + - type: Transform + pos: -28.5,62.5 + parent: 1 + - uid: 8419 + components: + - type: Transform + pos: -28.5,63.5 + parent: 1 + - uid: 8420 + components: + - type: Transform + pos: -28.5,64.5 + parent: 1 + - uid: 8421 + components: + - type: Transform + pos: -28.5,65.5 + parent: 1 + - uid: 8422 + components: + - type: Transform + pos: -4.5,22.5 + parent: 1 + - uid: 8425 + components: + - type: Transform + pos: 18.5,12.5 + parent: 1 + - uid: 8426 + components: + - type: Transform + pos: 19.5,12.5 + parent: 1 + - uid: 8427 + components: + - type: Transform + pos: 20.5,12.5 + parent: 1 + - uid: 8428 + components: + - type: Transform + pos: 25.5,46.5 + parent: 1 + - uid: 8429 + components: + - type: Transform + pos: 26.5,46.5 + parent: 1 + - uid: 8430 + components: + - type: Transform + pos: 26.5,45.5 + parent: 1 + - uid: 8431 + components: + - type: Transform + pos: 26.5,44.5 + parent: 1 + - uid: 8432 + components: + - type: Transform + pos: 8.5,41.5 + parent: 1 + - uid: 8433 + components: + - type: Transform + pos: 22.5,39.5 + parent: 1 + - uid: 8434 + components: + - type: Transform + pos: 9.5,7.5 + parent: 1 + - uid: 8435 + components: + - type: Transform + pos: 9.5,6.5 + parent: 1 + - uid: 8436 + components: + - type: Transform + pos: 9.5,5.5 + parent: 1 + - uid: 8437 + components: + - type: Transform + pos: 13.5,7.5 + parent: 1 + - uid: 8438 + components: + - type: Transform + pos: 13.5,6.5 + parent: 1 + - uid: 8439 + components: + - type: Transform + pos: 16.5,-4.5 + parent: 1 + - uid: 8440 + components: + - type: Transform + pos: 27.5,19.5 + parent: 1 + - uid: 8441 + components: + - type: Transform + pos: 26.5,19.5 + parent: 1 + - uid: 8442 + components: + - type: Transform + pos: 5.5,44.5 + parent: 1 + - uid: 8443 + components: + - type: Transform + pos: 5.5,43.5 + parent: 1 + - uid: 8444 + components: + - type: Transform + pos: 5.5,42.5 + parent: 1 + - uid: 8445 + components: + - type: Transform + pos: 5.5,41.5 + parent: 1 + - uid: 8446 + components: + - type: Transform + pos: 2.5,13.5 + parent: 1 + - uid: 8447 + components: + - type: Transform + pos: 2.5,14.5 + parent: 1 + - uid: 8448 + components: + - type: Transform + pos: 2.5,15.5 + parent: 1 + - uid: 8449 + components: + - type: Transform + pos: 2.5,16.5 + parent: 1 + - uid: 8450 + components: + - type: Transform + pos: 2.5,17.5 + parent: 1 + - uid: 8451 + components: + - type: Transform + pos: 2.5,31.5 + parent: 1 + - uid: 8452 + components: + - type: Transform + pos: 3.5,31.5 + parent: 1 + - uid: 8453 + components: + - type: Transform + pos: 4.5,31.5 + parent: 1 + - uid: 8454 + components: + - type: Transform + pos: -9.5,22.5 + parent: 1 + - uid: 8455 + components: + - type: Transform + pos: -8.5,22.5 + parent: 1 + - uid: 8456 + components: + - type: Transform + pos: -1.5,29.5 + parent: 1 + - uid: 8457 + components: + - type: Transform + pos: 13.5,18.5 + parent: 1 + - uid: 8458 + components: + - type: Transform + pos: 14.5,18.5 + parent: 1 + - uid: 8459 + components: + - type: Transform + pos: 2.5,12.5 + parent: 1 + - uid: 8460 + components: + - type: Transform + pos: 11.5,50.5 + parent: 1 + - uid: 8461 + components: + - type: Transform + pos: 11.5,51.5 + parent: 1 + - uid: 8462 + components: + - type: Transform + pos: 11.5,52.5 + parent: 1 + - uid: 8463 + components: + - type: Transform + pos: 11.5,53.5 + parent: 1 + - uid: 8468 + components: + - type: Transform + pos: -11.5,-0.5 + parent: 1 + - uid: 8469 + components: + - type: Transform + pos: -11.5,-1.5 + parent: 1 + - uid: 8470 + components: + - type: Transform + pos: -11.5,-2.5 + parent: 1 + - uid: 8471 + components: + - type: Transform + pos: -11.5,-3.5 + parent: 1 + - uid: 8472 + components: + - type: Transform + pos: -12.5,-3.5 + parent: 1 + - uid: 8473 + components: + - type: Transform + pos: 31.5,41.5 + parent: 1 + - uid: 8474 + components: + - type: Transform + pos: 29.5,40.5 + parent: 1 + - uid: 8475 + components: + - type: Transform + pos: 30.5,40.5 + parent: 1 + - uid: 8476 + components: + - type: Transform + pos: -2.5,52.5 + parent: 1 + - uid: 8477 + components: + - type: Transform + pos: -1.5,52.5 + parent: 1 + - uid: 8478 + components: + - type: Transform + pos: -0.5,52.5 + parent: 1 + - uid: 8479 + components: + - type: Transform + pos: 17.5,18.5 + parent: 1 + - uid: 8480 + components: + - type: Transform + pos: -1.5,20.5 + parent: 1 + - uid: 8481 + components: + - type: Transform + pos: -1.5,19.5 + parent: 1 + - uid: 8482 + components: + - type: Transform + pos: -1.5,18.5 + parent: 1 + - uid: 8483 + components: + - type: Transform + pos: 21.5,5.5 + parent: 1 + - uid: 8484 + components: + - type: Transform + pos: 20.5,5.5 + parent: 1 + - uid: 8485 + components: + - type: Transform + pos: 19.5,5.5 + parent: 1 + - uid: 8488 + components: + - type: Transform + pos: 10.5,69.5 + parent: 1 + - uid: 8490 + components: + - type: Transform + pos: 8.5,2.5 + parent: 1 + - uid: 8491 + components: + - type: Transform + pos: 6.5,41.5 + parent: 1 + - uid: 8492 + components: + - type: Transform + pos: 7.5,41.5 + parent: 1 + - uid: 8493 + components: + - type: Transform + pos: 2.5,39.5 + parent: 1 + - uid: 8494 + components: + - type: Transform + pos: -14.5,51.5 + parent: 1 + - uid: 8495 + components: + - type: Transform + pos: -14.5,50.5 + parent: 1 + - uid: 8496 + components: + - type: Transform + pos: -14.5,49.5 + parent: 1 + - uid: 8497 + components: + - type: Transform + pos: -27.5,48.5 + parent: 1 + - uid: 8498 + components: + - type: Transform + pos: -28.5,48.5 + parent: 1 + - uid: 8499 + components: + - type: Transform + pos: -24.5,16.5 + parent: 1 + - uid: 8500 + components: + - type: Transform + pos: -24.5,15.5 + parent: 1 + - uid: 8501 + components: + - type: Transform + pos: -24.5,14.5 + parent: 1 + - uid: 8502 + components: + - type: Transform + pos: -24.5,13.5 + parent: 1 + - uid: 8503 + components: + - type: Transform + pos: 12.5,32.5 + parent: 1 + - uid: 8504 + components: + - type: Transform + pos: 13.5,32.5 + parent: 1 + - uid: 8505 + components: + - type: Transform + pos: -9.5,66.5 + parent: 1 + - uid: 8506 + components: + - type: Transform + pos: -8.5,66.5 + parent: 1 + - uid: 8507 + components: + - type: Transform + pos: -0.5,17.5 + parent: 1 + - uid: 8508 + components: + - type: Transform + pos: 5.5,12.5 + parent: 1 + - uid: 8509 + components: + - type: Transform + pos: -7.5,66.5 + parent: 1 + - uid: 8510 + components: + - type: Transform + pos: -6.5,66.5 + parent: 1 + - uid: 8511 + components: + - type: Transform + pos: -5.5,66.5 + parent: 1 + - uid: 8512 + components: + - type: Transform + pos: -5.5,65.5 + parent: 1 + - uid: 8513 + components: + - type: Transform + pos: -5.5,64.5 + parent: 1 + - uid: 8514 + components: + - type: Transform + pos: -5.5,63.5 + parent: 1 + - uid: 8515 + components: + - type: Transform + pos: 3.5,12.5 + parent: 1 + - uid: 8516 + components: + - type: Transform + pos: 16.5,18.5 + parent: 1 + - uid: 8517 + components: + - type: Transform + pos: 15.5,18.5 + parent: 1 + - uid: 8518 + components: + - type: Transform + pos: 13.5,-3.5 + parent: 1 + - uid: 8519 + components: + - type: Transform + pos: -12.5,24.5 + parent: 1 + - uid: 8520 + components: + - type: Transform + pos: -1.5,21.5 + parent: 1 + - uid: 8521 + components: + - type: Transform + pos: 17.5,47.5 + parent: 1 + - uid: 8522 + components: + - type: Transform + pos: 17.5,16.5 + parent: 1 + - uid: 8523 + components: + - type: Transform + pos: -28.5,49.5 + parent: 1 + - uid: 8524 + components: + - type: Transform + pos: -28.5,50.5 + parent: 1 + - uid: 8525 + components: + - type: Transform + pos: -28.5,51.5 + parent: 1 + - uid: 8526 + components: + - type: Transform + pos: 12.5,0.5 + parent: 1 + - uid: 8527 + components: + - type: Transform + pos: 12.5,1.5 + parent: 1 + - uid: 8528 + components: + - type: Transform + pos: -39.5,2.5 + parent: 1 + - uid: 8529 + components: + - type: Transform + pos: -39.5,1.5 + parent: 1 + - uid: 8530 + components: + - type: Transform + pos: -39.5,3.5 + parent: 1 + - uid: 8531 + components: + - type: Transform + pos: -38.5,3.5 + parent: 1 + - uid: 8532 + components: + - type: Transform + pos: -37.5,3.5 + parent: 1 + - uid: 8533 + components: + - type: Transform + pos: -36.5,3.5 + parent: 1 + - uid: 8534 + components: + - type: Transform + pos: -35.5,3.5 + parent: 1 + - uid: 8535 + components: + - type: Transform + pos: 2.5,22.5 + parent: 1 + - uid: 8536 + components: + - type: Transform + pos: 27.5,1.5 + parent: 1 + - uid: 8537 + components: + - type: Transform + pos: 10.5,7.5 + parent: 1 + - uid: 8538 + components: + - type: Transform + pos: 13.5,-2.5 + parent: 1 + - uid: 8539 + components: + - type: Transform + pos: -4.5,52.5 + parent: 1 + - uid: 8540 + components: + - type: Transform + pos: -4.5,67.5 + parent: 1 + - uid: 8541 + components: + - type: Transform + pos: -4.5,66.5 + parent: 1 + - uid: 8542 + components: + - type: Transform + pos: -9.5,64.5 + parent: 1 + - uid: 8543 + components: + - type: Transform + pos: -10.5,64.5 + parent: 1 + - uid: 8544 + components: + - type: Transform + pos: -10.5,65.5 + parent: 1 + - uid: 8545 + components: + - type: Transform + pos: -10.5,66.5 + parent: 1 + - uid: 8546 + components: + - type: Transform + pos: -11.5,62.5 + parent: 1 + - uid: 8547 + components: + - type: Transform + pos: -10.5,62.5 + parent: 1 + - uid: 8548 + components: + - type: Transform + pos: -9.5,62.5 + parent: 1 + - uid: 8549 + components: + - type: Transform + pos: -8.5,62.5 + parent: 1 + - uid: 8550 + components: + - type: Transform + pos: -7.5,62.5 + parent: 1 + - uid: 8551 + components: + - type: Transform + pos: 13.5,53.5 + parent: 1 + - uid: 8552 + components: + - type: Transform + pos: 13.5,54.5 + parent: 1 + - uid: 8553 + components: + - type: Transform + pos: 13.5,55.5 + parent: 1 + - uid: 8554 + components: + - type: Transform + pos: 9.5,45.5 + parent: 1 + - uid: 8555 + components: + - type: Transform + pos: 8.5,45.5 + parent: 1 + - uid: 8556 + components: + - type: Transform + pos: 7.5,45.5 + parent: 1 + - uid: 8557 + components: + - type: Transform + pos: 6.5,45.5 + parent: 1 + - uid: 8558 + components: + - type: Transform + pos: 5.5,45.5 + parent: 1 + - uid: 8559 + components: + - type: Transform + pos: -2.5,22.5 + parent: 1 + - uid: 8560 + components: + - type: Transform + pos: -3.5,22.5 + parent: 1 + - uid: 8561 + components: + - type: Transform + pos: 19.5,50.5 + parent: 1 + - uid: 8562 + components: + - type: Transform + pos: 18.5,50.5 + parent: 1 + - uid: 8563 + components: + - type: Transform + pos: 17.5,50.5 + parent: 1 + - uid: 8564 + components: + - type: Transform + pos: 14.5,45.5 + parent: 1 + - uid: 8565 + components: + - type: Transform + pos: 5.5,26.5 + parent: 1 + - uid: 8566 + components: + - type: Transform + pos: 5.5,27.5 + parent: 1 + - uid: 8567 + components: + - type: Transform + pos: -30.5,26.5 + parent: 1 + - uid: 8568 + components: + - type: Transform + pos: -33.5,28.5 + parent: 1 + - uid: 8569 + components: + - type: Transform + pos: 5.5,25.5 + parent: 1 + - uid: 8570 + components: + - type: Transform + pos: 14.5,42.5 + parent: 1 + - uid: 8571 + components: + - type: Transform + pos: 9.5,53.5 + parent: 1 + - uid: 8572 + components: + - type: Transform + pos: 8.5,53.5 + parent: 1 + - uid: 8573 + components: + - type: Transform + pos: 7.5,53.5 + parent: 1 + - uid: 8574 + components: + - type: Transform + pos: 10.5,55.5 + parent: 1 + - uid: 8575 + components: + - type: Transform + pos: 14.5,50.5 + parent: 1 + - uid: 8576 + components: + - type: Transform + pos: 13.5,50.5 + parent: 1 + - uid: 8577 + components: + - type: Transform + pos: 13.5,51.5 + parent: 1 + - uid: 8578 + components: + - type: Transform + pos: 13.5,52.5 + parent: 1 + - uid: 8579 + components: + - type: Transform + pos: 18.5,47.5 + parent: 1 + - uid: 8580 + components: + - type: Transform + pos: 19.5,47.5 + parent: 1 + - uid: 8581 + components: + - type: Transform + pos: 20.5,47.5 + parent: 1 + - uid: 8582 + components: + - type: Transform + pos: 21.5,47.5 + parent: 1 + - uid: 8583 + components: + - type: Transform + pos: 22.5,47.5 + parent: 1 + - uid: 8584 + components: + - type: Transform + pos: 23.5,47.5 + parent: 1 + - uid: 8585 + components: + - type: Transform + pos: 23.5,48.5 + parent: 1 + - uid: 8586 + components: + - type: Transform + pos: 2.5,21.5 + parent: 1 + - uid: 8587 + components: + - type: Transform + pos: 5.5,8.5 + parent: 1 + - uid: 8588 + components: + - type: Transform + pos: 5.5,9.5 + parent: 1 + - uid: 8589 + components: + - type: Transform + pos: 5.5,10.5 + parent: 1 + - uid: 8590 + components: + - type: Transform + pos: 5.5,11.5 + parent: 1 + - uid: 8591 + components: + - type: Transform + pos: -1.5,28.5 + parent: 1 + - uid: 8592 + components: + - type: Transform + pos: -1.5,26.5 + parent: 1 + - uid: 8593 + components: + - type: Transform + pos: -1.5,25.5 + parent: 1 + - uid: 8594 + components: + - type: Transform + pos: 6.5,2.5 + parent: 1 + - uid: 8595 + components: + - type: Transform + pos: 8.5,62.5 + parent: 1 + - uid: 8596 + components: + - type: Transform + pos: 8.5,61.5 + parent: 1 + - uid: 8597 + components: + - type: Transform + pos: 13.5,63.5 + parent: 1 + - uid: 8598 + components: + - type: Transform + pos: 4.5,25.5 + parent: 1 + - uid: 8599 + components: + - type: Transform + pos: 2.5,23.5 + parent: 1 + - uid: 8600 + components: + - type: Transform + pos: -0.5,67.5 + parent: 1 + - uid: 8601 + components: + - type: Transform + pos: -1.5,67.5 + parent: 1 + - uid: 8602 + components: + - type: Transform + pos: -2.5,67.5 + parent: 1 + - uid: 8603 + components: + - type: Transform + pos: -3.5,67.5 + parent: 1 + - uid: 8604 + components: + - type: Transform + pos: -3.5,52.5 + parent: 1 + - uid: 8605 + components: + - type: Transform + pos: -5.5,52.5 + parent: 1 + - uid: 8606 + components: + - type: Transform + pos: -6.5,52.5 + parent: 1 + - uid: 8607 + components: + - type: Transform + pos: -7.5,52.5 + parent: 1 + - uid: 8608 + components: + - type: Transform + pos: -8.5,52.5 + parent: 1 + - uid: 8609 + components: + - type: Transform + pos: -9.5,52.5 + parent: 1 + - uid: 8610 + components: + - type: Transform + pos: -10.5,52.5 + parent: 1 + - uid: 8611 + components: + - type: Transform + pos: -11.5,52.5 + parent: 1 + - uid: 8612 + components: + - type: Transform + pos: -12.5,52.5 + parent: 1 + - uid: 8613 + components: + - type: Transform + pos: -5.5,53.5 + parent: 1 + - uid: 8614 + components: + - type: Transform + pos: -5.5,54.5 + parent: 1 + - uid: 8615 + components: + - type: Transform + pos: -5.5,55.5 + parent: 1 + - uid: 8616 + components: + - type: Transform + pos: -5.5,56.5 + parent: 1 + - uid: 8617 + components: + - type: Transform + pos: -5.5,57.5 + parent: 1 + - uid: 8618 + components: + - type: Transform + pos: -5.5,58.5 + parent: 1 + - uid: 8619 + components: + - type: Transform + pos: -5.5,59.5 + parent: 1 + - uid: 8620 + components: + - type: Transform + pos: -5.5,60.5 + parent: 1 + - uid: 8621 + components: + - type: Transform + pos: -5.5,61.5 + parent: 1 + - uid: 8622 + components: + - type: Transform + pos: -5.5,62.5 + parent: 1 + - uid: 8623 + components: + - type: Transform + pos: -6.5,62.5 + parent: 1 + - uid: 8624 + components: + - type: Transform + pos: 17.5,14.5 + parent: 1 + - uid: 8625 + components: + - type: Transform + pos: 17.5,13.5 + parent: 1 + - uid: 8626 + components: + - type: Transform + pos: 17.5,12.5 + parent: 1 + - uid: 8627 + components: + - type: Transform + pos: 16.5,12.5 + parent: 1 + - uid: 8628 + components: + - type: Transform + pos: 15.5,12.5 + parent: 1 + - uid: 8629 + components: + - type: Transform + pos: 14.5,12.5 + parent: 1 + - uid: 8630 + components: + - type: Transform + pos: 13.5,12.5 + parent: 1 + - uid: 8631 + components: + - type: Transform + pos: 12.5,12.5 + parent: 1 + - uid: 8632 + components: + - type: Transform + pos: 11.5,12.5 + parent: 1 + - uid: 8633 + components: + - type: Transform + pos: 10.5,12.5 + parent: 1 + - uid: 8634 + components: + - type: Transform + pos: 9.5,12.5 + parent: 1 + - uid: 8635 + components: + - type: Transform + pos: 31.5,40.5 + parent: 1 + - uid: 8636 + components: + - type: Transform + pos: 0.5,67.5 + parent: 1 + - uid: 8637 + components: + - type: Transform + pos: 1.5,67.5 + parent: 1 + - uid: 8638 + components: + - type: Transform + pos: 2.5,67.5 + parent: 1 + - uid: 8639 + components: + - type: Transform + pos: 3.5,67.5 + parent: 1 + - uid: 8640 + components: + - type: Transform + pos: 4.5,67.5 + parent: 1 + - uid: 8641 + components: + - type: Transform + pos: 27.5,0.5 + parent: 1 + - uid: 8642 + components: + - type: Transform + pos: 26.5,0.5 + parent: 1 + - uid: 8643 + components: + - type: Transform + pos: 25.5,0.5 + parent: 1 + - uid: 8650 + components: + - type: Transform + pos: 9.5,15.5 + parent: 1 + - uid: 8651 + components: + - type: Transform + pos: 9.5,14.5 + parent: 1 + - uid: 8652 + components: + - type: Transform + pos: 9.5,13.5 + parent: 1 + - uid: 8653 + components: + - type: Transform + pos: 9.5,62.5 + parent: 1 + - uid: 8654 + components: + - type: Transform + pos: 10.5,62.5 + parent: 1 + - uid: 8655 + components: + - type: Transform + pos: 11.5,62.5 + parent: 1 + - uid: 8656 + components: + - type: Transform + pos: 8.5,65.5 + parent: 1 + - uid: 8657 + components: + - type: Transform + pos: 8.5,64.5 + parent: 1 + - uid: 8658 + components: + - type: Transform + pos: 9.5,64.5 + parent: 1 + - uid: 8659 + components: + - type: Transform + pos: 10.5,64.5 + parent: 1 + - uid: 8660 + components: + - type: Transform + pos: 11.5,64.5 + parent: 1 + - uid: 8661 + components: + - type: Transform + pos: 12.5,64.5 + parent: 1 + - uid: 8662 + components: + - type: Transform + pos: 12.5,63.5 + parent: 1 + - uid: 8663 + components: + - type: Transform + pos: 12.5,62.5 + parent: 1 + - uid: 8664 + components: + - type: Transform + pos: 12.5,61.5 + parent: 1 + - uid: 8665 + components: + - type: Transform + pos: -10.5,22.5 + parent: 1 + - uid: 8666 + components: + - type: Transform + pos: -10.5,21.5 + parent: 1 + - uid: 8667 + components: + - type: Transform + pos: -10.5,20.5 + parent: 1 + - uid: 8668 + components: + - type: Transform + pos: -10.5,19.5 + parent: 1 + - uid: 8669 + components: + - type: Transform + pos: -10.5,18.5 + parent: 1 + - uid: 8670 + components: + - type: Transform + pos: 3.5,25.5 + parent: 1 + - uid: 8671 + components: + - type: Transform + pos: 26.5,37.5 + parent: 1 + - uid: 8672 + components: + - type: Transform + pos: 28.5,38.5 + parent: 1 + - uid: 8673 + components: + - type: Transform + pos: 27.5,38.5 + parent: 1 + - uid: 8674 + components: + - type: Transform + pos: 26.5,38.5 + parent: 1 + - uid: 8675 + components: + - type: Transform + pos: 26.5,39.5 + parent: 1 + - uid: 8676 + components: + - type: Transform + pos: 28.5,40.5 + parent: 1 + - uid: 8677 + components: + - type: Transform + pos: 27.5,40.5 + parent: 1 + - uid: 8678 + components: + - type: Transform + pos: 26.5,40.5 + parent: 1 + - uid: 8679 + components: + - type: Transform + pos: 19.5,39.5 + parent: 1 + - uid: 8680 + components: + - type: Transform + pos: 18.5,39.5 + parent: 1 + - uid: 8681 + components: + - type: Transform + pos: 17.5,39.5 + parent: 1 + - uid: 8682 + components: + - type: Transform + pos: 17.5,17.5 + parent: 1 + - uid: 8683 + components: + - type: Transform + pos: 25.5,54.5 + parent: 1 + - uid: 8684 + components: + - type: Transform + pos: 25.5,55.5 + parent: 1 + - uid: 8685 + components: + - type: Transform + pos: 25.5,56.5 + parent: 1 + - uid: 8686 + components: + - type: Transform + pos: 25.5,57.5 + parent: 1 + - uid: 8687 + components: + - type: Transform + pos: 11.5,54.5 + parent: 1 + - uid: 8688 + components: + - type: Transform + pos: 11.5,55.5 + parent: 1 + - uid: 8689 + components: + - type: Transform + pos: 12.5,55.5 + parent: 1 + - uid: 8690 + components: + - type: Transform + pos: 16.5,39.5 + parent: 1 + - uid: 8691 + components: + - type: Transform + pos: 12.5,28.5 + parent: 1 + - uid: 8692 + components: + - type: Transform + pos: 12.5,27.5 + parent: 1 + - uid: 8693 + components: + - type: Transform + pos: 12.5,26.5 + parent: 1 + - uid: 8694 + components: + - type: Transform + pos: 11.5,26.5 + parent: 1 + - uid: 8695 + components: + - type: Transform + pos: 10.5,26.5 + parent: 1 + - uid: 8696 + components: + - type: Transform + pos: 15.5,50.5 + parent: 1 + - uid: 8697 + components: + - type: Transform + pos: 16.5,50.5 + parent: 1 + - uid: 8698 + components: + - type: Transform + pos: 23.5,36.5 + parent: 1 + - uid: 8699 + components: + - type: Transform + pos: 12.5,23.5 + parent: 1 + - uid: 8701 + components: + - type: Transform + pos: 18.5,42.5 + parent: 1 + - uid: 8702 + components: + - type: Transform + pos: 17.5,42.5 + parent: 1 + - uid: 8703 + components: + - type: Transform + pos: 23.5,0.5 + parent: 1 + - uid: 8704 + components: + - type: Transform + pos: 22.5,0.5 + parent: 1 + - uid: 8705 + components: + - type: Transform + pos: -27.5,22.5 + parent: 1 + - uid: 8706 + components: + - type: Transform + pos: -32.5,33.5 + parent: 1 + - uid: 8707 + components: + - type: Transform + pos: -32.5,32.5 + parent: 1 + - uid: 8708 + components: + - type: Transform + pos: -32.5,31.5 + parent: 1 + - uid: 8709 + components: + - type: Transform + pos: 6.5,31.5 + parent: 1 + - uid: 8710 + components: + - type: Transform + pos: 5.5,31.5 + parent: 1 + - uid: 8711 + components: + - type: Transform + pos: 5.5,32.5 + parent: 1 + - uid: 8712 + components: + - type: Transform + pos: 5.5,33.5 + parent: 1 + - uid: 8713 + components: + - type: Transform + pos: 5.5,34.5 + parent: 1 + - uid: 8714 + components: + - type: Transform + pos: 10.5,32.5 + parent: 1 + - uid: 8715 + components: + - type: Transform + pos: 13.5,39.5 + parent: 1 + - uid: 8716 + components: + - type: Transform + pos: 12.5,39.5 + parent: 1 + - uid: 8717 + components: + - type: Transform + pos: 11.5,39.5 + parent: 1 + - uid: 8718 + components: + - type: Transform + pos: 7.5,39.5 + parent: 1 + - uid: 8719 + components: + - type: Transform + pos: 16.5,54.5 + parent: 1 + - uid: 8720 + components: + - type: Transform + pos: 15.5,54.5 + parent: 1 + - uid: 8721 + components: + - type: Transform + pos: 14.5,54.5 + parent: 1 + - uid: 8723 + components: + - type: Transform + pos: -11.5,-4.5 + parent: 1 + - uid: 8724 + components: + - type: Transform + pos: 9.5,2.5 + parent: 1 + - uid: 8725 + components: + - type: Transform + pos: -2.5,25.5 + parent: 1 + - uid: 8726 + components: + - type: Transform + pos: 5.5,28.5 + parent: 1 + - uid: 8727 + components: + - type: Transform + pos: 5.5,29.5 + parent: 1 + - uid: 8728 + components: + - type: Transform + pos: 10.5,28.5 + parent: 1 + - uid: 8729 + components: + - type: Transform + pos: 11.5,28.5 + parent: 1 + - uid: 8730 + components: + - type: Transform + pos: 31.5,45.5 + parent: 1 + - uid: 8731 + components: + - type: Transform + pos: 31.5,46.5 + parent: 1 + - uid: 8732 + components: + - type: Transform + pos: 31.5,47.5 + parent: 1 + - uid: 8733 + components: + - type: Transform + pos: 31.5,48.5 + parent: 1 + - uid: 8734 + components: + - type: Transform + pos: 31.5,49.5 + parent: 1 + - uid: 8735 + components: + - type: Transform + pos: 30.5,49.5 + parent: 1 + - uid: 8736 + components: + - type: Transform + pos: 23.5,39.5 + parent: 1 + - uid: 8737 + components: + - type: Transform + pos: 23.5,40.5 + parent: 1 + - uid: 8738 + components: + - type: Transform + pos: 24.5,40.5 + parent: 1 + - uid: 8739 + components: + - type: Transform + pos: 25.5,40.5 + parent: 1 + - uid: 8740 + components: + - type: Transform + pos: 9.5,50.5 + parent: 1 + - uid: 8741 + components: + - type: Transform + pos: 26.5,54.5 + parent: 1 + - uid: 8743 + components: + - type: Transform + pos: 10.5,50.5 + parent: 1 + - uid: 8744 + components: + - type: Transform + pos: 30.5,50.5 + parent: 1 + - uid: 8745 + components: + - type: Transform + pos: 30.5,51.5 + parent: 1 + - uid: 8746 + components: + - type: Transform + pos: 30.5,52.5 + parent: 1 + - uid: 8747 + components: + - type: Transform + pos: 30.5,53.5 + parent: 1 + - uid: 8748 + components: + - type: Transform + pos: 30.5,54.5 + parent: 1 + - uid: 8749 + components: + - type: Transform + pos: 29.5,54.5 + parent: 1 + - uid: 8750 + components: + - type: Transform + pos: 28.5,54.5 + parent: 1 + - uid: 8751 + components: + - type: Transform + pos: 9.5,19.5 + parent: 1 + - uid: 8752 + components: + - type: Transform + pos: 12.5,11.5 + parent: 1 + - uid: 8753 + components: + - type: Transform + pos: 12.5,10.5 + parent: 1 + - uid: 8754 + components: + - type: Transform + pos: 12.5,9.5 + parent: 1 + - uid: 8756 + components: + - type: Transform + pos: 5.5,59.5 + parent: 1 + - uid: 8757 + components: + - type: Transform + pos: 6.5,59.5 + parent: 1 + - uid: 8758 + components: + - type: Transform + pos: 7.5,59.5 + parent: 1 + - uid: 8759 + components: + - type: Transform + pos: 8.5,59.5 + parent: 1 + - uid: 8760 + components: + - type: Transform + pos: -31.5,28.5 + parent: 1 + - uid: 8761 + components: + - type: Transform + pos: -32.5,28.5 + parent: 1 + - uid: 8762 + components: + - type: Transform + pos: -30.5,28.5 + parent: 1 + - uid: 8763 + components: + - type: Transform + pos: -32.5,30.5 + parent: 1 + - uid: 8764 + components: + - type: Transform + pos: 12.5,8.5 + parent: 1 + - uid: 8765 + components: + - type: Transform + pos: 12.5,7.5 + parent: 1 + - uid: 8766 + components: + - type: Transform + pos: 11.5,7.5 + parent: 1 + - uid: 8767 + components: + - type: Transform + pos: 2.5,18.5 + parent: 1 + - uid: 8768 + components: + - type: Transform + pos: 2.5,19.5 + parent: 1 + - uid: 8769 + components: + - type: Transform + pos: 2.5,20.5 + parent: 1 + - uid: 8770 + components: + - type: Transform + pos: -11.5,24.5 + parent: 1 + - uid: 8771 + components: + - type: Transform + pos: -10.5,24.5 + parent: 1 + - uid: 8772 + components: + - type: Transform + pos: -7.5,22.5 + parent: 1 + - uid: 8773 + components: + - type: Transform + pos: -7.5,23.5 + parent: 1 + - uid: 8774 + components: + - type: Transform + pos: -7.5,24.5 + parent: 1 + - uid: 8775 + components: + - type: Transform + pos: -7.5,25.5 + parent: 1 + - uid: 8776 + components: + - type: Transform + pos: -6.5,25.5 + parent: 1 + - uid: 8777 + components: + - type: Transform + pos: -5.5,25.5 + parent: 1 + - uid: 8778 + components: + - type: Transform + pos: -4.5,25.5 + parent: 1 + - uid: 8779 + components: + - type: Transform + pos: 7.5,4.5 + parent: 1 + - uid: 8780 + components: + - type: Transform + pos: 7.5,3.5 + parent: 1 + - uid: 8781 + components: + - type: Transform + pos: 7.5,2.5 + parent: 1 + - uid: 8782 + components: + - type: Transform + pos: -12.5,33.5 + parent: 1 + - uid: 8783 + components: + - type: Transform + pos: -16.5,31.5 + parent: 1 + - uid: 8784 + components: + - type: Transform + pos: 12.5,35.5 + parent: 1 + - uid: 8785 + components: + - type: Transform + pos: 11.5,35.5 + parent: 1 + - uid: 8786 + components: + - type: Transform + pos: 11.5,36.5 + parent: 1 + - uid: 8787 + components: + - type: Transform + pos: 11.5,37.5 + parent: 1 + - uid: 8788 + components: + - type: Transform + pos: 0.5,23.5 + parent: 1 + - uid: 8790 + components: + - type: Transform + pos: 24.5,12.5 + parent: 1 + - uid: 8791 + components: + - type: Transform + pos: 23.5,12.5 + parent: 1 + - uid: 8792 + components: + - type: Transform + pos: 22.5,12.5 + parent: 1 + - uid: 8793 + components: + - type: Transform + pos: 21.5,12.5 + parent: 1 + - uid: 8794 + components: + - type: Transform + pos: 11.5,32.5 + parent: 1 + - uid: 8795 + components: + - type: Transform + pos: -13.5,-3.5 + parent: 1 + - uid: 8800 + components: + - type: Transform + pos: 2.5,32.5 + parent: 1 + - uid: 8801 + components: + - type: Transform + pos: 2.5,33.5 + parent: 1 + - uid: 8802 + components: + - type: Transform + pos: 2.5,34.5 + parent: 1 + - uid: 8803 + components: + - type: Transform + pos: 2.5,35.5 + parent: 1 + - uid: 8804 + components: + - type: Transform + pos: 2.5,36.5 + parent: 1 + - uid: 8805 + components: + - type: Transform + pos: 2.5,37.5 + parent: 1 + - uid: 8806 + components: + - type: Transform + pos: 2.5,29.5 + parent: 1 + - uid: 8807 + components: + - type: Transform + pos: 2.5,28.5 + parent: 1 + - uid: 8808 + components: + - type: Transform + pos: 2.5,27.5 + parent: 1 + - uid: 8809 + components: + - type: Transform + pos: 2.5,26.5 + parent: 1 + - uid: 8810 + components: + - type: Transform + pos: 2.5,25.5 + parent: 1 + - uid: 8811 + components: + - type: Transform + pos: 1.5,23.5 + parent: 1 + - uid: 8812 + components: + - type: Transform + pos: 15.5,25.5 + parent: 1 + - uid: 8818 + components: + - type: Transform + pos: 18.5,8.5 + parent: 1 + - uid: 8819 + components: + - type: Transform + pos: 18.5,7.5 + parent: 1 + - uid: 8820 + components: + - type: Transform + pos: 18.5,6.5 + parent: 1 + - uid: 8821 + components: + - type: Transform + pos: 18.5,5.5 + parent: 1 + - uid: 8822 + components: + - type: Transform + pos: 15.5,23.5 + parent: 1 + - uid: 8823 + components: + - type: Transform + pos: 15.5,24.5 + parent: 1 + - uid: 8824 + components: + - type: Transform + pos: -14.5,-4.5 + parent: 1 + - uid: 8825 + components: + - type: Transform + pos: -14.5,-5.5 + parent: 1 + - uid: 8826 + components: + - type: Transform + pos: 9.5,28.5 + parent: 1 + - uid: 8827 + components: + - type: Transform + pos: 9.5,26.5 + parent: 1 + - uid: 8828 + components: + - type: Transform + pos: 9.5,25.5 + parent: 1 + - uid: 8829 + components: + - type: Transform + pos: 8.5,25.5 + parent: 1 + - uid: 8830 + components: + - type: Transform + pos: 7.5,25.5 + parent: 1 + - uid: 8831 + components: + - type: Transform + pos: 6.5,25.5 + parent: 1 + - uid: 8832 + components: + - type: Transform + pos: -14.5,-3.5 + parent: 1 + - uid: 8833 + components: + - type: Transform + pos: 17.5,-4.5 + parent: 1 + - uid: 8834 + components: + - type: Transform + pos: 17.5,-5.5 + parent: 1 + - uid: 8835 + components: + - type: Transform + pos: 17.5,-6.5 + parent: 1 + - uid: 8836 + components: + - type: Transform + pos: 17.5,-7.5 + parent: 1 + - uid: 8837 + components: + - type: Transform + pos: 17.5,-8.5 + parent: 1 + - uid: 8838 + components: + - type: Transform + pos: 13.5,-4.5 + parent: 1 + - uid: 8839 + components: + - type: Transform + pos: 27.5,2.5 + parent: 1 + - uid: 8840 + components: + - type: Transform + pos: 27.5,3.5 + parent: 1 + - uid: 8841 + components: + - type: Transform + pos: 27.5,4.5 + parent: 1 + - uid: 8842 + components: + - type: Transform + pos: 26.5,4.5 + parent: 1 + - uid: 8843 + components: + - type: Transform + pos: 25.5,4.5 + parent: 1 + - uid: 8844 + components: + - type: Transform + pos: 25.5,5.5 + parent: 1 + - uid: 8845 + components: + - type: Transform + pos: 24.5,5.5 + parent: 1 + - uid: 8846 + components: + - type: Transform + pos: 23.5,5.5 + parent: 1 + - uid: 8847 + components: + - type: Transform + pos: 22.5,5.5 + parent: 1 + - uid: 8851 + components: + - type: Transform + pos: 21.5,37.5 + parent: 1 + - uid: 8852 + components: + - type: Transform + pos: 22.5,37.5 + parent: 1 + - uid: 8853 + components: + - type: Transform + pos: 23.5,37.5 + parent: 1 + - uid: 8860 + components: + - type: Transform + pos: 15.5,35.5 + parent: 1 + - uid: 8861 + components: + - type: Transform + pos: 14.5,35.5 + parent: 1 + - uid: 8862 + components: + - type: Transform + pos: 13.5,35.5 + parent: 1 + - uid: 8863 + components: + - type: Transform + pos: -24.5,0.5 + parent: 1 + - uid: 8864 + components: + - type: Transform + pos: -17.5,5.5 + parent: 1 + - uid: 8865 + components: + - type: Transform + pos: -18.5,5.5 + parent: 1 + - uid: 8869 + components: + - type: Transform + pos: -14.5,30.5 + parent: 1 + - uid: 8870 + components: + - type: Transform + pos: -14.5,28.5 + parent: 1 + - uid: 8872 + components: + - type: Transform + pos: 5.5,23.5 + parent: 1 + - uid: 8873 + components: + - type: Transform + pos: 4.5,23.5 + parent: 1 + - uid: 8874 + components: + - type: Transform + pos: 9.5,23.5 + parent: 1 + - uid: 8875 + components: + - type: Transform + pos: 10.5,23.5 + parent: 1 + - uid: 8876 + components: + - type: Transform + pos: 11.5,23.5 + parent: 1 + - uid: 8877 + components: + - type: Transform + pos: 13.5,23.5 + parent: 1 + - uid: 8878 + components: + - type: Transform + pos: 24.5,0.5 + parent: 1 + - uid: 8880 + components: + - type: Transform + pos: -14.5,33.5 + parent: 1 + - uid: 8881 + components: + - type: Transform + pos: -13.5,33.5 + parent: 1 + - uid: 8882 + components: + - type: Transform + pos: 9.5,37.5 + parent: 1 + - uid: 8884 + components: + - type: Transform + pos: 28.5,14.5 + parent: 1 + - uid: 8885 + components: + - type: Transform + pos: 26.5,12.5 + parent: 1 + - uid: 8886 + components: + - type: Transform + pos: 27.5,12.5 + parent: 1 + - uid: 8887 + components: + - type: Transform + pos: 28.5,12.5 + parent: 1 + - uid: 8888 + components: + - type: Transform + pos: 29.5,12.5 + parent: 1 + - uid: 8889 + components: + - type: Transform + pos: 30.5,12.5 + parent: 1 + - uid: 8890 + components: + - type: Transform + pos: 31.5,12.5 + parent: 1 + - uid: 8891 + components: + - type: Transform + pos: 32.5,12.5 + parent: 1 + - uid: 8892 + components: + - type: Transform + pos: 7.5,-1.5 + parent: 1 + - uid: 8893 + components: + - type: Transform + pos: 7.5,-0.5 + parent: 1 + - uid: 8894 + components: + - type: Transform + pos: 7.5,0.5 + parent: 1 + - uid: 8895 + components: + - type: Transform + pos: 7.5,1.5 + parent: 1 + - uid: 8896 + components: + - type: Transform + pos: 11.5,-9.5 + parent: 1 + - uid: 8897 + components: + - type: Transform + pos: 12.5,-9.5 + parent: 1 + - uid: 8898 + components: + - type: Transform + pos: 13.5,-9.5 + parent: 1 + - uid: 8899 + components: + - type: Transform + pos: 13.5,-8.5 + parent: 1 + - uid: 8900 + components: + - type: Transform + pos: 13.5,-7.5 + parent: 1 + - uid: 8901 + components: + - type: Transform + pos: 13.5,-6.5 + parent: 1 + - uid: 8902 + components: + - type: Transform + pos: 13.5,-5.5 + parent: 1 + - uid: 8903 + components: + - type: Transform + pos: 17.5,5.5 + parent: 1 + - uid: 8904 + components: + - type: Transform + pos: 17.5,4.5 + parent: 1 + - uid: 8905 + components: + - type: Transform + pos: 17.5,3.5 + parent: 1 + - uid: 8906 + components: + - type: Transform + pos: 19.5,28.5 + parent: 1 + - uid: 8907 + components: + - type: Transform + pos: 20.5,28.5 + parent: 1 + - uid: 8908 + components: + - type: Transform + pos: 21.5,28.5 + parent: 1 + - uid: 8909 + components: + - type: Transform + pos: 22.5,28.5 + parent: 1 + - uid: 8910 + components: + - type: Transform + pos: 22.5,29.5 + parent: 1 + - uid: 8911 + components: + - type: Transform + pos: 22.5,30.5 + parent: 1 + - uid: 8912 + components: + - type: Transform + pos: 19.5,8.5 + parent: 1 + - uid: 8913 + components: + - type: Transform + pos: 20.5,8.5 + parent: 1 + - uid: 8914 + components: + - type: Transform + pos: 21.5,8.5 + parent: 1 + - uid: 8915 + components: + - type: Transform + pos: -18.5,22.5 + parent: 1 + - uid: 8916 + components: + - type: Transform + pos: 2.5,51.5 + parent: 1 + - uid: 8917 + components: + - type: Transform + pos: 2.5,50.5 + parent: 1 + - uid: 8918 + components: + - type: Transform + pos: 2.5,52.5 + parent: 1 + - uid: 8919 + components: + - type: Transform + pos: 5.5,47.5 + parent: 1 + - uid: 8920 + components: + - type: Transform + pos: 5.5,48.5 + parent: 1 + - uid: 8921 + components: + - type: Transform + pos: 5.5,49.5 + parent: 1 + - uid: 8922 + components: + - type: Transform + pos: -19.5,22.5 + parent: 1 + - uid: 8923 + components: + - type: Transform + pos: 17.5,2.5 + parent: 1 + - uid: 8924 + components: + - type: Transform + pos: -14.5,15.5 + parent: 1 + - uid: 8925 + components: + - type: Transform + pos: -14.5,16.5 + parent: 1 + - uid: 8929 + components: + - type: Transform + pos: -18.5,32.5 + parent: 1 + - uid: 8930 + components: + - type: Transform + pos: -16.5,32.5 + parent: 1 + - uid: 8935 + components: + - type: Transform + pos: 12.5,-4.5 + parent: 1 + - uid: 8936 + components: + - type: Transform + pos: 11.5,-4.5 + parent: 1 + - uid: 8937 + components: + - type: Transform + pos: 10.5,-4.5 + parent: 1 + - uid: 8938 + components: + - type: Transform + pos: 9.5,-4.5 + parent: 1 + - uid: 8939 + components: + - type: Transform + pos: 8.5,-4.5 + parent: 1 + - uid: 8940 + components: + - type: Transform + pos: 8.5,-3.5 + parent: 1 + - uid: 8941 + components: + - type: Transform + pos: 7.5,-3.5 + parent: 1 + - uid: 8942 + components: + - type: Transform + pos: 7.5,-2.5 + parent: 1 + - uid: 8943 + components: + - type: Transform + pos: -15.5,5.5 + parent: 1 + - uid: 8944 + components: + - type: Transform + pos: -31.5,23.5 + parent: 1 + - uid: 8945 + components: + - type: Transform + pos: 3.5,-15.5 + parent: 1 + - uid: 8949 + components: + - type: Transform + pos: -28.5,40.5 + parent: 1 + - uid: 8952 + components: + - type: Transform + pos: -32.5,20.5 + parent: 1 + - uid: 8954 + components: + - type: Transform + pos: -14.5,14.5 + parent: 1 + - uid: 8955 + components: + - type: Transform + pos: -14.5,13.5 + parent: 1 + - uid: 8957 + components: + - type: Transform + pos: -14.5,12.5 + parent: 1 + - uid: 8960 + components: + - type: Transform + pos: 17.5,24.5 + parent: 1 + - uid: 8961 + components: + - type: Transform + pos: 17.5,23.5 + parent: 1 + - uid: 8962 + components: + - type: Transform + pos: 18.5,23.5 + parent: 1 + - uid: 8963 + components: + - type: Transform + pos: 19.5,23.5 + parent: 1 + - uid: 8964 + components: + - type: Transform + pos: 20.5,23.5 + parent: 1 + - uid: 8965 + components: + - type: Transform + pos: 21.5,23.5 + parent: 1 + - uid: 8966 + components: + - type: Transform + pos: 21.5,24.5 + parent: 1 + - uid: 8967 + components: + - type: Transform + pos: 21.5,25.5 + parent: 1 + - uid: 8968 + components: + - type: Transform + pos: 19.5,22.5 + parent: 1 + - uid: 8969 + components: + - type: Transform + pos: 19.5,21.5 + parent: 1 + - uid: 8970 + components: + - type: Transform + pos: 18.5,30.5 + parent: 1 + - uid: 8971 + components: + - type: Transform + pos: 18.5,29.5 + parent: 1 + - uid: 8972 + components: + - type: Transform + pos: 18.5,28.5 + parent: 1 + - uid: 8974 + components: + - type: Transform + pos: 19.5,-5.5 + parent: 1 + - uid: 8975 + components: + - type: Transform + pos: 19.5,-3.5 + parent: 1 + - uid: 8976 + components: + - type: Transform + pos: 19.5,-2.5 + parent: 1 + - uid: 8977 + components: + - type: Transform + pos: 19.5,-1.5 + parent: 1 + - uid: 8978 + components: + - type: Transform + pos: 23.5,35.5 + parent: 1 + - uid: 8979 + components: + - type: Transform + pos: 23.5,34.5 + parent: 1 + - uid: 8980 + components: + - type: Transform + pos: 22.5,34.5 + parent: 1 + - uid: 8981 + components: + - type: Transform + pos: 21.5,34.5 + parent: 1 + - uid: 8982 + components: + - type: Transform + pos: 20.5,34.5 + parent: 1 + - uid: 8983 + components: + - type: Transform + pos: 19.5,31.5 + parent: 1 + - uid: 8984 + components: + - type: Transform + pos: 19.5,30.5 + parent: 1 + - uid: 8985 + components: + - type: Transform + pos: 18.5,34.5 + parent: 1 + - uid: 8986 + components: + - type: Transform + pos: 19.5,-0.5 + parent: 1 + - uid: 8987 + components: + - type: Transform + pos: 18.5,32.5 + parent: 1 + - uid: 8988 + components: + - type: Transform + pos: 19.5,32.5 + parent: 1 + - uid: 8989 + components: + - type: Transform + pos: 18.5,33.5 + parent: 1 + - uid: 8990 + components: + - type: Transform + pos: 20.5,-0.5 + parent: 1 + - uid: 8991 + components: + - type: Transform + pos: 9.5,59.5 + parent: 1 + - uid: 8998 + components: + - type: Transform + pos: 17.5,34.5 + parent: 1 + - uid: 8999 + components: + - type: Transform + pos: 16.5,34.5 + parent: 1 + - uid: 9000 + components: + - type: Transform + pos: 15.5,34.5 + parent: 1 + - uid: 9001 + components: + - type: Transform + pos: 15.5,33.5 + parent: 1 + - uid: 9002 + components: + - type: Transform + pos: 15.5,32.5 + parent: 1 + - uid: 9005 + components: + - type: Transform + pos: -14.5,10.5 + parent: 1 + - uid: 9006 + components: + - type: Transform + pos: -14.5,11.5 + parent: 1 + - uid: 9007 + components: + - type: Transform + pos: -14.5,24.5 + parent: 1 + - uid: 9008 + components: + - type: Transform + pos: -14.5,23.5 + parent: 1 + - uid: 9009 + components: + - type: Transform + pos: -14.5,22.5 + parent: 1 + - uid: 9010 + components: + - type: Transform + pos: -14.5,21.5 + parent: 1 + - uid: 9011 + components: + - type: Transform + pos: -28.5,3.5 + parent: 1 + - uid: 9015 + components: + - type: Transform + pos: -14.5,31.5 + parent: 1 + - uid: 9016 + components: + - type: Transform + pos: -14.5,29.5 + parent: 1 + - uid: 9017 + components: + - type: Transform + pos: -30.5,23.5 + parent: 1 + - uid: 9018 + components: + - type: Transform + pos: -31.5,3.5 + parent: 1 + - uid: 9019 + components: + - type: Transform + pos: -32.5,3.5 + parent: 1 + - uid: 9020 + components: + - type: Transform + pos: -14.5,9.5 + parent: 1 + - uid: 9021 + components: + - type: Transform + pos: 18.5,-12.5 + parent: 1 + - uid: 9022 + components: + - type: Transform + pos: 18.5,-11.5 + parent: 1 + - uid: 9023 + components: + - type: Transform + pos: 18.5,-10.5 + parent: 1 + - uid: 9024 + components: + - type: Transform + pos: 20.5,-9.5 + parent: 1 + - uid: 9025 + components: + - type: Transform + pos: 19.5,-9.5 + parent: 1 + - uid: 9026 + components: + - type: Transform + pos: 18.5,-9.5 + parent: 1 + - uid: 9027 + components: + - type: Transform + pos: 17.5,-9.5 + parent: 1 + - uid: 9028 + components: + - type: Transform + pos: 18.5,-13.5 + parent: 1 + - uid: 9029 + components: + - type: Transform + pos: 20.5,-13.5 + parent: 1 + - uid: 9030 + components: + - type: Transform + pos: 20.5,-12.5 + parent: 1 + - uid: 9031 + components: + - type: Transform + pos: 20.5,-11.5 + parent: 1 + - uid: 9032 + components: + - type: Transform + pos: -14.5,17.5 + parent: 1 + - uid: 9033 + components: + - type: Transform + pos: -14.5,18.5 + parent: 1 + - uid: 9034 + components: + - type: Transform + pos: -14.5,19.5 + parent: 1 + - uid: 9036 + components: + - type: Transform + pos: 39.5,15.5 + parent: 1 + - uid: 9037 + components: + - type: Transform + pos: 38.5,15.5 + parent: 1 + - uid: 9038 + components: + - type: Transform + pos: 37.5,15.5 + parent: 1 + - uid: 9039 + components: + - type: Transform + pos: 36.5,15.5 + parent: 1 + - uid: 9041 + components: + - type: Transform + pos: 35.5,14.5 + parent: 1 + - uid: 9042 + components: + - type: Transform + pos: 35.5,13.5 + parent: 1 + - uid: 9044 + components: + - type: Transform + pos: 5.5,58.5 + parent: 1 + - uid: 9045 + components: + - type: Transform + pos: 5.5,56.5 + parent: 1 + - uid: 9046 + components: + - type: Transform + pos: 5.5,57.5 + parent: 1 + - uid: 9047 + components: + - type: Transform + pos: 5.5,55.5 + parent: 1 + - uid: 9048 + components: + - type: Transform + pos: 5.5,54.5 + parent: 1 + - uid: 9049 + components: + - type: Transform + pos: 5.5,53.5 + parent: 1 + - uid: 9050 + components: + - type: Transform + pos: 5.5,52.5 + parent: 1 + - uid: 9051 + components: + - type: Transform + pos: 5.5,51.5 + parent: 1 + - uid: 9052 + components: + - type: Transform + pos: 5.5,50.5 + parent: 1 + - uid: 9063 + components: + - type: Transform + pos: 17.5,1.5 + parent: 1 + - uid: 9064 + components: + - type: Transform + pos: 17.5,0.5 + parent: 1 + - uid: 9065 + components: + - type: Transform + pos: 17.5,-0.5 + parent: 1 + - uid: 9066 + components: + - type: Transform + pos: 17.5,-1.5 + parent: 1 + - uid: 9067 + components: + - type: Transform + pos: 17.5,-2.5 + parent: 1 + - uid: 9068 + components: + - type: Transform + pos: 17.5,-3.5 + parent: 1 + - uid: 9069 + components: + - type: Transform + pos: -16.5,5.5 + parent: 1 + - uid: 9070 + components: + - type: Transform + pos: -14.5,27.5 + parent: 1 + - uid: 9071 + components: + - type: Transform + pos: -14.5,26.5 + parent: 1 + - uid: 9072 + components: + - type: Transform + pos: -14.5,25.5 + parent: 1 + - uid: 9073 + components: + - type: Transform + pos: 41.5,6.5 + parent: 1 + - uid: 9074 + components: + - type: Transform + pos: 42.5,6.5 + parent: 1 + - uid: 9075 + components: + - type: Transform + pos: 40.5,6.5 + parent: 1 + - uid: 9076 + components: + - type: Transform + pos: 39.5,6.5 + parent: 1 + - uid: 9077 + components: + - type: Transform + pos: 39.5,7.5 + parent: 1 + - uid: 9078 + components: + - type: Transform + pos: 39.5,8.5 + parent: 1 + - uid: 9079 + components: + - type: Transform + pos: 38.5,8.5 + parent: 1 + - uid: 9080 + components: + - type: Transform + pos: 37.5,8.5 + parent: 1 + - uid: 9081 + components: + - type: Transform + pos: 36.5,8.5 + parent: 1 + - uid: 9082 + components: + - type: Transform + pos: 35.5,8.5 + parent: 1 + - uid: 9083 + components: + - type: Transform + pos: 35.5,9.5 + parent: 1 + - uid: 9084 + components: + - type: Transform + pos: 35.5,10.5 + parent: 1 + - uid: 9085 + components: + - type: Transform + pos: 35.5,11.5 + parent: 1 + - uid: 9086 + components: + - type: Transform + pos: 42.5,17.5 + parent: 1 + - uid: 9087 + components: + - type: Transform + pos: 41.5,17.5 + parent: 1 + - uid: 9088 + components: + - type: Transform + pos: 40.5,17.5 + parent: 1 + - uid: 9089 + components: + - type: Transform + pos: 39.5,17.5 + parent: 1 + - uid: 9090 + components: + - type: Transform + pos: 39.5,16.5 + parent: 1 + - uid: 9091 + components: + - type: Transform + pos: -21.5,0.5 + parent: 1 + - uid: 9092 + components: + - type: Transform + pos: -20.5,0.5 + parent: 1 + - uid: 9093 + components: + - type: Transform + pos: -19.5,0.5 + parent: 1 + - uid: 9094 + components: + - type: Transform + pos: -18.5,0.5 + parent: 1 + - uid: 9095 + components: + - type: Transform + pos: -18.5,1.5 + parent: 1 + - uid: 9099 + components: + - type: Transform + pos: 28.5,19.5 + parent: 1 + - uid: 9100 + components: + - type: Transform + pos: 28.5,20.5 + parent: 1 + - uid: 9101 + components: + - type: Transform + pos: 28.5,21.5 + parent: 1 + - uid: 9102 + components: + - type: Transform + pos: 24.5,24.5 + parent: 1 + - uid: 9103 + components: + - type: Transform + pos: 24.5,22.5 + parent: 1 + - uid: 9104 + components: + - type: Transform + pos: 24.5,23.5 + parent: 1 + - uid: 9105 + components: + - type: Transform + pos: 24.5,23.5 + parent: 1 + - uid: 9106 + components: + - type: Transform + pos: 24.5,25.5 + parent: 1 + - uid: 9107 + components: + - type: Transform + pos: 25.5,25.5 + parent: 1 + - uid: 9108 + components: + - type: Transform + pos: 26.5,25.5 + parent: 1 + - uid: 9109 + components: + - type: Transform + pos: 27.5,25.5 + parent: 1 + - uid: 9110 + components: + - type: Transform + pos: -32.5,23.5 + parent: 1 + - uid: 9111 + components: + - type: Transform + pos: -29.5,22.5 + parent: 1 + - uid: 9112 + components: + - type: Transform + pos: -18.5,4.5 + parent: 1 + - uid: 9113 + components: + - type: Transform + pos: -38.5,41.5 + parent: 1 + - uid: 9114 + components: + - type: Transform + pos: -38.5,40.5 + parent: 1 + - uid: 9116 + components: + - type: Transform + pos: -27.5,0.5 + parent: 1 + - uid: 9117 + components: + - type: Transform + pos: -26.5,0.5 + parent: 1 + - uid: 9118 + components: + - type: Transform + pos: -25.5,0.5 + parent: 1 + - uid: 9120 + components: + - type: Transform + pos: -2.5,56.5 + parent: 1 + - uid: 9121 + components: + - type: Transform + pos: 21.5,-0.5 + parent: 1 + - uid: 9122 + components: + - type: Transform + pos: 22.5,-0.5 + parent: 1 + - uid: 9123 + components: + - type: Transform + pos: 22.5,-1.5 + parent: 1 + - uid: 9124 + components: + - type: Transform + pos: 22.5,-2.5 + parent: 1 + - uid: 9125 + components: + - type: Transform + pos: 22.5,-3.5 + parent: 1 + - uid: 9126 + components: + - type: Transform + pos: 22.5,-4.5 + parent: 1 + - uid: 9127 + components: + - type: Transform + pos: 23.5,-4.5 + parent: 1 + - uid: 9139 + components: + - type: Transform + pos: 28.5,28.5 + parent: 1 + - uid: 9140 + components: + - type: Transform + pos: 29.5,28.5 + parent: 1 + - uid: 9141 + components: + - type: Transform + pos: 30.5,28.5 + parent: 1 + - uid: 9142 + components: + - type: Transform + pos: 30.5,29.5 + parent: 1 + - uid: 9143 + components: + - type: Transform + pos: 31.5,29.5 + parent: 1 + - uid: 9144 + components: + - type: Transform + pos: 32.5,29.5 + parent: 1 + - uid: 9145 + components: + - type: Transform + pos: 33.5,29.5 + parent: 1 + - uid: 9146 + components: + - type: Transform + pos: 33.5,27.5 + parent: 1 + - uid: 9147 + components: + - type: Transform + pos: 32.5,27.5 + parent: 1 + - uid: 9148 + components: + - type: Transform + pos: 19.5,-8.5 + parent: 1 + - uid: 9149 + components: + - type: Transform + pos: 19.5,-7.5 + parent: 1 + - uid: 9150 + components: + - type: Transform + pos: 19.5,-6.5 + parent: 1 + - uid: 9151 + components: + - type: Transform + pos: 19.5,-4.5 + parent: 1 + - uid: 9153 + components: + - type: Transform + pos: -26.5,22.5 + parent: 1 + - uid: 9156 + components: + - type: Transform + pos: -25.5,22.5 + parent: 1 + - uid: 9157 + components: + - type: Transform + pos: -24.5,22.5 + parent: 1 + - uid: 9158 + components: + - type: Transform + pos: -23.5,22.5 + parent: 1 + - uid: 9159 + components: + - type: Transform + pos: 28.5,32.5 + parent: 1 + - uid: 9160 + components: + - type: Transform + pos: 28.5,33.5 + parent: 1 + - uid: 9161 + components: + - type: Transform + pos: 24.5,34.5 + parent: 1 + - uid: 9162 + components: + - type: Transform + pos: 25.5,34.5 + parent: 1 + - uid: 9163 + components: + - type: Transform + pos: 26.5,34.5 + parent: 1 + - uid: 9164 + components: + - type: Transform + pos: 27.5,34.5 + parent: 1 + - uid: 9165 + components: + - type: Transform + pos: 28.5,34.5 + parent: 1 + - uid: 9166 + components: + - type: Transform + pos: 29.5,34.5 + parent: 1 + - uid: 9167 + components: + - type: Transform + pos: 30.5,34.5 + parent: 1 + - uid: 9168 + components: + - type: Transform + pos: 31.5,34.5 + parent: 1 + - uid: 9169 + components: + - type: Transform + pos: 32.5,34.5 + parent: 1 + - uid: 9170 + components: + - type: Transform + pos: 33.5,34.5 + parent: 1 + - uid: 9171 + components: + - type: Transform + pos: 27.5,29.5 + parent: 1 + - uid: 9172 + components: + - type: Transform + pos: 27.5,30.5 + parent: 1 + - uid: 9173 + components: + - type: Transform + pos: -23.5,0.5 + parent: 1 + - uid: 9174 + components: + - type: Transform + pos: -22.5,0.5 + parent: 1 + - uid: 9176 + components: + - type: Transform + pos: -1.5,56.5 + parent: 1 + - uid: 9177 + components: + - type: Transform + pos: -0.5,56.5 + parent: 1 + - uid: 9178 + components: + - type: Transform + pos: 0.5,56.5 + parent: 1 + - uid: 9182 + components: + - type: Transform + pos: -17.5,23.5 + parent: 1 + - uid: 9183 + components: + - type: Transform + pos: -17.5,22.5 + parent: 1 + - uid: 9184 + components: + - type: Transform + pos: -32.5,34.5 + parent: 1 + - uid: 9185 + components: + - type: Transform + pos: -32.5,35.5 + parent: 1 + - uid: 9187 + components: + - type: Transform + pos: 28.5,30.5 + parent: 1 + - uid: 9188 + components: + - type: Transform + pos: 28.5,31.5 + parent: 1 + - uid: 9190 + components: + - type: Transform + pos: 31.5,27.5 + parent: 1 + - uid: 9191 + components: + - type: Transform + pos: 30.5,27.5 + parent: 1 + - uid: 9192 + components: + - type: Transform + pos: 30.5,26.5 + parent: 1 + - uid: 9193 + components: + - type: Transform + pos: 30.5,25.5 + parent: 1 + - uid: 9194 + components: + - type: Transform + pos: 29.5,25.5 + parent: 1 + - uid: 9195 + components: + - type: Transform + pos: 28.5,25.5 + parent: 1 + - uid: 9196 + components: + - type: Transform + pos: 28.5,24.5 + parent: 1 + - uid: 9197 + components: + - type: Transform + pos: 28.5,23.5 + parent: 1 + - uid: 9198 + components: + - type: Transform + pos: 28.5,22.5 + parent: 1 + - uid: 9199 + components: + - type: Transform + pos: -14.5,8.5 + parent: 1 + - uid: 9200 + components: + - type: Transform + pos: -14.5,7.5 + parent: 1 + - uid: 9201 + components: + - type: Transform + pos: -14.5,6.5 + parent: 1 + - uid: 9202 + components: + - type: Transform + pos: -14.5,5.5 + parent: 1 + - uid: 9203 + components: + - type: Transform + pos: -21.5,22.5 + parent: 1 + - uid: 9204 + components: + - type: Transform + pos: -20.5,22.5 + parent: 1 + - uid: 9206 + components: + - type: Transform + pos: 43.5,14.5 + parent: 1 + - uid: 9207 + components: + - type: Transform + pos: 43.5,13.5 + parent: 1 + - uid: 9208 + components: + - type: Transform + pos: 43.5,12.5 + parent: 1 + - uid: 9209 + components: + - type: Transform + pos: 42.5,12.5 + parent: 1 + - uid: 9210 + components: + - type: Transform + pos: 41.5,12.5 + parent: 1 + - uid: 9211 + components: + - type: Transform + pos: 40.5,12.5 + parent: 1 + - uid: 9212 + components: + - type: Transform + pos: 39.5,12.5 + parent: 1 + - uid: 9213 + components: + - type: Transform + pos: 38.5,12.5 + parent: 1 + - uid: 9214 + components: + - type: Transform + pos: 37.5,12.5 + parent: 1 + - uid: 9215 + components: + - type: Transform + pos: 36.5,12.5 + parent: 1 + - uid: 9216 + components: + - type: Transform + pos: 35.5,12.5 + parent: 1 + - uid: 9217 + components: + - type: Transform + pos: 34.5,12.5 + parent: 1 + - uid: 9218 + components: + - type: Transform + pos: 33.5,12.5 + parent: 1 + - uid: 9219 + components: + - type: Transform + pos: 43.5,11.5 + parent: 1 + - uid: 9220 + components: + - type: Transform + pos: 43.5,10.5 + parent: 1 + - uid: 9221 + components: + - type: Transform + pos: 44.5,10.5 + parent: 1 + - uid: 9222 + components: + - type: Transform + pos: 45.5,10.5 + parent: 1 + - uid: 9223 + components: + - type: Transform + pos: 46.5,10.5 + parent: 1 + - uid: 9224 + components: + - type: Transform + pos: 47.5,10.5 + parent: 1 + - uid: 9225 + components: + - type: Transform + pos: 47.5,11.5 + parent: 1 + - uid: 9226 + components: + - type: Transform + pos: 47.5,12.5 + parent: 1 + - uid: 9227 + components: + - type: Transform + pos: 47.5,13.5 + parent: 1 + - uid: 9228 + components: + - type: Transform + pos: 46.5,13.5 + parent: 1 + - uid: 9229 + components: + - type: Transform + pos: 46.5,14.5 + parent: 1 + - uid: 9235 + components: + - type: Transform + pos: -30.5,41.5 + parent: 1 + - uid: 9236 + components: + - type: Transform + pos: -18.5,3.5 + parent: 1 + - uid: 9237 + components: + - type: Transform + pos: -18.5,2.5 + parent: 1 + - uid: 9238 + components: + - type: Transform + pos: 27.5,28.5 + parent: 1 + - uid: 9239 + components: + - type: Transform + pos: -22.5,22.5 + parent: 1 + - uid: 9240 + components: + - type: Transform + pos: 20.5,-10.5 + parent: 1 + - uid: 9241 + components: + - type: Transform + pos: -16.5,4.5 + parent: 1 + - uid: 9247 + components: + - type: Transform + pos: -28.5,2.5 + parent: 1 + - uid: 9249 + components: + - type: Transform + pos: 4.5,-11.5 + parent: 1 + - uid: 9261 + components: + - type: Transform + pos: 28.5,10.5 + parent: 1 + - uid: 9262 + components: + - type: Transform + pos: 28.5,9.5 + parent: 1 + - uid: 9263 + components: + - type: Transform + pos: 28.5,8.5 + parent: 1 + - uid: 9264 + components: + - type: Transform + pos: 27.5,8.5 + parent: 1 + - uid: 9265 + components: + - type: Transform + pos: 26.5,8.5 + parent: 1 + - uid: 9266 + components: + - type: Transform + pos: 25.5,8.5 + parent: 1 + - uid: 9267 + components: + - type: Transform + pos: 24.5,8.5 + parent: 1 + - uid: 9268 + components: + - type: Transform + pos: 23.5,8.5 + parent: 1 + - uid: 9269 + components: + - type: Transform + pos: 22.5,8.5 + parent: 1 + - uid: 9270 + components: + - type: Transform + pos: -14.5,32.5 + parent: 1 + - uid: 9271 + components: + - type: Transform + pos: -14.5,35.5 + parent: 1 + - uid: 9273 + components: + - type: Transform + pos: 2.5,49.5 + parent: 1 + - uid: 9275 + components: + - type: Transform + pos: -29.5,41.5 + parent: 1 + - uid: 9305 + components: + - type: Transform + pos: -31.5,21.5 + parent: 1 + - uid: 9306 + components: + - type: Transform + pos: -32.5,21.5 + parent: 1 + - uid: 9307 + components: + - type: Transform + pos: -30.5,19.5 + parent: 1 + - uid: 9308 + components: + - type: Transform + pos: -30.5,20.5 + parent: 1 + - uid: 9309 + components: + - type: Transform + pos: -30.5,21.5 + parent: 1 + - uid: 9310 + components: + - type: Transform + pos: -30.5,22.5 + parent: 1 + - uid: 9313 + components: + - type: Transform + pos: -16.5,33.5 + parent: 1 + - uid: 9314 + components: + - type: Transform + pos: -15.5,33.5 + parent: 1 + - uid: 9316 + components: + - type: Transform + pos: -28.5,1.5 + parent: 1 + - uid: 9317 + components: + - type: Transform + pos: -28.5,0.5 + parent: 1 + - uid: 9318 + components: + - type: Transform + pos: -18.5,31.5 + parent: 1 + - uid: 9319 + components: + - type: Transform + pos: -18.5,33.5 + parent: 1 + - uid: 9320 + components: + - type: Transform + pos: -17.5,34.5 + parent: 1 + - uid: 9321 + components: + - type: Transform + pos: -14.5,36.5 + parent: 1 + - uid: 9322 + components: + - type: Transform + pos: -17.5,35.5 + parent: 1 + - uid: 9323 + components: + - type: Transform + pos: -29.5,3.5 + parent: 1 + - uid: 9324 + components: + - type: Transform + pos: -30.5,3.5 + parent: 1 + - uid: 9336 + components: + - type: Transform + pos: -37.5,41.5 + parent: 1 + - uid: 9345 + components: + - type: Transform + pos: 2.5,-15.5 + parent: 1 + - uid: 9356 + components: + - type: Transform + pos: -28.5,22.5 + parent: 1 + - uid: 9379 + components: + - type: Transform + pos: 5.5,60.5 + parent: 1 + - uid: 9380 + components: + - type: Transform + pos: 5.5,62.5 + parent: 1 + - uid: 9381 + components: + - type: Transform + pos: 5.5,61.5 + parent: 1 + - uid: 9382 + components: + - type: Transform + pos: 5.5,63.5 + parent: 1 + - uid: 9400 + components: + - type: Transform + pos: 1.5,-15.5 + parent: 1 + - uid: 9401 + components: + - type: Transform + pos: 0.5,-15.5 + parent: 1 + - uid: 9402 + components: + - type: Transform + pos: -1.5,-15.5 + parent: 1 + - uid: 9403 + components: + - type: Transform + pos: -0.5,-15.5 + parent: 1 + - uid: 9404 + components: + - type: Transform + pos: -2.5,-15.5 + parent: 1 + - uid: 9405 + components: + - type: Transform + pos: -4.5,-15.5 + parent: 1 + - uid: 9406 + components: + - type: Transform + pos: -3.5,-15.5 + parent: 1 + - uid: 9407 + components: + - type: Transform + pos: -5.5,-15.5 + parent: 1 + - uid: 9408 + components: + - type: Transform + pos: -6.5,-15.5 + parent: 1 + - uid: 9409 + components: + - type: Transform + pos: -7.5,-15.5 + parent: 1 + - uid: 9410 + components: + - type: Transform + pos: -8.5,-15.5 + parent: 1 + - uid: 9411 + components: + - type: Transform + pos: -8.5,-14.5 + parent: 1 + - uid: 9415 + components: + - type: Transform + pos: 20.5,57.5 + parent: 1 + - uid: 9416 + components: + - type: Transform + pos: 19.5,57.5 + parent: 1 + - uid: 9417 + components: + - type: Transform + pos: 18.5,57.5 + parent: 1 + - uid: 9418 + components: + - type: Transform + pos: 17.5,57.5 + parent: 1 + - uid: 9419 + components: + - type: Transform + pos: 16.5,57.5 + parent: 1 + - uid: 9420 + components: + - type: Transform + pos: 16.5,58.5 + parent: 1 + - uid: 9421 + components: + - type: Transform + pos: 15.5,59.5 + parent: 1 + - uid: 9422 + components: + - type: Transform + pos: 15.5,58.5 + parent: 1 + - uid: 9423 + components: + - type: Transform + pos: 15.5,60.5 + parent: 1 + - uid: 9424 + components: + - type: Transform + pos: 15.5,61.5 + parent: 1 + - uid: 9425 + components: + - type: Transform + pos: 15.5,62.5 + parent: 1 + - uid: 9426 + components: + - type: Transform + pos: 15.5,63.5 + parent: 1 + - uid: 9427 + components: + - type: Transform + pos: 3.5,-10.5 + parent: 1 + - uid: 9428 + components: + - type: Transform + pos: 3.5,-9.5 + parent: 1 + - uid: 9430 + components: + - type: Transform + pos: 25.5,17.5 + parent: 1 + - uid: 9431 + components: + - type: Transform + pos: 25.5,16.5 + parent: 1 + - uid: 9432 + components: + - type: Transform + pos: 25.5,15.5 + parent: 1 + - uid: 9433 + components: + - type: Transform + pos: 25.5,14.5 + parent: 1 + - uid: 9434 + components: + - type: Transform + pos: 24.5,14.5 + parent: 1 + - uid: 9435 + components: + - type: Transform + pos: 23.5,14.5 + parent: 1 + - uid: 9436 + components: + - type: Transform + pos: 22.5,14.5 + parent: 1 + - uid: 9437 + components: + - type: Transform + pos: 21.5,17.5 + parent: 1 + - uid: 9438 + components: + - type: Transform + pos: 21.5,16.5 + parent: 1 + - uid: 9439 + components: + - type: Transform + pos: 21.5,15.5 + parent: 1 + - uid: 9440 + components: + - type: Transform + pos: 20.5,14.5 + parent: 1 + - uid: 9441 + components: + - type: Transform + pos: 21.5,14.5 + parent: 1 + - uid: 9442 + components: + - type: Transform + pos: 19.5,14.5 + parent: 1 + - uid: 9443 + components: + - type: Transform + pos: 18.5,14.5 + parent: 1 + - uid: 9456 + components: + - type: Transform + pos: 5.5,16.5 + parent: 1 + - uid: 9457 + components: + - type: Transform + pos: 5.5,17.5 + parent: 1 + - uid: 9458 + components: + - type: Transform + pos: 5.5,18.5 + parent: 1 + - uid: 9459 + components: + - type: Transform + pos: 5.5,19.5 + parent: 1 + - uid: 9460 + components: + - type: Transform + pos: 5.5,20.5 + parent: 1 + - uid: 9461 + components: + - type: Transform + pos: 4.5,20.5 + parent: 1 + - uid: 9490 + components: + - type: Transform + pos: -28.5,42.5 + parent: 1 + - uid: 9512 + components: + - type: Transform + pos: 15.5,65.5 + parent: 1 + - uid: 9513 + components: + - type: Transform + pos: 15.5,66.5 + parent: 1 + - uid: 9514 + components: + - type: Transform + pos: 15.5,67.5 + parent: 1 + - uid: 9515 + components: + - type: Transform + pos: 15.5,68.5 + parent: 1 + - uid: 9516 + components: + - type: Transform + pos: 15.5,69.5 + parent: 1 + - uid: 9517 + components: + - type: Transform + pos: 14.5,69.5 + parent: 1 + - uid: 9518 + components: + - type: Transform + pos: 13.5,69.5 + parent: 1 + - uid: 9519 + components: + - type: Transform + pos: 12.5,69.5 + parent: 1 + - uid: 9520 + components: + - type: Transform + pos: 11.5,69.5 + parent: 1 + - uid: 9521 + components: + - type: Transform + pos: 8.5,67.5 + parent: 1 + - uid: 9522 + components: + - type: Transform + pos: 7.5,67.5 + parent: 1 + - uid: 9523 + components: + - type: Transform + pos: 7.5,67.5 + parent: 1 + - uid: 9524 + components: + - type: Transform + pos: 5.5,64.5 + parent: 1 + - uid: 9525 + components: + - type: Transform + pos: 5.5,65.5 + parent: 1 + - uid: 9526 + components: + - type: Transform + pos: 5.5,66.5 + parent: 1 + - uid: 9527 + components: + - type: Transform + pos: 9.5,69.5 + parent: 1 + - uid: 9528 + components: + - type: Transform + pos: 8.5,69.5 + parent: 1 + - uid: 9529 + components: + - type: Transform + pos: 7.5,69.5 + parent: 1 + - uid: 9530 + components: + - type: Transform + pos: 6.5,69.5 + parent: 1 + - uid: 9531 + components: + - type: Transform + pos: 5.5,69.5 + parent: 1 + - uid: 9532 + components: + - type: Transform + pos: 5.5,68.5 + parent: 1 + - uid: 9533 + components: + - type: Transform + pos: 5.5,67.5 + parent: 1 + - uid: 9547 + components: + - type: Transform + pos: 5.5,15.5 + parent: 1 + - uid: 9548 + components: + - type: Transform + pos: 13.5,37.5 + parent: 1 + - uid: 9549 + components: + - type: Transform + pos: 14.5,37.5 + parent: 1 + - uid: 9550 + components: + - type: Transform + pos: 15.5,37.5 + parent: 1 + - uid: 9551 + components: + - type: Transform + pos: 16.5,37.5 + parent: 1 + - uid: 9552 + components: + - type: Transform + pos: 17.5,37.5 + parent: 1 + - uid: 9553 + components: + - type: Transform + pos: 18.5,37.5 + parent: 1 + - uid: 9554 + components: + - type: Transform + pos: 19.5,37.5 + parent: 1 + - uid: 9555 + components: + - type: Transform + pos: 20.5,37.5 + parent: 1 + - uid: 9564 + components: + - type: Transform + pos: -8.5,-12.5 + parent: 1 + - uid: 9565 + components: + - type: Transform + pos: -8.5,-13.5 + parent: 1 + - uid: 9579 + components: + - type: Transform + pos: 27.5,5.5 + parent: 1 + - uid: 9580 + components: + - type: Transform + pos: 27.5,6.5 + parent: 1 + - uid: 9585 + components: + - type: Transform + pos: -28.5,41.5 + parent: 1 + - uid: 9625 + components: + - type: Transform + pos: 13.5,2.5 + parent: 1 + - uid: 9626 + components: + - type: Transform + pos: 14.5,3.5 + parent: 1 + - uid: 9627 + components: + - type: Transform + pos: 14.5,2.5 + parent: 1 + - uid: 9717 + components: + - type: Transform + pos: -30.5,48.5 + parent: 1 + - uid: 9718 + components: + - type: Transform + pos: -31.5,48.5 + parent: 1 + - uid: 9719 + components: + - type: Transform + pos: -33.5,48.5 + parent: 1 + - uid: 9720 + components: + - type: Transform + pos: -32.5,48.5 + parent: 1 + - uid: 9721 + components: + - type: Transform + pos: -34.5,48.5 + parent: 1 + - uid: 9722 + components: + - type: Transform + pos: -35.5,48.5 + parent: 1 + - uid: 9723 + components: + - type: Transform + pos: -36.5,48.5 + parent: 1 + - uid: 9724 + components: + - type: Transform + pos: -33.5,47.5 + parent: 1 + - uid: 9725 + components: + - type: Transform + pos: -33.5,46.5 + parent: 1 + - uid: 10277 + components: + - type: Transform + pos: -8.5,54.5 + parent: 1 + - uid: 12321 + components: + - type: Transform + pos: -4.5,-23.5 + parent: 1 + - uid: 12322 + components: + - type: Transform + pos: -3.5,-23.5 + parent: 1 + - uid: 12323 + components: + - type: Transform + pos: -2.5,-23.5 + parent: 1 + - uid: 12477 + components: + - type: Transform + pos: -27.5,-22.5 + parent: 1 + - uid: 12488 + components: + - type: Transform + pos: -5.5,-23.5 + parent: 1 + - uid: 12489 + components: + - type: Transform + pos: -6.5,-23.5 + parent: 1 + - uid: 12490 + components: + - type: Transform + pos: -7.5,-23.5 + parent: 1 + - uid: 12511 + components: + - type: Transform + pos: -25.5,-22.5 + parent: 1 + - uid: 12512 + components: + - type: Transform + pos: -24.5,-22.5 + parent: 1 + - uid: 12513 + components: + - type: Transform + pos: -23.5,-22.5 + parent: 1 + - uid: 12574 + components: + - type: Transform + pos: -0.5,-23.5 + parent: 1 + - uid: 12577 + components: + - type: Transform + pos: -1.5,-23.5 + parent: 1 + - uid: 12622 + components: + - type: Transform + pos: -10.5,-24.5 + parent: 1 + - uid: 12631 + components: + - type: Transform + pos: 3.5,-23.5 + parent: 1 + - uid: 12642 + components: + - type: Transform + pos: -8.5,-23.5 + parent: 1 + - uid: 12643 + components: + - type: Transform + pos: -22.5,-22.5 + parent: 1 + - uid: 12646 + components: + - type: Transform + pos: -26.5,-22.5 + parent: 1 + - uid: 12649 + components: + - type: Transform + pos: -9.5,-24.5 + parent: 1 + - uid: 13337 + components: + - type: Transform + pos: -50.5,-6.5 + parent: 1 + - uid: 13371 + components: + - type: Transform + pos: -46.5,-11.5 + parent: 1 + - uid: 13398 + components: + - type: Transform + pos: -49.5,-11.5 + parent: 1 + - uid: 13408 + components: + - type: Transform + pos: -53.5,-14.5 + parent: 1 + - uid: 13436 + components: + - type: Transform + pos: -50.5,-14.5 + parent: 1 + - uid: 13462 + components: + - type: Transform + pos: -52.5,-14.5 + parent: 1 + - uid: 13469 + components: + - type: Transform + pos: -54.5,-11.5 + parent: 1 + - uid: 13481 + components: + - type: Transform + pos: -49.5,-7.5 + parent: 1 + - uid: 13492 + components: + - type: Transform + pos: -47.5,-7.5 + parent: 1 + - uid: 13496 + components: + - type: Transform + pos: -48.5,-11.5 + parent: 1 + - uid: 13503 + components: + - type: Transform + pos: -52.5,-11.5 + parent: 1 + - uid: 13600 + components: + - type: Transform + pos: -46.5,-7.5 + parent: 1 + - uid: 13601 + components: + - type: Transform + pos: -53.5,-11.5 + parent: 1 + - uid: 14288 + components: + - type: Transform + pos: -40.5,15.5 + parent: 1 + - uid: 14289 + components: + - type: Transform + pos: -40.5,16.5 + parent: 1 + - uid: 14290 + components: + - type: Transform + pos: -40.5,17.5 + parent: 1 + - uid: 14291 + components: + - type: Transform + pos: -39.5,17.5 + parent: 1 + - uid: 14292 + components: + - type: Transform + pos: -38.5,17.5 + parent: 1 + - uid: 14293 + components: + - type: Transform + pos: -37.5,17.5 + parent: 1 + - uid: 14294 + components: + - type: Transform + pos: -37.5,18.5 + parent: 1 + - uid: 14301 + components: + - type: Transform + pos: -41.5,17.5 + parent: 1 + - uid: 14302 + components: + - type: Transform + pos: -42.5,17.5 + parent: 1 + - uid: 14303 + components: + - type: Transform + pos: -43.5,17.5 + parent: 1 + - uid: 14304 + components: + - type: Transform + pos: -44.5,17.5 + parent: 1 + - uid: 14305 + components: + - type: Transform + pos: -45.5,17.5 + parent: 1 + - uid: 14306 + components: + - type: Transform + pos: -45.5,16.5 + parent: 1 + - uid: 14307 + components: + - type: Transform + pos: -45.5,15.5 + parent: 1 + - uid: 14308 + components: + - type: Transform + pos: -45.5,14.5 + parent: 1 + - uid: 14309 + components: + - type: Transform + pos: -45.5,13.5 + parent: 1 + - uid: 14310 + components: + - type: Transform + pos: -45.5,12.5 + parent: 1 + - uid: 14311 + components: + - type: Transform + pos: -45.5,11.5 + parent: 1 + - uid: 14312 + components: + - type: Transform + pos: -45.5,10.5 + parent: 1 + - uid: 14313 + components: + - type: Transform + pos: -45.5,9.5 + parent: 1 + - uid: 14314 + components: + - type: Transform + pos: -45.5,8.5 + parent: 1 + - uid: 14315 + components: + - type: Transform + pos: -45.5,7.5 + parent: 1 + - uid: 14316 + components: + - type: Transform + pos: -45.5,6.5 + parent: 1 + - uid: 14317 + components: + - type: Transform + pos: -45.5,5.5 + parent: 1 + - uid: 14318 + components: + - type: Transform + pos: -45.5,4.5 + parent: 1 + - uid: 14319 + components: + - type: Transform + pos: -45.5,3.5 + parent: 1 + - uid: 14320 + components: + - type: Transform + pos: -45.5,2.5 + parent: 1 + - uid: 14321 + components: + - type: Transform + pos: -45.5,1.5 + parent: 1 + - uid: 14322 + components: + - type: Transform + pos: -45.5,0.5 + parent: 1 + - uid: 14323 + components: + - type: Transform + pos: -46.5,2.5 + parent: 1 + - uid: 14324 + components: + - type: Transform + pos: -47.5,2.5 + parent: 1 + - uid: 14325 + components: + - type: Transform + pos: -48.5,2.5 + parent: 1 + - uid: 14326 + components: + - type: Transform + pos: -44.5,2.5 + parent: 1 + - uid: 14327 + components: + - type: Transform + pos: -43.5,2.5 + parent: 1 + - uid: 14328 + components: + - type: Transform + pos: -42.5,2.5 + parent: 1 + - uid: 14329 + components: + - type: Transform + pos: -41.5,2.5 + parent: 1 + - uid: 14330 + components: + - type: Transform + pos: -44.5,8.5 + parent: 1 + - uid: 14331 + components: + - type: Transform + pos: -43.5,8.5 + parent: 1 + - uid: 14332 + components: + - type: Transform + pos: -42.5,8.5 + parent: 1 + - uid: 14333 + components: + - type: Transform + pos: -41.5,8.5 + parent: 1 + - uid: 14334 + components: + - type: Transform + pos: -44.5,13.5 + parent: 1 + - uid: 14335 + components: + - type: Transform + pos: -43.5,13.5 + parent: 1 + - uid: 14336 + components: + - type: Transform + pos: -42.5,13.5 + parent: 1 + - uid: 14337 + components: + - type: Transform + pos: -41.5,13.5 + parent: 1 + - uid: 14338 + components: + - type: Transform + pos: -48.5,1.5 + parent: 1 + - uid: 14339 + components: + - type: Transform + pos: -48.5,0.5 + parent: 1 + - uid: 14340 + components: + - type: Transform + pos: -48.5,-0.5 + parent: 1 + - uid: 14341 + components: + - type: Transform + pos: -51.5,-11.5 + parent: 1 + - uid: 14342 + components: + - type: Transform + pos: -48.5,-7.5 + parent: 1 + - uid: 14343 + components: + - type: Transform + pos: -47.5,-11.5 + parent: 1 + - uid: 14344 + components: + - type: Transform + pos: -48.5,-14.5 + parent: 1 + - uid: 14345 + components: + - type: Transform + pos: -49.5,-14.5 + parent: 1 + - uid: 14346 + components: + - type: Transform + pos: -50.5,-7.5 + parent: 1 + - uid: 14347 + components: + - type: Transform + pos: -47.5,-14.5 + parent: 1 + - uid: 14348 + components: + - type: Transform + pos: -54.5,-14.5 + parent: 1 + - uid: 14355 + components: + - type: Transform + pos: -50.5,-13.5 + parent: 1 + - uid: 14357 + components: + - type: Transform + pos: -50.5,-12.5 + parent: 1 + - uid: 14359 + components: + - type: Transform + pos: -43.5,-14.5 + parent: 1 + - uid: 14360 + components: + - type: Transform + pos: -42.5,-14.5 + parent: 1 + - uid: 14361 + components: + - type: Transform + pos: -41.5,-14.5 + parent: 1 + - uid: 14362 + components: + - type: Transform + pos: -40.5,-14.5 + parent: 1 + - uid: 14363 + components: + - type: Transform + pos: -39.5,-14.5 + parent: 1 + - uid: 14364 + components: + - type: Transform + pos: -38.5,-14.5 + parent: 1 + - uid: 14365 + components: + - type: Transform + pos: -37.5,-14.5 + parent: 1 + - uid: 14366 + components: + - type: Transform + pos: -36.5,-14.5 + parent: 1 + - uid: 14367 + components: + - type: Transform + pos: -35.5,-14.5 + parent: 1 + - uid: 14368 + components: + - type: Transform + pos: -34.5,-14.5 + parent: 1 + - uid: 14390 + components: + - type: Transform + pos: -34.5,-15.5 + parent: 1 + - uid: 14391 + components: + - type: Transform + pos: -34.5,-16.5 + parent: 1 + - uid: 14392 + components: + - type: Transform + pos: -34.5,-17.5 + parent: 1 + - uid: 14393 + components: + - type: Transform + pos: -34.5,-18.5 + parent: 1 + - uid: 14394 + components: + - type: Transform + pos: -34.5,-19.5 + parent: 1 + - uid: 14395 + components: + - type: Transform + pos: -34.5,-20.5 + parent: 1 + - uid: 14396 + components: + - type: Transform + pos: -34.5,-21.5 + parent: 1 + - uid: 14415 + components: + - type: Transform + pos: -51.5,-14.5 + parent: 1 + - uid: 14419 + components: + - type: Transform + pos: -46.5,-14.5 + parent: 1 + - uid: 14489 + components: + - type: Transform + pos: 17.5,69.5 + parent: 1 + - uid: 14490 + components: + - type: Transform + pos: 18.5,69.5 + parent: 1 + - uid: 14491 + components: + - type: Transform + pos: 19.5,69.5 + parent: 1 + - uid: 14518 + components: + - type: Transform + pos: 31.5,55.5 + parent: 1 + - uid: 14519 + components: + - type: Transform + pos: 31.5,56.5 + parent: 1 + - uid: 14520 + components: + - type: Transform + pos: 32.5,56.5 + parent: 1 + - uid: 14521 + components: + - type: Transform + pos: 33.5,56.5 + parent: 1 + - uid: 14522 + components: + - type: Transform + pos: 32.5,57.5 + parent: 1 + - uid: 14523 + components: + - type: Transform + pos: 32.5,58.5 + parent: 1 + - uid: 14524 + components: + - type: Transform + pos: 32.5,59.5 + parent: 1 + - uid: 14525 + components: + - type: Transform + pos: 32.5,60.5 + parent: 1 + - uid: 14526 + components: + - type: Transform + pos: 32.5,61.5 + parent: 1 + - uid: 14527 + components: + - type: Transform + pos: 32.5,62.5 + parent: 1 + - uid: 14528 + components: + - type: Transform + pos: 32.5,63.5 + parent: 1 + - uid: 14529 + components: + - type: Transform + pos: 32.5,64.5 + parent: 1 + - uid: 14530 + components: + - type: Transform + pos: 31.5,64.5 + parent: 1 + - uid: 14531 + components: + - type: Transform + pos: 30.5,64.5 + parent: 1 + - uid: 14532 + components: + - type: Transform + pos: 29.5,64.5 + parent: 1 + - uid: 14533 + components: + - type: Transform + pos: 29.5,65.5 + parent: 1 + - uid: 14534 + components: + - type: Transform + pos: 29.5,66.5 + parent: 1 + - uid: 14535 + components: + - type: Transform + pos: 29.5,67.5 + parent: 1 + - uid: 14536 + components: + - type: Transform + pos: 29.5,68.5 + parent: 1 + - uid: 14537 + components: + - type: Transform + pos: 29.5,69.5 + parent: 1 + - uid: 14538 + components: + - type: Transform + pos: 28.5,69.5 + parent: 1 + - uid: 14539 + components: + - type: Transform + pos: 27.5,69.5 + parent: 1 + - uid: 14540 + components: + - type: Transform + pos: 26.5,69.5 + parent: 1 + - uid: 14541 + components: + - type: Transform + pos: 25.5,69.5 + parent: 1 + - uid: 14542 + components: + - type: Transform + pos: 24.5,69.5 + parent: 1 + - uid: 14543 + components: + - type: Transform + pos: 23.5,69.5 + parent: 1 + - uid: 14544 + components: + - type: Transform + pos: 22.5,69.5 + parent: 1 + - uid: 14545 + components: + - type: Transform + pos: 21.5,69.5 + parent: 1 + - uid: 14546 + components: + - type: Transform + pos: 20.5,69.5 + parent: 1 + - uid: 14547 + components: + - type: Transform + pos: 18.5,70.5 + parent: 1 + - uid: 14548 + components: + - type: Transform + pos: 18.5,71.5 + parent: 1 + - uid: 14549 + components: + - type: Transform + pos: 18.5,72.5 + parent: 1 + - uid: 14550 + components: + - type: Transform + pos: 18.5,73.5 + parent: 1 + - uid: 14551 + components: + - type: Transform + pos: 17.5,73.5 + parent: 1 + - uid: 14552 + components: + - type: Transform + pos: 16.5,73.5 + parent: 1 + - uid: 14553 + components: + - type: Transform + pos: 15.5,73.5 + parent: 1 + - uid: 14554 + components: + - type: Transform + pos: 14.5,73.5 + parent: 1 + - uid: 14555 + components: + - type: Transform + pos: 13.5,73.5 + parent: 1 + - uid: 14556 + components: + - type: Transform + pos: 12.5,73.5 + parent: 1 + - uid: 14557 + components: + - type: Transform + pos: 11.5,73.5 + parent: 1 + - uid: 14558 + components: + - type: Transform + pos: 10.5,73.5 + parent: 1 + - uid: 14559 + components: + - type: Transform + pos: 9.5,73.5 + parent: 1 + - uid: 14560 + components: + - type: Transform + pos: 8.5,73.5 + parent: 1 + - uid: 14561 + components: + - type: Transform + pos: 7.5,73.5 + parent: 1 + - uid: 14562 + components: + - type: Transform + pos: 6.5,73.5 + parent: 1 + - uid: 14563 + components: + - type: Transform + pos: 5.5,73.5 + parent: 1 + - uid: 14564 + components: + - type: Transform + pos: 4.5,73.5 + parent: 1 + - uid: 14565 + components: + - type: Transform + pos: 3.5,73.5 + parent: 1 + - uid: 14566 + components: + - type: Transform + pos: 2.5,73.5 + parent: 1 + - uid: 14567 + components: + - type: Transform + pos: 2.5,72.5 + parent: 1 + - uid: 14568 + components: + - type: Transform + pos: 2.5,71.5 + parent: 1 + - uid: 14569 + components: + - type: Transform + pos: 2.5,70.5 + parent: 1 + - uid: 14570 + components: + - type: Transform + pos: 2.5,69.5 + parent: 1 + - uid: 14571 + components: + - type: Transform + pos: 1.5,70.5 + parent: 1 + - uid: 14572 + components: + - type: Transform + pos: 0.5,70.5 + parent: 1 + - uid: 14573 + components: + - type: Transform + pos: -0.5,70.5 + parent: 1 + - uid: 14574 + components: + - type: Transform + pos: -1.5,70.5 + parent: 1 + - uid: 14575 + components: + - type: Transform + pos: -2.5,70.5 + parent: 1 + - uid: 14576 + components: + - type: Transform + pos: -3.5,70.5 + parent: 1 + - uid: 14577 + components: + - type: Transform + pos: -4.5,70.5 + parent: 1 + - uid: 14578 + components: + - type: Transform + pos: -5.5,70.5 + parent: 1 + - uid: 14579 + components: + - type: Transform + pos: -6.5,70.5 + parent: 1 + - uid: 14580 + components: + - type: Transform + pos: -7.5,70.5 + parent: 1 + - uid: 14581 + components: + - type: Transform + pos: -8.5,70.5 + parent: 1 + - uid: 14582 + components: + - type: Transform + pos: -9.5,70.5 + parent: 1 + - uid: 14583 + components: + - type: Transform + pos: -10.5,70.5 + parent: 1 + - uid: 14584 + components: + - type: Transform + pos: -11.5,70.5 + parent: 1 + - uid: 14585 + components: + - type: Transform + pos: -12.5,70.5 + parent: 1 + - uid: 14586 + components: + - type: Transform + pos: -13.5,70.5 + parent: 1 + - uid: 14587 + components: + - type: Transform + pos: -14.5,70.5 + parent: 1 + - uid: 14588 + components: + - type: Transform + pos: -15.5,70.5 + parent: 1 + - uid: 14589 + components: + - type: Transform + pos: -16.5,70.5 + parent: 1 + - uid: 14590 + components: + - type: Transform + pos: -16.5,69.5 + parent: 1 + - uid: 14591 + components: + - type: Transform + pos: -16.5,68.5 + parent: 1 + - uid: 14592 + components: + - type: Transform + pos: 33.5,55.5 + parent: 1 + - uid: 14593 + components: + - type: Transform + pos: 33.5,54.5 + parent: 1 + - uid: 14594 + components: + - type: Transform + pos: 33.5,53.5 + parent: 1 + - uid: 14595 + components: + - type: Transform + pos: 33.5,52.5 + parent: 1 + - uid: 14596 + components: + - type: Transform + pos: 34.5,52.5 + parent: 1 + - uid: 14597 + components: + - type: Transform + pos: 34.5,51.5 + parent: 1 + - uid: 14598 + components: + - type: Transform + pos: 34.5,50.5 + parent: 1 + - uid: 14599 + components: + - type: Transform + pos: 34.5,49.5 + parent: 1 + - uid: 14600 + components: + - type: Transform + pos: 34.5,48.5 + parent: 1 + - uid: 14601 + components: + - type: Transform + pos: 34.5,47.5 + parent: 1 + - uid: 14602 + components: + - type: Transform + pos: 34.5,46.5 + parent: 1 + - uid: 14603 + components: + - type: Transform + pos: 35.5,47.5 + parent: 1 + - uid: 14604 + components: + - type: Transform + pos: 36.5,47.5 + parent: 1 + - uid: 14605 + components: + - type: Transform + pos: 37.5,47.5 + parent: 1 + - uid: 14606 + components: + - type: Transform + pos: 38.5,47.5 + parent: 1 + - uid: 14607 + components: + - type: Transform + pos: 38.5,46.5 + parent: 1 + - uid: 14608 + components: + - type: Transform + pos: 38.5,45.5 + parent: 1 + - uid: 14609 + components: + - type: Transform + pos: 38.5,44.5 + parent: 1 + - uid: 14610 + components: + - type: Transform + pos: 38.5,43.5 + parent: 1 + - uid: 14611 + components: + - type: Transform + pos: 38.5,42.5 + parent: 1 + - uid: 14612 + components: + - type: Transform + pos: 38.5,41.5 + parent: 1 + - uid: 14613 + components: + - type: Transform + pos: 38.5,40.5 + parent: 1 + - uid: 14614 + components: + - type: Transform + pos: 38.5,39.5 + parent: 1 + - uid: 14615 + components: + - type: Transform + pos: 38.5,38.5 + parent: 1 + - uid: 14616 + components: + - type: Transform + pos: 38.5,37.5 + parent: 1 + - uid: 14617 + components: + - type: Transform + pos: 38.5,36.5 + parent: 1 + - uid: 14618 + components: + - type: Transform + pos: 38.5,35.5 + parent: 1 + - uid: 14619 + components: + - type: Transform + pos: 38.5,34.5 + parent: 1 + - uid: 14620 + components: + - type: Transform + pos: 38.5,33.5 + parent: 1 + - uid: 14621 + components: + - type: Transform + pos: 39.5,34.5 + parent: 1 + - uid: 14622 + components: + - type: Transform + pos: 40.5,34.5 + parent: 1 + - uid: 14623 + components: + - type: Transform + pos: 41.5,34.5 + parent: 1 + - uid: 14630 + components: + - type: Transform + pos: 37.5,34.5 + parent: 1 + - uid: 14631 + components: + - type: Transform + pos: 36.5,34.5 + parent: 1 + - uid: 14632 + components: + - type: Transform + pos: 35.5,34.5 + parent: 1 + - uid: 14634 + components: + - type: Transform + pos: 35.5,32.5 + parent: 1 + - uid: 14635 + components: + - type: Transform + pos: 35.5,31.5 + parent: 1 + - uid: 14636 + components: + - type: Transform + pos: 35.5,30.5 + parent: 1 + - uid: 14637 + components: + - type: Transform + pos: 35.5,29.5 + parent: 1 + - uid: 14638 + components: + - type: Transform + pos: 35.5,28.5 + parent: 1 + - uid: 14639 + components: + - type: Transform + pos: 35.5,27.5 + parent: 1 + - uid: 14640 + components: + - type: Transform + pos: 35.5,26.5 + parent: 1 + - uid: 14641 + components: + - type: Transform + pos: 35.5,25.5 + parent: 1 + - uid: 14642 + components: + - type: Transform + pos: 35.5,24.5 + parent: 1 + - uid: 14644 + components: + - type: Transform + pos: 35.5,22.5 + parent: 1 + - uid: 14645 + components: + - type: Transform + pos: 35.5,21.5 + parent: 1 + - uid: 14646 + components: + - type: Transform + pos: 35.5,20.5 + parent: 1 + - uid: 14647 + components: + - type: Transform + pos: 35.5,19.5 + parent: 1 + - uid: 14648 + components: + - type: Transform + pos: 35.5,18.5 + parent: 1 + - uid: 14649 + components: + - type: Transform + pos: 35.5,17.5 + parent: 1 + - uid: 14655 + components: + - type: Transform + pos: 36.5,20.5 + parent: 1 + - uid: 14656 + components: + - type: Transform + pos: 37.5,20.5 + parent: 1 + - uid: 14657 + components: + - type: Transform + pos: 38.5,20.5 + parent: 1 + - uid: 14658 + components: + - type: Transform + pos: 39.5,20.5 + parent: 1 + - uid: 14659 + components: + - type: Transform + pos: 40.5,20.5 + parent: 1 + - uid: 14660 + components: + - type: Transform + pos: 41.5,20.5 + parent: 1 + - uid: 14661 + components: + - type: Transform + pos: 42.5,20.5 + parent: 1 + - uid: 14662 + components: + - type: Transform + pos: 43.5,20.5 + parent: 1 + - uid: 14663 + components: + - type: Transform + pos: 44.5,20.5 + parent: 1 + - uid: 14664 + components: + - type: Transform + pos: 45.5,20.5 + parent: 1 + - uid: 14665 + components: + - type: Transform + pos: 46.5,20.5 + parent: 1 + - uid: 14666 + components: + - type: Transform + pos: 47.5,20.5 + parent: 1 + - uid: 14667 + components: + - type: Transform + pos: 48.5,20.5 + parent: 1 + - uid: 14668 + components: + - type: Transform + pos: 49.5,20.5 + parent: 1 + - uid: 14669 + components: + - type: Transform + pos: 50.5,20.5 + parent: 1 + - uid: 14670 + components: + - type: Transform + pos: 51.5,20.5 + parent: 1 + - uid: 14671 + components: + - type: Transform + pos: 52.5,20.5 + parent: 1 + - uid: 14672 + components: + - type: Transform + pos: 53.5,20.5 + parent: 1 + - uid: 14673 + components: + - type: Transform + pos: 49.5,19.5 + parent: 1 + - uid: 14674 + components: + - type: Transform + pos: 49.5,18.5 + parent: 1 + - uid: 14675 + components: + - type: Transform + pos: 53.5,19.5 + parent: 1 + - uid: 14676 + components: + - type: Transform + pos: 53.5,18.5 + parent: 1 + - uid: 14677 + components: + - type: Transform + pos: 53.5,17.5 + parent: 1 + - uid: 14678 + components: + - type: Transform + pos: 53.5,16.5 + parent: 1 + - uid: 14679 + components: + - type: Transform + pos: 53.5,15.5 + parent: 1 + - uid: 14680 + components: + - type: Transform + pos: 53.5,14.5 + parent: 1 + - uid: 14681 + components: + - type: Transform + pos: 53.5,13.5 + parent: 1 + - uid: 14682 + components: + - type: Transform + pos: 53.5,12.5 + parent: 1 + - uid: 14683 + components: + - type: Transform + pos: 53.5,11.5 + parent: 1 + - uid: 14684 + components: + - type: Transform + pos: 53.5,10.5 + parent: 1 + - uid: 14685 + components: + - type: Transform + pos: 53.5,9.5 + parent: 1 + - uid: 14686 + components: + - type: Transform + pos: 53.5,8.5 + parent: 1 + - uid: 14687 + components: + - type: Transform + pos: 53.5,7.5 + parent: 1 + - uid: 14688 + components: + - type: Transform + pos: 53.5,6.5 + parent: 1 + - uid: 14689 + components: + - type: Transform + pos: 53.5,5.5 + parent: 1 + - uid: 14690 + components: + - type: Transform + pos: 53.5,4.5 + parent: 1 + - uid: 14691 + components: + - type: Transform + pos: 53.5,3.5 + parent: 1 + - uid: 14692 + components: + - type: Transform + pos: 53.5,2.5 + parent: 1 + - uid: 14693 + components: + - type: Transform + pos: 53.5,1.5 + parent: 1 + - uid: 14694 + components: + - type: Transform + pos: 52.5,1.5 + parent: 1 + - uid: 14695 + components: + - type: Transform + pos: 51.5,1.5 + parent: 1 + - uid: 14696 + components: + - type: Transform + pos: 50.5,1.5 + parent: 1 + - uid: 14697 + components: + - type: Transform + pos: 49.5,1.5 + parent: 1 + - uid: 14698 + components: + - type: Transform + pos: 48.5,1.5 + parent: 1 + - uid: 14699 + components: + - type: Transform + pos: 47.5,1.5 + parent: 1 + - uid: 14700 + components: + - type: Transform + pos: 46.5,1.5 + parent: 1 + - uid: 14701 + components: + - type: Transform + pos: 45.5,1.5 + parent: 1 + - uid: 14702 + components: + - type: Transform + pos: 44.5,1.5 + parent: 1 + - uid: 14703 + components: + - type: Transform + pos: 49.5,2.5 + parent: 1 + - uid: 14704 + components: + - type: Transform + pos: 49.5,3.5 + parent: 1 + - uid: 14705 + components: + - type: Transform + pos: 49.5,4.5 + parent: 1 + - uid: 14706 + components: + - type: Transform + pos: 49.5,5.5 + parent: 1 + - uid: 14707 + components: + - type: Transform + pos: 43.5,1.5 + parent: 1 + - uid: 14708 + components: + - type: Transform + pos: 42.5,1.5 + parent: 1 + - uid: 14709 + components: + - type: Transform + pos: 41.5,1.5 + parent: 1 + - uid: 14710 + components: + - type: Transform + pos: 40.5,1.5 + parent: 1 + - uid: 14711 + components: + - type: Transform + pos: 39.5,1.5 + parent: 1 + - uid: 14712 + components: + - type: Transform + pos: 38.5,1.5 + parent: 1 + - uid: 14713 + components: + - type: Transform + pos: 37.5,1.5 + parent: 1 + - uid: 14714 + components: + - type: Transform + pos: 36.5,1.5 + parent: 1 + - uid: 14715 + components: + - type: Transform + pos: 35.5,1.5 + parent: 1 + - uid: 14716 + components: + - type: Transform + pos: 34.5,1.5 + parent: 1 + - uid: 14717 + components: + - type: Transform + pos: 33.5,1.5 + parent: 1 + - uid: 14718 + components: + - type: Transform + pos: 33.5,2.5 + parent: 1 + - uid: 14719 + components: + - type: Transform + pos: 33.5,3.5 + parent: 1 + - uid: 14720 + components: + - type: Transform + pos: 33.5,0.5 + parent: 1 + - uid: 14721 + components: + - type: Transform + pos: 33.5,-0.5 + parent: 1 + - uid: 14722 + components: + - type: Transform + pos: 33.5,-1.5 + parent: 1 + - uid: 14723 + components: + - type: Transform + pos: 33.5,-2.5 + parent: 1 + - uid: 14724 + components: + - type: Transform + pos: 33.5,-3.5 + parent: 1 + - uid: 14725 + components: + - type: Transform + pos: 33.5,-4.5 + parent: 1 + - uid: 14726 + components: + - type: Transform + pos: 33.5,-5.5 + parent: 1 + - uid: 14727 + components: + - type: Transform + pos: 33.5,-6.5 + parent: 1 + - uid: 14728 + components: + - type: Transform + pos: 33.5,-7.5 + parent: 1 + - uid: 14729 + components: + - type: Transform + pos: 33.5,-8.5 + parent: 1 + - uid: 14730 + components: + - type: Transform + pos: 32.5,-8.5 + parent: 1 + - uid: 14731 + components: + - type: Transform + pos: 32.5,-9.5 + parent: 1 + - uid: 14732 + components: + - type: Transform + pos: 32.5,-10.5 + parent: 1 + - uid: 14733 + components: + - type: Transform + pos: 32.5,-11.5 + parent: 1 + - uid: 14734 + components: + - type: Transform + pos: 32.5,-12.5 + parent: 1 + - uid: 14735 + components: + - type: Transform + pos: 32.5,-13.5 + parent: 1 + - uid: 14736 + components: + - type: Transform + pos: 31.5,-8.5 + parent: 1 + - uid: 14737 + components: + - type: Transform + pos: 30.5,-8.5 + parent: 1 + - uid: 14738 + components: + - type: Transform + pos: 29.5,-8.5 + parent: 1 + - uid: 14739 + components: + - type: Transform + pos: 28.5,-8.5 + parent: 1 + - uid: 14740 + components: + - type: Transform + pos: 27.5,-8.5 + parent: 1 + - uid: 14741 + components: + - type: Transform + pos: 26.5,-8.5 + parent: 1 + - uid: 14742 + components: + - type: Transform + pos: 25.5,-8.5 + parent: 1 + - uid: 14743 + components: + - type: Transform + pos: 24.5,-8.5 + parent: 1 + - uid: 14744 + components: + - type: Transform + pos: 23.5,-8.5 + parent: 1 + - uid: 14745 + components: + - type: Transform + pos: 26.5,-9.5 + parent: 1 + - uid: 14746 + components: + - type: Transform + pos: 26.5,-10.5 + parent: 1 + - uid: 14747 + components: + - type: Transform + pos: 26.5,-11.5 + parent: 1 + - uid: 14748 + components: + - type: Transform + pos: 26.5,-12.5 + parent: 1 + - uid: 14749 + components: + - type: Transform + pos: 26.5,-13.5 + parent: 1 + - uid: 14750 + components: + - type: Transform + pos: 26.5,-14.5 + parent: 1 + - uid: 14751 + components: + - type: Transform + pos: 26.5,-15.5 + parent: 1 + - uid: 14752 + components: + - type: Transform + pos: 24.5,-15.5 + parent: 1 + - uid: 14753 + components: + - type: Transform + pos: 23.5,-15.5 + parent: 1 + - uid: 14754 + components: + - type: Transform + pos: 22.5,-15.5 + parent: 1 + - uid: 14755 + components: + - type: Transform + pos: 21.5,-15.5 + parent: 1 + - uid: 14756 + components: + - type: Transform + pos: 20.5,-15.5 + parent: 1 + - uid: 14757 + components: + - type: Transform + pos: 19.5,-15.5 + parent: 1 + - uid: 14758 + components: + - type: Transform + pos: 18.5,-15.5 + parent: 1 + - uid: 14759 + components: + - type: Transform + pos: 17.5,-15.5 + parent: 1 + - uid: 14760 + components: + - type: Transform + pos: 16.5,-15.5 + parent: 1 + - uid: 14761 + components: + - type: Transform + pos: 15.5,-15.5 + parent: 1 + - uid: 14762 + components: + - type: Transform + pos: 14.5,-15.5 + parent: 1 + - uid: 14763 + components: + - type: Transform + pos: 25.5,-15.5 + parent: 1 + - uid: 14764 + components: + - type: Transform + pos: 13.5,-15.5 + parent: 1 + - uid: 14765 + components: + - type: Transform + pos: 12.5,-15.5 + parent: 1 + - uid: 14766 + components: + - type: Transform + pos: 11.5,-15.5 + parent: 1 + - uid: 14767 + components: + - type: Transform + pos: 10.5,-15.5 + parent: 1 + - uid: 14768 + components: + - type: Transform + pos: 9.5,-15.5 + parent: 1 + - uid: 14769 + components: + - type: Transform + pos: 8.5,-15.5 + parent: 1 + - uid: 14770 + components: + - type: Transform + pos: 7.5,-15.5 + parent: 1 + - uid: 14771 + components: + - type: Transform + pos: 10.5,-14.5 + parent: 1 + - uid: 14772 + components: + - type: Transform + pos: 10.5,-13.5 + parent: 1 + - uid: 14773 + components: + - type: Transform + pos: 10.5,-12.5 + parent: 1 + - uid: 14774 + components: + - type: Transform + pos: 10.5,-16.5 + parent: 1 + - uid: 14775 + components: + - type: Transform + pos: 10.5,-17.5 + parent: 1 + - uid: 14776 + components: + - type: Transform + pos: 10.5,-18.5 + parent: 1 + - uid: 14777 + components: + - type: Transform + pos: 10.5,-19.5 + parent: 1 + - uid: 14778 + components: + - type: Transform + pos: 10.5,-20.5 + parent: 1 + - uid: 14779 + components: + - type: Transform + pos: 10.5,-21.5 + parent: 1 + - uid: 14780 + components: + - type: Transform + pos: 10.5,-22.5 + parent: 1 + - uid: 14781 + components: + - type: Transform + pos: 10.5,-23.5 + parent: 1 + - uid: 14782 + components: + - type: Transform + pos: 10.5,-24.5 + parent: 1 + - uid: 14783 + components: + - type: Transform + pos: 10.5,-25.5 + parent: 1 + - uid: 14784 + components: + - type: Transform + pos: 10.5,-26.5 + parent: 1 + - uid: 14785 + components: + - type: Transform + pos: 10.5,-27.5 + parent: 1 + - uid: 14786 + components: + - type: Transform + pos: 10.5,-28.5 + parent: 1 + - uid: 14787 + components: + - type: Transform + pos: 21.5,-24.5 + parent: 1 + - uid: 14788 + components: + - type: Transform + pos: 21.5,-23.5 + parent: 1 + - uid: 14789 + components: + - type: Transform + pos: 21.5,-22.5 + parent: 1 + - uid: 14790 + components: + - type: Transform + pos: 20.5,-22.5 + parent: 1 + - uid: 14791 + components: + - type: Transform + pos: 20.5,-21.5 + parent: 1 + - uid: 14792 + components: + - type: Transform + pos: 20.5,-20.5 + parent: 1 + - uid: 14793 + components: + - type: Transform + pos: 19.5,-20.5 + parent: 1 + - uid: 14794 + components: + - type: Transform + pos: 19.5,-19.5 + parent: 1 + - uid: 14795 + components: + - type: Transform + pos: 18.5,-19.5 + parent: 1 + - uid: 14796 + components: + - type: Transform + pos: 18.5,-18.5 + parent: 1 + - uid: 14797 + components: + - type: Transform + pos: 18.5,-17.5 + parent: 1 + - uid: 14798 + components: + - type: Transform + pos: 18.5,-16.5 + parent: 1 + - uid: 14799 + components: + - type: Transform + pos: 10.5,-29.5 + parent: 1 + - uid: 14800 + components: + - type: Transform + pos: 10.5,-30.5 + parent: 1 + - uid: 14831 + components: + - type: Transform + pos: -34.5,-22.5 + parent: 1 + - uid: 14832 + components: + - type: Transform + pos: -34.5,-23.5 + parent: 1 + - uid: 14875 + components: + - type: Transform + pos: -33.5,-23.5 + parent: 1 + - uid: 14876 + components: + - type: Transform + pos: -32.5,-23.5 + parent: 1 + - uid: 15297 + components: + - type: Transform + pos: -51.5,-6.5 + parent: 1 + - uid: 15298 + components: + - type: Transform + pos: -51.5,-5.5 + parent: 1 + - uid: 15299 + components: + - type: Transform + pos: -51.5,-4.5 + parent: 1 + - uid: 15300 + components: + - type: Transform + pos: -51.5,-3.5 + parent: 1 + - uid: 15301 + components: + - type: Transform + pos: -52.5,-6.5 + parent: 1 + - uid: 15302 + components: + - type: Transform + pos: -52.5,-5.5 + parent: 1 + - uid: 15303 + components: + - type: Transform + pos: -52.5,-4.5 + parent: 1 + - uid: 15304 + components: + - type: Transform + pos: -52.5,-3.5 + parent: 1 + - uid: 15305 + components: + - type: Transform + pos: -53.5,-6.5 + parent: 1 + - uid: 15306 + components: + - type: Transform + pos: -53.5,-5.5 + parent: 1 + - uid: 15307 + components: + - type: Transform + pos: -53.5,-4.5 + parent: 1 + - uid: 15308 + components: + - type: Transform + pos: -53.5,-3.5 + parent: 1 + - uid: 15882 + components: + - type: Transform + pos: -30.5,-22.5 + parent: 1 + - uid: 15883 + components: + - type: Transform + pos: -30.5,-23.5 + parent: 1 + - uid: 15884 + components: + - type: Transform + pos: -31.5,-23.5 + parent: 1 + - uid: 15885 + components: + - type: Transform + pos: -29.5,-22.5 + parent: 1 + - uid: 15886 + components: + - type: Transform + pos: -28.5,-22.5 + parent: 1 + - uid: 15887 + components: + - type: Transform + pos: -23.5,-22.5 + parent: 1 + - uid: 15888 + components: + - type: Transform + pos: -22.5,-22.5 + parent: 1 + - uid: 15889 + components: + - type: Transform + pos: -21.5,-22.5 + parent: 1 + - uid: 15890 + components: + - type: Transform + pos: -20.5,-22.5 + parent: 1 + - uid: 15891 + components: + - type: Transform + pos: -19.5,-22.5 + parent: 1 + - uid: 15892 + components: + - type: Transform + pos: -18.5,-22.5 + parent: 1 + - uid: 15893 + components: + - type: Transform + pos: -17.5,-22.5 + parent: 1 + - uid: 15904 + components: + - type: Transform + pos: -26.5,-16.5 + parent: 1 + - uid: 15959 + components: + - type: Transform + pos: -34.5,-24.5 + parent: 1 + - uid: 15960 + components: + - type: Transform + pos: -34.5,-25.5 + parent: 1 + - uid: 15961 + components: + - type: Transform + pos: -34.5,-26.5 + parent: 1 + - uid: 15962 + components: + - type: Transform + pos: -35.5,-26.5 + parent: 1 + - uid: 15963 + components: + - type: Transform + pos: -36.5,-26.5 + parent: 1 + - uid: 15964 + components: + - type: Transform + pos: -37.5,-26.5 + parent: 1 + - uid: 15965 + components: + - type: Transform + pos: -38.5,-26.5 + parent: 1 + - uid: 15966 + components: + - type: Transform + pos: -38.5,-27.5 + parent: 1 + - uid: 15967 + components: + - type: Transform + pos: -38.5,-28.5 + parent: 1 + - uid: 15968 + components: + - type: Transform + pos: -38.5,-29.5 + parent: 1 + - uid: 15969 + components: + - type: Transform + pos: -38.5,-30.5 + parent: 1 + - uid: 15970 + components: + - type: Transform + pos: -38.5,-31.5 + parent: 1 + - uid: 15971 + components: + - type: Transform + pos: -38.5,-32.5 + parent: 1 + - uid: 15972 + components: + - type: Transform + pos: -38.5,-33.5 + parent: 1 + - uid: 15973 + components: + - type: Transform + pos: -38.5,-34.5 + parent: 1 + - uid: 15974 + components: + - type: Transform + pos: -38.5,-35.5 + parent: 1 + - uid: 15975 + components: + - type: Transform + pos: -38.5,-36.5 + parent: 1 + - uid: 15976 + components: + - type: Transform + pos: -38.5,-37.5 + parent: 1 + - uid: 15977 + components: + - type: Transform + pos: -38.5,-38.5 + parent: 1 + - uid: 15978 + components: + - type: Transform + pos: -37.5,-38.5 + parent: 1 + - uid: 15979 + components: + - type: Transform + pos: -36.5,-38.5 + parent: 1 + - uid: 15980 + components: + - type: Transform + pos: -35.5,-38.5 + parent: 1 + - uid: 15981 + components: + - type: Transform + pos: -34.5,-38.5 + parent: 1 + - uid: 16041 + components: + - type: Transform + pos: -11.5,-25.5 + parent: 1 + - uid: 16042 + components: + - type: Transform + pos: -11.5,-29.5 + parent: 1 + - uid: 16043 + components: + - type: Transform + pos: -11.5,-30.5 + parent: 1 + - uid: 16044 + components: + - type: Transform + pos: -11.5,-31.5 + parent: 1 + - uid: 16045 + components: + - type: Transform + pos: -11.5,-32.5 + parent: 1 + - uid: 16046 + components: + - type: Transform + pos: -11.5,-33.5 + parent: 1 + - uid: 16047 + components: + - type: Transform + pos: -10.5,-32.5 + parent: 1 + - uid: 16048 + components: + - type: Transform + pos: -9.5,-32.5 + parent: 1 + - uid: 16049 + components: + - type: Transform + pos: -9.5,-33.5 + parent: 1 + - uid: 16050 + components: + - type: Transform + pos: -8.5,-33.5 + parent: 1 + - uid: 16051 + components: + - type: Transform + pos: -7.5,-33.5 + parent: 1 + - uid: 16052 + components: + - type: Transform + pos: -6.5,-33.5 + parent: 1 + - uid: 16053 + components: + - type: Transform + pos: -10.5,-30.5 + parent: 1 + - uid: 16054 + components: + - type: Transform + pos: -9.5,-30.5 + parent: 1 + - uid: 16060 + components: + - type: Transform + pos: -9.5,-29.5 + parent: 1 + - uid: 16061 + components: + - type: Transform + pos: -8.5,-29.5 + parent: 1 + - uid: 16062 + components: + - type: Transform + pos: -7.5,-29.5 + parent: 1 + - uid: 16063 + components: + - type: Transform + pos: -6.5,-29.5 + parent: 1 + - uid: 16064 + components: + - type: Transform + pos: -6.5,-30.5 + parent: 1 + - uid: 16065 + components: + - type: Transform + pos: -6.5,-31.5 + parent: 1 + - uid: 16066 + components: + - type: Transform + pos: -6.5,-32.5 + parent: 1 + - uid: 16073 + components: + - type: Transform + pos: -30.5,-25.5 + parent: 1 + - uid: 16074 + components: + - type: Transform + pos: -29.5,-25.5 + parent: 1 + - uid: 16085 + components: + - type: Transform + pos: -28.5,-25.5 + parent: 1 + - uid: 16086 + components: + - type: Transform + pos: -27.5,-25.5 + parent: 1 + - uid: 16087 + components: + - type: Transform + pos: -26.5,-25.5 + parent: 1 + - uid: 16088 + components: + - type: Transform + pos: -25.5,-25.5 + parent: 1 + - uid: 16089 + components: + - type: Transform + pos: -24.5,-25.5 + parent: 1 + - uid: 16090 + components: + - type: Transform + pos: -24.5,-26.5 + parent: 1 + - uid: 16091 + components: + - type: Transform + pos: -23.5,-26.5 + parent: 1 + - uid: 16098 + components: + - type: Transform + pos: -22.5,-26.5 + parent: 1 + - uid: 16100 + components: + - type: Transform + pos: -21.5,-26.5 + parent: 1 + - uid: 16101 + components: + - type: Transform + pos: -20.5,-26.5 + parent: 1 + - uid: 16102 + components: + - type: Transform + pos: -19.5,-26.5 + parent: 1 + - uid: 16103 + components: + - type: Transform + pos: -18.5,-26.5 + parent: 1 + - uid: 16116 + components: + - type: Transform + pos: -17.5,-26.5 + parent: 1 + - uid: 16117 + components: + - type: Transform + pos: -16.5,-26.5 + parent: 1 + - uid: 16118 + components: + - type: Transform + pos: -15.5,-26.5 + parent: 1 + - uid: 16119 + components: + - type: Transform + pos: -14.5,-26.5 + parent: 1 + - uid: 16120 + components: + - type: Transform + pos: -13.5,-26.5 + parent: 1 + - uid: 16121 + components: + - type: Transform + pos: -24.5,-28.5 + parent: 1 + - uid: 16122 + components: + - type: Transform + pos: -24.5,-29.5 + parent: 1 + - uid: 16123 + components: + - type: Transform + pos: -24.5,-30.5 + parent: 1 + - uid: 16124 + components: + - type: Transform + pos: -24.5,-31.5 + parent: 1 + - uid: 16125 + components: + - type: Transform + pos: -24.5,-32.5 + parent: 1 + - uid: 16126 + components: + - type: Transform + pos: -24.5,-33.5 + parent: 1 + - uid: 16127 + components: + - type: Transform + pos: -24.5,-34.5 + parent: 1 + - uid: 16128 + components: + - type: Transform + pos: -24.5,-35.5 + parent: 1 + - uid: 16129 + components: + - type: Transform + pos: -24.5,-36.5 + parent: 1 + - uid: 16130 + components: + - type: Transform + pos: -24.5,-37.5 + parent: 1 + - uid: 16131 + components: + - type: Transform + pos: -24.5,-38.5 + parent: 1 + - uid: 16132 + components: + - type: Transform + pos: -24.5,-39.5 + parent: 1 + - uid: 16133 + components: + - type: Transform + pos: -24.5,-40.5 + parent: 1 + - uid: 16134 + components: + - type: Transform + pos: -28.5,-40.5 + parent: 1 + - uid: 16135 + components: + - type: Transform + pos: -28.5,-39.5 + parent: 1 + - uid: 16136 + components: + - type: Transform + pos: -28.5,-38.5 + parent: 1 + - uid: 16137 + components: + - type: Transform + pos: -28.5,-37.5 + parent: 1 + - uid: 16138 + components: + - type: Transform + pos: -28.5,-36.5 + parent: 1 + - uid: 16139 + components: + - type: Transform + pos: -28.5,-35.5 + parent: 1 + - uid: 16140 + components: + - type: Transform + pos: -28.5,-34.5 + parent: 1 + - uid: 16141 + components: + - type: Transform + pos: -28.5,-33.5 + parent: 1 + - uid: 16142 + components: + - type: Transform + pos: -28.5,-32.5 + parent: 1 + - uid: 16143 + components: + - type: Transform + pos: -28.5,-31.5 + parent: 1 + - uid: 16144 + components: + - type: Transform + pos: -28.5,-30.5 + parent: 1 + - uid: 16145 + components: + - type: Transform + pos: -28.5,-29.5 + parent: 1 + - uid: 16146 + components: + - type: Transform + pos: -28.5,-28.5 + parent: 1 + - uid: 16147 + components: + - type: Transform + pos: -28.5,-27.5 + parent: 1 + - uid: 16148 + components: + - type: Transform + pos: -28.5,-26.5 + parent: 1 + - uid: 16149 + components: + - type: Transform + pos: -23.5,-38.5 + parent: 1 + - uid: 16150 + components: + - type: Transform + pos: -22.5,-38.5 + parent: 1 + - uid: 16151 + components: + - type: Transform + pos: -21.5,-38.5 + parent: 1 + - uid: 16152 + components: + - type: Transform + pos: -20.5,-38.5 + parent: 1 + - uid: 16153 + components: + - type: Transform + pos: -19.5,-38.5 + parent: 1 + - uid: 16154 + components: + - type: Transform + pos: -18.5,-38.5 + parent: 1 + - uid: 16155 + components: + - type: Transform + pos: -17.5,-38.5 + parent: 1 + - uid: 16156 + components: + - type: Transform + pos: -30.5,-26.5 + parent: 1 + - uid: 16157 + components: + - type: Transform + pos: -30.5,-27.5 + parent: 1 + - uid: 16158 + components: + - type: Transform + pos: -30.5,-28.5 + parent: 1 + - uid: 16159 + components: + - type: Transform + pos: -30.5,-29.5 + parent: 1 + - uid: 16160 + components: + - type: Transform + pos: -30.5,-30.5 + parent: 1 + - uid: 16161 + components: + - type: Transform + pos: -30.5,-31.5 + parent: 1 + - uid: 16162 + components: + - type: Transform + pos: -30.5,-32.5 + parent: 1 + - uid: 16163 + components: + - type: Transform + pos: -30.5,-33.5 + parent: 1 + - uid: 16164 + components: + - type: Transform + pos: -30.5,-34.5 + parent: 1 + - uid: 16165 + components: + - type: Transform + pos: -30.5,-35.5 + parent: 1 + - uid: 16166 + components: + - type: Transform + pos: -30.5,-36.5 + parent: 1 + - uid: 16167 + components: + - type: Transform + pos: -30.5,-37.5 + parent: 1 + - uid: 16168 + components: + - type: Transform + pos: -30.5,-38.5 + parent: 1 + - uid: 16169 + components: + - type: Transform + pos: -30.5,-39.5 + parent: 1 + - uid: 16170 + components: + - type: Transform + pos: -30.5,-40.5 + parent: 1 + - uid: 16171 + components: + - type: Transform + pos: -30.5,-41.5 + parent: 1 + - uid: 16172 + components: + - type: Transform + pos: -29.5,-41.5 + parent: 1 + - uid: 16173 + components: + - type: Transform + pos: -28.5,-41.5 + parent: 1 + - uid: 16174 + components: + - type: Transform + pos: -27.5,-41.5 + parent: 1 + - uid: 16175 + components: + - type: Transform + pos: -26.5,-41.5 + parent: 1 + - uid: 16176 + components: + - type: Transform + pos: -25.5,-41.5 + parent: 1 + - uid: 16177 + components: + - type: Transform + pos: -24.5,-41.5 + parent: 1 + - uid: 16178 + components: + - type: Transform + pos: -23.5,-41.5 + parent: 1 + - uid: 16179 + components: + - type: Transform + pos: -22.5,-41.5 + parent: 1 + - uid: 16180 + components: + - type: Transform + pos: -21.5,-41.5 + parent: 1 + - uid: 16181 + components: + - type: Transform + pos: -20.5,-41.5 + parent: 1 + - uid: 16182 + components: + - type: Transform + pos: -19.5,-41.5 + parent: 1 + - uid: 16183 + components: + - type: Transform + pos: -18.5,-41.5 + parent: 1 + - uid: 16184 + components: + - type: Transform + pos: -17.5,-41.5 + parent: 1 + - uid: 16185 + components: + - type: Transform + pos: -16.5,-41.5 + parent: 1 + - uid: 16186 + components: + - type: Transform + pos: -15.5,-41.5 + parent: 1 + - uid: 16187 + components: + - type: Transform + pos: -14.5,-41.5 + parent: 1 + - uid: 16188 + components: + - type: Transform + pos: -13.5,-41.5 + parent: 1 + - uid: 16189 + components: + - type: Transform + pos: -12.5,-41.5 + parent: 1 + - uid: 16190 + components: + - type: Transform + pos: -11.5,-41.5 + parent: 1 + - uid: 16191 + components: + - type: Transform + pos: -11.5,-40.5 + parent: 1 + - uid: 16192 + components: + - type: Transform + pos: -11.5,-39.5 + parent: 1 + - uid: 16193 + components: + - type: Transform + pos: -11.5,-38.5 + parent: 1 + - uid: 16194 + components: + - type: Transform + pos: -11.5,-37.5 + parent: 1 + - uid: 16195 + components: + - type: Transform + pos: -11.5,-36.5 + parent: 1 + - uid: 16196 + components: + - type: Transform + pos: -11.5,-35.5 + parent: 1 + - uid: 16197 + components: + - type: Transform + pos: -11.5,-34.5 + parent: 1 + - uid: 16198 + components: + - type: Transform + pos: -16.5,-38.5 + parent: 1 + - uid: 16199 + components: + - type: Transform + pos: -16.5,-40.5 + parent: 1 + - uid: 16200 + components: + - type: Transform + pos: -16.5,-39.5 + parent: 1 + - uid: 16201 + components: + - type: Transform + pos: -16.5,-37.5 + parent: 1 + - uid: 16202 + components: + - type: Transform + pos: -16.5,-36.5 + parent: 1 + - uid: 16203 + components: + - type: Transform + pos: -16.5,-35.5 + parent: 1 + - uid: 16204 + components: + - type: Transform + pos: -16.5,-34.5 + parent: 1 + - uid: 16205 + components: + - type: Transform + pos: -16.5,-33.5 + parent: 1 + - uid: 16206 + components: + - type: Transform + pos: -16.5,-32.5 + parent: 1 + - uid: 16207 + components: + - type: Transform + pos: -16.5,-31.5 + parent: 1 + - uid: 16208 + components: + - type: Transform + pos: -16.5,-30.5 + parent: 1 + - uid: 16209 + components: + - type: Transform + pos: -16.5,-29.5 + parent: 1 + - uid: 16210 + components: + - type: Transform + pos: -16.5,-28.5 + parent: 1 + - uid: 16211 + components: + - type: Transform + pos: -16.5,-27.5 + parent: 1 + - uid: 16212 + components: + - type: Transform + pos: -13.5,-27.5 + parent: 1 + - uid: 16213 + components: + - type: Transform + pos: -11.5,-28.5 + parent: 1 + - uid: 16214 + components: + - type: Transform + pos: -11.5,-27.5 + parent: 1 + - uid: 16215 + components: + - type: Transform + pos: -11.5,-26.5 + parent: 1 + - uid: 16216 + components: + - type: Transform + pos: -12.5,-26.5 + parent: 1 + - uid: 16217 + components: + - type: Transform + pos: -13.5,-28.5 + parent: 1 + - uid: 16218 + components: + - type: Transform + pos: -13.5,-29.5 + parent: 1 + - uid: 16219 + components: + - type: Transform + pos: -13.5,-30.5 + parent: 1 + - uid: 16220 + components: + - type: Transform + pos: -13.5,-31.5 + parent: 1 + - uid: 16221 + components: + - type: Transform + pos: -13.5,-32.5 + parent: 1 + - uid: 16222 + components: + - type: Transform + pos: -13.5,-33.5 + parent: 1 + - uid: 16223 + components: + - type: Transform + pos: -13.5,-34.5 + parent: 1 + - uid: 16224 + components: + - type: Transform + pos: -13.5,-35.5 + parent: 1 + - uid: 16225 + components: + - type: Transform + pos: -13.5,-36.5 + parent: 1 + - uid: 16226 + components: + - type: Transform + pos: -13.5,-37.5 + parent: 1 + - uid: 16227 + components: + - type: Transform + pos: -13.5,-38.5 + parent: 1 + - uid: 16228 + components: + - type: Transform + pos: -13.5,-39.5 + parent: 1 + - uid: 16229 + components: + - type: Transform + pos: -13.5,-40.5 + parent: 1 + - uid: 16230 + components: + - type: Transform + pos: -15.5,-38.5 + parent: 1 + - uid: 16231 + components: + - type: Transform + pos: -14.5,-38.5 + parent: 1 + - uid: 16232 + components: + - type: Transform + pos: -12.5,-38.5 + parent: 1 + - uid: 16233 + components: + - type: Transform + pos: -25.5,-38.5 + parent: 1 + - uid: 16234 + components: + - type: Transform + pos: -26.5,-38.5 + parent: 1 + - uid: 16235 + components: + - type: Transform + pos: -27.5,-38.5 + parent: 1 + - uid: 16236 + components: + - type: Transform + pos: -29.5,-38.5 + parent: 1 + - uid: 16237 + components: + - type: Transform + pos: -25.5,-29.5 + parent: 1 + - uid: 16238 + components: + - type: Transform + pos: -26.5,-29.5 + parent: 1 + - uid: 16239 + components: + - type: Transform + pos: -27.5,-29.5 + parent: 1 + - uid: 16240 + components: + - type: Transform + pos: -29.5,-29.5 + parent: 1 + - uid: 16241 + components: + - type: Transform + pos: -23.5,-29.5 + parent: 1 + - uid: 16242 + components: + - type: Transform + pos: -22.5,-29.5 + parent: 1 + - uid: 16243 + components: + - type: Transform + pos: -21.5,-29.5 + parent: 1 + - uid: 16244 + components: + - type: Transform + pos: -20.5,-29.5 + parent: 1 + - uid: 16245 + components: + - type: Transform + pos: -19.5,-29.5 + parent: 1 + - uid: 16246 + components: + - type: Transform + pos: -18.5,-29.5 + parent: 1 + - uid: 16247 + components: + - type: Transform + pos: -17.5,-29.5 + parent: 1 + - uid: 16248 + components: + - type: Transform + pos: -15.5,-29.5 + parent: 1 + - uid: 16249 + components: + - type: Transform + pos: -14.5,-29.5 + parent: 1 + - uid: 16250 + components: + - type: Transform + pos: -12.5,-29.5 + parent: 1 + - uid: 16251 + components: + - type: Transform + pos: -20.5,-30.5 + parent: 1 + - uid: 16252 + components: + - type: Transform + pos: -20.5,-31.5 + parent: 1 + - uid: 16253 + components: + - type: Transform + pos: -20.5,-32.5 + parent: 1 + - uid: 16254 + components: + - type: Transform + pos: -20.5,-33.5 + parent: 1 + - uid: 16255 + components: + - type: Transform + pos: -20.5,-34.5 + parent: 1 + - uid: 16256 + components: + - type: Transform + pos: -31.5,-34.5 + parent: 1 + - uid: 16257 + components: + - type: Transform + pos: -32.5,-34.5 + parent: 1 + - uid: 16258 + components: + - type: Transform + pos: -33.5,-34.5 + parent: 1 + - uid: 16259 + components: + - type: Transform + pos: -34.5,-34.5 + parent: 1 + - uid: 16260 + components: + - type: Transform + pos: -31.5,-30.5 + parent: 1 + - uid: 16261 + components: + - type: Transform + pos: -32.5,-30.5 + parent: 1 + - uid: 16262 + components: + - type: Transform + pos: -33.5,-30.5 + parent: 1 + - uid: 16263 + components: + - type: Transform + pos: -34.5,-30.5 + parent: 1 + - uid: 16264 + components: + - type: Transform + pos: -34.5,-31.5 + parent: 1 + - uid: 16265 + components: + - type: Transform + pos: -34.5,-32.5 + parent: 1 + - uid: 16266 + components: + - type: Transform + pos: -34.5,-33.5 + parent: 1 + - uid: 16267 + components: + - type: Transform + pos: -20.5,-35.5 + parent: 1 + - uid: 16268 + components: + - type: Transform + pos: -20.5,-36.5 + parent: 1 + - uid: 16269 + components: + - type: Transform + pos: -20.5,-37.5 + parent: 1 + - uid: 16297 + components: + - type: Transform + pos: -17.5,-23.5 + parent: 1 + - uid: 16308 + components: + - type: Transform + pos: -8.5,-25.5 + parent: 1 + - uid: 16309 + components: + - type: Transform + pos: -7.5,-25.5 + parent: 1 + - uid: 16310 + components: + - type: Transform + pos: -6.5,-25.5 + parent: 1 + - uid: 16311 + components: + - type: Transform + pos: -5.5,-25.5 + parent: 1 + - uid: 16312 + components: + - type: Transform + pos: -4.5,-25.5 + parent: 1 + - uid: 16313 + components: + - type: Transform + pos: -3.5,-25.5 + parent: 1 + - uid: 16314 + components: + - type: Transform + pos: -2.5,-25.5 + parent: 1 + - uid: 16315 + components: + - type: Transform + pos: -1.5,-25.5 + parent: 1 + - uid: 16316 + components: + - type: Transform + pos: -0.5,-25.5 + parent: 1 + - uid: 16317 + components: + - type: Transform + pos: 0.5,-25.5 + parent: 1 + - uid: 16318 + components: + - type: Transform + pos: 1.5,-25.5 + parent: 1 + - uid: 16319 + components: + - type: Transform + pos: 2.5,-25.5 + parent: 1 + - uid: 16320 + components: + - type: Transform + pos: 3.5,-25.5 + parent: 1 + - uid: 16446 + components: + - type: Transform + pos: -2.5,-31.5 + parent: 1 + - uid: 16447 + components: + - type: Transform + pos: 8.5,-30.5 + parent: 1 + - uid: 16448 + components: + - type: Transform + pos: 7.5,-30.5 + parent: 1 + - uid: 16449 + components: + - type: Transform + pos: 6.5,-30.5 + parent: 1 + - uid: 16450 + components: + - type: Transform + pos: 5.5,-30.5 + parent: 1 + - uid: 16451 + components: + - type: Transform + pos: 4.5,-30.5 + parent: 1 + - uid: 16452 + components: + - type: Transform + pos: 3.5,-30.5 + parent: 1 + - uid: 16453 + components: + - type: Transform + pos: 2.5,-30.5 + parent: 1 + - uid: 16454 + components: + - type: Transform + pos: 1.5,-30.5 + parent: 1 + - uid: 16455 + components: + - type: Transform + pos: 0.5,-30.5 + parent: 1 + - uid: 16456 + components: + - type: Transform + pos: -0.5,-30.5 + parent: 1 + - uid: 16457 + components: + - type: Transform + pos: -1.5,-30.5 + parent: 1 + - uid: 16458 + components: + - type: Transform + pos: -2.5,-30.5 + parent: 1 + - uid: 16459 + components: + - type: Transform + pos: -2.5,-32.5 + parent: 1 + - uid: 16460 + components: + - type: Transform + pos: -2.5,-33.5 + parent: 1 + - uid: 16461 + components: + - type: Transform + pos: -2.5,-34.5 + parent: 1 + - uid: 16462 + components: + - type: Transform + pos: -2.5,-35.5 + parent: 1 + - uid: 16463 + components: + - type: Transform + pos: -2.5,-36.5 + parent: 1 + - uid: 16464 + components: + - type: Transform + pos: -2.5,-37.5 + parent: 1 + - uid: 16465 + components: + - type: Transform + pos: -2.5,-38.5 + parent: 1 + - uid: 16466 + components: + - type: Transform + pos: -2.5,-39.5 + parent: 1 + - uid: 16467 + components: + - type: Transform + pos: -2.5,-40.5 + parent: 1 + - uid: 16468 + components: + - type: Transform + pos: -3.5,-40.5 + parent: 1 + - uid: 16469 + components: + - type: Transform + pos: -4.5,-40.5 + parent: 1 + - uid: 16470 + components: + - type: Transform + pos: -5.5,-40.5 + parent: 1 + - uid: 16491 + components: + - type: Transform + pos: -29.5,55.5 + parent: 1 + - uid: 16492 + components: + - type: Transform + pos: -30.5,55.5 + parent: 1 + - uid: 16493 + components: + - type: Transform + pos: -31.5,55.5 + parent: 1 + - uid: 16494 + components: + - type: Transform + pos: -32.5,55.5 + parent: 1 + - uid: 16495 + components: + - type: Transform + pos: -33.5,55.5 + parent: 1 + - uid: 16496 + components: + - type: Transform + pos: -34.5,55.5 + parent: 1 + - uid: 16497 + components: + - type: Transform + pos: -35.5,55.5 + parent: 1 + - uid: 16498 + components: + - type: Transform + pos: -36.5,55.5 + parent: 1 + - uid: 16499 + components: + - type: Transform + pos: -37.5,55.5 + parent: 1 + - uid: 16500 + components: + - type: Transform + pos: -38.5,55.5 + parent: 1 + - uid: 16501 + components: + - type: Transform + pos: -39.5,55.5 + parent: 1 + - uid: 16502 + components: + - type: Transform + pos: -40.5,55.5 + parent: 1 + - uid: 16503 + components: + - type: Transform + pos: -41.5,55.5 + parent: 1 + - uid: 16504 + components: + - type: Transform + pos: -42.5,55.5 + parent: 1 + - uid: 16505 + components: + - type: Transform + pos: -43.5,55.5 + parent: 1 + - uid: 16506 + components: + - type: Transform + pos: -44.5,55.5 + parent: 1 + - uid: 16507 + components: + - type: Transform + pos: -45.5,55.5 + parent: 1 + - uid: 16508 + components: + - type: Transform + pos: -46.5,55.5 + parent: 1 + - uid: 16509 + components: + - type: Transform + pos: -47.5,55.5 + parent: 1 + - uid: 16510 + components: + - type: Transform + pos: -48.5,55.5 + parent: 1 + - uid: 16511 + components: + - type: Transform + pos: -49.5,55.5 + parent: 1 + - uid: 16512 + components: + - type: Transform + pos: -47.5,56.5 + parent: 1 + - uid: 16513 + components: + - type: Transform + pos: -47.5,57.5 + parent: 1 +- proto: CableApcStack + entities: + - uid: 2536 + components: + - type: Transform + pos: -25.355448,-10.436155 + parent: 1 + - uid: 3256 + components: + - type: Transform + pos: -25.40437,-10.313849 + parent: 1 + - uid: 5450 + components: + - type: Transform + pos: -9.589064,60.63193 + parent: 1 +- proto: CablecuffsBroken + entities: + - uid: 6306 + components: + - type: Transform + pos: 16.980621,-0.34097838 + parent: 1 +- proto: CableHV + entities: + - uid: 35 + components: + - type: Transform + pos: -37.5,41.5 + parent: 1 + - uid: 55 + components: + - type: Transform + pos: -34.5,42.5 + parent: 1 + - uid: 447 + components: + - type: Transform + pos: -33.5,42.5 + parent: 1 + - uid: 1009 + components: + - type: Transform + pos: -28.5,-4.5 + parent: 1 + - uid: 1322 + components: + - type: Transform + pos: -35.5,41.5 + parent: 1 + - uid: 1792 + components: + - type: Transform + pos: -24.5,-5.5 + parent: 1 + - uid: 1896 + components: + - type: Transform + pos: -25.5,-4.5 + parent: 1 + - uid: 1954 + components: + - type: Transform + pos: -26.5,-3.5 + parent: 1 + - uid: 2011 + components: + - type: Transform + pos: -24.5,-4.5 + parent: 1 + - uid: 2026 + components: + - type: Transform + pos: -27.5,-5.5 + parent: 1 + - uid: 2102 + components: + - type: Transform + pos: -27.5,-4.5 + parent: 1 + - uid: 2143 + components: + - type: Transform + pos: -26.5,-4.5 + parent: 1 + - uid: 2313 + components: + - type: Transform + pos: -24.5,-3.5 + parent: 1 + - uid: 2314 + components: + - type: Transform + pos: -25.5,-3.5 + parent: 1 + - uid: 2319 + components: + - type: Transform + pos: -26.5,-5.5 + parent: 1 + - uid: 2329 + components: + - type: Transform + pos: -25.5,-5.5 + parent: 1 + - uid: 2634 + components: + - type: Transform + pos: -25.5,-4.5 + parent: 1 + - uid: 2658 + components: + - type: Transform + pos: -27.5,-4.5 + parent: 1 + - uid: 2835 + components: + - type: Transform + pos: -26.5,-4.5 + parent: 1 + - uid: 3843 + components: + - type: Transform + pos: -31.5,48.5 + parent: 1 + - uid: 3941 + components: + - type: Transform + pos: -31.5,42.5 + parent: 1 + - uid: 3944 + components: + - type: Transform + pos: -35.5,42.5 + parent: 1 + - uid: 3992 + components: + - type: Transform + pos: -32.5,42.5 + parent: 1 + - uid: 4112 + components: + - type: Transform + pos: 35.5,37.5 + parent: 1 + - uid: 4115 + components: + - type: Transform + pos: 35.5,38.5 + parent: 1 + - uid: 4121 + components: + - type: Transform + pos: 35.5,36.5 + parent: 1 + - uid: 4153 + components: + - type: Transform + pos: 39.5,35.5 + parent: 1 + - uid: 4156 + components: + - type: Transform + pos: -42.5,45.5 + parent: 1 + - uid: 4176 + components: + - type: Transform + pos: -42.5,42.5 + parent: 1 + - uid: 4177 + components: + - type: Transform + pos: -42.5,43.5 + parent: 1 + - uid: 4182 + components: + - type: Transform + pos: -40.5,48.5 + parent: 1 + - uid: 4183 + components: + - type: Transform + pos: -40.5,49.5 + parent: 1 + - uid: 4187 + components: + - type: Transform + pos: 33.5,36.5 + parent: 1 + - uid: 4280 + components: + - type: Transform + pos: 37.5,38.5 + parent: 1 + - uid: 4286 + components: + - type: Transform + pos: 35.5,39.5 + parent: 1 + - uid: 4300 + components: + - type: Transform + pos: 35.5,40.5 + parent: 1 + - uid: 4349 + components: + - type: Transform + pos: -44.5,42.5 + parent: 1 + - uid: 4388 + components: + - type: Transform + pos: 33.5,37.5 + parent: 1 + - uid: 4444 + components: + - type: Transform + pos: 41.5,36.5 + parent: 1 + - uid: 4467 + components: + - type: Transform + pos: 36.5,35.5 + parent: 1 + - uid: 4471 + components: + - type: Transform + pos: 41.5,35.5 + parent: 1 + - uid: 4489 + components: + - type: Transform + pos: -40.5,42.5 + parent: 1 + - uid: 4531 + components: + - type: Transform + pos: -44.5,45.5 + parent: 1 + - uid: 4544 + components: + - type: Transform + pos: 39.5,36.5 + parent: 1 + - uid: 4546 + components: + - type: Transform + pos: 39.5,37.5 + parent: 1 + - uid: 4547 + components: + - type: Transform + pos: 39.5,38.5 + parent: 1 + - uid: 4558 + components: + - type: Transform + pos: 33.5,38.5 + parent: 1 + - uid: 4574 + components: + - type: Transform + pos: -40.5,47.5 + parent: 1 + - uid: 4575 + components: + - type: Transform + pos: 33.5,40.5 + parent: 1 + - uid: 4583 + components: + - type: Transform + pos: -39.5,41.5 + parent: 1 + - uid: 4608 + components: + - type: Transform + pos: 42.5,8.5 + parent: 1 + - uid: 4609 + components: + - type: Transform + pos: 42.5,7.5 + parent: 1 + - uid: 4615 + components: + - type: Transform + pos: -40.5,45.5 + parent: 1 + - uid: 4632 + components: + - type: Transform + pos: -44.5,44.5 + parent: 1 + - uid: 4634 + components: + - type: Transform + pos: 41.5,8.5 + parent: 1 + - uid: 4690 + components: + - type: Transform + pos: -44.5,43.5 + parent: 1 + - uid: 4730 + components: + - type: Transform + pos: 40.5,35.5 + parent: 1 + - uid: 4820 + components: + - type: Transform + pos: -40.5,44.5 + parent: 1 + - uid: 4821 + components: + - type: Transform + pos: 33.5,39.5 + parent: 1 + - uid: 4826 + components: + - type: Transform + pos: 36.5,34.5 + parent: 1 + - uid: 4827 + components: + - type: Transform + pos: 37.5,39.5 + parent: 1 + - uid: 4862 + components: + - type: Transform + pos: 40.5,34.5 + parent: 1 + - uid: 4863 + components: + - type: Transform + pos: 38.5,34.5 + parent: 1 + - uid: 4877 + components: + - type: Transform + pos: -46.5,43.5 + parent: 1 + - uid: 4883 + components: + - type: Transform + pos: 37.5,37.5 + parent: 1 + - uid: 4890 + components: + - type: Transform + pos: 37.5,35.5 + parent: 1 + - uid: 4895 + components: + - type: Transform + pos: 35.5,35.5 + parent: 1 + - uid: 4913 + components: + - type: Transform + pos: 38.5,35.5 + parent: 1 + - uid: 4928 + components: + - type: Transform + pos: 37.5,36.5 + parent: 1 + - uid: 4930 + components: + - type: Transform + pos: -46.5,43.5 + parent: 1 + - uid: 4931 + components: + - type: Transform + pos: -46.5,42.5 + parent: 1 + - uid: 4932 + components: + - type: Transform + pos: -46.5,44.5 + parent: 1 + - uid: 4933 + components: + - type: Transform + pos: -42.5,44.5 + parent: 1 + - uid: 5022 + components: + - type: Transform + pos: -40.5,43.5 + parent: 1 + - uid: 5049 + components: + - type: Transform + pos: 34.5,36.5 + parent: 1 + - uid: 5111 + components: + - type: Transform + pos: 18.5,60.5 + parent: 1 + - uid: 5257 + components: + - type: Transform + pos: 41.5,5.5 + parent: 1 + - uid: 5258 + components: + - type: Transform + pos: 40.5,5.5 + parent: 1 + - uid: 5263 + components: + - type: Transform + pos: -28.5,-3.5 + parent: 1 + - uid: 5267 + components: + - type: Transform + pos: 41.5,7.5 + parent: 1 + - uid: 5365 + components: + - type: Transform + pos: -45.5,42.5 + parent: 1 + - uid: 5471 + components: + - type: Transform + pos: -45.5,41.5 + parent: 1 + - uid: 5472 + components: + - type: Transform + pos: -43.5,42.5 + parent: 1 + - uid: 5473 + components: + - type: Transform + pos: -43.5,41.5 + parent: 1 + - uid: 5474 + components: + - type: Transform + pos: -41.5,42.5 + parent: 1 + - uid: 5475 + components: + - type: Transform + pos: -41.5,41.5 + parent: 1 + - uid: 5476 + components: + - type: Transform + pos: -39.5,42.5 + parent: 1 + - uid: 5536 + components: + - type: Transform + pos: 18.5,59.5 + parent: 1 + - uid: 5807 + components: + - type: Transform + pos: 17.5,60.5 + parent: 1 + - uid: 6564 + components: + - type: Transform + pos: -15.5,-3.5 + parent: 1 + - uid: 6565 + components: + - type: Transform + pos: 19.5,-0.5 + parent: 1 + - uid: 6566 + components: + - type: Transform + pos: 20.5,-0.5 + parent: 1 + - uid: 6567 + components: + - type: Transform + pos: -27.5,-7.5 + parent: 1 + - uid: 6573 + components: + - type: Transform + pos: 21.5,-0.5 + parent: 1 + - uid: 6575 + components: + - type: Transform + pos: -27.5,-8.5 + parent: 1 + - uid: 6583 + components: + - type: Transform + pos: 2.5,15.5 + parent: 1 + - uid: 6584 + components: + - type: Transform + pos: 14.5,-4.5 + parent: 1 + - uid: 6585 + components: + - type: Transform + pos: 15.5,-4.5 + parent: 1 + - uid: 6586 + components: + - type: Transform + pos: 16.5,-4.5 + parent: 1 + - uid: 6587 + components: + - type: Transform + pos: 17.5,-4.5 + parent: 1 + - uid: 6594 + components: + - type: Transform + pos: 2.5,14.5 + parent: 1 + - uid: 6595 + components: + - type: Transform + pos: 2.5,13.5 + parent: 1 + - uid: 6596 + components: + - type: Transform + pos: 2.5,12.5 + parent: 1 + - uid: 6597 + components: + - type: Transform + pos: 3.5,12.5 + parent: 1 + - uid: 6598 + components: + - type: Transform + pos: 2.5,22.5 + parent: 1 + - uid: 6599 + components: + - type: Transform + pos: 2.5,21.5 + parent: 1 + - uid: 6605 + components: + - type: Transform + pos: -14.5,13.5 + parent: 1 + - uid: 6606 + components: + - type: Transform + pos: 17.5,-5.5 + parent: 1 + - uid: 6607 + components: + - type: Transform + pos: -14.5,10.5 + parent: 1 + - uid: 6608 + components: + - type: Transform + pos: 12.5,39.5 + parent: 1 + - uid: 6609 + components: + - type: Transform + pos: -15.5,-5.5 + parent: 1 + - uid: 6610 + components: + - type: Transform + pos: -16.5,-5.5 + parent: 1 + - uid: 6611 + components: + - type: Transform + pos: -16.5,-6.5 + parent: 1 + - uid: 6621 + components: + - type: Transform + pos: -14.5,3.5 + parent: 1 + - uid: 6631 + components: + - type: Transform + pos: 27.5,28.5 + parent: 1 + - uid: 6634 + components: + - type: Transform + pos: -6.5,23.5 + parent: 1 + - uid: 6635 + components: + - type: Transform + pos: -15.5,-1.5 + parent: 1 + - uid: 6636 + components: + - type: Transform + pos: -15.5,-0.5 + parent: 1 + - uid: 6637 + components: + - type: Transform + pos: -15.5,0.5 + parent: 1 + - uid: 6638 + components: + - type: Transform + pos: -15.5,1.5 + parent: 1 + - uid: 6639 + components: + - type: Transform + pos: -15.5,2.5 + parent: 1 + - uid: 6640 + components: + - type: Transform + pos: -14.5,2.5 + parent: 1 + - uid: 6644 + components: + - type: Transform + pos: 27.5,25.5 + parent: 1 + - uid: 6645 + components: + - type: Transform + pos: 27.5,26.5 + parent: 1 + - uid: 6650 + components: + - type: Transform + pos: -18.5,22.5 + parent: 1 + - uid: 6651 + components: + - type: Transform + pos: -17.5,22.5 + parent: 1 + - uid: 6652 + components: + - type: Transform + pos: -17.5,23.5 + parent: 1 + - uid: 6654 + components: + - type: Transform + pos: 3.5,39.5 + parent: 1 + - uid: 6655 + components: + - type: Transform + pos: 27.5,33.5 + parent: 1 + - uid: 6656 + components: + - type: Transform + pos: 27.5,34.5 + parent: 1 + - uid: 6657 + components: + - type: Transform + pos: 23.5,37.5 + parent: 1 + - uid: 6658 + components: + - type: Transform + pos: 27.5,27.5 + parent: 1 + - uid: 6659 + components: + - type: Transform + pos: 21.5,37.5 + parent: 1 + - uid: 6660 + components: + - type: Transform + pos: -14.5,17.5 + parent: 1 + - uid: 6662 + components: + - type: Transform + pos: -14.5,14.5 + parent: 1 + - uid: 6663 + components: + - type: Transform + pos: -16.5,23.5 + parent: 1 + - uid: 6664 + components: + - type: Transform + pos: -15.5,23.5 + parent: 1 + - uid: 6665 + components: + - type: Transform + pos: 2.5,18.5 + parent: 1 + - uid: 6666 + components: + - type: Transform + pos: 2.5,19.5 + parent: 1 + - uid: 6667 + components: + - type: Transform + pos: 2.5,20.5 + parent: 1 + - uid: 6669 + components: + - type: Transform + pos: 0.5,23.5 + parent: 1 + - uid: 6670 + components: + - type: Transform + pos: 1.5,23.5 + parent: 1 + - uid: 6671 + components: + - type: Transform + pos: -1.5,23.5 + parent: 1 + - uid: 6672 + components: + - type: Transform + pos: -0.5,23.5 + parent: 1 + - uid: 6673 + components: + - type: Transform + pos: -3.5,23.5 + parent: 1 + - uid: 6674 + components: + - type: Transform + pos: -2.5,23.5 + parent: 1 + - uid: 6675 + components: + - type: Transform + pos: -9.5,23.5 + parent: 1 + - uid: 6676 + components: + - type: Transform + pos: -7.5,23.5 + parent: 1 + - uid: 6677 + components: + - type: Transform + pos: 5.5,10.5 + parent: 1 + - uid: 6678 + components: + - type: Transform + pos: 5.5,9.5 + parent: 1 + - uid: 6679 + components: + - type: Transform + pos: 5.5,8.5 + parent: 1 + - uid: 6680 + components: + - type: Transform + pos: 5.5,7.5 + parent: 1 + - uid: 6681 + components: + - type: Transform + pos: 5.5,6.5 + parent: 1 + - uid: 6682 + components: + - type: Transform + pos: 5.5,5.5 + parent: 1 + - uid: 6683 + components: + - type: Transform + pos: 5.5,4.5 + parent: 1 + - uid: 6691 + components: + - type: Transform + pos: -31.5,40.5 + parent: 1 + - uid: 6692 + components: + - type: Transform + pos: -31.5,41.5 + parent: 1 + - uid: 6693 + components: + - type: Transform + pos: -30.5,41.5 + parent: 1 + - uid: 6694 + components: + - type: Transform + pos: 17.5,39.5 + parent: 1 + - uid: 6695 + components: + - type: Transform + pos: 18.5,39.5 + parent: 1 + - uid: 6696 + components: + - type: Transform + pos: 19.5,39.5 + parent: 1 + - uid: 6697 + components: + - type: Transform + pos: 20.5,39.5 + parent: 1 + - uid: 6698 + components: + - type: Transform + pos: 21.5,39.5 + parent: 1 + - uid: 6703 + components: + - type: Transform + pos: 2.5,42.5 + parent: 1 + - uid: 6704 + components: + - type: Transform + pos: 2.5,44.5 + parent: 1 + - uid: 6706 + components: + - type: Transform + pos: 25.5,25.5 + parent: 1 + - uid: 6707 + components: + - type: Transform + pos: 24.5,25.5 + parent: 1 + - uid: 6708 + components: + - type: Transform + pos: 24.5,24.5 + parent: 1 + - uid: 6709 + components: + - type: Transform + pos: 24.5,23.5 + parent: 1 + - uid: 6710 + components: + - type: Transform + pos: 5.5,11.5 + parent: 1 + - uid: 6713 + components: + - type: Transform + pos: 22.5,37.5 + parent: 1 + - uid: 6718 + components: + - type: Transform + pos: 19.5,-1.5 + parent: 1 + - uid: 6719 + components: + - type: Transform + pos: 19.5,-2.5 + parent: 1 + - uid: 6720 + components: + - type: Transform + pos: 19.5,-3.5 + parent: 1 + - uid: 6721 + components: + - type: Transform + pos: 19.5,-4.5 + parent: 1 + - uid: 6722 + components: + - type: Transform + pos: 19.5,-5.5 + parent: 1 + - uid: 6723 + components: + - type: Transform + pos: 19.5,-6.5 + parent: 1 + - uid: 6725 + components: + - type: Transform + pos: -14.5,16.5 + parent: 1 + - uid: 6734 + components: + - type: Transform + pos: 27.5,29.5 + parent: 1 + - uid: 6735 + components: + - type: Transform + pos: 27.5,30.5 + parent: 1 + - uid: 6736 + components: + - type: Transform + pos: 27.5,31.5 + parent: 1 + - uid: 6737 + components: + - type: Transform + pos: 27.5,32.5 + parent: 1 + - uid: 6738 + components: + - type: Transform + pos: -14.5,18.5 + parent: 1 + - uid: 6739 + components: + - type: Transform + pos: 11.5,39.5 + parent: 1 + - uid: 6740 + components: + - type: Transform + pos: 6.5,2.5 + parent: 1 + - uid: 6741 + components: + - type: Transform + pos: 17.5,-6.5 + parent: 1 + - uid: 6752 + components: + - type: Transform + pos: 15.5,37.5 + parent: 1 + - uid: 6753 + components: + - type: Transform + pos: 14.5,37.5 + parent: 1 + - uid: 6754 + components: + - type: Transform + pos: 13.5,37.5 + parent: 1 + - uid: 6755 + components: + - type: Transform + pos: 13.5,38.5 + parent: 1 + - uid: 6756 + components: + - type: Transform + pos: 20.5,37.5 + parent: 1 + - uid: 6760 + components: + - type: Transform + pos: -18.5,-10.5 + parent: 1 + - uid: 6761 + components: + - type: Transform + pos: -17.5,-10.5 + parent: 1 + - uid: 6763 + components: + - type: Transform + pos: -15.5,-2.5 + parent: 1 + - uid: 6764 + components: + - type: Transform + pos: 2.5,25.5 + parent: 1 + - uid: 6765 + components: + - type: Transform + pos: 2.5,24.5 + parent: 1 + - uid: 6766 + components: + - type: Transform + pos: -15.5,-4.5 + parent: 1 + - uid: 6767 + components: + - type: Transform + pos: -8.5,23.5 + parent: 1 + - uid: 6768 + components: + - type: Transform + pos: 24.5,22.5 + parent: 1 + - uid: 6769 + components: + - type: Transform + pos: 23.5,22.5 + parent: 1 + - uid: 6770 + components: + - type: Transform + pos: 23.5,-2.5 + parent: 1 + - uid: 6771 + components: + - type: Transform + pos: 22.5,-2.5 + parent: 1 + - uid: 6772 + components: + - type: Transform + pos: 22.5,-1.5 + parent: 1 + - uid: 6773 + components: + - type: Transform + pos: 22.5,-0.5 + parent: 1 + - uid: 6774 + components: + - type: Transform + pos: 7.5,0.5 + parent: 1 + - uid: 6775 + components: + - type: Transform + pos: 7.5,1.5 + parent: 1 + - uid: 6776 + components: + - type: Transform + pos: 7.5,2.5 + parent: 1 + - uid: 6777 + components: + - type: Transform + pos: 5.5,2.5 + parent: 1 + - uid: 6778 + components: + - type: Transform + pos: -32.5,20.5 + parent: 1 + - uid: 6779 + components: + - type: Transform + pos: -32.5,21.5 + parent: 1 + - uid: 6780 + components: + - type: Transform + pos: -31.5,21.5 + parent: 1 + - uid: 6781 + components: + - type: Transform + pos: -30.5,21.5 + parent: 1 + - uid: 6782 + components: + - type: Transform + pos: -30.5,22.5 + parent: 1 + - uid: 6783 + components: + - type: Transform + pos: -29.5,22.5 + parent: 1 + - uid: 6784 + components: + - type: Transform + pos: -28.5,22.5 + parent: 1 + - uid: 6785 + components: + - type: Transform + pos: -27.5,22.5 + parent: 1 + - uid: 6786 + components: + - type: Transform + pos: -26.5,22.5 + parent: 1 + - uid: 6787 + components: + - type: Transform + pos: -25.5,22.5 + parent: 1 + - uid: 6788 + components: + - type: Transform + pos: -24.5,22.5 + parent: 1 + - uid: 6789 + components: + - type: Transform + pos: 2.5,17.5 + parent: 1 + - uid: 6790 + components: + - type: Transform + pos: 2.5,16.5 + parent: 1 + - uid: 6793 + components: + - type: Transform + pos: 5.5,3.5 + parent: 1 + - uid: 6800 + components: + - type: Transform + pos: 7.5,-0.5 + parent: 1 + - uid: 6801 + components: + - type: Transform + pos: 7.5,-1.5 + parent: 1 + - uid: 6802 + components: + - type: Transform + pos: 7.5,-2.5 + parent: 1 + - uid: 6803 + components: + - type: Transform + pos: 7.5,-3.5 + parent: 1 + - uid: 6804 + components: + - type: Transform + pos: 7.5,-4.5 + parent: 1 + - uid: 6805 + components: + - type: Transform + pos: 8.5,-4.5 + parent: 1 + - uid: 6806 + components: + - type: Transform + pos: 9.5,-4.5 + parent: 1 + - uid: 6807 + components: + - type: Transform + pos: 10.5,-4.5 + parent: 1 + - uid: 6808 + components: + - type: Transform + pos: 11.5,-4.5 + parent: 1 + - uid: 6809 + components: + - type: Transform + pos: 12.5,-4.5 + parent: 1 + - uid: 6810 + components: + - type: Transform + pos: 13.5,-4.5 + parent: 1 + - uid: 6811 + components: + - type: Transform + pos: 22.5,39.5 + parent: 1 + - uid: 6812 + components: + - type: Transform + pos: 23.5,39.5 + parent: 1 + - uid: 6813 + components: + - type: Transform + pos: 23.5,40.5 + parent: 1 + - uid: 6814 + components: + - type: Transform + pos: 24.5,40.5 + parent: 1 + - uid: 6815 + components: + - type: Transform + pos: 25.5,40.5 + parent: 1 + - uid: 6816 + components: + - type: Transform + pos: 26.5,40.5 + parent: 1 + - uid: 6820 + components: + - type: Transform + pos: 2.5,28.5 + parent: 1 + - uid: 6821 + components: + - type: Transform + pos: 2.5,29.5 + parent: 1 + - uid: 6822 + components: + - type: Transform + pos: 2.5,30.5 + parent: 1 + - uid: 6823 + components: + - type: Transform + pos: 2.5,32.5 + parent: 1 + - uid: 6824 + components: + - type: Transform + pos: 2.5,31.5 + parent: 1 + - uid: 6825 + components: + - type: Transform + pos: 2.5,33.5 + parent: 1 + - uid: 6826 + components: + - type: Transform + pos: 2.5,34.5 + parent: 1 + - uid: 6827 + components: + - type: Transform + pos: 2.5,35.5 + parent: 1 + - uid: 6828 + components: + - type: Transform + pos: 2.5,36.5 + parent: 1 + - uid: 6829 + components: + - type: Transform + pos: 2.5,37.5 + parent: 1 + - uid: 6830 + components: + - type: Transform + pos: 2.5,38.5 + parent: 1 + - uid: 6831 + components: + - type: Transform + pos: 2.5,39.5 + parent: 1 + - uid: 6832 + components: + - type: Transform + pos: 2.5,26.5 + parent: 1 + - uid: 6833 + components: + - type: Transform + pos: -13.5,23.5 + parent: 1 + - uid: 6834 + components: + - type: Transform + pos: -12.5,23.5 + parent: 1 + - uid: 6835 + components: + - type: Transform + pos: -11.5,23.5 + parent: 1 + - uid: 6836 + components: + - type: Transform + pos: -10.5,23.5 + parent: 1 + - uid: 6837 + components: + - type: Transform + pos: -14.5,6.5 + parent: 1 + - uid: 6838 + components: + - type: Transform + pos: -14.5,7.5 + parent: 1 + - uid: 6839 + components: + - type: Transform + pos: -14.5,8.5 + parent: 1 + - uid: 6840 + components: + - type: Transform + pos: -14.5,9.5 + parent: 1 + - uid: 6841 + components: + - type: Transform + pos: -14.5,35.5 + parent: 1 + - uid: 6842 + components: + - type: Transform + pos: -14.5,34.5 + parent: 1 + - uid: 6843 + components: + - type: Transform + pos: -14.5,19.5 + parent: 1 + - uid: 6844 + components: + - type: Transform + pos: -14.5,20.5 + parent: 1 + - uid: 6845 + components: + - type: Transform + pos: -14.5,21.5 + parent: 1 + - uid: 6846 + components: + - type: Transform + pos: -14.5,22.5 + parent: 1 + - uid: 6847 + components: + - type: Transform + pos: -14.5,23.5 + parent: 1 + - uid: 6848 + components: + - type: Transform + pos: -14.5,24.5 + parent: 1 + - uid: 6849 + components: + - type: Transform + pos: -14.5,25.5 + parent: 1 + - uid: 6850 + components: + - type: Transform + pos: -14.5,26.5 + parent: 1 + - uid: 6851 + components: + - type: Transform + pos: -14.5,27.5 + parent: 1 + - uid: 6852 + components: + - type: Transform + pos: -14.5,28.5 + parent: 1 + - uid: 6853 + components: + - type: Transform + pos: -14.5,29.5 + parent: 1 + - uid: 6854 + components: + - type: Transform + pos: -14.5,30.5 + parent: 1 + - uid: 6855 + components: + - type: Transform + pos: -14.5,31.5 + parent: 1 + - uid: 6856 + components: + - type: Transform + pos: -14.5,32.5 + parent: 1 + - uid: 6857 + components: + - type: Transform + pos: -14.5,33.5 + parent: 1 + - uid: 6859 + components: + - type: Transform + pos: 23.5,34.5 + parent: 1 + - uid: 6860 + components: + - type: Transform + pos: 23.5,35.5 + parent: 1 + - uid: 6861 + components: + - type: Transform + pos: 23.5,36.5 + parent: 1 + - uid: 6862 + components: + - type: Transform + pos: -16.5,-7.5 + parent: 1 + - uid: 6863 + components: + - type: Transform + pos: -16.5,-8.5 + parent: 1 + - uid: 6864 + components: + - type: Transform + pos: -16.5,-9.5 + parent: 1 + - uid: 6865 + components: + - type: Transform + pos: -23.5,-9.5 + parent: 1 + - uid: 6875 + components: + - type: Transform + pos: 13.5,39.5 + parent: 1 + - uid: 6876 + components: + - type: Transform + pos: 14.5,39.5 + parent: 1 + - uid: 6877 + components: + - type: Transform + pos: 16.5,39.5 + parent: 1 + - uid: 6878 + components: + - type: Transform + pos: 15.5,39.5 + parent: 1 + - uid: 6884 + components: + - type: Transform + pos: 24.5,34.5 + parent: 1 + - uid: 6885 + components: + - type: Transform + pos: 25.5,34.5 + parent: 1 + - uid: 6886 + components: + - type: Transform + pos: 26.5,34.5 + parent: 1 + - uid: 6891 + components: + - type: Transform + pos: -19.5,-10.5 + parent: 1 + - uid: 6895 + components: + - type: Transform + pos: 26.5,39.5 + parent: 1 + - uid: 6896 + components: + - type: Transform + pos: 26.5,38.5 + parent: 1 + - uid: 6898 + components: + - type: Transform + pos: 17.5,37.5 + parent: 1 + - uid: 6900 + components: + - type: Transform + pos: 16.5,37.5 + parent: 1 + - uid: 6909 + components: + - type: Transform + pos: 27.5,38.5 + parent: 1 + - uid: 6910 + components: + - type: Transform + pos: 28.5,38.5 + parent: 1 + - uid: 6912 + components: + - type: Transform + pos: -14.5,12.5 + parent: 1 + - uid: 6913 + components: + - type: Transform + pos: -14.5,11.5 + parent: 1 + - uid: 6918 + components: + - type: Transform + pos: 17.5,-7.5 + parent: 1 + - uid: 6919 + components: + - type: Transform + pos: 18.5,-7.5 + parent: 1 + - uid: 6920 + components: + - type: Transform + pos: 19.5,-7.5 + parent: 1 + - uid: 6923 + components: + - type: Transform + pos: 2.5,27.5 + parent: 1 + - uid: 6924 + components: + - type: Transform + pos: -14.5,5.5 + parent: 1 + - uid: 6925 + components: + - type: Transform + pos: -14.5,4.5 + parent: 1 + - uid: 6926 + components: + - type: Transform + pos: 4.5,39.5 + parent: 1 + - uid: 6927 + components: + - type: Transform + pos: 5.5,39.5 + parent: 1 + - uid: 6928 + components: + - type: Transform + pos: 10.5,39.5 + parent: 1 + - uid: 6929 + components: + - type: Transform + pos: 9.5,39.5 + parent: 1 + - uid: 6930 + components: + - type: Transform + pos: 9.5,38.5 + parent: 1 + - uid: 6931 + components: + - type: Transform + pos: 9.5,37.5 + parent: 1 + - uid: 6932 + components: + - type: Transform + pos: 8.5,37.5 + parent: 1 + - uid: 6933 + components: + - type: Transform + pos: 7.5,37.5 + parent: 1 + - uid: 6934 + components: + - type: Transform + pos: 6.5,37.5 + parent: 1 + - uid: 6935 + components: + - type: Transform + pos: 5.5,37.5 + parent: 1 + - uid: 6936 + components: + - type: Transform + pos: 5.5,38.5 + parent: 1 + - uid: 6937 + components: + - type: Transform + pos: 2.5,23.5 + parent: 1 + - uid: 6938 + components: + - type: Transform + pos: -14.5,15.5 + parent: 1 + - uid: 6939 + components: + - type: Transform + pos: -16.5,-10.5 + parent: 1 + - uid: 6940 + components: + - type: Transform + pos: -4.5,23.5 + parent: 1 + - uid: 6941 + components: + - type: Transform + pos: -5.5,23.5 + parent: 1 + - uid: 6947 + components: + - type: Transform + pos: -31.5,39.5 + parent: 1 + - uid: 6948 + components: + - type: Transform + pos: -31.5,38.5 + parent: 1 + - uid: 6949 + components: + - type: Transform + pos: -31.5,37.5 + parent: 1 + - uid: 6950 + components: + - type: Transform + pos: -30.5,37.5 + parent: 1 + - uid: 6951 + components: + - type: Transform + pos: -29.5,37.5 + parent: 1 + - uid: 6952 + components: + - type: Transform + pos: -28.5,37.5 + parent: 1 + - uid: 6953 + components: + - type: Transform + pos: -27.5,37.5 + parent: 1 + - uid: 6954 + components: + - type: Transform + pos: -26.5,37.5 + parent: 1 + - uid: 6955 + components: + - type: Transform + pos: -25.5,37.5 + parent: 1 + - uid: 6956 + components: + - type: Transform + pos: -24.5,37.5 + parent: 1 + - uid: 6957 + components: + - type: Transform + pos: -23.5,37.5 + parent: 1 + - uid: 6958 + components: + - type: Transform + pos: -22.5,37.5 + parent: 1 + - uid: 6959 + components: + - type: Transform + pos: -21.5,37.5 + parent: 1 + - uid: 6960 + components: + - type: Transform + pos: -20.5,37.5 + parent: 1 + - uid: 6961 + components: + - type: Transform + pos: -19.5,37.5 + parent: 1 + - uid: 6962 + components: + - type: Transform + pos: -18.5,37.5 + parent: 1 + - uid: 6963 + components: + - type: Transform + pos: -17.5,37.5 + parent: 1 + - uid: 6964 + components: + - type: Transform + pos: -16.5,37.5 + parent: 1 + - uid: 6965 + components: + - type: Transform + pos: -15.5,37.5 + parent: 1 + - uid: 6966 + components: + - type: Transform + pos: -14.5,37.5 + parent: 1 + - uid: 6967 + components: + - type: Transform + pos: -14.5,36.5 + parent: 1 + - uid: 6970 + components: + - type: Transform + pos: 19.5,37.5 + parent: 1 + - uid: 6971 + components: + - type: Transform + pos: 18.5,37.5 + parent: 1 + - uid: 6974 + components: + - type: Transform + pos: -19.5,22.5 + parent: 1 + - uid: 6975 + components: + - type: Transform + pos: -20.5,22.5 + parent: 1 + - uid: 6976 + components: + - type: Transform + pos: -21.5,22.5 + parent: 1 + - uid: 6977 + components: + - type: Transform + pos: -23.5,22.5 + parent: 1 + - uid: 6978 + components: + - type: Transform + pos: -22.5,22.5 + parent: 1 + - uid: 6988 + components: + - type: Transform + pos: 2.5,43.5 + parent: 1 + - uid: 6996 + components: + - type: Transform + pos: 4.5,12.5 + parent: 1 + - uid: 6997 + components: + - type: Transform + pos: 5.5,12.5 + parent: 1 + - uid: 6998 + components: + - type: Transform + pos: 26.5,25.5 + parent: 1 + - uid: 7008 + components: + - type: Transform + pos: 2.5,49.5 + parent: 1 + - uid: 7009 + components: + - type: Transform + pos: 2.5,48.5 + parent: 1 + - uid: 7010 + components: + - type: Transform + pos: 2.5,47.5 + parent: 1 + - uid: 7011 + components: + - type: Transform + pos: 2.5,46.5 + parent: 1 + - uid: 7012 + components: + - type: Transform + pos: 2.5,45.5 + parent: 1 + - uid: 7035 + components: + - type: Transform + pos: 2.5,40.5 + parent: 1 + - uid: 7036 + components: + - type: Transform + pos: 2.5,41.5 + parent: 1 + - uid: 7037 + components: + - type: Transform + pos: 3.5,67.5 + parent: 1 + - uid: 7038 + components: + - type: Transform + pos: 2.5,67.5 + parent: 1 + - uid: 7039 + components: + - type: Transform + pos: 1.5,67.5 + parent: 1 + - uid: 7040 + components: + - type: Transform + pos: 0.5,67.5 + parent: 1 + - uid: 7041 + components: + - type: Transform + pos: -0.5,67.5 + parent: 1 + - uid: 7042 + components: + - type: Transform + pos: -1.5,67.5 + parent: 1 + - uid: 7043 + components: + - type: Transform + pos: -2.5,67.5 + parent: 1 + - uid: 7044 + components: + - type: Transform + pos: -3.5,67.5 + parent: 1 + - uid: 7045 + components: + - type: Transform + pos: -4.5,67.5 + parent: 1 + - uid: 7046 + components: + - type: Transform + pos: -4.5,66.5 + parent: 1 + - uid: 7047 + components: + - type: Transform + pos: -4.5,65.5 + parent: 1 + - uid: 7048 + components: + - type: Transform + pos: -4.5,64.5 + parent: 1 + - uid: 7049 + components: + - type: Transform + pos: -4.5,63.5 + parent: 1 + - uid: 7050 + components: + - type: Transform + pos: -4.5,62.5 + parent: 1 + - uid: 7051 + components: + - type: Transform + pos: -5.5,62.5 + parent: 1 + - uid: 7052 + components: + - type: Transform + pos: -6.5,62.5 + parent: 1 + - uid: 7053 + components: + - type: Transform + pos: -7.5,62.5 + parent: 1 + - uid: 7054 + components: + - type: Transform + pos: -8.5,62.5 + parent: 1 + - uid: 7055 + components: + - type: Transform + pos: -9.5,62.5 + parent: 1 + - uid: 7056 + components: + - type: Transform + pos: -9.5,61.5 + parent: 1 + - uid: 7057 + components: + - type: Transform + pos: -10.5,61.5 + parent: 1 + - uid: 7058 + components: + - type: Transform + pos: -11.5,61.5 + parent: 1 + - uid: 7059 + components: + - type: Transform + pos: -11.5,60.5 + parent: 1 + - uid: 7064 + components: + - type: Transform + pos: -20.5,-10.5 + parent: 1 + - uid: 7065 + components: + - type: Transform + pos: -21.5,-10.5 + parent: 1 + - uid: 7066 + components: + - type: Transform + pos: -22.5,-8.5 + parent: 1 + - uid: 7067 + components: + - type: Transform + pos: -18.5,-8.5 + parent: 1 + - uid: 7080 + components: + - type: Transform + pos: 2.5,51.5 + parent: 1 + - uid: 7081 + components: + - type: Transform + pos: 2.5,50.5 + parent: 1 + - uid: 7082 + components: + - type: Transform + pos: 2.5,52.5 + parent: 1 + - uid: 7083 + components: + - type: Transform + pos: 2.5,53.5 + parent: 1 + - uid: 7084 + components: + - type: Transform + pos: 2.5,54.5 + parent: 1 + - uid: 7085 + components: + - type: Transform + pos: 2.5,55.5 + parent: 1 + - uid: 7086 + components: + - type: Transform + pos: 2.5,56.5 + parent: 1 + - uid: 7087 + components: + - type: Transform + pos: 2.5,57.5 + parent: 1 + - uid: 7088 + components: + - type: Transform + pos: 2.5,58.5 + parent: 1 + - uid: 7089 + components: + - type: Transform + pos: 3.5,58.5 + parent: 1 + - uid: 7090 + components: + - type: Transform + pos: 4.5,58.5 + parent: 1 + - uid: 7091 + components: + - type: Transform + pos: 5.5,58.5 + parent: 1 + - uid: 7092 + components: + - type: Transform + pos: 5.5,59.5 + parent: 1 + - uid: 7093 + components: + - type: Transform + pos: 5.5,60.5 + parent: 1 + - uid: 7094 + components: + - type: Transform + pos: 5.5,61.5 + parent: 1 + - uid: 7095 + components: + - type: Transform + pos: 5.5,62.5 + parent: 1 + - uid: 7096 + components: + - type: Transform + pos: 5.5,63.5 + parent: 1 + - uid: 7097 + components: + - type: Transform + pos: 5.5,64.5 + parent: 1 + - uid: 7098 + components: + - type: Transform + pos: 5.5,65.5 + parent: 1 + - uid: 7099 + components: + - type: Transform + pos: 5.5,66.5 + parent: 1 + - uid: 7100 + components: + - type: Transform + pos: 5.5,67.5 + parent: 1 + - uid: 7101 + components: + - type: Transform + pos: 4.5,67.5 + parent: 1 + - uid: 7106 + components: + - type: Transform + pos: -18.5,-7.5 + parent: 1 + - uid: 7176 + components: + - type: Transform + pos: -24.5,-9.5 + parent: 1 + - uid: 7208 + components: + - type: Transform + pos: -18.5,-9.5 + parent: 1 + - uid: 7209 + components: + - type: Transform + pos: -29.5,40.5 + parent: 1 + - uid: 7210 + components: + - type: Transform + pos: -29.5,41.5 + parent: 1 + - uid: 7213 + components: + - type: Transform + pos: -24.5,-8.5 + parent: 1 + - uid: 7214 + components: + - type: Transform + pos: -25.5,-8.5 + parent: 1 + - uid: 7215 + components: + - type: Transform + pos: -27.5,-5.5 + parent: 1 + - uid: 7216 + components: + - type: Transform + pos: -27.5,-6.5 + parent: 1 + - uid: 7295 + components: + - type: Transform + pos: -25.5,-7.5 + parent: 1 + - uid: 7296 + components: + - type: Transform + pos: -23.5,-8.5 + parent: 1 + - uid: 7419 + components: + - type: Transform + pos: -27.5,-9.5 + parent: 1 + - uid: 7420 + components: + - type: Transform + pos: -26.5,-9.5 + parent: 1 + - uid: 7421 + components: + - type: Transform + pos: -25.5,-9.5 + parent: 1 + - uid: 7445 + components: + - type: Transform + pos: -21.5,-9.5 + parent: 1 + - uid: 7446 + components: + - type: Transform + pos: -21.5,-8.5 + parent: 1 + - uid: 7464 + components: + - type: Transform + pos: -23.5,-7.5 + parent: 1 + - uid: 7465 + components: + - type: Transform + pos: -24.5,-7.5 + parent: 1 + - uid: 7475 + components: + - type: Transform + pos: 42.5,6.5 + parent: 1 + - uid: 7996 + components: + - type: Transform + pos: -36.5,41.5 + parent: 1 + - uid: 8645 + components: + - type: Transform + pos: -23.5,48.5 + parent: 1 + - uid: 8858 + components: + - type: Transform + pos: -14.5,42.5 + parent: 1 + - uid: 8859 + components: + - type: Transform + pos: -14.5,43.5 + parent: 1 + - uid: 9096 + components: + - type: Transform + pos: -30.5,48.5 + parent: 1 + - uid: 9097 + components: + - type: Transform + pos: -28.5,48.5 + parent: 1 + - uid: 9098 + components: + - type: Transform + pos: -29.5,48.5 + parent: 1 + - uid: 9256 + components: + - type: Transform + pos: -19.5,48.5 + parent: 1 + - uid: 9257 + components: + - type: Transform + pos: -27.5,48.5 + parent: 1 + - uid: 9258 + components: + - type: Transform + pos: -32.5,48.5 + parent: 1 + - uid: 9272 + components: + - type: Transform + pos: -18.5,48.5 + parent: 1 + - uid: 9332 + components: + - type: Transform + pos: -25.5,48.5 + parent: 1 + - uid: 9444 + components: + - type: Transform + pos: -14.5,38.5 + parent: 1 + - uid: 9445 + components: + - type: Transform + pos: -15.5,48.5 + parent: 1 + - uid: 9446 + components: + - type: Transform + pos: -16.5,48.5 + parent: 1 + - uid: 9447 + components: + - type: Transform + pos: -17.5,48.5 + parent: 1 + - uid: 9463 + components: + - type: Transform + pos: -14.5,45.5 + parent: 1 + - uid: 9464 + components: + - type: Transform + pos: -14.5,41.5 + parent: 1 + - uid: 9465 + components: + - type: Transform + pos: -14.5,40.5 + parent: 1 + - uid: 9466 + components: + - type: Transform + pos: -14.5,39.5 + parent: 1 + - uid: 9489 + components: + - type: Transform + pos: -14.5,44.5 + parent: 1 + - uid: 9503 + components: + - type: Transform + pos: -22.5,48.5 + parent: 1 + - uid: 9504 + components: + - type: Transform + pos: -21.5,48.5 + parent: 1 + - uid: 9505 + components: + - type: Transform + pos: -26.5,48.5 + parent: 1 + - uid: 9581 + components: + - type: Transform + pos: -24.5,48.5 + parent: 1 + - uid: 9582 + components: + - type: Transform + pos: -20.5,48.5 + parent: 1 + - uid: 9587 + components: + - type: Transform + pos: -14.5,46.5 + parent: 1 + - uid: 9588 + components: + - type: Transform + pos: -14.5,48.5 + parent: 1 + - uid: 9589 + components: + - type: Transform + pos: -14.5,47.5 + parent: 1 + - uid: 9726 + components: + - type: Transform + pos: -33.5,48.5 + parent: 1 + - uid: 9727 + components: + - type: Transform + pos: -32.5,49.5 + parent: 1 + - uid: 9728 + components: + - type: Transform + pos: -33.5,49.5 + parent: 1 + - uid: 9731 + components: + - type: Transform + pos: -32.5,50.5 + parent: 1 + - uid: 9732 + components: + - type: Transform + pos: -33.5,50.5 + parent: 1 + - uid: 9734 + components: + - type: Transform + pos: -31.5,47.5 + parent: 1 + - uid: 9735 + components: + - type: Transform + pos: -31.5,46.5 + parent: 1 + - uid: 9736 + components: + - type: Transform + pos: -32.5,46.5 + parent: 1 + - uid: 9737 + components: + - type: Transform + pos: -33.5,46.5 + parent: 1 + - uid: 9738 + components: + - type: Transform + pos: -34.5,46.5 + parent: 1 + - uid: 9739 + components: + - type: Transform + pos: -35.5,46.5 + parent: 1 + - uid: 9740 + components: + - type: Transform + pos: -35.5,47.5 + parent: 1 + - uid: 9741 + components: + - type: Transform + pos: -35.5,48.5 + parent: 1 + - uid: 9742 + components: + - type: Transform + pos: -35.5,49.5 + parent: 1 + - uid: 9743 + components: + - type: Transform + pos: -35.5,50.5 + parent: 1 + - uid: 9744 + components: + - type: Transform + pos: -34.5,50.5 + parent: 1 + - uid: 10376 + components: + - type: Transform + pos: 32.5,34.5 + parent: 1 + - uid: 10377 + components: + - type: Transform + pos: 33.5,34.5 + parent: 1 + - uid: 10378 + components: + - type: Transform + pos: 31.5,33.5 + parent: 1 + - uid: 11199 + components: + - type: Transform + pos: -24.5,-4.5 + parent: 1 + - uid: 12431 + components: + - type: Transform + pos: 31.5,34.5 + parent: 1 + - uid: 12527 + components: + - type: Transform + pos: 41.5,37.5 + parent: 1 + - uid: 12600 + components: + - type: Transform + pos: 30.5,33.5 + parent: 1 + - uid: 12601 + components: + - type: Transform + pos: 29.5,33.5 + parent: 1 + - uid: 12602 + components: + - type: Transform + pos: 28.5,33.5 + parent: 1 + - uid: 13295 + components: + - type: Transform + pos: 42.5,5.5 + parent: 1 + - uid: 14821 + components: + - type: Transform + pos: -27.5,-3.5 + parent: 1 + - uid: 14822 + components: + - type: Transform + pos: -28.5,-5.5 + parent: 1 + - uid: 14823 + components: + - type: Transform + pos: -28.5,-4.5 + parent: 1 + - uid: 14964 + components: + - type: Transform + pos: -40.5,50.5 + parent: 1 + - uid: 15032 + components: + - type: Transform + pos: -40.5,51.5 + parent: 1 + - uid: 15033 + components: + - type: Transform + pos: -42.5,51.5 + parent: 1 + - uid: 15034 + components: + - type: Transform + pos: -42.5,50.5 + parent: 1 + - uid: 15035 + components: + - type: Transform + pos: -42.5,49.5 + parent: 1 + - uid: 15036 + components: + - type: Transform + pos: -42.5,48.5 + parent: 1 + - uid: 15037 + components: + - type: Transform + pos: -42.5,47.5 + parent: 1 + - uid: 15038 + components: + - type: Transform + pos: -44.5,47.5 + parent: 1 + - uid: 15039 + components: + - type: Transform + pos: -44.5,48.5 + parent: 1 + - uid: 15040 + components: + - type: Transform + pos: -44.5,49.5 + parent: 1 + - uid: 15041 + components: + - type: Transform + pos: -44.5,50.5 + parent: 1 + - uid: 15042 + components: + - type: Transform + pos: -44.5,51.5 + parent: 1 + - uid: 15043 + components: + - type: Transform + pos: -46.5,51.5 + parent: 1 + - uid: 15044 + components: + - type: Transform + pos: -46.5,50.5 + parent: 1 + - uid: 15045 + components: + - type: Transform + pos: -46.5,49.5 + parent: 1 + - uid: 15046 + components: + - type: Transform + pos: -46.5,48.5 + parent: 1 + - uid: 15047 + components: + - type: Transform + pos: -46.5,47.5 + parent: 1 + - uid: 15048 + components: + - type: Transform + pos: -48.5,47.5 + parent: 1 + - uid: 15049 + components: + - type: Transform + pos: -48.5,48.5 + parent: 1 + - uid: 15050 + components: + - type: Transform + pos: -48.5,49.5 + parent: 1 + - uid: 15051 + components: + - type: Transform + pos: -48.5,50.5 + parent: 1 + - uid: 15052 + components: + - type: Transform + pos: -48.5,51.5 + parent: 1 + - uid: 15053 + components: + - type: Transform + pos: -50.5,50.5 + parent: 1 + - uid: 15054 + components: + - type: Transform + pos: -50.5,49.5 + parent: 1 + - uid: 15055 + components: + - type: Transform + pos: -50.5,48.5 + parent: 1 + - uid: 15056 + components: + - type: Transform + pos: -50.5,47.5 + parent: 1 + - uid: 15057 + components: + - type: Transform + pos: -52.5,47.5 + parent: 1 + - uid: 15058 + components: + - type: Transform + pos: -52.5,48.5 + parent: 1 + - uid: 15059 + components: + - type: Transform + pos: -52.5,49.5 + parent: 1 + - uid: 15060 + components: + - type: Transform + pos: -52.5,50.5 + parent: 1 + - uid: 15061 + components: + - type: Transform + pos: -54.5,49.5 + parent: 1 + - uid: 15062 + components: + - type: Transform + pos: -54.5,48.5 + parent: 1 + - uid: 15063 + components: + - type: Transform + pos: -54.5,47.5 + parent: 1 + - uid: 15064 + components: + - type: Transform + pos: -55.5,46.5 + parent: 1 + - uid: 15065 + components: + - type: Transform + pos: -54.5,45.5 + parent: 1 + - uid: 15066 + components: + - type: Transform + pos: -54.5,44.5 + parent: 1 + - uid: 15067 + components: + - type: Transform + pos: -54.5,43.5 + parent: 1 + - uid: 15068 + components: + - type: Transform + pos: -54.5,46.5 + parent: 1 + - uid: 15069 + components: + - type: Transform + pos: -52.5,45.5 + parent: 1 + - uid: 15070 + components: + - type: Transform + pos: -52.5,44.5 + parent: 1 + - uid: 15071 + components: + - type: Transform + pos: -52.5,43.5 + parent: 1 + - uid: 15072 + components: + - type: Transform + pos: -52.5,42.5 + parent: 1 + - uid: 15073 + components: + - type: Transform + pos: -50.5,41.5 + parent: 1 + - uid: 15074 + components: + - type: Transform + pos: -50.5,42.5 + parent: 1 + - uid: 15075 + components: + - type: Transform + pos: -50.5,43.5 + parent: 1 + - uid: 15076 + components: + - type: Transform + pos: -50.5,44.5 + parent: 1 + - uid: 15077 + components: + - type: Transform + pos: -50.5,45.5 + parent: 1 + - uid: 15078 + components: + - type: Transform + pos: -48.5,45.5 + parent: 1 + - uid: 15079 + components: + - type: Transform + pos: -48.5,44.5 + parent: 1 + - uid: 15080 + components: + - type: Transform + pos: -48.5,43.5 + parent: 1 + - uid: 15081 + components: + - type: Transform + pos: -48.5,42.5 + parent: 1 + - uid: 15082 + components: + - type: Transform + pos: -46.5,45.5 + parent: 1 + - uid: 15083 + components: + - type: Transform + pos: -44.5,45.5 + parent: 1 + - uid: 15084 + components: + - type: Transform + pos: -47.5,42.5 + parent: 1 + - uid: 15085 + components: + - type: Transform + pos: -47.5,41.5 + parent: 1 + - uid: 15086 + components: + - type: Transform + pos: -49.5,42.5 + parent: 1 + - uid: 15087 + components: + - type: Transform + pos: -49.5,41.5 + parent: 1 + - uid: 15088 + components: + - type: Transform + pos: -51.5,45.5 + parent: 1 + - uid: 15089 + components: + - type: Transform + pos: -53.5,45.5 + parent: 1 + - uid: 15090 + components: + - type: Transform + pos: -49.5,45.5 + parent: 1 + - uid: 15091 + components: + - type: Transform + pos: -53.5,47.5 + parent: 1 + - uid: 15092 + components: + - type: Transform + pos: -51.5,47.5 + parent: 1 + - uid: 15093 + components: + - type: Transform + pos: -49.5,47.5 + parent: 1 + - uid: 15094 + components: + - type: Transform + pos: -47.5,47.5 + parent: 1 + - uid: 15095 + components: + - type: Transform + pos: -45.5,47.5 + parent: 1 + - uid: 15096 + components: + - type: Transform + pos: -43.5,47.5 + parent: 1 + - uid: 15097 + components: + - type: Transform + pos: -41.5,47.5 + parent: 1 + - uid: 15098 + components: + - type: Transform + pos: -41.5,45.5 + parent: 1 + - uid: 15099 + components: + - type: Transform + pos: -43.5,45.5 + parent: 1 + - uid: 15100 + components: + - type: Transform + pos: -45.5,45.5 + parent: 1 + - uid: 15101 + components: + - type: Transform + pos: -47.5,45.5 + parent: 1 + - uid: 15230 + components: + - type: Transform + pos: -50.5,51.5 + parent: 1 + - uid: 15448 + components: + - type: Transform + pos: 41.5,38.5 + parent: 1 + - uid: 15449 + components: + - type: Transform + pos: 41.5,39.5 + parent: 1 + - uid: 15450 + components: + - type: Transform + pos: 41.5,40.5 + parent: 1 + - uid: 15451 + components: + - type: Transform + pos: 39.5,39.5 + parent: 1 + - uid: 15452 + components: + - type: Transform + pos: 39.5,40.5 + parent: 1 + - uid: 15453 + components: + - type: Transform + pos: 37.5,40.5 + parent: 1 + - uid: 15454 + components: + - type: Transform + pos: 42.5,35.5 + parent: 1 + - uid: 15455 + components: + - type: Transform + pos: 43.5,35.5 + parent: 1 + - uid: 15456 + components: + - type: Transform + pos: 43.5,36.5 + parent: 1 + - uid: 15457 + components: + - type: Transform + pos: 43.5,37.5 + parent: 1 + - uid: 15458 + components: + - type: Transform + pos: 43.5,38.5 + parent: 1 + - uid: 15459 + components: + - type: Transform + pos: 43.5,39.5 + parent: 1 + - uid: 15460 + components: + - type: Transform + pos: 43.5,40.5 + parent: 1 + - uid: 15461 + components: + - type: Transform + pos: 44.5,35.5 + parent: 1 + - uid: 15462 + components: + - type: Transform + pos: 45.5,35.5 + parent: 1 + - uid: 15463 + components: + - type: Transform + pos: 45.5,36.5 + parent: 1 + - uid: 15464 + components: + - type: Transform + pos: 45.5,37.5 + parent: 1 + - uid: 15465 + components: + - type: Transform + pos: 45.5,38.5 + parent: 1 + - uid: 15466 + components: + - type: Transform + pos: 45.5,39.5 + parent: 1 + - uid: 15467 + components: + - type: Transform + pos: 45.5,40.5 + parent: 1 + - uid: 15476 + components: + - type: Transform + pos: 47.5,34.5 + parent: 1 + - uid: 15477 + components: + - type: Transform + pos: 46.5,34.5 + parent: 1 + - uid: 15478 + components: + - type: Transform + pos: 42.5,34.5 + parent: 1 + - uid: 15479 + components: + - type: Transform + pos: 44.5,34.5 + parent: 1 + - uid: 15480 + components: + - type: Transform + pos: 46.5,35.5 + parent: 1 + - uid: 15723 + components: + - type: Transform + pos: -13.5,-24.5 + parent: 1 + - uid: 15726 + components: + - type: Transform + pos: -21.5,-35.5 + parent: 1 + - uid: 15730 + components: + - type: Transform + pos: -20.5,-35.5 + parent: 1 + - uid: 15731 + components: + - type: Transform + pos: -12.5,-21.5 + parent: 1 + - uid: 15732 + components: + - type: Transform + pos: -12.5,-20.5 + parent: 1 + - uid: 15733 + components: + - type: Transform + pos: -12.5,-19.5 + parent: 1 + - uid: 15734 + components: + - type: Transform + pos: -12.5,-18.5 + parent: 1 + - uid: 15735 + components: + - type: Transform + pos: -12.5,-17.5 + parent: 1 + - uid: 15736 + components: + - type: Transform + pos: -12.5,-16.5 + parent: 1 + - uid: 15737 + components: + - type: Transform + pos: -12.5,-15.5 + parent: 1 + - uid: 15738 + components: + - type: Transform + pos: -12.5,-14.5 + parent: 1 + - uid: 15739 + components: + - type: Transform + pos: -12.5,-13.5 + parent: 1 + - uid: 15740 + components: + - type: Transform + pos: -12.5,-12.5 + parent: 1 + - uid: 15741 + components: + - type: Transform + pos: -12.5,-11.5 + parent: 1 + - uid: 15742 + components: + - type: Transform + pos: -13.5,-11.5 + parent: 1 + - uid: 15743 + components: + - type: Transform + pos: -14.5,-11.5 + parent: 1 + - uid: 15744 + components: + - type: Transform + pos: -15.5,-11.5 + parent: 1 + - uid: 15745 + components: + - type: Transform + pos: -15.5,-12.5 + parent: 1 + - uid: 15746 + components: + - type: Transform + pos: -16.5,-12.5 + parent: 1 + - uid: 15747 + components: + - type: Transform + pos: -17.5,-12.5 + parent: 1 + - uid: 15748 + components: + - type: Transform + pos: -18.5,-12.5 + parent: 1 + - uid: 15749 + components: + - type: Transform + pos: -19.5,-12.5 + parent: 1 + - uid: 15750 + components: + - type: Transform + pos: -20.5,-12.5 + parent: 1 + - uid: 15751 + components: + - type: Transform + pos: -21.5,-12.5 + parent: 1 + - uid: 15752 + components: + - type: Transform + pos: -22.5,-12.5 + parent: 1 + - uid: 15753 + components: + - type: Transform + pos: -23.5,-12.5 + parent: 1 + - uid: 15754 + components: + - type: Transform + pos: -23.5,-11.5 + parent: 1 + - uid: 15755 + components: + - type: Transform + pos: -23.5,-10.5 + parent: 1 + - uid: 15894 + components: + - type: Transform + pos: -19.5,-35.5 + parent: 1 + - uid: 15982 + components: + - type: Transform + pos: -19.5,-34.5 + parent: 1 + - uid: 15983 + components: + - type: Transform + pos: -21.5,-34.5 + parent: 1 + - uid: 15984 + components: + - type: Transform + pos: -22.5,-34.5 + parent: 1 + - uid: 15985 + components: + - type: Transform + pos: -22.5,-33.5 + parent: 1 + - uid: 15986 + components: + - type: Transform + pos: -12.5,-22.5 + parent: 1 + - uid: 15987 + components: + - type: Transform + pos: -22.5,-32.5 + parent: 1 + - uid: 15988 + components: + - type: Transform + pos: -21.5,-32.5 + parent: 1 + - uid: 15989 + components: + - type: Transform + pos: -21.5,-31.5 + parent: 1 + - uid: 15992 + components: + - type: Transform + pos: -20.5,-31.5 + parent: 1 + - uid: 15993 + components: + - type: Transform + pos: -19.5,-31.5 + parent: 1 + - uid: 15994 + components: + - type: Transform + pos: -19.5,-32.5 + parent: 1 + - uid: 15995 + components: + - type: Transform + pos: -18.5,-32.5 + parent: 1 + - uid: 15998 + components: + - type: Transform + pos: -18.5,-33.5 + parent: 1 + - uid: 15999 + components: + - type: Transform + pos: -18.5,-34.5 + parent: 1 + - uid: 16000 + components: + - type: Transform + pos: -19.5,-34.5 + parent: 1 + - uid: 16001 + components: + - type: Transform + pos: -20.5,-30.5 + parent: 1 + - uid: 16002 + components: + - type: Transform + pos: -20.5,-29.5 + parent: 1 + - uid: 16003 + components: + - type: Transform + pos: -20.5,-28.5 + parent: 1 + - uid: 16004 + components: + - type: Transform + pos: -20.5,-27.5 + parent: 1 + - uid: 16005 + components: + - type: Transform + pos: -20.5,-26.5 + parent: 1 + - uid: 16006 + components: + - type: Transform + pos: -19.5,-26.5 + parent: 1 + - uid: 16007 + components: + - type: Transform + pos: -18.5,-26.5 + parent: 1 + - uid: 16008 + components: + - type: Transform + pos: -17.5,-26.5 + parent: 1 + - uid: 16009 + components: + - type: Transform + pos: -16.5,-26.5 + parent: 1 + - uid: 16010 + components: + - type: Transform + pos: -15.5,-26.5 + parent: 1 + - uid: 16011 + components: + - type: Transform + pos: -14.5,-26.5 + parent: 1 + - uid: 16012 + components: + - type: Transform + pos: -13.5,-26.5 + parent: 1 + - uid: 16013 + components: + - type: Transform + pos: -12.5,-26.5 + parent: 1 + - uid: 16014 + components: + - type: Transform + pos: -12.5,-25.5 + parent: 1 + - uid: 16015 + components: + - type: Transform + pos: -12.5,-24.5 + parent: 1 + - uid: 16020 + components: + - type: Transform + pos: -14.5,-24.5 + parent: 1 + - uid: 16021 + components: + - type: Transform + pos: -15.5,-24.5 + parent: 1 + - uid: 16022 + components: + - type: Transform + pos: -15.5,-23.5 + parent: 1 + - uid: 16023 + components: + - type: Transform + pos: -15.5,-22.5 + parent: 1 + - uid: 16024 + components: + - type: Transform + pos: -14.5,-22.5 + parent: 1 + - uid: 16025 + components: + - type: Transform + pos: -13.5,-22.5 + parent: 1 + - uid: 16026 + components: + - type: Transform + pos: -12.5,-22.5 + parent: 1 + - uid: 16614 + components: + - type: Transform + pos: 2.5,11.5 + parent: 1 + - uid: 16615 + components: + - type: Transform + pos: 2.5,10.5 + parent: 1 + - uid: 16616 + components: + - type: Transform + pos: 2.5,9.5 + parent: 1 +- proto: CableHVStack + entities: + - uid: 3161 + components: + - type: Transform + pos: -24.19354,-10.457401 + parent: 1 + - uid: 3163 + components: + - type: Transform + pos: -24.254694,-10.298403 + parent: 1 + - uid: 4653 + components: + - type: Transform + pos: 25.503332,38.65461 + parent: 1 +- proto: CableMV + entities: + - uid: 991 + components: + - type: Transform + pos: -6.5,-11.5 + parent: 1 + - uid: 1060 + components: + - type: Transform + pos: -6.5,-10.5 + parent: 1 + - uid: 1073 + components: + - type: Transform + pos: -6.5,-9.5 + parent: 1 + - uid: 1685 + components: + - type: Transform + pos: 35.5,10.5 + parent: 1 + - uid: 2963 + components: + - type: Transform + pos: -20.5,-10.5 + parent: 1 + - uid: 3007 + components: + - type: Transform + pos: -21.5,-10.5 + parent: 1 + - uid: 3028 + components: + - type: Transform + pos: -19.5,-10.5 + parent: 1 + - uid: 3049 + components: + - type: Transform + pos: -22.5,-10.5 + parent: 1 + - uid: 3185 + components: + - type: Transform + pos: -8.5,36.5 + parent: 1 + - uid: 3207 + components: + - type: Transform + pos: -23.5,-10.5 + parent: 1 + - uid: 3315 + components: + - type: Transform + pos: -24.5,-10.5 + parent: 1 + - uid: 4539 + components: + - type: Transform + pos: 35.5,11.5 + parent: 1 + - uid: 4543 + components: + - type: Transform + pos: 35.5,9.5 + parent: 1 + - uid: 4560 + components: + - type: Transform + pos: 36.5,8.5 + parent: 1 + - uid: 4569 + components: + - type: Transform + pos: 35.5,8.5 + parent: 1 + - uid: 4571 + components: + - type: Transform + pos: 37.5,8.5 + parent: 1 + - uid: 5268 + components: + - type: Transform + pos: 38.5,8.5 + parent: 1 + - uid: 5537 + components: + - type: Transform + pos: 18.5,59.5 + parent: 1 + - uid: 5862 + components: + - type: Transform + pos: 0.5,52.5 + parent: 1 + - uid: 5917 + components: + - type: Transform + pos: 17.5,59.5 + parent: 1 + - uid: 6133 + components: + - type: Transform + pos: -6.5,36.5 + parent: 1 + - uid: 6562 + components: + - type: Transform + pos: 1.5,52.5 + parent: 1 + - uid: 6568 + components: + - type: Transform + pos: -6.5,-8.5 + parent: 1 + - uid: 6572 + components: + - type: Transform + pos: -23.5,48.5 + parent: 1 + - uid: 6574 + components: + - type: Transform + pos: 18.5,6.5 + parent: 1 + - uid: 6580 + components: + - type: Transform + pos: -5.5,53.5 + parent: 1 + - uid: 6581 + components: + - type: Transform + pos: -14.5,-11.5 + parent: 1 + - uid: 6588 + components: + - type: Transform + pos: -5.5,58.5 + parent: 1 + - uid: 6589 + components: + - type: Transform + pos: 23.5,-2.5 + parent: 1 + - uid: 6590 + components: + - type: Transform + pos: 22.5,-2.5 + parent: 1 + - uid: 6591 + components: + - type: Transform + pos: -10.5,-11.5 + parent: 1 + - uid: 6592 + components: + - type: Transform + pos: -11.5,61.5 + parent: 1 + - uid: 6593 + components: + - type: Transform + pos: 24.5,22.5 + parent: 1 + - uid: 6601 + components: + - type: Transform + pos: 19.5,34.5 + parent: 1 + - uid: 6602 + components: + - type: Transform + pos: 17.5,15.5 + parent: 1 + - uid: 6603 + components: + - type: Transform + pos: -11.5,60.5 + parent: 1 + - uid: 6604 + components: + - type: Transform + pos: -18.5,-11.5 + parent: 1 + - uid: 6612 + components: + - type: Transform + pos: 18.5,5.5 + parent: 1 + - uid: 6613 + components: + - type: Transform + pos: 26.5,25.5 + parent: 1 + - uid: 6614 + components: + - type: Transform + pos: 13.5,46.5 + parent: 1 + - uid: 6618 + components: + - type: Transform + pos: -10.5,61.5 + parent: 1 + - uid: 6619 + components: + - type: Transform + pos: 9.5,42.5 + parent: 1 + - uid: 6622 + components: + - type: Transform + pos: -15.5,44.5 + parent: 1 + - uid: 6623 + components: + - type: Transform + pos: -16.5,44.5 + parent: 1 + - uid: 6624 + components: + - type: Transform + pos: -31.5,13.5 + parent: 1 + - uid: 6625 + components: + - type: Transform + pos: -1.5,21.5 + parent: 1 + - uid: 6626 + components: + - type: Transform + pos: -5.5,55.5 + parent: 1 + - uid: 6627 + components: + - type: Transform + pos: -5.5,33.5 + parent: 1 + - uid: 6628 + components: + - type: Transform + pos: 13.5,23.5 + parent: 1 + - uid: 6629 + components: + - type: Transform + pos: -21.5,48.5 + parent: 1 + - uid: 6630 + components: + - type: Transform + pos: -20.5,48.5 + parent: 1 + - uid: 6633 + components: + - type: Transform + pos: -1.5,16.5 + parent: 1 + - uid: 6641 + components: + - type: Transform + pos: 8.5,24.5 + parent: 1 + - uid: 6642 + components: + - type: Transform + pos: 9.5,23.5 + parent: 1 + - uid: 6643 + components: + - type: Transform + pos: 10.5,23.5 + parent: 1 + - uid: 6646 + components: + - type: Transform + pos: 15.5,28.5 + parent: 1 + - uid: 6647 + components: + - type: Transform + pos: 19.5,31.5 + parent: 1 + - uid: 6648 + components: + - type: Transform + pos: 28.5,43.5 + parent: 1 + - uid: 6649 + components: + - type: Transform + pos: 14.5,23.5 + parent: 1 + - uid: 6653 + components: + - type: Transform + pos: -1.5,24.5 + parent: 1 + - uid: 6661 + components: + - type: Transform + pos: -25.5,37.5 + parent: 1 + - uid: 6668 + components: + - type: Transform + pos: -21.5,9.5 + parent: 1 + - uid: 6684 + components: + - type: Transform + pos: -14.5,44.5 + parent: 1 + - uid: 6685 + components: + - type: Transform + pos: -14.5,45.5 + parent: 1 + - uid: 6686 + components: + - type: Transform + pos: -16.5,-11.5 + parent: 1 + - uid: 6689 + components: + - type: Transform + pos: -18.5,-8.5 + parent: 1 + - uid: 6700 + components: + - type: Transform + pos: -24.5,15.5 + parent: 1 + - uid: 6701 + components: + - type: Transform + pos: -21.5,9.5 + parent: 1 + - uid: 6702 + components: + - type: Transform + pos: 18.5,46.5 + parent: 1 + - uid: 6705 + components: + - type: Transform + pos: -12.5,33.5 + parent: 1 + - uid: 6711 + components: + - type: Transform + pos: 15.5,32.5 + parent: 1 + - uid: 6712 + components: + - type: Transform + pos: 15.5,33.5 + parent: 1 + - uid: 6714 + components: + - type: Transform + pos: 1.5,57.5 + parent: 1 + - uid: 6715 + components: + - type: Transform + pos: -31.5,42.5 + parent: 1 + - uid: 6716 + components: + - type: Transform + pos: -31.5,43.5 + parent: 1 + - uid: 6717 + components: + - type: Transform + pos: 24.5,23.5 + parent: 1 + - uid: 6724 + components: + - type: Transform + pos: 17.5,12.5 + parent: 1 + - uid: 6726 + components: + - type: Transform + pos: 1.5,58.5 + parent: 1 + - uid: 6727 + components: + - type: Transform + pos: 11.5,45.5 + parent: 1 + - uid: 6728 + components: + - type: Transform + pos: 26.5,44.5 + parent: 1 + - uid: 6729 + components: + - type: Transform + pos: 26.5,43.5 + parent: 1 + - uid: 6730 + components: + - type: Transform + pos: 15.5,24.5 + parent: 1 + - uid: 6731 + components: + - type: Transform + pos: -8.5,33.5 + parent: 1 + - uid: 6732 + components: + - type: Transform + pos: 15.5,46.5 + parent: 1 + - uid: 6733 + components: + - type: Transform + pos: -23.5,9.5 + parent: 1 + - uid: 6742 + components: + - type: Transform + pos: -24.5,12.5 + parent: 1 + - uid: 6743 + components: + - type: Transform + pos: -33.5,13.5 + parent: 1 + - uid: 6744 + components: + - type: Transform + pos: 15.5,26.5 + parent: 1 + - uid: 6745 + components: + - type: Transform + pos: 27.5,31.5 + parent: 1 + - uid: 6747 + components: + - type: Transform + pos: 11.5,23.5 + parent: 1 + - uid: 6748 + components: + - type: Transform + pos: -20.5,9.5 + parent: 1 + - uid: 6749 + components: + - type: Transform + pos: -19.5,9.5 + parent: 1 + - uid: 6750 + components: + - type: Transform + pos: 15.5,30.5 + parent: 1 + - uid: 6751 + components: + - type: Transform + pos: 16.5,46.5 + parent: 1 + - uid: 6758 + components: + - type: Transform + pos: -4.5,-8.5 + parent: 1 + - uid: 6759 + components: + - type: Transform + pos: -27.5,44.5 + parent: 1 + - uid: 6762 + components: + - type: Transform + pos: 12.5,23.5 + parent: 1 + - uid: 6791 + components: + - type: Transform + pos: -9.5,11.5 + parent: 1 + - uid: 6792 + components: + - type: Transform + pos: -14.5,34.5 + parent: 1 + - uid: 6794 + components: + - type: Transform + pos: -32.5,20.5 + parent: 1 + - uid: 6795 + components: + - type: Transform + pos: -9.5,61.5 + parent: 1 + - uid: 6796 + components: + - type: Transform + pos: -26.5,44.5 + parent: 1 + - uid: 6797 + components: + - type: Transform + pos: -30.5,44.5 + parent: 1 + - uid: 6798 + components: + - type: Transform + pos: -29.5,44.5 + parent: 1 + - uid: 6799 + components: + - type: Transform + pos: -28.5,44.5 + parent: 1 + - uid: 6817 + components: + - type: Transform + pos: -15.5,-11.5 + parent: 1 + - uid: 6818 + components: + - type: Transform + pos: -24.5,49.5 + parent: 1 + - uid: 6819 + components: + - type: Transform + pos: -31.5,41.5 + parent: 1 + - uid: 6866 + components: + - type: Transform + pos: 22.5,-0.5 + parent: 1 + - uid: 6867 + components: + - type: Transform + pos: -34.5,13.5 + parent: 1 + - uid: 6869 + components: + - type: Transform + pos: 10.5,42.5 + parent: 1 + - uid: 6870 + components: + - type: Transform + pos: 11.5,43.5 + parent: 1 + - uid: 6871 + components: + - type: Transform + pos: 11.5,42.5 + parent: 1 + - uid: 6872 + components: + - type: Transform + pos: -1.5,10.5 + parent: 1 + - uid: 6873 + components: + - type: Transform + pos: -1.5,9.5 + parent: 1 + - uid: 6874 + components: + - type: Transform + pos: -1.5,17.5 + parent: 1 + - uid: 6879 + components: + - type: Transform + pos: 11.5,46.5 + parent: 1 + - uid: 6880 + components: + - type: Transform + pos: 27.5,40.5 + parent: 1 + - uid: 6881 + components: + - type: Transform + pos: 26.5,40.5 + parent: 1 + - uid: 6882 + components: + - type: Transform + pos: -5.5,60.5 + parent: 1 + - uid: 6883 + components: + - type: Transform + pos: -5.5,59.5 + parent: 1 + - uid: 6887 + components: + - type: Transform + pos: -30.5,19.5 + parent: 1 + - uid: 6888 + components: + - type: Transform + pos: -27.5,22.5 + parent: 1 + - uid: 6889 + components: + - type: Transform + pos: 28.5,38.5 + parent: 1 + - uid: 6890 + components: + - type: Transform + pos: 9.5,27.5 + parent: 1 + - uid: 6893 + components: + - type: Transform + pos: -4.5,33.5 + parent: 1 + - uid: 6899 + components: + - type: Transform + pos: -18.5,-9.5 + parent: 1 + - uid: 6901 + components: + - type: Transform + pos: -7.5,62.5 + parent: 1 + - uid: 6902 + components: + - type: Transform + pos: -8.5,62.5 + parent: 1 + - uid: 6903 + components: + - type: Transform + pos: -9.5,62.5 + parent: 1 + - uid: 6907 + components: + - type: Transform + pos: 27.5,43.5 + parent: 1 + - uid: 6908 + components: + - type: Transform + pos: -24.5,36.5 + parent: 1 + - uid: 6911 + components: + - type: Transform + pos: 8.5,23.5 + parent: 1 + - uid: 6915 + components: + - type: Transform + pos: -31.5,44.5 + parent: 1 + - uid: 6916 + components: + - type: Transform + pos: -24.5,14.5 + parent: 1 + - uid: 6917 + components: + - type: Transform + pos: -24.5,13.5 + parent: 1 + - uid: 6921 + components: + - type: Transform + pos: -32.5,13.5 + parent: 1 + - uid: 6943 + components: + - type: Transform + pos: -20.5,37.5 + parent: 1 + - uid: 6944 + components: + - type: Transform + pos: 25.5,25.5 + parent: 1 + - uid: 6945 + components: + - type: Transform + pos: -8.5,11.5 + parent: 1 + - uid: 6946 + components: + - type: Transform + pos: 12.5,46.5 + parent: 1 + - uid: 6968 + components: + - type: Transform + pos: -28.5,22.5 + parent: 1 + - uid: 6969 + components: + - type: Transform + pos: 1.5,54.5 + parent: 1 + - uid: 6972 + components: + - type: Transform + pos: 1.5,56.5 + parent: 1 + - uid: 6979 + components: + - type: Transform + pos: 15.5,34.5 + parent: 1 + - uid: 6980 + components: + - type: Transform + pos: 17.5,46.5 + parent: 1 + - uid: 6982 + components: + - type: Transform + pos: -18.5,37.5 + parent: 1 + - uid: 6983 + components: + - type: Transform + pos: 26.5,46.5 + parent: 1 + - uid: 6984 + components: + - type: Transform + pos: 11.5,44.5 + parent: 1 + - uid: 6985 + components: + - type: Transform + pos: -13.5,-11.5 + parent: 1 + - uid: 6986 + components: + - type: Transform + pos: -12.5,-11.5 + parent: 1 + - uid: 6987 + components: + - type: Transform + pos: -11.5,-11.5 + parent: 1 + - uid: 6989 + components: + - type: Transform + pos: 26.5,45.5 + parent: 1 + - uid: 6990 + components: + - type: Transform + pos: 1.5,59.5 + parent: 1 + - uid: 6991 + components: + - type: Transform + pos: -6.5,33.5 + parent: 1 + - uid: 6992 + components: + - type: Transform + pos: -22.5,48.5 + parent: 1 + - uid: 6993 + components: + - type: Transform + pos: 24.5,46.5 + parent: 1 + - uid: 6994 + components: + - type: Transform + pos: -24.5,49.5 + parent: 1 + - uid: 6995 + components: + - type: Transform + pos: -24.5,48.5 + parent: 1 + - uid: 6999 + components: + - type: Transform + pos: -3.5,17.5 + parent: 1 + - uid: 7000 + components: + - type: Transform + pos: -30.5,14.5 + parent: 1 + - uid: 7001 + components: + - type: Transform + pos: 18.5,12.5 + parent: 1 + - uid: 7002 + components: + - type: Transform + pos: -1.5,25.5 + parent: 1 + - uid: 7003 + components: + - type: Transform + pos: -1.5,14.5 + parent: 1 + - uid: 7004 + components: + - type: Transform + pos: -30.5,13.5 + parent: 1 + - uid: 7006 + components: + - type: Transform + pos: -24.5,21.5 + parent: 1 + - uid: 7007 + components: + - type: Transform + pos: -24.5,19.5 + parent: 1 + - uid: 7013 + components: + - type: Transform + pos: -5.5,61.5 + parent: 1 + - uid: 7014 + components: + - type: Transform + pos: 19.5,12.5 + parent: 1 + - uid: 7018 + components: + - type: Transform + pos: -24.5,17.5 + parent: 1 + - uid: 7019 + components: + - type: Transform + pos: -17.5,11.5 + parent: 1 + - uid: 7020 + components: + - type: Transform + pos: -14.5,46.5 + parent: 1 + - uid: 7021 + components: + - type: Transform + pos: -1.5,11.5 + parent: 1 + - uid: 7023 + components: + - type: Transform + pos: -22.5,9.5 + parent: 1 + - uid: 7024 + components: + - type: Transform + pos: -3.5,52.5 + parent: 1 + - uid: 7026 + components: + - type: Transform + pos: -5.5,62.5 + parent: 1 + - uid: 7029 + components: + - type: Transform + pos: 27.5,30.5 + parent: 1 + - uid: 7030 + components: + - type: Transform + pos: 27.5,29.5 + parent: 1 + - uid: 7031 + components: + - type: Transform + pos: -15.5,48.5 + parent: 1 + - uid: 7032 + components: + - type: Transform + pos: -16.5,48.5 + parent: 1 + - uid: 7033 + components: + - type: Transform + pos: -17.5,48.5 + parent: 1 + - uid: 7034 + components: + - type: Transform + pos: 24.5,8.5 + parent: 1 + - uid: 7060 + components: + - type: Transform + pos: 31.5,41.5 + parent: 1 + - uid: 7061 + components: + - type: Transform + pos: 31.5,42.5 + parent: 1 + - uid: 7062 + components: + - type: Transform + pos: 19.5,46.5 + parent: 1 + - uid: 7063 + components: + - type: Transform + pos: 19.5,5.5 + parent: 1 + - uid: 7069 + components: + - type: Transform + pos: -1.5,22.5 + parent: 1 + - uid: 7070 + components: + - type: Transform + pos: -34.5,10.5 + parent: 1 + - uid: 7071 + components: + - type: Transform + pos: 18.5,34.5 + parent: 1 + - uid: 7072 + components: + - type: Transform + pos: -1.5,23.5 + parent: 1 + - uid: 7073 + components: + - type: Transform + pos: -23.5,44.5 + parent: 1 + - uid: 7074 + components: + - type: Transform + pos: -22.5,44.5 + parent: 1 + - uid: 7075 + components: + - type: Transform + pos: -21.5,44.5 + parent: 1 + - uid: 7076 + components: + - type: Transform + pos: -20.5,44.5 + parent: 1 + - uid: 7077 + components: + - type: Transform + pos: -19.5,44.5 + parent: 1 + - uid: 7078 + components: + - type: Transform + pos: -18.5,44.5 + parent: 1 + - uid: 7079 + components: + - type: Transform + pos: -17.5,44.5 + parent: 1 + - uid: 7102 + components: + - type: Transform + pos: 15.5,23.5 + parent: 1 + - uid: 7103 + components: + - type: Transform + pos: 20.5,46.5 + parent: 1 + - uid: 7104 + components: + - type: Transform + pos: 21.5,46.5 + parent: 1 + - uid: 7105 + components: + - type: Transform + pos: -34.5,12.5 + parent: 1 + - uid: 7107 + components: + - type: Transform + pos: 18.5,8.5 + parent: 1 + - uid: 7108 + components: + - type: Transform + pos: 20.5,8.5 + parent: 1 + - uid: 7109 + components: + - type: Transform + pos: 15.5,31.5 + parent: 1 + - uid: 7110 + components: + - type: Transform + pos: 26.5,39.5 + parent: 1 + - uid: 7111 + components: + - type: Transform + pos: 14.5,46.5 + parent: 1 + - uid: 7112 + components: + - type: Transform + pos: -5.5,54.5 + parent: 1 + - uid: 7113 + components: + - type: Transform + pos: 9.5,26.5 + parent: 1 + - uid: 7115 + components: + - type: Transform + pos: 24.5,25.5 + parent: 1 + - uid: 7116 + components: + - type: Transform + pos: 24.5,24.5 + parent: 1 + - uid: 7118 + components: + - type: Transform + pos: 27.5,26.5 + parent: 1 + - uid: 7119 + components: + - type: Transform + pos: 27.5,27.5 + parent: 1 + - uid: 7120 + components: + - type: Transform + pos: -6.5,62.5 + parent: 1 + - uid: 7121 + components: + - type: Transform + pos: 1.5,55.5 + parent: 1 + - uid: 7122 + components: + - type: Transform + pos: 8.5,43.5 + parent: 1 + - uid: 7123 + components: + - type: Transform + pos: 9.5,45.5 + parent: 1 + - uid: 7124 + components: + - type: Transform + pos: -24.5,20.5 + parent: 1 + - uid: 7125 + components: + - type: Transform + pos: -14.5,47.5 + parent: 1 + - uid: 7126 + components: + - type: Transform + pos: -14.5,48.5 + parent: 1 + - uid: 7127 + components: + - type: Transform + pos: 22.5,46.5 + parent: 1 + - uid: 7128 + components: + - type: Transform + pos: -24.5,16.5 + parent: 1 + - uid: 7129 + components: + - type: Transform + pos: 23.5,46.5 + parent: 1 + - uid: 7130 + components: + - type: Transform + pos: 25.5,46.5 + parent: 1 + - uid: 7131 + components: + - type: Transform + pos: -5.5,52.5 + parent: 1 + - uid: 7132 + components: + - type: Transform + pos: -14.5,33.5 + parent: 1 + - uid: 7133 + components: + - type: Transform + pos: -13.5,33.5 + parent: 1 + - uid: 7134 + components: + - type: Transform + pos: -1.5,12.5 + parent: 1 + - uid: 7135 + components: + - type: Transform + pos: 17.5,16.5 + parent: 1 + - uid: 7136 + components: + - type: Transform + pos: -1.5,52.5 + parent: 1 + - uid: 7137 + components: + - type: Transform + pos: 1.5,53.5 + parent: 1 + - uid: 7138 + components: + - type: Transform + pos: -25.5,22.5 + parent: 1 + - uid: 7139 + components: + - type: Transform + pos: -26.5,22.5 + parent: 1 + - uid: 7140 + components: + - type: Transform + pos: -4.5,52.5 + parent: 1 + - uid: 7142 + components: + - type: Transform + pos: -0.5,52.5 + parent: 1 + - uid: 7144 + components: + - type: Transform + pos: -10.5,33.5 + parent: 1 + - uid: 7145 + components: + - type: Transform + pos: -9.5,33.5 + parent: 1 + - uid: 7146 + components: + - type: Transform + pos: -7.5,33.5 + parent: 1 + - uid: 7147 + components: + - type: Transform + pos: -24.5,18.5 + parent: 1 + - uid: 7148 + components: + - type: Transform + pos: 15.5,25.5 + parent: 1 + - uid: 7149 + components: + - type: Transform + pos: -34.5,11.5 + parent: 1 + - uid: 7150 + components: + - type: Transform + pos: -15.5,37.5 + parent: 1 + - uid: 7151 + components: + - type: Transform + pos: -16.5,37.5 + parent: 1 + - uid: 7152 + components: + - type: Transform + pos: 27.5,38.5 + parent: 1 + - uid: 7153 + components: + - type: Transform + pos: -17.5,-11.5 + parent: 1 + - uid: 7154 + components: + - type: Transform + pos: -30.5,21.5 + parent: 1 + - uid: 7155 + components: + - type: Transform + pos: -24.5,22.5 + parent: 1 + - uid: 7156 + components: + - type: Transform + pos: -7.5,11.5 + parent: 1 + - uid: 7157 + components: + - type: Transform + pos: -6.5,11.5 + parent: 1 + - uid: 7159 + components: + - type: Transform + pos: -29.5,41.5 + parent: 1 + - uid: 7160 + components: + - type: Transform + pos: -29.5,40.5 + parent: 1 + - uid: 7161 + components: + - type: Transform + pos: -18.5,48.5 + parent: 1 + - uid: 7162 + components: + - type: Transform + pos: -19.5,48.5 + parent: 1 + - uid: 7163 + components: + - type: Transform + pos: -30.5,41.5 + parent: 1 + - uid: 7165 + components: + - type: Transform + pos: 8.5,25.5 + parent: 1 + - uid: 7166 + components: + - type: Transform + pos: 9.5,25.5 + parent: 1 + - uid: 7167 + components: + - type: Transform + pos: 8.5,44.5 + parent: 1 + - uid: 7168 + components: + - type: Transform + pos: 1.5,60.5 + parent: 1 + - uid: 7169 + components: + - type: Transform + pos: -9.5,-11.5 + parent: 1 + - uid: 7170 + components: + - type: Transform + pos: -1.5,27.5 + parent: 1 + - uid: 7171 + components: + - type: Transform + pos: 25.5,8.5 + parent: 1 + - uid: 7172 + components: + - type: Transform + pos: 26.5,8.5 + parent: 1 + - uid: 7173 + components: + - type: Transform + pos: 22.5,-1.5 + parent: 1 + - uid: 7175 + components: + - type: Transform + pos: -1.5,15.5 + parent: 1 + - uid: 7181 + components: + - type: Transform + pos: 15.5,29.5 + parent: 1 + - uid: 7182 + components: + - type: Transform + pos: -24.5,44.5 + parent: 1 + - uid: 7183 + components: + - type: Transform + pos: -25.5,44.5 + parent: 1 + - uid: 7184 + components: + - type: Transform + pos: -1.5,26.5 + parent: 1 + - uid: 7185 + components: + - type: Transform + pos: 23.5,8.5 + parent: 1 + - uid: 7186 + components: + - type: Transform + pos: 22.5,8.5 + parent: 1 + - uid: 7187 + components: + - type: Transform + pos: 21.5,8.5 + parent: 1 + - uid: 7188 + components: + - type: Transform + pos: 19.5,8.5 + parent: 1 + - uid: 7189 + components: + - type: Transform + pos: -5.5,56.5 + parent: 1 + - uid: 7190 + components: + - type: Transform + pos: -22.5,9.5 + parent: 1 + - uid: 7191 + components: + - type: Transform + pos: -5.5,57.5 + parent: 1 + - uid: 7192 + components: + - type: Transform + pos: -31.5,38.5 + parent: 1 + - uid: 7193 + components: + - type: Transform + pos: -31.5,37.5 + parent: 1 + - uid: 7194 + components: + - type: Transform + pos: -30.5,37.5 + parent: 1 + - uid: 7195 + components: + - type: Transform + pos: -29.5,37.5 + parent: 1 + - uid: 7196 + components: + - type: Transform + pos: -28.5,37.5 + parent: 1 + - uid: 7197 + components: + - type: Transform + pos: -27.5,37.5 + parent: 1 + - uid: 7198 + components: + - type: Transform + pos: -26.5,37.5 + parent: 1 + - uid: 7199 + components: + - type: Transform + pos: -3.5,-8.5 + parent: 1 + - uid: 7200 + components: + - type: Transform + pos: -5.5,-8.5 + parent: 1 + - uid: 7201 + components: + - type: Transform + pos: 15.5,27.5 + parent: 1 + - uid: 7202 + components: + - type: Transform + pos: -18.5,-6.5 + parent: 1 + - uid: 7203 + components: + - type: Transform + pos: -18.5,-7.5 + parent: 1 + - uid: 7204 + components: + - type: Transform + pos: -18.5,-10.5 + parent: 1 + - uid: 7205 + components: + - type: Transform + pos: -31.5,40.5 + parent: 1 + - uid: 7206 + components: + - type: Transform + pos: -2.5,52.5 + parent: 1 + - uid: 7207 + components: + - type: Transform + pos: -31.5,39.5 + parent: 1 + - uid: 7217 + components: + - type: Transform + pos: 19.5,32.5 + parent: 1 + - uid: 7218 + components: + - type: Transform + pos: 19.5,33.5 + parent: 1 + - uid: 7219 + components: + - type: Transform + pos: 29.5,43.5 + parent: 1 + - uid: 7220 + components: + - type: Transform + pos: 30.5,43.5 + parent: 1 + - uid: 7221 + components: + - type: Transform + pos: 31.5,43.5 + parent: 1 + - uid: 7222 + components: + - type: Transform + pos: -1.5,20.5 + parent: 1 + - uid: 7223 + components: + - type: Transform + pos: -1.5,18.5 + parent: 1 + - uid: 7224 + components: + - type: Transform + pos: -1.5,19.5 + parent: 1 + - uid: 7225 + components: + - type: Transform + pos: 17.5,34.5 + parent: 1 + - uid: 7226 + components: + - type: Transform + pos: 16.5,34.5 + parent: 1 + - uid: 7227 + components: + - type: Transform + pos: -5.5,11.5 + parent: 1 + - uid: 7228 + components: + - type: Transform + pos: 8.5,45.5 + parent: 1 + - uid: 7229 + components: + - type: Transform + pos: 27.5,28.5 + parent: 1 + - uid: 7230 + components: + - type: Transform + pos: -17.5,10.5 + parent: 1 + - uid: 7231 + components: + - type: Transform + pos: -17.5,9.5 + parent: 1 + - uid: 7232 + components: + - type: Transform + pos: -18.5,9.5 + parent: 1 + - uid: 7233 + components: + - type: Transform + pos: 28.5,40.5 + parent: 1 + - uid: 7234 + components: + - type: Transform + pos: 29.5,40.5 + parent: 1 + - uid: 7235 + components: + - type: Transform + pos: 30.5,40.5 + parent: 1 + - uid: 7236 + components: + - type: Transform + pos: 31.5,40.5 + parent: 1 + - uid: 7238 + components: + - type: Transform + pos: -23.5,9.5 + parent: 1 + - uid: 7239 + components: + - type: Transform + pos: -24.5,9.5 + parent: 1 + - uid: 7240 + components: + - type: Transform + pos: -24.5,10.5 + parent: 1 + - uid: 7241 + components: + - type: Transform + pos: -24.5,11.5 + parent: 1 + - uid: 7242 + components: + - type: Transform + pos: 27.5,25.5 + parent: 1 + - uid: 7244 + components: + - type: Transform + pos: -7.5,-11.5 + parent: 1 + - uid: 7246 + components: + - type: Transform + pos: -8.5,-11.5 + parent: 1 + - uid: 7247 + components: + - type: Transform + pos: -24.5,37.5 + parent: 1 + - uid: 7248 + components: + - type: Transform + pos: 22.5,34.5 + parent: 1 + - uid: 7249 + components: + - type: Transform + pos: 8.5,42.5 + parent: 1 + - uid: 7250 + components: + - type: Transform + pos: 18.5,7.5 + parent: 1 + - uid: 7251 + components: + - type: Transform + pos: 26.5,38.5 + parent: 1 + - uid: 7252 + components: + - type: Transform + pos: 9.5,30.5 + parent: 1 + - uid: 7255 + components: + - type: Transform + pos: -29.5,22.5 + parent: 1 + - uid: 7256 + components: + - type: Transform + pos: 9.5,28.5 + parent: 1 + - uid: 7257 + components: + - type: Transform + pos: 9.5,29.5 + parent: 1 + - uid: 7260 + components: + - type: Transform + pos: -1.5,13.5 + parent: 1 + - uid: 7265 + components: + - type: Transform + pos: 21.5,34.5 + parent: 1 + - uid: 7266 + components: + - type: Transform + pos: 20.5,34.5 + parent: 1 + - uid: 7267 + components: + - type: Transform + pos: -30.5,22.5 + parent: 1 + - uid: 7268 + components: + - type: Transform + pos: 17.5,13.5 + parent: 1 + - uid: 7269 + components: + - type: Transform + pos: 17.5,14.5 + parent: 1 + - uid: 7273 + components: + - type: Transform + pos: -4.5,11.5 + parent: 1 + - uid: 7274 + components: + - type: Transform + pos: 23.5,22.5 + parent: 1 + - uid: 7275 + components: + - type: Transform + pos: -31.5,21.5 + parent: 1 + - uid: 7276 + components: + - type: Transform + pos: -32.5,21.5 + parent: 1 + - uid: 7278 + components: + - type: Transform + pos: -35.5,10.5 + parent: 1 + - uid: 7279 + components: + - type: Transform + pos: -4.5,12.5 + parent: 1 + - uid: 7280 + components: + - type: Transform + pos: -4.5,13.5 + parent: 1 + - uid: 7281 + components: + - type: Transform + pos: -4.5,14.5 + parent: 1 + - uid: 7282 + components: + - type: Transform + pos: -4.5,15.5 + parent: 1 + - uid: 7283 + components: + - type: Transform + pos: -3.5,15.5 + parent: 1 + - uid: 7284 + components: + - type: Transform + pos: -3.5,16.5 + parent: 1 + - uid: 7287 + components: + - type: Transform + pos: -11.5,33.5 + parent: 1 + - uid: 7288 + components: + - type: Transform + pos: 20.5,12.5 + parent: 1 + - uid: 7289 + components: + - type: Transform + pos: -30.5,18.5 + parent: 1 + - uid: 7290 + components: + - type: Transform + pos: -17.5,37.5 + parent: 1 + - uid: 7291 + components: + - type: Transform + pos: -19.5,37.5 + parent: 1 + - uid: 7293 + components: + - type: Transform + pos: -30.5,20.5 + parent: 1 + - uid: 7303 + components: + - type: Transform + pos: 27.5,8.5 + parent: 1 + - uid: 7304 + components: + - type: Transform + pos: 28.5,8.5 + parent: 1 + - uid: 7314 + components: + - type: Transform + pos: -34.5,9.5 + parent: 1 + - uid: 7315 + components: + - type: Transform + pos: -34.5,8.5 + parent: 1 + - uid: 7316 + components: + - type: Transform + pos: -34.5,7.5 + parent: 1 + - uid: 7317 + components: + - type: Transform + pos: -34.5,6.5 + parent: 1 + - uid: 7318 + components: + - type: Transform + pos: -34.5,5.5 + parent: 1 + - uid: 7319 + components: + - type: Transform + pos: -34.5,4.5 + parent: 1 + - uid: 7320 + components: + - type: Transform + pos: -34.5,3.5 + parent: 1 + - uid: 7321 + components: + - type: Transform + pos: -33.5,3.5 + parent: 1 + - uid: 7322 + components: + - type: Transform + pos: -33.5,2.5 + parent: 1 + - uid: 7323 + components: + - type: Transform + pos: -33.5,1.5 + parent: 1 + - uid: 7324 + components: + - type: Transform + pos: -33.5,0.5 + parent: 1 + - uid: 7325 + components: + - type: Transform + pos: -33.5,-0.5 + parent: 1 + - uid: 7326 + components: + - type: Transform + pos: -34.5,-0.5 + parent: 1 + - uid: 7327 + components: + - type: Transform + pos: -34.5,-1.5 + parent: 1 + - uid: 7331 + components: + - type: Transform + pos: -30.5,16.5 + parent: 1 + - uid: 7332 + components: + - type: Transform + pos: -30.5,15.5 + parent: 1 + - uid: 7333 + components: + - type: Transform + pos: 25.5,5.5 + parent: 1 + - uid: 7334 + components: + - type: Transform + pos: 25.5,4.5 + parent: 1 + - uid: 7335 + components: + - type: Transform + pos: 26.5,4.5 + parent: 1 + - uid: 7340 + components: + - type: Transform + pos: 25.5,12.5 + parent: 1 + - uid: 7341 + components: + - type: Transform + pos: 24.5,12.5 + parent: 1 + - uid: 7344 + components: + - type: Transform + pos: -2.5,17.5 + parent: 1 + - uid: 7345 + components: + - type: Transform + pos: 20.5,5.5 + parent: 1 + - uid: 7346 + components: + - type: Transform + pos: 21.5,5.5 + parent: 1 + - uid: 7347 + components: + - type: Transform + pos: 22.5,5.5 + parent: 1 + - uid: 7348 + components: + - type: Transform + pos: 23.5,5.5 + parent: 1 + - uid: 7349 + components: + - type: Transform + pos: 24.5,5.5 + parent: 1 + - uid: 7350 + components: + - type: Transform + pos: 27.5,32.5 + parent: 1 + - uid: 7351 + components: + - type: Transform + pos: 27.5,33.5 + parent: 1 + - uid: 7352 + components: + - type: Transform + pos: 27.5,34.5 + parent: 1 + - uid: 7353 + components: + - type: Transform + pos: 26.5,34.5 + parent: 1 + - uid: 7354 + components: + - type: Transform + pos: 25.5,34.5 + parent: 1 + - uid: 7355 + components: + - type: Transform + pos: 24.5,34.5 + parent: 1 + - uid: 7356 + components: + - type: Transform + pos: 23.5,34.5 + parent: 1 + - uid: 7357 + components: + - type: Transform + pos: 21.5,12.5 + parent: 1 + - uid: 7358 + components: + - type: Transform + pos: 22.5,12.5 + parent: 1 + - uid: 7359 + components: + - type: Transform + pos: -0.5,9.5 + parent: 1 + - uid: 7360 + components: + - type: Transform + pos: 1.5,9.5 + parent: 1 + - uid: 7361 + components: + - type: Transform + pos: 2.5,9.5 + parent: 1 + - uid: 7362 + components: + - type: Transform + pos: 0.5,9.5 + parent: 1 + - uid: 7363 + components: + - type: Transform + pos: -3.5,30.5 + parent: 1 + - uid: 7364 + components: + - type: Transform + pos: -2.5,30.5 + parent: 1 + - uid: 7365 + components: + - type: Transform + pos: -1.5,30.5 + parent: 1 + - uid: 7366 + components: + - type: Transform + pos: -1.5,29.5 + parent: 1 + - uid: 7367 + components: + - type: Transform + pos: -1.5,28.5 + parent: 1 + - uid: 7368 + components: + - type: Transform + pos: -30.5,17.5 + parent: 1 + - uid: 7370 + components: + - type: Transform + pos: 23.5,12.5 + parent: 1 + - uid: 7371 + components: + - type: Transform + pos: -3.5,31.5 + parent: 1 + - uid: 7389 + components: + - type: Transform + pos: -35.5,-1.5 + parent: 1 + - uid: 7391 + components: + - type: Transform + pos: 27.5,4.5 + parent: 1 + - uid: 7392 + components: + - type: Transform + pos: 27.5,3.5 + parent: 1 + - uid: 7393 + components: + - type: Transform + pos: 27.5,2.5 + parent: 1 + - uid: 7394 + components: + - type: Transform + pos: 27.5,1.5 + parent: 1 + - uid: 7395 + components: + - type: Transform + pos: 27.5,0.5 + parent: 1 + - uid: 7396 + components: + - type: Transform + pos: 26.5,0.5 + parent: 1 + - uid: 7397 + components: + - type: Transform + pos: 25.5,0.5 + parent: 1 + - uid: 7398 + components: + - type: Transform + pos: 24.5,0.5 + parent: 1 + - uid: 7399 + components: + - type: Transform + pos: 23.5,0.5 + parent: 1 + - uid: 7400 + components: + - type: Transform + pos: 22.5,0.5 + parent: 1 + - uid: 7401 + components: + - type: Transform + pos: 28.5,9.5 + parent: 1 + - uid: 7402 + components: + - type: Transform + pos: 28.5,10.5 + parent: 1 + - uid: 7403 + components: + - type: Transform + pos: 28.5,11.5 + parent: 1 + - uid: 7404 + components: + - type: Transform + pos: 28.5,12.5 + parent: 1 + - uid: 7405 + components: + - type: Transform + pos: 27.5,12.5 + parent: 1 + - uid: 7406 + components: + - type: Transform + pos: 26.5,12.5 + parent: 1 + - uid: 7431 + components: + - type: Transform + pos: -14.5,35.5 + parent: 1 + - uid: 7432 + components: + - type: Transform + pos: -14.5,36.5 + parent: 1 + - uid: 7433 + components: + - type: Transform + pos: -14.5,37.5 + parent: 1 + - uid: 7452 + components: + - type: Transform + pos: -23.5,37.5 + parent: 1 + - uid: 7458 + components: + - type: Transform + pos: 11.5,-4.5 + parent: 1 + - uid: 7459 + components: + - type: Transform + pos: 12.5,-4.5 + parent: 1 + - uid: 7462 + components: + - type: Transform + pos: -3.5,33.5 + parent: 1 + - uid: 7476 + components: + - type: Transform + pos: 39.5,8.5 + parent: 1 + - uid: 7478 + components: + - type: Transform + pos: 35.5,12.5 + parent: 1 + - uid: 7479 + components: + - type: Transform + pos: 36.5,12.5 + parent: 1 + - uid: 7480 + components: + - type: Transform + pos: 37.5,12.5 + parent: 1 + - uid: 7481 + components: + - type: Transform + pos: 38.5,12.5 + parent: 1 + - uid: 7482 + components: + - type: Transform + pos: 39.5,12.5 + parent: 1 + - uid: 7483 + components: + - type: Transform + pos: 40.5,12.5 + parent: 1 + - uid: 7484 + components: + - type: Transform + pos: 41.5,12.5 + parent: 1 + - uid: 7485 + components: + - type: Transform + pos: 42.5,12.5 + parent: 1 + - uid: 7486 + components: + - type: Transform + pos: 43.5,12.5 + parent: 1 + - uid: 7487 + components: + - type: Transform + pos: 43.5,13.5 + parent: 1 + - uid: 7488 + components: + - type: Transform + pos: 43.5,14.5 + parent: 1 + - uid: 7499 + components: + - type: Transform + pos: -21.5,37.5 + parent: 1 + - uid: 7506 + components: + - type: Transform + pos: -22.5,37.5 + parent: 1 + - uid: 7521 + components: + - type: Transform + pos: -1.5,33.5 + parent: 1 + - uid: 7522 + components: + - type: Transform + pos: -2.5,33.5 + parent: 1 + - uid: 7525 + components: + - type: Transform + pos: -1.5,34.5 + parent: 1 + - uid: 7526 + components: + - type: Transform + pos: -1.5,35.5 + parent: 1 + - uid: 7635 + components: + - type: Transform + pos: 10.5,-4.5 + parent: 1 + - uid: 7636 + components: + - type: Transform + pos: 9.5,-4.5 + parent: 1 + - uid: 7673 + components: + - type: Transform + pos: -2.5,37.5 + parent: 1 + - uid: 7674 + components: + - type: Transform + pos: -2.5,36.5 + parent: 1 + - uid: 7675 + components: + - type: Transform + pos: -2.5,35.5 + parent: 1 + - uid: 7676 + components: + - type: Transform + pos: 15.5,58.5 + parent: 1 + - uid: 7677 + components: + - type: Transform + pos: 15.5,59.5 + parent: 1 + - uid: 7678 + components: + - type: Transform + pos: 15.5,60.5 + parent: 1 + - uid: 7679 + components: + - type: Transform + pos: 15.5,61.5 + parent: 1 + - uid: 7680 + components: + - type: Transform + pos: 15.5,62.5 + parent: 1 + - uid: 7681 + components: + - type: Transform + pos: 15.5,63.5 + parent: 1 + - uid: 7682 + components: + - type: Transform + pos: 15.5,64.5 + parent: 1 + - uid: 7683 + components: + - type: Transform + pos: 15.5,65.5 + parent: 1 + - uid: 7684 + components: + - type: Transform + pos: 15.5,66.5 + parent: 1 + - uid: 7685 + components: + - type: Transform + pos: 15.5,67.5 + parent: 1 + - uid: 7686 + components: + - type: Transform + pos: 15.5,68.5 + parent: 1 + - uid: 7691 + components: + - type: Transform + pos: 18.5,-7.5 + parent: 1 + - uid: 7692 + components: + - type: Transform + pos: 19.5,-7.5 + parent: 1 + - uid: 7693 + components: + - type: Transform + pos: 21.5,-0.5 + parent: 1 + - uid: 7694 + components: + - type: Transform + pos: 20.5,-0.5 + parent: 1 + - uid: 7695 + components: + - type: Transform + pos: 19.5,-0.5 + parent: 1 + - uid: 7696 + components: + - type: Transform + pos: 19.5,-1.5 + parent: 1 + - uid: 7697 + components: + - type: Transform + pos: 19.5,-2.5 + parent: 1 + - uid: 7698 + components: + - type: Transform + pos: 19.5,-3.5 + parent: 1 + - uid: 7699 + components: + - type: Transform + pos: 19.5,-4.5 + parent: 1 + - uid: 7700 + components: + - type: Transform + pos: 19.5,-5.5 + parent: 1 + - uid: 7701 + components: + - type: Transform + pos: 19.5,-6.5 + parent: 1 + - uid: 7702 + components: + - type: Transform + pos: -2.5,47.5 + parent: 1 + - uid: 7703 + components: + - type: Transform + pos: -2.5,48.5 + parent: 1 + - uid: 7704 + components: + - type: Transform + pos: -3.5,48.5 + parent: 1 + - uid: 7705 + components: + - type: Transform + pos: -3.5,49.5 + parent: 1 + - uid: 7721 + components: + - type: Transform + pos: 14.5,-4.5 + parent: 1 + - uid: 7733 + components: + - type: Transform + pos: 24.5,58.5 + parent: 1 + - uid: 7734 + components: + - type: Transform + pos: 24.5,57.5 + parent: 1 + - uid: 7735 + components: + - type: Transform + pos: 15.5,-4.5 + parent: 1 + - uid: 7736 + components: + - type: Transform + pos: 13.5,-4.5 + parent: 1 + - uid: 7766 + components: + - type: Transform + pos: 17.5,-7.5 + parent: 1 + - uid: 7767 + components: + - type: Transform + pos: 17.5,-6.5 + parent: 1 + - uid: 7768 + components: + - type: Transform + pos: 17.5,-5.5 + parent: 1 + - uid: 7769 + components: + - type: Transform + pos: 17.5,-4.5 + parent: 1 + - uid: 7770 + components: + - type: Transform + pos: 16.5,-4.5 + parent: 1 + - uid: 7800 + components: + - type: Transform + pos: 8.5,-4.5 + parent: 1 + - uid: 7801 + components: + - type: Transform + pos: 7.5,-4.5 + parent: 1 + - uid: 7802 + components: + - type: Transform + pos: 7.5,-3.5 + parent: 1 + - uid: 7803 + components: + - type: Transform + pos: 7.5,-1.5 + parent: 1 + - uid: 7804 + components: + - type: Transform + pos: 7.5,-2.5 + parent: 1 + - uid: 7805 + components: + - type: Transform + pos: 7.5,-0.5 + parent: 1 + - uid: 7838 + components: + - type: Transform + pos: -2.5,41.5 + parent: 1 + - uid: 7839 + components: + - type: Transform + pos: -2.5,40.5 + parent: 1 + - uid: 7840 + components: + - type: Transform + pos: -2.5,39.5 + parent: 1 + - uid: 7841 + components: + - type: Transform + pos: -2.5,38.5 + parent: 1 + - uid: 7842 + components: + - type: Transform + pos: -2.5,42.5 + parent: 1 + - uid: 7843 + components: + - type: Transform + pos: -2.5,43.5 + parent: 1 + - uid: 7844 + components: + - type: Transform + pos: -2.5,44.5 + parent: 1 + - uid: 7845 + components: + - type: Transform + pos: -2.5,45.5 + parent: 1 + - uid: 7846 + components: + - type: Transform + pos: -2.5,46.5 + parent: 1 + - uid: 7855 + components: + - type: Transform + pos: 25.5,40.5 + parent: 1 + - uid: 7867 + components: + - type: Transform + pos: 16.5,58.5 + parent: 1 + - uid: 7868 + components: + - type: Transform + pos: 16.5,57.5 + parent: 1 + - uid: 7869 + components: + - type: Transform + pos: 17.5,57.5 + parent: 1 + - uid: 7870 + components: + - type: Transform + pos: 18.5,57.5 + parent: 1 + - uid: 7871 + components: + - type: Transform + pos: 19.5,57.5 + parent: 1 + - uid: 7872 + components: + - type: Transform + pos: 20.5,57.5 + parent: 1 + - uid: 7873 + components: + - type: Transform + pos: 21.5,57.5 + parent: 1 + - uid: 7874 + components: + - type: Transform + pos: 22.5,57.5 + parent: 1 + - uid: 7875 + components: + - type: Transform + pos: 23.5,57.5 + parent: 1 + - uid: 7904 + components: + - type: Transform + pos: 14.5,69.5 + parent: 1 + - uid: 7905 + components: + - type: Transform + pos: 15.5,69.5 + parent: 1 + - uid: 7906 + components: + - type: Transform + pos: 13.5,69.5 + parent: 1 + - uid: 7907 + components: + - type: Transform + pos: 12.5,69.5 + parent: 1 + - uid: 7908 + components: + - type: Transform + pos: 11.5,69.5 + parent: 1 + - uid: 7909 + components: + - type: Transform + pos: 10.5,69.5 + parent: 1 + - uid: 7910 + components: + - type: Transform + pos: 9.5,69.5 + parent: 1 + - uid: 7911 + components: + - type: Transform + pos: 8.5,69.5 + parent: 1 + - uid: 7912 + components: + - type: Transform + pos: 7.5,69.5 + parent: 1 + - uid: 7913 + components: + - type: Transform + pos: 6.5,69.5 + parent: 1 + - uid: 7914 + components: + - type: Transform + pos: 5.5,69.5 + parent: 1 + - uid: 7915 + components: + - type: Transform + pos: 5.5,68.5 + parent: 1 + - uid: 7916 + components: + - type: Transform + pos: 5.5,67.5 + parent: 1 + - uid: 7917 + components: + - type: Transform + pos: 5.5,66.5 + parent: 1 + - uid: 7918 + components: + - type: Transform + pos: 5.5,65.5 + parent: 1 + - uid: 7919 + components: + - type: Transform + pos: 5.5,64.5 + parent: 1 + - uid: 7920 + components: + - type: Transform + pos: 5.5,63.5 + parent: 1 + - uid: 7921 + components: + - type: Transform + pos: 5.5,62.5 + parent: 1 + - uid: 7922 + components: + - type: Transform + pos: 5.5,61.5 + parent: 1 + - uid: 7923 + components: + - type: Transform + pos: 5.5,60.5 + parent: 1 + - uid: 7924 + components: + - type: Transform + pos: 5.5,59.5 + parent: 1 + - uid: 7925 + components: + - type: Transform + pos: 5.5,58.5 + parent: 1 + - uid: 7926 + components: + - type: Transform + pos: 4.5,58.5 + parent: 1 + - uid: 7927 + components: + - type: Transform + pos: 3.5,58.5 + parent: 1 + - uid: 7928 + components: + - type: Transform + pos: 2.5,58.5 + parent: 1 + - uid: 7959 + components: + - type: Transform + pos: 7.5,1.5 + parent: 1 + - uid: 7968 + components: + - type: Transform + pos: 7.5,4.5 + parent: 1 + - uid: 7969 + components: + - type: Transform + pos: 7.5,3.5 + parent: 1 + - uid: 7970 + components: + - type: Transform + pos: 7.5,2.5 + parent: 1 + - uid: 7982 + components: + - type: Transform + pos: 7.5,0.5 + parent: 1 + - uid: 8050 + components: + - type: Transform + pos: -29.5,3.5 + parent: 1 + - uid: 8070 + components: + - type: Transform + pos: 21.5,39.5 + parent: 1 + - uid: 8170 + components: + - type: Transform + pos: -25.5,45.5 + parent: 1 + - uid: 8268 + components: + - type: Transform + pos: -26.5,0.5 + parent: 1 + - uid: 8371 + components: + - type: Transform + pos: 22.5,39.5 + parent: 1 + - uid: 8464 + components: + - type: Transform + pos: 21.5,38.5 + parent: 1 + - uid: 8465 + components: + - type: Transform + pos: 23.5,39.5 + parent: 1 + - uid: 8466 + components: + - type: Transform + pos: 23.5,40.5 + parent: 1 + - uid: 8467 + components: + - type: Transform + pos: 24.5,40.5 + parent: 1 + - uid: 8722 + components: + - type: Transform + pos: -28.5,3.5 + parent: 1 + - uid: 8946 + components: + - type: Transform + pos: -9.5,36.5 + parent: 1 + - uid: 8993 + components: + - type: Transform + pos: -19.5,0.5 + parent: 1 + - uid: 8994 + components: + - type: Transform + pos: -18.5,0.5 + parent: 1 + - uid: 8995 + components: + - type: Transform + pos: -32.5,3.5 + parent: 1 + - uid: 8996 + components: + - type: Transform + pos: -31.5,3.5 + parent: 1 + - uid: 8997 + components: + - type: Transform + pos: -30.5,3.5 + parent: 1 + - uid: 9053 + components: + - type: Transform + pos: -28.5,2.5 + parent: 1 + - uid: 9054 + components: + - type: Transform + pos: -20.5,0.5 + parent: 1 + - uid: 9152 + components: + - type: Transform + pos: -18.5,4.5 + parent: 1 + - uid: 9186 + components: + - type: Transform + pos: -27.5,0.5 + parent: 1 + - uid: 9189 + components: + - type: Transform + pos: -25.5,0.5 + parent: 1 + - uid: 9205 + components: + - type: Transform + pos: -18.5,3.5 + parent: 1 + - uid: 9245 + components: + - type: Transform + pos: -17.5,5.5 + parent: 1 + - uid: 9246 + components: + - type: Transform + pos: -18.5,5.5 + parent: 1 + - uid: 9277 + components: + - type: Transform + pos: -18.5,1.5 + parent: 1 + - uid: 9278 + components: + - type: Transform + pos: -16.5,5.5 + parent: 1 + - uid: 9303 + components: + - type: Transform + pos: -28.5,0.5 + parent: 1 + - uid: 9304 + components: + - type: Transform + pos: -28.5,1.5 + parent: 1 + - uid: 9315 + components: + - type: Transform + pos: -16.5,4.5 + parent: 1 + - uid: 9325 + components: + - type: Transform + pos: -18.5,2.5 + parent: 1 + - uid: 9326 + components: + - type: Transform + pos: -24.5,0.5 + parent: 1 + - uid: 9327 + components: + - type: Transform + pos: -23.5,0.5 + parent: 1 + - uid: 9328 + components: + - type: Transform + pos: -22.5,0.5 + parent: 1 + - uid: 9329 + components: + - type: Transform + pos: -21.5,0.5 + parent: 1 + - uid: 9713 + components: + - type: Transform + pos: -31.5,47.5 + parent: 1 + - uid: 9714 + components: + - type: Transform + pos: -32.5,47.5 + parent: 1 + - uid: 9715 + components: + - type: Transform + pos: -33.5,47.5 + parent: 1 + - uid: 9716 + components: + - type: Transform + pos: -33.5,46.5 + parent: 1 + - uid: 12453 + components: + - type: Transform + pos: -25.5,-10.5 + parent: 1 + - uid: 13261 + components: + - type: Transform + pos: -5.5,36.5 + parent: 1 + - uid: 13263 + components: + - type: Transform + pos: -3.5,36.5 + parent: 1 + - uid: 13264 + components: + - type: Transform + pos: -4.5,36.5 + parent: 1 + - uid: 13493 + components: + - type: Transform + pos: -5.5,50.5 + parent: 1 + - uid: 13500 + components: + - type: Transform + pos: -9.5,50.5 + parent: 1 + - uid: 13502 + components: + - type: Transform + pos: -6.5,50.5 + parent: 1 + - uid: 13512 + components: + - type: Transform + pos: -7.5,50.5 + parent: 1 + - uid: 13515 + components: + - type: Transform + pos: -12.5,36.5 + parent: 1 + - uid: 13516 + components: + - type: Transform + pos: -3.5,50.5 + parent: 1 + - uid: 13517 + components: + - type: Transform + pos: -10.5,36.5 + parent: 1 + - uid: 13520 + components: + - type: Transform + pos: -12.5,37.5 + parent: 1 + - uid: 13522 + components: + - type: Transform + pos: -11.5,36.5 + parent: 1 + - uid: 13523 + components: + - type: Transform + pos: -12.5,40.5 + parent: 1 + - uid: 13524 + components: + - type: Transform + pos: -4.5,50.5 + parent: 1 + - uid: 13527 + components: + - type: Transform + pos: -8.5,50.5 + parent: 1 + - uid: 13528 + components: + - type: Transform + pos: -11.5,50.5 + parent: 1 + - uid: 13531 + components: + - type: Transform + pos: -12.5,42.5 + parent: 1 + - uid: 13532 + components: + - type: Transform + pos: -12.5,41.5 + parent: 1 + - uid: 13535 + components: + - type: Transform + pos: -10.5,50.5 + parent: 1 + - uid: 13539 + components: + - type: Transform + pos: -12.5,38.5 + parent: 1 + - uid: 13540 + components: + - type: Transform + pos: -12.5,39.5 + parent: 1 + - uid: 13564 + components: + - type: Transform + pos: -7.5,36.5 + parent: 1 + - uid: 14280 + components: + - type: Transform + pos: -35.5,13.5 + parent: 1 + - uid: 14281 + components: + - type: Transform + pos: -35.5,14.5 + parent: 1 + - uid: 14282 + components: + - type: Transform + pos: -35.5,15.5 + parent: 1 + - uid: 14283 + components: + - type: Transform + pos: -36.5,15.5 + parent: 1 + - uid: 14284 + components: + - type: Transform + pos: -37.5,15.5 + parent: 1 + - uid: 14285 + components: + - type: Transform + pos: -38.5,15.5 + parent: 1 + - uid: 14286 + components: + - type: Transform + pos: -39.5,15.5 + parent: 1 + - uid: 14287 + components: + - type: Transform + pos: -40.5,15.5 + parent: 1 + - uid: 14504 + components: + - type: Transform + pos: 31.5,44.5 + parent: 1 + - uid: 14505 + components: + - type: Transform + pos: 31.5,45.5 + parent: 1 + - uid: 14506 + components: + - type: Transform + pos: 31.5,46.5 + parent: 1 + - uid: 14507 + components: + - type: Transform + pos: 31.5,47.5 + parent: 1 + - uid: 14508 + components: + - type: Transform + pos: 31.5,48.5 + parent: 1 + - uid: 14509 + components: + - type: Transform + pos: 31.5,49.5 + parent: 1 + - uid: 14510 + components: + - type: Transform + pos: 30.5,49.5 + parent: 1 + - uid: 14511 + components: + - type: Transform + pos: 30.5,50.5 + parent: 1 + - uid: 14512 + components: + - type: Transform + pos: 30.5,51.5 + parent: 1 + - uid: 14513 + components: + - type: Transform + pos: 30.5,52.5 + parent: 1 + - uid: 14514 + components: + - type: Transform + pos: 30.5,53.5 + parent: 1 + - uid: 14515 + components: + - type: Transform + pos: 30.5,54.5 + parent: 1 + - uid: 14516 + components: + - type: Transform + pos: 30.5,55.5 + parent: 1 + - uid: 14517 + components: + - type: Transform + pos: 31.5,55.5 + parent: 1 + - uid: 14650 + components: + - type: Transform + pos: 35.5,13.5 + parent: 1 + - uid: 14651 + components: + - type: Transform + pos: 35.5,14.5 + parent: 1 + - uid: 14652 + components: + - type: Transform + pos: 35.5,15.5 + parent: 1 + - uid: 14653 + components: + - type: Transform + pos: 35.5,16.5 + parent: 1 + - uid: 15508 + components: + - type: Transform + pos: 40.5,8.5 + parent: 1 + - uid: 15509 + components: + - type: Transform + pos: 40.5,7.5 + parent: 1 + - uid: 15510 + components: + - type: Transform + pos: 40.5,6.5 + parent: 1 + - uid: 15511 + components: + - type: Transform + pos: 40.5,5.5 + parent: 1 + - uid: 15512 + components: + - type: Transform + pos: 43.5,11.5 + parent: 1 + - uid: 15513 + components: + - type: Transform + pos: 43.5,10.5 + parent: 1 + - uid: 15514 + components: + - type: Transform + pos: 44.5,9.5 + parent: 1 + - uid: 15515 + components: + - type: Transform + pos: 44.5,10.5 + parent: 1 + - uid: 15516 + components: + - type: Transform + pos: 44.5,8.5 + parent: 1 + - uid: 15517 + components: + - type: Transform + pos: 44.5,7.5 + parent: 1 + - uid: 15518 + components: + - type: Transform + pos: 45.5,7.5 + parent: 1 + - uid: 15519 + components: + - type: Transform + pos: 46.5,7.5 + parent: 1 + - uid: 15520 + components: + - type: Transform + pos: 47.5,7.5 + parent: 1 + - uid: 15521 + components: + - type: Transform + pos: 48.5,7.5 + parent: 1 + - uid: 15522 + components: + - type: Transform + pos: 48.5,8.5 + parent: 1 + - uid: 15523 + components: + - type: Transform + pos: 49.5,8.5 + parent: 1 + - uid: 15524 + components: + - type: Transform + pos: 50.5,8.5 + parent: 1 + - uid: 15525 + components: + - type: Transform + pos: 50.5,9.5 + parent: 1 + - uid: 15526 + components: + - type: Transform + pos: 50.5,10.5 + parent: 1 + - uid: 15527 + components: + - type: Transform + pos: 50.5,11.5 + parent: 1 + - uid: 15528 + components: + - type: Transform + pos: 50.5,12.5 + parent: 1 + - uid: 15529 + components: + - type: Transform + pos: 50.5,13.5 + parent: 1 + - uid: 15530 + components: + - type: Transform + pos: 50.5,14.5 + parent: 1 + - uid: 15531 + components: + - type: Transform + pos: 50.5,15.5 + parent: 1 + - uid: 15532 + components: + - type: Transform + pos: 49.5,15.5 + parent: 1 + - uid: 15533 + components: + - type: Transform + pos: 48.5,15.5 + parent: 1 + - uid: 15534 + components: + - type: Transform + pos: 48.5,16.5 + parent: 1 + - uid: 15535 + components: + - type: Transform + pos: 47.5,16.5 + parent: 1 + - uid: 15536 + components: + - type: Transform + pos: 46.5,16.5 + parent: 1 + - uid: 15537 + components: + - type: Transform + pos: 45.5,16.5 + parent: 1 + - uid: 15538 + components: + - type: Transform + pos: 44.5,16.5 + parent: 1 + - uid: 15539 + components: + - type: Transform + pos: 44.5,15.5 + parent: 1 + - uid: 15540 + components: + - type: Transform + pos: 44.5,14.5 + parent: 1 + - uid: 15895 + components: + - type: Transform + pos: -26.5,-10.5 + parent: 1 + - uid: 15896 + components: + - type: Transform + pos: -27.5,-10.5 + parent: 1 + - uid: 15897 + components: + - type: Transform + pos: -27.5,-11.5 + parent: 1 + - uid: 15898 + components: + - type: Transform + pos: -27.5,-12.5 + parent: 1 + - uid: 15899 + components: + - type: Transform + pos: -27.5,-13.5 + parent: 1 + - uid: 15900 + components: + - type: Transform + pos: -27.5,-14.5 + parent: 1 + - uid: 15901 + components: + - type: Transform + pos: -27.5,-15.5 + parent: 1 + - uid: 15902 + components: + - type: Transform + pos: -27.5,-16.5 + parent: 1 + - uid: 15903 + components: + - type: Transform + pos: -26.5,-16.5 + parent: 1 + - uid: 15906 + components: + - type: Transform + pos: -20.5,-11.5 + parent: 1 + - uid: 15907 + components: + - type: Transform + pos: -20.5,-12.5 + parent: 1 + - uid: 15908 + components: + - type: Transform + pos: -20.5,-13.5 + parent: 1 + - uid: 15909 + components: + - type: Transform + pos: -20.5,-14.5 + parent: 1 + - uid: 15910 + components: + - type: Transform + pos: -20.5,-15.5 + parent: 1 + - uid: 15911 + components: + - type: Transform + pos: -20.5,-16.5 + parent: 1 + - uid: 15912 + components: + - type: Transform + pos: -20.5,-17.5 + parent: 1 + - uid: 15913 + components: + - type: Transform + pos: -20.5,-18.5 + parent: 1 + - uid: 15914 + components: + - type: Transform + pos: -20.5,-19.5 + parent: 1 + - uid: 15915 + components: + - type: Transform + pos: -20.5,-20.5 + parent: 1 + - uid: 15916 + components: + - type: Transform + pos: -19.5,-20.5 + parent: 1 + - uid: 15917 + components: + - type: Transform + pos: -18.5,-20.5 + parent: 1 + - uid: 15918 + components: + - type: Transform + pos: -17.5,-20.5 + parent: 1 + - uid: 15919 + components: + - type: Transform + pos: -16.5,-20.5 + parent: 1 + - uid: 15920 + components: + - type: Transform + pos: -15.5,-20.5 + parent: 1 + - uid: 16027 + components: + - type: Transform + pos: -19.5,-22.5 + parent: 1 + - uid: 16028 + components: + - type: Transform + pos: -18.5,-22.5 + parent: 1 + - uid: 16029 + components: + - type: Transform + pos: -17.5,-22.5 + parent: 1 + - uid: 16030 + components: + - type: Transform + pos: -16.5,-22.5 + parent: 1 + - uid: 16031 + components: + - type: Transform + pos: -15.5,-22.5 + parent: 1 + - uid: 16032 + components: + - type: Transform + pos: -15.5,-23.5 + parent: 1 + - uid: 16033 + components: + - type: Transform + pos: -15.5,-24.5 + parent: 1 + - uid: 16034 + components: + - type: Transform + pos: -20.5,-23.5 + parent: 1 + - uid: 16035 + components: + - type: Transform + pos: -20.5,-24.5 + parent: 1 + - uid: 16036 + components: + - type: Transform + pos: -20.5,-25.5 + parent: 1 + - uid: 16037 + components: + - type: Transform + pos: -21.5,-25.5 + parent: 1 + - uid: 16038 + components: + - type: Transform + pos: -19.5,-25.5 + parent: 1 + - uid: 16039 + components: + - type: Transform + pos: -21.5,-21.5 + parent: 1 + - uid: 16055 + components: + - type: Transform + pos: -20.5,-22.5 + parent: 1 + - uid: 16056 + components: + - type: Transform + pos: -21.5,-22.5 + parent: 1 + - uid: 16057 + components: + - type: Transform + pos: -22.5,-22.5 + parent: 1 + - uid: 16058 + components: + - type: Transform + pos: -23.5,-22.5 + parent: 1 + - uid: 16059 + components: + - type: Transform + pos: -24.5,-22.5 + parent: 1 + - uid: 16067 + components: + - type: Transform + pos: -35.5,-32.5 + parent: 1 + - uid: 16068 + components: + - type: Transform + pos: -36.5,-32.5 + parent: 1 + - uid: 16069 + components: + - type: Transform + pos: -36.5,-31.5 + parent: 1 + - uid: 16070 + components: + - type: Transform + pos: -36.5,-33.5 + parent: 1 + - uid: 16071 + components: + - type: Transform + pos: -35.5,-31.5 + parent: 1 + - uid: 16072 + components: + - type: Transform + pos: -35.5,-33.5 + parent: 1 + - uid: 16075 + components: + - type: Transform + pos: -20.5,-42.5 + parent: 1 + - uid: 16076 + components: + - type: Transform + pos: -20.5,-43.5 + parent: 1 + - uid: 16077 + components: + - type: Transform + pos: -22.5,-42.5 + parent: 1 + - uid: 16078 + components: + - type: Transform + pos: -22.5,-43.5 + parent: 1 + - uid: 16079 + components: + - type: Transform + pos: -21.5,-42.5 + parent: 1 + - uid: 16080 + components: + - type: Transform + pos: -21.5,-43.5 + parent: 1 + - uid: 16081 + components: + - type: Transform + pos: -19.5,-42.5 + parent: 1 + - uid: 16082 + components: + - type: Transform + pos: -19.5,-43.5 + parent: 1 + - uid: 16083 + components: + - type: Transform + pos: -18.5,-42.5 + parent: 1 + - uid: 16084 + components: + - type: Transform + pos: -18.5,-43.5 + parent: 1 + - uid: 16092 + components: + - type: Transform + pos: -5.5,-30.5 + parent: 1 + - uid: 16093 + components: + - type: Transform + pos: -5.5,-31.5 + parent: 1 + - uid: 16094 + components: + - type: Transform + pos: -5.5,-32.5 + parent: 1 + - uid: 16095 + components: + - type: Transform + pos: -4.5,-30.5 + parent: 1 + - uid: 16096 + components: + - type: Transform + pos: -4.5,-31.5 + parent: 1 + - uid: 16097 + components: + - type: Transform + pos: -4.5,-32.5 + parent: 1 + - uid: 16598 + components: + - type: Transform + pos: -24.5,50.5 + parent: 1 +- proto: CableMVStack + entities: + - uid: 2466 + components: + - type: Transform + pos: -24.866222,-10.277158 + parent: 1 + - uid: 2761 + components: + - type: Transform + pos: -24.79284,-10.411695 + parent: 1 +- proto: CableTerminal + entities: + - uid: 2458 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,-9.5 + parent: 1 + - uid: 2701 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,-9.5 + parent: 1 + - uid: 2982 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,-9.5 + parent: 1 + - uid: 3412 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,41.5 + parent: 1 + - uid: 4114 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,48.5 + parent: 1 + - uid: 4405 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,48.5 + parent: 1 + - uid: 7068 + components: + - type: Transform + pos: 31.5,34.5 + parent: 1 + - uid: 13293 + components: + - type: Transform + pos: 42.5,7.5 + parent: 1 + - uid: 16016 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-24.5 + parent: 1 +- proto: CannabisSeeds + entities: + - uid: 4498 + components: + - type: Transform + parent: 4497 + - type: Physics + canCollide: False +- proto: CarbonDioxideCanister + entities: + - uid: 3086 + components: + - type: Transform + pos: -7.5,-3.5 + parent: 1 + - uid: 3510 + components: + - type: Transform + anchored: True + pos: -4.5,-20.5 + parent: 1 + - type: Physics + angularDamping: 0 + linearDamping: 0 + bodyType: Static + - uid: 14414 + components: + - type: Transform + pos: -8.5,-29.5 + parent: 1 +- proto: CargoBountyComputerCircuitboard + entities: + - uid: 3064 + components: + - type: Transform + pos: -32.99492,-8.322876 + parent: 1 +- proto: CargoRequestComputerCircuitboard + entities: + - uid: 1184 + components: + - type: Transform + parent: 1053 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: CargoShuttleConsoleCircuitboard + entities: + - uid: 2563 + components: + - type: Transform + pos: -33.00075,-8.489816 + parent: 1 +- proto: Carpet + entities: + - uid: 41 + components: + - type: Transform + pos: 13.5,2.5 + parent: 1 + - uid: 438 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,19.5 + parent: 1 + - uid: 459 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,19.5 + parent: 1 + - uid: 516 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,19.5 + parent: 1 + - uid: 563 + components: + - type: Transform + pos: 12.5,1.5 + parent: 1 + - uid: 667 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,20.5 + parent: 1 + - uid: 756 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,20.5 + parent: 1 + - uid: 907 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,20.5 + parent: 1 + - uid: 908 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,19.5 + parent: 1 + - uid: 1100 + components: + - type: Transform + pos: 12.5,0.5 + parent: 1 + - uid: 1330 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,20.5 + parent: 1 + - uid: 1404 + components: + - type: Transform + pos: 12.5,2.5 + parent: 1 + - uid: 1628 + components: + - type: Transform + pos: -28.5,7.5 + parent: 1 + - uid: 1728 + components: + - type: Transform + pos: 12.5,3.5 + parent: 1 + - uid: 1730 + components: + - type: Transform + pos: 11.5,2.5 + parent: 1 + - uid: 1957 + components: + - type: Transform + pos: -28.5,6.5 + parent: 1 + - uid: 2022 + components: + - type: Transform + pos: -27.5,6.5 + parent: 1 + - uid: 2062 + components: + - type: Transform + pos: -27.5,7.5 + parent: 1 + - uid: 2296 + components: + - type: Transform + pos: -33.5,17.5 + parent: 1 + - uid: 2508 + components: + - type: Transform + pos: -34.5,16.5 + parent: 1 + - uid: 3133 + components: + - type: Transform + pos: -33.5,18.5 + parent: 1 + - uid: 3245 + components: + - type: Transform + pos: -34.5,17.5 + parent: 1 + - uid: 3257 + components: + - type: Transform + pos: -33.5,16.5 + parent: 1 + - uid: 3372 + components: + - type: Transform + pos: -34.5,18.5 + parent: 1 + - uid: 5042 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,33.5 + parent: 1 + - uid: 5448 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,33.5 + parent: 1 + - uid: 5986 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,63.5 + parent: 1 + - uid: 6031 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,31.5 + parent: 1 + - uid: 6036 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,64.5 + parent: 1 + - uid: 6231 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,64.5 + parent: 1 + - uid: 6264 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,32.5 + parent: 1 + - uid: 6283 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,63.5 + parent: 1 + - uid: 6313 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,64.5 + parent: 1 + - uid: 6315 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,63.5 + parent: 1 + - uid: 6330 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,32.5 + parent: 1 + - uid: 6407 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,31.5 + parent: 1 +- proto: CarpetBlack + entities: + - uid: 648 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,26.5 + parent: 1 + - uid: 689 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,28.5 + parent: 1 + - uid: 950 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,26.5 + parent: 1 + - uid: 954 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,27.5 + parent: 1 + - uid: 955 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,29.5 + parent: 1 + - uid: 1063 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,26.5 + parent: 1 + - uid: 1064 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,26.5 + parent: 1 + - uid: 1065 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,26.5 + parent: 1 + - uid: 1777 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,-18.5 + parent: 1 + - uid: 2393 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,9.5 + parent: 1 + - uid: 2421 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,8.5 + parent: 1 + - uid: 2477 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,8.5 + parent: 1 + - uid: 2542 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,9.5 + parent: 1 + - uid: 2602 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,8.5 + parent: 1 + - uid: 2798 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,9.5 + parent: 1 + - uid: 4054 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,49.5 + parent: 1 + - uid: 4059 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,47.5 + parent: 1 + - uid: 4214 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,49.5 + parent: 1 + - uid: 4282 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,49.5 + parent: 1 + - uid: 4398 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,47.5 + parent: 1 + - uid: 4602 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,49.5 + parent: 1 + - uid: 4660 + components: + - type: Transform + pos: -41.5,-8.5 + parent: 1 + - uid: 4753 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,47.5 + parent: 1 + - uid: 4775 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,49.5 + parent: 1 + - uid: 4845 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,49.5 + parent: 1 + - uid: 4847 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,47.5 + parent: 1 + - uid: 4861 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,49.5 + parent: 1 + - uid: 4963 + components: + - type: Transform + pos: -41.5,-7.5 + parent: 1 + - uid: 4964 + components: + - type: Transform + pos: -41.5,-6.5 + parent: 1 + - uid: 4965 + components: + - type: Transform + pos: -38.5,-6.5 + parent: 1 + - uid: 4966 + components: + - type: Transform + pos: -39.5,-6.5 + parent: 1 + - uid: 4967 + components: + - type: Transform + pos: -40.5,-6.5 + parent: 1 + - uid: 4997 + components: + - type: Transform + pos: -40.5,-7.5 + parent: 1 + - uid: 4998 + components: + - type: Transform + pos: -39.5,-7.5 + parent: 1 + - uid: 4999 + components: + - type: Transform + pos: -38.5,-7.5 + parent: 1 + - uid: 5000 + components: + - type: Transform + pos: -38.5,-8.5 + parent: 1 + - uid: 5001 + components: + - type: Transform + pos: -39.5,-8.5 + parent: 1 + - uid: 5002 + components: + - type: Transform + pos: -40.5,-8.5 + parent: 1 + - uid: 5120 + components: + - type: Transform + pos: 1.5,34.5 + parent: 1 + - uid: 5121 + components: + - type: Transform + pos: 1.5,32.5 + parent: 1 + - uid: 5159 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,47.5 + parent: 1 + - uid: 5459 + components: + - type: Transform + pos: 1.5,33.5 + parent: 1 + - uid: 5488 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,47.5 + parent: 1 + - uid: 5502 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,49.5 + parent: 1 + - uid: 5550 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,47.5 + parent: 1 + - uid: 5711 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,47.5 + parent: 1 + - uid: 5780 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,49.5 + parent: 1 + - uid: 5855 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,47.5 + parent: 1 + - uid: 6176 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,-20.5 + parent: 1 + - uid: 6177 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,-19.5 + parent: 1 + - uid: 7474 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -47.5,-9.5 + parent: 1 + - uid: 7477 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -47.5,-12.5 + parent: 1 + - uid: 7837 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -47.5,-11.5 + parent: 1 + - uid: 14814 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -47.5,-10.5 + parent: 1 + - uid: 15921 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -47.5,-8.5 + parent: 1 + - uid: 15922 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -48.5,-12.5 + parent: 1 + - uid: 15923 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -48.5,-11.5 + parent: 1 + - uid: 15924 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -48.5,-10.5 + parent: 1 + - uid: 15925 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -48.5,-9.5 + parent: 1 + - uid: 15926 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -48.5,-8.5 + parent: 1 + - uid: 15927 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -49.5,-12.5 + parent: 1 + - uid: 15928 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -49.5,-11.5 + parent: 1 + - uid: 15929 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -49.5,-10.5 + parent: 1 + - uid: 15930 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -49.5,-9.5 + parent: 1 + - uid: 15931 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -49.5,-8.5 + parent: 1 +- proto: CarpetBlue + entities: + - uid: 216 + components: + - type: Transform + pos: -11.5,13.5 + parent: 1 + - uid: 285 + components: + - type: Transform + pos: -11.5,14.5 + parent: 1 + - uid: 287 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,6.5 + parent: 1 + - uid: 449 + components: + - type: Transform + pos: 11.5,44.5 + parent: 1 + - uid: 1049 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,7.5 + parent: 1 + - uid: 1273 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,7.5 + parent: 1 + - uid: 1280 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,8.5 + parent: 1 + - uid: 1295 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,8.5 + parent: 1 + - uid: 1472 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,5.5 + parent: 1 + - uid: 1473 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,6.5 + parent: 1 + - uid: 1492 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,7.5 + parent: 1 + - uid: 1517 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,8.5 + parent: 1 + - uid: 1518 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,7.5 + parent: 1 + - uid: 1530 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,5.5 + parent: 1 + - uid: 1655 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,8.5 + parent: 1 + - uid: 2226 + components: + - type: Transform + pos: 19.5,54.5 + parent: 1 + - uid: 2256 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,14.5 + parent: 1 + - uid: 2304 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,13.5 + parent: 1 + - uid: 2447 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,12.5 + parent: 1 + - uid: 2495 + components: + - type: Transform + pos: 23.5,54.5 + parent: 1 + - uid: 2515 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,12.5 + parent: 1 + - uid: 2550 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,13.5 + parent: 1 + - uid: 2597 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,14.5 + parent: 1 + - uid: 2750 + components: + - type: Transform + pos: 20.5,55.5 + parent: 1 + - uid: 2779 + components: + - type: Transform + pos: 23.5,55.5 + parent: 1 + - uid: 2921 + components: + - type: Transform + pos: 12.5,43.5 + parent: 1 + - uid: 2922 + components: + - type: Transform + pos: 11.5,43.5 + parent: 1 + - uid: 3030 + components: + - type: Transform + pos: 20.5,54.5 + parent: 1 + - uid: 3236 + components: + - type: Transform + pos: 19.5,55.5 + parent: 1 + - uid: 3418 + components: + - type: Transform + pos: 12.5,44.5 + parent: 1 + - uid: 3453 + components: + - type: Transform + pos: 13.5,44.5 + parent: 1 + - uid: 3544 + components: + - type: Transform + pos: 14.5,44.5 + parent: 1 + - uid: 3572 + components: + - type: Transform + pos: 13.5,43.5 + parent: 1 + - uid: 3576 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,43.5 + parent: 1 +- proto: CarpetChapel + entities: + - uid: 11 + components: + - type: Transform + pos: 11.5,0.5 + parent: 1 + - uid: 273 + components: + - type: Transform + pos: 11.5,1.5 + parent: 1 + - uid: 1714 + components: + - type: Transform + pos: 13.5,0.5 + parent: 1 + - uid: 1920 + components: + - type: Transform + pos: 13.5,1.5 + parent: 1 +- proto: CarpetGreen + entities: + - uid: 618 + components: + - type: Transform + pos: -17.5,40.5 + parent: 1 + - uid: 830 + components: + - type: Transform + pos: -19.5,40.5 + parent: 1 + - uid: 847 + components: + - type: Transform + pos: -18.5,41.5 + parent: 1 + - uid: 853 + components: + - type: Transform + pos: -19.5,41.5 + parent: 1 + - uid: 982 + components: + - type: Transform + pos: -18.5,40.5 + parent: 1 + - uid: 1012 + components: + - type: Transform + pos: -17.5,41.5 + parent: 1 + - uid: 4288 + components: + - type: Transform + pos: -7.5,54.5 + parent: 1 + - uid: 4301 + components: + - type: Transform + pos: -7.5,55.5 + parent: 1 + - uid: 4302 + components: + - type: Transform + pos: -8.5,54.5 + parent: 1 + - uid: 4303 + components: + - type: Transform + pos: -8.5,55.5 + parent: 1 + - uid: 4335 + components: + - type: Transform + pos: -8.5,56.5 + parent: 1 + - uid: 4463 + components: + - type: Transform + pos: -7.5,56.5 + parent: 1 +- proto: CarpetOrange + entities: + - uid: 34 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,27.5 + parent: 1 + - uid: 127 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,32.5 + parent: 1 + - uid: 231 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,26.5 + parent: 1 + - uid: 232 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,26.5 + parent: 1 + - uid: 251 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,26.5 + parent: 1 + - uid: 270 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,26.5 + parent: 1 + - uid: 425 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,32.5 + parent: 1 + - uid: 582 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,31.5 + parent: 1 + - uid: 616 + components: + - type: Transform + pos: -24.5,39.5 + parent: 1 + - uid: 798 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,31.5 + parent: 1 + - uid: 879 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,27.5 + parent: 1 + - uid: 966 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,27.5 + parent: 1 + - uid: 1315 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,27.5 + parent: 1 + - uid: 1462 + components: + - type: Transform + pos: 23.5,51.5 + parent: 1 + - uid: 2338 + components: + - type: Transform + pos: -20.5,-16.5 + parent: 1 + - uid: 2665 + components: + - type: Transform + pos: -21.5,-3.5 + parent: 1 + - uid: 2741 + components: + - type: Transform + pos: -20.5,-4.5 + parent: 1 + - uid: 2933 + components: + - type: Transform + pos: -21.5,-4.5 + parent: 1 + - uid: 3141 + components: + - type: Transform + pos: -20.5,-15.5 + parent: 1 + - uid: 3258 + components: + - type: Transform + pos: -19.5,-16.5 + parent: 1 + - uid: 3259 + components: + - type: Transform + pos: -19.5,-15.5 + parent: 1 + - uid: 3307 + components: + - type: Transform + pos: -18.5,-18.5 + parent: 1 + - uid: 3308 + components: + - type: Transform + pos: -18.5,-19.5 + parent: 1 + - uid: 3325 + components: + - type: Transform + pos: -20.5,-3.5 + parent: 1 + - uid: 3931 + components: + - type: Transform + pos: -0.5,62.5 + parent: 1 + - uid: 3932 + components: + - type: Transform + pos: -1.5,62.5 + parent: 1 + - uid: 3998 + components: + - type: Transform + pos: -0.5,63.5 + parent: 1 + - uid: 4000 + components: + - type: Transform + pos: -1.5,63.5 + parent: 1 + - uid: 4158 + components: + - type: Transform + pos: 28.5,50.5 + parent: 1 + - uid: 4203 + components: + - type: Transform + pos: 27.5,50.5 + parent: 1 + - uid: 4204 + components: + - type: Transform + pos: 26.5,50.5 + parent: 1 + - uid: 4384 + components: + - type: Transform + pos: 22.5,51.5 + parent: 1 + - uid: 4478 + components: + - type: Transform + pos: 22.5,50.5 + parent: 1 + - uid: 4479 + components: + - type: Transform + pos: 23.5,50.5 + parent: 1 +- proto: CarpetPink + entities: + - uid: 2254 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,3.5 + parent: 1 + - uid: 2255 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,3.5 + parent: 1 + - uid: 2410 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,3.5 + parent: 1 + - uid: 2419 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,4.5 + parent: 1 + - uid: 2590 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,4.5 + parent: 1 + - uid: 2691 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,4.5 + parent: 1 +- proto: CarpetPurple + entities: + - uid: 57 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,16.5 + parent: 1 + - uid: 786 + components: + - type: Transform + pos: 10.5,7.5 + parent: 1 + - uid: 849 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,17.5 + parent: 1 + - uid: 1194 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,19.5 + parent: 1 + - uid: 1463 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,17.5 + parent: 1 + - uid: 1546 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,16.5 + parent: 1 + - uid: 1722 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,19.5 + parent: 1 + - uid: 1723 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,18.5 + parent: 1 + - uid: 1727 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,18.5 + parent: 1 + - uid: 1741 + components: + - type: Transform + pos: 9.5,7.5 + parent: 1 + - uid: 1899 + components: + - type: Transform + pos: 10.5,6.5 + parent: 1 + - uid: 2036 + components: + - type: Transform + pos: 9.5,6.5 + parent: 1 + - uid: 4077 + components: + - type: Transform + pos: 23.5,3.5 + parent: 1 + - uid: 5110 + components: + - type: Transform + pos: 21.5,2.5 + parent: 1 + - uid: 5290 + components: + - type: Transform + pos: 23.5,2.5 + parent: 1 + - uid: 5438 + components: + - type: Transform + pos: 24.5,4.5 + parent: 1 + - uid: 5680 + components: + - type: Transform + pos: 23.5,4.5 + parent: 1 + - uid: 5709 + components: + - type: Transform + pos: 22.5,4.5 + parent: 1 + - uid: 5750 + components: + - type: Transform + pos: 22.5,2.5 + parent: 1 + - uid: 5752 + components: + - type: Transform + pos: 21.5,4.5 + parent: 1 + - uid: 5821 + components: + - type: Transform + pos: 21.5,3.5 + parent: 1 + - uid: 5911 + components: + - type: Transform + pos: 22.5,3.5 + parent: 1 + - uid: 12748 + components: + - type: Transform + pos: 24.5,2.5 + parent: 1 + - uid: 14989 + components: + - type: Transform + pos: 24.5,3.5 + parent: 1 +- proto: Catwalk + entities: + - uid: 21 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,28.5 + parent: 1 + - uid: 188 + components: + - type: Transform + pos: -32.5,32.5 + parent: 1 + - uid: 265 + components: + - type: Transform + pos: -34.5,8.5 + parent: 1 + - uid: 266 + components: + - type: Transform + pos: -3.5,-11.5 + parent: 1 + - uid: 312 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,28.5 + parent: 1 + - uid: 319 + components: + - type: Transform + pos: 13.5,-5.5 + parent: 1 + - uid: 321 + components: + - type: Transform + pos: 27.5,22.5 + parent: 1 + - uid: 369 + components: + - type: Transform + pos: 8.5,39.5 + parent: 1 + - uid: 436 + components: + - type: Transform + pos: 5.5,39.5 + parent: 1 + - uid: 621 + components: + - type: Transform + pos: 29.5,15.5 + parent: 1 + - uid: 684 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,28.5 + parent: 1 + - uid: 831 + components: + - type: Transform + pos: 25.5,57.5 + parent: 1 + - uid: 897 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,26.5 + parent: 1 + - uid: 1000 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -46.5,58.5 + parent: 1 + - uid: 1035 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -48.5,58.5 + parent: 1 + - uid: 1176 + components: + - type: Transform + pos: -24.5,-5.5 + parent: 1 + - uid: 1299 + components: + - type: Transform + pos: 32.5,57.5 + parent: 1 + - uid: 1784 + components: + - type: Transform + pos: -11.5,-20.5 + parent: 1 + - uid: 1902 + components: + - type: Transform + pos: -7.5,70.5 + parent: 1 + - uid: 1911 + components: + - type: Transform + pos: -11.5,-18.5 + parent: 1 + - uid: 1951 + components: + - type: Transform + pos: -11.5,-19.5 + parent: 1 + - uid: 2137 + components: + - type: Transform + pos: -3.5,40.5 + parent: 1 + - uid: 2140 + components: + - type: Transform + pos: -3.5,41.5 + parent: 1 + - uid: 2198 + components: + - type: Transform + pos: -3.5,39.5 + parent: 1 + - uid: 2307 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-4.5 + parent: 1 + - uid: 2318 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-5.5 + parent: 1 + - uid: 2350 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-4.5 + parent: 1 + - uid: 2361 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-3.5 + parent: 1 + - uid: 2363 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-3.5 + parent: 1 + - uid: 2408 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-5.5 + parent: 1 + - uid: 2414 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-3.5 + parent: 1 + - uid: 2456 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-4.5 + parent: 1 + - uid: 2574 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-3.5 + parent: 1 + - uid: 2620 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,62.5 + parent: 1 + - uid: 2638 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-5.5 + parent: 1 + - uid: 2639 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-4.5 + parent: 1 + - uid: 2656 + components: + - type: Transform + pos: 10.5,-24.5 + parent: 1 + - uid: 2700 + components: + - type: Transform + pos: 31.5,64.5 + parent: 1 + - uid: 2714 + components: + - type: Transform + pos: -24.5,-4.5 + parent: 1 + - uid: 2729 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-5.5 + parent: 1 + - uid: 2954 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,1.5 + parent: 1 + - uid: 3238 + components: + - type: Transform + pos: -24.5,-3.5 + parent: 1 + - uid: 3304 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,37.5 + parent: 1 + - uid: 3444 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,0.5 + parent: 1 + - uid: 3584 + components: + - type: Transform + pos: 20.5,19.5 + parent: 1 + - uid: 3758 + components: + - type: Transform + pos: 29.5,67.5 + parent: 1 + - uid: 3764 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,36.5 + parent: 1 + - uid: 3776 + components: + - type: Transform + pos: -9.5,-24.5 + parent: 1 + - uid: 3782 + components: + - type: Transform + pos: -2.5,39.5 + parent: 1 + - uid: 3793 + components: + - type: Transform + pos: -1.5,41.5 + parent: 1 + - uid: 3794 + components: + - type: Transform + pos: -0.5,40.5 + parent: 1 + - uid: 3795 + components: + - type: Transform + pos: -0.5,41.5 + parent: 1 + - uid: 3808 + components: + - type: Transform + pos: -0.5,39.5 + parent: 1 + - uid: 3812 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,40.5 + parent: 1 + - uid: 3815 + components: + - type: Transform + pos: -2.5,40.5 + parent: 1 + - uid: 3904 + components: + - type: Transform + pos: -4.5,50.5 + parent: 1 + - uid: 3905 + components: + - type: Transform + pos: -4.5,36.5 + parent: 1 + - uid: 3906 + components: + - type: Transform + pos: -11.5,50.5 + parent: 1 + - uid: 3907 + components: + - type: Transform + pos: -11.5,36.5 + parent: 1 + - uid: 4053 + components: + - type: Transform + pos: -1.5,39.5 + parent: 1 + - uid: 4055 + components: + - type: Transform + pos: 27.5,4.5 + parent: 1 + - uid: 4057 + components: + - type: Transform + pos: 5.5,55.5 + parent: 1 + - uid: 4064 + components: + - type: Transform + pos: 13.5,-4.5 + parent: 1 + - uid: 4069 + components: + - type: Transform + pos: 29.5,25.5 + parent: 1 + - uid: 4072 + components: + - type: Transform + pos: -32.5,41.5 + parent: 1 + - uid: 4073 + components: + - type: Transform + pos: 29.5,54.5 + parent: 1 + - uid: 4074 + components: + - type: Transform + pos: -30.5,18.5 + parent: 1 + - uid: 4106 + components: + - type: Transform + pos: 28.5,35.5 + parent: 1 + - uid: 4117 + components: + - type: Transform + pos: 18.5,5.5 + parent: 1 + - uid: 4120 + components: + - type: Transform + pos: -43.5,44.5 + parent: 1 + - uid: 4123 + components: + - type: Transform + pos: 6.5,67.5 + parent: 1 + - uid: 4125 + components: + - type: Transform + pos: 30.5,52.5 + parent: 1 + - uid: 4129 + components: + - type: Transform + pos: -41.5,43.5 + parent: 1 + - uid: 4138 + components: + - type: Transform + pos: -44.5,40.5 + parent: 1 + - uid: 4149 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,37.5 + parent: 1 + - uid: 4152 + components: + - type: Transform + pos: 18.5,-10.5 + parent: 1 + - uid: 4155 + components: + - type: Transform + pos: 27.5,9.5 + parent: 1 + - uid: 4166 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,33.5 + parent: 1 + - uid: 4191 + components: + - type: Transform + pos: -39.5,47.5 + parent: 1 + - uid: 4206 + components: + - type: Transform + pos: 15.5,32.5 + parent: 1 + - uid: 4208 + components: + - type: Transform + pos: 12.5,-4.5 + parent: 1 + - uid: 4212 + components: + - type: Transform + pos: -41.5,48.5 + parent: 1 + - uid: 4220 + components: + - type: Transform + pos: 27.5,8.5 + parent: 1 + - uid: 4230 + components: + - type: Transform + pos: 16.5,-8.5 + parent: 1 + - uid: 4241 + components: + - type: Transform + pos: 23.5,57.5 + parent: 1 + - uid: 4242 + components: + - type: Transform + pos: 18.5,-8.5 + parent: 1 + - uid: 4246 + components: + - type: Transform + pos: 21.5,19.5 + parent: 1 + - uid: 4248 + components: + - type: Transform + pos: -43.5,42.5 + parent: 1 + - uid: 4257 + components: + - type: Transform + pos: 17.5,57.5 + parent: 1 + - uid: 4260 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,33.5 + parent: 1 + - uid: 4276 + components: + - type: Transform + pos: -29.5,38.5 + parent: 1 + - uid: 4284 + components: + - type: Transform + pos: 19.5,-4.5 + parent: 1 + - uid: 4287 + components: + - type: Transform + pos: 24.5,25.5 + parent: 1 + - uid: 4298 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,35.5 + parent: 1 + - uid: 4304 + components: + - type: Transform + pos: -41.5,49.5 + parent: 1 + - uid: 4310 + components: + - type: Transform + pos: 20.5,-4.5 + parent: 1 + - uid: 4318 + components: + - type: Transform + pos: 26.5,28.5 + parent: 1 + - uid: 4340 + components: + - type: Transform + pos: 31.5,47.5 + parent: 1 + - uid: 4347 + components: + - type: Transform + pos: 25.5,28.5 + parent: 1 + - uid: 4351 + components: + - type: Transform + pos: -45.5,45.5 + parent: 1 + - uid: 4367 + components: + - type: Transform + pos: -44.5,41.5 + parent: 1 + - uid: 4372 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,38.5 + parent: 1 + - uid: 4373 + components: + - type: Transform + pos: -43.5,40.5 + parent: 1 + - uid: 4374 + components: + - type: Transform + pos: -36.5,47.5 + parent: 1 + - uid: 4394 + components: + - type: Transform + pos: -40.5,41.5 + parent: 1 + - uid: 4404 + components: + - type: Transform + pos: -7.5,50.5 + parent: 1 + - uid: 4406 + components: + - type: Transform + pos: 14.5,39.5 + parent: 1 + - uid: 4408 + components: + - type: Transform + pos: -34.5,9.5 + parent: 1 + - uid: 4411 + components: + - type: Transform + pos: -40.5,40.5 + parent: 1 + - uid: 4415 + components: + - type: Transform + pos: -7.5,61.5 + parent: 1 + - uid: 4436 + components: + - type: Transform + pos: 27.5,23.5 + parent: 1 + - uid: 4440 + components: + - type: Transform + pos: -42.5,46.5 + parent: 1 + - uid: 4442 + components: + - type: Transform + pos: 17.5,-0.5 + parent: 1 + - uid: 4451 + components: + - type: Transform + pos: -17.5,5.5 + parent: 1 + - uid: 4468 + components: + - type: Transform + pos: 25.5,40.5 + parent: 1 + - uid: 4483 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,37.5 + parent: 1 + - uid: 4492 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,33.5 + parent: 1 + - uid: 4494 + components: + - type: Transform + pos: -43.5,41.5 + parent: 1 + - uid: 4511 + components: + - type: Transform + pos: 5.5,63.5 + parent: 1 + - uid: 4514 + components: + - type: Transform + pos: -34.5,11.5 + parent: 1 + - uid: 4548 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,34.5 + parent: 1 + - uid: 4549 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,34.5 + parent: 1 + - uid: 4553 + components: + - type: Transform + pos: -43.5,48.5 + parent: 1 + - uid: 4564 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,40.5 + parent: 1 + - uid: 4565 + components: + - type: Transform + pos: -39.5,49.5 + parent: 1 + - uid: 4570 + components: + - type: Transform + pos: -45.5,44.5 + parent: 1 + - uid: 4584 + components: + - type: Transform + pos: 15.5,62.5 + parent: 1 + - uid: 4585 + components: + - type: Transform + pos: -17.5,45.5 + parent: 1 + - uid: 4589 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,39.5 + parent: 1 + - uid: 4601 + components: + - type: Transform + pos: 25.5,9.5 + parent: 1 + - uid: 4616 + components: + - type: Transform + pos: -7.5,62.5 + parent: 1 + - uid: 4619 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -48.5,40.5 + parent: 1 + - uid: 4625 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,36.5 + parent: 1 + - uid: 4630 + components: + - type: Transform + pos: -45.5,46.5 + parent: 1 + - uid: 4637 + components: + - type: Transform + pos: 6.5,59.5 + parent: 1 + - uid: 4639 + components: + - type: Transform + pos: -41.5,40.5 + parent: 1 + - uid: 4648 + components: + - type: Transform + pos: 15.5,66.5 + parent: 1 + - uid: 4650 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,34.5 + parent: 1 + - uid: 4655 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,34.5 + parent: 1 + - uid: 4678 + components: + - type: Transform + pos: -42.5,41.5 + parent: 1 + - uid: 4693 + components: + - type: Transform + pos: -3.5,61.5 + parent: 1 + - uid: 4695 + components: + - type: Transform + pos: -39.5,41.5 + parent: 1 + - uid: 4705 + components: + - type: Transform + pos: -39.5,48.5 + parent: 1 + - uid: 4718 + components: + - type: Transform + pos: -42.5,40.5 + parent: 1 + - uid: 4721 + components: + - type: Transform + pos: -18.5,44.5 + parent: 1 + - uid: 4727 + components: + - type: Transform + pos: -41.5,50.5 + parent: 1 + - uid: 4744 + components: + - type: Transform + pos: -19.5,45.5 + parent: 1 + - uid: 4750 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,33.5 + parent: 1 + - uid: 4751 + components: + - type: Transform + pos: 17.5,6.5 + parent: 1 + - uid: 4752 + components: + - type: Transform + pos: 5.5,37.5 + parent: 1 + - uid: 4755 + components: + - type: Transform + pos: -35.5,48.5 + parent: 1 + - uid: 4765 + components: + - type: Transform + pos: 15.5,64.5 + parent: 1 + - uid: 4777 + components: + - type: Transform + pos: -17.5,23.5 + parent: 1 + - uid: 4788 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,35.5 + parent: 1 + - uid: 4791 + components: + - type: Transform + pos: -39.5,40.5 + parent: 1 + - uid: 4792 + components: + - type: Transform + pos: 10.5,37.5 + parent: 1 + - uid: 4795 + components: + - type: Transform + pos: -2.5,65.5 + parent: 1 + - uid: 4803 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,37.5 + parent: 1 + - uid: 4805 + components: + - type: Transform + pos: -34.5,47.5 + parent: 1 + - uid: 4811 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,37.5 + parent: 1 + - uid: 4825 + components: + - type: Transform + pos: 21.5,39.5 + parent: 1 + - uid: 4830 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,36.5 + parent: 1 + - uid: 4842 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,38.5 + parent: 1 + - uid: 4846 + components: + - type: Transform + pos: -46.5,41.5 + parent: 1 + - uid: 4849 + components: + - type: Transform + pos: 31.5,42.5 + parent: 1 + - uid: 4852 + components: + - type: Transform + pos: 11.5,37.5 + parent: 1 + - uid: 4855 + components: + - type: Transform + pos: 29.5,9.5 + parent: 1 + - uid: 4864 + components: + - type: Transform + pos: -18.5,0.5 + parent: 1 + - uid: 4866 + components: + - type: Transform + pos: 29.5,20.5 + parent: 1 + - uid: 4872 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,34.5 + parent: 1 + - uid: 4874 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,36.5 + parent: 1 + - uid: 4875 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,38.5 + parent: 1 + - uid: 4876 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,39.5 + parent: 1 + - uid: 4882 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,34.5 + parent: 1 + - uid: 4892 + components: + - type: Transform + pos: -2.5,67.5 + parent: 1 + - uid: 4894 + components: + - type: Transform + pos: 15.5,69.5 + parent: 1 + - uid: 4897 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,33.5 + parent: 1 + - uid: 4900 + components: + - type: Transform + pos: -46.5,40.5 + parent: 1 + - uid: 4905 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,29.5 + parent: 1 + - uid: 4916 + components: + - type: Transform + pos: 20.5,33.5 + parent: 1 + - uid: 4921 + components: + - type: Transform + pos: -41.5,41.5 + parent: 1 + - uid: 4942 + components: + - type: Transform + pos: -31.5,40.5 + parent: 1 + - uid: 4946 + components: + - type: Transform + pos: -17.5,44.5 + parent: 1 + - uid: 4948 + components: + - type: Transform + pos: 19.5,-3.5 + parent: 1 + - uid: 4951 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,35.5 + parent: 1 + - uid: 4952 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,36.5 + parent: 1 + - uid: 4953 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,37.5 + parent: 1 + - uid: 4954 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,35.5 + parent: 1 + - uid: 4978 + components: + - type: Transform + pos: 22.5,19.5 + parent: 1 + - uid: 4985 + components: + - type: Transform + pos: -3.5,64.5 + parent: 1 + - uid: 5008 + components: + - type: Transform + pos: 16.5,3.5 + parent: 1 + - uid: 5024 + components: + - type: Transform + pos: -39.5,44.5 + parent: 1 + - uid: 5039 + components: + - type: Transform + pos: -8.5,67.5 + parent: 1 + - uid: 5040 + components: + - type: Transform + pos: -39.5,42.5 + parent: 1 + - uid: 5041 + components: + - type: Transform + pos: -8.5,66.5 + parent: 1 + - uid: 5053 + components: + - type: Transform + pos: -29.5,22.5 + parent: 1 + - uid: 5060 + components: + - type: Transform + pos: 21.5,32.5 + parent: 1 + - uid: 5070 + components: + - type: Transform + pos: -32.5,33.5 + parent: 1 + - uid: 5071 + components: + - type: Transform + pos: 15.5,26.5 + parent: 1 + - uid: 5075 + components: + - type: Transform + pos: -8.5,52.5 + parent: 1 + - uid: 5085 + components: + - type: Transform + pos: 8.5,-0.5 + parent: 1 + - uid: 5087 + components: + - type: Transform + pos: -47.5,40.5 + parent: 1 + - uid: 5088 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,39.5 + parent: 1 + - uid: 5089 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,38.5 + parent: 1 + - uid: 5092 + components: + - type: Transform + pos: -18.5,37.5 + parent: 1 + - uid: 5094 + components: + - type: Transform + pos: 5.5,47.5 + parent: 1 + - uid: 5095 + components: + - type: Transform + pos: 8.5,67.5 + parent: 1 + - uid: 5102 + components: + - type: Transform + pos: 31.5,46.5 + parent: 1 + - uid: 5104 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,41.5 + parent: 1 + - uid: 5105 + components: + - type: Transform + pos: -41.5,44.5 + parent: 1 + - uid: 5106 + components: + - type: Transform + pos: -41.5,45.5 + parent: 1 + - uid: 5107 + components: + - type: Transform + pos: -41.5,47.5 + parent: 1 + - uid: 5108 + components: + - type: Transform + pos: -41.5,46.5 + parent: 1 + - uid: 5117 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,41.5 + parent: 1 + - uid: 5124 + components: + - type: Transform + pos: -32.5,13.5 + parent: 1 + - uid: 5125 + components: + - type: Transform + pos: 19.5,32.5 + parent: 1 + - uid: 5126 + components: + - type: Transform + pos: 31.5,45.5 + parent: 1 + - uid: 5127 + components: + - type: Transform + pos: -34.5,13.5 + parent: 1 + - uid: 5129 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -47.5,41.5 + parent: 1 + - uid: 5130 + components: + - type: Transform + pos: -45.5,43.5 + parent: 1 + - uid: 5131 + components: + - type: Transform + pos: -45.5,41.5 + parent: 1 + - uid: 5132 + components: + - type: Transform + pos: -45.5,42.5 + parent: 1 + - uid: 5133 + components: + - type: Transform + pos: -45.5,40.5 + parent: 1 + - uid: 5134 + components: + - type: Transform + pos: -29.5,2.5 + parent: 1 + - uid: 5151 + components: + - type: Transform + pos: -2.5,-11.5 + parent: 1 + - uid: 5152 + components: + - type: Transform + pos: -1.5,-11.5 + parent: 1 + - uid: 5155 + components: + - type: Transform + pos: -35.5,49.5 + parent: 1 + - uid: 5157 + components: + - type: Transform + pos: 15.5,33.5 + parent: 1 + - uid: 5158 + components: + - type: Transform + pos: 18.5,2.5 + parent: 1 + - uid: 5162 + components: + - type: Transform + pos: -41.5,42.5 + parent: 1 + - uid: 5171 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,34.5 + parent: 1 + - uid: 5172 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,34.5 + parent: 1 + - uid: 5174 + components: + - type: Transform + pos: 14.5,-5.5 + parent: 1 + - uid: 5175 + components: + - type: Transform + pos: -36.5,48.5 + parent: 1 + - uid: 5176 + components: + - type: Transform + pos: -36.5,49.5 + parent: 1 + - uid: 5177 + components: + - type: Transform + pos: -35.5,47.5 + parent: 1 + - uid: 5180 + components: + - type: Transform + pos: -23.5,-0.5 + parent: 1 + - uid: 5188 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,39.5 + parent: 1 + - uid: 5189 + components: + - type: Transform + pos: -21.5,45.5 + parent: 1 + - uid: 5192 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,40.5 + parent: 1 + - uid: 5212 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,34.5 + parent: 1 + - uid: 5213 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,34.5 + parent: 1 + - uid: 5277 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,40.5 + parent: 1 + - uid: 5278 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,39.5 + parent: 1 + - uid: 5279 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,40.5 + parent: 1 + - uid: 5282 + components: + - type: Transform + pos: -39.5,43.5 + parent: 1 + - uid: 5283 + components: + - type: Transform + pos: -43.5,45.5 + parent: 1 + - uid: 5286 + components: + - type: Transform + pos: -25.5,-0.5 + parent: 1 + - uid: 5288 + components: + - type: Transform + pos: 27.5,34.5 + parent: 1 + - uid: 5289 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,33.5 + parent: 1 + - uid: 5292 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,35.5 + parent: 1 + - uid: 5293 + components: + - type: Transform + pos: -6.5,61.5 + parent: 1 + - uid: 5301 + components: + - type: Transform + pos: -7.5,67.5 + parent: 1 + - uid: 5302 + components: + - type: Transform + pos: -34.5,49.5 + parent: 1 + - uid: 5304 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,33.5 + parent: 1 + - uid: 5317 + components: + - type: Transform + pos: 18.5,-7.5 + parent: 1 + - uid: 5318 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,40.5 + parent: 1 + - uid: 5326 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,36.5 + parent: 1 + - uid: 5327 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,35.5 + parent: 1 + - uid: 5328 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,36.5 + parent: 1 + - uid: 5332 + components: + - type: Transform + pos: 29.5,60.5 + parent: 1 + - uid: 5334 + components: + - type: Transform + pos: -28.5,37.5 + parent: 1 + - uid: 5340 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,39.5 + parent: 1 + - uid: 5345 + components: + - type: Transform + pos: 25.5,56.5 + parent: 1 + - uid: 5347 + components: + - type: Transform + pos: -32.5,42.5 + parent: 1 + - uid: 5349 + components: + - type: Transform + pos: -6.5,50.5 + parent: 1 + - uid: 5350 + components: + - type: Transform + pos: -30.5,21.5 + parent: 1 + - uid: 5354 + components: + - type: Transform + pos: 28.5,60.5 + parent: 1 + - uid: 5355 + components: + - type: Transform + pos: 28.5,59.5 + parent: 1 + - uid: 5356 + components: + - type: Transform + pos: -34.5,6.5 + parent: 1 + - uid: 5358 + components: + - type: Transform + pos: 5.5,38.5 + parent: 1 + - uid: 5368 + components: + - type: Transform + pos: 18.5,57.5 + parent: 1 + - uid: 5377 + components: + - type: Transform + pos: -9.5,52.5 + parent: 1 + - uid: 5383 + components: + - type: Transform + pos: 23.5,25.5 + parent: 1 + - uid: 5386 + components: + - type: Transform + pos: 24.5,57.5 + parent: 1 + - uid: 5387 + components: + - type: Transform + pos: -31.5,42.5 + parent: 1 + - uid: 5388 + components: + - type: Transform + pos: -5.5,55.5 + parent: 1 + - uid: 5391 + components: + - type: Transform + pos: -43.5,43.5 + parent: 1 + - uid: 5394 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,37.5 + parent: 1 + - uid: 5396 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,38.5 + parent: 1 + - uid: 5398 + components: + - type: Transform + pos: 27.5,35.5 + parent: 1 + - uid: 5399 + components: + - type: Transform + pos: 28.5,33.5 + parent: 1 + - uid: 5400 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,-12.5 + parent: 1 + - uid: 5401 + components: + - type: Transform + pos: -7.5,36.5 + parent: 1 + - uid: 5402 + components: + - type: Transform + pos: -34.5,48.5 + parent: 1 + - uid: 5406 + components: + - type: Transform + pos: 25.5,25.5 + parent: 1 + - uid: 5407 + components: + - type: Transform + pos: -24.5,22.5 + parent: 1 + - uid: 5415 + components: + - type: Transform + pos: -17.5,22.5 + parent: 1 + - uid: 5418 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,-12.5 + parent: 1 + - uid: 5419 + components: + - type: Transform + pos: 6.5,37.5 + parent: 1 + - uid: 5425 + components: + - type: Transform + pos: 31.5,43.5 + parent: 1 + - uid: 5426 + components: + - type: Transform + pos: 19.5,-1.5 + parent: 1 + - uid: 5429 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,38.5 + parent: 1 + - uid: 5431 + components: + - type: Transform + pos: 30.5,53.5 + parent: 1 + - uid: 5435 + components: + - type: Transform + pos: -32.5,31.5 + parent: 1 + - uid: 5436 + components: + - type: Transform + pos: -18.5,-0.5 + parent: 1 + - uid: 5442 + components: + - type: Transform + pos: 28.5,23.5 + parent: 1 + - uid: 5446 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,36.5 + parent: 1 + - uid: 5447 + components: + - type: Transform + pos: -8.5,65.5 + parent: 1 + - uid: 5452 + components: + - type: Transform + pos: 28.5,9.5 + parent: 1 + - uid: 5453 + components: + - type: Transform + pos: -7.5,52.5 + parent: 1 + - uid: 5454 + components: + - type: Transform + pos: -33.5,13.5 + parent: 1 + - uid: 5455 + components: + - type: Transform + pos: -5.5,54.5 + parent: 1 + - uid: 5457 + components: + - type: Transform + pos: -7.5,60.5 + parent: 1 + - uid: 5458 + components: + - type: Transform + pos: -18.5,22.5 + parent: 1 + - uid: 5461 + components: + - type: Transform + pos: -3.5,63.5 + parent: 1 + - uid: 5462 + components: + - type: Transform + pos: 29.5,59.5 + parent: 1 + - uid: 5464 + components: + - type: Transform + pos: -23.5,44.5 + parent: 1 + - uid: 5478 + components: + - type: Transform + pos: 16.5,58.5 + parent: 1 + - uid: 5479 + components: + - type: Transform + pos: -34.5,7.5 + parent: 1 + - uid: 5483 + components: + - type: Transform + pos: -38.5,40.5 + parent: 1 + - uid: 5485 + components: + - type: Transform + pos: -38.5,41.5 + parent: 1 + - uid: 5486 + components: + - type: Transform + pos: -43.5,47.5 + parent: 1 + - uid: 5489 + components: + - type: Transform + pos: 30.5,54.5 + parent: 1 + - uid: 5490 + components: + - type: Transform + pos: -19.5,44.5 + parent: 1 + - uid: 5491 + components: + - type: Transform + pos: 28.5,8.5 + parent: 1 + - uid: 5495 + components: + - type: Transform + pos: 28.5,22.5 + parent: 1 + - uid: 5504 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,27.5 + parent: 1 + - uid: 5508 + components: + - type: Transform + pos: 15.5,31.5 + parent: 1 + - uid: 5509 + components: + - type: Transform + pos: -8.5,36.5 + parent: 1 + - uid: 5513 + components: + - type: Transform + pos: 12.5,39.5 + parent: 1 + - uid: 5514 + components: + - type: Transform + pos: -7.5,65.5 + parent: 1 + - uid: 5520 + components: + - type: Transform + pos: -1.5,-9.5 + parent: 1 + - uid: 5523 + components: + - type: Transform + pos: 5.5,54.5 + parent: 1 + - uid: 5525 + components: + - type: Transform + pos: 5.5,58.5 + parent: 1 + - uid: 5530 + components: + - type: Transform + pos: -3.5,-9.5 + parent: 1 + - uid: 5541 + components: + - type: Transform + pos: -19.5,0.5 + parent: 1 + - uid: 5542 + components: + - type: Transform + pos: -3.5,65.5 + parent: 1 + - uid: 5547 + components: + - type: Transform + pos: -9.5,36.5 + parent: 1 + - uid: 5549 + components: + - type: Transform + pos: -27.5,-0.5 + parent: 1 + - uid: 5554 + components: + - type: Transform + pos: -6.5,62.5 + parent: 1 + - uid: 5555 + components: + - type: Transform + pos: 5.5,64.5 + parent: 1 + - uid: 5556 + components: + - type: Transform + pos: 15.5,67.5 + parent: 1 + - uid: 5557 + components: + - type: Transform + pos: 15.5,24.5 + parent: 1 + - uid: 5558 + components: + - type: Transform + pos: -43.5,46.5 + parent: 1 + - uid: 5559 + components: + - type: Transform + pos: 19.5,-10.5 + parent: 1 + - uid: 5565 + components: + - type: Transform + pos: -18.5,5.5 + parent: 1 + - uid: 5573 + components: + - type: Transform + pos: 7.5,-2.5 + parent: 1 + - uid: 5574 + components: + - type: Transform + pos: 19.5,33.5 + parent: 1 + - uid: 5577 + components: + - type: Transform + pos: 26.5,8.5 + parent: 1 + - uid: 5582 + components: + - type: Transform + pos: -39.5,46.5 + parent: 1 + - uid: 5583 + components: + - type: Transform + pos: -39.5,45.5 + parent: 1 + - uid: 5584 + components: + - type: Transform + pos: 7.5,59.5 + parent: 1 + - uid: 5590 + components: + - type: Transform + pos: 27.5,28.5 + parent: 1 + - uid: 5592 + components: + - type: Transform + pos: 8.5,68.5 + parent: 1 + - uid: 5593 + components: + - type: Transform + pos: 23.5,39.5 + parent: 1 + - uid: 5594 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,33.5 + parent: 1 + - uid: 5603 + components: + - type: Transform + pos: -2.5,66.5 + parent: 1 + - uid: 5606 + components: + - type: Transform + pos: -3.5,-10.5 + parent: 1 + - uid: 5614 + components: + - type: Transform + pos: -1.5,-10.5 + parent: 1 + - uid: 5615 + components: + - type: Transform + pos: -2.5,-10.5 + parent: 1 + - uid: 5616 + components: + - type: Transform + pos: -2.5,-9.5 + parent: 1 + - uid: 5617 + components: + - type: Transform + pos: 28.5,34.5 + parent: 1 + - uid: 5618 + components: + - type: Transform + pos: -30.5,20.5 + parent: 1 + - uid: 5619 + components: + - type: Transform + pos: -4.5,55.5 + parent: 1 + - uid: 5620 + components: + - type: Transform + pos: -32.5,30.5 + parent: 1 + - uid: 5621 + components: + - type: Transform + pos: 27.5,3.5 + parent: 1 + - uid: 5624 + components: + - type: Transform + pos: -28.5,22.5 + parent: 1 + - uid: 5625 + components: + - type: Transform + pos: 5.5,52.5 + parent: 1 + - uid: 5626 + components: + - type: Transform + pos: 5.5,49.5 + parent: 1 + - uid: 5627 + components: + - type: Transform + pos: -28.5,1.5 + parent: 1 + - uid: 5630 + components: + - type: Transform + pos: -19.5,-0.5 + parent: 1 + - uid: 5631 + components: + - type: Transform + pos: 15.5,58.5 + parent: 1 + - uid: 5633 + components: + - type: Transform + pos: 23.5,40.5 + parent: 1 + - uid: 5634 + components: + - type: Transform + pos: -5.5,56.5 + parent: 1 + - uid: 5635 + components: + - type: Transform + pos: 7.5,-1.5 + parent: 1 + - uid: 5638 + components: + - type: Transform + pos: -29.5,-0.5 + parent: 1 + - uid: 5639 + components: + - type: Transform + pos: -4.5,56.5 + parent: 1 + - uid: 5641 + components: + - type: Transform + pos: -23.5,22.5 + parent: 1 + - uid: 5644 + components: + - type: Transform + pos: 21.5,-0.5 + parent: 1 + - uid: 5647 + components: + - type: Transform + pos: -30.5,4.5 + parent: 1 + - uid: 5655 + components: + - type: Transform + pos: 23.5,33.5 + parent: 1 + - uid: 5670 + components: + - type: Transform + pos: 25.5,34.5 + parent: 1 + - uid: 5673 + components: + - type: Transform + pos: 15.5,68.5 + parent: 1 + - uid: 5674 + components: + - type: Transform + pos: 25.5,55.5 + parent: 1 + - uid: 5675 + components: + - type: Transform + pos: 7.5,39.5 + parent: 1 + - uid: 5676 + components: + - type: Transform + pos: 13.5,39.5 + parent: 1 + - uid: 5677 + components: + - type: Transform + pos: -7.5,66.5 + parent: 1 + - uid: 5683 + components: + - type: Transform + pos: 22.5,39.5 + parent: 1 + - uid: 5686 + components: + - type: Transform + pos: 8.5,-1.5 + parent: 1 + - uid: 5687 + components: + - type: Transform + pos: 16.5,-7.5 + parent: 1 + - uid: 5688 + components: + - type: Transform + pos: 18.5,4.5 + parent: 1 + - uid: 5689 + components: + - type: Transform + pos: 15.5,59.5 + parent: 1 + - uid: 5691 + components: + - type: Transform + pos: 15.5,30.5 + parent: 1 + - uid: 5707 + components: + - type: Transform + pos: 5.5,65.5 + parent: 1 + - uid: 5710 + components: + - type: Transform + pos: -26.5,0.5 + parent: 1 + - uid: 5716 + components: + - type: Transform + pos: -29.5,36.5 + parent: 1 + - uid: 5717 + components: + - type: Transform + pos: -29.5,37.5 + parent: 1 + - uid: 5731 + components: + - type: Transform + pos: 17.5,4.5 + parent: 1 + - uid: 5732 + components: + - type: Transform + pos: 6.5,68.5 + parent: 1 + - uid: 5735 + components: + - type: Transform + pos: 31.5,41.5 + parent: 1 + - uid: 5737 + components: + - type: Transform + pos: -18.5,23.5 + parent: 1 + - uid: 5739 + components: + - type: Transform + pos: 13.5,69.5 + parent: 1 + - uid: 5740 + components: + - type: Transform + pos: 24.5,40.5 + parent: 1 + - uid: 5743 + components: + - type: Transform + pos: 28.5,28.5 + parent: 1 + - uid: 5746 + components: + - type: Transform + pos: 30.5,40.5 + parent: 1 + - uid: 5747 + components: + - type: Transform + pos: 4.5,66.5 + parent: 1 + - uid: 5749 + components: + - type: Transform + pos: 4.5,65.5 + parent: 1 + - uid: 5754 + components: + - type: Transform + pos: 7.5,67.5 + parent: 1 + - uid: 5756 + components: + - type: Transform + pos: 14.5,23.5 + parent: 1 + - uid: 5757 + components: + - type: Transform + pos: 13.5,23.5 + parent: 1 + - uid: 5760 + components: + - type: Transform + pos: -28.5,36.5 + parent: 1 + - uid: 5770 + components: + - type: Transform + pos: 27.5,25.5 + parent: 1 + - uid: 5771 + components: + - type: Transform + pos: -34.5,12.5 + parent: 1 + - uid: 5773 + components: + - type: Transform + pos: 17.5,-7.5 + parent: 1 + - uid: 5778 + components: + - type: Transform + pos: 17.5,-8.5 + parent: 1 + - uid: 5779 + components: + - type: Transform + pos: 5.5,59.5 + parent: 1 + - uid: 5785 + components: + - type: Transform + pos: -8.5,50.5 + parent: 1 + - uid: 5787 + components: + - type: Transform + pos: 31.5,40.5 + parent: 1 + - uid: 5788 + components: + - type: Transform + pos: 15.5,25.5 + parent: 1 + - uid: 5789 + components: + - type: Transform + pos: 28.5,25.5 + parent: 1 + - uid: 5792 + components: + - type: Transform + pos: 18.5,3.5 + parent: 1 + - uid: 5793 + components: + - type: Transform + pos: 18.5,6.5 + parent: 1 + - uid: 5795 + components: + - type: Transform + pos: 23.5,19.5 + parent: 1 + - uid: 5797 + components: + - type: Transform + pos: 16.5,1.5 + parent: 1 + - uid: 5798 + components: + - type: Transform + pos: 12.5,-5.5 + parent: 1 + - uid: 5799 + components: + - type: Transform + pos: 23.5,35.5 + parent: 1 + - uid: 5800 + components: + - type: Transform + pos: -25.5,22.5 + parent: 1 + - uid: 5802 + components: + - type: Transform + pos: 23.5,34.5 + parent: 1 + - uid: 5806 + components: + - type: Transform + pos: 17.5,2.5 + parent: 1 + - uid: 5809 + components: + - type: Transform + pos: 21.5,57.5 + parent: 1 + - uid: 5810 + components: + - type: Transform + pos: -3.5,66.5 + parent: 1 + - uid: 5811 + components: + - type: Transform + pos: -19.5,37.5 + parent: 1 + - uid: 5816 + components: + - type: Transform + pos: -28.5,0.5 + parent: 1 + - uid: 5819 + components: + - type: Transform + pos: 14.5,69.5 + parent: 1 + - uid: 5822 + components: + - type: Transform + pos: -27.5,0.5 + parent: 1 + - uid: 5827 + components: + - type: Transform + pos: -18.5,4.5 + parent: 1 + - uid: 5840 + components: + - type: Transform + pos: 26.5,35.5 + parent: 1 + - uid: 5841 + components: + - type: Transform + pos: 26.5,34.5 + parent: 1 + - uid: 5842 + components: + - type: Transform + pos: 25.5,33.5 + parent: 1 + - uid: 5843 + components: + - type: Transform + pos: 15.5,65.5 + parent: 1 + - uid: 5844 + components: + - type: Transform + pos: 15.5,63.5 + parent: 1 + - uid: 5848 + components: + - type: Transform + pos: 28.5,20.5 + parent: 1 + - uid: 5851 + components: + - type: Transform + pos: -28.5,38.5 + parent: 1 + - uid: 5853 + components: + - type: Transform + pos: -20.5,-0.5 + parent: 1 + - uid: 5857 + components: + - type: Transform + pos: 15.5,23.5 + parent: 1 + - uid: 5858 + components: + - type: Transform + pos: 20.5,-3.5 + parent: 1 + - uid: 5859 + components: + - type: Transform + pos: -3.5,67.5 + parent: 1 + - uid: 5860 + components: + - type: Transform + pos: -20.5,44.5 + parent: 1 + - uid: 5861 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,34.5 + parent: 1 + - uid: 5866 + components: + - type: Transform + pos: -27.5,37.5 + parent: 1 + - uid: 5867 + components: + - type: Transform + pos: -30.5,22.5 + parent: 1 + - uid: 5868 + components: + - type: Transform + pos: 5.5,48.5 + parent: 1 + - uid: 5870 + components: + - type: Transform + pos: -4.5,54.5 + parent: 1 + - uid: 5872 + components: + - type: Transform + pos: -18.5,1.5 + parent: 1 + - uid: 5874 + components: + - type: Transform + pos: 21.5,33.5 + parent: 1 + - uid: 5877 + components: + - type: Transform + pos: -21.5,22.5 + parent: 1 + - uid: 5878 + components: + - type: Transform + pos: -31.5,41.5 + parent: 1 + - uid: 5881 + components: + - type: Transform + pos: 27.5,5.5 + parent: 1 + - uid: 5882 + components: + - type: Transform + pos: 14.5,-4.5 + parent: 1 + - uid: 5886 + components: + - type: Transform + pos: 11.5,35.5 + parent: 1 + - uid: 5887 + components: + - type: Transform + pos: 20.5,32.5 + parent: 1 + - uid: 5888 + components: + - type: Transform + pos: 23.5,32.5 + parent: 1 + - uid: 5892 + components: + - type: Transform + pos: -32.5,40.5 + parent: 1 + - uid: 5893 + components: + - type: Transform + pos: 24.5,20.5 + parent: 1 + - uid: 5894 + components: + - type: Transform + pos: 29.5,8.5 + parent: 1 + - uid: 5895 + components: + - type: Transform + pos: 11.5,36.5 + parent: 1 + - uid: 5896 + components: + - type: Transform + pos: -5.5,52.5 + parent: 1 + - uid: 5897 + components: + - type: Transform + pos: -3.5,62.5 + parent: 1 + - uid: 5907 + components: + - type: Transform + pos: 16.5,57.5 + parent: 1 + - uid: 5908 + components: + - type: Transform + pos: 25.5,35.5 + parent: 1 + - uid: 5909 + components: + - type: Transform + pos: 5.5,53.5 + parent: 1 + - uid: 5912 + components: + - type: Transform + pos: 23.5,20.5 + parent: 1 + - uid: 5913 + components: + - type: Transform + pos: 5.5,60.5 + parent: 1 + - uid: 5914 + components: + - type: Transform + pos: 15.5,39.5 + parent: 1 + - uid: 5915 + components: + - type: Transform + pos: 16.5,39.5 + parent: 1 + - uid: 5931 + components: + - type: Transform + pos: 28.5,15.5 + parent: 1 + - uid: 5932 + components: + - type: Transform + pos: 28.5,14.5 + parent: 1 + - uid: 5933 + components: + - type: Transform + pos: 29.5,14.5 + parent: 1 + - uid: 5935 + components: + - type: Transform + pos: 5.5,62.5 + parent: 1 + - uid: 5936 + components: + - type: Transform + pos: 22.5,8.5 + parent: 1 + - uid: 5937 + components: + - type: Transform + pos: 22.5,57.5 + parent: 1 + - uid: 5939 + components: + - type: Transform + pos: 20.5,-10.5 + parent: 1 + - uid: 5940 + components: + - type: Transform + pos: -18.5,45.5 + parent: 1 + - uid: 5941 + components: + - type: Transform + pos: -30.5,19.5 + parent: 1 + - uid: 5942 + components: + - type: Transform + pos: -30.5,17.5 + parent: 1 + - uid: 5943 + components: + - type: Transform + pos: 7.5,68.5 + parent: 1 + - uid: 5944 + components: + - type: Transform + pos: -28.5,-0.5 + parent: 1 + - uid: 5945 + components: + - type: Transform + pos: 12.5,35.5 + parent: 1 + - uid: 5947 + components: + - type: Transform + pos: 17.5,5.5 + parent: 1 + - uid: 5948 + components: + - type: Transform + pos: -6.5,36.5 + parent: 1 + - uid: 5949 + components: + - type: Transform + pos: -9.5,50.5 + parent: 1 + - uid: 5950 + components: + - type: Transform + pos: -29.5,0.5 + parent: 1 + - uid: 5951 + components: + - type: Transform + pos: 27.5,20.5 + parent: 1 + - uid: 5952 + components: + - type: Transform + pos: -6.5,60.5 + parent: 1 + - uid: 5953 + components: + - type: Transform + pos: -17.5,37.5 + parent: 1 + - uid: 6052 + components: + - type: Transform + pos: 38.5,46.5 + parent: 1 + - uid: 6060 + components: + - type: Transform + pos: -10.5,66.5 + parent: 1 + - uid: 6158 + components: + - type: Transform + pos: 34.5,49.5 + parent: 1 + - uid: 6168 + components: + - type: Transform + pos: -11.5,-16.5 + parent: 1 + - uid: 6169 + components: + - type: Transform + pos: -11.5,-17.5 + parent: 1 + - uid: 6171 + components: + - type: Transform + pos: -11.5,-15.5 + parent: 1 + - uid: 6174 + components: + - type: Transform + pos: -11.5,-14.5 + parent: 1 + - uid: 6221 + components: + - type: Transform + pos: -30.5,69.5 + parent: 1 + - uid: 6296 + components: + - type: Transform + pos: 35.5,31.5 + parent: 1 + - uid: 6301 + components: + - type: Transform + pos: -30.5,70.5 + parent: 1 + - uid: 6467 + components: + - type: Transform + pos: -2.5,41.5 + parent: 1 + - uid: 7997 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,55.5 + parent: 1 + - uid: 7998 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,55.5 + parent: 1 + - uid: 8156 + components: + - type: Transform + pos: -45.5,10.5 + parent: 1 + - uid: 9789 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,38.5 + parent: 1 + - uid: 9834 + components: + - type: Transform + pos: 32.5,60.5 + parent: 1 + - uid: 9870 + components: + - type: Transform + pos: 14.5,21.5 + parent: 1 + - uid: 9875 + components: + - type: Transform + pos: 13.5,21.5 + parent: 1 + - uid: 9931 + components: + - type: Transform + pos: 26.5,-8.5 + parent: 1 + - uid: 10075 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,62.5 + parent: 1 + - uid: 10355 + components: + - type: Transform + pos: 32.5,56.5 + parent: 1 + - uid: 12305 + components: + - type: Transform + pos: 10.5,-26.5 + parent: 1 + - uid: 12307 + components: + - type: Transform + pos: -4.5,70.5 + parent: 1 + - uid: 12312 + components: + - type: Transform + pos: -37.5,-14.5 + parent: 1 + - uid: 12313 + components: + - type: Transform + pos: -36.5,-14.5 + parent: 1 + - uid: 12315 + components: + - type: Transform + pos: 34.5,27.5 + parent: 1 + - uid: 12316 + components: + - type: Transform + pos: 49.5,20.5 + parent: 1 + - uid: 12317 + components: + - type: Transform + pos: -38.5,38.5 + parent: 1 + - uid: 12318 + components: + - type: Transform + pos: -38.5,39.5 + parent: 1 + - uid: 12320 + components: + - type: Transform + pos: 44.5,20.5 + parent: 1 + - uid: 12328 + components: + - type: Transform + pos: 33.5,1.5 + parent: 1 + - uid: 12329 + components: + - type: Transform + pos: 34.5,1.5 + parent: 1 + - uid: 12331 + components: + - type: Transform + pos: 0.5,70.5 + parent: 1 + - uid: 12332 + components: + - type: Transform + pos: 18.5,69.5 + parent: 1 + - uid: 12334 + components: + - type: Transform + pos: -48.5,-0.5 + parent: 1 + - uid: 12335 + components: + - type: Transform + pos: 10.5,-28.5 + parent: 1 + - uid: 12340 + components: + - type: Transform + pos: -37.5,37.5 + parent: 1 + - uid: 12343 + components: + - type: Transform + pos: 47.5,20.5 + parent: 1 + - uid: 12344 + components: + - type: Transform + pos: 46.5,20.5 + parent: 1 + - uid: 12348 + components: + - type: Transform + pos: 48.5,20.5 + parent: 1 + - uid: 12349 + components: + - type: Transform + pos: 45.5,20.5 + parent: 1 + - uid: 12353 + components: + - type: Transform + pos: 38.5,1.5 + parent: 1 + - uid: 12356 + components: + - type: Transform + pos: 35.5,26.5 + parent: 1 + - uid: 12357 + components: + - type: Transform + pos: 35.5,25.5 + parent: 1 + - uid: 12358 + components: + - type: Transform + pos: 35.5,24.5 + parent: 1 + - uid: 12360 + components: + - type: Transform + pos: 35.5,21.5 + parent: 1 + - uid: 12361 + components: + - type: Transform + pos: 35.5,22.5 + parent: 1 + - uid: 12362 + components: + - type: Transform + pos: 35.5,20.5 + parent: 1 + - uid: 12363 + components: + - type: Transform + pos: 38.5,44.5 + parent: 1 + - uid: 12365 + components: + - type: Transform + pos: -48.5,1.5 + parent: 1 + - uid: 12367 + components: + - type: Transform + pos: -45.5,9.5 + parent: 1 + - uid: 12368 + components: + - type: Transform + pos: -45.5,8.5 + parent: 1 + - uid: 12371 + components: + - type: Transform + pos: -45.5,12.5 + parent: 1 + - uid: 12372 + components: + - type: Transform + pos: 38.5,47.5 + parent: 1 + - uid: 12384 + components: + - type: Transform + pos: 50.5,20.5 + parent: 1 + - uid: 12386 + components: + - type: Transform + pos: -45.5,11.5 + parent: 1 + - uid: 12387 + components: + - type: Transform + pos: -34.5,-16.5 + parent: 1 + - uid: 12388 + components: + - type: Transform + pos: -34.5,-15.5 + parent: 1 + - uid: 12392 + components: + - type: Transform + pos: 32.5,59.5 + parent: 1 + - uid: 12397 + components: + - type: Transform + pos: 16.5,73.5 + parent: 1 + - uid: 12403 + components: + - type: Transform + pos: 18.5,72.5 + parent: 1 + - uid: 12404 + components: + - type: Transform + pos: -34.5,-17.5 + parent: 1 + - uid: 12407 + components: + - type: Transform + pos: 32.5,-8.5 + parent: 1 + - uid: 12411 + components: + - type: Transform + pos: -40.5,-14.5 + parent: 1 + - uid: 12412 + components: + - type: Transform + pos: -41.5,-14.5 + parent: 1 + - uid: 12413 + components: + - type: Transform + pos: -39.5,-14.5 + parent: 1 + - uid: 12414 + components: + - type: Transform + pos: 53.5,7.5 + parent: 1 + - uid: 12415 + components: + - type: Transform + pos: 53.5,8.5 + parent: 1 + - uid: 12416 + components: + - type: Transform + pos: 53.5,10.5 + parent: 1 + - uid: 12417 + components: + - type: Transform + pos: 53.5,9.5 + parent: 1 + - uid: 12418 + components: + - type: Transform + pos: 53.5,11.5 + parent: 1 + - uid: 12419 + components: + - type: Transform + pos: 53.5,12.5 + parent: 1 + - uid: 12420 + components: + - type: Transform + pos: 53.5,13.5 + parent: 1 + - uid: 12421 + components: + - type: Transform + pos: 53.5,14.5 + parent: 1 + - uid: 12422 + components: + - type: Transform + pos: 53.5,15.5 + parent: 1 + - uid: 12423 + components: + - type: Transform + pos: 53.5,16.5 + parent: 1 + - uid: 12424 + components: + - type: Transform + pos: 53.5,17.5 + parent: 1 + - uid: 12425 + components: + - type: Transform + pos: 53.5,18.5 + parent: 1 + - uid: 12426 + components: + - type: Transform + pos: 53.5,19.5 + parent: 1 + - uid: 12427 + components: + - type: Transform + pos: 53.5,20.5 + parent: 1 + - uid: 12428 + components: + - type: Transform + pos: 52.5,20.5 + parent: 1 + - uid: 12433 + components: + - type: Transform + pos: 33.5,0.5 + parent: 1 + - uid: 12438 + components: + - type: Transform + pos: 34.5,47.5 + parent: 1 + - uid: 12444 + components: + - type: Transform + pos: -37.5,36.5 + parent: 1 + - uid: 12462 + components: + - type: Transform + pos: -16.5,69.5 + parent: 1 + - uid: 12463 + components: + - type: Transform + pos: -16.5,70.5 + parent: 1 + - uid: 12464 + components: + - type: Transform + pos: -15.5,70.5 + parent: 1 + - uid: 12465 + components: + - type: Transform + pos: -14.5,70.5 + parent: 1 + - uid: 12466 + components: + - type: Transform + pos: -13.5,70.5 + parent: 1 + - uid: 12467 + components: + - type: Transform + pos: -12.5,70.5 + parent: 1 + - uid: 12468 + components: + - type: Transform + pos: -11.5,70.5 + parent: 1 + - uid: 12470 + components: + - type: Transform + pos: 18.5,69.5 + parent: 1 + - uid: 12475 + components: + - type: Transform + pos: -37.5,18.5 + parent: 1 + - uid: 12476 + components: + - type: Transform + pos: -37.5,17.5 + parent: 1 + - uid: 12480 + components: + - type: Transform + pos: 30.5,-8.5 + parent: 1 + - uid: 12481 + components: + - type: Transform + pos: 30.5,64.5 + parent: 1 + - uid: 12483 + components: + - type: Transform + pos: 29.5,65.5 + parent: 1 + - uid: 12487 + components: + - type: Transform + pos: 10.5,-25.5 + parent: 1 + - uid: 12492 + components: + - type: Transform + pos: 53.5,6.5 + parent: 1 + - uid: 12493 + components: + - type: Transform + pos: 53.5,5.5 + parent: 1 + - uid: 12494 + components: + - type: Transform + pos: 53.5,4.5 + parent: 1 + - uid: 12495 + components: + - type: Transform + pos: 37.5,47.5 + parent: 1 + - uid: 12497 + components: + - type: Transform + pos: 29.5,66.5 + parent: 1 + - uid: 12498 + components: + - type: Transform + pos: 29.5,64.5 + parent: 1 + - uid: 12499 + components: + - type: Transform + pos: 31.5,56.5 + parent: 1 + - uid: 12500 + components: + - type: Transform + pos: 33.5,54.5 + parent: 1 + - uid: 12501 + components: + - type: Transform + pos: 38.5,43.5 + parent: 1 + - uid: 12502 + components: + - type: Transform + pos: 33.5,-6.5 + parent: 1 + - uid: 12504 + components: + - type: Transform + pos: 33.5,-8.5 + parent: 1 + - uid: 12505 + components: + - type: Transform + pos: 33.5,-7.5 + parent: 1 + - uid: 12506 + components: + - type: Transform + pos: -16.5,68.5 + parent: 1 + - uid: 12507 + components: + - type: Transform + pos: -34.5,-22.5 + parent: 1 + - uid: 12508 + components: + - type: Transform + pos: 10.5,-23.5 + parent: 1 + - uid: 12518 + components: + - type: Transform + pos: -35.5,-14.5 + parent: 1 + - uid: 12519 + components: + - type: Transform + pos: -34.5,-14.5 + parent: 1 + - uid: 12520 + components: + - type: Transform + pos: -34.5,-23.5 + parent: 1 + - uid: 12523 + components: + - type: Transform + pos: 51.5,20.5 + parent: 1 + - uid: 12530 + components: + - type: Transform + pos: -43.5,-14.5 + parent: 1 + - uid: 12532 + components: + - type: Transform + pos: -42.5,-14.5 + parent: 1 + - uid: 12537 + components: + - type: Transform + pos: 15.5,73.5 + parent: 1 + - uid: 12540 + components: + - type: Transform + pos: 33.5,56.5 + parent: 1 + - uid: 12541 + components: + - type: Transform + pos: 33.5,55.5 + parent: 1 + - uid: 12546 + components: + - type: Transform + pos: 33.5,52.5 + parent: 1 + - uid: 12547 + components: + - type: Transform + pos: 37.5,1.5 + parent: 1 + - uid: 12548 + components: + - type: Transform + pos: 36.5,1.5 + parent: 1 + - uid: 12549 + components: + - type: Transform + pos: 35.5,1.5 + parent: 1 + - uid: 12550 + components: + - type: Transform + pos: -10.5,70.5 + parent: 1 + - uid: 12552 + components: + - type: Transform + pos: -9.5,70.5 + parent: 1 + - uid: 12553 + components: + - type: Transform + pos: 24.5,-15.5 + parent: 1 + - uid: 12555 + components: + - type: Transform + pos: 18.5,73.5 + parent: 1 + - uid: 12557 + components: + - type: Transform + pos: -36.5,38.5 + parent: 1 + - uid: 12558 + components: + - type: Transform + pos: -8.5,70.5 + parent: 1 + - uid: 12559 + components: + - type: Transform + pos: -36.5,36.5 + parent: 1 + - uid: 12566 + components: + - type: Transform + pos: -48.5,0.5 + parent: 1 + - uid: 12576 + components: + - type: Transform + pos: 35.5,47.5 + parent: 1 + - uid: 12584 + components: + - type: Transform + pos: 17.5,73.5 + parent: 1 + - uid: 12588 + components: + - type: Transform + pos: 26.5,-13.5 + parent: 1 + - uid: 12593 + components: + - type: Transform + pos: -34.5,-21.5 + parent: 1 + - uid: 12594 + components: + - type: Transform + pos: 34.5,48.5 + parent: 1 + - uid: 12596 + components: + - type: Transform + pos: 10.5,-27.5 + parent: 1 + - uid: 12599 + components: + - type: Transform + pos: 10.5,-29.5 + parent: 1 + - uid: 12603 + components: + - type: Transform + pos: -37.5,38.5 + parent: 1 + - uid: 12608 + components: + - type: Transform + pos: 32.5,58.5 + parent: 1 + - uid: 12609 + components: + - type: Transform + pos: -45.5,13.5 + parent: 1 + - uid: 12610 + components: + - type: Transform + pos: -3.5,70.5 + parent: 1 + - uid: 12611 + components: + - type: Transform + pos: -38.5,-14.5 + parent: 1 + - uid: 12612 + components: + - type: Transform + pos: 26.5,-14.5 + parent: 1 + - uid: 12616 + components: + - type: Transform + pos: 13.5,-15.5 + parent: 1 + - uid: 12617 + components: + - type: Transform + pos: -45.5,14.5 + parent: 1 + - uid: 12618 + components: + - type: Transform + pos: -5.5,70.5 + parent: 1 + - uid: 12620 + components: + - type: Transform + pos: -6.5,70.5 + parent: 1 + - uid: 12632 + components: + - type: Transform + pos: -45.5,3.5 + parent: 1 + - uid: 12633 + components: + - type: Transform + pos: -45.5,2.5 + parent: 1 + - uid: 12634 + components: + - type: Transform + pos: -46.5,2.5 + parent: 1 + - uid: 12635 + components: + - type: Transform + pos: -47.5,2.5 + parent: 1 + - uid: 12636 + components: + - type: Transform + pos: 39.5,1.5 + parent: 1 + - uid: 12637 + components: + - type: Transform + pos: -48.5,2.5 + parent: 1 + - uid: 12647 + components: + - type: Transform + pos: 33.5,-5.5 + parent: 1 + - uid: 12648 + components: + - type: Transform + pos: 25.5,-15.5 + parent: 1 + - uid: 12650 + components: + - type: Transform + pos: 26.5,-15.5 + parent: 1 + - uid: 12652 + components: + - type: Transform + pos: 42.5,20.5 + parent: 1 + - uid: 12653 + components: + - type: Transform + pos: 40.5,20.5 + parent: 1 + - uid: 12654 + components: + - type: Transform + pos: 41.5,20.5 + parent: 1 + - uid: 12655 + components: + - type: Transform + pos: 38.5,20.5 + parent: 1 + - uid: 12656 + components: + - type: Transform + pos: 43.5,20.5 + parent: 1 + - uid: 12657 + components: + - type: Transform + pos: 36.5,47.5 + parent: 1 + - uid: 12666 + components: + - type: Transform + pos: 10.5,-21.5 + parent: 1 + - uid: 12667 + components: + - type: Transform + pos: 10.5,-22.5 + parent: 1 + - uid: 12669 + components: + - type: Transform + pos: -0.5,70.5 + parent: 1 + - uid: 12670 + components: + - type: Transform + pos: -1.5,70.5 + parent: 1 + - uid: 12671 + components: + - type: Transform + pos: -2.5,70.5 + parent: 1 + - uid: 12673 + components: + - type: Transform + pos: 34.5,29.5 + parent: 1 + - uid: 12674 + components: + - type: Transform + pos: 35.5,28.5 + parent: 1 + - uid: 12675 + components: + - type: Transform + pos: 35.5,29.5 + parent: 1 + - uid: 12676 + components: + - type: Transform + pos: 35.5,27.5 + parent: 1 + - uid: 12677 + components: + - type: Transform + pos: 10.5,-16.5 + parent: 1 + - uid: 12678 + components: + - type: Transform + pos: 10.5,-17.5 + parent: 1 + - uid: 12679 + components: + - type: Transform + pos: 10.5,-18.5 + parent: 1 + - uid: 12680 + components: + - type: Transform + pos: 10.5,-19.5 + parent: 1 + - uid: 12681 + components: + - type: Transform + pos: 10.5,-20.5 + parent: 1 + - uid: 12682 + components: + - type: Transform + pos: 19.5,69.5 + parent: 1 + - uid: 12684 + components: + - type: Transform + pos: 42.5,1.5 + parent: 1 + - uid: 12685 + components: + - type: Transform + pos: 41.5,1.5 + parent: 1 + - uid: 12686 + components: + - type: Transform + pos: 40.5,1.5 + parent: 1 + - uid: 12687 + components: + - type: Transform + pos: -45.5,4.5 + parent: 1 + - uid: 12688 + components: + - type: Transform + pos: -45.5,6.5 + parent: 1 + - uid: 12690 + components: + - type: Transform + pos: -45.5,5.5 + parent: 1 + - uid: 12691 + components: + - type: Transform + pos: -45.5,7.5 + parent: 1 + - uid: 12692 + components: + - type: Transform + pos: 44.5,1.5 + parent: 1 + - uid: 12694 + components: + - type: Transform + pos: 45.5,1.5 + parent: 1 + - uid: 12695 + components: + - type: Transform + pos: 35.5,32.5 + parent: 1 + - uid: 12696 + components: + - type: Transform + pos: 46.5,1.5 + parent: 1 + - uid: 12697 + components: + - type: Transform + pos: -41.5,17.5 + parent: 1 + - uid: 12698 + components: + - type: Transform + pos: -42.5,17.5 + parent: 1 + - uid: 12699 + components: + - type: Transform + pos: 47.5,1.5 + parent: 1 + - uid: 12700 + components: + - type: Transform + pos: -44.5,17.5 + parent: 1 + - uid: 12702 + components: + - type: Transform + pos: -43.5,17.5 + parent: 1 + - uid: 12703 + components: + - type: Transform + pos: -45.5,17.5 + parent: 1 + - uid: 12704 + components: + - type: Transform + pos: 48.5,1.5 + parent: 1 + - uid: 12705 + components: + - type: Transform + pos: -45.5,16.5 + parent: 1 + - uid: 12706 + components: + - type: Transform + pos: -45.5,15.5 + parent: 1 + - uid: 12707 + components: + - type: Transform + pos: 51.5,1.5 + parent: 1 + - uid: 12709 + components: + - type: Transform + pos: -38.5,17.5 + parent: 1 + - uid: 12710 + components: + - type: Transform + pos: -40.5,17.5 + parent: 1 + - uid: 12711 + components: + - type: Transform + pos: 50.5,1.5 + parent: 1 + - uid: 12712 + components: + - type: Transform + pos: -34.5,-20.5 + parent: 1 + - uid: 12713 + components: + - type: Transform + pos: 52.5,1.5 + parent: 1 + - uid: 12714 + components: + - type: Transform + pos: -34.5,-19.5 + parent: 1 + - uid: 12715 + components: + - type: Transform + pos: -34.5,-18.5 + parent: 1 + - uid: 12716 + components: + - type: Transform + pos: 49.5,1.5 + parent: 1 + - uid: 12717 + components: + - type: Transform + pos: 53.5,2.5 + parent: 1 + - uid: 12718 + components: + - type: Transform + pos: 53.5,1.5 + parent: 1 + - uid: 12719 + components: + - type: Transform + pos: 53.5,3.5 + parent: 1 + - uid: 12720 + components: + - type: Transform + pos: 36.5,20.5 + parent: 1 + - uid: 12721 + components: + - type: Transform + pos: 37.5,20.5 + parent: 1 + - uid: 12722 + components: + - type: Transform + pos: 39.5,20.5 + parent: 1 + - uid: 12724 + components: + - type: Transform + pos: 10.5,73.5 + parent: 1 + - uid: 12725 + components: + - type: Transform + pos: 11.5,73.5 + parent: 1 + - uid: 12726 + components: + - type: Transform + pos: 12.5,73.5 + parent: 1 + - uid: 12727 + components: + - type: Transform + pos: 13.5,73.5 + parent: 1 + - uid: 12728 + components: + - type: Transform + pos: 14.5,73.5 + parent: 1 + - uid: 12730 + components: + - type: Transform + pos: 23.5,-15.5 + parent: 1 + - uid: 12731 + components: + - type: Transform + pos: 20.5,-14.5 + parent: 1 + - uid: 12732 + components: + - type: Transform + pos: 20.5,-15.5 + parent: 1 + - uid: 12733 + components: + - type: Transform + pos: 18.5,-14.5 + parent: 1 + - uid: 12734 + components: + - type: Transform + pos: 18.5,-15.5 + parent: 1 + - uid: 12735 + components: + - type: Transform + pos: 19.5,-15.5 + parent: 1 + - uid: 12736 + components: + - type: Transform + pos: 21.5,-15.5 + parent: 1 + - uid: 12737 + components: + - type: Transform + pos: 22.5,-15.5 + parent: 1 + - uid: 12741 + components: + - type: Transform + pos: 10.5,-15.5 + parent: 1 + - uid: 12742 + components: + - type: Transform + pos: 11.5,-15.5 + parent: 1 + - uid: 12743 + components: + - type: Transform + pos: 12.5,-15.5 + parent: 1 + - uid: 12744 + components: + - type: Transform + pos: 14.5,-15.5 + parent: 1 + - uid: 12745 + components: + - type: Transform + pos: 15.5,-15.5 + parent: 1 + - uid: 12746 + components: + - type: Transform + pos: 16.5,-15.5 + parent: 1 + - uid: 12747 + components: + - type: Transform + pos: 17.5,-15.5 + parent: 1 + - uid: 12749 + components: + - type: Transform + pos: -39.5,17.5 + parent: 1 + - uid: 12750 + components: + - type: Transform + pos: 26.5,-12.5 + parent: 1 + - uid: 12751 + components: + - type: Transform + pos: 26.5,-11.5 + parent: 1 + - uid: 12752 + components: + - type: Transform + pos: 26.5,-10.5 + parent: 1 + - uid: 12753 + components: + - type: Transform + pos: 26.5,-9.5 + parent: 1 + - uid: 12755 + components: + - type: Transform + pos: 28.5,-8.5 + parent: 1 + - uid: 12756 + components: + - type: Transform + pos: 27.5,-8.5 + parent: 1 + - uid: 12757 + components: + - type: Transform + pos: 29.5,-8.5 + parent: 1 + - uid: 12758 + components: + - type: Transform + pos: 31.5,-8.5 + parent: 1 + - uid: 12766 + components: + - type: Transform + pos: 33.5,-0.5 + parent: 1 + - uid: 12767 + components: + - type: Transform + pos: 33.5,-1.5 + parent: 1 + - uid: 12768 + components: + - type: Transform + pos: 33.5,-2.5 + parent: 1 + - uid: 12769 + components: + - type: Transform + pos: 33.5,-3.5 + parent: 1 + - uid: 12770 + components: + - type: Transform + pos: 33.5,-4.5 + parent: 1 + - uid: 12771 + components: + - type: Transform + pos: 38.5,42.5 + parent: 1 + - uid: 12772 + components: + - type: Transform + pos: 38.5,41.5 + parent: 1 + - uid: 12773 + components: + - type: Transform + pos: 38.5,40.5 + parent: 1 + - uid: 12774 + components: + - type: Transform + pos: 35.5,30.5 + parent: 1 + - uid: 12783 + components: + - type: Transform + pos: 2.5,71.5 + parent: 1 + - uid: 12784 + components: + - type: Transform + pos: 2.5,73.5 + parent: 1 + - uid: 12785 + components: + - type: Transform + pos: 2.5,72.5 + parent: 1 + - uid: 12786 + components: + - type: Transform + pos: 3.5,73.5 + parent: 1 + - uid: 12787 + components: + - type: Transform + pos: 4.5,73.5 + parent: 1 + - uid: 12788 + components: + - type: Transform + pos: 5.5,73.5 + parent: 1 + - uid: 12789 + components: + - type: Transform + pos: 6.5,73.5 + parent: 1 + - uid: 12790 + components: + - type: Transform + pos: 7.5,73.5 + parent: 1 + - uid: 12791 + components: + - type: Transform + pos: 8.5,73.5 + parent: 1 + - uid: 12792 + components: + - type: Transform + pos: 9.5,73.5 + parent: 1 + - uid: 12793 + components: + - type: Transform + pos: 18.5,71.5 + parent: 1 + - uid: 12794 + components: + - type: Transform + pos: 1.5,70.5 + parent: 1 + - uid: 12796 + components: + - type: Transform + pos: 18.5,70.5 + parent: 1 + - uid: 12797 + components: + - type: Transform + pos: 21.5,69.5 + parent: 1 + - uid: 12798 + components: + - type: Transform + pos: 20.5,69.5 + parent: 1 + - uid: 12799 + components: + - type: Transform + pos: 22.5,69.5 + parent: 1 + - uid: 12800 + components: + - type: Transform + pos: 23.5,69.5 + parent: 1 + - uid: 12801 + components: + - type: Transform + pos: 24.5,69.5 + parent: 1 + - uid: 12802 + components: + - type: Transform + pos: 25.5,69.5 + parent: 1 + - uid: 12803 + components: + - type: Transform + pos: 26.5,69.5 + parent: 1 + - uid: 12804 + components: + - type: Transform + pos: 27.5,69.5 + parent: 1 + - uid: 12805 + components: + - type: Transform + pos: 28.5,69.5 + parent: 1 + - uid: 12806 + components: + - type: Transform + pos: 29.5,69.5 + parent: 1 + - uid: 12807 + components: + - type: Transform + pos: 29.5,68.5 + parent: 1 + - uid: 12808 + components: + - type: Transform + pos: 2.5,70.5 + parent: 1 + - uid: 12814 + components: + - type: Transform + pos: 33.5,53.5 + parent: 1 + - uid: 12815 + components: + - type: Transform + pos: 34.5,52.5 + parent: 1 + - uid: 12816 + components: + - type: Transform + pos: 34.5,51.5 + parent: 1 + - uid: 12817 + components: + - type: Transform + pos: 34.5,50.5 + parent: 1 + - uid: 12818 + components: + - type: Transform + pos: 38.5,45.5 + parent: 1 + - uid: 12819 + components: + - type: Transform + pos: 32.5,62.5 + parent: 1 + - uid: 12820 + components: + - type: Transform + pos: 32.5,61.5 + parent: 1 + - uid: 12821 + components: + - type: Transform + pos: 32.5,63.5 + parent: 1 + - uid: 12822 + components: + - type: Transform + pos: 32.5,64.5 + parent: 1 + - uid: 12840 + components: + - type: Transform + pos: 18.5,68.5 + parent: 1 + - uid: 12841 + components: + - type: Transform + pos: 2.5,69.5 + parent: 1 + - uid: 12852 + components: + - type: Transform + pos: 33.5,2.5 + parent: 1 + - uid: 12853 + components: + - type: Transform + pos: 33.5,3.5 + parent: 1 + - uid: 12855 + components: + - type: Transform + pos: 52.5,16.5 + parent: 1 + - uid: 12856 + components: + - type: Transform + pos: 49.5,18.5 + parent: 1 + - uid: 12861 + components: + - type: Transform + pos: 34.5,46.5 + parent: 1 + - uid: 12870 + components: + - type: Transform + pos: 49.5,19.5 + parent: 1 + - uid: 12879 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,69.5 + parent: 1 + - uid: 12959 + components: + - type: Transform + pos: 25.5,-8.5 + parent: 1 + - uid: 12960 + components: + - type: Transform + pos: 52.5,7.5 + parent: 1 + - uid: 13002 + components: + - type: Transform + pos: 28.5,65.5 + parent: 1 + - uid: 13029 + components: + - type: Transform + pos: 35.5,19.5 + parent: 1 + - uid: 13030 + components: + - type: Transform + pos: 35.5,18.5 + parent: 1 + - uid: 13031 + components: + - type: Transform + pos: 35.5,17.5 + parent: 1 + - uid: 13093 + components: + - type: Transform + pos: 10.5,-14.5 + parent: 1 + - uid: 13094 + components: + - type: Transform + pos: 10.5,-13.5 + parent: 1 + - uid: 13095 + components: + - type: Transform + pos: 10.5,-12.5 + parent: 1 + - uid: 13096 + components: + - type: Transform + pos: 9.5,-15.5 + parent: 1 + - uid: 13097 + components: + - type: Transform + pos: 8.5,-15.5 + parent: 1 + - uid: 13098 + components: + - type: Transform + pos: 7.5,-15.5 + parent: 1 + - uid: 13099 + components: + - type: Transform + pos: -40.5,16.5 + parent: 1 + - uid: 13102 + components: + - type: Transform + pos: -33.5,-19.5 + parent: 1 + - uid: 13130 + components: + - type: Transform + pos: 49.5,2.5 + parent: 1 + - uid: 13131 + components: + - type: Transform + pos: 49.5,3.5 + parent: 1 + - uid: 13132 + components: + - type: Transform + pos: 49.5,4.5 + parent: 1 + - uid: 13133 + components: + - type: Transform + pos: 49.5,5.5 + parent: 1 + - uid: 13183 + components: + - type: Transform + pos: -45.5,0.5 + parent: 1 + - uid: 13184 + components: + - type: Transform + pos: -45.5,1.5 + parent: 1 + - uid: 13213 + components: + - type: Transform + pos: 23.5,-8.5 + parent: 1 + - uid: 13214 + components: + - type: Transform + pos: 24.5,-8.5 + parent: 1 + - uid: 13300 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,34.5 + parent: 1 + - uid: 13383 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,34.5 + parent: 1 + - uid: 13386 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,34.5 + parent: 1 + - uid: 13513 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,50.5 + parent: 1 + - uid: 13521 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,50.5 + parent: 1 + - uid: 13582 + components: + - type: Transform + pos: -26.5,70.5 + parent: 1 + - uid: 13583 + components: + - type: Transform + pos: -27.5,70.5 + parent: 1 + - uid: 13585 + components: + - type: Transform + pos: -26.5,69.5 + parent: 1 + - uid: 13587 + components: + - type: Transform + pos: -26.5,68.5 + parent: 1 + - uid: 13593 + components: + - type: Transform + pos: -30.5,68.5 + parent: 1 + - uid: 13594 + components: + - type: Transform + pos: -28.5,70.5 + parent: 1 + - uid: 13595 + components: + - type: Transform + pos: -29.5,70.5 + parent: 1 + - uid: 13597 + components: + - type: Transform + pos: -10.5,36.5 + parent: 1 + - uid: 13598 + components: + - type: Transform + pos: -5.5,36.5 + parent: 1 + - uid: 14453 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,1.5 + parent: 1 + - uid: 14633 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,34.5 + parent: 1 + - uid: 14643 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,23.5 + parent: 1 + - uid: 14819 + components: + - type: Transform + pos: -49.5,42.5 + parent: 1 + - uid: 14834 + components: + - type: Transform + pos: -49.5,46.5 + parent: 1 + - uid: 14835 + components: + - type: Transform + pos: -49.5,43.5 + parent: 1 + - uid: 14836 + components: + - type: Transform + pos: -49.5,47.5 + parent: 1 + - uid: 14837 + components: + - type: Transform + pos: -49.5,48.5 + parent: 1 + - uid: 14839 + components: + - type: Transform + pos: -49.5,44.5 + parent: 1 + - uid: 14840 + components: + - type: Transform + pos: -49.5,45.5 + parent: 1 + - uid: 14841 + components: + - type: Transform + pos: -47.5,49.5 + parent: 1 + - uid: 14842 + components: + - type: Transform + pos: -49.5,49.5 + parent: 1 + - uid: 14843 + components: + - type: Transform + pos: -47.5,47.5 + parent: 1 + - uid: 14844 + components: + - type: Transform + pos: -47.5,48.5 + parent: 1 + - uid: 14845 + components: + - type: Transform + pos: -47.5,45.5 + parent: 1 + - uid: 14846 + components: + - type: Transform + pos: -47.5,46.5 + parent: 1 + - uid: 14847 + components: + - type: Transform + pos: -47.5,43.5 + parent: 1 + - uid: 14848 + components: + - type: Transform + pos: -47.5,44.5 + parent: 1 + - uid: 14849 + components: + - type: Transform + pos: -48.5,41.5 + parent: 1 + - uid: 14850 + components: + - type: Transform + pos: -47.5,42.5 + parent: 1 + - uid: 14851 + components: + - type: Transform + pos: -49.5,41.5 + parent: 1 + - uid: 14852 + components: + - type: Transform + pos: -45.5,47.5 + parent: 1 + - uid: 14853 + components: + - type: Transform + pos: -45.5,48.5 + parent: 1 + - uid: 14854 + components: + - type: Transform + pos: -45.5,49.5 + parent: 1 + - uid: 14855 + components: + - type: Transform + pos: -43.5,49.5 + parent: 1 + - uid: 14856 + components: + - type: Transform + pos: -43.5,50.5 + parent: 1 + - uid: 14857 + components: + - type: Transform + pos: -45.5,50.5 + parent: 1 + - uid: 14858 + components: + - type: Transform + pos: -47.5,50.5 + parent: 1 + - uid: 14859 + components: + - type: Transform + pos: -49.5,50.5 + parent: 1 + - uid: 14860 + components: + - type: Transform + pos: -40.5,46.5 + parent: 1 + - uid: 14862 + components: + - type: Transform + pos: -44.5,46.5 + parent: 1 + - uid: 14863 + components: + - type: Transform + pos: -46.5,46.5 + parent: 1 + - uid: 14864 + components: + - type: Transform + pos: -48.5,46.5 + parent: 1 + - uid: 14865 + components: + - type: Transform + pos: -50.5,46.5 + parent: 1 + - uid: 14866 + components: + - type: Transform + pos: -39.5,50.5 + parent: 1 + - uid: 14868 + components: + - type: Transform + pos: -49.5,51.5 + parent: 1 + - uid: 14869 + components: + - type: Transform + pos: -51.5,50.5 + parent: 1 + - uid: 14870 + components: + - type: Transform + pos: -47.5,51.5 + parent: 1 + - uid: 14871 + components: + - type: Transform + pos: -43.5,51.5 + parent: 1 + - uid: 14872 + components: + - type: Transform + pos: -45.5,51.5 + parent: 1 + - uid: 14873 + components: + - type: Transform + pos: -41.5,51.5 + parent: 1 + - uid: 14874 + components: + - type: Transform + pos: -39.5,51.5 + parent: 1 + - uid: 14877 + components: + - type: Transform + pos: -51.5,49.5 + parent: 1 + - uid: 14878 + components: + - type: Transform + pos: -51.5,48.5 + parent: 1 + - uid: 14879 + components: + - type: Transform + pos: -51.5,47.5 + parent: 1 + - uid: 14904 + components: + - type: Transform + pos: -51.5,46.5 + parent: 1 + - uid: 14905 + components: + - type: Transform + pos: -52.5,46.5 + parent: 1 + - uid: 14906 + components: + - type: Transform + pos: -53.5,46.5 + parent: 1 + - uid: 14907 + components: + - type: Transform + pos: -54.5,46.5 + parent: 1 + - uid: 14916 + components: + - type: Transform + pos: -55.5,46.5 + parent: 1 + - uid: 14920 + components: + - type: Transform + pos: -53.5,47.5 + parent: 1 + - uid: 14955 + components: + - type: Transform + pos: -53.5,48.5 + parent: 1 + - uid: 14956 + components: + - type: Transform + pos: -53.5,49.5 + parent: 1 + - uid: 14957 + components: + - type: Transform + pos: -53.5,45.5 + parent: 1 + - uid: 14958 + components: + - type: Transform + pos: -53.5,44.5 + parent: 1 + - uid: 14959 + components: + - type: Transform + pos: -53.5,43.5 + parent: 1 + - uid: 14960 + components: + - type: Transform + pos: -51.5,45.5 + parent: 1 + - uid: 14961 + components: + - type: Transform + pos: -51.5,44.5 + parent: 1 + - uid: 14962 + components: + - type: Transform + pos: -51.5,43.5 + parent: 1 + - uid: 14963 + components: + - type: Transform + pos: -51.5,42.5 + parent: 1 + - uid: 15102 + components: + - type: Transform + pos: -37.5,51.5 + parent: 1 + - uid: 15103 + components: + - type: Transform + pos: -36.5,51.5 + parent: 1 + - uid: 15104 + components: + - type: Transform + pos: -35.5,51.5 + parent: 1 + - uid: 15105 + components: + - type: Transform + pos: -34.5,51.5 + parent: 1 + - uid: 15106 + components: + - type: Transform + pos: -33.5,51.5 + parent: 1 + - uid: 15107 + components: + - type: Transform + pos: -32.5,51.5 + parent: 1 + - uid: 15108 + components: + - type: Transform + pos: -31.5,51.5 + parent: 1 + - uid: 15468 + components: + - type: Transform + pos: 46.5,35.5 + parent: 1 + - uid: 15469 + components: + - type: Transform + pos: 46.5,36.5 + parent: 1 + - uid: 15470 + components: + - type: Transform + pos: 46.5,37.5 + parent: 1 + - uid: 15471 + components: + - type: Transform + pos: 46.5,38.5 + parent: 1 + - uid: 15472 + components: + - type: Transform + pos: 46.5,39.5 + parent: 1 + - uid: 15473 + components: + - type: Transform + pos: 46.5,40.5 + parent: 1 + - uid: 15474 + components: + - type: Transform + pos: 47.5,34.5 + parent: 1 + - uid: 15600 + components: + - type: Transform + pos: -9.5,-25.5 + parent: 1 + - uid: 15601 + components: + - type: Transform + pos: -9.5,-26.5 + parent: 1 + - uid: 15606 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-26.5 + parent: 1 + - uid: 15607 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-25.5 + parent: 1 + - uid: 15609 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-25.5 + parent: 1 + - uid: 15611 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-25.5 + parent: 1 + - uid: 15613 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-25.5 + parent: 1 + - uid: 15615 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-25.5 + parent: 1 + - uid: 15628 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-25.5 + parent: 1 + - uid: 15668 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-25.5 + parent: 1 + - uid: 15756 + components: + - type: Transform + pos: -2.5,-31.5 + parent: 1 + - uid: 15936 + components: + - type: Transform + pos: -34.5,-24.5 + parent: 1 + - uid: 15937 + components: + - type: Transform + pos: -34.5,-25.5 + parent: 1 + - uid: 15938 + components: + - type: Transform + pos: -34.5,-26.5 + parent: 1 + - uid: 15939 + components: + - type: Transform + pos: -35.5,-26.5 + parent: 1 + - uid: 15940 + components: + - type: Transform + pos: -36.5,-26.5 + parent: 1 + - uid: 15941 + components: + - type: Transform + pos: -37.5,-26.5 + parent: 1 + - uid: 15942 + components: + - type: Transform + pos: -38.5,-26.5 + parent: 1 + - uid: 15943 + components: + - type: Transform + pos: -38.5,-27.5 + parent: 1 + - uid: 15944 + components: + - type: Transform + pos: -38.5,-28.5 + parent: 1 + - uid: 15945 + components: + - type: Transform + pos: -38.5,-29.5 + parent: 1 + - uid: 15946 + components: + - type: Transform + pos: -38.5,-30.5 + parent: 1 + - uid: 15947 + components: + - type: Transform + pos: -38.5,-31.5 + parent: 1 + - uid: 15948 + components: + - type: Transform + pos: -38.5,-32.5 + parent: 1 + - uid: 15949 + components: + - type: Transform + pos: -38.5,-33.5 + parent: 1 + - uid: 15950 + components: + - type: Transform + pos: -38.5,-34.5 + parent: 1 + - uid: 15951 + components: + - type: Transform + pos: -38.5,-35.5 + parent: 1 + - uid: 15952 + components: + - type: Transform + pos: -38.5,-36.5 + parent: 1 + - uid: 15953 + components: + - type: Transform + pos: -38.5,-37.5 + parent: 1 + - uid: 15954 + components: + - type: Transform + pos: -38.5,-38.5 + parent: 1 + - uid: 15955 + components: + - type: Transform + pos: -37.5,-38.5 + parent: 1 + - uid: 15956 + components: + - type: Transform + pos: -36.5,-38.5 + parent: 1 + - uid: 15957 + components: + - type: Transform + pos: -35.5,-38.5 + parent: 1 + - uid: 15958 + components: + - type: Transform + pos: -34.5,-38.5 + parent: 1 + - uid: 16427 + components: + - type: Transform + pos: 9.5,-30.5 + parent: 1 + - uid: 16428 + components: + - type: Transform + pos: 8.5,-30.5 + parent: 1 + - uid: 16429 + components: + - type: Transform + pos: 7.5,-30.5 + parent: 1 + - uid: 16430 + components: + - type: Transform + pos: 6.5,-30.5 + parent: 1 + - uid: 16431 + components: + - type: Transform + pos: 5.5,-30.5 + parent: 1 + - uid: 16432 + components: + - type: Transform + pos: 5.5,-29.5 + parent: 1 + - uid: 16433 + components: + - type: Transform + pos: 4.5,-30.5 + parent: 1 + - uid: 16434 + components: + - type: Transform + pos: 3.5,-30.5 + parent: 1 + - uid: 16435 + components: + - type: Transform + pos: 2.5,-30.5 + parent: 1 + - uid: 16436 + components: + - type: Transform + pos: 1.5,-30.5 + parent: 1 + - uid: 16437 + components: + - type: Transform + pos: 0.5,-30.5 + parent: 1 + - uid: 16438 + components: + - type: Transform + pos: -0.5,-30.5 + parent: 1 + - uid: 16439 + components: + - type: Transform + pos: -1.5,-30.5 + parent: 1 + - uid: 16440 + components: + - type: Transform + pos: -2.5,-30.5 + parent: 1 + - uid: 16441 + components: + - type: Transform + pos: -2.5,-32.5 + parent: 1 + - uid: 16442 + components: + - type: Transform + pos: -2.5,-33.5 + parent: 1 + - uid: 16443 + components: + - type: Transform + pos: -2.5,-34.5 + parent: 1 + - uid: 16444 + components: + - type: Transform + pos: -2.5,-35.5 + parent: 1 + - uid: 16445 + components: + - type: Transform + pos: -2.5,-36.5 + parent: 1 + - uid: 16471 + components: + - type: Transform + pos: 10.5,-30.5 + parent: 1 + - uid: 16601 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,26.5 + parent: 1 + - uid: 16602 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,26.5 + parent: 1 +- proto: CentcomPDAFake + entities: + - uid: 14921 + components: + - type: Transform + pos: 14.537634,-29.512308 + parent: 1 +- proto: Chair + entities: + - uid: 24 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,7.5 + parent: 1 + - uid: 45 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,22.5 + parent: 1 + - uid: 128 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,27.5 + parent: 1 + - uid: 161 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,34.5 + parent: 1 + - uid: 162 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,33.5 + parent: 1 + - uid: 163 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,28.5 + parent: 1 + - uid: 164 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,27.5 + parent: 1 + - uid: 182 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,27.5 + parent: 1 + - uid: 183 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,28.5 + parent: 1 + - uid: 237 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,33.5 + parent: 1 + - uid: 299 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,17.5 + parent: 1 + - uid: 455 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,20.5 + parent: 1 + - uid: 457 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,8.5 + parent: 1 + - uid: 460 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,19.5 + parent: 1 + - uid: 489 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,28.5 + parent: 1 + - uid: 507 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,12.5 + parent: 1 + - uid: 564 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,33.5 + parent: 1 + - uid: 702 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,22.5 + parent: 1 + - uid: 708 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,32.5 + parent: 1 + - uid: 745 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,34.5 + parent: 1 + - uid: 801 + components: + - type: Transform + pos: -0.5,14.5 + parent: 1 + - uid: 829 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,20.5 + parent: 1 + - uid: 874 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,22.5 + parent: 1 + - uid: 916 + components: + - type: Transform + pos: -4.5,30.5 + parent: 1 + - uid: 975 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,22.5 + parent: 1 + - uid: 1074 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,19.5 + parent: 1 + - uid: 1110 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,34.5 + parent: 1 + - uid: 1129 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,32.5 + parent: 1 + - uid: 1224 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,64.5 + parent: 1 + - uid: 1264 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,29.5 + parent: 1 + - uid: 1380 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,63.5 + parent: 1 + - uid: 1483 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,7.5 + parent: 1 + - uid: 1484 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,8.5 + parent: 1 + - uid: 1520 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,4.5 + parent: 1 + - uid: 1537 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,14.5 + parent: 1 + - uid: 1624 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,21.5 + parent: 1 + - uid: 1892 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,20.5 + parent: 1 + - uid: 1893 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,19.5 + parent: 1 + - uid: 1919 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,1.5 + parent: 1 + - uid: 2024 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,1.5 + parent: 1 + - uid: 2025 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,1.5 + parent: 1 + - uid: 2079 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,19.5 + parent: 1 + - uid: 2080 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,20.5 + parent: 1 + - uid: 2136 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,4.5 + parent: 1 + - uid: 2251 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,42.5 + parent: 1 + - uid: 2355 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,2.5 + parent: 1 + - uid: 2452 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,6.5 + parent: 1 + - uid: 2453 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,6.5 + parent: 1 + - uid: 2534 + components: + - type: Transform + pos: -22.5,20.5 + parent: 1 + - uid: 2535 + components: + - type: Transform + pos: -21.5,20.5 + parent: 1 + - uid: 2539 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,51.5 + parent: 1 + - uid: 2558 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-17.5 + parent: 1 + - uid: 2559 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,-17.5 + parent: 1 + - uid: 2619 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,62.5 + parent: 1 + - uid: 2653 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,52.5 + parent: 1 + - uid: 2762 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,7.5 + parent: 1 + - uid: 2763 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,6.5 + parent: 1 + - uid: 2764 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,3.5 + parent: 1 + - uid: 2795 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-8.5 + parent: 1 + - uid: 2796 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-9.5 + parent: 1 + - uid: 2797 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,-9.5 + parent: 1 + - uid: 2972 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,54.5 + parent: 1 + - uid: 3022 + components: + - type: Transform + pos: 13.5,43.5 + parent: 1 + - uid: 3047 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,53.5 + parent: 1 + - uid: 3089 + components: + - type: Transform + pos: 12.5,43.5 + parent: 1 + - uid: 3118 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,-8.5 + parent: 1 + - uid: 3126 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,41.5 + parent: 1 + - uid: 3148 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,52.5 + parent: 1 + - uid: 3177 + components: + - type: Transform + pos: -30.5,-8.5 + parent: 1 + - uid: 3213 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,-10.5 + parent: 1 + - uid: 3359 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,41.5 + parent: 1 + - uid: 3382 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,53.5 + parent: 1 + - uid: 3480 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,41.5 + parent: 1 + - uid: 3500 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-8.5 + parent: 1 + - uid: 3517 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,54.5 + parent: 1 + - uid: 3656 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,41.5 + parent: 1 + - uid: 3700 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,51.5 + parent: 1 + - uid: 3813 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,40.5 + parent: 1 + - uid: 3814 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,41.5 + parent: 1 + - uid: 4052 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,49.5 + parent: 1 + - uid: 4067 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,47.5 + parent: 1 + - uid: 4068 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,63.5 + parent: 1 + - uid: 4094 + components: + - type: Transform + pos: -36.5,-2.5 + parent: 1 + - uid: 4096 + components: + - type: Transform + pos: -35.5,-2.5 + parent: 1 + - uid: 4332 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,11.5 + parent: 1 + - uid: 4344 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,54.5 + parent: 1 + - uid: 4528 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,40.5 + parent: 1 + - uid: 4563 + components: + - type: Transform + pos: -39.5,-6.5 + parent: 1 + - uid: 4573 + components: + - type: Transform + pos: -40.5,-6.5 + parent: 1 + - uid: 4595 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,47.5 + parent: 1 + - uid: 4631 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,60.5 + parent: 1 + - uid: 4662 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,53.5 + parent: 1 + - uid: 4669 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,47.5 + parent: 1 + - uid: 4706 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,49.5 + parent: 1 + - uid: 4779 + components: + - type: Transform + pos: -38.5,-6.5 + parent: 1 + - uid: 4810 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-0.5 + parent: 1 + - uid: 4824 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,65.5 + parent: 1 + - uid: 4929 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,49.5 + parent: 1 + - uid: 5143 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,63.5 + parent: 1 + - uid: 5145 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,43.5 + parent: 1 + - uid: 5163 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,49.5 + parent: 1 + - uid: 5186 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,60.5 + parent: 1 + - uid: 5261 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,47.5 + parent: 1 + - uid: 5298 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,49.5 + parent: 1 + - uid: 5320 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-0.5 + parent: 1 + - uid: 5363 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,40.5 + parent: 1 + - uid: 5404 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,27.5 + parent: 1 + - uid: 5408 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,49.5 + parent: 1 + - uid: 5469 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,37.5 + parent: 1 + - uid: 5492 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,32.5 + parent: 1 + - uid: 5493 + components: + - type: Transform + pos: 1.5,34.5 + parent: 1 + - uid: 5497 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,40.5 + parent: 1 + - uid: 5521 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-8.5 + parent: 1 + - uid: 5579 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,64.5 + parent: 1 + - uid: 5608 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,55.5 + parent: 1 + - uid: 5610 + components: + - type: Transform + pos: 8.5,68.5 + parent: 1 + - uid: 5640 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,0.5 + parent: 1 + - uid: 5643 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,1.5 + parent: 1 + - uid: 5666 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,47.5 + parent: 1 + - uid: 5685 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,-5.5 + parent: 1 + - uid: 5702 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,62.5 + parent: 1 + - uid: 5714 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,47.5 + parent: 1 + - uid: 5772 + components: + - type: Transform + pos: -11.5,65.5 + parent: 1 + - uid: 5774 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,9.5 + parent: 1 + - uid: 5775 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,10.5 + parent: 1 + - uid: 5786 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,66.5 + parent: 1 + - uid: 5873 + components: + - type: Transform + pos: -10.5,65.5 + parent: 1 + - uid: 5899 + components: + - type: Transform + pos: 7.5,68.5 + parent: 1 + - uid: 5906 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,65.5 + parent: 1 + - uid: 5923 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,-0.5 + parent: 1 + - uid: 5985 + components: + - type: Transform + pos: -28.5,23.5 + parent: 1 + - uid: 5987 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,9.5 + parent: 1 + - uid: 6021 + components: + - type: Transform + pos: -29.5,23.5 + parent: 1 + - uid: 6061 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,62.5 + parent: 1 + - uid: 6067 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,-5.5 + parent: 1 + - uid: 6079 + components: + - type: Transform + pos: -29.5,38.5 + parent: 1 + - uid: 6082 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,23.5 + parent: 1 + - uid: 6094 + components: + - type: Transform + pos: -30.5,38.5 + parent: 1 + - uid: 6109 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,-5.5 + parent: 1 + - uid: 6159 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,26.5 + parent: 1 + - uid: 6207 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,66.5 + parent: 1 + - uid: 6232 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,-20.5 + parent: 1 + - uid: 6233 + components: + - type: Transform + pos: -13.5,-18.5 + parent: 1 + - uid: 6260 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,9.5 + parent: 1 + - uid: 6263 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,64.5 + parent: 1 + - uid: 6285 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,22.5 + parent: 1 + - uid: 6314 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,64.5 + parent: 1 + - uid: 6342 + components: + - type: Transform + pos: 18.5,4.5 + parent: 1 + - uid: 6357 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,-9.5 + parent: 1 + - uid: 6358 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,-9.5 + parent: 1 + - uid: 6395 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,26.5 + parent: 1 + - uid: 6405 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,27.5 + parent: 1 + - uid: 6409 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,66.5 + parent: 1 + - uid: 6413 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,36.5 + parent: 1 + - uid: 6414 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,36.5 + parent: 1 + - uid: 9879 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-9.5 + parent: 1 + - uid: 14297 + components: + - type: Transform + pos: 22.5,5.5 + parent: 1 + - uid: 14299 + components: + - type: Transform + pos: 23.5,5.5 + parent: 1 + - uid: 15249 + components: + - type: Transform + pos: -41.5,56.5 + parent: 1 + - uid: 15250 + components: + - type: Transform + pos: -39.5,56.5 + parent: 1 + - uid: 15251 + components: + - type: Transform + pos: -38.5,56.5 + parent: 1 + - uid: 15253 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,54.5 + parent: 1 + - uid: 15254 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,54.5 + parent: 1 + - uid: 16410 + components: + - type: Transform + pos: -3.5,-41.5 + parent: 1 + - uid: 16411 + components: + - type: Transform + pos: -5.5,-41.5 + parent: 1 +- proto: ChairOfficeDark + entities: + - uid: 15711 + components: + - type: Transform + pos: -18.5,-23.5 + parent: 1 + - uid: 15712 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,-23.5 + parent: 1 + - uid: 15724 + components: + - type: Transform + pos: -19.5,-23.5 + parent: 1 + - uid: 15725 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,-22.5 + parent: 1 + - uid: 15727 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,-24.5 + parent: 1 + - uid: 15728 + components: + - type: Transform + pos: -17.5,-23.5 + parent: 1 +- proto: ChairOfficeLight + entities: + - uid: 318 + components: + - type: Transform + pos: -24.5,41.5 + parent: 1 + - uid: 641 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,13.5 + parent: 1 + - uid: 713 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,33.5 + parent: 1 + - uid: 1269 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,33.5 + parent: 1 + - uid: 1304 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,10.5 + parent: 1 + - uid: 1370 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,15.5 + parent: 1 + - uid: 1568 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,19.5 + parent: 1 + - uid: 2230 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,-3.5 + parent: 1 + - uid: 2557 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,50.5 + parent: 1 + - uid: 2641 + components: + - type: Transform + pos: 8.5,45.5 + parent: 1 + - uid: 2783 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,-16.5 + parent: 1 + - uid: 3039 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,54.5 + parent: 1 + - uid: 3367 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,18.5 + parent: 1 + - uid: 3590 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,64.5 + parent: 1 + - uid: 3753 + components: + - type: Transform + pos: 17.5,42.5 + parent: 1 + - uid: 3754 + components: + - type: Transform + pos: 20.5,42.5 + parent: 1 + - uid: 3846 + components: + - type: Transform + pos: -1.5,58.5 + parent: 1 + - uid: 3995 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,62.5 + parent: 1 + - uid: 3997 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,62.5 + parent: 1 + - uid: 4142 + components: + - type: Transform + pos: 23.5,51.5 + parent: 1 + - uid: 4159 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,55.5 + parent: 1 + - uid: 4295 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,55.5 + parent: 1 +- proto: ChairRitual + entities: + - uid: 1774 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,-2.5 + parent: 1 +- proto: ChairWood + entities: + - uid: 399 + components: + - type: Transform + pos: 13.5,1.5 + parent: 1 + - uid: 404 + components: + - type: Transform + pos: 13.5,0.5 + parent: 1 + - uid: 957 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,27.5 + parent: 1 + - uid: 958 + components: + - type: Transform + pos: -0.5,29.5 + parent: 1 + - uid: 1731 + components: + - type: Transform + pos: 11.5,1.5 + parent: 1 + - uid: 1733 + components: + - type: Transform + pos: 11.5,0.5 + parent: 1 + - uid: 1990 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,2.5 + parent: 1 + - uid: 5847 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,34.5 + parent: 1 + - uid: 5922 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,31.5 + parent: 1 + - uid: 6013 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,31.5 + parent: 1 + - uid: 6014 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,34.5 + parent: 1 + - uid: 6068 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,22.5 + parent: 1 + - uid: 6126 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,32.5 + parent: 1 + - uid: 6146 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,32.5 + parent: 1 + - uid: 6147 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,33.5 + parent: 1 + - uid: 6148 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,33.5 + parent: 1 + - uid: 6376 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,34.5 + parent: 1 + - uid: 6406 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,22.5 + parent: 1 +- proto: chem_master + entities: + - uid: 5934 + components: + - type: Transform + pos: 20.5,41.5 + parent: 1 + - uid: 6006 + components: + - type: Transform + pos: 17.5,41.5 + parent: 1 +- proto: ChemDispenser + entities: + - uid: 3759 + components: + - type: Transform + pos: 18.5,41.5 + parent: 1 + - uid: 4076 + components: + - type: Transform + pos: 21.5,41.5 + parent: 1 +- proto: ChemistryHotplate + entities: + - uid: 2167 + components: + - type: Transform + pos: 17.5,44.5 + parent: 1 +- proto: ChessBoard + entities: + - uid: 1386 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.46385527,13.562204 + parent: 1 +- proto: ChurchOrganInstrument + entities: + - uid: 176 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,3.5 + parent: 1 +- proto: CigarGoldCase + entities: + - uid: 2501 + components: + - type: Transform + pos: 3.719139,-3.8272734 + parent: 1 +- proto: CircuitImprinter + entities: + - uid: 234 + components: + - type: Transform + pos: 13.5,5.5 + parent: 1 + - uid: 1148 + components: + - type: Transform + pos: 16.5,11.5 + parent: 1 +- proto: ClockworkShield + entities: + - uid: 10315 + components: + - type: Transform + pos: 30.613447,38.47306 + parent: 1 +- proto: CloningConsoleComputerCircuitboard + entities: + - uid: 4387 + components: + - type: Transform + pos: -33.553574,-8.404236 + parent: 1 +- proto: ClosetBombFilled + entities: + - uid: 1481 + components: + - type: Transform + pos: 17.5,14.5 + parent: 1 + - uid: 2129 + components: + - type: Transform + pos: -25.5,5.5 + parent: 1 +- proto: ClosetEmergencyFilledRandom + entities: + - uid: 93 + components: + - type: Transform + pos: 10.5,11.5 + parent: 1 + - uid: 357 + components: + - type: Transform + pos: -11.5,7.5 + parent: 1 + - uid: 1639 + components: + - type: Transform + pos: -13.5,30.5 + parent: 1 + - uid: 4885 + components: + - type: Transform + pos: -8.5,-6.5 + parent: 1 + - uid: 5173 + components: + - type: Transform + pos: 3.5,56.5 + parent: 1 + - uid: 5736 + components: + - type: Transform + pos: -29.5,66.5 + parent: 1 + - uid: 5753 + components: + - type: Transform + pos: -13.5,66.5 + parent: 1 + - uid: 5880 + components: + - type: Transform + pos: 1.5,11.5 + parent: 1 + - uid: 5956 + components: + - type: Transform + pos: 5.5,47.5 + parent: 1 + - uid: 6039 + components: + - type: Transform + pos: -2.5,66.5 + parent: 1 + - uid: 6088 + components: + - type: Transform + pos: -30.5,4.5 + parent: 1 + - uid: 6225 + components: + - type: Transform + pos: 16.5,3.5 + parent: 1 + - uid: 6417 + components: + - type: Transform + pos: 27.5,6.5 + parent: 1 + - uid: 7463 + components: + - type: Transform + pos: -22.5,-11.5 + parent: 1 + - uid: 12536 + components: + - type: Transform + pos: -24.5,25.5 + parent: 1 +- proto: ClosetFireFilled + entities: + - uid: 205 + components: + - type: Transform + pos: 8.5,11.5 + parent: 1 + - uid: 211 + components: + - type: Transform + pos: -11.5,8.5 + parent: 1 + - uid: 876 + components: + - type: Transform + pos: -13.5,31.5 + parent: 1 + - uid: 4080 + components: + - type: Transform + pos: -4.5,-6.5 + parent: 1 + - uid: 5636 + components: + - type: Transform + pos: 3.5,57.5 + parent: 1 + - uid: 5738 + components: + - type: Transform + pos: -27.5,66.5 + parent: 1 + - uid: 5864 + components: + - type: Transform + pos: -15.5,66.5 + parent: 1 + - uid: 5879 + components: + - type: Transform + pos: 3.5,11.5 + parent: 1 + - uid: 6218 + components: + - type: Transform + pos: -31.5,4.5 + parent: 1 + - uid: 6224 + components: + - type: Transform + pos: 16.5,2.5 + parent: 1 + - uid: 6236 + components: + - type: Transform + pos: 5.5,22.5 + parent: 1 +- proto: ClosetJanitorFilled + entities: + - uid: 4512 + components: + - type: Transform + pos: 18.5,21.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.1496 + moles: + - 1.7459823 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 1457 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + - uid: 4513 + components: + - type: Transform + pos: 17.5,21.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.1496 + moles: + - 1.7459823 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 1460 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: ClosetL3JanitorFilled + entities: + - uid: 4857 + components: + - type: Transform + pos: 20.5,25.5 + parent: 1 +- proto: ClosetL3VirologyFilled + entities: + - uid: 2692 + components: + - type: Transform + pos: 13.5,58.5 + parent: 1 + - uid: 2905 + components: + - type: Transform + pos: 11.5,59.5 + parent: 1 + - uid: 3046 + components: + - type: Transform + pos: 11.5,58.5 + parent: 1 + - uid: 3147 + components: + - type: Transform + pos: 13.5,59.5 + parent: 1 +- proto: ClosetMaintenanceFilledRandom + entities: + - uid: 4623 + components: + - type: Transform + pos: 17.5,9.5 + parent: 1 + - uid: 5330 + components: + - type: Transform + pos: -28.5,36.5 + parent: 1 + - uid: 5713 + components: + - type: Transform + pos: 17.5,32.5 + parent: 1 + - type: Fixtures + fixtures: + fix1: + shape: !type:PolygonShape + radius: 0.01 + vertices: + - -0.25,-0.48 + - 0.25,-0.48 + - 0.25,0.48 + - -0.25,0.48 + mask: + - Impassable + - TableLayer + - LowImpassable + layer: + - BulletImpassable + - Opaque + density: 75 + hard: True + restitution: 0 + friction: 0.4 + - type: EntityStorage + open: True + removedMasks: 20 + - type: PlaceableSurface + isPlaceable: True + - uid: 5734 + components: + - type: Transform + pos: -28.5,45.5 + parent: 1 + - uid: 5758 + components: + - type: Transform + pos: -33.5,4.5 + parent: 1 + - type: Fixtures + fixtures: + fix1: + shape: !type:PolygonShape + radius: 0.01 + vertices: + - -0.25,-0.48 + - 0.25,-0.48 + - 0.25,0.48 + - -0.25,0.48 + mask: + - Impassable + - TableLayer + - LowImpassable + layer: + - BulletImpassable + - Opaque + density: 75 + hard: True + restitution: 0 + friction: 0.4 + - type: EntityStorage + open: True + removedMasks: 20 + - type: PlaceableSurface + isPlaceable: True + - uid: 5929 + components: + - type: Transform + pos: 16.5,1.5 + parent: 1 + - uid: 6008 + components: + - type: Transform + pos: -2.5,65.5 + parent: 1 + - uid: 6022 + components: + - type: Transform + pos: 17.5,-10.5 + parent: 1 + - uid: 6132 + components: + - type: Transform + pos: 25.5,20.5 + parent: 1 + - uid: 6324 + components: + - type: Transform + pos: 18.5,9.5 + parent: 1 +- proto: ClosetRadiationSuitFilled + entities: + - uid: 1912 + components: + - type: Transform + pos: 17.5,15.5 + parent: 1 + - uid: 5991 + components: + - type: Transform + pos: 6.5,59.5 + parent: 1 + - uid: 6066 + components: + - type: Transform + pos: 10.5,22.5 + parent: 1 + - uid: 12308 + components: + - type: Transform + pos: -13.5,-16.5 + parent: 1 + - uid: 12309 + components: + - type: Transform + pos: -13.5,-17.5 + parent: 1 + - uid: 15592 + components: + - type: Transform + pos: -6.5,-31.5 + parent: 1 + - uid: 16284 + components: + - type: Transform + pos: -16.5,-24.5 + parent: 1 + - uid: 16285 + components: + - type: Transform + pos: -16.5,-24.5 + parent: 1 +- proto: ClosetToolFilled + entities: + - uid: 6038 + components: + - type: Transform + pos: -4.5,54.5 + parent: 1 +- proto: ClosetWallEmergencyFilledRandom + entities: + - uid: 15292 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,53.5 + parent: 1 +- proto: ClosetWallFireFilledRandom + entities: + - uid: 15291 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,53.5 + parent: 1 + - uid: 15602 + components: + - type: Transform + pos: -9.5,-23.5 + parent: 1 + - uid: 15666 + components: + - type: Transform + pos: -29.5,-24.5 + parent: 1 + - uid: 15667 + components: + - type: Transform + pos: -28.5,-24.5 + parent: 1 +- proto: ClothingBackpackClown + entities: + - uid: 2315 + components: + - type: Transform + pos: -39.54286,1.5927587 + parent: 1 +- proto: ClothingBackpackDuffelBrigmedic + entities: + - uid: 14978 + components: + - type: Transform + pos: 44.542583,5.60503 + parent: 1 +- proto: ClothingBeltMantis + entities: + - uid: 6226 + components: + - type: Transform + pos: 23.693298,4.629373 + parent: 1 +- proto: ClothingBeltMedicalEMT + entities: + - uid: 14926 + components: + - type: Transform + pos: 28.481045,-27.530144 + parent: 1 +- proto: ClothingBeltMilitaryWebbing + entities: + - uid: 5730 + components: + - type: Transform + pos: 30.532019,31.550613 + parent: 1 +- proto: ClothingBeltUtilityEngineering + entities: + - uid: 15619 + components: + - type: Transform + pos: -30.640202,-41.396683 + parent: 1 + - uid: 15620 + components: + - type: Transform + pos: -30.535501,-41.501225 + parent: 1 + - uid: 15621 + components: + - type: Transform + pos: -30.400887,-41.6655 + parent: 1 +- proto: ClothingBeltUtilityFilled + entities: + - uid: 3896 + components: + - type: Transform + pos: -1.4915898,51.642246 + parent: 1 + - uid: 6385 + components: + - type: Transform + pos: -26.56005,-0.43270308 + parent: 1 + - uid: 12485 + components: + - type: Transform + pos: -23.41086,33.689877 + parent: 1 +- proto: ClothingEyesEyepatch + entities: + - uid: 5910 + components: + - type: Transform + pos: 19.86964,35.662903 + parent: 1 + - uid: 6139 + components: + - type: Transform + pos: 19.541515,35.694153 + parent: 1 +- proto: ClothingEyesEyepatchHudBeer + entities: + - uid: 14948 + components: + - type: Transform + pos: 8.587502,-10.36065 + parent: 1 +- proto: ClothingEyesGlassesMeson + entities: + - uid: 15645 + components: + - type: Transform + pos: -28.55849,-41.24204 + parent: 1 + - uid: 15646 + components: + - type: Transform + pos: -28.35906,-41.16737 + parent: 1 + - uid: 15681 + components: + - type: Transform + pos: -26.1646,-25.439219 + parent: 1 +- proto: ClothingEyesHudBeer + entities: + - uid: 13687 + components: + - type: Transform + pos: 8.313771,-10.192314 + parent: 1 + - uid: 16423 + components: + - type: Transform + pos: -3.5134764,-41.484978 + parent: 1 +- proto: ClothingEyesHudOnionBeer + entities: + - uid: 16426 + components: + - type: Transform + pos: -5.4579206,-41.574585 + parent: 1 +- proto: ClothingEyesHudSecurity + entities: + - uid: 252 + components: + - type: Transform + pos: -19.796312,12.668752 + parent: 1 +- proto: ClothingHandsChameleon + entities: + - uid: 14951 + components: + - type: Transform + pos: 6.4930315,-17.454033 + parent: 1 +- proto: ClothingHandsGlovesBoxingBlue + entities: + - uid: 5979 + components: + - type: Transform + pos: 25.673412,66.60339 + parent: 1 + - uid: 6432 + components: + - type: Transform + pos: 25.41657,66.71347 + parent: 1 + - uid: 14965 + components: + - type: Transform + pos: -49.512222,12.375402 + parent: 1 +- proto: ClothingHandsGlovesBoxingRed + entities: + - uid: 5978 + components: + - type: Transform + pos: 25.966948,66.76851 + parent: 1 + - uid: 6124 + components: + - type: Transform + pos: 26.187098,66.65843 + parent: 1 +- proto: ClothingHandsGlovesBoxingYellow + entities: + - uid: 4661 + components: + - type: Transform + pos: 26.700783,66.65843 + parent: 1 + - uid: 6180 + components: + - type: Transform + pos: 26.480633,66.78685 + parent: 1 +- proto: ClothingHandsGlovesColorYellow + entities: + - uid: 15680 + components: + - type: Transform + pos: -26.1646,-25.426773 + parent: 1 +- proto: ClothingHandsGlovesColorYellowBudget + entities: + - uid: 1872 + components: + - type: Transform + pos: -22.540722,-2.3522022 + parent: 1 + - uid: 1873 + components: + - type: Transform + pos: -22.462597,-2.5553272 + parent: 1 +- proto: ClothingHandsGlovesCombat + entities: + - uid: 9454 + components: + - type: Transform + pos: 14.497662,21.494194 + parent: 1 +- proto: ClothingHandsGlovesLatex + entities: + - uid: 2777 + components: + - type: Transform + pos: 28.60298,42.58553 + parent: 1 + - uid: 3521 + components: + - type: Transform + pos: 28.505135,42.76899 + parent: 1 +- proto: ClothingHandsGlovesNitrile + entities: + - uid: 2104 + components: + - type: Transform + pos: 13.242597,44.676964 + parent: 1 + - uid: 3573 + components: + - type: Transform + pos: 13.3649025,44.530193 + parent: 1 +- proto: ClothingHeadHatBeretBrigmedic + entities: + - uid: 14981 + components: + - type: Transform + pos: 44.533215,5.878575 + parent: 1 +- proto: ClothingHeadHatBeretEngineering + entities: + - uid: 15643 + components: + - type: Transform + pos: -28.321669,-41.490944 + parent: 1 +- proto: ClothingHeadHatBeretFrench + entities: + - uid: 14881 + components: + - type: Transform + pos: 38.51752,-5.5256205 + parent: 1 +- proto: ClothingHeadHatBunny + entities: + - uid: 14986 + components: + - type: Transform + pos: 33.531742,8.449039 + parent: 1 +- proto: ClothingHeadHatCargosoftFlipped + entities: + - uid: 310 + components: + - type: Transform + pos: -23.612333,33.557373 + parent: 1 +- proto: ClothingHeadHatCentcom + entities: + - uid: 14923 + components: + - type: Transform + pos: 14.541393,-29.493603 + parent: 1 +- proto: ClothingHeadHatCone + entities: + - uid: 15194 + components: + - type: Transform + pos: -49.5,56.5 + parent: 1 + - uid: 15195 + components: + - type: Transform + pos: -47.5,54.5 + parent: 1 + - uid: 15196 + components: + - type: Transform + pos: -48.5,55.5 + parent: 1 +- proto: ClothingHeadHatCowboyBountyHunter + entities: + - uid: 14974 + components: + - type: Transform + pos: 54.586662,19.444506 + parent: 1 +- proto: ClothingHeadHatCowboyBrown + entities: + - uid: 14982 + components: + - type: Transform + pos: 39.567516,4.533884 + parent: 1 +- proto: ClothingHeadHatFedoraBrown + entities: + - uid: 6450 + components: + - type: Transform + pos: -21.52666,49.59364 + parent: 1 +- proto: ClothingHeadHatFezMantis + entities: + - uid: 4843 + components: + - type: Transform + pos: 23.585608,4.629373 + parent: 1 +- proto: ClothingHeadHatHoodCulthood + entities: + - uid: 2496 + components: + - type: Transform + pos: 14.37212,-10.224248 + parent: 1 + - uid: 2584 + components: + - type: Transform + pos: 14.555579,-10.297631 + parent: 1 + - uid: 6042 + components: + - type: Transform + pos: 26.820305,35.782543 + parent: 1 +- proto: ClothingHeadHatJesterAlt + entities: + - uid: 2451 + components: + - type: Transform + pos: -38.35536,1.7490087 + parent: 1 +- proto: ClothingHeadHatPirate + entities: + - uid: 5970 + components: + - type: Transform + pos: 18.822765,35.709778 + parent: 1 + - uid: 6266 + components: + - type: Transform + pos: 18.635265,35.819153 + parent: 1 +- proto: ClothingHeadHatWelding + entities: + - uid: 5185 + components: + - type: Transform + pos: 14.477269,7.010022 + parent: 1 + - uid: 5433 + components: + - type: Transform + pos: 14.555394,6.822522 + parent: 1 +- proto: ClothingHeadHatWizard + entities: + - uid: 6341 + components: + - type: Transform + pos: 18.50282,3.5793252 + parent: 1 +- proto: ClothingHeadHatXmasCrown + entities: + - uid: 6372 + components: + - type: Transform + pos: 28.458992,27.532146 + parent: 1 +- proto: ClothingHeadHelmetBone + entities: + - uid: 14930 + components: + - type: Transform + pos: 40.534378,44.48895 + parent: 1 +- proto: ClothingHeadHelmetSwatSyndicate + entities: + - uid: 14934 + components: + - type: Transform + pos: 44.51574,22.456114 + parent: 1 +- proto: ClothingHeadHelmetThunderdome + entities: + - uid: 6081 + components: + - type: Transform + pos: 26.443941,63.998276 + parent: 1 + - uid: 6197 + components: + - type: Transform + pos: 26.682438,63.998276 + parent: 1 +- proto: ClothingHeadsetMining + entities: + - uid: 712 + components: + - type: Transform + pos: -6.4158845,32.60288 + parent: 1 +- proto: ClothingMaskBee + entities: + - uid: 1231 + components: + - type: Transform + pos: -10.493215,25.594578 + parent: 1 +- proto: ClothingMaskBreath + entities: + - uid: 6468 + components: + - type: Transform + pos: -0.3231194,40.907677 + parent: 1 + - uid: 12665 + components: + - type: Transform + pos: -20.41653,16.480238 + parent: 1 +- proto: ClothingMaskBreathMedical + entities: + - uid: 12683 + components: + - type: Transform + pos: 20.66026,55.4487 + parent: 1 +- proto: ClothingMaskGas + entities: + - uid: 4552 + components: + - type: Transform + pos: -29.219551,42.40764 + parent: 1 + - uid: 4627 + components: + - type: Transform + pos: -31.503315,49.549286 + parent: 1 + - uid: 12668 + components: + - type: Transform + pos: -17.412066,-18.50259 + parent: 1 + - uid: 12777 + components: + - type: Transform + pos: -15.597553,-12.4136305 + parent: 1 + - uid: 12810 + components: + - type: Transform + pos: -15.378803,-12.5542555 + parent: 1 + - uid: 12813 + components: + - type: Transform + pos: -15.488178,-12.4917555 + parent: 1 +- proto: ClothingMaskGasAtmos + entities: + - uid: 12826 + components: + - type: Transform + pos: -9.445021,-6.518667 + parent: 1 + - uid: 12827 + components: + - type: Transform + pos: -9.585646,-6.362417 + parent: 1 +- proto: ClothingMaskGasCaptain + entities: + - uid: 12435 + components: + - type: Transform + pos: -2.3037984,6.324908 + parent: 1 +- proto: ClothingMaskSexyClown + entities: + - uid: 2660 + components: + - type: Transform + pos: -39.4641,4.548826 + parent: 1 +- proto: ClothingNeckScarfStripedSyndieRed + entities: + - uid: 6078 + components: + - type: Transform + parent: 6076 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: ClothingNeckTransPin + entities: + - uid: 11220 + components: + - type: Transform + pos: -39.29348,-0.7646979 + parent: 1 +- proto: ClothingOuterCoatMantis + entities: + - uid: 4654 + components: + - type: Transform + pos: 24.088171,4.4501624 + parent: 1 +- proto: ClothingOuterCoatPirate + entities: + - uid: 5181 + components: + - type: Transform + pos: 18.612837,35.537903 + parent: 1 + - uid: 6261 + components: + - type: Transform + pos: 18.425337,35.584778 + parent: 1 +- proto: ClothingOuterRobesCult + entities: + - uid: 2439 + components: + - type: Transform + pos: 14.249814,-10.456629 + parent: 1 + - uid: 3481 + components: + - type: Transform + pos: 14.029664,-10.432168 + parent: 1 + - uid: 5679 + components: + - type: Transform + pos: 26.74218,35.54817 + parent: 1 +- proto: ClothingOuterStraightjacket + entities: + - uid: 4265 + components: + - type: Transform + parent: 4263 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: ClothingOuterSuitRad + entities: + - uid: 15622 + components: + - type: Transform + pos: -30.610287,-40.27661 + parent: 1 + - uid: 15623 + components: + - type: Transform + pos: -30.445757,-40.36622 + parent: 1 + - uid: 15624 + components: + - type: Transform + pos: -30.251312,-40.500626 + parent: 1 + - uid: 15682 + components: + - type: Transform + pos: -27.598003,-25.252539 + parent: 1 + - uid: 15683 + components: + - type: Transform + pos: -27.49829,-25.352102 + parent: 1 +- proto: ClothingOuterWinterAtmos + entities: + - uid: 2853 + components: + - type: Transform + parent: 2442 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 2860 + components: + - type: Transform + parent: 3461 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 6335 + components: + - type: Transform + pos: -13.504344,-19.339108 + parent: 1 +- proto: ClothingOuterWinterBar + entities: + - uid: 2887 + components: + - type: Transform + parent: 389 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: ClothingOuterWinterCargo + entities: + - uid: 12828 + components: + - type: Transform + pos: -19.566172,26.819283 + parent: 1 + - uid: 12829 + components: + - type: Transform + pos: -19.409922,26.725533 + parent: 1 + - uid: 12830 + components: + - type: Transform + pos: -19.253672,26.663033 + parent: 1 +- proto: ClothingOuterWinterClown + entities: + - uid: 2395 + components: + - type: Transform + pos: -38.370983,1.4833837 + parent: 1 +- proto: ClothingOuterWinterCoat + entities: + - uid: 12729 + components: + - type: Transform + pos: 26.537563,64.5023 + parent: 1 +- proto: ClothingOuterWinterEngi + entities: + - uid: 2909 + components: + - type: Transform + parent: 2707 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 2911 + components: + - type: Transform + parent: 2708 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: ClothingOuterWinterGen + entities: + - uid: 12459 + components: + - type: Transform + pos: 34.819717,42.480103 + parent: 1 +- proto: ClothingOuterWinterHydro + entities: + - uid: 2281 + components: + - type: Transform + pos: 12.490292,27.649427 + parent: 1 + - uid: 12795 + components: + - type: Transform + pos: 12.595995,27.551485 + parent: 1 +- proto: ClothingOuterWinterJani + entities: + - uid: 1457 + components: + - type: Transform + parent: 4512 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 1460 + components: + - type: Transform + parent: 4513 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: ClothingOuterWinterMed + entities: + - uid: 3038 + components: + - type: Transform + parent: 3303 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 3050 + components: + - type: Transform + parent: 3657 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: ClothingOuterWinterMime + entities: + - uid: 2852 + components: + - type: Transform + pos: -37.464733,9.702133 + parent: 1 +- proto: ClothingOuterWinterMiner + entities: + - uid: 12825 + components: + - type: Transform + pos: -0.23166943,33.273052 + parent: 1 + - uid: 12834 + components: + - type: Transform + pos: -0.23166943,33.116802 + parent: 1 +- proto: ClothingOuterWinterMusician + entities: + - uid: 2659 + components: + - type: Transform + pos: -38.52919,11.619913 + parent: 1 +- proto: ClothingOuterWinterPara + entities: + - uid: 3072 + components: + - type: Transform + parent: 2283 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 3075 + components: + - type: Transform + parent: 2802 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: ClothingOuterWinterRobo + entities: + - uid: 3125 + components: + - type: Transform + parent: 65 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 3187 + components: + - type: Transform + parent: 1533 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: ClothingOuterWinterSci + entities: + - uid: 3124 + components: + - type: Transform + parent: 65 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 3216 + components: + - type: Transform + parent: 1533 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: ClothingOuterWinterSec + entities: + - uid: 3251 + components: + - type: Transform + parent: 1432 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 3264 + components: + - type: Transform + parent: 1627 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: ClothingOuterWinterViro + entities: + - uid: 3579 + components: + - type: Transform + pos: 8.495008,48.529636 + parent: 1 + - uid: 12644 + components: + - type: Transform + pos: 13.555373,64.415436 + parent: 1 + - uid: 12645 + components: + - type: Transform + pos: 13.742873,64.46231 + parent: 1 +- proto: ClothingOuterWinterWarden + entities: + - uid: 3265 + components: + - type: Transform + parent: 2018 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: ClothingOuterWizard + entities: + - uid: 6294 + components: + - type: Transform + pos: 18.59657,3.2512002 + parent: 1 +- proto: ClothingShoesBootsCombat + entities: + - uid: 9281 + components: + - type: Transform + pos: 13.458061,21.481964 + parent: 1 +- proto: ClothingShoesBootsCowboyBrown + entities: + - uid: 14983 + components: + - type: Transform + pos: 39.49196,4.533884 + parent: 1 +- proto: ClothingShoesBootsLaceup + entities: + - uid: 5230 + components: + - type: Transform + pos: 45.47454,11.491453 + parent: 1 +- proto: ClothingShoesBootsMag + entities: + - uid: 3181 + components: + - type: Transform + pos: -11.590075,-0.41465855 + parent: 1 + - uid: 3467 + components: + - type: Transform + pos: -11.516691,-0.5369644 + parent: 1 +- proto: ClothingShoesColorBlack + entities: + - uid: 14953 + components: + - type: Transform + pos: 6.450919,-19.495096 + parent: 1 +- proto: ClothingShoesWizard + entities: + - uid: 6016 + components: + - type: Transform + pos: 18.620007,2.8293252 + parent: 1 +- proto: ClothingUniformJumpskirtBrigmedic + entities: + - uid: 14979 + components: + - type: Transform + pos: 44.73209,5.415653 + parent: 1 +- proto: ClothingUniformJumpskirtJanimaidmini + entities: + - uid: 5231 + components: + - type: Transform + pos: 45.547924,11.931754 + parent: 1 +- proto: ClothingUniformJumpskirtPrisoner + entities: + - uid: 12836 + components: + - type: Transform + pos: -35.787888,-3.3965871 + parent: 1 +- proto: ClothingUniformJumpsuitBrigmedic + entities: + - uid: 14980 + components: + - type: Transform + pos: 44.427933,5.394611 + parent: 1 +- proto: ClothingUniformJumpsuitCentcomAgent + entities: + - uid: 14922 + components: + - type: Transform + pos: 14.532035,-29.42814 + parent: 1 +- proto: ClothingUniformJumpsuitHawaiBlack + entities: + - uid: 14952 + components: + - type: Transform + pos: 6.514087,-18.569254 + parent: 1 +- proto: ClothingUniformJumpsuitPirate + entities: + - uid: 6230 + components: + - type: Transform + pos: 19.05714,35.412903 + parent: 1 + - uid: 6329 + components: + - type: Transform + pos: 19.27589,35.397278 + parent: 1 +- proto: ClothingUniformJumpsuitPrisoner + entities: + - uid: 12809 + components: + - type: Transform + pos: -35.881638,-3.2715871 + parent: 1 +- proto: ClothingUniformJumpsuitPyjamaSyndicateBlack + entities: + - uid: 14954 + components: + - type: Transform + pos: 7.4616194,-18.569254 + parent: 1 +- proto: ClusterBangFull + entities: + - uid: 14924 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.480011,-13.515643 + parent: 1 +- proto: CombatKnife + entities: + - uid: 9597 + components: + - type: Transform + pos: 14.04513,21.469732 + parent: 1 +- proto: ComfyChair + entities: + - uid: 137 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,40.5 + parent: 1 + - uid: 140 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,26.5 + parent: 1 + - uid: 157 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,27.5 + parent: 1 + - uid: 448 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,27.5 + parent: 1 + - uid: 484 + components: + - type: Transform + pos: -29.5,34.5 + parent: 1 + - uid: 550 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,40.5 + parent: 1 + - uid: 606 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,16.5 + parent: 1 + - uid: 951 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,26.5 + parent: 1 + - uid: 1089 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,5.5 + parent: 1 + - uid: 1349 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,27.5 + parent: 1 + - uid: 1757 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,6.5 + parent: 1 + - uid: 2295 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,3.5 + parent: 1 + - uid: 2589 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,13.5 + parent: 1 + - uid: 2997 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,-8.5 + parent: 1 + - uid: 3309 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,-19.5 + parent: 1 + - uid: 4380 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,50.5 + parent: 1 + - uid: 4472 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,50.5 + parent: 1 + - uid: 6336 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,3.5 + parent: 1 +- proto: CommsComputerCircuitboard + entities: + - uid: 2509 + components: + - type: Transform + pos: -31.539478,-8.513383 + parent: 1 +- proto: ComputerAlert + entities: + - uid: 15705 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-23.5 + parent: 1 +- proto: ComputerAnalysisConsole + entities: + - uid: 189 + components: + - type: Transform + pos: 13.5,15.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 1570: + - ArtifactAnalyzerSender: ArtifactAnalyzerReceiver +- proto: ComputerBroken + entities: + - uid: 1205 + components: + - type: Transform + pos: 17.5,55.5 + parent: 1 + - uid: 3908 + components: + - type: Transform + pos: -4.5,50.5 + parent: 1 + - uid: 6344 + components: + - type: Transform + pos: 20.5,0.5 + parent: 1 +- proto: ComputerCargoBounty + entities: + - uid: 679 + components: + - type: Transform + pos: -23.5,29.5 + parent: 1 +- proto: ComputerCargoOrders + entities: + - uid: 63 + components: + - type: Transform + pos: -20.5,34.5 + parent: 1 + - uid: 15706 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-24.5 + parent: 1 +- proto: ComputerCloningConsole + entities: + - uid: 14373 + components: + - type: Transform + pos: 34.5,44.5 + parent: 1 +- proto: ComputerComms + entities: + - uid: 167 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,4.5 + parent: 1 + - uid: 1476 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,5.5 + parent: 1 +- proto: ComputerCrewMonitoring + entities: + - uid: 345 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,12.5 + parent: 1 + - uid: 886 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,44.5 + parent: 1 + - uid: 5023 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,8.5 + parent: 1 +- proto: ComputerCriminalRecords + entities: + - uid: 2078 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,14.5 + parent: 1 + - uid: 2089 + components: + - type: Transform + pos: -30.5,11.5 + parent: 1 + - uid: 3948 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,58.5 + parent: 1 +- proto: ComputerFrame + entities: + - uid: 1193 + components: + - type: Transform + pos: -18.5,34.5 + parent: 1 + - uid: 1226 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,8.5 + parent: 1 + - uid: 1249 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,54.5 + parent: 1 + - uid: 4231 + components: + - type: Transform + pos: 21.5,0.5 + parent: 1 +- proto: ComputerId + entities: + - uid: 496 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,4.5 + parent: 1 + - uid: 654 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,13.5 + parent: 1 +- proto: ComputerMassMedia + entities: + - uid: 4223 + components: + - type: Transform + pos: -8.5,56.5 + parent: 1 +- proto: ComputerPowerMonitoring + entities: + - uid: 905 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,4.5 + parent: 1 + - uid: 1221 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-4.5 + parent: 1 + - uid: 2965 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-14.5 + parent: 1 + - uid: 2996 + components: + - type: Transform + pos: -26.5,-8.5 + parent: 1 + - uid: 15708 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,-24.5 + parent: 1 +- proto: ComputerRadar + entities: + - uid: 3026 + components: + - type: Transform + pos: 16.5,55.5 + parent: 1 + - uid: 3420 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,44.5 + parent: 1 + - uid: 15707 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-22.5 + parent: 1 + - uid: 15710 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,-24.5 + parent: 1 +- proto: ComputerResearchAndDevelopment + entities: + - uid: 1344 + components: + - type: Transform + pos: 9.5,20.5 + parent: 1 + - uid: 1465 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,15.5 + parent: 1 + - uid: 1817 + components: + - type: Transform + pos: 14.5,15.5 + parent: 1 +- proto: ComputerSalvageExpedition + entities: + - uid: 332 + components: + - type: Transform + pos: -3.5,34.5 + parent: 1 +- proto: ComputerShuttleCargo + entities: + - uid: 186 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,27.5 + parent: 1 +- proto: ComputerShuttleSalvage + entities: + - uid: 331 + components: + - type: Transform + pos: -1.5,34.5 + parent: 1 +- proto: ComputerSolarControl + entities: + - uid: 3279 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-15.5 + parent: 1 + - uid: 4317 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,33.5 + parent: 1 + - uid: 5003 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,40.5 + parent: 1 + - uid: 15709 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,-24.5 + parent: 1 +- proto: ComputerStationRecords + entities: + - uid: 2425 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,18.5 + parent: 1 + - uid: 3068 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-16.5 + parent: 1 +- proto: ComputerSurveillanceCameraMonitor + entities: + - uid: 1810 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,14.5 + parent: 1 + - uid: 2090 + components: + - type: Transform + pos: -29.5,11.5 + parent: 1 +- proto: ComputerTechnologyDiskTerminal + entities: + - uid: 277 + components: + - type: Transform + pos: 14.5,11.5 + parent: 1 +- proto: ConveyorBelt + entities: + - uid: 1449 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,31.5 + parent: 1 + - type: DeviceLinkSink + links: + - 12533 + - uid: 3730 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,56.5 + parent: 1 + - uid: 5526 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,56.5 + parent: 1 + - uid: 5820 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,56.5 + parent: 1 + - uid: 5833 + components: + - type: Transform + pos: 27.5,57.5 + parent: 1 + - uid: 5834 + components: + - type: Transform + pos: 27.5,58.5 + parent: 1 + - uid: 5835 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,58.5 + parent: 1 + - uid: 5836 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,58.5 + parent: 1 + - uid: 5837 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,56.5 + parent: 1 + - uid: 12534 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,31.5 + parent: 1 + - type: DeviceLinkSink + links: + - 12533 + - uid: 12535 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,31.5 + parent: 1 + - type: DeviceLinkSink + links: + - 12533 +- proto: CrateArtifactContainer + entities: + - uid: 1555 + components: + - type: Transform + pos: 15.5,15.5 + parent: 1 +- proto: CrateCoffin + entities: + - uid: 5794 + components: + - type: Transform + pos: 19.5,0.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.1496 + moles: + - 1.7459823 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 +- proto: CrateEmptySpawner + entities: + - uid: 1029 + components: + - type: Transform + pos: -29.5,28.5 + parent: 1 + - uid: 1357 + components: + - type: Transform + pos: -27.5,26.5 + parent: 1 + - uid: 13411 + components: + - type: Transform + pos: -10.5,46.5 + parent: 1 + - uid: 13412 + components: + - type: Transform + pos: -6.5,48.5 + parent: 1 + - uid: 13413 + components: + - type: Transform + pos: -10.5,48.5 + parent: 1 + - uid: 13414 + components: + - type: Transform + pos: -10.5,49.5 + parent: 1 + - uid: 13415 + components: + - type: Transform + pos: -10.5,45.5 + parent: 1 + - uid: 13417 + components: + - type: Transform + pos: -6.5,45.5 + parent: 1 + - uid: 13418 + components: + - type: Transform + pos: -6.5,49.5 + parent: 1 + - uid: 13419 + components: + - type: Transform + pos: -5.5,48.5 + parent: 1 + - uid: 13420 + components: + - type: Transform + pos: -9.5,45.5 + parent: 1 + - uid: 13511 + components: + - type: Transform + pos: -6.5,43.5 + parent: 1 + - uid: 13514 + components: + - type: Transform + pos: -5.5,37.5 + parent: 1 + - uid: 13519 + components: + - type: Transform + pos: -6.5,38.5 + parent: 1 + - uid: 13536 + components: + - type: Transform + pos: -5.5,43.5 + parent: 1 + - uid: 14927 + components: + - type: Transform + pos: 20.5,-29.5 + parent: 1 +- proto: CrateEngineeringCableBulk + entities: + - uid: 2742 + components: + - type: Transform + pos: -19.5,-12.5 + parent: 1 +- proto: CrateEngineeringCableHV + entities: + - uid: 4316 + components: + - type: Transform + pos: 30.5,33.5 + parent: 1 + - uid: 5183 + components: + - type: Transform + pos: -34.5,40.5 + parent: 1 + - uid: 15729 + components: + - type: Transform + pos: -30.5,-36.5 + parent: 1 +- proto: CrateEngineeringSingularityCollector + entities: + - uid: 15661 + components: + - type: Transform + pos: -13.5,-41.5 + parent: 1 +- proto: CrateEngineeringSolar + entities: + - uid: 2264 + components: + - type: Transform + pos: -24.5,-2.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.14673 + moles: + - 1.7459903 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - uid: 5755 + components: + - type: Transform + pos: 25.5,22.5 + parent: 1 +- proto: CrateEngineeringTeslaCoil + entities: + - uid: 14410 + components: + - type: Transform + pos: -6.5,-29.5 + parent: 1 + - uid: 14411 + components: + - type: Transform + pos: -6.5,-30.5 + parent: 1 + - uid: 14412 + components: + - type: Transform + pos: -7.5,-29.5 + parent: 1 + - uid: 14413 + components: + - type: Transform + pos: -7.5,-30.5 + parent: 1 +- proto: CrateFilledSpawner + entities: + - uid: 896 + components: + - type: Transform + pos: -25.5,27.5 + parent: 1 + - uid: 1275 + components: + - type: Transform + pos: -27.5,27.5 + parent: 1 + - uid: 4538 + components: + - type: Transform + pos: -4.5,56.5 + parent: 1 + - uid: 5578 + components: + - type: Transform + pos: -9.5,48.5 + parent: 1 + - uid: 6029 + components: + - type: Transform + pos: 8.5,-0.5 + parent: 1 + - uid: 6328 + components: + - type: Transform + pos: -29.5,4.5 + parent: 1 + - uid: 6378 + components: + - type: Transform + pos: -32.5,30.5 + parent: 1 + - uid: 6421 + components: + - type: Transform + pos: 29.5,14.5 + parent: 1 + - uid: 7689 + components: + - type: Transform + pos: -9.5,49.5 + parent: 1 + - uid: 13416 + components: + - type: Transform + pos: -9.5,46.5 + parent: 1 + - uid: 13442 + components: + - type: Transform + pos: -5.5,45.5 + parent: 1 + - uid: 13505 + components: + - type: Transform + pos: -6.5,46.5 + parent: 1 + - uid: 13506 + components: + - type: Transform + pos: -5.5,46.5 + parent: 1 + - uid: 13507 + components: + - type: Transform + pos: -5.5,38.5 + parent: 1 + - uid: 13508 + components: + - type: Transform + pos: -9.5,40.5 + parent: 1 + - uid: 13529 + components: + - type: Transform + pos: -9.5,43.5 + parent: 1 + - uid: 13530 + components: + - type: Transform + pos: -9.5,42.5 + parent: 1 + - uid: 13537 + components: + - type: Transform + pos: -10.5,43.5 + parent: 1 + - uid: 13538 + components: + - type: Transform + pos: -6.5,42.5 + parent: 1 +- proto: CrateHydroponicsSeedsMedicinal + entities: + - uid: 15327 + components: + - type: Transform + pos: -47.5,-4.5 + parent: 1 + - type: Lock + locked: False +- proto: CrateNPCCow + entities: + - uid: 887 + components: + - type: Transform + pos: 9.5,31.5 + parent: 1 +- proto: CrateNPCHamlet + entities: + - uid: 25 + components: + - type: Transform + pos: -6.5,4.5 + parent: 1 +- proto: CratePlasma + entities: + - uid: 12661 + components: + - type: Transform + pos: -31.5,-2.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.14673 + moles: + - 1.7459903 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 12662 + - 12663 + - 12664 + - 12775 + - 12837 + - 12838 + - 12842 + - 12854 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + - uid: 12862 + components: + - type: MetaData + name: uranium crate + - type: Transform + pos: -31.5,-3.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.14673 + moles: + - 1.7459903 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 12928 + - 12942 + - 12984 + - 13168 + - 13191 + - 13193 + - 13195 + - 13204 + - 13284 + - 13285 + - 13286 + - 13287 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: CrateRCD + entities: + - uid: 15660 + components: + - type: Transform + pos: -14.5,-41.5 + parent: 1 +- proto: CrateServiceJanitorialSupplies + entities: + - uid: 4647 + components: + - type: Transform + pos: 18.5,25.5 + parent: 1 +- proto: CrayonBox + entities: + - uid: 2599 + components: + - type: Transform + pos: -37.98036,9.545883 + parent: 1 + - uid: 2886 + components: + - type: Transform + pos: 12.578749,46.604237 + parent: 1 +- proto: CrayonMime + entities: + - uid: 2343 + components: + - type: Transform + pos: -37.21711,9.460089 + parent: 1 +- proto: Crematorium + entities: + - uid: 3084 + components: + - type: Transform + pos: 12.5,-7.5 + parent: 1 +- proto: CrewMonitoringServer + entities: + - uid: 1814 + components: + - type: Transform + pos: 24.5,16.5 + parent: 1 + - type: SingletonDeviceNetServer + active: False + available: False +- proto: Crowbar + entities: + - uid: 1729 + components: + - type: Transform + pos: 16.519497,14.671222 + parent: 1 + - uid: 4459 + components: + - type: Transform + pos: 23.610727,27.48599 + parent: 1 + - uid: 5064 + components: + - type: Transform + pos: -10.5129385,60.395035 + parent: 1 +- proto: CrowbarRed + entities: + - uid: 4139 + components: + - type: Transform + pos: 21.610321,23.619514 + parent: 1 + - uid: 5195 + components: + - type: Transform + pos: 34.57258,42.509853 + parent: 1 +- proto: CryogenicSleepUnitSpawnerPrisoner + entities: + - uid: 15319 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -52.5,-11.5 + parent: 1 + - uid: 15320 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -52.5,-14.5 + parent: 1 + - uid: 15321 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -54.5,-11.5 + parent: 1 + - uid: 15322 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -54.5,-14.5 + parent: 1 +- proto: CrystalSpawner + entities: + - uid: 14925 + components: + - type: Transform + pos: 28.5,-21.5 + parent: 1 +- proto: DawInstrumentMachineCircuitboard + entities: + - uid: 2337 + components: + - type: Transform + pos: -36.490143,11.541788 + parent: 1 +- proto: DefaultStationBeacon + entities: + - uid: 16536 + components: + - type: Transform + pos: -0.5,24.5 + parent: 1 +- proto: DefaultStationBeaconAI + entities: + - uid: 16307 + components: + - type: Transform + pos: 35.5,12.5 + parent: 1 +- proto: DefaultStationBeaconAICore + entities: + - uid: 16479 + components: + - type: Transform + pos: 45.5,12.5 + parent: 1 +- proto: DefaultStationBeaconAME + entities: + - uid: 16480 + components: + - type: Transform + pos: -29.5,-4.5 + parent: 1 +- proto: DefaultStationBeaconAnomalyGenerator + entities: + - uid: 16481 + components: + - type: Transform + pos: 9.5,8.5 + parent: 1 +- proto: DefaultStationBeaconArmory + entities: + - uid: 16482 + components: + - type: Transform + pos: -23.5,4.5 + parent: 1 +- proto: DefaultStationBeaconArrivals + entities: + - uid: 14403 + components: + - type: Transform + pos: -14.5,63.5 + parent: 1 + - uid: 16483 + components: + - type: Transform + pos: -28.5,63.5 + parent: 1 +- proto: DefaultStationBeaconArtifactLab + entities: + - uid: 16514 + components: + - type: Transform + pos: 13.5,14.5 + parent: 1 +- proto: DefaultStationBeaconAtmospherics + entities: + - uid: 16515 + components: + - type: Transform + pos: -2.5,-13.5 + parent: 1 +- proto: DefaultStationBeaconBar + entities: + - uid: 16516 + components: + - type: Transform + pos: -5.5,28.5 + parent: 1 +- proto: DefaultStationBeaconBotany + entities: + - uid: 16517 + components: + - type: Transform + pos: 10.5,27.5 + parent: 1 +- proto: DefaultStationBeaconBoxing + entities: + - uid: 16518 + components: + - type: Transform + pos: 23.5,62.5 + parent: 1 +- proto: DefaultStationBeaconBridge + entities: + - uid: 16519 + components: + - type: Transform + pos: -8.5,6.5 + parent: 1 +- proto: DefaultStationBeaconBrig + entities: + - uid: 16520 + components: + - type: Transform + pos: -23.5,16.5 + parent: 1 +- proto: DefaultStationBeaconCameraServerRoom + entities: + - uid: 16523 + components: + - type: Transform + pos: 20.5,29.5 + parent: 1 +- proto: DefaultStationBeaconCaptainsQuarters + entities: + - uid: 16524 + components: + - type: Transform + pos: -1.5,5.5 + parent: 1 +- proto: DefaultStationBeaconCargoBay + entities: + - uid: 16525 + components: + - type: Transform + pos: -28.5,27.5 + parent: 1 +- proto: DefaultStationBeaconCargoReception + entities: + - uid: 13628 + components: + - type: Transform + pos: -21.5,33.5 + parent: 1 +- proto: DefaultStationBeaconCERoom + entities: + - uid: 16521 + components: + - type: Transform + pos: -18.5,-19.5 + parent: 1 +- proto: DefaultStationBeaconChapel + entities: + - uid: 16526 + components: + - type: Transform + pos: 12.5,2.5 + parent: 1 +- proto: DefaultStationBeaconChemistry + entities: + - uid: 16527 + components: + - type: Transform + pos: 19.5,43.5 + parent: 1 +- proto: DefaultStationBeaconCMORoom + entities: + - uid: 16522 + components: + - type: Transform + pos: 20.5,54.5 + parent: 1 +- proto: DefaultStationBeaconConferenceRoom + entities: + - uid: 16529 + components: + - type: Transform + pos: -8.5,9.5 + parent: 1 +- proto: DefaultStationBeaconDetectiveRoom + entities: + - uid: 16530 + components: + - type: Transform + pos: -34.5,17.5 + parent: 1 +- proto: DefaultStationBeaconDisposals + entities: + - uid: 16531 + components: + - type: Transform + pos: 28.5,59.5 + parent: 1 +- proto: DefaultStationBeaconEngineering + entities: + - uid: 16533 + components: + - type: Transform + pos: -20.5,-7.5 + parent: 1 +- proto: DefaultStationBeaconEvac + entities: + - uid: 16535 + components: + - type: Transform + pos: -44.5,55.5 + parent: 1 +- proto: DefaultStationBeaconEVAStorage + entities: + - uid: 16532 + components: + - type: Transform + pos: -11.5,-2.5 + parent: 1 +- proto: DefaultStationBeaconGravGen + entities: + - uid: 16306 + components: + - type: Transform + pos: -35.5,48.5 + parent: 1 +- proto: DefaultStationBeaconHOPOffice + entities: + - uid: 16537 + components: + - type: Transform + pos: -4.5,12.5 + parent: 1 +- proto: DefaultStationBeaconHOSRoom + entities: + - uid: 16538 + components: + - type: Transform + pos: -29.5,10.5 + parent: 1 +- proto: DefaultStationBeaconJanitorsCloset + entities: + - uid: 16539 + components: + - type: Transform + pos: 19.5,22.5 + parent: 1 +- proto: DefaultStationBeaconKitchen + entities: + - uid: 16540 + components: + - type: Transform + pos: 8.5,33.5 + parent: 1 +- proto: DefaultStationBeaconLawOffice + entities: + - uid: 16542 + components: + - type: Transform + pos: 0.5,62.5 + parent: 1 +- proto: DefaultStationBeaconLibrary + entities: + - uid: 16543 + components: + - type: Transform + pos: -19.5,41.5 + parent: 1 +- proto: DefaultStationBeaconMailroom + entities: + - uid: 5178 + components: + - type: Transform + pos: -19.5,27.5 + parent: 1 +- proto: DefaultStationBeaconMantis + entities: + - uid: 16547 + components: + - type: Transform + pos: 23.5,3.5 + parent: 1 +- proto: DefaultStationBeaconMedbay + entities: + - uid: 16548 + components: + - type: Transform + pos: 12.5,50.5 + parent: 1 +- proto: DefaultStationBeaconMedical + entities: + - uid: 16549 + components: + - type: Transform + pos: 14.5,42.5 + parent: 1 +- proto: DefaultStationBeaconMetempsychosis + entities: + - uid: 16528 + components: + - type: Transform + pos: 34.5,43.5 + parent: 1 +- proto: DefaultStationBeaconMorgue + entities: + - uid: 16550 + components: + - type: Transform + pos: 28.5,45.5 + parent: 1 +- proto: DefaultStationBeaconPark + entities: + - uid: 16551 + components: + - type: Transform + pos: -7.5,24.5 + parent: 1 + - uid: 16555 + components: + - type: Transform + pos: -7.5,22.5 + parent: 1 +- proto: DefaultStationBeaconPermaBrig + entities: + - uid: 16552 + components: + - type: Transform + pos: -43.5,-7.5 + parent: 1 +- proto: DefaultStationBeaconProber + entities: + - uid: 16556 + components: + - type: Transform + pos: 25.5,17.5 + parent: 1 +- proto: DefaultStationBeaconQMRoom + entities: + - uid: 16541 + components: + - type: Transform + pos: -29.5,32.5 + parent: 1 +- proto: DefaultStationBeaconRDRoom + entities: + - uid: 16546 + components: + - type: Transform + pos: 21.5,16.5 + parent: 1 +- proto: DefaultStationBeaconReporter + entities: + - uid: 16557 + components: + - type: Transform + pos: -9.5,57.5 + parent: 1 +- proto: DefaultStationBeaconRND + entities: + - uid: 16559 + components: + - type: Transform + pos: 8.5,20.5 + parent: 1 +- proto: DefaultStationBeaconRobotics + entities: + - uid: 16560 + components: + - type: Transform + pos: 12.5,6.5 + parent: 1 +- proto: DefaultStationBeaconSalvage + entities: + - uid: 16573 + components: + - type: Transform + pos: -2.5,33.5 + parent: 1 +- proto: DefaultStationBeaconScience + entities: + - uid: 16534 + components: + - type: Transform + pos: 9.5,17.5 + parent: 1 +- proto: DefaultStationBeaconSecurity + entities: + - uid: 16561 + components: + - type: Transform + pos: -19.5,8.5 + parent: 1 +- proto: DefaultStationBeaconServerRoom + entities: + - uid: 16558 + components: + - type: Transform + pos: 25.5,14.5 + parent: 1 +- proto: DefaultStationBeaconSolars + entities: + - uid: 16562 + components: + - type: Transform + pos: -35.5,41.5 + parent: 1 + - uid: 16563 + components: + - type: Transform + pos: 31.5,34.5 + parent: 1 +- proto: DefaultStationBeaconSupply + entities: + - uid: 16545 + components: + - type: Transform + pos: -25.5,33.5 + parent: 1 +- proto: DefaultStationBeaconTechVault + entities: + - uid: 16564 + components: + - type: Transform + pos: -32.5,-9.5 + parent: 1 +- proto: DefaultStationBeaconTelecoms + entities: + - uid: 16565 + components: + - type: Transform + pos: -29.5,-14.5 + parent: 1 +- proto: DefaultStationBeaconTheater + entities: + - uid: 16566 + components: + - type: Transform + pos: -38.5,7.5 + parent: 1 + - uid: 16567 + components: + - type: Transform + pos: -38.5,2.5 + parent: 1 + - uid: 16568 + components: + - type: Transform + pos: -38.5,12.5 + parent: 1 +- proto: DefaultStationBeaconToolRoom + entities: + - uid: 16569 + components: + - type: Transform + pos: -1.5,52.5 + parent: 1 +- proto: DefaultStationBeaconVault + entities: + - uid: 16570 + components: + - type: Transform + pos: 0.5,-4.5 + parent: 1 +- proto: DefaultStationBeaconVirology + entities: + - uid: 16571 + components: + - type: Transform + pos: 10.5,63.5 + parent: 1 +- proto: DefaultStationBeaconWardensOffice + entities: + - uid: 16572 + components: + - type: Transform + pos: -19.5,15.5 + parent: 1 +- proto: DefibrillatorCabinetFilled + entities: + - uid: 1396 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,52.5 + parent: 1 + - uid: 3349 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,49.5 + parent: 1 + - uid: 3745 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,55.5 + parent: 1 + - uid: 5993 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,17.5 + parent: 1 + - uid: 6071 + components: + - type: Transform + pos: -17.5,-9.5 + parent: 1 + - uid: 6178 + components: + - type: Transform + pos: -9.5,10.5 + parent: 1 + - uid: 6523 + components: + - type: Transform + pos: -28.5,30.5 + parent: 1 + - uid: 6524 + components: + - type: Transform + pos: -1.5,31.5 + parent: 1 + - uid: 6529 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,11.5 + parent: 1 + - uid: 6537 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,38.5 + parent: 1 +- proto: DeployableBarrier + entities: + - uid: 499 + components: + - type: Transform + pos: -24.5,7.5 + parent: 1 + - uid: 1754 + components: + - type: Transform + pos: -25.5,7.5 + parent: 1 +- proto: DeskBell + entities: + - uid: 316 + components: + - type: Transform + pos: -19.506935,33.587086 + parent: 1 + - uid: 328 + components: + - type: Transform + pos: 4.477181,28.564352 + parent: 1 + - uid: 373 + components: + - type: Transform + pos: 4.492806,34.658104 + parent: 1 + - uid: 584 + components: + - type: Transform + pos: -16.491606,15.560565 + parent: 1 + - uid: 1684 + components: + - type: Transform + pos: 7.499139,19.59668 + parent: 1 + - uid: 2288 + components: + - type: Transform + pos: 7.4041586,43.602905 + parent: 1 + - uid: 3104 + components: + - type: Transform + pos: -19.500202,-3.3133922 + parent: 1 + - uid: 4336 + components: + - type: Transform + pos: -9.500495,56.500748 + parent: 1 + - uid: 5623 + components: + - type: Transform + pos: 0.48680377,58.52837 + parent: 1 +- proto: DiseaseDiagnoser + entities: + - uid: 3397 + components: + - type: Transform + pos: 13.5,61.5 + parent: 1 +- proto: DisposalBend + entities: + - uid: 8489 + components: + - type: Transform + pos: 11.5,12.5 + parent: 1 + - uid: 8797 + components: + - type: Transform + pos: -28.5,3.5 + parent: 1 + - uid: 8857 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,9.5 + parent: 1 + - uid: 8883 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,58.5 + parent: 1 + - uid: 8956 + components: + - type: Transform + pos: 16.5,58.5 + parent: 1 + - uid: 9057 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,42.5 + parent: 1 + - uid: 9060 + components: + - type: Transform + pos: 9.5,16.5 + parent: 1 + - uid: 9128 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,41.5 + parent: 1 + - uid: 9129 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,39.5 + parent: 1 + - uid: 9130 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,39.5 + parent: 1 + - uid: 9131 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,41.5 + parent: 1 + - uid: 9135 + components: + - type: Transform + pos: -23.5,26.5 + parent: 1 + - uid: 9137 + components: + - type: Transform + pos: 16.5,54.5 + parent: 1 + - uid: 9298 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-4.5 + parent: 1 + - uid: 9301 + components: + - type: Transform + pos: 17.5,-4.5 + parent: 1 + - uid: 9339 + components: + - type: Transform + pos: 28.5,59.5 + parent: 1 + - uid: 9351 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,57.5 + parent: 1 + - uid: 9361 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,12.5 + parent: 1 + - uid: 9377 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,58.5 + parent: 1 + - uid: 9413 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,57.5 + parent: 1 + - uid: 9449 + components: + - type: Transform + pos: 7.5,2.5 + parent: 1 + - uid: 9475 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,52.5 + parent: 1 + - uid: 9477 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,-10.5 + parent: 1 + - uid: 9485 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,53.5 + parent: 1 + - uid: 9494 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,2.5 + parent: 1 + - uid: 9560 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,20.5 + parent: 1 + - uid: 9570 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,47.5 + parent: 1 + - uid: 9571 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,47.5 + parent: 1 + - uid: 9572 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,52.5 + parent: 1 + - uid: 9614 + components: + - type: Transform + pos: -3.5,33.5 + parent: 1 + - uid: 9631 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,9.5 + parent: 1 + - uid: 9656 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,63.5 + parent: 1 + - uid: 9677 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,35.5 + parent: 1 + - uid: 9686 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,69.5 + parent: 1 + - uid: 9699 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,12.5 + parent: 1 + - uid: 9700 + components: + - type: Transform + pos: -34.5,12.5 + parent: 1 + - uid: 9704 + components: + - type: Transform + pos: 15.5,69.5 + parent: 1 + - uid: 9706 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,2.5 + parent: 1 + - uid: 9753 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,5.5 + parent: 1 + - uid: 9766 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,48.5 + parent: 1 + - uid: 9779 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,58.5 + parent: 1 + - uid: 9781 + components: + - type: Transform + pos: -22.5,-9.5 + parent: 1 + - uid: 9782 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,-10.5 + parent: 1 + - uid: 9801 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,55.5 + parent: 1 + - uid: 9816 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,59.5 + parent: 1 + - uid: 9818 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-9.5 + parent: 1 + - uid: 9852 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,0.5 + parent: 1 + - uid: 9867 + components: + - type: Transform + pos: 5.5,12.5 + parent: 1 + - uid: 9893 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,3.5 + parent: 1 + - uid: 9911 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,0.5 + parent: 1 + - uid: 9918 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,17.5 + parent: 1 + - uid: 9919 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,15.5 + parent: 1 + - uid: 9920 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,15.5 + parent: 1 + - uid: 9921 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,11.5 + parent: 1 + - uid: 9924 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,-7.5 + parent: 1 + - uid: 9953 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,26.5 + parent: 1 + - uid: 9961 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,55.5 + parent: 1 + - uid: 9965 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,-5.5 + parent: 1 + - uid: 9969 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,2.5 + parent: 1 + - uid: 9990 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,54.5 + parent: 1 +- proto: DisposalJunction + entities: + - uid: 8855 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,47.5 + parent: 1 + - uid: 8927 + components: + - type: Transform + pos: 15.5,63.5 + parent: 1 + - uid: 9244 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,12.5 + parent: 1 + - uid: 9358 + components: + - type: Transform + pos: 11.5,46.5 + parent: 1 + - uid: 9495 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,41.5 + parent: 1 + - uid: 9534 + components: + - type: Transform + pos: -14.5,35.5 + parent: 1 + - uid: 9544 + components: + - type: Transform + pos: -14.5,48.5 + parent: 1 + - uid: 9546 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,23.5 + parent: 1 + - uid: 9683 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,42.5 + parent: 1 + - uid: 9690 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,16.5 + parent: 1 + - uid: 9983 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,36.5 + parent: 1 + - uid: 9999 + components: + - type: Transform + pos: -14.5,41.5 + parent: 1 + - uid: 10000 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-5.5 + parent: 1 +- proto: DisposalJunctionFlipped + entities: + - uid: 9234 + components: + - type: Transform + pos: -14.5,33.5 + parent: 1 + - uid: 9387 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,17.5 + parent: 1 + - uid: 9396 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,23.5 + parent: 1 + - uid: 9412 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,23.5 + parent: 1 + - uid: 9593 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,34.5 + parent: 1 + - uid: 9710 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,5.5 + parent: 1 + - uid: 9805 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,20.5 + parent: 1 + - uid: 9842 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,52.5 + parent: 1 + - uid: 9892 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,3.5 + parent: 1 + - uid: 9895 + components: + - type: Transform + pos: -14.5,42.5 + parent: 1 +- proto: DisposalPipe + entities: + - uid: 1660 + components: + - type: Transform + pos: 5.5,7.5 + parent: 1 + - uid: 1748 + components: + - type: Transform + pos: -1.5,21.5 + parent: 1 + - uid: 8424 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,0.5 + parent: 1 + - uid: 8487 + components: + - type: Transform + pos: 13.5,52.5 + parent: 1 + - uid: 8644 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,41.5 + parent: 1 + - uid: 8646 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,47.5 + parent: 1 + - uid: 8647 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,47.5 + parent: 1 + - uid: 8648 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,0.5 + parent: 1 + - uid: 8649 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,10.5 + parent: 1 + - uid: 8742 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,69.5 + parent: 1 + - uid: 8755 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,69.5 + parent: 1 + - uid: 8796 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,61.5 + parent: 1 + - uid: 8798 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,3.5 + parent: 1 + - uid: 8814 + components: + - type: Transform + pos: -14.5,30.5 + parent: 1 + - uid: 8815 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,42.5 + parent: 1 + - uid: 8848 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,67.5 + parent: 1 + - uid: 8849 + components: + - type: Transform + pos: 5.5,6.5 + parent: 1 + - uid: 8854 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,69.5 + parent: 1 + - uid: 8856 + components: + - type: Transform + pos: -1.5,22.5 + parent: 1 + - uid: 8867 + components: + - type: Transform + pos: -14.5,7.5 + parent: 1 + - uid: 8879 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,59.5 + parent: 1 + - uid: 8926 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,62.5 + parent: 1 + - uid: 8928 + components: + - type: Transform + pos: 2.5,57.5 + parent: 1 + - uid: 8931 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,68.5 + parent: 1 + - uid: 8932 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,58.5 + parent: 1 + - uid: 8933 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,58.5 + parent: 1 + - uid: 8934 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,2.5 + parent: 1 + - uid: 8951 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,41.5 + parent: 1 + - uid: 8958 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,33.5 + parent: 1 + - uid: 8959 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,60.5 + parent: 1 + - uid: 8973 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,66.5 + parent: 1 + - uid: 9003 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,23.5 + parent: 1 + - uid: 9004 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,18.5 + parent: 1 + - uid: 9012 + components: + - type: Transform + pos: -14.5,15.5 + parent: 1 + - uid: 9035 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,69.5 + parent: 1 + - uid: 9043 + components: + - type: Transform + pos: -14.5,8.5 + parent: 1 + - uid: 9056 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,48.5 + parent: 1 + - uid: 9059 + components: + - type: Transform + pos: -14.5,16.5 + parent: 1 + - uid: 9062 + components: + - type: Transform + pos: -14.5,3.5 + parent: 1 + - uid: 9115 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,12.5 + parent: 1 + - uid: 9133 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,47.5 + parent: 1 + - uid: 9136 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,16.5 + parent: 1 + - uid: 9154 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,52.5 + parent: 1 + - uid: 9155 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,3.5 + parent: 1 + - uid: 9175 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,17.5 + parent: 1 + - uid: 9179 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-9.5 + parent: 1 + - uid: 9180 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,69.5 + parent: 1 + - uid: 9230 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,9.5 + parent: 1 + - uid: 9231 + components: + - type: Transform + pos: -1.5,10.5 + parent: 1 + - uid: 9232 + components: + - type: Transform + pos: 23.5,48.5 + parent: 1 + - uid: 9233 + components: + - type: Transform + pos: 23.5,49.5 + parent: 1 + - uid: 9242 + components: + - type: Transform + pos: 13.5,48.5 + parent: 1 + - uid: 9251 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,23.5 + parent: 1 + - uid: 9252 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,23.5 + parent: 1 + - uid: 9253 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,23.5 + parent: 1 + - uid: 9254 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,4.5 + parent: 1 + - uid: 9274 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,48.5 + parent: 1 + - uid: 9276 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,23.5 + parent: 1 + - uid: 9280 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,16.5 + parent: 1 + - uid: 9282 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,33.5 + parent: 1 + - uid: 9285 + components: + - type: Transform + pos: 5.5,5.5 + parent: 1 + - uid: 9286 + components: + - type: Transform + pos: 5.5,4.5 + parent: 1 + - uid: 9287 + components: + - type: Transform + pos: 2.5,44.5 + parent: 1 + - uid: 9288 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-4.5 + parent: 1 + - uid: 9291 + components: + - type: Transform + pos: 5.5,10.5 + parent: 1 + - uid: 9292 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,47.5 + parent: 1 + - uid: 9294 + components: + - type: Transform + pos: 7.5,-1.5 + parent: 1 + - uid: 9295 + components: + - type: Transform + pos: 7.5,0.5 + parent: 1 + - uid: 9296 + components: + - type: Transform + pos: 7.5,-2.5 + parent: 1 + - uid: 9297 + components: + - type: Transform + pos: 7.5,-3.5 + parent: 1 + - uid: 9299 + components: + - type: Transform + pos: 7.5,1.5 + parent: 1 + - uid: 9300 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,2.5 + parent: 1 + - uid: 9312 + components: + - type: Transform + pos: 2.5,51.5 + parent: 1 + - uid: 9330 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,-4.5 + parent: 1 + - uid: 9331 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-4.5 + parent: 1 + - uid: 9333 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,45.5 + parent: 1 + - uid: 9334 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,44.5 + parent: 1 + - uid: 9335 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,43.5 + parent: 1 + - uid: 9337 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-9.5 + parent: 1 + - uid: 9342 + components: + - type: Transform + pos: 13.5,50.5 + parent: 1 + - uid: 9346 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-10.5 + parent: 1 + - uid: 9348 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,57.5 + parent: 1 + - uid: 9349 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,57.5 + parent: 1 + - uid: 9350 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,58.5 + parent: 1 + - uid: 9352 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,48.5 + parent: 1 + - uid: 9353 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,16.5 + parent: 1 + - uid: 9354 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,14.5 + parent: 1 + - uid: 9357 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,48.5 + parent: 1 + - uid: 9366 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,42.5 + parent: 1 + - uid: 9367 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,42.5 + parent: 1 + - uid: 9375 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-9.5 + parent: 1 + - uid: 9376 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,-9.5 + parent: 1 + - uid: 9378 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,48.5 + parent: 1 + - uid: 9386 + components: + - type: Transform + pos: -18.5,1.5 + parent: 1 + - uid: 9388 + components: + - type: Transform + pos: -1.5,18.5 + parent: 1 + - uid: 9389 + components: + - type: Transform + pos: -25.5,30.5 + parent: 1 + - uid: 9390 + components: + - type: Transform + pos: -25.5,31.5 + parent: 1 + - uid: 9392 + components: + - type: Transform + pos: 9.5,13.5 + parent: 1 + - uid: 9394 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,23.5 + parent: 1 + - uid: 9395 + components: + - type: Transform + pos: -1.5,19.5 + parent: 1 + - uid: 9397 + components: + - type: Transform + pos: -14.5,37.5 + parent: 1 + - uid: 9448 + components: + - type: Transform + pos: 7.5,-0.5 + parent: 1 + - uid: 9450 + components: + - type: Transform + pos: -14.5,38.5 + parent: 1 + - uid: 9451 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,20.5 + parent: 1 + - uid: 9452 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,20.5 + parent: 1 + - uid: 9473 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,52.5 + parent: 1 + - uid: 9474 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,52.5 + parent: 1 + - uid: 9478 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-10.5 + parent: 1 + - uid: 9479 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,-10.5 + parent: 1 + - uid: 9480 + components: + - type: Transform + pos: 2.5,48.5 + parent: 1 + - uid: 9481 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,47.5 + parent: 1 + - uid: 9482 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,69.5 + parent: 1 + - uid: 9483 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,54.5 + parent: 1 + - uid: 9484 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,54.5 + parent: 1 + - uid: 9488 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,20.5 + parent: 1 + - uid: 9491 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,41.5 + parent: 1 + - uid: 9497 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,23.5 + parent: 1 + - uid: 9500 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,22.5 + parent: 1 + - uid: 9501 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,21.5 + parent: 1 + - uid: 9502 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,20.5 + parent: 1 + - uid: 9511 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,48.5 + parent: 1 + - uid: 9536 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,10.5 + parent: 1 + - uid: 9541 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,16.5 + parent: 1 + - uid: 9542 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,42.5 + parent: 1 + - uid: 9543 + components: + - type: Transform + pos: -14.5,36.5 + parent: 1 + - uid: 9545 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,23.5 + parent: 1 + - uid: 9556 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,23.5 + parent: 1 + - uid: 9557 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,52.5 + parent: 1 + - uid: 9558 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,12.5 + parent: 1 + - uid: 9561 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,47.5 + parent: 1 + - uid: 9562 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,13.5 + parent: 1 + - uid: 9566 + components: + - type: Transform + pos: -14.5,13.5 + parent: 1 + - uid: 9568 + components: + - type: Transform + pos: 23.5,50.5 + parent: 1 + - uid: 9569 + components: + - type: Transform + pos: 17.5,-5.5 + parent: 1 + - uid: 9573 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,19.5 + parent: 1 + - uid: 9574 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,52.5 + parent: 1 + - uid: 9575 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,42.5 + parent: 1 + - uid: 9577 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,12.5 + parent: 1 + - uid: 9578 + components: + - type: Transform + pos: -14.5,34.5 + parent: 1 + - uid: 9583 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,46.5 + parent: 1 + - uid: 9584 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,47.5 + parent: 1 + - uid: 9586 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,-10.5 + parent: 1 + - uid: 9590 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,48.5 + parent: 1 + - uid: 9594 + components: + - type: Transform + pos: -16.5,-7.5 + parent: 1 + - uid: 9595 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,23.5 + parent: 1 + - uid: 9596 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,23.5 + parent: 1 + - uid: 9598 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,15.5 + parent: 1 + - uid: 9603 + components: + - type: Transform + pos: -1.5,20.5 + parent: 1 + - uid: 9605 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,33.5 + parent: 1 + - uid: 9608 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,28.5 + parent: 1 + - uid: 9609 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,69.5 + parent: 1 + - uid: 9610 + components: + - type: Transform + pos: -14.5,14.5 + parent: 1 + - uid: 9611 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,47.5 + parent: 1 + - uid: 9612 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,33.5 + parent: 1 + - uid: 9613 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,33.5 + parent: 1 + - uid: 9618 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,20.5 + parent: 1 + - uid: 9619 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,20.5 + parent: 1 + - uid: 9620 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,20.5 + parent: 1 + - uid: 9622 + components: + - type: Transform + pos: -1.5,11.5 + parent: 1 + - uid: 9624 + components: + - type: Transform + pos: 5.5,8.5 + parent: 1 + - uid: 9628 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,41.5 + parent: 1 + - uid: 9629 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,41.5 + parent: 1 + - uid: 9630 + components: + - type: Transform + pos: -14.5,31.5 + parent: 1 + - uid: 9633 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,33.5 + parent: 1 + - uid: 9634 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,33.5 + parent: 1 + - uid: 9635 + components: + - type: Transform + pos: -1.5,12.5 + parent: 1 + - uid: 9636 + components: + - type: Transform + pos: -1.5,13.5 + parent: 1 + - uid: 9637 + components: + - type: Transform + pos: -1.5,14.5 + parent: 1 + - uid: 9638 + components: + - type: Transform + pos: -1.5,15.5 + parent: 1 + - uid: 9639 + components: + - type: Transform + pos: -1.5,16.5 + parent: 1 + - uid: 9641 + components: + - type: Transform + pos: 2.5,39.5 + parent: 1 + - uid: 9642 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,59.5 + parent: 1 + - uid: 9643 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,13.5 + parent: 1 + - uid: 9644 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,12.5 + parent: 1 + - uid: 9645 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,59.5 + parent: 1 + - uid: 9649 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,1.5 + parent: 1 + - uid: 9650 + components: + - type: Transform + pos: 13.5,49.5 + parent: 1 + - uid: 9651 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,60.5 + parent: 1 + - uid: 9652 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,61.5 + parent: 1 + - uid: 9653 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,62.5 + parent: 1 + - uid: 9657 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,47.5 + parent: 1 + - uid: 9658 + components: + - type: Transform + pos: -14.5,4.5 + parent: 1 + - uid: 9662 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,20.5 + parent: 1 + - uid: 9663 + components: + - type: Transform + pos: 23.5,51.5 + parent: 1 + - uid: 9670 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,69.5 + parent: 1 + - uid: 9671 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,20.5 + parent: 1 + - uid: 9673 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,59.5 + parent: 1 + - uid: 9674 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,16.5 + parent: 1 + - uid: 9675 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,42.5 + parent: 1 + - uid: 9678 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,64.5 + parent: 1 + - uid: 9679 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,65.5 + parent: 1 + - uid: 9680 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,66.5 + parent: 1 + - uid: 9681 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,67.5 + parent: 1 + - uid: 9682 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,68.5 + parent: 1 + - uid: 9684 + components: + - type: Transform + pos: 2.5,40.5 + parent: 1 + - uid: 9685 + components: + - type: Transform + pos: -14.5,32.5 + parent: 1 + - uid: 9687 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,0.5 + parent: 1 + - uid: 9688 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,11.5 + parent: 1 + - uid: 9689 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,63.5 + parent: 1 + - uid: 9691 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,17.5 + parent: 1 + - uid: 9692 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,18.5 + parent: 1 + - uid: 9693 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,24.5 + parent: 1 + - uid: 9694 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,25.5 + parent: 1 + - uid: 9695 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,47.5 + parent: 1 + - uid: 9697 + components: + - type: Transform + pos: 2.5,50.5 + parent: 1 + - uid: 9698 + components: + - type: Transform + pos: 2.5,49.5 + parent: 1 + - uid: 9701 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,-4.5 + parent: 1 + - uid: 9705 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,33.5 + parent: 1 + - uid: 9707 + components: + - type: Transform + pos: -2.5,25.5 + parent: 1 + - uid: 9708 + components: + - type: Transform + pos: -2.5,24.5 + parent: 1 + - uid: 9709 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,0.5 + parent: 1 + - uid: 9712 + components: + - type: Transform + pos: 13.5,53.5 + parent: 1 + - uid: 9746 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,57.5 + parent: 1 + - uid: 9747 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,57.5 + parent: 1 + - uid: 9748 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,57.5 + parent: 1 + - uid: 9749 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-10.5 + parent: 1 + - uid: 9750 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,0.5 + parent: 1 + - uid: 9751 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,0.5 + parent: 1 + - uid: 9756 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,27.5 + parent: 1 + - uid: 9757 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,42.5 + parent: 1 + - uid: 9758 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,42.5 + parent: 1 + - uid: 9760 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,69.5 + parent: 1 + - uid: 9761 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,62.5 + parent: 1 + - uid: 9765 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,48.5 + parent: 1 + - uid: 9767 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,48.5 + parent: 1 + - uid: 9768 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,48.5 + parent: 1 + - uid: 9769 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,15.5 + parent: 1 + - uid: 9770 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,14.5 + parent: 1 + - uid: 9773 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,16.5 + parent: 1 + - uid: 9774 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,63.5 + parent: 1 + - uid: 9775 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,63.5 + parent: 1 + - uid: 9777 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,48.5 + parent: 1 + - uid: 9778 + components: + - type: Transform + pos: -22.5,40.5 + parent: 1 + - uid: 9780 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,9.5 + parent: 1 + - uid: 9786 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,33.5 + parent: 1 + - uid: 9787 + components: + - type: Transform + pos: 13.5,51.5 + parent: 1 + - uid: 9791 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,48.5 + parent: 1 + - uid: 9792 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,48.5 + parent: 1 + - uid: 9793 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,48.5 + parent: 1 + - uid: 9794 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,26.5 + parent: 1 + - uid: 9795 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,54.5 + parent: 1 + - uid: 9796 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,53.5 + parent: 1 + - uid: 9797 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,52.5 + parent: 1 + - uid: 9798 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,50.5 + parent: 1 + - uid: 9799 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,49.5 + parent: 1 + - uid: 9800 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,51.5 + parent: 1 + - uid: 9802 + components: + - type: Transform + pos: -4.5,14.5 + parent: 1 + - uid: 9803 + components: + - type: Transform + pos: -3.5,16.5 + parent: 1 + - uid: 9804 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,17.5 + parent: 1 + - uid: 9806 + components: + - type: Transform + pos: -14.5,19.5 + parent: 1 + - uid: 9807 + components: + - type: Transform + pos: -14.5,18.5 + parent: 1 + - uid: 9808 + components: + - type: Transform + pos: -14.5,17.5 + parent: 1 + - uid: 9809 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,-4.5 + parent: 1 + - uid: 9810 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-4.5 + parent: 1 + - uid: 9811 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-4.5 + parent: 1 + - uid: 9812 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-4.5 + parent: 1 + - uid: 9813 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-4.5 + parent: 1 + - uid: 9814 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,12.5 + parent: 1 + - uid: 9815 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,33.5 + parent: 1 + - uid: 9819 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,9.5 + parent: 1 + - uid: 9821 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,64.5 + parent: 1 + - uid: 9825 + components: + - type: Transform + pos: 5.5,9.5 + parent: 1 + - uid: 9826 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,63.5 + parent: 1 + - uid: 9832 + components: + - type: Transform + pos: -14.5,24.5 + parent: 1 + - uid: 9833 + components: + - type: Transform + pos: -14.5,25.5 + parent: 1 + - uid: 9840 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,0.5 + parent: 1 + - uid: 9841 + components: + - type: Transform + pos: 2.5,51.5 + parent: 1 + - uid: 9843 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,53.5 + parent: 1 + - uid: 9845 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,55.5 + parent: 1 + - uid: 9846 + components: + - type: Transform + pos: 5.5,11.5 + parent: 1 + - uid: 9848 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,20.5 + parent: 1 + - uid: 9853 + components: + - type: Transform + pos: 2.5,45.5 + parent: 1 + - uid: 9854 + components: + - type: Transform + pos: 2.5,46.5 + parent: 1 + - uid: 9855 + components: + - type: Transform + pos: 2.5,47.5 + parent: 1 + - uid: 9857 + components: + - type: Transform + pos: -14.5,6.5 + parent: 1 + - uid: 9859 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,47.5 + parent: 1 + - uid: 9860 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,11.5 + parent: 1 + - uid: 9861 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,16.5 + parent: 1 + - uid: 9863 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,65.5 + parent: 1 + - uid: 9865 + components: + - type: Transform + pos: -36.5,13.5 + parent: 1 + - uid: 9868 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,63.5 + parent: 1 + - uid: 9872 + components: + - type: Transform + pos: 2.5,56.5 + parent: 1 + - uid: 9873 + components: + - type: Transform + pos: 2.5,55.5 + parent: 1 + - uid: 9874 + components: + - type: Transform + pos: 2.5,54.5 + parent: 1 + - uid: 9880 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,53.5 + parent: 1 + - uid: 9881 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,41.5 + parent: 1 + - uid: 9882 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,41.5 + parent: 1 + - uid: 9883 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,40.5 + parent: 1 + - uid: 9884 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,39.5 + parent: 1 + - uid: 9885 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,39.5 + parent: 1 + - uid: 9886 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,39.5 + parent: 1 + - uid: 9896 + components: + - type: Transform + pos: -4.5,12.5 + parent: 1 + - uid: 9897 + components: + - type: Transform + pos: -4.5,13.5 + parent: 1 + - uid: 9898 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,35.5 + parent: 1 + - uid: 9899 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,35.5 + parent: 1 + - uid: 9900 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,35.5 + parent: 1 + - uid: 9901 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,35.5 + parent: 1 + - uid: 9902 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,35.5 + parent: 1 + - uid: 9903 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,35.5 + parent: 1 + - uid: 9904 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,35.5 + parent: 1 + - uid: 9905 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,35.5 + parent: 1 + - uid: 9906 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,35.5 + parent: 1 + - uid: 9907 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,35.5 + parent: 1 + - uid: 9909 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,-5.5 + parent: 1 + - uid: 9912 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,0.5 + parent: 1 + - uid: 9913 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,9.5 + parent: 1 + - uid: 9914 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,8.5 + parent: 1 + - uid: 9915 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,7.5 + parent: 1 + - uid: 9916 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,6.5 + parent: 1 + - uid: 9917 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,5.5 + parent: 1 + - uid: 9923 + components: + - type: Transform + pos: 17.5,-6.5 + parent: 1 + - uid: 9925 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,41.5 + parent: 1 + - uid: 9927 + components: + - type: Transform + pos: -14.5,40.5 + parent: 1 + - uid: 9928 + components: + - type: Transform + pos: -14.5,39.5 + parent: 1 + - uid: 9932 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,0.5 + parent: 1 + - uid: 9933 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-0.5 + parent: 1 + - uid: 9934 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-2.5 + parent: 1 + - uid: 9935 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-1.5 + parent: 1 + - uid: 9936 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-4.5 + parent: 1 + - uid: 9937 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-3.5 + parent: 1 + - uid: 9938 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-8.5 + parent: 1 + - uid: 9939 + components: + - type: Transform + pos: -14.5,9.5 + parent: 1 + - uid: 9940 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,3.5 + parent: 1 + - uid: 9941 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,3.5 + parent: 1 + - uid: 9942 + components: + - type: Transform + pos: -14.5,26.5 + parent: 1 + - uid: 9943 + components: + - type: Transform + pos: -25.5,29.5 + parent: 1 + - uid: 9944 + components: + - type: Transform + pos: -25.5,28.5 + parent: 1 + - uid: 9945 + components: + - type: Transform + pos: -25.5,27.5 + parent: 1 + - uid: 9946 + components: + - type: Transform + pos: -14.5,27.5 + parent: 1 + - uid: 9947 + components: + - type: Transform + pos: -14.5,28.5 + parent: 1 + - uid: 9948 + components: + - type: Transform + pos: -14.5,29.5 + parent: 1 + - uid: 9949 + components: + - type: Transform + pos: -14.5,22.5 + parent: 1 + - uid: 9950 + components: + - type: Transform + pos: -14.5,21.5 + parent: 1 + - uid: 9951 + components: + - type: Transform + pos: -25.5,32.5 + parent: 1 + - uid: 9952 + components: + - type: Transform + pos: -25.5,33.5 + parent: 1 + - uid: 9954 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,26.5 + parent: 1 + - uid: 9960 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,52.5 + parent: 1 + - uid: 9963 + components: + - type: Transform + pos: -11.5,56.5 + parent: 1 + - uid: 9964 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,55.5 + parent: 1 + - uid: 9966 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,5.5 + parent: 1 + - uid: 9967 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,5.5 + parent: 1 + - uid: 9968 + components: + - type: Transform + pos: 5.5,3.5 + parent: 1 + - uid: 9970 + components: + - type: Transform + pos: 2.5,43.5 + parent: 1 + - uid: 9971 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,59.5 + parent: 1 + - uid: 9972 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,59.5 + parent: 1 + - uid: 9973 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,59.5 + parent: 1 + - uid: 9974 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,23.5 + parent: 1 + - uid: 9975 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,23.5 + parent: 1 + - uid: 9976 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,29.5 + parent: 1 + - uid: 9977 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,30.5 + parent: 1 + - uid: 9978 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,31.5 + parent: 1 + - uid: 9979 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,32.5 + parent: 1 + - uid: 9980 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,33.5 + parent: 1 + - uid: 9981 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,34.5 + parent: 1 + - uid: 9982 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,35.5 + parent: 1 + - uid: 9984 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,38.5 + parent: 1 + - uid: 9985 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,37.5 + parent: 1 + - uid: 9987 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,23.5 + parent: 1 + - uid: 9991 + components: + - type: Transform + pos: 9.5,14.5 + parent: 1 + - uid: 9992 + components: + - type: Transform + pos: 9.5,15.5 + parent: 1 + - uid: 9993 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,53.5 + parent: 1 + - uid: 9994 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,53.5 + parent: 1 + - uid: 9996 + components: + - type: Transform + pos: -14.5,12.5 + parent: 1 + - uid: 9997 + components: + - type: Transform + pos: -14.5,11.5 + parent: 1 + - uid: 9998 + components: + - type: Transform + pos: -14.5,10.5 + parent: 1 + - uid: 10001 + components: + - type: Transform + pos: -16.5,-6.5 + parent: 1 + - uid: 10045 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,0.5 + parent: 1 + - uid: 10046 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,1.5 + parent: 1 + - uid: 10095 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,5.5 + parent: 1 + - uid: 10096 + components: + - type: Transform + pos: -18.5,4.5 + parent: 1 + - uid: 10097 + components: + - type: Transform + pos: -18.5,3.5 + parent: 1 + - uid: 10098 + components: + - type: Transform + pos: -18.5,2.5 + parent: 1 + - uid: 10099 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,3.5 + parent: 1 + - uid: 10167 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,20.5 + parent: 1 + - uid: 10168 + components: + - type: Transform + pos: -25.5,19.5 + parent: 1 +- proto: DisposalTrunk + entities: + - uid: 8850 + components: + - type: Transform + pos: -0.5,53.5 + parent: 1 + - uid: 8950 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,41.5 + parent: 1 + - uid: 9181 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,11.5 + parent: 1 + - uid: 9338 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,58.5 + parent: 1 + - uid: 9492 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,46.5 + parent: 1 + - uid: 9496 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,41.5 + parent: 1 + - uid: 9559 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,11.5 + parent: 1 + - uid: 9602 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,8.5 + parent: 1 + - uid: 9615 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,32.5 + parent: 1 + - uid: 9623 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,53.5 + parent: 1 + - uid: 9647 + components: + - type: Transform + pos: -36.5,14.5 + parent: 1 + - uid: 9655 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,61.5 + parent: 1 + - uid: 9702 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,52.5 + parent: 1 + - uid: 9783 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-7.5 + parent: 1 + - uid: 9820 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,8.5 + parent: 1 + - uid: 9835 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,47.5 + parent: 1 + - uid: 9878 + components: + - type: Transform + pos: -2.5,26.5 + parent: 1 + - uid: 9891 + components: + - type: Transform + pos: -36.5,4.5 + parent: 1 + - uid: 9894 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,42.5 + parent: 1 + - uid: 9922 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,11.5 + parent: 1 + - uid: 9958 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,-5.5 + parent: 1 + - uid: 9962 + components: + - type: Transform + pos: -11.5,57.5 + parent: 1 + - uid: 9986 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,36.5 + parent: 1 + - uid: 10002 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,34.5 + parent: 1 + - uid: 10003 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,25.5 + parent: 1 +- proto: DisposalUnit + entities: + - uid: 184 + components: + - type: Transform + pos: 3.5,36.5 + parent: 1 + - uid: 340 + components: + - type: Transform + pos: -23.5,25.5 + parent: 1 + - uid: 623 + components: + - type: Transform + pos: -3.5,32.5 + parent: 1 + - uid: 720 + components: + - type: Transform + pos: -4.5,8.5 + parent: 1 + - uid: 768 + components: + - type: Transform + pos: -3.5,11.5 + parent: 1 + - uid: 772 + components: + - type: Transform + pos: -25.5,41.5 + parent: 1 + - uid: 1022 + components: + - type: Transform + pos: -26.5,34.5 + parent: 1 + - uid: 1061 + components: + - type: Transform + pos: -2.5,26.5 + parent: 1 + - uid: 1098 + components: + - type: Transform + pos: 16.5,-7.5 + parent: 1 + - uid: 1197 + components: + - type: Transform + pos: 10.5,29.5 + parent: 1 + - uid: 1648 + components: + - type: Transform + pos: 2.5,11.5 + parent: 1 + - uid: 1698 + components: + - type: Transform + pos: 11.5,11.5 + parent: 1 + - uid: 1973 + components: + - type: Transform + pos: -25.5,8.5 + parent: 1 + - uid: 2623 + components: + - type: Transform + pos: -36.5,14.5 + parent: 1 + - uid: 2677 + components: + - type: Transform + pos: -36.5,4.5 + parent: 1 + - uid: 2703 + components: + - type: Transform + pos: 10.5,46.5 + parent: 1 + - uid: 2710 + components: + - type: Transform + pos: -26.5,-10.5 + parent: 1 + - uid: 2738 + components: + - type: Transform + pos: -13.5,42.5 + parent: 1 + - uid: 3402 + components: + - type: Transform + pos: 20.5,53.5 + parent: 1 + - uid: 3469 + components: + - type: Transform + pos: 4.5,41.5 + parent: 1 + - uid: 3727 + components: + - type: Transform + pos: 10.5,61.5 + parent: 1 + - uid: 3892 + components: + - type: Transform + pos: -0.5,53.5 + parent: 1 + - uid: 4258 + components: + - type: Transform + pos: -29.5,47.5 + parent: 1 + - uid: 4337 + components: + - type: Transform + pos: -11.5,57.5 + parent: 1 + - uid: 4485 + components: + - type: Transform + pos: 28.5,52.5 + parent: 1 + - uid: 9576 + components: + - type: Transform + pos: -18.5,-5.5 + parent: 1 +- proto: DisposalYJunction + entities: + - uid: 9817 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,23.5 + parent: 1 +- proto: DogBed + entities: + - uid: 174 + components: + - type: Transform + pos: -8.5,11.5 + parent: 1 + - uid: 495 + components: + - type: Transform + pos: 19.5,44.5 + parent: 1 + - uid: 1026 + components: + - type: Transform + pos: -2.5,4.5 + parent: 1 + - uid: 1758 + components: + - type: Transform + pos: -28.5,7.5 + parent: 1 + - uid: 1760 + components: + - type: Transform + pos: 22.5,16.5 + parent: 1 + - uid: 13407 + components: + - type: Transform + pos: -18.5,13.5 + parent: 1 + - uid: 14886 + components: + - type: Transform + pos: 23.5,2.5 + parent: 1 +- proto: DonkpocketBoxSpawner + entities: + - uid: 2908 + components: + - type: Transform + pos: -20.5,-8.5 + parent: 1 +- proto: DoorElectronics + entities: + - uid: 3008 + components: + - type: Transform + pos: -32.17456,-10.333147 + parent: 1 + - uid: 3103 + components: + - type: Transform + pos: -32.17456,-10.492145 + parent: 1 +- proto: Dresser + entities: + - uid: 4133 + components: + - type: Transform + pos: -39.5,-2.5 + parent: 1 + - uid: 4497 + components: + - type: Transform + pos: -43.5,-2.5 + parent: 1 + - type: ContainerContainer + containers: + storagebase: !type:Container + showEnts: False + occludes: True + ents: + - 4498 +- proto: DresserCaptainFilled + entities: + - uid: 13406 + components: + - type: Transform + pos: -1.5,4.5 + parent: 1 +- proto: DresserChiefEngineerFilled + entities: + - uid: 1566 + components: + - type: Transform + pos: -16.5,-19.5 + parent: 1 +- proto: DresserChiefMedicalOfficerFilled + entities: + - uid: 81 + components: + - type: Transform + pos: 23.5,55.5 + parent: 1 +- proto: DresserFilled + entities: + - uid: 515 + components: + - type: Transform + pos: -10.5,30.5 + parent: 1 + - uid: 2247 + components: + - type: Transform + pos: -39.5,7.5 + parent: 1 + - uid: 2596 + components: + - type: Transform + pos: -37.5,1.5 + parent: 1 + - uid: 2856 + components: + - type: Transform + pos: -37.5,14.5 + parent: 1 + - uid: 3244 + components: + - type: Transform + pos: 12.5,-10.5 + parent: 1 +- proto: DresserHeadOfPersonnelFilled + entities: + - uid: 867 + components: + - type: Transform + pos: -11.5,13.5 + parent: 1 +- proto: DresserHeadOfSecurityFilled + entities: + - uid: 1363 + components: + - type: Transform + pos: -27.5,6.5 + parent: 1 +- proto: DresserQuarterMasterFilled + entities: + - uid: 1337 + components: + - type: Transform + pos: -29.5,31.5 + parent: 1 +- proto: DresserResearchDirectorFilled + entities: + - uid: 1350 + components: + - type: Transform + pos: 21.5,17.5 + parent: 1 +- proto: DresserWardenFilled + entities: + - uid: 1300 + components: + - type: Transform + pos: -17.5,13.5 + parent: 1 +- proto: DrinkAbsintheBottleFull + entities: + - uid: 14931 + components: + - type: Transform + pos: 59.80015,15.344243 + parent: 1 +- proto: DrinkAleBottleFull + entities: + - uid: 14933 + components: + - type: Transform + pos: 59.336914,15.281117 + parent: 1 +- proto: DrinkBeerCan + entities: + - uid: 14945 + components: + - type: Transform + pos: 8.734896,-11.623163 + parent: 1 + - uid: 14946 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.608559,-11.770456 + parent: 1 + - uid: 14947 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.440108,-11.60212 + parent: 1 + - uid: 16420 + components: + - type: Transform + pos: -4.216468,-41.201225 + parent: 1 + - uid: 16421 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.665186,-42.097282 + parent: 1 + - uid: 16422 + components: + - type: Transform + pos: -4.904502,-41.903137 + parent: 1 +- proto: DrinkBeerGrowler + entities: + - uid: 16412 + components: + - type: Transform + pos: -4.6352715,-41.096687 + parent: 1 + - uid: 16413 + components: + - type: Transform + pos: -4.425869,-41.171356 + parent: 1 + - uid: 16414 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.440827,-41.52978 + parent: 1 +- proto: DrinkBottleBeer + entities: + - uid: 13688 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.798065,-10.571069 + parent: 1 + - uid: 14944 + components: + - type: Transform + pos: 8.503277,-10.339607 + parent: 1 + - uid: 16415 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.707921,-42.18689 + parent: 1 + - uid: 16416 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.0562115,-41.499912 + parent: 1 + - uid: 16417 + components: + - type: Transform + pos: -6.4899716,-41.141487 + parent: 1 + - uid: 16418 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.6010835,-40.97721 + parent: 1 + - uid: 16419 + components: + - type: Transform + pos: -5.5476646,-39.483784 + parent: 1 +- proto: DrinkChangelingStingCan + entities: + - uid: 10349 + components: + - type: Transform + pos: -0.48855287,28.711185 + parent: 1 +- proto: DrinkColaBottleFull + entities: + - uid: 10350 + components: + - type: Transform + pos: -2.535605,49.650314 + parent: 1 +- proto: DrinkGildlagerBottleFull + entities: + - uid: 2516 + components: + - type: Transform + pos: 3.312889,-3.7543569 + parent: 1 +- proto: DrinkGinBottleFull + entities: + - uid: 14929 + components: + - type: Transform + pos: 59.547474,15.561668 + parent: 1 +- proto: DrinkMREFlask + entities: + - uid: 14932 + components: + - type: Transform + pos: 59.610645,15.175908 + parent: 1 +- proto: DrinkRootBeerCan + entities: + - uid: 16424 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5113394,-41.544716 + parent: 1 + - uid: 16425 + components: + - type: Transform + pos: -2.7207417,-41.410305 + parent: 1 +- proto: DrinkShaker + entities: + - uid: 5648 + components: + - type: Transform + pos: -2.498849,29.711132 + parent: 1 + - uid: 5692 + components: + - type: Transform + pos: -2.623849,29.445507 + parent: 1 +- proto: DrinkShotGlass + entities: + - uid: 6427 + components: + - type: Transform + pos: 24.536888,3.7691588 + parent: 1 + - uid: 13599 + components: + - type: Transform + pos: 24.411247,3.9125276 + parent: 1 +- proto: DrinkWaterCup + entities: + - uid: 1408 + components: + - type: Transform + pos: 8.477865,14.442257 + parent: 1 + - uid: 1538 + components: + - type: Transform + pos: 8.386136,14.6991 + parent: 1 + - uid: 1539 + components: + - type: Transform + pos: 8.642979,14.662408 + parent: 1 + - uid: 4181 + components: + - type: Transform + pos: 22.661776,50.84541 + parent: 1 + - uid: 4305 + components: + - type: Transform + pos: 22.3649,50.81416 + parent: 1 + - uid: 4320 + components: + - type: Transform + pos: 22.52115,50.65791 + parent: 1 +- proto: DrinkWineBottleFull + entities: + - uid: 1351 + components: + - type: Transform + pos: 11.246193,3.834426 + parent: 1 +- proto: EggBoxBroken + entities: + - uid: 6349 + components: + - type: Transform + pos: 25.619284,28.603022 + parent: 1 +- proto: EmergencyMedipen + entities: + - uid: 804 + components: + - type: Transform + pos: 26.521812,64.91878 + parent: 1 + - uid: 5776 + components: + - type: Transform + pos: 26.521812,65.16878 + parent: 1 +- proto: EmergencyRollerBedSpawnFolded + entities: + - uid: 3466 + components: + - type: Transform + pos: 19.67061,49.54628 + parent: 1 + - uid: 3697 + components: + - type: Transform + pos: 19.450459,49.619663 + parent: 1 +- proto: Emitter + entities: + - uid: 12917 + components: + - type: Transform + pos: -20.5,-24.5 + parent: 1 +- proto: EncryptionKeyCargo + entities: + - uid: 2726 + components: + - type: Transform + parent: 2725 + - type: Physics + canCollide: False +- proto: EncryptionKeyCommand + entities: + - uid: 391 + components: + - type: Transform + parent: 1241 + - type: Physics + canCollide: False + - uid: 3261 + components: + - type: Transform + parent: 3260 + - type: Physics + canCollide: False +- proto: EncryptionKeyCommon + entities: + - uid: 2678 + components: + - type: Transform + pos: -29.649107,-17.324009 + parent: 1 + - uid: 2731 + components: + - type: Transform + pos: -29.539032,-17.434084 + parent: 1 + - uid: 2843 + components: + - type: Transform + parent: 2842 + - type: Physics + canCollide: False + - uid: 3006 + components: + - type: Transform + pos: -29.428955,-17.562504 + parent: 1 +- proto: EncryptionKeyEngineering + entities: + - uid: 3123 + components: + - type: Transform + parent: 3122 + - type: Physics + canCollide: False + - uid: 15644 + components: + - type: Transform + pos: -28.521097,-41.490944 + parent: 1 +- proto: EncryptionKeyMedical + entities: + - uid: 2728 + components: + - type: Transform + parent: 2727 + - type: Physics + canCollide: False +- proto: EncryptionKeyScience + entities: + - uid: 3263 + components: + - type: Transform + parent: 3262 + - type: Physics + canCollide: False +- proto: EncryptionKeySecurity + entities: + - uid: 977 + components: + - type: Transform + pos: -20.585186,12.668752 + parent: 1 + - uid: 1467 + components: + - type: Transform + pos: -20.456764,12.558677 + parent: 1 + - uid: 2507 + components: + - type: Transform + parent: 2506 + - type: Physics + canCollide: False +- proto: EncryptionKeyService + entities: + - uid: 2333 + components: + - type: Transform + parent: 2332 + - type: Physics + canCollide: False +- proto: Error + entities: + - uid: 5344 + components: + - type: Transform + pos: 30.474842,5.5465093 + parent: 1 +- proto: ExosuitFabricator + entities: + - uid: 1311 + components: + - type: Transform + pos: 12.5,5.5 + parent: 1 +- proto: ExtendedEmergencyOxygenTankFilled + entities: + - uid: 4671 + components: + - type: Transform + pos: -29.604815,42.444332 + parent: 1 + - uid: 15678 + components: + - type: Transform + pos: -26.638247,-25.190313 + parent: 1 + - uid: 15679 + components: + - type: Transform + pos: -26.501139,-25.314766 + parent: 1 +- proto: FaxMachineBase + entities: + - uid: 4 + components: + - type: Transform + pos: 10.5,19.5 + parent: 1 + - type: FaxMachine + name: Science + destinationAddress: Science + - uid: 122 + components: + - type: Transform + pos: -20.5,29.5 + parent: 1 + - type: FaxMachine + name: Cargo + destinationAddress: Cargo + - uid: 259 + components: + - type: Transform + pos: -3.5,13.5 + parent: 1 + - type: FaxMachine + name: Head of Personel + destinationAddress: Head of Personel + - uid: 527 + components: + - type: Transform + pos: -2.5,28.5 + parent: 1 + - type: FaxMachine + name: Bar + destinationAddress: Bar + - uid: 953 + components: + - type: Transform + pos: -18.5,16.5 + parent: 1 + - type: FaxMachine + name: Warden + destinationAddress: Warden + - uid: 1114 + components: + - type: Transform + pos: -18.5,42.5 + parent: 1 + - type: FaxMachine + name: Library + destinationAddress: Library + - uid: 2748 + components: + - type: Transform + pos: 18.5,55.5 + parent: 1 + - type: FaxMachine + name: Chief Medical Officer + destinationAddress: Chief Medical Officer + - uid: 3128 + components: + - type: Transform + pos: -18.5,-15.5 + parent: 1 + - type: FaxMachine + name: Chief Engineer + destinationAddress: Chief Engineer + - uid: 3271 + components: + - type: Transform + pos: -33.5,17.5 + parent: 1 + - uid: 3956 + components: + - type: Transform + pos: 3.5,63.5 + parent: 1 + - type: FaxMachine + name: Lawyer + destinationAddress: Lawyer + - uid: 4172 + components: + - type: Transform + pos: -7.5,54.5 + parent: 1 + - type: FaxMachine + name: Reporter + destinationAddress: Reporter + - uid: 4273 + components: + - type: Transform + pos: 22.5,51.5 + parent: 1 + - type: FaxMachine + name: Psychologist + destinationAddress: Psychologist + - uid: 6069 + components: + - type: Transform + pos: -40.5,-8.5 + parent: 1 + - type: FaxMachine + name: Perma + destinationAddress: Perma +- proto: FaxMachineCaptain + entities: + - uid: 856 + components: + - type: Transform + pos: -1.5,6.5 + parent: 1 + - type: FaxMachine + name: Captain + destinationAddress: Captain +- proto: filingCabinetDrawerRandom + entities: + - uid: 4071 + components: + - type: Transform + pos: -1.5,8.5 + parent: 1 +- proto: FireAlarm + entities: + - uid: 1495 + components: + - type: Transform + pos: -0.5,31.5 + parent: 1 + - type: DeviceList + devices: + - 10265 + - 10152 + - 9910 + - 9862 + - 10214 + - 10213 + - 10137 + - 1297 + - 10274 + - 10111 + - 10226 + - 10323 + - 8799 + - 10338 + - 10249 + - 10121 + - 10013 + - 10316 + - 10314 + - 12169 + - 12131 + - uid: 9632 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,62.5 + parent: 1 + - type: DeviceList + devices: + - 10537 + - 11756 + - 10536 + - 9616 + - uid: 9660 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,10.5 + parent: 1 + - type: DeviceList + devices: + - 10089 + - 9293 + - 12226 + - uid: 9838 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,-8.5 + parent: 1 + - type: DeviceList + devices: + - 9476 + - 9539 + - 10145 + - 10177 + - 10178 + - 9785 + - 12045 + - uid: 9957 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,43.5 + parent: 1 + - type: DeviceList + devices: + - 9311 + - 9866 + - 10108 + - 10161 + - 10010 + - 7772 + - 9013 + - 10118 + - 10074 + - 9696 + - 9283 + - 10069 + - uid: 10036 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,43.5 + parent: 1 + - type: DeviceList + devices: + - 10273 + - 10293 + - 10235 + - 10322 + - 9607 + - 8947 + - 10115 + - 10114 + - 10054 + - 12241 + - uid: 10068 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,15.5 + parent: 1 + - type: DeviceList + devices: + - 10173 + - 10175 + - 10174 + - 10006 + - 12278 + - uid: 10076 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,35.5 + parent: 1 + - type: DeviceList + devices: + - 9836 + - 9535 + - 9498 + - 8871 + - 9538 + - 10193 + - 10051 + - 9648 + - 10249 + - 10338 + - 8799 + - 10323 + - 10226 + - 10111 + - 1297 + - 10274 + - 10159 + - 10280 + - 10279 + - 9255 + - uid: 10080 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-1.5 + parent: 1 + - type: DeviceList + devices: + - 10130 + - 10143 + - 9290 + - 10017 + - 10163 + - 10271 + - 10289 + - 10090 + - 9472 + - 12211 + - uid: 10113 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,52.5 + parent: 1 + - type: DeviceList + devices: + - 10087 + - 9956 + - 10106 + - 10107 + - 10093 + - 12275 + - uid: 10127 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,53.5 + parent: 1 + - type: DeviceList + devices: + - 9956 + - 10087 + - 10093 + - 10107 + - 10106 + - 12275 + - uid: 10139 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,29.5 + parent: 1 + - type: DeviceList + devices: + - 715 + - 42 + - 204 + - 23 + - 630 + - 10105 + - 10306 + - 10053 + - 10064 + - 10314 + - 10316 + - 10134 + - 10012 + - 8816 + - 10151 + - 12169 + - uid: 10172 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,49.5 + parent: 1 + - type: DeviceList + devices: + - 9887 + - 10110 + - 10109 + - 10052 + - 9850 + - 10304 + - 10100 + - 10101 + - 10102 + - 10103 + - 9014 + - 12243 + - uid: 10200 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,60.5 + parent: 1 + - type: DeviceList + devices: + - 9890 + - 10004 + - 10078 + - 10131 + - uid: 10225 + components: + - type: Transform + pos: -23.5,21.5 + parent: 1 + - type: DeviceList + devices: + - 9373 + - 10007 + - 9844 + - 9341 + - 9851 + - 10196 + - 1436 + - 9134 + - 9499 + - 10222 + - 10132 + - 11975 + - uid: 10232 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,28.5 + parent: 1 + - type: DeviceList + devices: + - 10042 + - 10043 + - 10049 + - 12207 + - uid: 10248 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,52.5 + parent: 1 + - type: DeviceList + devices: + - 10278 + - 9703 + - 10283 + - 11863 + - uid: 10262 + components: + - type: Transform + pos: -25.5,50.5 + parent: 1 + - type: DeviceList + devices: + - 10303 + - 10307 + - 10308 + - 10158 + - 8868 + - 10091 + - 10092 + - 10273 + - 10235 + - 10293 + - 11968 + - 12130 + - uid: 10269 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,40.5 + parent: 1 + - type: DeviceList + devices: + - 10144 + - 10118 + - 10029 + - 10205 + - 10206 + - uid: 10272 + components: + - type: Transform + pos: -7.5,10.5 + parent: 1 + - type: DeviceList + devices: + - 10014 + - 10015 + - 10094 + - 9592 + - 12225 + - uid: 10286 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,16.5 + parent: 1 + - type: DeviceList + devices: + - 10318 + - 10287 + - 9672 + - 10317 + - 9384 + - 10138 + - 9374 + - 9592 + - 12056 + - uid: 10290 + components: + - type: Transform + pos: -21.5,-1.5 + parent: 1 + - type: DeviceList + devices: + - 10017 + - 10163 + - 9476 + - 11921 + - uid: 10292 + components: + - type: Transform + pos: -2.5,-8.5 + parent: 1 + - type: DeviceList + devices: + - 10291 + - 10009 + - 8293 + - 9383 + - 9469 + - 9827 + - 12206 + - uid: 10296 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,15.5 + parent: 1 + - type: DeviceList + devices: + - 10047 + - 9058 + - 9664 + - 9849 + - 10210 + - 9762 + - 9763 + - 10289 + - 10090 + - 9472 + - 11997 + - uid: 10299 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,34.5 + parent: 1 + - type: DeviceList + devices: + - 10169 + - 10170 + - 10117 + - 10042 + - 10043 + - 11878 + - uid: 10300 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,45.5 + parent: 1 + - type: DeviceList + devices: + - 12250 + - 10133 + - 10211 + - 10212 + - 10037 + - 10206 + - 10205 + - 10008 + - 9617 + - 10086 + - uid: 10333 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,5.5 + parent: 1 + - type: DeviceList + devices: + - 10229 + - 10230 + - 10231 + - 10129 + - 9248 + - 12189 + - uid: 10351 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,31.5 + parent: 1 + - type: DeviceList + devices: + - 8871 + - 9538 + - 9988 + - 10061 + - 10050 + - 10085 + - 10084 + - 12165 + - uid: 10352 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,24.5 + parent: 1 + - type: DeviceList + devices: + - 10193 + - 10051 + - 9648 + - 10084 + - 10085 + - 10050 + - 10203 + - 10204 + - 10016 + - 12125 + - uid: 15243 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,53.5 + parent: 1 + - type: DeviceList + devices: + - 15260 + - 15289 + - 15288 + - 15236 + - 15237 + - 15238 + - 15239 + - 15240 + - 15241 + - 11863 +- proto: FireAxeCabinetFilled + entities: + - uid: 1503 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,6.5 + parent: 1 + - uid: 3561 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,-9.5 + parent: 1 +- proto: FireExtinguisher + entities: + - uid: 293 + components: + - type: Transform + pos: -26.518583,31.573 + parent: 1 + - uid: 4732 + components: + - type: Transform + pos: -0.6960902,33.13756 + parent: 1 +- proto: Firelock + entities: + - uid: 8813 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,29.5 + parent: 1 + - uid: 8871 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,34.5 + parent: 1 + - uid: 8947 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,37.5 + parent: 1 + - uid: 9248 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,0.5 + parent: 1 + - uid: 9255 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,23.5 + parent: 1 + - uid: 9259 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,43.5 + parent: 1 + - uid: 9290 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-6.5 + parent: 1 + - uid: 9359 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,5.5 + parent: 1 + - uid: 9360 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,32.5 + parent: 1 + - uid: 9362 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,21.5 + parent: 1 + - uid: 9374 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,15.5 + parent: 1 + - uid: 9391 + components: + - type: Transform + pos: 21.5,54.5 + parent: 1 + - uid: 9398 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-1.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 12198 + - uid: 9487 + components: + - type: Transform + pos: -27.5,-11.5 + parent: 1 + - uid: 9538 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,33.5 + parent: 1 + - uid: 9591 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,12.5 + parent: 1 + - uid: 9592 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,15.5 + parent: 1 + - uid: 9616 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,60.5 + parent: 1 + - uid: 9659 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,18.5 + parent: 1 + - uid: 9785 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-11.5 + parent: 1 + - uid: 9837 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,2.5 + parent: 1 + - uid: 9847 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,24.5 + parent: 1 + - uid: 9862 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,27.5 + parent: 1 + - uid: 9864 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-17.5 + parent: 1 + - uid: 9889 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,27.5 + parent: 1 + - uid: 9890 + components: + - type: Transform + pos: 12.5,60.5 + parent: 1 + - uid: 9908 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,52.5 + parent: 1 + - uid: 9910 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,28.5 + parent: 1 + - uid: 10008 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,45.5 + parent: 1 + - uid: 10014 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,5.5 + parent: 1 + - uid: 10023 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,10.5 + parent: 1 + - uid: 10024 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,13.5 + parent: 1 + - uid: 10051 + components: + - type: Transform + pos: 4.5,27.5 + parent: 1 + - uid: 10052 + components: + - type: Transform + pos: 4.5,48.5 + parent: 1 + - uid: 10056 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,-6.5 + parent: 1 + - uid: 10057 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,-3.5 + parent: 1 + - uid: 10059 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,43.5 + parent: 1 + - uid: 10061 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,32.5 + parent: 1 + - uid: 10062 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,35.5 + parent: 1 + - uid: 10063 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,33.5 + parent: 1 + - uid: 10071 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,39.5 + parent: 1 + - uid: 10072 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,43.5 + parent: 1 + - uid: 10074 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,39.5 + parent: 1 + - uid: 10081 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-13.5 + parent: 1 + - uid: 10082 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-13.5 + parent: 1 + - uid: 10083 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,59.5 + parent: 1 + - uid: 10086 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,46.5 + parent: 1 + - uid: 10087 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,52.5 + parent: 1 + - uid: 10125 + components: + - type: Transform + pos: 25.5,52.5 + parent: 1 + - uid: 10130 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-3.5 + parent: 1 + - uid: 10131 + components: + - type: Transform + pos: 14.5,63.5 + parent: 1 + - uid: 10132 + components: + - type: Transform + pos: -24.5,21.5 + parent: 1 + - uid: 10137 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,27.5 + parent: 1 + - uid: 10143 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-6.5 + parent: 1 + - uid: 10145 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,-13.5 + parent: 1 + - uid: 10151 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,23.5 + parent: 1 + - uid: 10152 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,29.5 + parent: 1 + - uid: 10157 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,23.5 + parent: 1 + - uid: 10158 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,48.5 + parent: 1 + - uid: 10169 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,36.5 + parent: 1 + - uid: 10170 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,35.5 + parent: 1 + - uid: 10171 + components: + - type: Transform + pos: -29.5,-9.5 + parent: 1 + - uid: 10174 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,16.5 + parent: 1 + - uid: 10181 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,24.5 + parent: 1 + - uid: 10182 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,-1.5 + parent: 1 + - uid: 10193 + components: + - type: Transform + pos: 4.5,28.5 + parent: 1 + - uid: 10205 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,45.5 + parent: 1 + - uid: 10206 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,45.5 + parent: 1 + - uid: 10213 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,27.5 + parent: 1 + - uid: 10214 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,27.5 + parent: 1 + - uid: 10221 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,8.5 + parent: 1 + - uid: 10222 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,6.5 + parent: 1 + - uid: 10233 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,38.5 + parent: 1 + - uid: 10234 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,38.5 + parent: 1 + - uid: 10236 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,-6.5 + parent: 1 + - uid: 10238 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-1.5 + parent: 1 + - uid: 10240 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,14.5 + parent: 1 + - uid: 10241 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,12.5 + parent: 1 + - uid: 10256 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,25.5 + parent: 1 + - uid: 10257 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,31.5 + parent: 1 + - uid: 10259 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,24.5 + parent: 1 + - uid: 10260 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,23.5 + parent: 1 + - uid: 10263 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,41.5 + parent: 1 + - uid: 10266 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,12.5 + parent: 1 + - uid: 10267 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,8.5 + parent: 1 + - uid: 10268 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,7.5 + parent: 1 + - uid: 10270 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,21.5 + parent: 1 + - uid: 10271 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,5.5 + parent: 1 + - uid: 10276 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,3.5 + parent: 1 + - uid: 10304 + components: + - type: Transform + pos: 4.5,58.5 + parent: 1 + - uid: 10311 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,34.5 + parent: 1 + - uid: 10322 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,44.5 + parent: 1 + - uid: 10325 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,53.5 + parent: 1 + - uid: 10326 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,62.5 + parent: 1 + - uid: 10332 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,39.5 + parent: 1 + - uid: 10334 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,34.5 + parent: 1 + - uid: 10341 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,11.5 + parent: 1 + - uid: 10342 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,12.5 + parent: 1 + - uid: 11913 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-1.5 + parent: 1 + - uid: 11979 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-1.5 + parent: 1 +- proto: FirelockEdge + entities: + - uid: 23 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,34.5 + parent: 1 + - uid: 42 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,32.5 + parent: 1 + - uid: 204 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,33.5 + parent: 1 + - uid: 546 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,16.5 + parent: 1 + - uid: 630 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,35.5 + parent: 1 + - uid: 715 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,31.5 + parent: 1 + - uid: 1297 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,30.5 + parent: 1 + - uid: 1668 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,19.5 + parent: 1 + - uid: 1669 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,18.5 + parent: 1 + - uid: 1672 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,20.5 + parent: 1 + - uid: 1709 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,17.5 + parent: 1 + - uid: 8159 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,-6.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 12198 + - uid: 8293 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,-5.5 + parent: 1 + - uid: 8327 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,-5.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 12198 + - uid: 8799 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,25.5 + parent: 1 + - uid: 8816 + components: + - type: Transform + pos: -15.5,23.5 + parent: 1 + - uid: 8817 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,56.5 + parent: 1 + - uid: 8868 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,49.5 + parent: 1 + - uid: 9014 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,59.5 + parent: 1 + - uid: 9058 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,21.5 + parent: 1 + - uid: 9283 + components: + - type: Transform + pos: 2.5,38.5 + parent: 1 + - uid: 9311 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,45.5 + parent: 1 + - uid: 9341 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,17.5 + parent: 1 + - uid: 9383 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-5.5 + parent: 1 + - uid: 9384 + components: + - type: Transform + pos: -3.5,16.5 + parent: 1 + - uid: 9469 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-5.5 + parent: 1 + - uid: 9472 + components: + - type: Transform + pos: -13.5,6.5 + parent: 1 + - uid: 9486 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,55.5 + parent: 1 + - uid: 9493 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,32.5 + parent: 1 + - uid: 9498 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,36.5 + parent: 1 + - uid: 9535 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,36.5 + parent: 1 + - uid: 9539 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-9.5 + parent: 1 + - uid: 9599 + components: + - type: Transform + pos: 5.5,11.5 + parent: 1 + - uid: 9621 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,33.5 + parent: 1 + - uid: 9654 + components: + - type: Transform + pos: 4.5,11.5 + parent: 1 + - uid: 9664 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,21.5 + parent: 1 + - uid: 9672 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,21.5 + parent: 1 + - uid: 9696 + components: + - type: Transform + pos: 3.5,38.5 + parent: 1 + - uid: 9703 + components: + - type: Transform + pos: -28.5,51.5 + parent: 1 + - uid: 9755 + components: + - type: Transform + pos: -35.5,-4.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 12198 + - uid: 9836 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,36.5 + parent: 1 + - uid: 9844 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,20.5 + parent: 1 + - uid: 9851 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,14.5 + parent: 1 + - uid: 9856 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,21.5 + parent: 1 + - uid: 9866 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,45.5 + parent: 1 + - uid: 9877 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,32.5 + parent: 1 + - uid: 9887 + components: + - type: Transform + pos: 1.5,47.5 + parent: 1 + - uid: 10004 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,62.5 + parent: 1 + - uid: 10009 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-8.5 + parent: 1 + - uid: 10012 + components: + - type: Transform + pos: -14.5,23.5 + parent: 1 + - uid: 10013 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,21.5 + parent: 1 + - uid: 10016 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,26.5 + parent: 1 + - uid: 10019 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,21.5 + parent: 1 + - uid: 10047 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,21.5 + parent: 1 + - uid: 10050 + components: + - type: Transform + pos: 8.5,30.5 + parent: 1 + - uid: 10053 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,35.5 + parent: 1 + - uid: 10054 + components: + - type: Transform + pos: -13.5,37.5 + parent: 1 + - uid: 10069 + components: + - type: Transform + pos: 1.5,38.5 + parent: 1 + - uid: 10078 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,64.5 + parent: 1 + - uid: 10089 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,11.5 + parent: 1 + - uid: 10090 + components: + - type: Transform + pos: -14.5,6.5 + parent: 1 + - uid: 10091 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,49.5 + parent: 1 + - uid: 10092 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,49.5 + parent: 1 + - uid: 10093 + components: + - type: Transform + pos: -13.5,51.5 + parent: 1 + - uid: 10104 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,21.5 + parent: 1 + - uid: 10105 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,35.5 + parent: 1 + - uid: 10106 + components: + - type: Transform + pos: -15.5,51.5 + parent: 1 + - uid: 10107 + components: + - type: Transform + pos: -14.5,51.5 + parent: 1 + - uid: 10108 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,45.5 + parent: 1 + - uid: 10109 + components: + - type: Transform + pos: 3.5,47.5 + parent: 1 + - uid: 10110 + components: + - type: Transform + pos: 2.5,47.5 + parent: 1 + - uid: 10111 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,28.5 + parent: 1 + - uid: 10114 + components: + - type: Transform + pos: -14.5,37.5 + parent: 1 + - uid: 10115 + components: + - type: Transform + pos: -15.5,37.5 + parent: 1 + - uid: 10121 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,21.5 + parent: 1 + - uid: 10122 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,31.5 + parent: 1 + - uid: 10124 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,43.5 + parent: 1 + - uid: 10126 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,51.5 + parent: 1 + - uid: 10133 + components: + - type: Transform + pos: 13.5,48.5 + parent: 1 + - uid: 10134 + components: + - type: Transform + pos: -13.5,23.5 + parent: 1 + - uid: 10138 + components: + - type: Transform + pos: -8.5,16.5 + parent: 1 + - uid: 10159 + components: + - type: Transform + pos: 1.5,23.5 + parent: 1 + - uid: 10203 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,28.5 + parent: 1 + - uid: 10204 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,27.5 + parent: 1 + - uid: 10211 + components: + - type: Transform + pos: 12.5,48.5 + parent: 1 + - uid: 10212 + components: + - type: Transform + pos: 11.5,48.5 + parent: 1 + - uid: 10223 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,12.5 + parent: 1 + - uid: 10224 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,13.5 + parent: 1 + - uid: 10226 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,27.5 + parent: 1 + - uid: 10228 + components: + - type: Transform + pos: 6.5,11.5 + parent: 1 + - uid: 10229 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,9.5 + parent: 1 + - uid: 10230 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,9.5 + parent: 1 + - uid: 10231 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,9.5 + parent: 1 + - uid: 10235 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,46.5 + parent: 1 + - uid: 10249 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,23.5 + parent: 1 + - uid: 10258 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,22.5 + parent: 1 + - uid: 10265 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,30.5 + parent: 1 + - uid: 10273 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,46.5 + parent: 1 + - uid: 10274 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,29.5 + parent: 1 + - uid: 10278 + components: + - type: Transform + pos: -27.5,51.5 + parent: 1 + - uid: 10279 + components: + - type: Transform + pos: 3.5,23.5 + parent: 1 + - uid: 10280 + components: + - type: Transform + pos: 2.5,23.5 + parent: 1 + - uid: 10283 + components: + - type: Transform + pos: -29.5,51.5 + parent: 1 + - uid: 10287 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,21.5 + parent: 1 + - uid: 10289 + components: + - type: Transform + pos: -15.5,6.5 + parent: 1 + - uid: 10291 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-7.5 + parent: 1 + - uid: 10293 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,46.5 + parent: 1 + - uid: 10303 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,49.5 + parent: 1 + - uid: 10306 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,35.5 + parent: 1 + - uid: 10307 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,49.5 + parent: 1 + - uid: 10308 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,49.5 + parent: 1 + - uid: 10314 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,24.5 + parent: 1 + - uid: 10316 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,23.5 + parent: 1 + - uid: 10317 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,21.5 + parent: 1 + - uid: 10318 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,21.5 + parent: 1 + - uid: 10323 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,26.5 + parent: 1 + - uid: 10338 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,24.5 + parent: 1 + - uid: 10343 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,12.5 + parent: 1 + - uid: 10344 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,11.5 + parent: 1 + - uid: 10345 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,11.5 + parent: 1 + - uid: 10346 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,12.5 + parent: 1 + - uid: 10347 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,8.5 + parent: 1 + - uid: 10348 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,15.5 + parent: 1 + - uid: 15236 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,54.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 15242 + - 15243 + - uid: 15237 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,55.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 15242 + - 15243 + - uid: 15238 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,56.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 15242 + - 15243 + - uid: 15239 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,56.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 15242 + - 15243 + - uid: 15240 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,55.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 15242 + - 15243 + - uid: 15241 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,54.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 15242 + - 15243 + - uid: 15333 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,-7.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 12198 + - uid: 15334 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,-8.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 12198 + - uid: 15335 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,-9.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 12198 + - uid: 15336 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-5.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 12198 + - uid: 15337 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-6.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 12198 + - uid: 15338 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-7.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 12198 + - uid: 15339 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-8.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 12198 + - uid: 15340 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -45.5,-9.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 12198 + - uid: 15341 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -52.5,-12.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 12198 + - uid: 15342 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -52.5,-13.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 12198 + - uid: 15415 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -52.5,-12.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 12198 + - uid: 15416 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -52.5,-13.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 12198 +- proto: FirelockElectronics + entities: + - uid: 2374 + components: + - type: Transform + pos: -33.495464,-10.553298 + parent: 1 + - uid: 2375 + components: + - type: Transform + pos: -33.507698,-10.308686 + parent: 1 +- proto: FirelockGlass + entities: + - uid: 972 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,32.5 + parent: 1 + - uid: 1124 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,33.5 + parent: 1 + - uid: 1436 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,10.5 + parent: 1 + - uid: 7772 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,43.5 + parent: 1 + - uid: 8486 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,10.5 + parent: 1 + - uid: 9013 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,43.5 + parent: 1 + - uid: 9134 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,9.5 + parent: 1 + - uid: 9260 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,10.5 + parent: 1 + - uid: 9284 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,43.5 + parent: 1 + - uid: 9293 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,14.5 + parent: 1 + - uid: 9302 + components: + - type: Transform + pos: 15.5,50.5 + parent: 1 + - uid: 9344 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,23.5 + parent: 1 + - uid: 9373 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,20.5 + parent: 1 + - uid: 9476 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-6.5 + parent: 1 + - uid: 9499 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,8.5 + parent: 1 + - uid: 9607 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,40.5 + parent: 1 + - uid: 9617 + components: + - type: Transform + pos: 23.5,48.5 + parent: 1 + - uid: 9646 + components: + - type: Transform + pos: 15.5,54.5 + parent: 1 + - uid: 9648 + components: + - type: Transform + pos: 4.5,25.5 + parent: 1 + - uid: 9661 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,12.5 + parent: 1 + - uid: 9754 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,24.5 + parent: 1 + - uid: 9759 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,37.5 + parent: 1 + - uid: 9762 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,15.5 + parent: 1 + - uid: 9763 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,14.5 + parent: 1 + - uid: 9827 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-11.5 + parent: 1 + - uid: 9829 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,51.5 + parent: 1 + - uid: 9849 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,18.5 + parent: 1 + - uid: 9850 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,52.5 + parent: 1 + - uid: 9858 + components: + - type: Transform + pos: -28.5,-7.5 + parent: 1 + - uid: 9955 + components: + - type: Transform + pos: -42.5,-4.5 + parent: 1 + - uid: 9956 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,55.5 + parent: 1 + - uid: 9959 + components: + - type: Transform + pos: 12.5,57.5 + parent: 1 + - uid: 9988 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,31.5 + parent: 1 + - uid: 9989 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-0.5 + parent: 1 + - uid: 10006 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,15.5 + parent: 1 + - uid: 10007 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,18.5 + parent: 1 + - uid: 10010 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,43.5 + parent: 1 + - uid: 10015 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,9.5 + parent: 1 + - uid: 10017 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-3.5 + parent: 1 + - uid: 10022 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,41.5 + parent: 1 + - uid: 10029 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,42.5 + parent: 1 + - uid: 10030 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,35.5 + parent: 1 + - uid: 10037 + components: + - type: Transform + pos: 9.5,47.5 + parent: 1 + - uid: 10038 + components: + - type: Transform + pos: 9.5,50.5 + parent: 1 + - uid: 10039 + components: + - type: Transform + pos: 9.5,53.5 + parent: 1 + - uid: 10040 + components: + - type: Transform + pos: 9.5,56.5 + parent: 1 + - uid: 10041 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,18.5 + parent: 1 + - uid: 10042 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,30.5 + parent: 1 + - uid: 10043 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,30.5 + parent: 1 + - uid: 10048 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,2.5 + parent: 1 + - uid: 10049 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,27.5 + parent: 1 + - uid: 10064 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,33.5 + parent: 1 + - uid: 10067 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,18.5 + parent: 1 + - uid: 10070 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,16.5 + parent: 1 + - uid: 10079 + components: + - type: Transform + pos: -27.5,-7.5 + parent: 1 + - uid: 10084 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,30.5 + parent: 1 + - uid: 10085 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,30.5 + parent: 1 + - uid: 10094 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,8.5 + parent: 1 + - uid: 10100 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,58.5 + parent: 1 + - uid: 10101 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,57.5 + parent: 1 + - uid: 10102 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,57.5 + parent: 1 + - uid: 10103 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,57.5 + parent: 1 + - uid: 10117 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,32.5 + parent: 1 + - uid: 10118 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,41.5 + parent: 1 + - uid: 10128 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,41.5 + parent: 1 + - uid: 10129 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,2.5 + parent: 1 + - uid: 10140 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,0.5 + parent: 1 + - uid: 10144 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,42.5 + parent: 1 + - uid: 10146 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,32.5 + parent: 1 + - uid: 10161 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,45.5 + parent: 1 + - uid: 10162 + components: + - type: Transform + pos: -38.5,-4.5 + parent: 1 + - uid: 10163 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-4.5 + parent: 1 + - uid: 10173 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,19.5 + parent: 1 + - uid: 10175 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,18.5 + parent: 1 + - uid: 10177 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-9.5 + parent: 1 + - uid: 10178 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-9.5 + parent: 1 + - uid: 10196 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,15.5 + parent: 1 + - uid: 10201 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,39.5 + parent: 1 + - uid: 10207 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,-2.5 + parent: 1 + - uid: 10210 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,20.5 + parent: 1 + - uid: 10220 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,12.5 + parent: 1 + - uid: 10227 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,16.5 + parent: 1 + - uid: 10237 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,-5.5 + parent: 1 + - uid: 10239 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,14.5 + parent: 1 + - uid: 10245 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,59.5 + parent: 1 + - uid: 10246 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,59.5 + parent: 1 + - uid: 10254 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,43.5 + parent: 1 + - uid: 10255 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,13.5 + parent: 1 + - uid: 10264 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,22.5 + parent: 1 + - uid: 10275 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,68.5 + parent: 1 + - uid: 10284 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,9.5 + parent: 1 + - uid: 10285 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,14.5 + parent: 1 + - uid: 10288 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,39.5 + parent: 1 + - uid: 10294 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,18.5 + parent: 1 + - uid: 10297 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,61.5 + parent: 1 + - uid: 10298 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,37.5 + parent: 1 + - uid: 10305 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,4.5 + parent: 1 + - uid: 10329 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,51.5 + parent: 1 + - uid: 10331 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,-2.5 + parent: 1 + - uid: 10335 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,34.5 + parent: 1 + - uid: 10336 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,34.5 + parent: 1 + - uid: 10337 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,29.5 + parent: 1 + - uid: 10339 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,67.5 + parent: 1 + - uid: 10340 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,66.5 + parent: 1 +- proto: Fireplace + entities: + - uid: 168 + components: + - type: Transform + pos: -3.5,6.5 + parent: 1 + - uid: 173 + components: + - type: Transform + pos: -28.5,34.5 + parent: 1 + - uid: 514 + components: + - type: Transform + pos: -9.5,30.5 + parent: 1 + - uid: 1180 + components: + - type: Transform + pos: -11.5,14.5 + parent: 1 + - uid: 1313 + components: + - type: Transform + pos: -17.5,42.5 + parent: 1 + - uid: 1904 + components: + - type: Transform + pos: -30.5,7.5 + parent: 1 + - uid: 2010 + components: + - type: Transform + pos: 20.5,17.5 + parent: 1 + - uid: 2291 + components: + - type: Transform + pos: -39.5,14.5 + parent: 1 + - uid: 2549 + components: + - type: Transform + pos: -36.5,9.5 + parent: 1 + - uid: 2858 + components: + - type: Transform + pos: -38.5,4.5 + parent: 1 + - uid: 3070 + components: + - type: Transform + pos: -18.5,-18.5 + parent: 1 + - uid: 3357 + components: + - type: Transform + pos: 14.5,-7.5 + parent: 1 + - uid: 3673 + components: + - type: Transform + pos: 22.5,55.5 + parent: 1 + - uid: 3950 + components: + - type: Transform + pos: -1.5,63.5 + parent: 1 +- proto: Flash + entities: + - uid: 1501 + components: + - type: Transform + pos: -10.938927,5.5790505 + parent: 1 +- proto: FloodlightBroken + entities: + - uid: 5253 + components: + - type: Transform + pos: 44.52566,9.528442 + parent: 1 + - uid: 6268 + components: + - type: Transform + pos: 27.43957,-0.5050409 + parent: 1 +- proto: FloorDrain + entities: + - uid: 946 + components: + - type: Transform + pos: 12.5,32.5 + parent: 1 + - type: Fixtures + fixtures: {} + - uid: 2193 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,42.5 + parent: 1 + - type: Fixtures + fixtures: {} + - uid: 2791 + components: + - type: Transform + pos: 29.5,43.5 + parent: 1 + - type: Fixtures + fixtures: {} + - uid: 4681 + components: + - type: Transform + pos: 19.5,24.5 + parent: 1 + - type: Fixtures + fixtures: {} +- proto: FloorTileItemSteel + entities: + - uid: 10058 + components: + - type: Transform + pos: -22.897661,20.08483 + parent: 1 + - uid: 10116 + components: + - type: Transform + pos: -23.613152,18.011744 + parent: 1 + - uid: 10194 + components: + - type: Transform + pos: -28.726543,56.66182 + parent: 1 + - uid: 10195 + components: + - type: Transform + pos: -16.717993,33.688576 + parent: 1 + - uid: 10215 + components: + - type: Transform + pos: 2.3811793,29.376514 + parent: 1 + - uid: 10244 + components: + - type: Transform + pos: -14.654942,63.435474 + parent: 1 + - uid: 10252 + components: + - type: Transform + pos: 2.417871,31.22945 + parent: 1 + - uid: 10281 + components: + - type: Transform + pos: -14.432302,65.74955 + parent: 1 + - uid: 10282 + components: + - type: Transform + pos: -0.84627867,10.696297 + parent: 1 + - uid: 10312 + components: + - type: Transform + pos: 5.4318695,4.635255 + parent: 1 + - uid: 10313 + components: + - type: Transform + pos: 6.862849,2.3053265 + parent: 1 + - uid: 10327 + components: + - type: Transform + pos: 6.1290135,16.852398 + parent: 1 + - uid: 10354 + components: + - type: Transform + pos: 2.363345,55.501724 + parent: 1 + - uid: 10360 + components: + - type: Transform + pos: -10.575072,23.54631 + parent: 1 + - uid: 10368 + components: + - type: Transform + pos: -28.322933,55.59776 + parent: 1 + - uid: 10369 + components: + - type: Transform + pos: 3.9961295,43.625584 + parent: 1 + - uid: 13307 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.660233,54.244667 + parent: 1 + - uid: 15185 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.232027,54.74646 + parent: 1 + - uid: 15186 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.200157,55.248253 + parent: 1 + - uid: 15187 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.200157,56.46689 + parent: 1 + - uid: 15188 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.610527,56.25184 + parent: 1 + - uid: 15189 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.71652,54.72854 + parent: 1 + - uid: 15190 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -49.67549,55.642517 + parent: 1 + - uid: 15191 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -48.796005,54.72854 + parent: 1 + - uid: 15192 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -48.229946,54.29843 + parent: 1 +- proto: FloorTileItemSteelMaint + entities: + - uid: 10088 + components: + - type: Transform + pos: -10.431452,38.42153 + parent: 1 + - uid: 10176 + components: + - type: Transform + pos: -8.101523,40.43958 + parent: 1 + - uid: 10363 + components: + - type: Transform + pos: -9.844383,40.494617 + parent: 1 + - uid: 10364 + components: + - type: Transform + pos: -9.092201,39.48559 + parent: 1 +- proto: FloraTreeStump + entities: + - uid: 2252 + components: + - type: Transform + pos: 13.588196,29.651323 + parent: 1 + - uid: 3493 + components: + - type: Transform + pos: 13.65999,25.457775 + parent: 1 +- proto: FoodBakedBrownieBatch + entities: + - uid: 14984 + components: + - type: Transform + pos: 37.491615,6.5749474 + parent: 1 +- proto: FoodBowlBigTrash + entities: + - uid: 6415 + components: + - type: Transform + pos: 8.270021,-3.103507 + parent: 1 +- proto: FoodBoxDonut + entities: + - uid: 479 + components: + - type: Transform + pos: -0.48552883,32.618504 + parent: 1 + - uid: 3323 + components: + - type: Transform + pos: -20.021667,-9.172514 + parent: 1 + - uid: 4878 + components: + - type: Transform + pos: -40.057343,-7.4895873 + parent: 1 +- proto: FoodBreadPlain + entities: + - uid: 1096 + components: + - type: Transform + pos: 10.659124,3.7060046 + parent: 1 +- proto: FoodBurgerCat + entities: + - uid: 5496 + components: + - type: Transform + pos: -32.541264,21.436737 + parent: 1 +- proto: FoodBurgerMime + entities: + - uid: 2644 + components: + - type: Transform + pos: -37.857735,9.710089 + parent: 1 +- proto: FoodCondimentBottleEnzyme + entities: + - uid: 125 + components: + - type: Transform + pos: 7.6025324,35.48778 + parent: 1 + - uid: 532 + components: + - type: Transform + pos: 7.3994074,35.534657 + parent: 1 +- proto: FoodCondimentPacketBbq + entities: + - uid: 5883 + components: + - type: Transform + pos: 23.489153,23.539831 + parent: 1 +- proto: FoodDonutBlumpkin + entities: + - uid: 414 + components: + - type: Transform + pos: -0.4855032,34.41538 + parent: 1 +- proto: FoodDonutCaramel + entities: + - uid: 481 + components: + - type: Transform + pos: -0.5792788,34.024754 + parent: 1 +- proto: FoodDonutJellyBlumpkin + entities: + - uid: 1252 + components: + - type: Transform + pos: -0.3761282,34.181004 + parent: 1 +- proto: FoodDonutJellyCaramel + entities: + - uid: 480 + components: + - type: Transform + pos: -0.45427883,33.806004 + parent: 1 +- proto: FoodDonutJellySlugcat + entities: + - uid: 2398 + components: + - type: Transform + pos: -37.505764,1.7455108 + parent: 1 + - uid: 4914 + components: + - type: Transform + pos: -39.448006,-7.477357 + parent: 1 +- proto: FoodMealNachosCuban + entities: + - uid: 16380 + components: + - type: Transform + pos: -8.510593,-37.40669 + parent: 1 +- proto: FoodMeat + entities: + - uid: 1228 + components: + - type: Transform + pos: 12.427878,32.360954 + parent: 1 + - uid: 1229 + components: + - type: Transform + pos: 12.646628,32.579704 + parent: 1 +- proto: FoodMeatSpiderlegCooked + entities: + - uid: 14970 + components: + - type: Transform + pos: 39.470917,48.41559 + parent: 1 +- proto: FoodPieBananaCream + entities: + - uid: 2345 + components: + - type: Transform + pos: -38.73036,1.4833837 + parent: 1 + - uid: 2346 + components: + - type: Transform + pos: -38.933483,1.4833837 + parent: 1 + - uid: 2450 + components: + - type: Transform + pos: -39.10536,1.4833837 + parent: 1 +- proto: FoodSoupBungo + entities: + - uid: 14985 + components: + - type: Transform + pos: 31.57351,8.554249 + parent: 1 +- proto: FoodTinBeans + entities: + - uid: 6118 + components: + - type: Transform + pos: 25.46093,30.745102 + parent: 1 +- proto: FoodTinPeachesMaint + entities: + - uid: 5958 + components: + - type: Transform + pos: 28.58593,30.635727 + parent: 1 +- proto: GasCanisterBrokenBase + entities: + - uid: 1347 + components: + - type: Transform + pos: -11.5,-4.5 + parent: 1 + - uid: 3817 + components: + - type: Transform + pos: -11.5,50.5 + parent: 1 + - uid: 6102 + components: + - type: Transform + pos: 25.5,8.5 + parent: 1 + - uid: 10119 + components: + - type: Transform + pos: -7.5,-4.5 + parent: 1 +- proto: GasFilter + entities: + - uid: 4063 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-14.5 + parent: 1 + - uid: 4329 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-14.5 + parent: 1 + - uid: 4465 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-14.5 + parent: 1 + - uid: 4888 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-28.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 4936 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-31.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 5316 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-14.5 + parent: 1 + - uid: 5654 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-14.5 + parent: 1 + - uid: 5663 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-14.5 + parent: 1 + - uid: 6362 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-30.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 8350 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-29.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13279 + components: + - type: Transform + pos: -25.5,-32.5 + parent: 1 +- proto: GasMinerCarbonDioxide + entities: + - uid: 1850 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-19.5 + parent: 1 +- proto: GasMinerNitrogenStation + entities: + - uid: 3532 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-19.5 + parent: 1 +- proto: GasMinerOxygenStation + entities: + - uid: 3531 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-19.5 + parent: 1 +- proto: GasMixer + entities: + - uid: 4049 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-12.5 + parent: 1 + - uid: 4414 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-12.5 + parent: 1 + - uid: 4808 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-12.5 + parent: 1 + - uid: 5214 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-12.5 + parent: 1 + - uid: 5656 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-12.5 + parent: 1 + - type: GasMixer + inletTwoConcentration: 0.78 + inletOneConcentration: 0.22 + - uid: 13634 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-25.5 + parent: 1 + - uid: 13635 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-25.5 + parent: 1 + - uid: 13636 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-25.5 + parent: 1 + - uid: 13637 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-25.5 + parent: 1 + - uid: 13638 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-25.5 + parent: 1 + - uid: 13639 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-25.5 + parent: 1 +- proto: GasMixerFlipped + entities: + - uid: 13273 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,-29.5 + parent: 1 +- proto: GasOutletInjector + entities: + - uid: 366 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-18.5 + parent: 1 + - uid: 367 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-18.5 + parent: 1 + - uid: 368 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-18.5 + parent: 1 + - uid: 2642 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-18.5 + parent: 1 + - uid: 4061 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-18.5 + parent: 1 + - uid: 4065 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-18.5 + parent: 1 + - uid: 4283 + components: + - type: Transform + pos: 3.5,-10.5 + parent: 1 + - uid: 4949 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-18.5 + parent: 1 +- proto: GasPassiveVent + entities: + - uid: 33 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-20.5 + parent: 1 + - uid: 49 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-20.5 + parent: 1 + - uid: 74 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-20.5 + parent: 1 + - uid: 132 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-20.5 + parent: 1 + - uid: 2706 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,-32.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 3613 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-34.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 3677 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-33.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 3819 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,-33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 3968 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,-34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 5724 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-20.5 + parent: 1 + - uid: 5725 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-20.5 + parent: 1 + - uid: 5726 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-20.5 + parent: 1 + - uid: 8356 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-32.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10413 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-44.5 + parent: 1 + - uid: 10789 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,32.5 + parent: 1 + - uid: 15501 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,10.5 + parent: 1 + - uid: 15502 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,13.5 + parent: 1 +- proto: GasPipeBend + entities: + - uid: 1414 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-13.5 + parent: 1 + - uid: 1751 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,-14.5 + parent: 1 + - uid: 2782 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 3742 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,-34.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 4078 + components: + - type: Transform + pos: 3.5,-14.5 + parent: 1 + - uid: 4092 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-37.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 4093 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-37.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 4717 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-30.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 5179 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-12.5 + parent: 1 + - uid: 5270 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 5271 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 5484 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-13.5 + parent: 1 + - uid: 5487 + components: + - type: Transform + pos: -4.5,-11.5 + parent: 1 + - uid: 5568 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-23.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 5657 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-11.5 + parent: 1 + - uid: 6250 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-27.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 6322 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,-33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 6356 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,-35.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 6365 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,-35.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 6465 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,-26.5 + parent: 1 + - uid: 6549 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-25.5 + parent: 1 + - uid: 10394 + components: + - type: Transform + pos: -19.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10398 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10405 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,52.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10417 + components: + - type: Transform + pos: -28.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10437 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10462 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,-20.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10473 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10497 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,-16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10505 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,41.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10513 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10519 + components: + - type: Transform + pos: 6.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10534 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10541 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10550 + components: + - type: Transform + pos: -5.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10557 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,55.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10608 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,14.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10625 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,19.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10636 + components: + - type: Transform + pos: -27.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10637 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10646 + components: + - type: Transform + pos: -19.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10647 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,40.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10709 + components: + - type: Transform + pos: -28.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10710 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10715 + components: + - type: Transform + pos: 13.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10761 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-12.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10763 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,-14.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10764 + components: + - type: Transform + pos: -16.5,-14.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10765 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-15.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10774 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10786 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10803 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,54.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10827 + components: + - type: Transform + pos: -27.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10841 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-22.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10872 + components: + - type: Transform + pos: -14.5,-26.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10907 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10908 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,48.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10917 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10930 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10955 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11006 + components: + - type: Transform + pos: -27.5,59.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11009 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,-11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11010 + components: + - type: Transform + pos: -18.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11011 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,19.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11012 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,61.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11017 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11025 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11026 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11041 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11043 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,-12.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11053 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,-16.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11059 + components: + - type: Transform + pos: -29.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11069 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,27.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11109 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11110 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11168 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,55.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11179 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11180 + components: + - type: Transform + pos: 3.5,56.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11183 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11184 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11189 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11201 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11202 + components: + - type: Transform + pos: -13.5,59.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11204 + components: + - type: Transform + pos: -2.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11209 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11231 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11238 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11250 + components: + - type: Transform + pos: -26.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11256 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11277 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,14.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11278 + components: + - type: Transform + pos: -30.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11282 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11312 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,61.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11343 + components: + - type: Transform + pos: 11.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11356 + components: + - type: Transform + pos: -1.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11374 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11382 + components: + - type: Transform + pos: 10.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11391 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11438 + components: + - type: Transform + pos: -23.5,19.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11439 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11448 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11451 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11458 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11459 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11463 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11465 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11469 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11476 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11484 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,24.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11489 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11494 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11506 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11507 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11519 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11520 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11526 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,14.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11527 + components: + - type: Transform + pos: 10.5,14.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11529 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11549 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11566 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11574 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11581 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11582 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11591 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11597 + components: + - type: Transform + pos: 12.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11598 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,31.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11645 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11655 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,35.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11662 + components: + - type: Transform + pos: 13.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11684 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11704 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11711 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11712 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,37.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11737 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11754 + components: + - type: Transform + pos: 22.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11801 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,45.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11804 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11822 + components: + - type: Transform + pos: 1.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11825 + components: + - type: Transform + pos: 2.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11827 + components: + - type: Transform + pos: 26.5,45.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11835 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11837 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11858 + components: + - type: Transform + pos: 0.5,59.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11861 + components: + - type: Transform + pos: -1.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11867 + components: + - type: Transform + pos: 13.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11873 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11883 + components: + - type: Transform + pos: 20.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11891 + components: + - type: Transform + pos: 21.5,59.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11892 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11907 + components: + - type: Transform + pos: 22.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11908 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11923 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11932 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,31.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11942 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11944 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11962 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 39.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11963 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11964 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11965 + components: + - type: Transform + pos: 39.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11967 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11976 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,57.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11994 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,25.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11998 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12006 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12007 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12011 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12019 + components: + - type: Transform + pos: -23.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12020 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12022 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12028 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,27.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12032 + components: + - type: Transform + pos: 28.5,52.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12044 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,43.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12048 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,56.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12053 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,57.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12054 + components: + - type: Transform + pos: 16.5,58.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12055 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,55.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12062 + components: + - type: Transform + pos: 41.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12063 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12065 + components: + - type: Transform + pos: 43.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12066 + components: + - type: Transform + pos: 46.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12067 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12081 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,56.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12085 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,58.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12096 + components: + - type: Transform + pos: 13.5,64.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12100 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12111 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12121 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,59.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12122 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,61.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12143 + components: + - type: Transform + pos: 15.5,63.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12144 + components: + - type: Transform + pos: 17.5,54.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12151 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,62.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12181 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,55.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12199 + components: + - type: Transform + pos: 22.5,60.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12235 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,53.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12369 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-22.5 + parent: 1 + - uid: 12445 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-22.5 + parent: 1 + - uid: 12762 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,-38.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12839 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,-38.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12891 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-23.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13063 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,-34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13125 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-32.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13647 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-25.5 + parent: 1 + - uid: 14406 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-27.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 14407 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-26.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15286 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,54.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15287 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,56.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15389 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -49.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15397 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -47.5,-13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15398 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -49.5,-12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15507 + components: + - type: Transform + pos: 47.5,13.5 + parent: 1 +- proto: GasPipeFourway + entities: + - uid: 8349 + components: + - type: Transform + pos: -5.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10503 + components: + - type: Transform + pos: -23.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10849 + components: + - type: Transform + pos: -20.5,-11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11090 + components: + - type: Transform + pos: 3.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11094 + components: + - type: Transform + pos: 3.5,27.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11193 + components: + - type: Transform + pos: -14.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11420 + components: + - type: Transform + pos: 24.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11924 + components: + - type: Transform + pos: 18.5,46.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11952 + components: + - type: Transform + pos: 35.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 13127 + components: + - type: Transform + pos: -22.5,-33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' +- proto: GasPipeStraight + entities: + - uid: 1274 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-26.5 + parent: 1 + - uid: 1479 + components: + - type: Transform + pos: 15.5,16.5 + parent: 1 + - uid: 1480 + components: + - type: Transform + pos: 15.5,15.5 + parent: 1 + - uid: 1798 + components: + - type: Transform + pos: 14.5,16.5 + parent: 1 + - uid: 1799 + components: + - type: Transform + pos: 14.5,17.5 + parent: 1 + - uid: 1800 + components: + - type: Transform + pos: 15.5,17.5 + parent: 1 + - uid: 1876 + components: + - type: Transform + pos: 14.5,15.5 + parent: 1 + - uid: 1898 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-23.5 + parent: 1 + - uid: 2019 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-22.5 + parent: 1 + - uid: 2801 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-37.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 3102 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-36.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 3149 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-37.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 3201 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,-37.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 3435 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-37.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 3725 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,-32.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 4050 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-14.5 + parent: 1 + - uid: 4062 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-17.5 + parent: 1 + - uid: 4066 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-16.5 + parent: 1 + - uid: 4075 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-14.5 + parent: 1 + - uid: 4079 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-14.5 + parent: 1 + - uid: 4104 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-17.5 + parent: 1 + - uid: 4116 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-16.5 + parent: 1 + - uid: 4124 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-17.5 + parent: 1 + - uid: 4126 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,-18.5 + parent: 1 + - uid: 4137 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-35.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 4259 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-14.5 + parent: 1 + - uid: 4307 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-12.5 + parent: 1 + - uid: 4325 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,-19.5 + parent: 1 + - uid: 4330 + components: + - type: Transform + pos: 1.5,-17.5 + parent: 1 + - uid: 4345 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-15.5 + parent: 1 + - uid: 4346 + components: + - type: Transform + pos: -7.5,-14.5 + parent: 1 + - uid: 4348 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-14.5 + parent: 1 + - uid: 4369 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-10.5 + parent: 1 + - uid: 4378 + components: + - type: Transform + pos: -14.5,-30.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 4381 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-16.5 + parent: 1 + - uid: 4439 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-15.5 + parent: 1 + - uid: 4518 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-18.5 + parent: 1 + - uid: 4582 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-37.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 4594 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-15.5 + parent: 1 + - uid: 4599 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,-16.5 + parent: 1 + - uid: 4618 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-19.5 + parent: 1 + - uid: 4621 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-18.5 + parent: 1 + - uid: 4622 + components: + - type: Transform + pos: -14.5,-29.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 4643 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,-15.5 + parent: 1 + - uid: 4644 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-17.5 + parent: 1 + - uid: 4656 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-12.5 + parent: 1 + - uid: 4703 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-15.5 + parent: 1 + - uid: 4719 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-17.5 + parent: 1 + - uid: 4742 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-14.5 + parent: 1 + - uid: 4759 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-17.5 + parent: 1 + - uid: 4762 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-16.5 + parent: 1 + - uid: 4763 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-17.5 + parent: 1 + - uid: 4767 + components: + - type: Transform + pos: -2.5,-17.5 + parent: 1 + - uid: 4769 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-16.5 + parent: 1 + - uid: 4778 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-15.5 + parent: 1 + - uid: 4828 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-15.5 + parent: 1 + - uid: 4867 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-15.5 + parent: 1 + - uid: 4915 + components: + - type: Transform + pos: -2.5,-15.5 + parent: 1 + - uid: 4922 + components: + - type: Transform + pos: 3.5,-17.5 + parent: 1 + - uid: 4937 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-30.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 4943 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-15.5 + parent: 1 + - uid: 4984 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-18.5 + parent: 1 + - uid: 5077 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-12.5 + parent: 1 + - uid: 5084 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,-17.5 + parent: 1 + - uid: 5097 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-15.5 + parent: 1 + - uid: 5098 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-16.5 + parent: 1 + - uid: 5128 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-18.5 + parent: 1 + - uid: 5135 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-16.5 + parent: 1 + - uid: 5136 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-19.5 + parent: 1 + - uid: 5164 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-18.5 + parent: 1 + - uid: 5182 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-19.5 + parent: 1 + - uid: 5285 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-29.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 5359 + components: + - type: Transform + pos: -2.5,-16.5 + parent: 1 + - uid: 5364 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-11.5 + parent: 1 + - uid: 5378 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-11.5 + parent: 1 + - uid: 5379 + components: + - type: Transform + pos: 3.5,-16.5 + parent: 1 + - uid: 5405 + components: + - type: Transform + pos: 3.5,-15.5 + parent: 1 + - uid: 5412 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-19.5 + parent: 1 + - uid: 5466 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-10.5 + parent: 1 + - uid: 5517 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-12.5 + parent: 1 + - uid: 5518 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-19.5 + parent: 1 + - uid: 5534 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-11.5 + parent: 1 + - uid: 5538 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-23.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 5543 + components: + - type: Transform + pos: 1.5,-16.5 + parent: 1 + - uid: 5544 + components: + - type: Transform + pos: 1.5,-15.5 + parent: 1 + - uid: 5571 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-17.5 + parent: 1 + - uid: 5591 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-12.5 + parent: 1 + - uid: 5602 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-12.5 + parent: 1 + - uid: 5604 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-16.5 + parent: 1 + - uid: 5612 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-17.5 + parent: 1 + - uid: 5613 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-16.5 + parent: 1 + - uid: 5658 + components: + - type: Transform + pos: 2.5,-14.5 + parent: 1 + - uid: 5659 + components: + - type: Transform + pos: 0.5,-14.5 + parent: 1 + - uid: 5660 + components: + - type: Transform + pos: -1.5,-14.5 + parent: 1 + - uid: 5661 + components: + - type: Transform + pos: -3.5,-14.5 + parent: 1 + - uid: 5662 + components: + - type: Transform + pos: -5.5,-14.5 + parent: 1 + - uid: 5672 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-28.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 5832 + components: + - type: Transform + pos: -13.5,-24.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 6019 + components: + - type: Transform + pos: -27.5,-28.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 6032 + components: + - type: Transform + pos: -27.5,-29.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 6035 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,-26.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 6044 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,-26.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 6046 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,-26.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 6047 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,-27.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 6050 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,-27.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 6090 + components: + - type: Transform + pos: -13.5,-23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 6104 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,-28.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 6134 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,-29.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 6136 + components: + - type: Transform + pos: -14.5,-28.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 6154 + components: + - type: Transform + pos: -14.5,-27.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 6189 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,-27.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 6190 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,-27.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 6191 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,-27.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 6192 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,-27.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 6208 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,-27.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 6241 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,-27.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 6242 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,-27.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 6276 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,-27.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 6363 + components: + - type: Transform + pos: -13.5,-25.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 6364 + components: + - type: Transform + pos: -13.5,-26.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 6391 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,-30.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 8325 + components: + - type: Transform + pos: -16.5,-37.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10250 + components: + - type: Transform + pos: -13.5,-27.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10359 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,-38.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10381 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10383 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,25.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10384 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,25.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10388 + components: + - type: Transform + pos: -19.5,-18.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10389 + components: + - type: Transform + pos: -19.5,-19.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10392 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,43.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10393 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,20.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10395 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10396 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10397 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10399 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,-20.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10400 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10401 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,-11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10402 + components: + - type: Transform + pos: 1.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10403 + components: + - type: Transform + pos: -15.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10404 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10411 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,39.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10412 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-22.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10414 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,43.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10415 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,55.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10416 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10418 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10419 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10420 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10421 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10422 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10423 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,20.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10424 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10425 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10427 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,-12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10430 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-19.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10432 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10433 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,53.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10434 + components: + - type: Transform + pos: 1.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10435 + components: + - type: Transform + pos: 1.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10436 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10438 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10439 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10446 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,30.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10447 + components: + - type: Transform + pos: -21.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10450 + components: + - type: Transform + pos: -16.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10451 + components: + - type: Transform + pos: -16.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10452 + components: + - type: Transform + pos: -9.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10454 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,20.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10455 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,14.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10456 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10458 + components: + - type: Transform + pos: -19.5,-17.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10460 + components: + - type: Transform + pos: 1.5,21.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10461 + components: + - type: Transform + pos: 1.5,20.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10463 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,41.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10465 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10466 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10467 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-12.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10468 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10469 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-13.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10470 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-14.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10472 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10474 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-15.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10475 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-14.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10476 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,36.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10477 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,25.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10478 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,26.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10479 + components: + - type: Transform + pos: 1.5,30.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10481 + components: + - type: Transform + pos: -16.5,-19.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10488 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10490 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10491 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10492 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10493 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,24.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10494 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,26.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10495 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,27.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10496 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,-13.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10498 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-15.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10499 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-14.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10500 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10501 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10504 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,18.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10507 + components: + - type: Transform + pos: -16.5,-18.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10508 + components: + - type: Transform + pos: -16.5,-17.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10509 + components: + - type: Transform + pos: -16.5,-16.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10512 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10514 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,20.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10515 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,20.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10517 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,30.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10520 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10521 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10522 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,55.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10523 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10526 + components: + - type: Transform + pos: 13.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10528 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10529 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10530 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-15.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10531 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-15.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10532 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-14.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10538 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10543 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,43.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10544 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10545 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10546 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10547 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10554 + components: + - type: Transform + pos: 1.5,53.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10555 + components: + - type: Transform + pos: 1.5,54.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10558 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10559 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10560 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10561 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10562 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,44.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10568 + components: + - type: Transform + pos: -15.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10569 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10570 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,43.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10571 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,40.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10572 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10574 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10577 + components: + - type: Transform + pos: 18.5,48.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10578 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,-27.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10583 + components: + - type: Transform + pos: -16.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10584 + components: + - type: Transform + pos: -14.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10585 + components: + - type: Transform + pos: -14.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10586 + components: + - type: Transform + pos: -14.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10587 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10588 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10590 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10591 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10592 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10593 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10594 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10596 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10597 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10598 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10599 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10600 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10601 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10602 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10603 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10606 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,55.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10607 + components: + - type: Transform + pos: -15.5,22.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10609 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10610 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10613 + components: + - type: Transform + pos: 1.5,51.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10614 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10615 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10624 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,19.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10634 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10635 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,20.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10638 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10639 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10644 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10645 + components: + - type: Transform + pos: 1.5,14.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10648 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10651 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,14.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10652 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-17.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10653 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10654 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10655 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,14.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10658 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10659 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10660 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10661 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10662 + components: + - type: Transform + pos: -15.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10674 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,30.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10679 + components: + - type: Transform + pos: -15.5,27.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10680 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,25.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10682 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10683 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10685 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10686 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10688 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,31.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10689 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10690 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,45.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10691 + components: + - type: Transform + pos: -16.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10692 + components: + - type: Transform + pos: -16.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10695 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,54.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10696 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,55.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10697 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,56.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10698 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,57.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10699 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,18.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10703 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10705 + components: + - type: Transform + pos: -28.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10706 + components: + - type: Transform + pos: -28.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10707 + components: + - type: Transform + pos: -28.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10708 + components: + - type: Transform + pos: -28.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10711 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10712 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10714 + components: + - type: Transform + pos: 1.5,22.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10716 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10718 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10719 + components: + - type: Transform + pos: -16.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10720 + components: + - type: Transform + pos: 13.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10725 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,-10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10726 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,-10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10727 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,-10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10728 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,27.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10736 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10742 + components: + - type: Transform + pos: -20.5,-13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10749 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,31.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10750 + components: + - type: Transform + pos: -11.5,-22.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10752 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10753 + components: + - type: Transform + pos: -16.5,-10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10755 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-10.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10756 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10757 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10758 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,-16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10760 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-12.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10762 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,37.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10766 + components: + - type: Transform + pos: -20.5,-12.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10767 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10768 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,51.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10769 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,50.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10770 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10771 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10772 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10773 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10775 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10777 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,25.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10778 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10779 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10780 + components: + - type: Transform + pos: -15.5,53.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10781 + components: + - type: Transform + pos: -15.5,54.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10784 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,55.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10785 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-20.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10787 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,53.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10794 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10795 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10798 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,-10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10800 + components: + - type: Transform + pos: -15.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10804 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,52.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10805 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10810 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10814 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,44.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10819 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10821 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,40.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10825 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10828 + components: + - type: Transform + pos: -15.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10829 + components: + - type: Transform + pos: -15.5,19.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10830 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,59.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10832 + components: + - type: Transform + pos: 14.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10833 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10834 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10836 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10837 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10842 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10843 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,55.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10844 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,54.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10850 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,-11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10851 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-12.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10852 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10853 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,38.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10854 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,39.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10855 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,38.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10857 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,46.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10859 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,31.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10866 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10868 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10871 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,25.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10880 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10883 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10884 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,46.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10887 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,25.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10890 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10891 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10892 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10893 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10894 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10895 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10896 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-10.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10898 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10900 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-27.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10902 + components: + - type: Transform + pos: 1.5,18.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10904 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10905 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10906 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10909 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,25.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10910 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,20.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10911 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,20.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10912 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,19.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10913 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,19.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10919 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,55.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10920 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-21.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10921 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-20.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10922 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-19.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10923 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-18.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10924 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-17.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10925 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10926 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-21.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10927 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10928 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10929 + components: + - type: Transform + pos: 1.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10932 + components: + - type: Transform + pos: 13.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10933 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10934 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10935 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,46.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10936 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10937 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10938 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,41.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10939 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10940 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10941 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10942 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,48.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10945 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10946 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-10.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10947 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,37.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10948 + components: + - type: Transform + pos: -25.5,18.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10949 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,48.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10950 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,48.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10951 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10952 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10953 + components: + - type: Transform + pos: -36.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10954 + components: + - type: Transform + pos: -36.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10956 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10957 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10958 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10959 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10960 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,36.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10961 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,35.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10962 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10964 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10965 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10966 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10967 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10971 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10972 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,50.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10973 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,51.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10974 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,52.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10976 + components: + - type: Transform + pos: 1.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10977 + components: + - type: Transform + pos: 1.5,35.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10978 + components: + - type: Transform + pos: 1.5,36.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10979 + components: + - type: Transform + pos: 1.5,37.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10980 + components: + - type: Transform + pos: 1.5,38.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10981 + components: + - type: Transform + pos: 1.5,39.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10982 + components: + - type: Transform + pos: 1.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10983 + components: + - type: Transform + pos: 1.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10984 + components: + - type: Transform + pos: 1.5,46.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10985 + components: + - type: Transform + pos: 1.5,45.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10987 + components: + - type: Transform + pos: 1.5,43.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10988 + components: + - type: Transform + pos: 1.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10989 + components: + - type: Transform + pos: 1.5,41.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10990 + components: + - type: Transform + pos: 1.5,40.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10992 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-16.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10993 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10994 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10995 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-18.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10996 + components: + - type: Transform + pos: -12.5,-11.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10998 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10999 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11000 + components: + - type: Transform + pos: -15.5,56.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11001 + components: + - type: Transform + pos: -15.5,57.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11003 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,20.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11005 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11007 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11008 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11013 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11014 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11015 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11016 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11018 + components: + - type: Transform + pos: -32.5,48.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11019 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11021 + components: + - type: Transform + pos: -33.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11022 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11023 + components: + - type: Transform + pos: -33.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11024 + components: + - type: Transform + pos: -33.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11027 + components: + - type: Transform + pos: -34.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11029 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11030 + components: + - type: Transform + pos: -27.5,58.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11031 + components: + - type: Transform + pos: -27.5,57.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11032 + components: + - type: Transform + pos: -35.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11034 + components: + - type: Transform + pos: -35.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11035 + components: + - type: Transform + pos: -35.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11036 + components: + - type: Transform + pos: -35.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11037 + components: + - type: Transform + pos: -35.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11038 + components: + - type: Transform + pos: -21.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11039 + components: + - type: Transform + pos: -21.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11042 + components: + - type: Transform + pos: -16.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11045 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,25.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11046 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11047 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11048 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,26.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11049 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,55.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11050 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,24.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11051 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,-11.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11052 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,60.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11054 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,-15.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11055 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11056 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11057 + components: + - type: Transform + pos: -15.5,26.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11060 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11061 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11062 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,39.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11063 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,38.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11065 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,36.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11066 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,35.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11067 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11068 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,53.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11070 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11071 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11073 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,25.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11074 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,25.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11075 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,25.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11076 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,25.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11077 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,48.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11078 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11079 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11080 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11081 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11082 + components: + - type: Transform + pos: -15.5,59.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11083 + components: + - type: Transform + pos: -15.5,60.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11084 + components: + - type: Transform + pos: -15.5,58.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11085 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11086 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11087 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11088 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11089 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11091 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,24.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11092 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,25.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11093 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,26.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11095 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11096 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11097 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,22.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11098 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,21.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11100 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,19.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11101 + components: + - type: Transform + pos: 1.5,31.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11102 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11103 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11104 + components: + - type: Transform + pos: -5.5,25.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11105 + components: + - type: Transform + pos: -5.5,24.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11106 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11107 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11108 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11111 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11112 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11116 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,41.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11125 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,18.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11126 + components: + - type: Transform + pos: -15.5,52.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11127 + components: + - type: Transform + pos: -15.5,51.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11128 + components: + - type: Transform + pos: -15.5,50.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11129 + components: + - type: Transform + pos: -15.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11130 + components: + - type: Transform + pos: -15.5,48.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11131 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11132 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11134 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11135 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11136 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11137 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11138 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11140 + components: + - type: Transform + pos: -19.5,41.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11141 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11142 + components: + - type: Transform + pos: 13.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11143 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11144 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11145 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11146 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11148 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11149 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11150 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11151 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,41.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11152 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,41.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11153 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11154 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11155 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,48.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11157 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,41.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11159 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,41.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11160 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11161 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11162 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11163 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11165 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,44.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11166 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,44.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11167 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,44.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11169 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,56.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11170 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,57.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11171 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11172 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,18.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11173 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,18.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11174 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11176 + components: + - type: Transform + pos: 14.5,44.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11177 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,55.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11178 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11181 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11182 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11185 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11187 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,41.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11190 + components: + - type: Transform + pos: -14.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11191 + components: + - type: Transform + pos: -14.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11192 + components: + - type: Transform + pos: -14.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11194 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11195 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11196 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11200 + components: + - type: Transform + pos: -30.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11203 + components: + - type: Transform + pos: -2.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11205 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11206 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11207 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,25.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11208 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,44.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11210 + components: + - type: Transform + pos: -34.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11211 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,14.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11212 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11213 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,-14.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11214 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,-13.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11215 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,-12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11216 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,-11.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11217 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,-10.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11218 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11219 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11221 + components: + - type: Transform + pos: -15.5,24.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11222 + components: + - type: Transform + pos: -15.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11223 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,56.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11224 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,56.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11225 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11226 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11227 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11232 + components: + - type: Transform + pos: -15.5,14.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11233 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11234 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11235 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11236 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11237 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11239 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,14.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11240 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11241 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11242 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11243 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11245 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11246 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11247 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11248 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11249 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11251 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11253 + components: + - type: Transform + pos: -25.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11254 + components: + - type: Transform + pos: -25.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11257 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11261 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11262 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11263 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11264 + components: + - type: Transform + pos: -27.5,55.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11265 + components: + - type: Transform + pos: -27.5,54.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11266 + components: + - type: Transform + pos: -27.5,52.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11267 + components: + - type: Transform + pos: -27.5,53.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11268 + components: + - type: Transform + pos: -27.5,51.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11269 + components: + - type: Transform + pos: -27.5,50.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11271 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,27.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11272 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,27.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11273 + components: + - type: Transform + pos: 1.5,50.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11274 + components: + - type: Transform + pos: 1.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11275 + components: + - type: Transform + pos: 1.5,48.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11276 + components: + - type: Transform + pos: 1.5,52.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11280 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,14.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11281 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,19.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11284 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11285 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11286 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11287 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11289 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,20.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11290 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,20.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11291 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,20.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11292 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11293 + components: + - type: Transform + pos: -15.5,21.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11294 + components: + - type: Transform + pos: -15.5,20.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11295 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,14.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11296 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,14.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11297 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11299 + components: + - type: Transform + pos: -16.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11300 + components: + - type: Transform + pos: -16.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11301 + components: + - type: Transform + pos: -16.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11304 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11305 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,40.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11306 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,40.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11307 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,40.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11308 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,40.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11309 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,58.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11310 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,57.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11311 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,56.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11313 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,40.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11314 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11315 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11316 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,45.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11317 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,46.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11318 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,44.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11319 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,43.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11320 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11321 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11322 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11323 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11324 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,58.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11325 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,57.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11326 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,56.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11327 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,55.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11328 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11329 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11330 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11331 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11332 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11333 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,52.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11334 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,51.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11335 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,50.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11336 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11337 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11339 + components: + - type: Transform + pos: 11.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11340 + components: + - type: Transform + pos: 11.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11341 + components: + - type: Transform + pos: 11.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11342 + components: + - type: Transform + pos: 11.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11344 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11345 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11346 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11348 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11349 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11351 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11352 + components: + - type: Transform + pos: -5.5,27.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11353 + components: + - type: Transform + pos: -5.5,26.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11354 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11355 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11357 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11358 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11360 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,22.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11361 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,21.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11363 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,19.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11364 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,18.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11365 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11366 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11367 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11368 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11369 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11371 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11372 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11373 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,19.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11375 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11376 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11378 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11380 + components: + - type: Transform + pos: -25.5,19.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11381 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11383 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,43.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11384 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,43.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11385 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,43.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11386 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,43.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11387 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,43.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11388 + components: + - type: Transform + pos: 2.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11389 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11392 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,48.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11393 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,41.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11394 + components: + - type: Transform + pos: 14.5,46.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11395 + components: + - type: Transform + pos: 14.5,45.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11397 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11398 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,41.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11399 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,41.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11400 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,41.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11401 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,41.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11402 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,41.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11403 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,45.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11405 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11406 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,48.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11407 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11408 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11409 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11411 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11412 + components: + - type: Transform + pos: -23.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11413 + components: + - type: Transform + pos: -24.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11414 + components: + - type: Transform + pos: -24.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11415 + components: + - type: Transform + pos: -24.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11416 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11417 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11418 + components: + - type: Transform + pos: -29.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11419 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,48.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11421 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11422 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11423 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11424 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11425 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11426 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11427 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11428 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11429 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11430 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11431 + components: + - type: Transform + pos: 2.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11433 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11435 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11436 + components: + - type: Transform + pos: -29.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11437 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,19.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11440 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,14.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11441 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11442 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11443 + components: + - type: Transform + pos: 2.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11444 + components: + - type: Transform + pos: 2.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11445 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11446 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11447 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11449 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,43.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11450 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11452 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11454 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,19.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11455 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11456 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11457 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11460 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11461 + components: + - type: Transform + pos: 2.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11462 + components: + - type: Transform + pos: 2.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11464 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11466 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11472 + components: + - type: Transform + pos: -24.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11473 + components: + - type: Transform + pos: -24.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11475 + components: + - type: Transform + pos: -24.5,14.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11477 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,35.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11478 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11480 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11481 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11482 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11483 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,25.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11485 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,24.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11486 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,24.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11487 + components: + - type: Transform + pos: -25.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11488 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11490 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11491 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11492 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11493 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11495 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11496 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11497 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11499 + components: + - type: Transform + pos: -23.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11501 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11502 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11503 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11504 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11505 + components: + - type: Transform + pos: -29.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11508 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11509 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,30.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11510 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,27.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11511 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,27.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11512 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,37.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11514 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,30.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11515 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11517 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11518 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11521 + components: + - type: Transform + pos: -11.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11522 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11523 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11524 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11525 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11531 + components: + - type: Transform + pos: 9.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11532 + components: + - type: Transform + pos: 9.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11533 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11534 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11535 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11536 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11537 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11538 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11539 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,18.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11540 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,19.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11541 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,20.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11542 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,21.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11543 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,22.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11546 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11547 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11548 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11550 + components: + - type: Transform + pos: 7.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11551 + components: + - type: Transform + pos: 7.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11552 + components: + - type: Transform + pos: 7.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11553 + components: + - type: Transform + pos: 7.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11555 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11556 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11557 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,27.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11558 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11559 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11560 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11561 + components: + - type: Transform + pos: 18.5,27.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11562 + components: + - type: Transform + pos: 18.5,26.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11563 + components: + - type: Transform + pos: 18.5,25.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11564 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,24.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11565 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11567 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,48.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11569 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,46.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11570 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,35.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11571 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,37.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11572 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11573 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11576 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11577 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11578 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11579 + components: + - type: Transform + pos: 13.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11580 + components: + - type: Transform + pos: 13.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11583 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11584 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11585 + components: + - type: Transform + pos: 12.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11586 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11587 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11588 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11590 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11592 + components: + - type: Transform + pos: 8.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11593 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11599 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,31.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11600 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,31.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11601 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11602 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11603 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11604 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11605 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11606 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,37.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11607 + components: + - type: Transform + pos: 4.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11608 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,36.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11609 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,35.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11610 + components: + - type: Transform + pos: -25.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11611 + components: + - type: Transform + pos: 17.5,15.5 + parent: 1 + - uid: 11612 + components: + - type: Transform + pos: 17.5,16.5 + parent: 1 + - uid: 11614 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,46.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11615 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,45.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11616 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,46.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11618 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,18.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11621 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11622 + components: + - type: Transform + pos: -25.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11623 + components: + - type: Transform + pos: -25.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11624 + components: + - type: Transform + pos: -10.5,22.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11625 + components: + - type: Transform + pos: -10.5,21.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11626 + components: + - type: Transform + pos: -10.5,20.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11627 + components: + - type: Transform + pos: -10.5,19.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11628 + components: + - type: Transform + pos: -10.5,18.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11630 + components: + - type: Transform + pos: -10.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11631 + components: + - type: Transform + pos: -10.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11632 + components: + - type: Transform + pos: -10.5,14.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11633 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11634 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,14.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11635 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11636 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11637 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11638 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,18.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11639 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,19.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11640 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,20.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11641 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,21.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11642 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,22.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11643 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11644 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,24.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11646 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,18.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11647 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,18.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11648 + components: + - type: Transform + pos: -23.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11650 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11651 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11652 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11653 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11654 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11656 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,37.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11657 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11658 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11659 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,35.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11660 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11664 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11665 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11666 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11667 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11668 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11669 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11670 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11673 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11674 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11675 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11676 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11679 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11680 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11681 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,50.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11683 + components: + - type: Transform + pos: 12.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11685 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,37.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11686 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,37.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11687 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,37.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11688 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,59.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11690 + components: + - type: Transform + pos: 21.5,58.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11691 + components: + - type: Transform + pos: 21.5,56.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11693 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11694 + components: + - type: Transform + pos: 20.5,30.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11695 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11696 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,31.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11697 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,30.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11698 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11699 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11700 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11701 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11702 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11703 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11707 + components: + - type: Transform + pos: -7.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11708 + components: + - type: Transform + pos: -7.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11709 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11710 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11713 + components: + - type: Transform + pos: 14.5,54.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11717 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11719 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11721 + components: + - type: Transform + pos: -7.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11722 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,43.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11723 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,43.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11724 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11725 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,26.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11726 + components: + - type: Transform + pos: -5.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11727 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11729 + components: + - type: Transform + pos: 12.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11730 + components: + - type: Transform + pos: 12.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11731 + components: + - type: Transform + pos: 12.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11732 + components: + - type: Transform + pos: 12.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11733 + components: + - type: Transform + pos: 12.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11734 + components: + - type: Transform + pos: 12.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11735 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11736 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11738 + components: + - type: Transform + pos: 13.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11739 + components: + - type: Transform + pos: 13.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11740 + components: + - type: Transform + pos: 13.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11743 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11744 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11745 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11747 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,14.5 + parent: 1 + - uid: 11748 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,14.5 + parent: 1 + - uid: 11749 + components: + - type: Transform + pos: 18.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11750 + components: + - type: Transform + pos: 18.5,14.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11751 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11752 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11753 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11755 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,60.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11757 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,25.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11759 + components: + - type: Transform + pos: -25.5,26.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11760 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,25.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11761 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11762 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11763 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11764 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11767 + components: + - type: Transform + pos: 18.5,45.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11768 + components: + - type: Transform + pos: 18.5,44.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11769 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,14.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11770 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11772 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11774 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11775 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,35.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11776 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11777 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,14.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11779 + components: + - type: Transform + pos: 20.5,31.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11780 + components: + - type: Transform + pos: 18.5,24.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11781 + components: + - type: Transform + pos: 7.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11782 + components: + - type: Transform + pos: 7.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11783 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11784 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11785 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11786 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11787 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11788 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11789 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11790 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11791 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11792 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11793 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11795 + components: + - type: Transform + pos: 18.5,43.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11796 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11797 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11798 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,46.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11799 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,46.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11802 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11803 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11805 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11806 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11807 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,46.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11808 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,46.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11809 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11810 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11811 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11812 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11813 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11814 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11815 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11816 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11817 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11818 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11819 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11821 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11823 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11824 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11828 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,55.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11829 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11830 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11831 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11832 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11833 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,35.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11834 + components: + - type: Transform + pos: 28.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11836 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11838 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11840 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11841 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,46.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11842 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,46.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11844 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11845 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11846 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11847 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11848 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11849 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11850 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11851 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11852 + components: + - type: Transform + pos: 4.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11853 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11854 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,46.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11855 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,46.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11856 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,46.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11857 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,53.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11862 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11864 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,45.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11865 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,35.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11866 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,37.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11868 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11869 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11870 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11871 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11872 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11874 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,46.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11875 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11879 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,37.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11880 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,37.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11881 + components: + - type: Transform + pos: 20.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11882 + components: + - type: Transform + pos: 20.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11884 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11885 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,43.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11886 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,43.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11887 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11888 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11889 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11890 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11893 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,35.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11894 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,35.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11897 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,63.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11898 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,27.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11905 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,57.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11909 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,46.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11910 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11911 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,27.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11912 + components: + - type: Transform + pos: 4.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11914 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,35.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11916 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,54.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11917 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,53.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11918 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,52.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11919 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,51.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11920 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,50.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11922 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,31.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11925 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,25.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11926 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11927 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,50.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11928 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,50.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11929 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,50.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11930 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,25.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11931 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,58.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11936 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,60.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11938 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,58.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11939 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,61.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11945 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,37.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11946 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11947 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11948 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11949 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11953 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11954 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11955 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11956 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11957 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11958 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11959 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11960 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11961 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11966 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11970 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11971 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11972 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11973 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11974 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,61.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11978 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,27.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11983 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,55.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11984 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11985 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11986 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 37.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11987 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11988 + components: + - type: Transform + pos: 35.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11989 + components: + - type: Transform + pos: 35.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11990 + components: + - type: Transform + pos: 35.5,14.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11991 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11995 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,31.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11996 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,54.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11999 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,50.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12001 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,51.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12003 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,52.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12004 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12005 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12009 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,43.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12010 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,44.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12012 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12013 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12014 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12015 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12016 + components: + - type: Transform + pos: 18.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12017 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,61.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12021 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12023 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12024 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12025 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12026 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12027 + components: + - type: Transform + pos: -18.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12031 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,57.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12033 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,52.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12034 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,52.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12035 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,52.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12036 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,52.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12037 + components: + - type: Transform + pos: 23.5,51.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12038 + components: + - type: Transform + pos: 23.5,50.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12039 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,44.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12041 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,43.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12042 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,43.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12043 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,43.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12049 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,57.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12050 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,57.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12051 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,57.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12052 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,57.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12058 + components: + - type: Transform + pos: 4.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12061 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,27.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12064 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12069 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12070 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12071 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12073 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,57.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12074 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,58.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12076 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,60.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12077 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,61.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12078 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,62.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12079 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,63.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12080 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,64.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12082 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,61.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12083 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,55.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12084 + components: + - type: Transform + pos: 15.5,59.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12086 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,53.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12088 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,55.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12089 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,56.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12090 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,57.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12091 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,58.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12092 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,59.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12093 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,60.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12094 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,61.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12097 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,64.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12099 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,62.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12101 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12103 + components: + - type: Transform + pos: 39.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12104 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12107 + components: + - type: Transform + pos: 40.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12108 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12109 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12110 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12112 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12113 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12114 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,14.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12116 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12117 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12118 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12119 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12137 + components: + - type: Transform + pos: -1.5,60.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12140 + components: + - type: Transform + pos: 15.5,60.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12141 + components: + - type: Transform + pos: 15.5,61.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12142 + components: + - type: Transform + pos: 15.5,62.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12159 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,55.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12166 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,24.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12172 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,55.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12173 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,59.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12174 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,58.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12175 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,54.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12176 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,59.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12192 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,56.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12193 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,61.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12208 + components: + - type: Transform + pos: 21.5,57.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12209 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,57.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12214 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,55.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12215 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,55.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12216 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,55.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12234 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,54.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12236 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,63.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12237 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,62.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12238 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,61.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12239 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,60.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12240 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,59.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12298 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-27.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12336 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,-23.5 + parent: 1 + - uid: 12338 + components: + - type: Transform + pos: -20.5,-39.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12355 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,-38.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12373 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,-22.5 + parent: 1 + - uid: 12374 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-22.5 + parent: 1 + - uid: 12375 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-22.5 + parent: 1 + - uid: 12376 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-22.5 + parent: 1 + - uid: 12389 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-42.5 + parent: 1 + - uid: 12393 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-23.5 + parent: 1 + - uid: 12408 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-21.5 + parent: 1 + - uid: 12409 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-21.5 + parent: 1 + - uid: 12496 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,-38.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12539 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,-21.5 + parent: 1 + - uid: 12579 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-21.5 + parent: 1 + - uid: 12580 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-21.5 + parent: 1 + - uid: 12581 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-21.5 + parent: 1 + - uid: 12582 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-21.5 + parent: 1 + - uid: 12583 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-22.5 + parent: 1 + - uid: 12585 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-23.5 + parent: 1 + - uid: 12586 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-23.5 + parent: 1 + - uid: 12595 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-23.5 + parent: 1 + - uid: 12597 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-23.5 + parent: 1 + - uid: 12811 + components: + - type: Transform + pos: -14.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12888 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-23.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12892 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-23.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12894 + components: + - type: Transform + pos: -16.5,-36.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12897 + components: + - type: Transform + pos: -16.5,-35.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12898 + components: + - type: Transform + pos: -16.5,-34.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12900 + components: + - type: Transform + pos: -16.5,-33.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12933 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-23.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13022 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-31.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13032 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-31.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13033 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-31.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13034 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13036 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13040 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13049 + components: + - type: Transform + pos: -24.5,-34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13058 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-43.5 + parent: 1 + - uid: 13129 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13137 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,-26.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13139 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,-26.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13140 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-28.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13153 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-29.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13160 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-30.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13166 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-31.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13170 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-27.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13212 + components: + - type: Transform + pos: -22.5,-27.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13220 + components: + - type: Transform + pos: -23.5,-27.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13633 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-25.5 + parent: 1 + - uid: 13649 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-25.5 + parent: 1 + - uid: 13650 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-25.5 + parent: 1 + - uid: 13651 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-25.5 + parent: 1 + - uid: 13652 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-25.5 + parent: 1 + - uid: 14235 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-25.5 + parent: 1 + - uid: 15266 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,56.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15267 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,56.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15268 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,56.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15269 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,56.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15270 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,56.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15271 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,56.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15272 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,56.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15273 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,56.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15274 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,56.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15275 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,56.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15276 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,54.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15277 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,54.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15278 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,54.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15279 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,54.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15280 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,54.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15281 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,54.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15282 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,54.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15283 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,54.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15284 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,54.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15285 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,54.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15360 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15361 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15362 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15365 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15366 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15367 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15368 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15369 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15370 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15371 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15372 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15373 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15374 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15375 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -46.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15376 + components: + - type: Transform + pos: -49.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15377 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15378 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15379 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15380 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15381 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15382 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15383 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15384 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15385 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15386 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -46.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15387 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -47.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15388 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -48.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15391 + components: + - type: Transform + pos: -49.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15392 + components: + - type: Transform + pos: -49.5,-10.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15394 + components: + - type: Transform + pos: -47.5,-10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15395 + components: + - type: Transform + pos: -47.5,-11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15396 + components: + - type: Transform + pos: -47.5,-12.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15399 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -48.5,-13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15400 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -49.5,-13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15401 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -50.5,-13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15402 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -51.5,-13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15403 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -52.5,-13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15404 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -53.5,-13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15405 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -50.5,-12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15406 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -51.5,-12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15407 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -52.5,-12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15408 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -53.5,-12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 16553 + components: + - type: Transform + pos: -6.5,24.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 16554 + components: + - type: Transform + pos: -6.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' +- proto: GasPipeTJunction + entities: + - uid: 2278 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-20.5 + parent: 1 + - uid: 2339 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-20.5 + parent: 1 + - uid: 2378 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-20.5 + parent: 1 + - uid: 3684 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,-33.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 3685 + components: + - type: Transform + pos: -18.5,-32.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 4522 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-12.5 + parent: 1 + - uid: 4536 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-12.5 + parent: 1 + - uid: 4886 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-29.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 5272 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,56.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 5273 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,54.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 5274 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-4.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 5275 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 6371 + components: + - type: Transform + pos: -13.5,-22.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 6393 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,-34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 7807 + components: + - type: Transform + pos: -16.5,-27.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 8346 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-28.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10380 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10428 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10429 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10459 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,27.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10480 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10489 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,18.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10502 + components: + - type: Transform + pos: -1.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10506 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,41.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10510 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-15.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10525 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,-0.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10527 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10533 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10542 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10551 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10556 + components: + - type: Transform + pos: 1.5,55.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10573 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,41.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10575 + components: + - type: Transform + pos: -12.5,-10.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10589 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-7.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10595 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10604 + components: + - type: Transform + pos: -8.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10621 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,41.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10633 + components: + - type: Transform + pos: -28.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10643 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10649 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10650 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10681 + components: + - type: Transform + pos: -9.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10684 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10687 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10700 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10701 + components: + - type: Transform + pos: 8.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10702 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,48.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10721 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,-10.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10722 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10737 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10754 + components: + - type: Transform + pos: -17.5,-10.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10759 + components: + - type: Transform + pos: -19.5,-16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10776 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,25.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10782 + components: + - type: Transform + pos: -8.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10788 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10799 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10823 + components: + - type: Transform + pos: -6.5,25.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10824 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10826 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10831 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,43.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10835 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10847 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,54.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10848 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,-10.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10867 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,45.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10897 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,-10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10903 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,19.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10931 + components: + - type: Transform + pos: 4.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10963 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10968 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10969 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10970 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,35.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10975 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10986 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,44.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10991 + components: + - type: Transform + pos: -27.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10997 + components: + - type: Transform + pos: -11.5,-11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11002 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,55.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11004 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11020 + components: + - type: Transform + pos: -33.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11028 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11040 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11044 + components: + - type: Transform + pos: -11.5,25.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11058 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,25.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11064 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,37.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11072 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,25.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11099 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,20.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11113 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11114 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11115 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,40.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11133 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11139 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11147 + components: + - type: Transform + pos: -10.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11156 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11164 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,44.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11175 + components: + - type: Transform + pos: 11.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11186 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,56.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11188 + components: + - type: Transform + pos: -34.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11197 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11228 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11230 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11244 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11252 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,14.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11255 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11258 + components: + - type: Transform + pos: -28.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11259 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11260 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11270 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11283 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11288 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11298 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11302 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11338 + components: + - type: Transform + pos: -4.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11347 + components: + - type: Transform + pos: 7.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11350 + components: + - type: Transform + pos: -5.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11359 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11362 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,20.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11370 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11377 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11379 + components: + - type: Transform + pos: -25.5,20.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11390 + components: + - type: Transform + pos: 14.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11396 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11404 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,46.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11410 + components: + - type: Transform + pos: -29.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11434 + components: + - type: Transform + pos: 21.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11453 + components: + - type: Transform + pos: 9.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11467 + components: + - type: Transform + pos: -3.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11468 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11470 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11471 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11474 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11498 + components: + - type: Transform + pos: -23.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11500 + components: + - type: Transform + pos: -17.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11516 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11528 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11530 + components: + - type: Transform + pos: 12.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11554 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11568 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,46.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11575 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11589 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11594 + components: + - type: Transform + pos: 12.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11596 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11619 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11620 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11629 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11649 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,18.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11663 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11671 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11672 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11677 + components: + - type: Transform + pos: -2.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11678 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11706 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11714 + components: + - type: Transform + pos: 14.5,55.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11718 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11720 + components: + - type: Transform + pos: -24.5,35.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11728 + components: + - type: Transform + pos: -6.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11741 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11742 + components: + - type: Transform + pos: 23.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11746 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,14.5 + parent: 1 + - uid: 11765 + components: + - type: Transform + pos: 32.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11766 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,27.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11771 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11773 + components: + - type: Transform + pos: 22.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11820 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11826 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,46.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11843 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,-32.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11906 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11915 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,55.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11951 + components: + - type: Transform + pos: 34.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11969 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12000 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,50.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12008 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12040 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12068 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 41.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12075 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,59.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12087 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,54.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12095 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,64.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12098 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,63.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12102 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12105 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12106 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 40.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12347 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-20.5 + parent: 1 + - uid: 12385 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-20.5 + parent: 1 + - uid: 12479 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-20.5 + parent: 1 + - uid: 12598 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-20.5 + parent: 1 + - uid: 12639 + components: + - type: Transform + pos: -26.5,-35.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12932 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,-31.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12935 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,-33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12961 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-31.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12965 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-31.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12966 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,-31.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12972 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,-33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12973 + components: + - type: Transform + pos: -33.5,-33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12985 + components: + - type: Transform + pos: -32.5,-33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12986 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,-32.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12996 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,-30.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13124 + components: + - type: Transform + pos: -20.5,-26.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13207 + components: + - type: Transform + pos: -22.5,-26.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13211 + components: + - type: Transform + pos: -23.5,-26.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13234 + components: + - type: Transform + pos: -21.5,-26.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13240 + components: + - type: Transform + pos: -25.5,-35.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15363 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15364 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15390 + components: + - type: Transform + pos: -47.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15393 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -49.5,-11.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15500 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,11.5 + parent: 1 + - uid: 15504 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,13.5 + parent: 1 + - uid: 15505 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,12.5 + parent: 1 +- proto: GasPort + entities: + - uid: 148 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,11.5 + parent: 1 + - uid: 658 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,13.5 + parent: 1 + - uid: 1046 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,-41.5 + parent: 1 + - uid: 1257 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,13.5 + parent: 1 + - uid: 5215 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-13.5 + parent: 1 + - uid: 5533 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-13.5 + parent: 1 + - uid: 6392 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,-31.5 + parent: 1 + - uid: 6461 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-34.5 + parent: 1 + - uid: 12295 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,45.5 + parent: 1 + - uid: 12759 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,-37.5 + parent: 1 + - uid: 13003 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,-32.5 + parent: 1 + - uid: 13005 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-30.5 + parent: 1 + - uid: 13233 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-26.5 + parent: 1 + - uid: 13239 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,-28.5 + parent: 1 + - uid: 13265 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,-37.5 + parent: 1 + - uid: 13274 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,-29.5 + parent: 1 + - uid: 13275 + components: + - type: Transform + pos: -25.5,-28.5 + parent: 1 + - uid: 13276 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,-30.5 + parent: 1 + - uid: 13283 + components: + - type: Transform + pos: -25.5,-31.5 + parent: 1 + - uid: 13297 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-32.5 + parent: 1 + - uid: 13301 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,-33.5 + parent: 1 + - uid: 15506 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,12.5 + parent: 1 + - uid: 16591 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-20.5 + parent: 1 + - uid: 16592 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-20.5 + parent: 1 + - uid: 16593 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-20.5 + parent: 1 + - uid: 16594 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-20.5 + parent: 1 + - uid: 16595 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-20.5 + parent: 1 + - uid: 16596 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-20.5 + parent: 1 + - uid: 16597 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-20.5 + parent: 1 +- proto: GasPressurePump + entities: + - uid: 1877 + components: + - type: Transform + pos: 15.5,14.5 + parent: 1 + - uid: 1878 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,14.5 + parent: 1 + - uid: 4422 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-13.5 + parent: 1 + - uid: 5467 + components: + - type: Transform + pos: -8.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 5481 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 5482 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-13.5 + parent: 1 + - uid: 5650 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,-13.5 + parent: 1 + - uid: 5651 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-13.5 + parent: 1 + - uid: 5652 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-13.5 + parent: 1 + - uid: 5653 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-13.5 + parent: 1 + - uid: 6462 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10822 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-26.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12291 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,-30.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12346 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,-41.5 + parent: 1 + - uid: 12366 + components: + - type: Transform + pos: -7.5,-24.5 + parent: 1 + - uid: 12370 + components: + - type: Transform + pos: 3.5,-24.5 + parent: 1 + - uid: 12377 + components: + - type: Transform + pos: -5.5,-24.5 + parent: 1 + - uid: 12446 + components: + - type: Transform + pos: 2.5,-24.5 + parent: 1 + - uid: 12447 + components: + - type: Transform + pos: 0.5,-24.5 + parent: 1 + - uid: 12448 + components: + - type: Transform + pos: -1.5,-24.5 + parent: 1 + - uid: 12589 + components: + - type: Transform + pos: -3.5,-24.5 + parent: 1 + - uid: 12936 + components: + - type: Transform + pos: -27.5,-32.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12943 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,-31.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12944 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12989 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,-32.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13041 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,-36.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13047 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,-36.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13231 + components: + - type: Transform + pos: -21.5,-27.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13232 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,-26.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' +- proto: GasThermoMachineFreezer + entities: + - uid: 3631 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-14.5 + parent: 1 + - uid: 12950 + components: + - type: Transform + pos: -34.5,-30.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12951 + components: + - type: Transform + pos: -32.5,-30.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12954 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12958 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12963 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12964 + components: + - type: Transform + pos: -33.5,-30.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13205 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,-28.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 13206 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,-28.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15593 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-33.5 + parent: 1 + - uid: 15594 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-32.5 + parent: 1 +- proto: GasThermoMachineFreezerEnabled + entities: + - uid: 520 + components: + - type: Transform + pos: 13.5,33.5 + parent: 1 + - uid: 15503 + components: + - type: Transform + pos: 46.5,14.5 + parent: 1 +- proto: GasThermoMachineHeater + entities: + - uid: 2956 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-12.5 + parent: 1 + - uid: 3629 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-13.5 + parent: 1 +- proto: GasValve + entities: + - uid: 6463 + components: + - type: Transform + pos: -20.5,-40.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' +- proto: GasVentPump + entities: + - uid: 734 + components: + - type: Transform + pos: 15.5,18.5 + parent: 1 + - uid: 994 + components: + - type: Transform + pos: 14.5,18.5 + parent: 1 + - uid: 4228 + components: + - type: Transform + pos: 1.5,-10.5 + parent: 1 + - uid: 10382 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10385 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,-16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10390 + components: + - type: Transform + pos: -18.5,19.5 + parent: 1 + - uid: 10407 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10408 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10431 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10440 + components: + - type: Transform + pos: -16.5,-22.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10441 + components: + - type: Transform + pos: 5.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10443 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10444 + components: + - type: Transform + pos: -20.5,-10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10448 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10483 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,59.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10484 + components: + - type: Transform + pos: 12.5,65.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10487 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10516 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10524 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10535 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,59.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10536 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,62.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10539 + components: + - type: Transform + pos: 28.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10548 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,53.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10552 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10563 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10567 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10580 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10581 + components: + - type: Transform + pos: -17.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10605 + components: + - type: Transform + pos: -21.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10617 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10618 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10620 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10626 + components: + - type: Transform + pos: -28.5,14.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10627 + components: + - type: Transform + pos: -28.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10631 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10640 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,61.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10641 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,61.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10657 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10663 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10664 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10665 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10667 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,14.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10669 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10671 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,14.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10673 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10675 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10678 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10694 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10704 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10723 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10729 + components: + - type: Transform + pos: -1.5,56.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10733 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,41.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10735 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10738 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10740 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10743 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10746 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10748 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10790 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,31.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10791 + components: + - type: Transform + pos: -25.5,48.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10792 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10796 + components: + - type: Transform + pos: 18.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10801 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10807 + components: + - type: Transform + pos: -41.5,-5.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 12198 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10808 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,-4.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 12198 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10811 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,3.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10816 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10817 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10820 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10845 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,-20.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10856 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,51.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10858 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,0.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10860 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,22.5 + parent: 1 + - uid: 10862 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,24.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10865 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10870 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10873 + components: + - type: Transform + pos: -10.5,58.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10874 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10875 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10877 + components: + - type: Transform + pos: 5.5,20.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10881 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,8.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10886 + components: + - type: Transform + pos: 5.5,45.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10889 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10915 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 10944 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11117 + components: + - type: Transform + pos: 39.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11121 + components: + - type: Transform + pos: 40.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11122 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11123 + components: + - type: Transform + pos: 44.5,14.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11198 + components: + - type: Transform + pos: -28.5,20.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11479 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11544 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11595 + components: + - type: Transform + pos: 11.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11661 + components: + - type: Transform + pos: -16.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11705 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11758 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 11839 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,43.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12018 + components: + - type: Transform + pos: 18.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12345 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,22.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15260 + components: + - type: Transform + pos: -40.5,55.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 15242 + - 15243 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15409 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -48.5,-9.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 12198 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 15410 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -54.5,-13.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 12198 + - type: AtmosPipeColor + color: '#0000FFFF' +- proto: GasVentScrubber + entities: + - uid: 10386 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,-15.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10387 + components: + - type: Transform + pos: 11.5,65.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10391 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,19.5 + parent: 1 + - uid: 10406 + components: + - type: Transform + pos: 24.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10409 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,-10.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10410 + components: + - type: Transform + pos: 13.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10442 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-3.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10445 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-10.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10449 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10453 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,20.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10457 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-10.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10464 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-22.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10471 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,2.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10482 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,58.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10485 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10486 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10511 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10518 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10537 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,61.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10540 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10549 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,53.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10566 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,-10.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10576 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,60.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10579 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10582 + components: + - type: Transform + pos: -18.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10611 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-8.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10612 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10616 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,7.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10619 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,5.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10622 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10623 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,14.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10628 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,50.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10629 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10630 + components: + - type: Transform + pos: 6.5,29.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10632 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10642 + components: + - type: Transform + pos: -11.5,58.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10656 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,51.5 + parent: 1 + - uid: 10666 + components: + - type: Transform + pos: -17.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10668 + components: + - type: Transform + pos: -20.5,-5.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10670 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10672 + components: + - type: Transform + pos: 25.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10676 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-16.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10677 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10693 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,43.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10713 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,49.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10724 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,-1.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10730 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,56.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10731 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,48.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10732 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10734 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10739 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10741 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,25.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10744 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10745 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,4.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10747 + components: + - type: Transform + pos: -7.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10751 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,59.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10793 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,16.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10797 + components: + - type: Transform + pos: 17.5,17.5 + parent: 1 + - uid: 10802 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,13.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10806 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,-5.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 12198 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10809 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10812 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10813 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10815 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,20.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10818 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10846 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,-20.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10861 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,22.5 + parent: 1 + - uid: 10863 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,23.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10864 + components: + - type: Transform + pos: 18.5,28.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10869 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10876 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,32.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10878 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,27.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10879 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,27.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10882 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10885 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,45.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10888 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,47.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10901 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,14.5 + parent: 1 + - uid: 10914 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10916 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,12.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 10943 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,11.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11118 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,10.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11119 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,6.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11120 + components: + - type: Transform + pos: 39.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11124 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,9.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11158 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,59.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11279 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-3.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 12198 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11303 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,15.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11545 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,17.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11617 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,1.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11692 + components: + - type: Transform + pos: -17.5,34.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 11800 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,42.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12030 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-2.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 12060 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,33.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 12339 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,22.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15288 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,55.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 15242 + - 15243 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15411 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -48.5,-11.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 12198 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 15412 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -54.5,-12.5 + parent: 1 + - type: DeviceNetwork + deviceLists: + - 12198 + - type: AtmosPipeColor + color: '#FF0000FF' +- proto: GasVolumePump + entities: + - uid: 763 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,-36.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 2804 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,-31.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' +- proto: Gauze + entities: + - uid: 3048 + components: + - type: Transform + pos: 8.436734,57.59372 + parent: 1 +- proto: GeigerCounter + entities: + - uid: 15625 + components: + - type: Transform + pos: -30.714989,-40.48569 + parent: 1 + - uid: 15626 + components: + - type: Transform + pos: -30.59533,-40.560364 + parent: 1 + - uid: 15627 + components: + - type: Transform + pos: -30.475672,-40.6649 + parent: 1 + - uid: 15685 + components: + - type: Transform + pos: -27.797434,-25.414328 + parent: 1 + - uid: 15686 + components: + - type: Transform + pos: -27.647861,-25.51389 + parent: 1 +- proto: GeigerCounterWallMount + entities: + - uid: 15718 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,-31.5 + parent: 1 + - uid: 15719 + components: + - type: Transform + pos: -19.5,-35.5 + parent: 1 + - uid: 15720 + components: + - type: Transform + pos: -18.5,-21.5 + parent: 1 +- proto: GeneratorBasic + entities: + - uid: 6005 + components: + - type: Transform + pos: 17.5,60.5 + parent: 1 + - uid: 13292 + components: + - type: Transform + pos: 42.5,8.5 + parent: 1 + - uid: 13294 + components: + - type: Transform + pos: 41.5,8.5 + parent: 1 +- proto: Girder + entities: + - uid: 3384 + components: + - type: Transform + pos: 14.5,64.5 + parent: 1 + - uid: 5324 + components: + - type: Transform + pos: -20.5,30.5 + parent: 1 + - uid: 5352 + components: + - type: Transform + pos: -35.5,13.5 + parent: 1 + - uid: 5510 + components: + - type: Transform + pos: -11.5,31.5 + parent: 1 + - uid: 5576 + components: + - type: Transform + pos: -4.5,32.5 + parent: 1 + - uid: 5869 + components: + - type: Transform + pos: -27.5,36.5 + parent: 1 + - uid: 6106 + components: + - type: Transform + pos: 11.5,30.5 + parent: 1 + - uid: 6213 + components: + - type: Transform + pos: 5.5,14.5 + parent: 1 + - uid: 6424 + components: + - type: Transform + pos: -26.5,38.5 + parent: 1 + - uid: 7117 + components: + - type: Transform + pos: 15.5,38.5 + parent: 1 + - uid: 7164 + components: + - type: Transform + pos: 4.5,54.5 + parent: 1 + - uid: 7245 + components: + - type: Transform + pos: -23.5,46.5 + parent: 1 + - uid: 7258 + components: + - type: Transform + pos: 21.5,-3.5 + parent: 1 + - uid: 7259 + components: + - type: Transform + pos: 22.5,33.5 + parent: 1 + - uid: 7336 + components: + - type: Transform + pos: 26.5,60.5 + parent: 1 + - uid: 15193 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -49.5,54.5 + parent: 1 +- proto: GlimmerProber + entities: + - uid: 1466 + components: + - type: Transform + pos: 25.5,17.5 + parent: 1 +- proto: Grille + entities: + - uid: 30 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,41.5 + parent: 1 + - uid: 40 + components: + - type: Transform + pos: -0.5,3.5 + parent: 1 + - uid: 44 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,34.5 + parent: 1 + - uid: 67 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,28.5 + parent: 1 + - uid: 83 + components: + - type: Transform + pos: -16.5,42.5 + parent: 1 + - uid: 102 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,18.5 + parent: 1 + - uid: 130 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-24.5 + parent: 1 + - uid: 139 + components: + - type: Transform + pos: 12.5,16.5 + parent: 1 + - uid: 166 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,11.5 + parent: 1 + - uid: 180 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,21.5 + parent: 1 + - uid: 195 + components: + - type: Transform + pos: -12.5,39.5 + parent: 1 + - uid: 207 + components: + - type: Transform + pos: -3.5,3.5 + parent: 1 + - uid: 212 + components: + - type: Transform + pos: -8.5,3.5 + parent: 1 + - uid: 242 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,32.5 + parent: 1 + - uid: 244 + components: + - type: Transform + pos: -1.5,-7.5 + parent: 1 + - uid: 311 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,27.5 + parent: 1 + - uid: 334 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,14.5 + parent: 1 + - uid: 401 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,18.5 + parent: 1 + - uid: 408 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,27.5 + parent: 1 + - uid: 437 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,34.5 + parent: 1 + - uid: 444 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,18.5 + parent: 1 + - uid: 446 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,33.5 + parent: 1 + - uid: 456 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,13.5 + parent: 1 + - uid: 464 + components: + - type: Transform + pos: -1.5,3.5 + parent: 1 + - uid: 475 + components: + - type: Transform + pos: -8.5,-5.5 + parent: 1 + - uid: 494 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,33.5 + parent: 1 + - uid: 513 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-0.5 + parent: 1 + - uid: 523 + components: + - type: Transform + pos: -5.5,3.5 + parent: 1 + - uid: 538 + components: + - type: Transform + pos: -6.5,3.5 + parent: 1 + - uid: 539 + components: + - type: Transform + pos: -7.5,3.5 + parent: 1 + - uid: 542 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,20.5 + parent: 1 + - uid: 544 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,21.5 + parent: 1 + - uid: 551 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,16.5 + parent: 1 + - uid: 570 + components: + - type: Transform + pos: -12.5,40.5 + parent: 1 + - uid: 591 + components: + - type: Transform + pos: -21.5,14.5 + parent: 1 + - uid: 592 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,19.5 + parent: 1 + - uid: 622 + components: + - type: Transform + pos: 4.5,32.5 + parent: 1 + - uid: 652 + components: + - type: Transform + pos: 15.5,16.5 + parent: 1 + - uid: 691 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,19.5 + parent: 1 + - uid: 692 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,20.5 + parent: 1 + - uid: 704 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-2.5 + parent: 1 + - uid: 705 + components: + - type: Transform + pos: 4.5,26.5 + parent: 1 + - uid: 724 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,21.5 + parent: 1 + - uid: 735 + components: + - type: Transform + pos: -2.5,3.5 + parent: 1 + - uid: 744 + components: + - type: Transform + pos: 5.5,-5.5 + parent: 1 + - uid: 754 + components: + - type: Transform + pos: 14.5,16.5 + parent: 1 + - uid: 800 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,32.5 + parent: 1 + - uid: 802 + components: + - type: Transform + pos: -4.5,-5.5 + parent: 1 + - uid: 807 + components: + - type: Transform + pos: -2.5,-3.5 + parent: 1 + - uid: 812 + components: + - type: Transform + pos: -3.5,-23.5 + parent: 1 + - uid: 824 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,27.5 + parent: 1 + - uid: 855 + components: + - type: Transform + pos: -21.5,34.5 + parent: 1 + - uid: 858 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,20.5 + parent: 1 + - uid: 903 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,19.5 + parent: 1 + - uid: 904 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,18.5 + parent: 1 + - uid: 961 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,27.5 + parent: 1 + - uid: 976 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,20.5 + parent: 1 + - uid: 1015 + components: + - type: Transform + pos: -16.5,13.5 + parent: 1 + - uid: 1023 + components: + - type: Transform + pos: -21.5,12.5 + parent: 1 + - uid: 1025 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,14.5 + parent: 1 + - uid: 1040 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,21.5 + parent: 1 + - uid: 1045 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,19.5 + parent: 1 + - uid: 1086 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,34.5 + parent: 1 + - uid: 1101 + components: + - type: Transform + pos: 0.5,41.5 + parent: 1 + - uid: 1102 + components: + - type: Transform + pos: 13.5,16.5 + parent: 1 + - uid: 1147 + components: + - type: Transform + pos: -23.5,-22.5 + parent: 1 + - uid: 1192 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,26.5 + parent: 1 + - uid: 1207 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,14.5 + parent: 1 + - uid: 1210 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,16.5 + parent: 1 + - uid: 1215 + components: + - type: Transform + pos: -2.5,-5.5 + parent: 1 + - uid: 1243 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,27.5 + parent: 1 + - uid: 1260 + components: + - type: Transform + pos: -26.5,30.5 + parent: 1 + - uid: 1270 + components: + - type: Transform + pos: -10.5,3.5 + parent: 1 + - uid: 1287 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,12.5 + parent: 1 + - uid: 1292 + components: + - type: Transform + pos: -12.5,42.5 + parent: 1 + - uid: 1296 + components: + - type: Transform + pos: 5.5,-6.5 + parent: 1 + - uid: 1305 + components: + - type: Transform + pos: -23.5,30.5 + parent: 1 + - uid: 1310 + components: + - type: Transform + pos: -2.5,-1.5 + parent: 1 + - uid: 1319 + components: + - type: Transform + pos: 0.5,40.5 + parent: 1 + - uid: 1332 + components: + - type: Transform + pos: -16.5,12.5 + parent: 1 + - uid: 1335 + components: + - type: Transform + pos: -9.5,3.5 + parent: 1 + - uid: 1360 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,10.5 + parent: 1 + - uid: 1368 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,60.5 + parent: 1 + - uid: 1373 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-1.5 + parent: 1 + - uid: 1374 + components: + - type: Transform + pos: 0.5,39.5 + parent: 1 + - uid: 1378 + components: + - type: Transform + pos: 0.5,42.5 + parent: 1 + - uid: 1388 + components: + - type: Transform + pos: -12.5,41.5 + parent: 1 + - uid: 1393 + components: + - type: Transform + pos: 19.5,15.5 + parent: 1 + - uid: 1415 + components: + - type: Transform + pos: 5.5,-3.5 + parent: 1 + - uid: 1416 + components: + - type: Transform + pos: 5.5,-2.5 + parent: 1 + - uid: 1426 + components: + - type: Transform + pos: -10.5,68.5 + parent: 1 + - uid: 1443 + components: + - type: Transform + pos: 5.5,-4.5 + parent: 1 + - uid: 1456 + components: + - type: Transform + pos: 4.5,-7.5 + parent: 1 + - uid: 1458 + components: + - type: Transform + pos: 5.5,-7.5 + parent: 1 + - uid: 1478 + components: + - type: Transform + pos: 3.5,-7.5 + parent: 1 + - uid: 1496 + components: + - type: Transform + pos: -2.5,-2.5 + parent: 1 + - uid: 1545 + components: + - type: Transform + pos: -21.5,13.5 + parent: 1 + - uid: 1572 + components: + - type: Transform + pos: 11.5,10.5 + parent: 1 + - uid: 1574 + components: + - type: Transform + pos: 14.5,10.5 + parent: 1 + - uid: 1594 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,9.5 + parent: 1 + - uid: 1625 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,10.5 + parent: 1 + - uid: 1629 + components: + - type: Transform + pos: 5.5,-1.5 + parent: 1 + - uid: 1632 + components: + - type: Transform + pos: -2.5,-6.5 + parent: 1 + - uid: 1661 + components: + - type: Transform + pos: -25.5,-7.5 + parent: 1 + - uid: 1667 + components: + - type: Transform + pos: -2.5,-4.5 + parent: 1 + - uid: 1670 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,17.5 + parent: 1 + - uid: 1707 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-3.5 + parent: 1 + - uid: 1720 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-4.5 + parent: 1 + - uid: 1842 + components: + - type: Transform + pos: 1.5,-7.5 + parent: 1 + - uid: 1844 + components: + - type: Transform + pos: 0.5,-7.5 + parent: 1 + - uid: 1845 + components: + - type: Transform + pos: -0.5,-7.5 + parent: 1 + - uid: 1851 + components: + - type: Transform + pos: -2.5,-7.5 + parent: 1 + - uid: 1853 + components: + - type: Transform + pos: 2.5,-7.5 + parent: 1 + - uid: 1868 + components: + - type: Transform + pos: -26.5,13.5 + parent: 1 + - uid: 1891 + components: + - type: Transform + pos: -16.5,7.5 + parent: 1 + - uid: 1956 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-0.5 + parent: 1 + - uid: 1961 + components: + - type: Transform + pos: -16.5,19.5 + parent: 1 + - uid: 1975 + components: + - type: Transform + pos: -16.5,10.5 + parent: 1 + - uid: 1991 + components: + - type: Transform + pos: -19.5,19.5 + parent: 1 + - uid: 1994 + components: + - type: Transform + pos: -26.5,16.5 + parent: 1 + - uid: 1995 + components: + - type: Transform + pos: -26.5,19.5 + parent: 1 + - uid: 1999 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-3.5 + parent: 1 + - uid: 2000 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-4.5 + parent: 1 + - uid: 2001 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-3.5 + parent: 1 + - uid: 2002 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-4.5 + parent: 1 + - uid: 2003 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-3.5 + parent: 1 + - uid: 2004 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-4.5 + parent: 1 + - uid: 2007 + components: + - type: Transform + pos: -16.5,9.5 + parent: 1 + - uid: 2008 + components: + - type: Transform + pos: -16.5,8.5 + parent: 1 + - uid: 2030 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,16.5 + parent: 1 + - uid: 2041 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,6.5 + parent: 1 + - uid: 2141 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,9.5 + parent: 1 + - uid: 2152 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,7.5 + parent: 1 + - uid: 2195 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,6.5 + parent: 1 + - uid: 2196 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,7.5 + parent: 1 + - uid: 2197 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,8.5 + parent: 1 + - uid: 2200 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,11.5 + parent: 1 + - uid: 2241 + components: + - type: Transform + pos: -18.5,-13.5 + parent: 1 + - uid: 2309 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,16.5 + parent: 1 + - uid: 2334 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,53.5 + parent: 1 + - uid: 2342 + components: + - type: Transform + pos: 8.5,63.5 + parent: 1 + - uid: 2353 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,17.5 + parent: 1 + - uid: 2376 + components: + - type: Transform + pos: -40.5,2.5 + parent: 1 + - uid: 2383 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,43.5 + parent: 1 + - uid: 2400 + components: + - type: Transform + pos: 14.5,-11.5 + parent: 1 + - uid: 2476 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-15.5 + parent: 1 + - uid: 2487 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,38.5 + parent: 1 + - uid: 2502 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-15.5 + parent: 1 + - uid: 2510 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-15.5 + parent: 1 + - uid: 2517 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-15.5 + parent: 1 + - uid: 2519 + components: + - type: Transform + pos: -40.5,8.5 + parent: 1 + - uid: 2528 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-15.5 + parent: 1 + - uid: 2566 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,55.5 + parent: 1 + - uid: 2575 + components: + - type: Transform + pos: 13.5,57.5 + parent: 1 + - uid: 2576 + components: + - type: Transform + pos: -24.5,-7.5 + parent: 1 + - uid: 2582 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-9.5 + parent: 1 + - uid: 2646 + components: + - type: Transform + pos: -40.5,12.5 + parent: 1 + - uid: 2694 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,-18.5 + parent: 1 + - uid: 2712 + components: + - type: Transform + pos: -26.5,-7.5 + parent: 1 + - uid: 2756 + components: + - type: Transform + pos: 3.5,-11.5 + parent: 1 + - uid: 2760 + components: + - type: Transform + pos: -40.5,13.5 + parent: 1 + - uid: 2836 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,63.5 + parent: 1 + - uid: 2849 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-15.5 + parent: 1 + - uid: 2869 + components: + - type: Transform + pos: -40.5,7.5 + parent: 1 + - uid: 2870 + components: + - type: Transform + pos: -40.5,3.5 + parent: 1 + - uid: 2878 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-15.5 + parent: 1 + - uid: 2890 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,64.5 + parent: 1 + - uid: 2892 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-22.5 + parent: 1 + - uid: 2895 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,-20.5 + parent: 1 + - uid: 2923 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,1.5 + parent: 1 + - uid: 2924 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,0.5 + parent: 1 + - uid: 2941 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-15.5 + parent: 1 + - uid: 2995 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-15.5 + parent: 1 + - uid: 3003 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,1.5 + parent: 1 + - uid: 3004 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,0.5 + parent: 1 + - uid: 3013 + components: + - type: Transform + pos: 2.5,-11.5 + parent: 1 + - uid: 3017 + components: + - type: Transform + pos: 4.5,-11.5 + parent: 1 + - uid: 3023 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,-0.5 + parent: 1 + - uid: 3043 + components: + - type: Transform + pos: -16.5,-13.5 + parent: 1 + - uid: 3044 + components: + - type: Transform + pos: -17.5,-13.5 + parent: 1 + - uid: 3052 + components: + - type: Transform + pos: -19.5,-13.5 + parent: 1 + - uid: 3067 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-15.5 + parent: 1 + - uid: 3107 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-15.5 + parent: 1 + - uid: 3110 + components: + - type: Transform + pos: 0.5,-11.5 + parent: 1 + - uid: 3116 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,51.5 + parent: 1 + - uid: 3166 + components: + - type: Transform + pos: 13.5,-11.5 + parent: 1 + - uid: 3208 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,41.5 + parent: 1 + - uid: 3212 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,-19.5 + parent: 1 + - uid: 3221 + components: + - type: Transform + pos: 7.5,63.5 + parent: 1 + - uid: 3335 + components: + - type: Transform + pos: 12.5,45.5 + parent: 1 + - uid: 3352 + components: + - type: Transform + pos: 24.5,48.5 + parent: 1 + - uid: 3378 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,28.5 + parent: 1 + - uid: 3391 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-9.5 + parent: 1 + - uid: 3392 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-9.5 + parent: 1 + - uid: 3393 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-9.5 + parent: 1 + - uid: 3398 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-15.5 + parent: 1 + - uid: 3433 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,48.5 + parent: 1 + - uid: 3450 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-15.5 + parent: 1 + - uid: 3458 + components: + - type: Transform + pos: 9.5,63.5 + parent: 1 + - uid: 3503 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-17.5 + parent: 1 + - uid: 3504 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-17.5 + parent: 1 + - uid: 3505 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-17.5 + parent: 1 + - uid: 3506 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-17.5 + parent: 1 + - uid: 3518 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,54.5 + parent: 1 + - uid: 3519 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,51.5 + parent: 1 + - uid: 3526 + components: + - type: Transform + pos: 22.5,48.5 + parent: 1 + - uid: 3533 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-17.5 + parent: 1 + - uid: 3534 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-17.5 + parent: 1 + - uid: 3535 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-17.5 + parent: 1 + - uid: 3552 + components: + - type: Transform + pos: 19.5,48.5 + parent: 1 + - uid: 3553 + components: + - type: Transform + pos: 18.5,48.5 + parent: 1 + - uid: 3554 + components: + - type: Transform + pos: 17.5,48.5 + parent: 1 + - uid: 3563 + components: + - type: Transform + pos: 16.5,48.5 + parent: 1 + - uid: 3566 + components: + - type: Transform + pos: 20.5,48.5 + parent: 1 + - uid: 3574 + components: + - type: Transform + pos: 11.5,57.5 + parent: 1 + - uid: 3581 + components: + - type: Transform + pos: 6.5,44.5 + parent: 1 + - uid: 3583 + components: + - type: Transform + pos: 13.5,45.5 + parent: 1 + - uid: 3596 + components: + - type: Transform + pos: 1.5,-11.5 + parent: 1 + - uid: 3647 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,54.5 + parent: 1 + - uid: 3702 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,38.5 + parent: 1 + - uid: 3708 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,49.5 + parent: 1 + - uid: 3709 + components: + - type: Transform + pos: 13.5,66.5 + parent: 1 + - uid: 3710 + components: + - type: Transform + pos: 12.5,66.5 + parent: 1 + - uid: 3711 + components: + - type: Transform + pos: 11.5,66.5 + parent: 1 + - uid: 3712 + components: + - type: Transform + pos: 10.5,66.5 + parent: 1 + - uid: 3718 + components: + - type: Transform + pos: 10.5,68.5 + parent: 1 + - uid: 3719 + components: + - type: Transform + pos: 11.5,68.5 + parent: 1 + - uid: 3720 + components: + - type: Transform + pos: 12.5,68.5 + parent: 1 + - uid: 3721 + components: + - type: Transform + pos: 13.5,68.5 + parent: 1 + - uid: 3780 + components: + - type: Transform + pos: -1.5,50.5 + parent: 1 + - uid: 3781 + components: + - type: Transform + pos: -0.5,50.5 + parent: 1 + - uid: 3791 + components: + - type: Transform + pos: -2.5,54.5 + parent: 1 + - uid: 3792 + components: + - type: Transform + pos: -1.5,54.5 + parent: 1 + - uid: 3816 + components: + - type: Transform + pos: -2.5,50.5 + parent: 1 + - uid: 3825 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,65.5 + parent: 1 + - uid: 3830 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,64.5 + parent: 1 + - uid: 3831 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,64.5 + parent: 1 + - uid: 3832 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,64.5 + parent: 1 + - uid: 3833 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,64.5 + parent: 1 + - uid: 3842 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,56.5 + parent: 1 + - uid: 3926 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,61.5 + parent: 1 + - uid: 3981 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,60.5 + parent: 1 + - uid: 3990 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,57.5 + parent: 1 + - uid: 3991 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,56.5 + parent: 1 + - uid: 4004 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,64.5 + parent: 1 + - uid: 4005 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,63.5 + parent: 1 + - uid: 4007 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,58.5 + parent: 1 + - uid: 4008 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,57.5 + parent: 1 + - uid: 4031 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,64.5 + parent: 1 + - uid: 4039 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,65.5 + parent: 1 + - uid: 4048 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,63.5 + parent: 1 + - uid: 4058 + components: + - type: Transform + pos: -0.5,54.5 + parent: 1 + - uid: 4095 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,58.5 + parent: 1 + - uid: 4118 + components: + - type: Transform + pos: 45.5,6.5 + parent: 1 + - uid: 4127 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-4.5 + parent: 1 + - uid: 4145 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,-12.5 + parent: 1 + - uid: 4146 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-12.5 + parent: 1 + - uid: 4147 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,-12.5 + parent: 1 + - uid: 4173 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,54.5 + parent: 1 + - uid: 4174 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,56.5 + parent: 1 + - uid: 4178 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,-10.5 + parent: 1 + - uid: 4179 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-10.5 + parent: 1 + - uid: 4196 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,-10.5 + parent: 1 + - uid: 4211 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,-10.5 + parent: 1 + - uid: 4250 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,-12.5 + parent: 1 + - uid: 4251 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,-12.5 + parent: 1 + - uid: 4254 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,41.5 + parent: 1 + - uid: 4255 + components: + - type: Transform + pos: 29.5,57.5 + parent: 1 + - uid: 4274 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,-10.5 + parent: 1 + - uid: 4308 + components: + - type: Transform + pos: 44.5,6.5 + parent: 1 + - uid: 4350 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,-4.5 + parent: 1 + - uid: 4359 + components: + - type: Transform + pos: 50.5,14.5 + parent: 1 + - uid: 4365 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-10.5 + parent: 1 + - uid: 4366 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-12.5 + parent: 1 + - uid: 4402 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,-10.5 + parent: 1 + - uid: 4409 + components: + - type: Transform + pos: 9.5,44.5 + parent: 1 + - uid: 4445 + components: + - type: Transform + pos: 44.5,15.5 + parent: 1 + - uid: 4457 + components: + - type: Transform + pos: 17.5,65.5 + parent: 1 + - uid: 4493 + components: + - type: Transform + pos: 49.5,10.5 + parent: 1 + - uid: 4519 + components: + - type: Transform + pos: 51.5,13.5 + parent: 1 + - uid: 4520 + components: + - type: Transform + pos: 50.5,13.5 + parent: 1 + - uid: 4534 + components: + - type: Transform + pos: 49.5,13.5 + parent: 1 + - uid: 4568 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,-10.5 + parent: 1 + - uid: 4633 + components: + - type: Transform + pos: 45.5,15.5 + parent: 1 + - uid: 4649 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,61.5 + parent: 1 + - uid: 4651 + components: + - type: Transform + pos: -42.5,-11.5 + parent: 1 + - uid: 4675 + components: + - type: Transform + pos: 51.5,12.5 + parent: 1 + - uid: 4696 + components: + - type: Transform + pos: -41.5,-11.5 + parent: 1 + - uid: 4697 + components: + - type: Transform + pos: -40.5,-11.5 + parent: 1 + - uid: 4698 + components: + - type: Transform + pos: -42.5,-11.5 + parent: 1 + - uid: 4722 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,-12.5 + parent: 1 + - uid: 4723 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -42.5,-12.5 + parent: 1 + - uid: 4724 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,-12.5 + parent: 1 + - uid: 4734 + components: + - type: Transform + pos: 46.5,16.5 + parent: 1 + - uid: 4737 + components: + - type: Transform + pos: 46.5,17.5 + parent: 1 + - uid: 4757 + components: + - type: Transform + pos: 17.5,63.5 + parent: 1 + - uid: 4761 + components: + - type: Transform + pos: 44.5,16.5 + parent: 1 + - uid: 4782 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,-4.5 + parent: 1 + - uid: 4783 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,-4.5 + parent: 1 + - uid: 4789 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,-10.5 + parent: 1 + - uid: 4794 + components: + - type: Transform + pos: 44.5,17.5 + parent: 1 + - uid: 4814 + components: + - type: Transform + pos: -35.5,-11.5 + parent: 1 + - uid: 4815 + components: + - type: Transform + pos: -36.5,-11.5 + parent: 1 + - uid: 4816 + components: + - type: Transform + pos: -37.5,-11.5 + parent: 1 + - uid: 4817 + components: + - type: Transform + pos: -38.5,-11.5 + parent: 1 + - uid: 4818 + components: + - type: Transform + pos: -39.5,-11.5 + parent: 1 + - uid: 4819 + components: + - type: Transform + pos: -43.5,-11.5 + parent: 1 + - uid: 4831 + components: + - type: Transform + pos: 49.5,11.5 + parent: 1 + - uid: 4832 + components: + - type: Transform + pos: 49.5,12.5 + parent: 1 + - uid: 4898 + components: + - type: Transform + pos: 51.5,10.5 + parent: 1 + - uid: 4902 + components: + - type: Transform + pos: 2.5,-23.5 + parent: 1 + - uid: 4906 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,28.5 + parent: 1 + - uid: 4920 + components: + - type: Transform + pos: 46.5,15.5 + parent: 1 + - uid: 4941 + components: + - type: Transform + pos: 18.5,66.5 + parent: 1 + - uid: 4945 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,28.5 + parent: 1 + - uid: 4959 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,41.5 + parent: 1 + - uid: 5027 + components: + - type: Transform + pos: 49.5,15.5 + parent: 1 + - uid: 5028 + components: + - type: Transform + pos: 48.5,15.5 + parent: 1 + - uid: 5029 + components: + - type: Transform + pos: 48.5,16.5 + parent: 1 + - uid: 5030 + components: + - type: Transform + pos: 47.5,16.5 + parent: 1 + - uid: 5046 + components: + - type: Transform + pos: 45.5,17.5 + parent: 1 + - uid: 5050 + components: + - type: Transform + pos: 50.5,15.5 + parent: 1 + - uid: 5051 + components: + - type: Transform + pos: 45.5,16.5 + parent: 1 + - uid: 5052 + components: + - type: Transform + pos: 51.5,11.5 + parent: 1 + - uid: 5057 + components: + - type: Transform + pos: 44.5,8.5 + parent: 1 + - uid: 5065 + components: + - type: Transform + pos: 45.5,8.5 + parent: 1 + - uid: 5080 + components: + - type: Transform + pos: 46.5,6.5 + parent: 1 + - uid: 5081 + components: + - type: Transform + pos: 46.5,8.5 + parent: 1 + - uid: 5139 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,41.5 + parent: 1 + - uid: 5187 + components: + - type: Transform + pos: 17.5,62.5 + parent: 1 + - uid: 5196 + components: + - type: Transform + pos: 50.5,11.5 + parent: 1 + - uid: 5197 + components: + - type: Transform + pos: 50.5,12.5 + parent: 1 + - uid: 5198 + components: + - type: Transform + pos: 50.5,10.5 + parent: 1 + - uid: 5199 + components: + - type: Transform + pos: 50.5,9.5 + parent: 1 + - uid: 5200 + components: + - type: Transform + pos: 50.5,8.5 + parent: 1 + - uid: 5201 + components: + - type: Transform + pos: 49.5,8.5 + parent: 1 + - uid: 5202 + components: + - type: Transform + pos: 48.5,8.5 + parent: 1 + - uid: 5203 + components: + - type: Transform + pos: 47.5,7.5 + parent: 1 + - uid: 5204 + components: + - type: Transform + pos: 46.5,7.5 + parent: 1 + - uid: 5205 + components: + - type: Transform + pos: 45.5,7.5 + parent: 1 + - uid: 5206 + components: + - type: Transform + pos: 44.5,7.5 + parent: 1 + - uid: 5207 + components: + - type: Transform + pos: 48.5,7.5 + parent: 1 + - uid: 5227 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,9.5 + parent: 1 + - uid: 5232 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,11.5 + parent: 1 + - uid: 5233 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,12.5 + parent: 1 + - uid: 5235 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,14.5 + parent: 1 + - uid: 5236 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,14.5 + parent: 1 + - uid: 5237 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,9.5 + parent: 1 + - uid: 5252 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -52.5,-4.5 + parent: 1 + - uid: 5299 + components: + - type: Transform + pos: 19.5,61.5 + parent: 1 + - uid: 5303 + components: + - type: Transform + pos: -0.5,-23.5 + parent: 1 + - uid: 5319 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,59.5 + parent: 1 + - uid: 5341 + components: + - type: Transform + pos: 3.5,-23.5 + parent: 1 + - uid: 5346 + components: + - type: Transform + pos: -19.5,50.5 + parent: 1 + - uid: 5376 + components: + - type: Transform + pos: -21.5,50.5 + parent: 1 + - uid: 5381 + components: + - type: Transform + pos: 28.5,57.5 + parent: 1 + - uid: 5392 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,66.5 + parent: 1 + - uid: 5440 + components: + - type: Transform + pos: 17.5,66.5 + parent: 1 + - uid: 5443 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,37.5 + parent: 1 + - uid: 5444 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,37.5 + parent: 1 + - uid: 5445 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,37.5 + parent: 1 + - uid: 5456 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,66.5 + parent: 1 + - uid: 5501 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,59.5 + parent: 1 + - uid: 5506 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,-11.5 + parent: 1 + - uid: 5507 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,-12.5 + parent: 1 + - uid: 5519 + components: + - type: Transform + pos: 17.5,64.5 + parent: 1 + - uid: 5588 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,-13.5 + parent: 1 + - uid: 5595 + components: + - type: Transform + pos: 0.5,-23.5 + parent: 1 + - uid: 5605 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-24.5 + parent: 1 + - uid: 5609 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-32.5 + parent: 1 + - uid: 5693 + components: + - type: Transform + pos: 18.5,61.5 + parent: 1 + - uid: 5722 + components: + - type: Transform + pos: 1.5,-23.5 + parent: 1 + - uid: 5729 + components: + - type: Transform + pos: 7.5,6.5 + parent: 1 + - uid: 5733 + components: + - type: Transform + pos: -20.5,50.5 + parent: 1 + - uid: 5828 + components: + - type: Transform + pos: -22.5,50.5 + parent: 1 + - uid: 5829 + components: + - type: Transform + pos: -23.5,50.5 + parent: 1 + - uid: 5856 + components: + - type: Transform + pos: 21.5,61.5 + parent: 1 + - uid: 5891 + components: + - type: Transform + pos: 17.5,61.5 + parent: 1 + - uid: 5924 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,-22.5 + parent: 1 + - uid: 5925 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-31.5 + parent: 1 + - uid: 5926 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-32.5 + parent: 1 + - uid: 5927 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-33.5 + parent: 1 + - uid: 5962 + components: + - type: Transform + pos: 7.5,5.5 + parent: 1 + - uid: 6010 + components: + - type: Transform + pos: 20.5,61.5 + parent: 1 + - uid: 6172 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -51.5,-5.5 + parent: 1 + - uid: 6173 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -52.5,-6.5 + parent: 1 + - uid: 6234 + components: + - type: Transform + pos: 21.5,66.5 + parent: 1 + - uid: 6243 + components: + - type: Transform + pos: 19.5,66.5 + parent: 1 + - uid: 6244 + components: + - type: Transform + pos: 20.5,66.5 + parent: 1 + - uid: 6270 + components: + - type: Transform + pos: 9.5,43.5 + parent: 1 + - uid: 6308 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-31.5 + parent: 1 + - uid: 6309 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-32.5 + parent: 1 + - uid: 6337 + components: + - type: Transform + pos: 7.5,7.5 + parent: 1 + - uid: 6490 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -51.5,-3.5 + parent: 1 + - uid: 7472 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -51.5,-4.5 + parent: 1 + - uid: 8016 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -53.5,-6.5 + parent: 1 + - uid: 8049 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,70.5 + parent: 1 + - uid: 8355 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-30.5 + parent: 1 + - uid: 9132 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,70.5 + parent: 1 + - uid: 9340 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-9.5 + parent: 1 + - uid: 9368 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,70.5 + parent: 1 + - uid: 9369 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,70.5 + parent: 1 + - uid: 9370 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,70.5 + parent: 1 + - uid: 9371 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,70.5 + parent: 1 + - uid: 9470 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,67.5 + parent: 1 + - uid: 9471 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,67.5 + parent: 1 + - uid: 9506 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,67.5 + parent: 1 + - uid: 9507 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,67.5 + parent: 1 + - uid: 9508 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,52.5 + parent: 1 + - uid: 9509 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,53.5 + parent: 1 + - uid: 9510 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,54.5 + parent: 1 + - uid: 9606 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,70.5 + parent: 1 + - uid: 9711 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-10.5 + parent: 1 + - uid: 9729 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,50.5 + parent: 1 + - uid: 9730 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,50.5 + parent: 1 + - uid: 9831 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-8.5 + parent: 1 + - uid: 10564 + components: + - type: Transform + pos: -13.5,-8.5 + parent: 1 + - uid: 10565 + components: + - type: Transform + pos: -13.5,-7.5 + parent: 1 + - uid: 12299 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-42.5 + parent: 1 + - uid: 12314 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-43.5 + parent: 1 + - uid: 12359 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -52.5,-5.5 + parent: 1 + - uid: 12379 + components: + - type: Transform + pos: -1.5,-23.5 + parent: 1 + - uid: 12380 + components: + - type: Transform + pos: -4.5,-23.5 + parent: 1 + - uid: 12381 + components: + - type: Transform + pos: -6.5,-23.5 + parent: 1 + - uid: 12382 + components: + - type: Transform + pos: -7.5,-23.5 + parent: 1 + - uid: 12402 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,-43.5 + parent: 1 + - uid: 12457 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,-43.5 + parent: 1 + - uid: 12474 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,-43.5 + parent: 1 + - uid: 12482 + components: + - type: Transform + pos: -5.5,-23.5 + parent: 1 + - uid: 12486 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,65.5 + parent: 1 + - uid: 12522 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,-42.5 + parent: 1 + - uid: 12542 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-42.5 + parent: 1 + - uid: 12543 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-43.5 + parent: 1 + - uid: 12544 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,-42.5 + parent: 1 + - uid: 12565 + components: + - type: Transform + pos: -2.5,-23.5 + parent: 1 + - uid: 12578 + components: + - type: Transform + pos: -8.5,-23.5 + parent: 1 + - uid: 12604 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,-25.5 + parent: 1 + - uid: 12613 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,-25.5 + parent: 1 + - uid: 12660 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -52.5,-3.5 + parent: 1 + - uid: 12909 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,-42.5 + parent: 1 + - uid: 12919 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-30.5 + parent: 1 + - uid: 12920 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-31.5 + parent: 1 + - uid: 12988 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-33.5 + parent: 1 + - uid: 13085 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-31.5 + parent: 1 + - uid: 13089 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-32.5 + parent: 1 + - uid: 13309 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -51.5,-6.5 + parent: 1 + - uid: 13425 + components: + - type: Transform + pos: -2.5,-21.5 + parent: 1 + - uid: 13426 + components: + - type: Transform + pos: -8.5,-21.5 + parent: 1 + - uid: 13427 + components: + - type: Transform + pos: -6.5,-21.5 + parent: 1 + - uid: 13428 + components: + - type: Transform + pos: -0.5,-21.5 + parent: 1 + - uid: 13432 + components: + - type: Transform + pos: 3.5,-21.5 + parent: 1 + - uid: 13434 + components: + - type: Transform + pos: 1.5,-21.5 + parent: 1 + - uid: 13440 + components: + - type: Transform + pos: -4.5,-21.5 + parent: 1 + - uid: 13631 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-25.5 + parent: 1 + - uid: 15130 + components: + - type: Transform + pos: -48.5,53.5 + parent: 1 + - uid: 15131 + components: + - type: Transform + pos: -47.5,53.5 + parent: 1 + - uid: 15132 + components: + - type: Transform + pos: -46.5,53.5 + parent: 1 + - uid: 15133 + components: + - type: Transform + pos: -42.5,53.5 + parent: 1 + - uid: 15134 + components: + - type: Transform + pos: -41.5,53.5 + parent: 1 + - uid: 15135 + components: + - type: Transform + pos: -40.5,53.5 + parent: 1 + - uid: 15138 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,57.5 + parent: 1 + - uid: 15139 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -47.5,58.5 + parent: 1 + - uid: 15143 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,57.5 + parent: 1 + - uid: 15144 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,57.5 + parent: 1 + - uid: 15145 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,57.5 + parent: 1 + - uid: 15146 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,57.5 + parent: 1 + - uid: 15147 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,57.5 + parent: 1 + - uid: 15148 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,58.5 + parent: 1 + - uid: 15149 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,57.5 + parent: 1 + - uid: 15150 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,57.5 + parent: 1 + - uid: 15151 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,57.5 + parent: 1 + - uid: 15152 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,57.5 + parent: 1 + - uid: 15153 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,57.5 + parent: 1 + - uid: 15156 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,57.5 + parent: 1 + - uid: 15181 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,62.5 + parent: 1 + - uid: 15294 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -53.5,-5.5 + parent: 1 + - uid: 15295 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -53.5,-4.5 + parent: 1 + - uid: 15296 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -53.5,-3.5 + parent: 1 + - uid: 16604 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,29.5 + parent: 1 + - uid: 16605 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,25.5 + parent: 1 +- proto: GrilleBroken + entities: + - uid: 3368 + components: + - type: Transform + pos: -12.5,68.5 + parent: 1 + - uid: 4224 + components: + - type: Transform + pos: -11.5,67.5 + parent: 1 +- proto: GrilleSpawner + entities: + - uid: 4290 + components: + - type: Transform + pos: 41.5,41.5 + parent: 1 + - uid: 4313 + components: + - type: Transform + pos: 42.5,41.5 + parent: 1 + - uid: 4319 + components: + - type: Transform + pos: 43.5,41.5 + parent: 1 + - uid: 4331 + components: + - type: Transform + pos: 44.5,41.5 + parent: 1 + - uid: 4393 + components: + - type: Transform + pos: 45.5,41.5 + parent: 1 + - uid: 4403 + components: + - type: Transform + pos: 46.5,41.5 + parent: 1 + - uid: 9790 + components: + - type: Transform + pos: 40.5,41.5 + parent: 1 + - uid: 12641 + components: + - type: Transform + pos: 47.5,41.5 + parent: 1 + - uid: 12659 + components: + - type: Transform + pos: -55.5,49.5 + parent: 1 + - uid: 12905 + components: + - type: Transform + pos: -26.5,72.5 + parent: 1 + - uid: 13299 + components: + - type: Transform + pos: 47.5,38.5 + parent: 1 + - uid: 13302 + components: + - type: Transform + pos: 47.5,39.5 + parent: 1 + - uid: 13332 + components: + - type: Transform + pos: 47.5,40.5 + parent: 1 + - uid: 13338 + components: + - type: Transform + pos: 47.5,37.5 + parent: 1 + - uid: 13339 + components: + - type: Transform + pos: 47.5,36.5 + parent: 1 + - uid: 13387 + components: + - type: Transform + pos: 39.5,41.5 + parent: 1 + - uid: 13563 + components: + - type: Transform + pos: -13.5,72.5 + parent: 1 + - uid: 13565 + components: + - type: Transform + pos: -28.5,72.5 + parent: 1 + - uid: 13566 + components: + - type: Transform + pos: -15.5,72.5 + parent: 1 + - uid: 13567 + components: + - type: Transform + pos: -6.5,72.5 + parent: 1 + - uid: 13568 + components: + - type: Transform + pos: 1.5,75.5 + parent: 1 + - uid: 13570 + components: + - type: Transform + pos: -16.5,72.5 + parent: 1 + - uid: 13571 + components: + - type: Transform + pos: -1.5,72.5 + parent: 1 + - uid: 13572 + components: + - type: Transform + pos: -10.5,72.5 + parent: 1 + - uid: 13573 + components: + - type: Transform + pos: 0.5,74.5 + parent: 1 + - uid: 13574 + components: + - type: Transform + pos: -5.5,72.5 + parent: 1 + - uid: 13575 + components: + - type: Transform + pos: -3.5,72.5 + parent: 1 + - uid: 13576 + components: + - type: Transform + pos: 4.5,75.5 + parent: 1 + - uid: 13592 + components: + - type: Transform + pos: 3.5,75.5 + parent: 1 + - uid: 13596 + components: + - type: Transform + pos: -29.5,72.5 + parent: 1 + - uid: 13602 + components: + - type: Transform + pos: 54.5,-0.5 + parent: 1 + - uid: 13608 + components: + - type: Transform + pos: 45.5,-0.5 + parent: 1 + - uid: 13609 + components: + - type: Transform + pos: 46.5,-0.5 + parent: 1 + - uid: 13610 + components: + - type: Transform + pos: 47.5,-0.5 + parent: 1 + - uid: 13611 + components: + - type: Transform + pos: 48.5,-0.5 + parent: 1 + - uid: 13612 + components: + - type: Transform + pos: 49.5,-0.5 + parent: 1 + - uid: 13613 + components: + - type: Transform + pos: 50.5,-0.5 + parent: 1 + - uid: 13614 + components: + - type: Transform + pos: 51.5,-0.5 + parent: 1 + - uid: 13615 + components: + - type: Transform + pos: 52.5,-0.5 + parent: 1 + - uid: 13616 + components: + - type: Transform + pos: 55.5,0.5 + parent: 1 + - uid: 13617 + components: + - type: Transform + pos: 55.5,2.5 + parent: 1 + - uid: 13618 + components: + - type: Transform + pos: 55.5,3.5 + parent: 1 + - uid: 13619 + components: + - type: Transform + pos: 55.5,4.5 + parent: 1 + - uid: 13620 + components: + - type: Transform + pos: 55.5,5.5 + parent: 1 + - uid: 13621 + components: + - type: Transform + pos: 55.5,6.5 + parent: 1 + - uid: 14492 + components: + - type: Transform + pos: 26.5,71.5 + parent: 1 + - uid: 14493 + components: + - type: Transform + pos: 25.5,71.5 + parent: 1 + - uid: 14494 + components: + - type: Transform + pos: 24.5,71.5 + parent: 1 + - uid: 14495 + components: + - type: Transform + pos: 22.5,71.5 + parent: 1 + - uid: 14496 + components: + - type: Transform + pos: 28.5,71.5 + parent: 1 + - uid: 14497 + components: + - type: Transform + pos: 30.5,71.5 + parent: 1 + - uid: 14498 + components: + - type: Transform + pos: 31.5,70.5 + parent: 1 + - uid: 14499 + components: + - type: Transform + pos: 31.5,69.5 + parent: 1 + - uid: 14500 + components: + - type: Transform + pos: 31.5,68.5 + parent: 1 + - uid: 14882 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -47.5,16.5 + parent: 1 + - uid: 14883 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -47.5,18.5 + parent: 1 + - uid: 15203 + components: + - type: Transform + pos: -57.5,44.5 + parent: 1 + - uid: 15204 + components: + - type: Transform + pos: -57.5,45.5 + parent: 1 + - uid: 15205 + components: + - type: Transform + pos: -57.5,46.5 + parent: 1 + - uid: 15206 + components: + - type: Transform + pos: -57.5,47.5 + parent: 1 + - uid: 15207 + components: + - type: Transform + pos: -57.5,48.5 + parent: 1 + - uid: 15208 + components: + - type: Transform + pos: -56.5,48.5 + parent: 1 + - uid: 15209 + components: + - type: Transform + pos: -55.5,48.5 + parent: 1 + - uid: 15210 + components: + - type: Transform + pos: -55.5,44.5 + parent: 1 + - uid: 15211 + components: + - type: Transform + pos: -56.5,44.5 + parent: 1 + - uid: 15212 + components: + - type: Transform + pos: -55.5,43.5 + parent: 1 + - uid: 15213 + components: + - type: Transform + pos: -55.5,42.5 + parent: 1 + - uid: 15214 + components: + - type: Transform + pos: -54.5,42.5 + parent: 1 + - uid: 15215 + components: + - type: Transform + pos: -53.5,42.5 + parent: 1 + - uid: 15216 + components: + - type: Transform + pos: -52.5,41.5 + parent: 1 + - uid: 15217 + components: + - type: Transform + pos: -51.5,41.5 + parent: 1 + - uid: 15218 + components: + - type: Transform + pos: -53.5,41.5 + parent: 1 + - uid: 15219 + components: + - type: Transform + pos: -51.5,40.5 + parent: 1 + - uid: 15220 + components: + - type: Transform + pos: -50.5,40.5 + parent: 1 + - uid: 15221 + components: + - type: Transform + pos: -49.5,40.5 + parent: 1 + - uid: 15222 + components: + - type: Transform + pos: -55.5,50.5 + parent: 1 + - uid: 15223 + components: + - type: Transform + pos: -53.5,50.5 + parent: 1 + - uid: 15224 + components: + - type: Transform + pos: -53.5,51.5 + parent: 1 + - uid: 15225 + components: + - type: Transform + pos: -54.5,50.5 + parent: 1 + - uid: 15226 + components: + - type: Transform + pos: -52.5,51.5 + parent: 1 + - uid: 15227 + components: + - type: Transform + pos: -51.5,51.5 + parent: 1 + - uid: 15229 + components: + - type: Transform + pos: -50.5,52.5 + parent: 1 + - uid: 15231 + components: + - type: Transform + pos: -51.5,52.5 + parent: 1 + - uid: 15232 + components: + - type: Transform + pos: -49.5,52.5 + parent: 1 + - uid: 15417 + components: + - type: Transform + pos: 48.5,36.5 + parent: 1 + - uid: 15418 + components: + - type: Transform + pos: 49.5,36.5 + parent: 1 + - uid: 15419 + components: + - type: Transform + pos: 49.5,35.5 + parent: 1 + - uid: 15420 + components: + - type: Transform + pos: 49.5,34.5 + parent: 1 + - uid: 15421 + components: + - type: Transform + pos: 49.5,33.5 + parent: 1 + - uid: 15422 + components: + - type: Transform + pos: 49.5,32.5 + parent: 1 + - uid: 15423 + components: + - type: Transform + pos: 48.5,32.5 + parent: 1 + - uid: 15424 + components: + - type: Transform + pos: 47.5,32.5 + parent: 1 + - uid: 15425 + components: + - type: Transform + pos: 46.5,32.5 + parent: 1 + - uid: 15426 + components: + - type: Transform + pos: 45.5,32.5 + parent: 1 + - uid: 15427 + components: + - type: Transform + pos: 44.5,32.5 + parent: 1 + - uid: 15428 + components: + - type: Transform + pos: 43.5,32.5 + parent: 1 + - uid: 15429 + components: + - type: Transform + pos: 42.5,32.5 + parent: 1 +- proto: GunSafeDisabler + entities: + - uid: 1949 + components: + - type: Transform + pos: -20.5,13.5 + parent: 1 +- proto: GunSafeShotgunEnforcer + entities: + - uid: 2132 + components: + - type: Transform + pos: -21.5,3.5 + parent: 1 +- proto: GunSafeSubMachineGunDrozd + entities: + - uid: 2133 + components: + - type: Transform + pos: -25.5,3.5 + parent: 1 +- proto: HandheldGPSBasic + entities: + - uid: 4105 + components: + - type: Transform + pos: -1.5801249,39.66073 + parent: 1 + - uid: 4376 + components: + - type: Transform + pos: -1.4238749,39.56698 + parent: 1 +- proto: HandLabeler + entities: + - uid: 571 + components: + - type: Transform + pos: -6.4847445,12.549901 + parent: 1 + - uid: 3280 + components: + - type: Transform + pos: 17.513794,44.193516 + parent: 1 +- proto: HappyHonkCluwne + entities: + - uid: 4352 + components: + - type: Transform + pos: -7.469882,21.458729 + parent: 1 +- proto: HarmonicaInstrument + entities: + - uid: 5055 + components: + - type: Transform + pos: -24.907331,40.719887 + parent: 1 +- proto: HeatExchanger + entities: + - uid: 4674 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,-35.5 + parent: 1 + - uid: 6051 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,-34.5 + parent: 1 + - uid: 6080 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,-33.5 + parent: 1 + - uid: 6091 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,-32.5 + parent: 1 + - uid: 6390 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-34.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 8348 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-32.5 + parent: 1 + - type: AtmosPipeColor + color: '#0000FFFF' + - uid: 16590 + components: + - type: Transform + pos: -20.5,-33.5 + parent: 1 +- proto: HighSecArmoryLocked + entities: + - uid: 383 + components: + - type: Transform + pos: -23.5,6.5 + parent: 1 +- proto: HighSecCommandLocked + entities: + - uid: 413 + components: + - type: Transform + pos: 1.5,-1.5 + parent: 1 + - uid: 753 + components: + - type: Transform + pos: 2.5,-1.5 + parent: 1 + - uid: 4219 + components: + - type: Transform + pos: 38.5,12.5 + parent: 1 + - uid: 4991 + components: + - type: Transform + pos: 38.5,11.5 + parent: 1 +- proto: HoloprojectorEngineering + entities: + - uid: 15647 + components: + - type: Transform + pos: -28.832706,-41.490944 + parent: 1 +- proto: HospitalCurtainsOpen + entities: + - uid: 58 + components: + - type: Transform + pos: -11.5,30.5 + parent: 1 + - uid: 133 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,4.5 + parent: 1 + - uid: 970 + components: + - type: Transform + pos: -11.5,11.5 + parent: 1 + - type: Door + secondsUntilStateChange: -26341.395 + state: Opening + - type: Occluder + enabled: True + - type: Physics + canCollide: True + - uid: 1377 + components: + - type: Transform + pos: -28.5,31.5 + parent: 1 + - uid: 2014 + components: + - type: Transform + pos: 22.5,17.5 + parent: 1 + - uid: 2069 + components: + - type: Transform + pos: -27.5,7.5 + parent: 1 + - uid: 2377 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,47.5 + parent: 1 + - uid: 2397 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,14.5 + parent: 1 + - uid: 2600 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,6.5 + parent: 1 + - uid: 2601 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,1.5 + parent: 1 + - uid: 2724 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,46.5 + parent: 1 + - uid: 2875 + components: + - type: Transform + pos: 11.5,-10.5 + parent: 1 + - uid: 2896 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,47.5 + parent: 1 + - uid: 3057 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,53.5 + parent: 1 + - uid: 3425 + components: + - type: Transform + pos: 9.5,56.5 + parent: 1 + - uid: 3489 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,50.5 + parent: 1 + - uid: 12294 + components: + - type: Transform + pos: 23.5,54.5 + parent: 1 +- proto: HydroponicsToolClippers + entities: + - uid: 15332 + components: + - type: Transform + pos: -50.53631,-5.4989967 + parent: 1 +- proto: HydroponicsToolHatchet + entities: + - uid: 743 + components: + - type: Transform + pos: 12.468645,28.611116 + parent: 1 +- proto: HydroponicsToolMiniHoe + entities: + - uid: 15330 + components: + - type: Transform + pos: -50.48246,-5.55276 + parent: 1 +- proto: HydroponicsToolScythe + entities: + - uid: 22 + components: + - type: Transform + pos: 12.499895,28.423616 + parent: 1 +- proto: HydroponicsToolSpade + entities: + - uid: 15331 + components: + - type: Transform + pos: -50.446564,-5.463155 + parent: 1 +- proto: hydroponicsTray + entities: + - uid: 131 + components: + - type: Transform + pos: 7.5,28.5 + parent: 1 + - uid: 600 + components: + - type: Transform + pos: 8.5,26.5 + parent: 1 + - uid: 765 + components: + - type: Transform + pos: 8.5,28.5 + parent: 1 + - uid: 785 + components: + - type: Transform + pos: 9.5,28.5 + parent: 1 + - uid: 1052 + components: + - type: Transform + pos: 6.5,26.5 + parent: 1 + - uid: 1105 + components: + - type: Transform + pos: 7.5,26.5 + parent: 1 + - uid: 1127 + components: + - type: Transform + pos: 6.5,28.5 + parent: 1 + - uid: 1253 + components: + - type: Transform + pos: 9.5,26.5 + parent: 1 + - uid: 15323 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -50.5,-3.5 + parent: 1 + - uid: 15324 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -49.5,-3.5 + parent: 1 + - uid: 15325 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -48.5,-3.5 + parent: 1 + - uid: 15326 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -47.5,-3.5 + parent: 1 +- proto: IDComputerCircuitboard + entities: + - uid: 2809 + components: + - type: Transform + pos: -31.539478,-8.391077 + parent: 1 +- proto: InflatableDoor + entities: + - uid: 4294 + components: + - type: Transform + pos: -7.5,66.5 + parent: 1 + - uid: 6374 + components: + - type: Transform + pos: -5.5,66.5 + parent: 1 +- proto: InflatableWall + entities: + - uid: 5988 + components: + - type: Transform + pos: -29.5,2.5 + parent: 1 + - uid: 6065 + components: + - type: Transform + pos: 11.5,-4.5 + parent: 1 + - uid: 6084 + components: + - type: Transform + pos: 31.5,48.5 + parent: 1 + - uid: 6205 + components: + - type: Transform + pos: -28.5,2.5 + parent: 1 + - uid: 6338 + components: + - type: Transform + pos: 15.5,29.5 + parent: 1 + - uid: 6360 + components: + - type: Transform + pos: -11.5,67.5 + parent: 1 + - uid: 10328 + components: + - type: Transform + pos: -11.5,68.5 + parent: 1 +- proto: IngotSilver + entities: + - uid: 2768 + components: + - type: Transform + pos: 3.562889,-3.3272734 + parent: 1 +- proto: IntercomAll + entities: + - uid: 15541 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,12.5 + parent: 1 + - uid: 15542 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,10.5 + parent: 1 + - uid: 15543 + components: + - type: Transform + pos: 41.5,18.5 + parent: 1 + - uid: 15544 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,5.5 + parent: 1 +- proto: IntercomCommand + entities: + - uid: 5690 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,5.5 + parent: 1 + - uid: 6210 + components: + - type: Transform + pos: -8.5,10.5 + parent: 1 +- proto: IntercomCommon + entities: + - uid: 4646 + components: + - type: Transform + pos: -16.5,50.5 + parent: 1 + - uid: 6220 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,54.5 + parent: 1 + - uid: 6297 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,17.5 + parent: 1 +- proto: IntercomElectronics + entities: + - uid: 2239 + components: + - type: Transform + pos: -32.78609,-10.308686 + parent: 1 + - uid: 2934 + components: + - type: Transform + pos: -32.78609,-10.516606 + parent: 1 +- proto: IntercomEngineering + entities: + - uid: 5649 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-5.5 + parent: 1 + - uid: 6187 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-7.5 + parent: 1 + - uid: 15722 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-25.5 + parent: 1 +- proto: IntercomMedical + entities: + - uid: 6259 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,40.5 + parent: 1 + - uid: 6377 + components: + - type: Transform + pos: 21.5,48.5 + parent: 1 +- proto: IntercomScience + entities: + - uid: 320 + components: + - type: Transform + pos: 6.5,21.5 + parent: 1 + - uid: 6237 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,13.5 + parent: 1 +- proto: IntercomSecurity + entities: + - uid: 5563 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,16.5 + parent: 1 + - uid: 5889 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,10.5 + parent: 1 +- proto: IntercomService + entities: + - uid: 5371 + components: + - type: Transform + pos: 0.5,31.5 + parent: 1 + - uid: 6361 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,34.5 + parent: 1 +- proto: IntercomSupply + entities: + - uid: 6182 + components: + - type: Transform + pos: -27.5,30.5 + parent: 1 + - uid: 6383 + components: + - type: Transform + pos: -17.5,36.5 + parent: 1 + - uid: 16019 + components: + - type: Transform + pos: -16.5,-21.5 + parent: 1 +- proto: JetpackMiniFilled + entities: + - uid: 810 + components: + - type: Transform + pos: -11.36374,-0.306522 + parent: 1 +- proto: Joint + entities: + - uid: 2380 + components: + - type: Transform + pos: -37.34838,14.866543 + parent: 1 + - uid: 2547 + components: + - type: Transform + pos: -37.51505,14.78321 + parent: 1 + - uid: 2548 + components: + - type: Transform + pos: -37.5463,14.949877 + parent: 1 +- proto: KitchenMicrowave + entities: + - uid: 779 + components: + - type: Transform + pos: 6.5,35.5 + parent: 1 + - uid: 2263 + components: + - type: Transform + pos: -19.5,-8.5 + parent: 1 + - uid: 4596 + components: + - type: Transform + pos: -38.5,-8.5 + parent: 1 +- proto: KitchenReagentGrinder + entities: + - uid: 878 + components: + - type: Transform + pos: 5.5,35.5 + parent: 1 + - uid: 2259 + components: + - type: Transform + pos: 17.5,43.5 + parent: 1 + - uid: 4598 + components: + - type: Transform + pos: -39.5,-8.5 + parent: 1 +- proto: KitchenSpike + entities: + - uid: 1152 + components: + - type: Transform + pos: 11.5,33.5 + parent: 1 +- proto: KnifePlastic + entities: + - uid: 769 + components: + - type: Transform + pos: 11.558073,3.5775833 + parent: 1 +- proto: Lamp + entities: + - uid: 541 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.505808,33.921158 + parent: 1 + - uid: 566 + components: + - type: Transform + pos: -21.47158,41.812103 + parent: 1 + - uid: 2912 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.541132,-15.056358 + parent: 1 + - uid: 3961 + components: + - type: Transform + pos: 1.5305343,63.787354 + parent: 1 +- proto: LampBanana + entities: + - uid: 2290 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.48036,2.0458837 + parent: 1 +- proto: LampGold + entities: + - uid: 4108 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.377914,5.059481 + parent: 1 + - uid: 4247 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.56072,50.981068 + parent: 1 +- proto: Lantern + entities: + - uid: 775 + components: + - type: Transform + pos: 13.5577755,-1.1923498 + parent: 1 + - uid: 928 + components: + - type: Transform + pos: -25.739082,40.67148 + parent: 1 + - uid: 1068 + components: + - type: Transform + pos: 11.447998,-1.2106956 + parent: 1 + - uid: 5607 + components: + - type: Transform + pos: -24.304016,40.88395 + parent: 1 + - uid: 6303 + components: + - type: Transform + pos: 26.351555,35.751293 + parent: 1 +- proto: LightHeadBorg + entities: + - uid: 13290 + components: + - type: Transform + pos: 41.727955,17.491596 + parent: 1 + - uid: 13291 + components: + - type: Transform + pos: 41.623257,17.655872 + parent: 1 +- proto: LightReplacer + entities: + - uid: 4749 + components: + - type: Transform + pos: 21.512476,23.778513 + parent: 1 +- proto: LiquidCarbonDioxideCanister + entities: + - uid: 13271 + components: + - type: Transform + pos: -23.5,-38.5 + parent: 1 +- proto: LockableButtonEngineering + entities: + - uid: 16292 + components: + - type: MetaData + name: SM lockdown + - type: Transform + pos: -19.518126,-22.143335 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 15641: + - Pressed: Toggle + 15616: + - Pressed: Toggle + 15671: + - Pressed: Toggle + 15610: + - Pressed: Toggle + 15692: + - Pressed: Toggle + 15693: + - Pressed: Toggle + 15700: + - Pressed: Toggle + 15699: + - Pressed: Toggle + 15698: + - Pressed: Toggle + 15697: + - Pressed: Toggle + 15696: + - Pressed: Toggle + 15695: + - Pressed: Toggle + 15694: + - Pressed: Toggle + 15608: + - Pressed: Toggle + 16294: + - Pressed: Toggle + 16295: + - Pressed: Toggle + - uid: 16293 + components: + - type: MetaData + name: Radiation shutters + - type: Transform + pos: -20.50785,-22.153706 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 15614: + - Pressed: Toggle + 15672: + - Pressed: Toggle + 15604: + - Pressed: Toggle + 15674: + - Pressed: Toggle + 15612: + - Pressed: Toggle + 15575: + - Pressed: Toggle + 15576: + - Pressed: Toggle + 15577: + - Pressed: Toggle + 15578: + - Pressed: Toggle + 15579: + - Pressed: Toggle + 15589: + - Pressed: Toggle + 15588: + - Pressed: Toggle + 15587: + - Pressed: Toggle + 15586: + - Pressed: Toggle + 15585: + - Pressed: Toggle + 15584: + - Pressed: Toggle +- proto: LockerAtmosphericsFilled + entities: + - uid: 2442 + components: + - type: Transform + pos: -11.5,-6.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.1496 + moles: + - 1.7459823 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 2853 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + - uid: 3461 + components: + - type: Transform + pos: -12.5,-6.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.1496 + moles: + - 1.7459823 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 2860 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: LockerBoozeFilled + entities: + - uid: 389 + components: + - type: Transform + pos: -10.5,27.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.1496 + moles: + - 1.7459823 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 2887 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + - uid: 14973 + components: + - type: Transform + pos: 39.5,26.5 + parent: 1 +- proto: LockerCaptainFilledHardsuit + entities: + - uid: 685 + components: + - type: Transform + pos: -0.5,4.5 + parent: 1 +- proto: LockerChemistryFilled + entities: + - uid: 3411 + components: + - type: Transform + pos: 22.5,43.5 + parent: 1 +- proto: LockerChiefEngineerFilled + entities: + - uid: 3312 + components: + - type: Transform + pos: -20.5,-20.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.14835 + moles: + - 1.7459903 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 +- proto: LockerChiefMedicalOfficerFilled + entities: + - uid: 3036 + components: + - type: Transform + pos: 19.5,55.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 147.92479 + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 +- proto: LockerDetectiveFilled + entities: + - uid: 3282 + components: + - type: Transform + pos: -34.5,15.5 + parent: 1 +- proto: LockerElectricalSuppliesFilled + entities: + - uid: 15664 + components: + - type: Transform + pos: -30.5,-27.5 + parent: 1 + - uid: 15665 + components: + - type: Transform + pos: -30.5,-28.5 + parent: 1 +- proto: LockerEngineerFilled + entities: + - uid: 2707 + components: + - type: Transform + pos: -17.5,-12.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.1496 + moles: + - 1.7459823 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 2909 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + - uid: 2708 + components: + - type: Transform + pos: -18.5,-12.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.1496 + moles: + - 1.7459823 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 2911 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + - uid: 6251 + components: + - type: Transform + pos: -24.5,-41.5 + parent: 1 + - uid: 15590 + components: + - type: Transform + pos: -6.5,-33.5 + parent: 1 + - uid: 15591 + components: + - type: Transform + pos: -6.5,-32.5 + parent: 1 + - uid: 15642 + components: + - type: Transform + pos: -23.5,-41.5 + parent: 1 +- proto: LockerEvidence + entities: + - uid: 2175 + components: + - type: Transform + pos: -25.5,18.5 + parent: 1 + - uid: 2176 + components: + - type: Transform + pos: -25.5,15.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.1496 + moles: + - 1.7459823 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - uid: 2177 + components: + - type: Transform + pos: -25.5,12.5 + parent: 1 +- proto: LockerForensicMantisFilled + entities: + - uid: 14885 + components: + - type: Transform + pos: 22.5,2.5 + parent: 1 +- proto: LockerFreezer + entities: + - uid: 843 + components: + - type: Transform + pos: 12.5,33.5 + parent: 1 + - uid: 1560 + components: + - type: Transform + pos: -0.5,-2.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.1496 + moles: + - 1.7459823 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 1561 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: LockerHeadOfPersonnelFilled + entities: + - uid: 129 + components: + - type: Transform + pos: -10.5,11.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 75.31239 + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 817 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: LockerHeadOfSecurityFilledHardsuit + entities: + - uid: 2093 + components: + - type: Transform + pos: -27.5,11.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.14835 + moles: + - 1.7459903 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 +- proto: LockerMedicalFilled + entities: + - uid: 3303 + components: + - type: Transform + pos: 19.5,51.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.1496 + moles: + - 1.7459823 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 3038 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + - uid: 3657 + components: + - type: Transform + pos: 18.5,51.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.1496 + moles: + - 1.7459823 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 3050 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + - uid: 4263 + components: + - type: Transform + pos: 22.5,52.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.1496 + moles: + - 1.7459823 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 4265 + - 4264 + - 4266 + - 4267 + - 4268 + - 4269 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: LockerParamedicFilled + entities: + - uid: 2283 + components: + - type: Transform + pos: 16.5,49.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.1496 + moles: + - 1.7459823 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 3072 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + - uid: 2802 + components: + - type: Transform + pos: 17.5,49.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.1496 + moles: + - 1.7459823 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 3075 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: LockerQuarterMasterFilled + entities: + - uid: 1053 + components: + - type: Transform + pos: -30.5,31.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 147.92479 + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 1184 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: LockerResearchDirectorFilled + entities: + - uid: 1762 + components: + - type: Transform + pos: 26.5,14.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 147.92479 + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 +- proto: LockerSalvageSpecialistFilled + entities: + - uid: 223 + components: + - type: Transform + pos: -10.5,34.5 + parent: 1 + - uid: 488 + components: + - type: Transform + pos: -6.5,34.5 + parent: 1 + - uid: 701 + components: + - type: Transform + pos: -11.5,34.5 + parent: 1 +- proto: LockerScienceFilled + entities: + - uid: 65 + components: + - type: Transform + pos: 8.5,12.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.1496 + moles: + - 1.7459823 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 3124 + - 3125 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + - uid: 1533 + components: + - type: Transform + pos: 8.5,13.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.1496 + moles: + - 1.7459823 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 3187 + - 3216 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: LockerSecurityFilled + entities: + - uid: 1432 + components: + - type: Transform + pos: -19.5,10.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.1496 + moles: + - 1.7459823 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 3251 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + - uid: 1627 + components: + - type: Transform + pos: -18.5,10.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.1496 + moles: + - 1.7459823 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 3264 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: LockerSyndicatePersonal + entities: + - uid: 2131 + components: + - type: Transform + pos: -25.5,4.5 + parent: 1 + - uid: 6076 + components: + - type: Transform + pos: 16.5,-10.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 147.92479 + moles: + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 6077 + - 6078 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: LockerSyndicateShipGearBasic + entities: + - uid: 14938 + components: + - type: Transform + pos: 25.5,-2.5 + parent: 1 +- proto: LockerWardenFilled + entities: + - uid: 2018 + components: + - type: Transform + pos: -19.5,16.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.1496 + moles: + - 1.7459823 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 3265 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null +- proto: LockerWeldingSuppliesFilled + entities: + - uid: 5890 + components: + - type: Transform + pos: -4.5,55.5 + parent: 1 + - uid: 15662 + components: + - type: Transform + pos: -30.5,-26.5 + parent: 1 + - uid: 15663 + components: + - type: Transform + pos: -30.5,-25.5 + parent: 1 +- proto: MachineAnomalyGenerator + entities: + - uid: 1945 + components: + - type: Transform + pos: 9.5,8.5 + parent: 1 +- proto: MachineAnomalyVessel + entities: + - uid: 406 + components: + - type: Transform + pos: 8.5,5.5 + parent: 1 +- proto: MachineAPE + entities: + - uid: 1882 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,6.5 + parent: 1 + - uid: 1883 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,7.5 + parent: 1 +- proto: MachineArtifactAnalyzer + entities: + - uid: 1570 + components: + - type: Transform + pos: 13.5,18.5 + parent: 1 + - type: DeviceLinkSink + links: + - 189 +- proto: MachineCentrifuge + entities: + - uid: 506 + components: + - type: Transform + pos: 19.5,41.5 + parent: 1 +- proto: MachineElectrolysisUnit + entities: + - uid: 2904 + components: + - type: Transform + pos: 22.5,42.5 + parent: 1 +- proto: MachineFrame + entities: + - uid: 10253 + components: + - type: Transform + pos: -22.5,-7.5 + parent: 1 +- proto: MailTeleporter + entities: + - uid: 4030 + components: + - type: Transform + pos: -21.5,25.5 + parent: 1 +- proto: MaintenanceFluffSpawner + entities: + - uid: 5980 + components: + - type: Transform + pos: 4.5,66.5 + parent: 1 + - uid: 6248 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,60.5 + parent: 1 + - uid: 6284 + components: + - type: Transform + pos: 28.5,26.5 + parent: 1 + - uid: 6455 + components: + - type: Transform + pos: -22.5,-0.5 + parent: 1 +- proto: MaintenancePlantSpawner + entities: + - uid: 10372 + components: + - type: Transform + pos: 25.5,60.5 + parent: 1 + - uid: 10373 + components: + - type: Transform + pos: -28.5,1.5 + parent: 1 + - uid: 10374 + components: + - type: Transform + pos: 8.5,-3.5 + parent: 1 + - uid: 10375 + components: + - type: Transform + pos: -19.5,45.5 + parent: 1 +- proto: MaintenanceToolSpawner + entities: + - uid: 4640 + components: + - type: Transform + pos: 7.5,67.5 + parent: 1 + - uid: 5901 + components: + - type: Transform + pos: -5.5,67.5 + parent: 1 + - uid: 5965 + components: + - type: Transform + pos: -28.5,38.5 + parent: 1 + - uid: 6131 + components: + - type: Transform + pos: 21.5,-10.5 + parent: 1 + - uid: 6384 + components: + - type: Transform + pos: 27.5,27.5 + parent: 1 + - uid: 6419 + components: + - type: Transform + pos: 27.5,61.5 + parent: 1 +- proto: MaintenanceWeaponSpawner + entities: + - uid: 5585 + components: + - type: Transform + pos: 29.5,61.5 + parent: 1 + - uid: 6085 + components: + - type: Transform + pos: 19.5,9.5 + parent: 1 + - uid: 6093 + components: + - type: Transform + pos: -29.5,45.5 + parent: 1 +- proto: MaterialBananium + entities: + - uid: 14941 + components: + - type: Transform + pos: 29.362453,2.3909535 + parent: 1 +- proto: MaterialBones + entities: + - uid: 14971 + components: + - type: Transform + pos: 31.457598,36.40242 + parent: 1 +- proto: MaterialCloth + entities: + - uid: 1984 + components: + - type: Transform + pos: -6.5058966,13.115446 + parent: 1 +- proto: MaterialDurathread + entities: + - uid: 690 + components: + - type: Transform + pos: -6.3909945,13.581151 + parent: 1 +- proto: MaterialWoodPlank + entities: + - uid: 10301 + components: + - type: Transform + pos: 7.577904,39.54235 + parent: 1 +- proto: MedicalBed + entities: + - uid: 3351 + components: + - type: Transform + pos: 7.5,51.5 + parent: 1 + - uid: 3618 + components: + - type: Transform + pos: 7.5,54.5 + parent: 1 + - uid: 3746 + components: + - type: Transform + pos: 7.5,57.5 + parent: 1 +- proto: MedicalScanner + entities: + - uid: 6299 + components: + - type: Transform + pos: 35.5,44.5 + parent: 1 +- proto: MedicalTechFab + entities: + - uid: 4694 + components: + - type: Transform + pos: 10.5,44.5 + parent: 1 +- proto: MedkitAdvancedFilled + entities: + - uid: 228 + components: + - type: Transform + pos: -10.501427,5.4696755 + parent: 1 + - uid: 2443 + components: + - type: Transform + pos: 20.498842,51.639614 + parent: 1 + - uid: 2709 + components: + - type: Transform + pos: 20.627262,51.511192 + parent: 1 + - uid: 6034 + components: + - type: Transform + pos: 26.521812,65.76253 + parent: 1 +- proto: MedkitBruteFilled + entities: + - uid: 3536 + components: + - type: Transform + pos: 20.46215,51.34608 + parent: 1 + - uid: 3543 + components: + - type: Transform + pos: 20.608917,51.180965 + parent: 1 +- proto: MedkitBurnFilled + entities: + - uid: 2919 + components: + - type: Transform + pos: 20.572226,50.85074 + parent: 1 + - uid: 3302 + components: + - type: Transform + pos: 20.443804,51.0342 + parent: 1 +- proto: MedkitCombatFilled + entities: + - uid: 1021 + components: + - type: Transform + pos: -10.501427,5.0790505 + parent: 1 + - uid: 3059 + components: + - type: Transform + pos: 18.521152,54.728745 + parent: 1 +- proto: MedkitFilled + entities: + - uid: 3537 + components: + - type: Transform + pos: 20.425459,50.70397 + parent: 1 + - uid: 3567 + components: + - type: Transform + pos: 20.572226,50.53886 + parent: 1 + - uid: 5093 + components: + - type: Transform + pos: -19.824936,29.542162 + parent: 1 + - uid: 6305 + components: + - type: Transform + pos: 26.521812,65.48128 + parent: 1 +- proto: MedkitOxygenFilled + entities: + - uid: 2940 + components: + - type: Transform + pos: 20.627262,50.153595 + parent: 1 + - uid: 3611 + components: + - type: Transform + pos: 20.443804,50.337055 + parent: 1 +- proto: MedkitRadiationFilled + entities: + - uid: 2935 + components: + - type: Transform + pos: 20.572226,49.78668 + parent: 1 + - uid: 3413 + components: + - type: Transform + pos: 20.425459,49.97014 + parent: 1 + - uid: 15684 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.136822,-25.389437 + parent: 1 +- proto: MedkitToxinFilled + entities: + - uid: 3569 + components: + - type: Transform + pos: 20.553879,49.51149 + parent: 1 + - uid: 3597 + components: + - type: Transform + pos: 20.297037,49.6766 + parent: 1 +- proto: MetempsychoticMachine + entities: + - uid: 7243 + components: + - type: Transform + pos: 36.5,44.5 + parent: 1 +- proto: MinimoogInstrument + entities: + - uid: 558 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,20.5 + parent: 1 +- proto: MobCatCake + entities: + - uid: 14988 + components: + - type: Transform + pos: 6.4536657,32.44207 + parent: 1 +- proto: MopBucket + entities: + - uid: 4327 + components: + - type: Transform + pos: 21.461933,21.642864 + parent: 1 + - uid: 4562 + components: + - type: Transform + pos: 20.489601,21.642864 + parent: 1 +- proto: MopItem + entities: + - uid: 4144 + components: + - type: Transform + pos: 21.41463,24.585732 + parent: 1 + - uid: 4435 + components: + - type: Transform + pos: 21.524708,24.426735 + parent: 1 + - uid: 4460 + components: + - type: Transform + pos: 21.316788,24.7325 + parent: 1 +- proto: Morgue + entities: + - uid: 441 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,45.5 + parent: 1 + - uid: 1889 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,45.5 + parent: 1 + - uid: 2310 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,47.5 + parent: 1 + - uid: 2463 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,44.5 + parent: 1 + - uid: 2605 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,42.5 + parent: 1 + - uid: 2722 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,46.5 + parent: 1 + - uid: 2987 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,46.5 + parent: 1 + - uid: 3093 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,44.5 + parent: 1 + - uid: 3098 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,47.5 + parent: 1 + - uid: 3240 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,42.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.1496 + moles: + - 1.7459823 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - uid: 4119 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,42.5 + parent: 1 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.1496 + moles: + - 1.7459823 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 +- proto: MouseTimedSpawner + entities: + - uid: 4620 + components: + - type: Transform + pos: -5.5,61.5 + parent: 1 + - uid: 5796 + components: + - type: Transform + pos: 21.5,39.5 + parent: 1 + - uid: 6002 + components: + - type: Transform + pos: 8.5,-2.5 + parent: 1 + - uid: 6327 + components: + - type: Transform + pos: -32.5,13.5 + parent: 1 + - uid: 6439 + components: + - type: Transform + pos: -23.5,45.5 + parent: 1 +- proto: Multitool + entities: + - uid: 1982 + components: + - type: Transform + pos: 18.336224,19.46471 + parent: 1 + - uid: 4614 + components: + - type: Transform + pos: 33.985508,42.638275 + parent: 1 + - uid: 4766 + components: + - type: Transform + pos: 21.732628,23.595055 + parent: 1 +- proto: MysteryFigureBox + entities: + - uid: 1953 + components: + - type: Transform + pos: -24.425903,40.580128 + parent: 1 +- proto: NitrogenCanister + entities: + - uid: 2650 + components: + - type: Transform + pos: -6.5,-2.5 + parent: 1 + - uid: 3445 + components: + - type: Transform + pos: -34.5,1.5 + parent: 1 + - uid: 3511 + components: + - type: Transform + anchored: True + pos: -6.5,-20.5 + parent: 1 + - type: Physics + angularDamping: 0 + linearDamping: 0 + bodyType: Static + - uid: 4256 + components: + - type: Transform + pos: -3.5,64.5 + parent: 1 + - uid: 6087 + components: + - type: Transform + pos: 26.5,8.5 + parent: 1 + - uid: 6135 + components: + - type: Transform + pos: -27.5,45.5 + parent: 1 + - uid: 6331 + components: + - type: Transform + pos: 8.5,-5.5 + parent: 1 + - uid: 13269 + components: + - type: Transform + pos: -23.5,-37.5 + parent: 1 + - uid: 14908 + components: + - type: Transform + pos: -8.5,-30.5 + parent: 1 +- proto: NitrogenTankFilled + entities: + - uid: 1693 + components: + - type: Transform + pos: 20.47276,55.5737 + parent: 1 + - uid: 12396 + components: + - type: Transform + pos: -20.701998,16.715702 + parent: 1 + - uid: 12434 + components: + - type: Transform + pos: -2.5225484,6.481158 + parent: 1 + - uid: 12693 + components: + - type: Transform + pos: -16.210587,-12.430935 + parent: 1 + - uid: 12823 + components: + - type: Transform + pos: -16.507462,-12.32156 + parent: 1 + - uid: 12824 + components: + - type: Transform + pos: -16.366837,-12.368435 + parent: 1 + - uid: 12831 + components: + - type: Transform + pos: -10.478182,-6.2142086 + parent: 1 + - uid: 12832 + components: + - type: Transform + pos: -10.337557,-6.2767086 + parent: 1 +- proto: NitrousOxideCanister + entities: + - uid: 3117 + components: + - type: Transform + pos: -7.5,-2.5 + parent: 1 + - uid: 3507 + components: + - type: Transform + anchored: True + pos: 1.5,-20.5 + parent: 1 + - type: Physics + angularDamping: 0 + linearDamping: 0 + bodyType: Static + - uid: 13270 + components: + - type: Transform + pos: -24.5,-37.5 + parent: 1 + - uid: 15574 + components: + - type: Transform + pos: -7.5,-31.5 + parent: 1 +- proto: NodeScanner + entities: + - uid: 1578 + components: + - type: Transform + pos: 17.510658,19.538094 + parent: 1 + - uid: 1983 + components: + - type: Transform + pos: 17.639078,19.64817 + parent: 1 +- proto: NuclearBomb + entities: + - uid: 573 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-4.5 + parent: 1 +- proto: NukeDiskFake + entities: + - uid: 13501 + components: + - type: Transform + pos: -0.26194334,6.572407 + parent: 1 +- proto: OracleSpawner + entities: + - uid: 15293 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,20.5 + parent: 1 +- proto: OreBag + entities: + - uid: 709 + components: + - type: Transform + pos: -11.496526,32.493504 + parent: 1 + - uid: 710 + components: + - type: Transform + pos: -11.590276,32.649754 + parent: 1 + - uid: 883 + components: + - type: Transform + pos: -11.371526,32.35288 + parent: 1 +- proto: OreProcessor + entities: + - uid: 4221 + components: + - type: Transform + pos: -1.5,37.5 + parent: 1 +- proto: OrganHumanBrain + entities: + - uid: 14976 + components: + - type: Transform + pos: 55.5821,13.564307 + parent: 1 +- proto: OxygenCanister + entities: + - uid: 2341 + components: + - type: Transform + pos: -34.5,0.5 + parent: 1 + - uid: 2614 + components: + - type: Transform + pos: -5.5,-3.5 + parent: 1 + - uid: 3058 + components: + - type: Transform + pos: -5.5,-2.5 + parent: 1 + - uid: 3429 + components: + - type: Transform + pos: -12.5,-4.5 + parent: 1 + - uid: 3512 + components: + - type: Transform + anchored: True + pos: -8.5,-20.5 + parent: 1 + - type: Physics + angularDamping: 0 + linearDamping: 0 + bodyType: Static + - uid: 5971 + components: + - type: Transform + pos: -26.5,45.5 + parent: 1 + - uid: 6114 + components: + - type: Transform + pos: -3.5,63.5 + parent: 1 + - uid: 6119 + components: + - type: Transform + pos: 27.5,8.5 + parent: 1 + - uid: 6347 + components: + - type: Transform + pos: 7.5,-5.5 + parent: 1 + - uid: 13268 + components: + - type: Transform + pos: -24.5,-36.5 + parent: 1 + - uid: 14909 + components: + - type: Transform + pos: -9.5,-29.5 + parent: 1 +- proto: OxygenTankFilled + entities: + - uid: 326 + components: + - type: Transform + pos: -0.50657845,41.292942 + parent: 1 + - uid: 12319 + components: + - type: Transform + pos: -2.6475484,6.621783 + parent: 1 + - uid: 12429 + components: + - type: Transform + pos: -16.597553,-12.3823805 + parent: 1 + - uid: 12517 + components: + - type: Transform + pos: -20.588406,16.605238 + parent: 1 + - uid: 12538 + components: + - type: Transform + pos: -16.363178,-12.6011305 + parent: 1 + - uid: 12738 + components: + - type: Transform + pos: -16.488178,-12.5073805 + parent: 1 + - uid: 12776 + components: + - type: Transform + pos: -10.398146,-6.518667 + parent: 1 + - uid: 12778 + components: + - type: Transform + pos: -17.568316,-18.393215 + parent: 1 + - uid: 12781 + components: + - type: Transform + pos: -10.554396,-6.409292 + parent: 1 + - uid: 12833 + components: + - type: Transform + pos: 20.363384,55.683075 + parent: 1 +- proto: PaintingMonkey + entities: + - uid: 1234 + components: + - type: Transform + pos: -2.5,27.5 + parent: 1 +- proto: PaintingNightHawks + entities: + - uid: 46 + components: + - type: Transform + pos: -2.5,31.5 + parent: 1 +- proto: Paper + entities: + - uid: 964 + components: + - type: Transform + pos: -29.490183,33.561783 + parent: 1 + - uid: 1156 + components: + - type: Transform + pos: -29.568308,33.639908 + parent: 1 + - uid: 2766 + components: + - type: Transform + pos: -39.63661,7.7333837 + parent: 1 + - uid: 2851 + components: + - type: Transform + pos: -39.370983,7.7177587 + parent: 1 + - uid: 2855 + components: + - type: Transform + pos: -39.527233,7.7177587 + parent: 1 +- proto: PaperBin10 + entities: + - uid: 75 + components: + - type: Transform + pos: -3.5,12.5 + parent: 1 + - uid: 154 + components: + - type: Transform + pos: -19.5,42.5 + parent: 1 + - uid: 1329 + components: + - type: Transform + pos: 10.5,18.5 + parent: 1 + - uid: 3431 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,-16.5 + parent: 1 + - uid: 4364 + components: + - type: Transform + pos: -9.5,54.5 + parent: 1 + - uid: 10370 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,27.5 + parent: 1 +- proto: PaperBin20 + entities: + - uid: 4358 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,4.5 + parent: 1 +- proto: PaperOffice + entities: + - uid: 64 + components: + - type: Transform + pos: -8.587349,8.572887 + parent: 1 + - uid: 962 + components: + - type: Transform + pos: 22.43689,4.6114526 + parent: 1 + - uid: 1140 + components: + - type: Transform + pos: -8.477974,8.463512 + parent: 1 + - uid: 3958 + components: + - type: Transform + pos: 1.6222637,62.668255 + parent: 1 + - uid: 3959 + components: + - type: Transform + pos: 1.5121883,62.77833 + parent: 1 + - uid: 3960 + components: + - type: Transform + pos: 1.4204588,62.888405 + parent: 1 + - uid: 4407 + components: + - type: Transform + pos: 22.56253,4.665216 + parent: 1 + - uid: 5009 + components: + - type: Transform + pos: 22.508684,4.6831374 + parent: 1 + - uid: 6340 + components: + - type: Transform + pos: 22.311249,4.6114526 + parent: 1 + - uid: 12406 + components: + - type: Transform + pos: 22.598427,4.6114526 + parent: 1 + - uid: 14370 + components: + - type: Transform + pos: 22.598427,4.6472945 + parent: 1 + - uid: 14502 + components: + - type: Transform + pos: 22.311249,4.629373 + parent: 1 +- proto: PartRodMetal + entities: + - uid: 1424 + components: + - type: Transform + pos: 11.685309,8.564459 + parent: 1 + - uid: 2667 + components: + - type: Transform + pos: -22.48371,-4.297817 + parent: 1 +- proto: Pen + entities: + - uid: 1309 + components: + - type: Transform + pos: -19.37948,42.54648 + parent: 1 + - uid: 1327 + components: + - type: Transform + pos: -29.146433,33.514908 + parent: 1 + - uid: 2675 + components: + - type: Transform + pos: -18.281853,-16.109081 + parent: 1 + - uid: 3266 + components: + - type: Transform + pos: -8.691358,8.357625 + parent: 1 + - uid: 10371 + components: + - type: Transform + pos: -18.423532,27.066431 + parent: 1 +- proto: PenLightBase + entities: + - uid: 6017 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.742018,4.629373 + parent: 1 +- proto: PersonalAI + entities: + - uid: 170 + components: + - type: Transform + pos: 10.529739,20.519634 + parent: 1 + - uid: 5245 + components: + - type: Transform + pos: 45.547924,12.243635 + parent: 1 + - uid: 10251 + components: + - type: Transform + pos: -19.421194,-9.311579 + parent: 1 + - uid: 10309 + components: + - type: Transform + pos: 8.512685,22.539352 + parent: 1 +- proto: PhoneInstrument + entities: + - uid: 1742 + components: + - type: Transform + pos: -8.568079,7.647749 + parent: 1 +- proto: PianoInstrument + entities: + - uid: 1130 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,19.5 + parent: 1 +- proto: Pickaxe + entities: + - uid: 37 + components: + - type: Transform + pos: -10.527776,32.649754 + parent: 1 + - uid: 711 + components: + - type: Transform + pos: -10.277776,32.399754 + parent: 1 + - uid: 1014 + components: + - type: Transform + pos: -10.402776,32.47788 + parent: 1 + - uid: 6098 + components: + - type: MetaData + desc: We're Rich! + - type: Transform + pos: -24.825674,-0.36239058 + parent: 1 + - uid: 6300 + components: + - type: MetaData + desc: We're Rich! + - type: Transform + pos: -24.450674,-0.43270308 + parent: 1 +- proto: PillSpaceDrugs + entities: + - uid: 4266 + components: + - type: Transform + parent: 4263 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 4267 + components: + - type: Transform + parent: 4263 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 4268 + components: + - type: Transform + parent: 4263 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 4269 + components: + - type: Transform + parent: 4263 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: PinpointerNuclear + entities: + - uid: 3347 + components: + - type: Transform + pos: 3.5204346,-4.1327543 + parent: 1 + - uid: 13499 + components: + - type: Transform + pos: -0.26194334,6.614491 + parent: 1 +- proto: PlaqueAtmos + entities: + - uid: 5744 + components: + - type: Transform + pos: -9.5,-10.5 + parent: 1 +- proto: PlasmaCanister + entities: + - uid: 2523 + components: + - type: Transform + anchored: True + pos: -0.5,-20.5 + parent: 1 + - type: Physics + angularDamping: 0 + linearDamping: 0 + bodyType: Static + - uid: 2846 + components: + - type: Transform + pos: -6.5,-3.5 + parent: 1 + - uid: 14911 + components: + - type: Transform + pos: -9.5,-31.5 + parent: 1 + - uid: 15650 + components: + - type: Transform + pos: -11.5,-39.5 + parent: 1 + - uid: 15651 + components: + - type: Transform + pos: -11.5,-38.5 + parent: 1 +- proto: PlasmaReinforcedWindowDirectional + entities: + - uid: 1445 + components: + - type: Transform + pos: -1.5,-16.5 + parent: 1 + - uid: 1932 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-18.5 + parent: 1 + - uid: 2449 + components: + - type: Transform + pos: 3.5,-16.5 + parent: 1 + - uid: 2489 + components: + - type: Transform + pos: 0.5,-16.5 + parent: 1 + - uid: 2720 + components: + - type: Transform + pos: -7.5,-16.5 + parent: 1 + - uid: 2721 + components: + - type: Transform + pos: -6.5,-16.5 + parent: 1 + - uid: 2745 + components: + - type: Transform + pos: -4.5,-16.5 + parent: 1 + - uid: 2757 + components: + - type: Transform + pos: -5.5,-16.5 + parent: 1 + - uid: 2784 + components: + - type: Transform + pos: -3.5,-16.5 + parent: 1 + - uid: 2861 + components: + - type: Transform + pos: -8.5,-16.5 + parent: 1 + - uid: 3082 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-18.5 + parent: 1 + - uid: 3119 + components: + - type: Transform + pos: 2.5,-16.5 + parent: 1 + - uid: 3137 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-18.5 + parent: 1 + - uid: 3146 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-18.5 + parent: 1 + - uid: 3253 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-18.5 + parent: 1 + - uid: 3295 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-18.5 + parent: 1 + - uid: 3410 + components: + - type: Transform + pos: 1.5,-16.5 + parent: 1 + - uid: 3432 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-18.5 + parent: 1 + - uid: 3486 + components: + - type: Transform + pos: -0.5,-16.5 + parent: 1 + - uid: 3487 + components: + - type: Transform + pos: -2.5,-16.5 + parent: 1 +- proto: PlasticFlapsAirtightClear + entities: + - uid: 619 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,31.5 + parent: 1 + - uid: 1069 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,20.5 + parent: 1 + - uid: 2401 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-2.5 + parent: 1 + - uid: 6370 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,31.5 + parent: 1 +- proto: PlasticFlapsAirtightOpaque + entities: + - uid: 5815 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,56.5 + parent: 1 +- proto: PlushieArachne + entities: + - uid: 16381 + components: + - type: Transform + pos: -8.600338,-36.450893 + parent: 1 +- proto: PlushieCarp + entities: + - uid: 1204 + components: + - type: Transform + pos: -7.8235006,7.794389 + parent: 1 +- proto: PlushieCoffeeFox + entities: + - uid: 14990 + components: + - type: Transform + pos: 23.585608,2.4788356 + parent: 1 +- proto: PlushieLizard + entities: + - uid: 3540 + components: + - type: Transform + pos: 13.330931,46.604237 + parent: 1 + - uid: 4122 + components: + - type: Transform + pos: 7.4103127,-7.9573126 + parent: 1 + - uid: 5967 + components: + - type: Transform + pos: 8.841292,-8.085734 + parent: 1 + - uid: 5984 + components: + - type: Transform + pos: 2.535357,-10.016605 + parent: 1 + - uid: 6127 + components: + - type: Transform + pos: 7.391967,-8.507689 + parent: 1 + - uid: 6128 + components: + - type: Transform + pos: 7.8873057,-8.3976145 + parent: 1 + - uid: 6183 + components: + - type: Transform + pos: 8.566104,-8.617765 + parent: 1 + - uid: 6375 + components: + - type: Transform + pos: 9.648512,-8.342577 + parent: 1 + - uid: 6396 + components: + - type: Transform + pos: 9.703549,-7.5353575 + parent: 1 + - uid: 6397 + components: + - type: Transform + pos: 9.1531725,-7.590395 + parent: 1 + - uid: 6398 + components: + - type: Transform + pos: 8.437683,-7.4069357 + parent: 1 + - uid: 6399 + components: + - type: Transform + pos: 8.034073,-7.810546 + parent: 1 + - uid: 6400 + components: + - type: Transform + pos: 7.502042,-7.370244 + parent: 1 +- proto: PlushieNar + entities: + - uid: 6108 + components: + - type: Transform + pos: 27.45699,35.522095 + parent: 1 +- proto: PlushieSpaceLizard + entities: + - uid: 6277 + components: + - type: Transform + pos: -1.4372642,49.57904 + parent: 1 +- proto: PoppySeeds + entities: + - uid: 13296 + components: + - type: Transform + pos: -50.70141,-6.630083 + parent: 1 + - uid: 13298 + components: + - type: Transform + pos: -50.70141,-6.630083 + parent: 1 +- proto: PortableGeneratorPacman + entities: + - uid: 1736 + components: + - type: Transform + pos: -25.5,-3.5 + parent: 1 + - uid: 1971 + components: + - type: Transform + pos: -27.5,-3.5 + parent: 1 + - uid: 3394 + components: + - type: Transform + pos: -12.5,-10.5 + parent: 1 + - uid: 3395 + components: + - type: Transform + pos: -11.5,-10.5 + parent: 1 + - uid: 4413 + components: + - type: Transform + pos: -28.5,-3.5 + parent: 1 + - uid: 14824 + components: + - type: Transform + pos: -26.5,-3.5 + parent: 1 +- proto: PortableGeneratorSuperPacman + entities: + - uid: 14825 + components: + - type: Transform + pos: -24.5,-3.5 + parent: 1 + - uid: 14826 + components: + - type: Transform + pos: -24.5,-5.5 + parent: 1 + - uid: 14827 + components: + - type: Transform + pos: -25.5,-5.5 + parent: 1 + - uid: 14828 + components: + - type: Transform + pos: -26.5,-5.5 + parent: 1 + - uid: 14829 + components: + - type: Transform + pos: -27.5,-5.5 + parent: 1 + - uid: 14830 + components: + - type: Transform + pos: -28.5,-5.5 + parent: 1 +- proto: PortableScrubber + entities: + - uid: 1020 + components: + - type: Transform + pos: 10.5,14.5 + parent: 1 + - uid: 2859 + components: + - type: Transform + pos: -4.5,-2.5 + parent: 1 + - uid: 2926 + components: + - type: Transform + pos: -4.5,-4.5 + parent: 1 + - uid: 3021 + components: + - type: Transform + pos: -4.5,-3.5 + parent: 1 + - uid: 5451 + components: + - type: Transform + pos: -11.5,62.5 + parent: 1 + - uid: 13627 + components: + - type: Transform + pos: -21.5,-41.5 + parent: 1 + - uid: 15673 + components: + - type: Transform + pos: -22.5,-41.5 + parent: 1 +- proto: PosterContrabandClown + entities: + - uid: 2627 + components: + - type: Transform + pos: -35.5,4.5 + parent: 1 +- proto: PosterContrabandGreyTide + entities: + - uid: 14928 + components: + - type: Transform + pos: 55.5,7.5 + parent: 1 +- proto: PosterContrabandLamarr + entities: + - uid: 5728 + components: + - type: Transform + pos: 23.5,16.5 + parent: 1 +- proto: PosterContrabandPwrGame + entities: + - uid: 15346 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,-11.5 + parent: 1 +- proto: PosterContrabandVoteWeh + entities: + - uid: 6279 + components: + - type: Transform + pos: 9.5,-6.5 + parent: 1 +- proto: PosterContrabandWehWatches + entities: + - uid: 6075 + components: + - type: Transform + pos: 7.5,-6.5 + parent: 1 +- proto: PosterLegitCarpMount + entities: + - uid: 650 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,31.5 + parent: 1 +- proto: PosterLegitMime + entities: + - uid: 2617 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,9.5 + parent: 1 +- proto: PosterLegitNTTGC + entities: + - uid: 15345 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -48.5,-15.5 + parent: 1 +- proto: PottedPlantRandom + entities: + - uid: 248 + components: + - type: Transform + pos: -2.5,22.5 + parent: 1 + - uid: 249 + components: + - type: Transform + pos: -9.5,22.5 + parent: 1 + - uid: 397 + components: + - type: Transform + pos: -11.5,6.5 + parent: 1 + - uid: 553 + components: + - type: Transform + pos: 4.5,13.5 + parent: 1 + - uid: 632 + components: + - type: Transform + pos: 16.5,53.5 + parent: 1 + - uid: 700 + components: + - type: Transform + pos: -30.5,25.5 + parent: 1 + - uid: 851 + components: + - type: Transform + pos: 9.5,29.5 + parent: 1 + - uid: 875 + components: + - type: Transform + pos: 17.5,17.5 + parent: 1 + - uid: 952 + components: + - type: Transform + pos: -5.5,4.5 + parent: 1 + - uid: 1003 + components: + - type: Transform + pos: -1.5,32.5 + parent: 1 + - uid: 1202 + components: + - type: Transform + pos: 16.5,13.5 + parent: 1 + - uid: 1348 + components: + - type: Transform + pos: -3.5,28.5 + parent: 1 + - uid: 1376 + components: + - type: Transform + pos: -30.5,29.5 + parent: 1 + - uid: 1554 + components: + - type: Transform + pos: 8.5,3.5 + parent: 1 + - uid: 1569 + components: + - type: Transform + pos: 10.5,16.5 + parent: 1 + - uid: 1715 + components: + - type: Transform + pos: 14.5,9.5 + parent: 1 + - uid: 1747 + components: + - type: Transform + pos: 11.5,14.5 + parent: 1 + - uid: 1903 + components: + - type: Transform + pos: -20.5,14.5 + parent: 1 + - uid: 1962 + components: + - type: Transform + pos: 8.5,1.5 + parent: 1 + - uid: 2031 + components: + - type: Transform + pos: -22.5,17.5 + parent: 1 + - uid: 2037 + components: + - type: Transform + pos: -22.5,10.5 + parent: 1 + - uid: 2293 + components: + - type: Transform + pos: 2.5,1.5 + parent: 1 + - uid: 2331 + components: + - type: Transform + pos: 3.5,-2.5 + parent: 1 + - uid: 2366 + components: + - type: Transform + pos: -37.5,4.5 + parent: 1 + - uid: 2441 + components: + - type: Transform + pos: -39.5,9.5 + parent: 1 + - uid: 2474 + components: + - type: Transform + pos: -27.5,-17.5 + parent: 1 + - uid: 2533 + components: + - type: Transform + pos: -20.5,-5.5 + parent: 1 + - uid: 2583 + components: + - type: Transform + pos: -39.5,11.5 + parent: 1 + - uid: 2654 + components: + - type: Transform + pos: 9.5,65.5 + parent: 1 + - uid: 2661 + components: + - type: Transform + pos: -28.5,-10.5 + parent: 1 + - uid: 2866 + components: + - type: Transform + pos: 18.5,49.5 + parent: 1 + - uid: 3069 + components: + - type: Transform + pos: -16.5,-18.5 + parent: 1 + - uid: 3162 + components: + - type: Transform + pos: -32.5,15.5 + parent: 1 + - uid: 3608 + components: + - type: Transform + pos: 9.5,61.5 + parent: 1 + - uid: 3704 + components: + - type: Transform + pos: 15.5,41.5 + parent: 1 + - uid: 3848 + components: + - type: Transform + pos: -2.5,59.5 + parent: 1 + - uid: 3955 + components: + - type: Transform + pos: 3.5,59.5 + parent: 1 + - uid: 4085 + components: + - type: Transform + pos: 2.5,63.5 + parent: 1 + - uid: 4338 + components: + - type: Transform + pos: -11.5,58.5 + parent: 1 + - uid: 4461 + components: + - type: Transform + pos: -11.5,54.5 + parent: 1 + - uid: 4481 + components: + - type: Transform + pos: 28.5,51.5 + parent: 1 + - uid: 4484 + components: + - type: Transform + pos: 26.5,51.5 + parent: 1 + - uid: 4758 + components: + - type: Transform + pos: 4.5,45.5 + parent: 1 + - uid: 4903 + components: + - type: Transform + pos: -36.5,-4.5 + parent: 1 + - uid: 4904 + components: + - type: Transform + pos: -34.5,-4.5 + parent: 1 + - uid: 4983 + components: + - type: Transform + pos: -7.5,64.5 + parent: 1 + - uid: 5146 + components: + - type: Transform + pos: 33.5,44.5 + parent: 1 + - uid: 5160 + components: + - type: Transform + pos: 3.5,50.5 + parent: 1 + - uid: 5516 + components: + - type: Transform + pos: -13.5,18.5 + parent: 1 + - uid: 5540 + components: + - type: Transform + pos: -13.5,1.5 + parent: 1 + - uid: 6045 + components: + - type: Transform + pos: 17.5,35.5 + parent: 1 + - uid: 6212 + components: + - type: Transform + pos: -13.5,41.5 + parent: 1 + - uid: 6249 + components: + - type: Transform + pos: 21.5,35.5 + parent: 1 + - uid: 6434 + components: + - type: Transform + pos: -7.5,67.5 + parent: 1 + - uid: 6435 + components: + - type: Transform + pos: 24.5,66.5 + parent: 1 +- proto: PottedPlantRD + entities: + - uid: 1719 + components: + - type: Transform + pos: 20.5,15.5 + parent: 1 +- proto: PowerCellAntiqueProto + entities: + - uid: 14165 + components: + - type: Transform + pos: 32.506496,18.517874 + parent: 1 +- proto: PowerCellHighPrinted + entities: + - uid: 15688 + components: + - type: Transform + pos: -25.416737,-25.401882 + parent: 1 + - uid: 15689 + components: + - type: Transform + pos: -25.279629,-25.501444 + parent: 1 +- proto: PowerCellRecharger + entities: + - uid: 80 + components: + - type: Transform + pos: -19.5,32.5 + parent: 1 + - uid: 282 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,5.5 + parent: 1 + - uid: 1691 + components: + - type: Transform + pos: -16.5,14.5 + parent: 1 + - uid: 2379 + components: + - type: Transform + pos: 8.5,43.5 + parent: 1 + - uid: 3322 + components: + - type: Transform + pos: -23.5,-10.5 + parent: 1 + - uid: 3895 + components: + - type: Transform + pos: -0.5,51.5 + parent: 1 + - uid: 4720 + components: + - type: Transform + pos: 14.5,7.5 + parent: 1 + - uid: 4741 + components: + - type: Transform + pos: -17.5,-15.5 + parent: 1 + - uid: 15687 + components: + - type: Transform + pos: -25.5,-25.5 + parent: 1 +- proto: Poweredlight + entities: + - uid: 13 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,13.5 + parent: 1 + - uid: 48 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,5.5 + parent: 1 + - uid: 54 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,25.5 + parent: 1 + - uid: 60 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,34.5 + parent: 1 + - uid: 66 + components: + - type: Transform + pos: -3.5,17.5 + parent: 1 + - uid: 88 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,35.5 + parent: 1 + - uid: 90 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,61.5 + parent: 1 + - uid: 115 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,16.5 + parent: 1 + - uid: 118 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,20.5 + parent: 1 + - uid: 150 + components: + - type: Transform + pos: -11.5,-10.5 + parent: 1 + - uid: 208 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,5.5 + parent: 1 + - uid: 215 + components: + - type: Transform + pos: -25.5,42.5 + parent: 1 + - uid: 217 + components: + - type: Transform + pos: -39.5,14.5 + parent: 1 + - uid: 227 + components: + - type: Transform + pos: -6.5,34.5 + parent: 1 + - uid: 283 + components: + - type: Transform + pos: -19.5,29.5 + parent: 1 + - uid: 284 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,25.5 + parent: 1 + - uid: 322 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,11.5 + parent: 1 + - uid: 372 + components: + - type: Transform + pos: -39.5,4.5 + parent: 1 + - uid: 377 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,11.5 + parent: 1 + - uid: 392 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,13.5 + parent: 1 + - uid: 439 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,12.5 + parent: 1 + - uid: 501 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,61.5 + parent: 1 + - uid: 522 + components: + - type: Transform + pos: -17.5,35.5 + parent: 1 + - uid: 547 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,32.5 + parent: 1 + - uid: 548 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,24.5 + parent: 1 + - uid: 549 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,31.5 + parent: 1 + - uid: 567 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,41.5 + parent: 1 + - uid: 578 + components: + - type: Transform + pos: -10.5,34.5 + parent: 1 + - uid: 597 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,32.5 + parent: 1 + - uid: 598 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,32.5 + parent: 1 + - uid: 645 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,16.5 + parent: 1 + - uid: 653 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,4.5 + parent: 1 + - uid: 676 + components: + - type: Transform + pos: 23.5,52.5 + parent: 1 + - uid: 696 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,43.5 + parent: 1 + - uid: 717 + components: + - type: Transform + pos: -8.5,17.5 + parent: 1 + - uid: 739 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,56.5 + parent: 1 + - uid: 741 + components: + - type: Transform + pos: 12.5,29.5 + parent: 1 + - uid: 742 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,25.5 + parent: 1 + - uid: 776 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,15.5 + parent: 1 + - uid: 808 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,61.5 + parent: 1 + - uid: 828 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,13.5 + parent: 1 + - uid: 915 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,27.5 + parent: 1 + - uid: 918 + components: + - type: Transform + pos: -7.5,30.5 + parent: 1 + - uid: 998 + components: + - type: Transform + pos: -27.5,29.5 + parent: 1 + - uid: 1077 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,31.5 + parent: 1 + - uid: 1078 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 9.5,35.5 + parent: 1 + - uid: 1109 + components: + - type: Transform + pos: -11.5,25.5 + parent: 1 + - uid: 1122 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,19.5 + parent: 1 + - uid: 1154 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,6.5 + parent: 1 + - uid: 1160 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,25.5 + parent: 1 + - uid: 1185 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,20.5 + parent: 1 + - uid: 1212 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,31.5 + parent: 1 + - uid: 1214 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,3.5 + parent: 1 + - uid: 1217 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,24.5 + parent: 1 + - uid: 1218 + components: + - type: Transform + pos: -0.5,30.5 + parent: 1 + - uid: 1281 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,36.5 + parent: 1 + - uid: 1308 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,14.5 + parent: 1 + - uid: 1318 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,11.5 + parent: 1 + - uid: 1339 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,32.5 + parent: 1 + - uid: 1346 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,50.5 + parent: 1 + - uid: 1379 + components: + - type: Transform + pos: 7.5,3.5 + parent: 1 + - uid: 1383 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,43.5 + parent: 1 + - uid: 1409 + components: + - type: Transform + pos: 5.5,13.5 + parent: 1 + - uid: 1433 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,18.5 + parent: 1 + - uid: 1442 + components: + - type: Transform + pos: -19.5,16.5 + parent: 1 + - uid: 1477 + components: + - type: Transform + pos: 5.5,20.5 + parent: 1 + - uid: 1493 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,19.5 + parent: 1 + - uid: 1511 + components: + - type: Transform + pos: -2.5,9.5 + parent: 1 + - uid: 1527 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,16.5 + parent: 1 + - uid: 1573 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,19.5 + parent: 1 + - uid: 1577 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,20.5 + parent: 1 + - uid: 1596 + components: + - type: Transform + pos: 18.5,19.5 + parent: 1 + - uid: 1597 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,11.5 + parent: 1 + - uid: 1598 + components: + - type: Transform + pos: 16.5,15.5 + parent: 1 + - uid: 1634 + components: + - type: Transform + pos: -9.5,9.5 + parent: 1 + - uid: 1646 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,14.5 + parent: 1 + - uid: 1717 + components: + - type: Transform + pos: 25.5,17.5 + parent: 1 + - uid: 1721 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,-4.5 + parent: 1 + - uid: 1735 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,6.5 + parent: 1 + - uid: 1802 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,-0.5 + parent: 1 + - uid: 1811 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,-2.5 + parent: 1 + - uid: 1822 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,7.5 + parent: 1 + - uid: 1869 + components: + - type: Transform + pos: -39.5,9.5 + parent: 1 + - uid: 1884 + components: + - type: Transform + pos: 14.5,3.5 + parent: 1 + - uid: 1885 + components: + - type: Transform + pos: 10.5,3.5 + parent: 1 + - uid: 1942 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,3.5 + parent: 1 + - uid: 1943 + components: + - type: Transform + pos: 11.5,9.5 + parent: 1 + - uid: 1944 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,5.5 + parent: 1 + - uid: 1950 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,9.5 + parent: 1 + - uid: 2021 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,9.5 + parent: 1 + - uid: 2033 + components: + - type: Transform + pos: 24.5,47.5 + parent: 1 + - uid: 2066 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,17.5 + parent: 1 + - uid: 2071 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,-5.5 + parent: 1 + - uid: 2075 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,6.5 + parent: 1 + - uid: 2082 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,10.5 + parent: 1 + - uid: 2119 + components: + - type: Transform + pos: 18.5,9.5 + parent: 1 + - uid: 2142 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,1.5 + parent: 1 + - uid: 2159 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,41.5 + parent: 1 + - uid: 2160 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,41.5 + parent: 1 + - uid: 2249 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-20.5 + parent: 1 + - uid: 2265 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,35.5 + parent: 1 + - uid: 2269 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,21.5 + parent: 1 + - uid: 2275 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,22.5 + parent: 1 + - uid: 2469 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-8.5 + parent: 1 + - uid: 2504 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-12.5 + parent: 1 + - uid: 2529 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,61.5 + parent: 1 + - uid: 2606 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,-15.5 + parent: 1 + - uid: 2628 + components: + - type: Transform + pos: -2.5,-9.5 + parent: 1 + - uid: 2629 + components: + - type: Transform + pos: -35.5,42.5 + parent: 1 + - uid: 2672 + components: + - type: Transform + pos: 28.5,47.5 + parent: 1 + - uid: 2704 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-4.5 + parent: 1 + - uid: 2716 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,62.5 + parent: 1 + - uid: 2749 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,-14.5 + parent: 1 + - uid: 2771 + components: + - type: Transform + pos: 20.5,44.5 + parent: 1 + - uid: 2831 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,-8.5 + parent: 1 + - uid: 2871 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 14.5,48.5 + parent: 1 + - uid: 2903 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,-10.5 + parent: 1 + - uid: 2920 + components: + - type: Transform + pos: -29.5,-12.5 + parent: 1 + - uid: 2948 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,-9.5 + parent: 1 + - uid: 2988 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-20.5 + parent: 1 + - uid: 2989 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-20.5 + parent: 1 + - uid: 2990 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-20.5 + parent: 1 + - uid: 2991 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-20.5 + parent: 1 + - uid: 3024 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,0.5 + parent: 1 + - uid: 3029 + components: + - type: Transform + pos: -17.5,-2.5 + parent: 1 + - uid: 3034 + components: + - type: Transform + pos: -25.5,-2.5 + parent: 1 + - uid: 3035 + components: + - type: Transform + pos: -30.5,-2.5 + parent: 1 + - uid: 3061 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,0.5 + parent: 1 + - uid: 3062 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,0.5 + parent: 1 + - uid: 3092 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-15.5 + parent: 1 + - uid: 3183 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-7.5 + parent: 1 + - uid: 3215 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,-19.5 + parent: 1 + - uid: 3232 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,15.5 + parent: 1 + - uid: 3276 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-4.5 + parent: 1 + - uid: 3297 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,43.5 + parent: 1 + - uid: 3329 + components: + - type: Transform + pos: 7.5,45.5 + parent: 1 + - uid: 3340 + components: + - type: Transform + pos: 12.5,-7.5 + parent: 1 + - uid: 3436 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-20.5 + parent: 1 + - uid: 3437 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-20.5 + parent: 1 + - uid: 3441 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-14.5 + parent: 1 + - uid: 3454 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,51.5 + parent: 1 + - uid: 3478 + components: + - type: Transform + pos: -6.5,-2.5 + parent: 1 + - uid: 3556 + components: + - type: Transform + pos: 18.5,55.5 + parent: 1 + - uid: 3564 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,57.5 + parent: 1 + - uid: 3587 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,54.5 + parent: 1 + - uid: 3588 + components: + - type: Transform + pos: 17.5,47.5 + parent: 1 + - uid: 3598 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,42.5 + parent: 1 + - uid: 3644 + components: + - type: Transform + pos: 3.5,-9.5 + parent: 1 + - uid: 3666 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,48.5 + parent: 1 + - uid: 3693 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,36.5 + parent: 1 + - uid: 3698 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,44.5 + parent: 1 + - uid: 3728 + components: + - type: Transform + pos: 8.5,65.5 + parent: 1 + - uid: 3760 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,54.5 + parent: 1 + - uid: 3797 + components: + - type: Transform + pos: -0.5,49.5 + parent: 1 + - uid: 3798 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,36.5 + parent: 1 + - uid: 3799 + components: + - type: Transform + pos: -11.5,50.5 + parent: 1 + - uid: 3807 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,36.5 + parent: 1 + - uid: 3834 + components: + - type: Transform + pos: 2.5,59.5 + parent: 1 + - uid: 3837 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,62.5 + parent: 1 + - uid: 3838 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,59.5 + parent: 1 + - uid: 3849 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,47.5 + parent: 1 + - uid: 3879 + components: + - type: Transform + pos: -28.5,66.5 + parent: 1 + - uid: 3888 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,47.5 + parent: 1 + - uid: 3891 + components: + - type: Transform + pos: -14.5,66.5 + parent: 1 + - uid: 3983 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,52.5 + parent: 1 + - uid: 4081 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,54.5 + parent: 1 + - uid: 4128 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,28.5 + parent: 1 + - uid: 4150 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -54.5,-11.5 + parent: 1 + - uid: 4245 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,42.5 + parent: 1 + - uid: 4328 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,11.5 + parent: 1 + - uid: 4412 + components: + - type: Transform + pos: -39.5,-2.5 + parent: 1 + - uid: 4462 + components: + - type: Transform + pos: -9.5,58.5 + parent: 1 + - uid: 4466 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,43.5 + parent: 1 + - uid: 4533 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-7.5 + parent: 1 + - uid: 4550 + components: + - type: Transform + pos: -35.5,-2.5 + parent: 1 + - uid: 4559 + components: + - type: Transform + pos: 19.5,25.5 + parent: 1 + - uid: 4672 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,10.5 + parent: 1 + - uid: 4680 + components: + - type: Transform + pos: -43.5,-2.5 + parent: 1 + - uid: 4707 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,11.5 + parent: 1 + - uid: 4726 + components: + - type: Transform + pos: -4.5,50.5 + parent: 1 + - uid: 4731 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,33.5 + parent: 1 + - uid: 4746 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,33.5 + parent: 1 + - uid: 4770 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,21.5 + parent: 1 + - uid: 4799 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,11.5 + parent: 1 + - uid: 4889 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,26.5 + parent: 1 + - uid: 4961 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,29.5 + parent: 1 + - uid: 4962 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,29.5 + parent: 1 + - uid: 5047 + components: + - type: Transform + pos: 36.5,13.5 + parent: 1 + - uid: 5096 + components: + - type: Transform + pos: 1.5,67.5 + parent: 1 + - uid: 5115 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,20.5 + parent: 1 + - uid: 5153 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,47.5 + parent: 1 + - uid: 5208 + components: + - type: Transform + pos: 45.5,14.5 + parent: 1 + - uid: 5209 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,9.5 + parent: 1 + - uid: 5210 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,16.5 + parent: 1 + - uid: 5211 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,7.5 + parent: 1 + - uid: 5217 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,10.5 + parent: 1 + - uid: 5218 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,13.5 + parent: 1 + - uid: 5348 + components: + - type: Transform + pos: -29.5,42.5 + parent: 1 + - uid: 5434 + components: + - type: Transform + pos: -10.5,62.5 + parent: 1 + - uid: 5587 + components: + - type: Transform + pos: 19.5,-14.5 + parent: 1 + - uid: 5645 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,65.5 + parent: 1 + - uid: 5684 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,32.5 + parent: 1 + - uid: 5863 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,37.5 + parent: 1 + - uid: 5871 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,6.5 + parent: 1 + - uid: 5885 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,64.5 + parent: 1 + - uid: 5903 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,0.5 + parent: 1 + - uid: 5904 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,22.5 + parent: 1 + - uid: 5905 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,-3.5 + parent: 1 + - uid: 5975 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,65.5 + parent: 1 + - uid: 5983 + components: + - type: Transform + pos: 28.5,61.5 + parent: 1 + - uid: 5995 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,40.5 + parent: 1 + - uid: 5999 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,51.5 + parent: 1 + - uid: 6000 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,51.5 + parent: 1 + - uid: 6103 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,-10.5 + parent: 1 + - uid: 6113 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-17.5 + parent: 1 + - uid: 6193 + components: + - type: Transform + pos: -21.5,-22.5 + parent: 1 + - uid: 6289 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,51.5 + parent: 1 + - uid: 6323 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-23.5 + parent: 1 + - uid: 6359 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,59.5 + parent: 1 + - uid: 6367 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,51.5 + parent: 1 + - uid: 9676 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,54.5 + parent: 1 + - uid: 12391 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,12.5 + parent: 1 + - uid: 12405 + components: + - type: Transform + pos: -25.5,-22.5 + parent: 1 + - uid: 12432 + components: + - type: Transform + pos: 27.5,52.5 + parent: 1 + - uid: 12455 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -54.5,-14.5 + parent: 1 + - uid: 12491 + components: + - type: Transform + pos: -7.5,-24.5 + parent: 1 + - uid: 12651 + components: + - type: Transform + pos: 2.5,-24.5 + parent: 1 + - uid: 13319 + components: + - type: Transform + pos: -47.5,-3.5 + parent: 1 + - uid: 13320 + components: + - type: Transform + pos: -50.5,-3.5 + parent: 1 + - uid: 13382 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -46.5,-10.5 + parent: 1 + - uid: 13471 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -50.5,-7.5 + parent: 1 + - uid: 13490 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -46.5,-14.5 + parent: 1 + - uid: 14300 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,2.5 + parent: 1 + - uid: 14912 + components: + - type: Transform + pos: -5.5,43.5 + parent: 1 + - uid: 14913 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,45.5 + parent: 1 + - uid: 16099 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-27.5 + parent: 1 + - uid: 16104 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-41.5 + parent: 1 + - uid: 16105 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,-41.5 + parent: 1 + - uid: 16106 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-41.5 + parent: 1 + - uid: 16107 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,-41.5 + parent: 1 + - uid: 16108 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-35.5 + parent: 1 + - uid: 16109 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-35.5 + parent: 1 + - uid: 16110 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-34.5 + parent: 1 + - uid: 16111 + components: + - type: Transform + pos: -32.5,-30.5 + parent: 1 + - uid: 16112 + components: + - type: Transform + pos: -34.5,-30.5 + parent: 1 + - uid: 16113 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-34.5 + parent: 1 + - uid: 16114 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-29.5 + parent: 1 + - uid: 16115 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-25.5 + parent: 1 + - uid: 16270 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,-30.5 + parent: 1 + - uid: 16271 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,-29.5 + parent: 1 + - uid: 16272 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,-35.5 + parent: 1 + - uid: 16273 + components: + - type: Transform + pos: -21.5,-37.5 + parent: 1 + - uid: 16274 + components: + - type: Transform + pos: -18.5,-37.5 + parent: 1 + - uid: 16275 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-35.5 + parent: 1 + - uid: 16276 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-30.5 + parent: 1 + - uid: 16277 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,-29.5 + parent: 1 + - uid: 16278 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-29.5 + parent: 1 + - uid: 16279 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-33.5 + parent: 1 + - uid: 16280 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-29.5 + parent: 1 + - uid: 16281 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-33.5 + parent: 1 + - uid: 16282 + components: + - type: Transform + pos: -15.5,-22.5 + parent: 1 + - uid: 16283 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,-24.5 + parent: 1 + - uid: 16485 + components: + - type: Transform + pos: -31.5,56.5 + parent: 1 + - uid: 16486 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,54.5 + parent: 1 + - uid: 16487 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,54.5 + parent: 1 + - uid: 16488 + components: + - type: Transform + pos: -39.5,56.5 + parent: 1 + - uid: 16489 + components: + - type: Transform + pos: -49.5,56.5 + parent: 1 + - uid: 16490 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -49.5,54.5 + parent: 1 +- proto: PoweredSmallLight + entities: + - uid: 325 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,1.5 + parent: 1 + - uid: 770 + components: + - type: Transform + pos: -33.5,28.5 + parent: 1 + - uid: 13931 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,-13.5 + parent: 1 + - uid: 14371 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,18.5 + parent: 1 + - uid: 14372 + components: + - type: Transform + pos: -38.5,17.5 + parent: 1 + - uid: 14374 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,16.5 + parent: 1 + - uid: 14375 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,16.5 + parent: 1 + - uid: 14376 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,14.5 + parent: 1 + - uid: 14377 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -46.5,8.5 + parent: 1 + - uid: 14378 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,5.5 + parent: 1 + - uid: 14379 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,1.5 + parent: 1 + - uid: 14380 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,0.5 + parent: 1 + - uid: 14382 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -47.5,0.5 + parent: 1 + - uid: 14386 + components: + - type: Transform + pos: -38.5,-14.5 + parent: 1 + - uid: 14387 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,-14.5 + parent: 1 + - uid: 14388 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-18.5 + parent: 1 + - uid: 14389 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-19.5 + parent: 1 + - uid: 14397 + components: + - type: Transform + pos: -33.5,-21.5 + parent: 1 + - uid: 14400 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-19.5 + parent: 1 + - uid: 14401 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,-20.5 + parent: 1 + - uid: 14421 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 38.5,46.5 + parent: 1 + - uid: 14422 + components: + - type: Transform + pos: 11.5,-17.5 + parent: 1 + - uid: 14423 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,-15.5 + parent: 1 + - uid: 14424 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-16.5 + parent: 1 + - uid: 14425 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-15.5 + parent: 1 + - uid: 14426 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,-18.5 + parent: 1 + - uid: 14427 + components: + - type: Transform + pos: 10.5,-12.5 + parent: 1 + - uid: 14428 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,-12.5 + parent: 1 + - uid: 14429 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-21.5 + parent: 1 + - uid: 14432 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,-23.5 + parent: 1 + - uid: 14433 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,-24.5 + parent: 1 + - uid: 14434 + components: + - type: Transform + pos: 21.5,-25.5 + parent: 1 + - uid: 14435 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,-24.5 + parent: 1 + - uid: 14436 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,-2.5 + parent: 1 + - uid: 14437 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,-15.5 + parent: 1 + - uid: 14438 + components: + - type: Transform + pos: 32.5,-3.5 + parent: 1 + - uid: 14439 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-1.5 + parent: 1 + - uid: 14440 + components: + - type: Transform + pos: 32.5,-14.5 + parent: 1 + - uid: 14441 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,3.5 + parent: 1 + - uid: 14442 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-12.5 + parent: 1 + - uid: 14443 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,-13.5 + parent: 1 + - uid: 14444 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,-7.5 + parent: 1 + - uid: 14445 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,-11.5 + parent: 1 + - uid: 14446 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,1.5 + parent: 1 + - uid: 14447 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,0.5 + parent: 1 + - uid: 14448 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,-2.5 + parent: 1 + - uid: 14451 + components: + - type: Transform + pos: 51.5,1.5 + parent: 1 + - uid: 14452 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,1.5 + parent: 1 + - uid: 14454 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,3.5 + parent: 1 + - uid: 14455 + components: + - type: Transform + pos: 49.5,5.5 + parent: 1 + - uid: 14456 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 53.5,14.5 + parent: 1 + - uid: 14457 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 52.5,7.5 + parent: 1 + - uid: 14458 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 52.5,16.5 + parent: 1 + - uid: 14459 + components: + - type: Transform + pos: 53.5,20.5 + parent: 1 + - uid: 14460 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,20.5 + parent: 1 + - uid: 14461 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 49.5,18.5 + parent: 1 + - uid: 14462 + components: + - type: Transform + pos: 36.5,20.5 + parent: 1 + - uid: 14463 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,21.5 + parent: 1 + - uid: 14464 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,17.5 + parent: 1 + - uid: 14465 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,41.5 + parent: 1 + - uid: 14466 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 38.5,33.5 + parent: 1 + - uid: 14469 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,56.5 + parent: 1 + - uid: 14470 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,46.5 + parent: 1 + - uid: 14471 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,52.5 + parent: 1 + - uid: 14472 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,61.5 + parent: 1 + - uid: 14473 + components: + - type: Transform + pos: 18.5,73.5 + parent: 1 + - uid: 14474 + components: + - type: Transform + pos: 27.5,70.5 + parent: 1 + - uid: 14475 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,65.5 + parent: 1 + - uid: 14476 + components: + - type: Transform + pos: 30.5,64.5 + parent: 1 + - uid: 14477 + components: + - type: Transform + pos: 14.5,73.5 + parent: 1 + - uid: 14478 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,68.5 + parent: 1 + - uid: 14479 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,70.5 + parent: 1 + - uid: 14480 + components: + - type: Transform + pos: 9.5,73.5 + parent: 1 + - uid: 14481 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,73.5 + parent: 1 + - uid: 14482 + components: + - type: Transform + pos: -8.5,71.5 + parent: 1 + - uid: 14483 + components: + - type: Transform + pos: -0.5,71.5 + parent: 1 + - uid: 14484 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,68.5 + parent: 1 + - uid: 14501 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,67.5 + parent: 1 + - uid: 16321 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,-26.5 + parent: 1 + - uid: 16322 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,-29.5 + parent: 1 + - uid: 16323 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,-34.5 + parent: 1 + - uid: 16324 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-39.5 + parent: 1 + - uid: 16325 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-38.5 + parent: 1 + - uid: 16327 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -43.5,-14.5 + parent: 1 + - uid: 16472 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-26.5 + parent: 1 + - uid: 16473 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,-30.5 + parent: 1 + - uid: 16474 + components: + - type: Transform + pos: 5.5,-29.5 + parent: 1 + - uid: 16475 + components: + - type: Transform + pos: 0.5,-30.5 + parent: 1 + - uid: 16476 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-35.5 + parent: 1 + - uid: 16477 + components: + - type: Transform + pos: -6.5,-38.5 + parent: 1 + - uid: 16478 + components: + - type: Transform + pos: -0.5,-38.5 + parent: 1 +- proto: PressureControlledValve + entities: + - uid: 14405 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-41.5 + parent: 1 + - type: AtmosPipeColor + color: '#FF0000FF' +- proto: Protolathe + entities: + - uid: 451 + components: + - type: Transform + pos: 18.5,11.5 + parent: 1 + - uid: 2020 + components: + - type: Transform + pos: -13.5,-15.5 + parent: 1 + - uid: 15654 + components: + - type: Transform + pos: -15.5,-41.5 + parent: 1 +- proto: Rack + entities: + - uid: 181 + components: + - type: Transform + pos: -26.5,31.5 + parent: 1 + - uid: 236 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,32.5 + parent: 1 + - uid: 296 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,21.5 + parent: 1 + - uid: 486 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,32.5 + parent: 1 + - uid: 646 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,3.5 + parent: 1 + - uid: 683 + components: + - type: Transform + pos: 10.5,20.5 + parent: 1 + - uid: 688 + components: + - type: Transform + pos: 11.5,8.5 + parent: 1 + - uid: 995 + components: + - type: Transform + pos: -10.5,25.5 + parent: 1 + - uid: 1331 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,21.5 + parent: 1 + - uid: 1474 + components: + - type: Transform + pos: 18.5,19.5 + parent: 1 + - uid: 1486 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,14.5 + parent: 1 + - uid: 1542 + components: + - type: Transform + pos: 17.5,19.5 + parent: 1 + - uid: 1613 + components: + - type: Transform + pos: 11.5,9.5 + parent: 1 + - uid: 1816 + components: + - type: Transform + pos: 12.5,15.5 + parent: 1 + - uid: 1933 + components: + - type: Transform + pos: 26.5,16.5 + parent: 1 + - uid: 2236 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,3.5 + parent: 1 + - uid: 2237 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,3.5 + parent: 1 + - uid: 2344 + components: + - type: Transform + pos: -39.5,4.5 + parent: 1 + - uid: 2693 + components: + - type: Transform + pos: -36.5,11.5 + parent: 1 + - uid: 2697 + components: + - type: Transform + pos: 14.5,48.5 + parent: 1 + - uid: 2778 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-0.5 + parent: 1 + - uid: 2971 + components: + - type: Transform + pos: -22.5,-2.5 + parent: 1 + - uid: 3345 + components: + - type: Transform + pos: 10.5,65.5 + parent: 1 + - uid: 3809 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,49.5 + parent: 1 + - uid: 3810 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,49.5 + parent: 1 + - uid: 3811 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,49.5 + parent: 1 + - uid: 3900 + components: + - type: Transform + pos: -1.5,53.5 + parent: 1 + - uid: 4020 + components: + - type: Transform + pos: -9.5,-6.5 + parent: 1 + - uid: 4037 + components: + - type: Transform + pos: -2.5,6.5 + parent: 1 + - uid: 4045 + components: + - type: Transform + pos: -17.5,-18.5 + parent: 1 + - uid: 4091 + components: + - type: Transform + pos: 20.5,55.5 + parent: 1 + - uid: 4107 + components: + - type: Transform + pos: -20.5,16.5 + parent: 1 + - uid: 4829 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,42.5 + parent: 1 + - uid: 4982 + components: + - type: Transform + pos: -42.5,-8.5 + parent: 1 + - uid: 5045 + components: + - type: Transform + pos: 36.5,13.5 + parent: 1 + - uid: 5069 + components: + - type: Transform + pos: 19.5,9.5 + parent: 1 + - uid: 5086 + components: + - type: Transform + pos: 36.5,10.5 + parent: 1 + - uid: 5118 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,42.5 + parent: 1 + - uid: 5137 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,27.5 + parent: 1 + - uid: 5255 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,17.5 + parent: 1 + - uid: 5312 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,27.5 + parent: 1 + - uid: 5362 + components: + - type: Transform + pos: -28.5,38.5 + parent: 1 + - uid: 5375 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,61.5 + parent: 1 + - uid: 5380 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,42.5 + parent: 1 + - uid: 5417 + components: + - type: Transform + pos: 23.5,23.5 + parent: 1 + - uid: 5598 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,49.5 + parent: 1 + - uid: 5957 + components: + - type: Transform + pos: 28.5,30.5 + parent: 1 + - uid: 5994 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,45.5 + parent: 1 + - uid: 5996 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,45.5 + parent: 1 + - uid: 6095 + components: + - type: Transform + pos: 21.5,-10.5 + parent: 1 + - uid: 6107 + components: + - type: Transform + pos: 25.5,30.5 + parent: 1 + - uid: 6151 + components: + - type: Transform + pos: -5.5,67.5 + parent: 1 + - uid: 6247 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,60.5 + parent: 1 + - uid: 6293 + components: + - type: Transform + pos: 4.5,66.5 + parent: 1 + - uid: 10356 + components: + - type: Transform + pos: -9.5,58.5 + parent: 1 + - uid: 12551 + components: + - type: Transform + pos: -16.5,-12.5 + parent: 1 + - uid: 12554 + components: + - type: Transform + pos: -15.5,-12.5 + parent: 1 + - uid: 12571 + components: + - type: Transform + pos: -10.5,-6.5 + parent: 1 + - uid: 15328 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -50.5,-6.5 + parent: 1 + - uid: 15329 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -50.5,-5.5 + parent: 1 + - uid: 15617 + components: + - type: Transform + pos: -30.5,-41.5 + parent: 1 + - uid: 15618 + components: + - type: Transform + pos: -30.5,-40.5 + parent: 1 + - uid: 15656 + components: + - type: Transform + pos: -17.5,-41.5 + parent: 1 +- proto: RadiationCollectorNoTank + entities: + - uid: 13422 + components: + - type: Transform + pos: -21.5,-35.5 + parent: 1 + - uid: 13423 + components: + - type: Transform + pos: -22.5,-32.5 + parent: 1 + - uid: 13424 + components: + - type: Transform + pos: -19.5,-35.5 + parent: 1 + - uid: 13430 + components: + - type: Transform + pos: -22.5,-34.5 + parent: 1 + - uid: 13437 + components: + - type: Transform + pos: -22.5,-33.5 + parent: 1 + - uid: 13438 + components: + - type: Transform + pos: -18.5,-34.5 + parent: 1 + - uid: 13439 + components: + - type: Transform + pos: -18.5,-33.5 + parent: 1 + - uid: 13474 + components: + - type: Transform + pos: -18.5,-32.5 + parent: 1 + - uid: 13488 + components: + - type: Transform + pos: -19.5,-31.5 + parent: 1 + - uid: 13489 + components: + - type: Transform + pos: -21.5,-31.5 + parent: 1 +- proto: RadioHandheld + entities: + - uid: 5369 + components: + - type: Transform + rot: 18.84955592153876 rad + pos: 45.797817,11.780398 + parent: 1 + - type: RadioMicrophone + enabled: True + - type: RadioSpeaker + enabled: True + - type: ActiveListener + range: 4 + - type: ActiveRadio + channels: + - Handheld +- proto: Railing + entities: + - uid: 16407 + components: + - type: Transform + pos: -4.5,-42.5 + parent: 1 +- proto: RailingCorner + entities: + - uid: 16395 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-41.5 + parent: 1 + - uid: 16397 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-42.5 + parent: 1 + - uid: 16398 + components: + - type: Transform + pos: -3.5,-42.5 + parent: 1 + - uid: 16403 + components: + - type: Transform + pos: 0.5,-38.5 + parent: 1 + - uid: 16404 + components: + - type: Transform + pos: -0.5,-39.5 + parent: 1 + - uid: 16405 + components: + - type: Transform + pos: -1.5,-40.5 + parent: 1 + - uid: 16406 + components: + - type: Transform + pos: -2.5,-41.5 + parent: 1 +- proto: RailingCornerSmall + entities: + - uid: 16396 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-41.5 + parent: 1 + - uid: 16399 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-41.5 + parent: 1 + - uid: 16400 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-40.5 + parent: 1 + - uid: 16401 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-39.5 + parent: 1 + - uid: 16402 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-38.5 + parent: 1 + - uid: 16408 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-40.5 + parent: 1 +- proto: RandomArcade + entities: + - uid: 6105 + components: + - type: Transform + pos: -8.5,67.5 + parent: 1 + - uid: 6355 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,64.5 + parent: 1 + - uid: 6386 + components: + - type: Transform + pos: -9.5,67.5 + parent: 1 + - uid: 6387 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,64.5 + parent: 1 + - uid: 6388 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,64.5 + parent: 1 +- proto: RandomArtifactSpawner + entities: + - uid: 1666 + components: + - type: Transform + pos: 13.5,18.5 + parent: 1 +- proto: RandomArtifactSpawner20 + entities: + - uid: 14917 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,-19.5 + parent: 1 + - uid: 14918 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,24.5 + parent: 1 + - uid: 14919 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,-18.5 + parent: 1 +- proto: RandomBoard + entities: + - uid: 15487 + components: + - type: Transform + pos: 36.5,13.5 + parent: 1 + - uid: 15488 + components: + - type: Transform + pos: 36.5,13.5 + parent: 1 + - uid: 15489 + components: + - type: Transform + pos: 36.5,13.5 + parent: 1 + - uid: 15490 + components: + - type: Transform + pos: 36.5,10.5 + parent: 1 + - uid: 15491 + components: + - type: Transform + pos: 36.5,10.5 + parent: 1 + - uid: 15492 + components: + - type: Transform + pos: 36.5,10.5 + parent: 1 +- proto: RandomBoards + entities: + - uid: 15493 + components: + - type: Transform + pos: 36.5,10.5 + parent: 1 + - uid: 15494 + components: + - type: Transform + pos: 36.5,10.5 + parent: 1 + - uid: 15495 + components: + - type: Transform + pos: 36.5,10.5 + parent: 1 + - uid: 15496 + components: + - type: Transform + pos: 36.5,13.5 + parent: 1 + - uid: 15497 + components: + - type: Transform + pos: 36.5,13.5 + parent: 1 + - uid: 15498 + components: + - type: Transform + pos: 36.5,13.5 + parent: 1 +- proto: RandomDrinkBottle + entities: + - uid: 526 + components: + - type: Transform + pos: -6.5,27.5 + parent: 1 + - uid: 5161 + components: + - type: Transform + pos: -17.5,47.5 + parent: 1 + - uid: 6431 + components: + - type: Transform + pos: 24.5,4.5 + parent: 1 + - uid: 14295 + components: + - type: Transform + pos: 24.5,4.5 + parent: 1 +- proto: RandomDrinkGlass + entities: + - uid: 123 + components: + - type: Transform + pos: -4.5,27.5 + parent: 1 + - uid: 647 + components: + - type: Transform + pos: -3.5,27.5 + parent: 1 + - uid: 4218 + components: + - type: Transform + pos: -25.5,49.5 + parent: 1 +- proto: RandomFoodMeal + entities: + - uid: 109 + components: + - type: Transform + pos: -19.5,27.5 + parent: 1 + - uid: 4396 + components: + - type: Transform + pos: 1.5,33.5 + parent: 1 + - uid: 5370 + components: + - type: Transform + pos: -21.5,47.5 + parent: 1 + - uid: 5465 + components: + - type: Transform + pos: -17.5,49.5 + parent: 1 + - uid: 6007 + components: + - type: Transform + pos: 21.5,3.5 + parent: 1 + - uid: 6097 + components: + - type: Transform + pos: 21.5,3.5 + parent: 1 +- proto: RandomFoodSingle + entities: + - uid: 4443 + components: + - type: Transform + pos: -5.5,18.5 + parent: 1 +- proto: RandomPosterContraband + entities: + - uid: 5930 + components: + - type: Transform + pos: -6.5,59.5 + parent: 1 + - uid: 5966 + components: + - type: Transform + pos: -29.5,21.5 + parent: 1 + - uid: 5977 + components: + - type: Transform + pos: 6.5,49.5 + parent: 1 + - uid: 5992 + components: + - type: Transform + pos: -6.5,53.5 + parent: 1 + - uid: 6149 + components: + - type: Transform + pos: 15.5,-3.5 + parent: 1 + - uid: 6152 + components: + - type: Transform + pos: -19.5,1.5 + parent: 1 + - uid: 6195 + components: + - type: Transform + pos: 26.5,62.5 + parent: 1 + - uid: 6203 + components: + - type: Transform + pos: 24.5,26.5 + parent: 1 + - uid: 6321 + components: + - type: Transform + pos: 30.5,9.5 + parent: 1 + - uid: 6343 + components: + - type: Transform + pos: -32.5,2.5 + parent: 1 + - uid: 6410 + components: + - type: Transform + pos: 19.5,4.5 + parent: 1 + - uid: 6429 + components: + - type: Transform + pos: 10.5,38.5 + parent: 1 + - uid: 6447 + components: + - type: Transform + pos: -31.5,35.5 + parent: 1 + - uid: 6457 + components: + - type: Transform + pos: 16.5,59.5 + parent: 1 + - uid: 6458 + components: + - type: Transform + pos: 9.5,68.5 + parent: 1 + - uid: 6491 + components: + - type: Transform + pos: 23.5,58.5 + parent: 1 + - uid: 6492 + components: + - type: Transform + pos: 27.5,18.5 + parent: 1 + - uid: 6499 + components: + - type: Transform + pos: 22.5,40.5 + parent: 1 + - uid: 6502 + components: + - type: Transform + pos: -31.5,19.5 + parent: 1 + - uid: 6503 + components: + - type: Transform + pos: 3.5,66.5 + parent: 1 + - uid: 6504 + components: + - type: Transform + pos: 19.5,3.5 + parent: 1 + - uid: 6510 + components: + - type: Transform + pos: 26.5,55.5 + parent: 1 + - uid: 6513 + components: + - type: Transform + pos: 29.5,32.5 + parent: 1 + - uid: 6514 + components: + - type: Transform + pos: 29.5,33.5 + parent: 1 + - uid: 6533 + components: + - type: Transform + pos: -20.5,1.5 + parent: 1 + - uid: 6534 + components: + - type: Transform + pos: -27.5,43.5 + parent: 1 + - uid: 6535 + components: + - type: Transform + pos: -30.5,39.5 + parent: 1 + - uid: 6536 + components: + - type: Transform + pos: -29.5,39.5 + parent: 1 + - uid: 9876 + components: + - type: Transform + pos: 13.5,22.5 + parent: 1 + - uid: 15355 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,-2.5 + parent: 1 + - uid: 15356 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,-1.5 + parent: 1 + - uid: 15357 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-2.5 + parent: 1 + - uid: 15358 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-1.5 + parent: 1 + - uid: 15359 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,-2.5 + parent: 1 +- proto: RandomPosterLegit + entities: + - uid: 651 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,30.5 + parent: 1 + - uid: 1057 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,7.5 + parent: 1 + - uid: 1190 + components: + - type: Transform + pos: 4.5,30.5 + parent: 1 + - uid: 1589 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,7.5 + parent: 1 + - uid: 4516 + components: + - type: Transform + pos: -2.5,11.5 + parent: 1 + - uid: 4593 + components: + - type: Transform + pos: 6.5,50.5 + parent: 1 + - uid: 5422 + components: + - type: Transform + pos: -17.5,-0.5 + parent: 1 + - uid: 5539 + components: + - type: Transform + pos: 6.5,14.5 + parent: 1 + - uid: 5718 + components: + - type: Transform + pos: -17.5,0.5 + parent: 1 + - uid: 5902 + components: + - type: Transform + pos: 0.5,48.5 + parent: 1 + - uid: 5938 + components: + - type: Transform + pos: -6.5,65.5 + parent: 1 + - uid: 5974 + components: + - type: Transform + pos: 16.5,64.5 + parent: 1 + - uid: 6030 + components: + - type: Transform + pos: -29.5,-10.5 + parent: 1 + - uid: 6092 + components: + - type: Transform + pos: 29.5,51.5 + parent: 1 + - uid: 6130 + components: + - type: Transform + pos: 21.5,26.5 + parent: 1 + - uid: 6144 + components: + - type: Transform + pos: -23.5,-11.5 + parent: 1 + - uid: 6204 + components: + - type: Transform + pos: 11.5,-3.5 + parent: 1 + - uid: 6265 + components: + - type: Transform + pos: 16.5,4.5 + parent: 1 + - uid: 6269 + components: + - type: Transform + pos: -22.5,26.5 + parent: 1 + - uid: 6274 + components: + - type: Transform + pos: -20.5,-6.5 + parent: 1 + - uid: 6286 + components: + - type: Transform + pos: 30.5,41.5 + parent: 1 + - uid: 6290 + components: + - type: Transform + pos: -6.5,56.5 + parent: 1 + - uid: 6348 + components: + - type: Transform + pos: -29.5,30.5 + parent: 1 + - uid: 6366 + components: + - type: Transform + pos: -6.5,55.5 + parent: 1 + - uid: 6369 + components: + - type: Transform + pos: 5.5,21.5 + parent: 1 + - uid: 6373 + components: + - type: Transform + pos: -4.5,34.5 + parent: 1 + - uid: 6401 + components: + - type: Transform + pos: 29.5,24.5 + parent: 1 + - uid: 6412 + components: + - type: Transform + pos: -35.5,11.5 + parent: 1 + - uid: 6430 + components: + - type: Transform + pos: -12.5,46.5 + parent: 1 + - uid: 6444 + components: + - type: Transform + pos: 15.5,10.5 + parent: 1 + - uid: 6445 + components: + - type: Transform + pos: 7.5,55.5 + parent: 1 + - uid: 6446 + components: + - type: Transform + pos: 8.5,52.5 + parent: 1 + - uid: 6451 + components: + - type: Transform + pos: 20.5,26.5 + parent: 1 + - uid: 6476 + components: + - type: Transform + pos: 19.5,7.5 + parent: 1 + - uid: 6486 + components: + - type: Transform + pos: 16.5,10.5 + parent: 1 + - uid: 6489 + components: + - type: Transform + pos: -12.5,16.5 + parent: 1 + - uid: 6495 + components: + - type: Transform + pos: 23.5,18.5 + parent: 1 + - uid: 6496 + components: + - type: Transform + pos: 16.5,63.5 + parent: 1 + - uid: 6500 + components: + - type: Transform + pos: -12.5,5.5 + parent: 1 + - uid: 6501 + components: + - type: Transform + pos: -12.5,4.5 + parent: 1 + - uid: 6505 + components: + - type: Transform + pos: 22.5,36.5 + parent: 1 + - uid: 6506 + components: + - type: Transform + pos: 3.5,64.5 + parent: 1 + - uid: 6507 + components: + - type: Transform + pos: 9.5,66.5 + parent: 1 + - uid: 6508 + components: + - type: Transform + pos: 8.5,66.5 + parent: 1 + - uid: 6509 + components: + - type: Transform + pos: 18.5,56.5 + parent: 1 + - uid: 6518 + components: + - type: Transform + pos: 0.5,47.5 + parent: 1 + - uid: 6519 + components: + - type: Transform + pos: -14.5,67.5 + parent: 1 + - uid: 6520 + components: + - type: Transform + pos: -28.5,67.5 + parent: 1 + - uid: 6521 + components: + - type: Transform + pos: -26.5,1.5 + parent: 1 + - uid: 6525 + components: + - type: Transform + pos: -12.5,29.5 + parent: 1 + - uid: 6526 + components: + - type: Transform + pos: -12.5,28.5 + parent: 1 + - uid: 6527 + components: + - type: Transform + pos: -12.5,45.5 + parent: 1 + - uid: 6528 + components: + - type: Transform + pos: -16.5,51.5 + parent: 1 + - uid: 6530 + components: + - type: Transform + pos: -26.5,51.5 + parent: 1 + - uid: 9138 + components: + - type: Transform + pos: 14.5,22.5 + parent: 1 + - uid: 10156 + components: + - type: Transform + pos: 0.5,17.5 + parent: 1 + - uid: 15252 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,57.5 + parent: 1 + - uid: 15255 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,57.5 + parent: 1 + - uid: 15256 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,53.5 + parent: 1 + - uid: 15257 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,53.5 + parent: 1 + - uid: 15258 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -49.5,57.5 + parent: 1 + - uid: 15259 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -49.5,53.5 + parent: 1 + - uid: 15347 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-4.5 + parent: 1 + - uid: 15348 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,-10.5 + parent: 1 + - uid: 15349 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -46.5,-4.5 + parent: 1 + - uid: 15350 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-7.5 + parent: 1 + - uid: 15351 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -49.5,-2.5 + parent: 1 + - uid: 15352 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -54.5,-10.5 + parent: 1 + - uid: 15353 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -55.5,-13.5 + parent: 1 + - uid: 15354 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -52.5,-15.5 + parent: 1 +- proto: RandomSnacks + entities: + - uid: 5562 + components: + - type: Transform + pos: -25.5,47.5 + parent: 1 +- proto: RandomSpawner + entities: + - uid: 264 + components: + - type: Transform + pos: -13.5,58.5 + parent: 1 + - uid: 4743 + components: + - type: Transform + pos: 13.5,12.5 + parent: 1 + - uid: 4934 + components: + - type: Transform + pos: 6.5,29.5 + parent: 1 + - uid: 5112 + components: + - type: Transform + pos: -18.5,28.5 + parent: 1 + - uid: 5113 + components: + - type: Transform + pos: 2.5,57.5 + parent: 1 + - uid: 5114 + components: + - type: Transform + pos: -28.5,28.5 + parent: 1 + - uid: 5156 + components: + - type: Transform + pos: -7.5,6.5 + parent: 1 + - uid: 5480 + components: + - type: Transform + pos: 14.5,1.5 + parent: 1 + - uid: 5524 + components: + - type: Transform + pos: -20.5,-10.5 + parent: 1 + - uid: 5527 + components: + - type: Transform + pos: -24.5,18.5 + parent: 1 + - uid: 5586 + components: + - type: Transform + pos: -6.5,-10.5 + parent: 1 + - uid: 5632 + components: + - type: Transform + pos: -28.5,62.5 + parent: 1 + - uid: 5668 + components: + - type: Transform + pos: -2.5,45.5 + parent: 1 + - uid: 5669 + components: + - type: Transform + pos: 1.5,27.5 + parent: 1 + - uid: 5708 + components: + - type: Transform + pos: -14.5,18.5 + parent: 1 + - uid: 5781 + components: + - type: Transform + pos: 2.5,17.5 + parent: 1 + - uid: 5823 + components: + - type: Transform + pos: -10.5,18.5 + parent: 1 + - uid: 5846 + components: + - type: Transform + pos: -15.5,34.5 + parent: 1 + - uid: 5850 + components: + - type: Transform + pos: -14.5,47.5 + parent: 1 + - uid: 15202 + components: + - type: Transform + pos: -34.5,56.5 + parent: 1 + - uid: 15244 + components: + - type: Transform + pos: -33.5,55.5 + parent: 1 + - uid: 15245 + components: + - type: Transform + pos: -46.5,54.5 + parent: 1 + - uid: 15246 + components: + - type: Transform + pos: -49.5,55.5 + parent: 1 + - uid: 15247 + components: + - type: Transform + pos: -46.5,56.5 + parent: 1 + - uid: 15248 + components: + - type: Transform + pos: -37.5,54.5 + parent: 1 +- proto: RandomVendingDrinks + entities: + - uid: 605 + components: + - type: Transform + pos: -9.5,25.5 + parent: 1 + - uid: 1076 + components: + - type: Transform + pos: -18.5,29.5 + parent: 1 + - uid: 2112 + components: + - type: Transform + pos: -21.5,-12.5 + parent: 1 + - uid: 2365 + components: + - type: Transform + pos: 13.5,56.5 + parent: 1 + - uid: 3821 + components: + - type: Transform + pos: -2.5,55.5 + parent: 1 + - uid: 5061 + components: + - type: Transform + pos: -4.5,57.5 + parent: 1 + - uid: 5099 + components: + - type: Transform + pos: -16.5,2.5 + parent: 1 + - uid: 6150 + components: + - type: Transform + pos: -23.5,-0.5 + parent: 1 + - uid: 6199 + components: + - type: Transform + pos: 21.5,60.5 + parent: 1 + - uid: 14298 + components: + - type: Transform + pos: 20.5,6.5 + parent: 1 + - uid: 15932 + components: + - type: Transform + pos: -50.5,-8.5 + parent: 1 +- proto: RandomVendingSnacks + entities: + - uid: 3 + components: + - type: Transform + pos: 14.5,8.5 + parent: 1 + - uid: 29 + components: + - type: Transform + pos: -17.5,29.5 + parent: 1 + - uid: 1161 + components: + - type: Transform + pos: -8.5,25.5 + parent: 1 + - uid: 2478 + components: + - type: Transform + pos: -22.5,-12.5 + parent: 1 + - uid: 2884 + components: + - type: Transform + pos: 14.5,56.5 + parent: 1 + - uid: 3954 + components: + - type: Transform + pos: -2.5,56.5 + parent: 1 + - uid: 4809 + components: + - type: Transform + pos: -16.5,3.5 + parent: 1 + - uid: 6040 + components: + - type: Transform + pos: 23.5,9.5 + parent: 1 + - uid: 6198 + components: + - type: Transform + pos: 20.5,60.5 + parent: 1 + - uid: 6304 + components: + - type: Transform + pos: -18.5,45.5 + parent: 1 + - uid: 14296 + components: + - type: Transform + pos: 21.5,6.5 + parent: 1 + - uid: 15933 + components: + - type: Transform + pos: -50.5,-9.5 + parent: 1 +- proto: RCD + entities: + - uid: 3316 + components: + - type: Transform + pos: -20.513548,-18.817688 + parent: 1 +- proto: RCDAmmo + entities: + - uid: 3317 + components: + - type: Transform + pos: -20.525778,-19.001146 + parent: 1 + - uid: 3318 + components: + - type: Transform + pos: -20.733698,-19.001146 + parent: 1 +- proto: ReagentContainerFlour + entities: + - uid: 126 + components: + - type: Transform + pos: 7.5712824,34.76903 + parent: 1 +- proto: ReagentContainerSugar + entities: + - uid: 18 + components: + - type: Transform + pos: 7.6181574,34.378407 + parent: 1 +- proto: Recycler + entities: + - uid: 5611 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,58.5 + parent: 1 +- proto: ReinforcedGirder + entities: + - uid: 2009 + components: + - type: Transform + pos: 3.5,2.5 + parent: 1 + - uid: 2045 + components: + - type: Transform + pos: 0.5,15.5 + parent: 1 + - uid: 2211 + components: + - type: Transform + pos: 6.5,-2.5 + parent: 1 + - uid: 2468 + components: + - type: Transform + pos: -27.5,15.5 + parent: 1 + - uid: 2541 + components: + - type: Transform + pos: 16.5,17.5 + parent: 1 + - uid: 2610 + components: + - type: Transform + pos: 21.5,13.5 + parent: 1 + - uid: 2769 + components: + - type: Transform + pos: 29.5,10.5 + parent: 1 + - uid: 2819 + components: + - type: Transform + pos: -1.5,0.5 + parent: 1 + - uid: 2857 + components: + - type: Transform + pos: 17.5,45.5 + parent: 1 + - uid: 3334 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -46.5,-16.5 + parent: 1 + - uid: 3344 + components: + - type: Transform + pos: -10.5,-21.5 + parent: 1 + - uid: 3383 + components: + - type: Transform + pos: -17.5,-6.5 + parent: 1 + - uid: 3400 + components: + - type: Transform + pos: 19.5,26.5 + parent: 1 + - uid: 3448 + components: + - type: Transform + pos: -32.5,-18.5 + parent: 1 + - uid: 3756 + components: + - type: Transform + pos: 29.5,39.5 + parent: 1 + - uid: 3938 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -56.5,-16.5 + parent: 1 + - uid: 4038 + components: + - type: Transform + pos: 30.5,62.5 + parent: 1 + - uid: 4130 + components: + - type: Transform + pos: -9.5,-5.5 + parent: 1 + - uid: 4240 + components: + - type: Transform + pos: -12.5,67.5 + parent: 1 + - uid: 4249 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -53.5,-8.5 + parent: 1 + - uid: 4517 + components: + - type: Transform + pos: -26.5,67.5 + parent: 1 + - uid: 4702 + components: + - type: Transform + pos: -36.5,-1.5 + parent: 1 + - uid: 4711 + components: + - type: Transform + pos: -43.5,-1.5 + parent: 1 + - uid: 5012 + components: + - type: Transform + pos: -46.5,-0.5 + parent: 1 + - uid: 5366 + components: + - type: Transform + pos: 15.5,-9.5 + parent: 1 + - uid: 6027 + components: + - type: Transform + pos: 9.5,-5.5 + parent: 1 + - uid: 6048 + components: + - type: Transform + pos: 29.5,20.5 + parent: 1 + - uid: 6083 + components: + - type: Transform + pos: -32.5,4.5 + parent: 1 + - uid: 6110 + components: + - type: Transform + pos: -31.5,23.5 + parent: 1 + - uid: 6181 + components: + - type: Transform + pos: 4.5,65.5 + parent: 1 + - uid: 6228 + components: + - type: Transform + pos: -6.5,60.5 + parent: 1 + - uid: 6253 + components: + - type: Transform + pos: -24.5,45.5 + parent: 1 + - uid: 6288 + components: + - type: Transform + pos: 28.5,35.5 + parent: 1 + - uid: 13327 + components: + - type: Transform + pos: -35.5,-28.5 + parent: 1 + - uid: 13330 + components: + - type: Transform + pos: -32.5,-24.5 + parent: 1 + - uid: 13331 + components: + - type: Transform + pos: -16.5,-43.5 + parent: 1 + - uid: 13333 + components: + - type: Transform + pos: -32.5,-38.5 + parent: 1 + - uid: 13335 + components: + - type: Transform + pos: -4.5,-35.5 + parent: 1 + - uid: 13336 + components: + - type: Transform + pos: -32.5,-25.5 + parent: 1 + - uid: 13340 + components: + - type: Transform + pos: -9.5,-36.5 + parent: 1 + - uid: 13364 + components: + - type: Transform + pos: -10.5,-43.5 + parent: 1 + - uid: 13367 + components: + - type: Transform + pos: -9.5,-35.5 + parent: 1 + - uid: 13368 + components: + - type: Transform + pos: -31.5,-43.5 + parent: 1 + - uid: 13369 + components: + - type: Transform + pos: -36.5,-36.5 + parent: 1 + - uid: 14383 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -54.5,-9.5 + parent: 1 + - uid: 14420 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -53.5,-1.5 + parent: 1 +- proto: ReinforcedPlasmaWindow + entities: + - uid: 85 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-3.5 + parent: 1 + - uid: 1206 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-4.5 + parent: 1 + - uid: 1343 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-4.5 + parent: 1 + - uid: 1402 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-3.5 + parent: 1 + - uid: 1497 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-4.5 + parent: 1 + - uid: 1498 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-3.5 + parent: 1 + - uid: 1601 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-4.5 + parent: 1 + - uid: 1818 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,-3.5 + parent: 1 + - uid: 2194 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-11.5 + parent: 1 + - uid: 2390 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-11.5 + parent: 1 + - uid: 2416 + components: + - type: Transform + pos: 1.5,-11.5 + parent: 1 + - uid: 2480 + components: + - type: Transform + pos: -2.5,-17.5 + parent: 1 + - uid: 2481 + components: + - type: Transform + pos: -4.5,-17.5 + parent: 1 + - uid: 2492 + components: + - type: Transform + pos: -8.5,-17.5 + parent: 1 + - uid: 2885 + components: + - type: Transform + pos: 1.5,-17.5 + parent: 1 + - uid: 2901 + components: + - type: Transform + pos: -0.5,-17.5 + parent: 1 + - uid: 2961 + components: + - type: Transform + pos: 2.5,-11.5 + parent: 1 + - uid: 3153 + components: + - type: Transform + pos: 0.5,-11.5 + parent: 1 + - uid: 3331 + components: + - type: Transform + pos: 3.5,-17.5 + parent: 1 + - uid: 3339 + components: + - type: Transform + pos: -6.5,-17.5 + parent: 1 + - uid: 4244 + components: + - type: Transform + pos: -6.5,-21.5 + parent: 1 + - uid: 4521 + components: + - type: Transform + pos: -0.5,-21.5 + parent: 1 + - uid: 4839 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-32.5 + parent: 1 + - uid: 4860 + components: + - type: Transform + pos: -8.5,-21.5 + parent: 1 + - uid: 4871 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-31.5 + parent: 1 + - uid: 4901 + components: + - type: Transform + pos: 1.5,-21.5 + parent: 1 + - uid: 4947 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-32.5 + parent: 1 + - uid: 5109 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-31.5 + parent: 1 + - uid: 5553 + components: + - type: Transform + pos: -4.5,-21.5 + parent: 1 + - uid: 5567 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-24.5 + parent: 1 + - uid: 5719 + components: + - type: Transform + pos: -2.5,-21.5 + parent: 1 + - uid: 5721 + components: + - type: Transform + pos: 3.5,-21.5 + parent: 1 + - uid: 5916 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,-22.5 + parent: 1 + - uid: 6100 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-24.5 + parent: 1 + - uid: 6155 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-25.5 + parent: 1 + - uid: 6223 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-22.5 + parent: 1 + - uid: 6255 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,-42.5 + parent: 1 + - uid: 6256 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-42.5 + parent: 1 + - uid: 8329 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-30.5 + parent: 1 + - uid: 10840 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-43.5 + parent: 1 + - uid: 12311 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-42.5 + parent: 1 + - uid: 12364 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,-42.5 + parent: 1 + - uid: 12410 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,-42.5 + parent: 1 + - uid: 12449 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,-43.5 + parent: 1 + - uid: 12450 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,-43.5 + parent: 1 + - uid: 12456 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-43.5 + parent: 1 + - uid: 12509 + components: + - type: Transform + pos: -23.5,-22.5 + parent: 1 + - uid: 12521 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,-25.5 + parent: 1 + - uid: 12545 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,-43.5 + parent: 1 + - uid: 12556 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,-25.5 + parent: 1 + - uid: 12605 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,-25.5 + parent: 1 + - uid: 12764 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-30.5 + parent: 1 + - uid: 13004 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-32.5 + parent: 1 + - uid: 13006 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-33.5 + parent: 1 + - uid: 13043 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-31.5 + parent: 1 + - uid: 13088 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-33.5 + parent: 1 + - uid: 13112 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-32.5 + parent: 1 + - uid: 13479 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-31.5 + parent: 1 +- proto: ReinforcedWindow + entities: + - uid: 16 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,16.5 + parent: 1 + - uid: 53 + components: + - type: Transform + pos: -16.5,12.5 + parent: 1 + - uid: 61 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,27.5 + parent: 1 + - uid: 70 + components: + - type: Transform + pos: -16.5,7.5 + parent: 1 + - uid: 79 + components: + - type: Transform + pos: -16.5,13.5 + parent: 1 + - uid: 110 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,21.5 + parent: 1 + - uid: 111 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,20.5 + parent: 1 + - uid: 112 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,19.5 + parent: 1 + - uid: 113 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,18.5 + parent: 1 + - uid: 142 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,28.5 + parent: 1 + - uid: 143 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,27.5 + parent: 1 + - uid: 155 + components: + - type: Transform + pos: -12.5,40.5 + parent: 1 + - uid: 313 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,20.5 + parent: 1 + - uid: 314 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,21.5 + parent: 1 + - uid: 346 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,19.5 + parent: 1 + - uid: 354 + components: + - type: Transform + pos: 6.5,44.5 + parent: 1 + - uid: 379 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,26.5 + parent: 1 + - uid: 402 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,20.5 + parent: 1 + - uid: 411 + components: + - type: Transform + pos: -7.5,3.5 + parent: 1 + - uid: 473 + components: + - type: Transform + pos: -8.5,-5.5 + parent: 1 + - uid: 483 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,18.5 + parent: 1 + - uid: 492 + components: + - type: Transform + pos: -12.5,42.5 + parent: 1 + - uid: 502 + components: + - type: Transform + pos: -16.5,66.5 + parent: 1 + - uid: 518 + components: + - type: Transform + pos: 13.5,16.5 + parent: 1 + - uid: 524 + components: + - type: Transform + pos: -0.5,3.5 + parent: 1 + - uid: 531 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,54.5 + parent: 1 + - uid: 562 + components: + - type: Transform + pos: 0.5,42.5 + parent: 1 + - uid: 572 + components: + - type: Transform + pos: -21.5,34.5 + parent: 1 + - uid: 577 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,34.5 + parent: 1 + - uid: 579 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,30.5 + parent: 1 + - uid: 590 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,19.5 + parent: 1 + - uid: 593 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,14.5 + parent: 1 + - uid: 595 + components: + - type: Transform + pos: -26.5,19.5 + parent: 1 + - uid: 615 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,33.5 + parent: 1 + - uid: 629 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,18.5 + parent: 1 + - uid: 655 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,34.5 + parent: 1 + - uid: 687 + components: + - type: Transform + pos: 0.5,39.5 + parent: 1 + - uid: 698 + components: + - type: Transform + pos: -16.5,19.5 + parent: 1 + - uid: 722 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,17.5 + parent: 1 + - uid: 729 + components: + - type: Transform + pos: -16.5,42.5 + parent: 1 + - uid: 805 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,18.5 + parent: 1 + - uid: 868 + components: + - type: Transform + pos: -2.5,3.5 + parent: 1 + - uid: 880 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,14.5 + parent: 1 + - uid: 893 + components: + - type: Transform + pos: 4.5,26.5 + parent: 1 + - uid: 968 + components: + - type: Transform + pos: -23.5,30.5 + parent: 1 + - uid: 969 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,27.5 + parent: 1 + - uid: 983 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,20.5 + parent: 1 + - uid: 984 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,21.5 + parent: 1 + - uid: 999 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-2.5 + parent: 1 + - uid: 1018 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,16.5 + parent: 1 + - uid: 1043 + components: + - type: Transform + pos: -4.5,-5.5 + parent: 1 + - uid: 1067 + components: + - type: Transform + pos: -6.5,3.5 + parent: 1 + - uid: 1071 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,34.5 + parent: 1 + - uid: 1072 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,32.5 + parent: 1 + - uid: 1094 + components: + - type: Transform + pos: -12.5,39.5 + parent: 1 + - uid: 1115 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,21.5 + parent: 1 + - uid: 1119 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,32.5 + parent: 1 + - uid: 1135 + components: + - type: Transform + pos: 15.5,16.5 + parent: 1 + - uid: 1145 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,33.5 + parent: 1 + - uid: 1146 + components: + - type: Transform + pos: -1.5,3.5 + parent: 1 + - uid: 1150 + components: + - type: Transform + pos: 4.5,32.5 + parent: 1 + - uid: 1189 + components: + - type: Transform + pos: -12.5,41.5 + parent: 1 + - uid: 1242 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,19.5 + parent: 1 + - uid: 1254 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,14.5 + parent: 1 + - uid: 1290 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,12.5 + parent: 1 + - uid: 1294 + components: + - type: Transform + pos: -5.5,3.5 + parent: 1 + - uid: 1325 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,13.5 + parent: 1 + - uid: 1340 + components: + - type: Transform + pos: -3.5,3.5 + parent: 1 + - uid: 1354 + components: + - type: Transform + pos: -16.5,10.5 + parent: 1 + - uid: 1355 + components: + - type: Transform + pos: 14.5,10.5 + parent: 1 + - uid: 1392 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,11.5 + parent: 1 + - uid: 1395 + components: + - type: Transform + pos: 19.5,15.5 + parent: 1 + - uid: 1413 + components: + - type: Transform + pos: -16.5,9.5 + parent: 1 + - uid: 1440 + components: + - type: Transform + pos: 14.5,16.5 + parent: 1 + - uid: 1455 + components: + - type: Transform + pos: -26.5,66.5 + parent: 1 + - uid: 1475 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,9.5 + parent: 1 + - uid: 1508 + components: + - type: Transform + pos: -10.5,3.5 + parent: 1 + - uid: 1509 + components: + - type: Transform + pos: -9.5,3.5 + parent: 1 + - uid: 1510 + components: + - type: Transform + pos: -8.5,3.5 + parent: 1 + - uid: 1526 + components: + - type: Transform + pos: -26.5,13.5 + parent: 1 + - uid: 1540 + components: + - type: Transform + pos: 0.5,41.5 + parent: 1 + - uid: 1544 + components: + - type: Transform + pos: -21.5,14.5 + parent: 1 + - uid: 1556 + components: + - type: Transform + pos: 0.5,40.5 + parent: 1 + - uid: 1565 + components: + - type: Transform + pos: 7.5,7.5 + parent: 1 + - uid: 1567 + components: + - type: Transform + pos: -16.5,8.5 + parent: 1 + - uid: 1580 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,16.5 + parent: 1 + - uid: 1581 + components: + - type: Transform + pos: 7.5,5.5 + parent: 1 + - uid: 1583 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,8.5 + parent: 1 + - uid: 1593 + components: + - type: Transform + pos: 7.5,6.5 + parent: 1 + - uid: 1645 + components: + - type: Transform + pos: 9.5,44.5 + parent: 1 + - uid: 1680 + components: + - type: Transform + pos: 9.5,43.5 + parent: 1 + - uid: 1739 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,7.5 + parent: 1 + - uid: 1772 + components: + - type: Transform + pos: -21.5,13.5 + parent: 1 + - uid: 1821 + components: + - type: Transform + pos: 12.5,16.5 + parent: 1 + - uid: 1825 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,7.5 + parent: 1 + - uid: 1881 + components: + - type: Transform + pos: 11.5,10.5 + parent: 1 + - uid: 1890 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,43.5 + parent: 1 + - uid: 1939 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,6.5 + parent: 1 + - uid: 1964 + components: + - type: Transform + pos: -21.5,12.5 + parent: 1 + - uid: 1974 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,10.5 + parent: 1 + - uid: 1992 + components: + - type: Transform + pos: -19.5,19.5 + parent: 1 + - uid: 2106 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,6.5 + parent: 1 + - uid: 2118 + components: + - type: Transform + pos: -26.5,16.5 + parent: 1 + - uid: 2202 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,16.5 + parent: 1 + - uid: 2203 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,17.5 + parent: 1 + - uid: 2207 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,11.5 + parent: 1 + - uid: 2208 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,10.5 + parent: 1 + - uid: 2209 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,9.5 + parent: 1 + - uid: 2225 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,41.5 + parent: 1 + - uid: 2261 + components: + - type: Transform + pos: -40.5,2.5 + parent: 1 + - uid: 2352 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-9.5 + parent: 1 + - uid: 2364 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-9.5 + parent: 1 + - uid: 2382 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,0.5 + parent: 1 + - uid: 2396 + components: + - type: Transform + pos: 19.5,48.5 + parent: 1 + - uid: 2426 + components: + - type: Transform + pos: -40.5,12.5 + parent: 1 + - uid: 2431 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-9.5 + parent: 1 + - uid: 2467 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,53.5 + parent: 1 + - uid: 2494 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,-0.5 + parent: 1 + - uid: 2555 + components: + - type: Transform + pos: 13.5,-11.5 + parent: 1 + - uid: 2577 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-1.5 + parent: 1 + - uid: 2609 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,-15.5 + parent: 1 + - uid: 2636 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,55.5 + parent: 1 + - uid: 2643 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,1.5 + parent: 1 + - uid: 2713 + components: + - type: Transform + pos: -26.5,-7.5 + parent: 1 + - uid: 2715 + components: + - type: Transform + pos: 17.5,48.5 + parent: 1 + - uid: 2730 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,-15.5 + parent: 1 + - uid: 2734 + components: + - type: Transform + pos: -40.5,8.5 + parent: 1 + - uid: 2772 + components: + - type: Transform + pos: -40.5,13.5 + parent: 1 + - uid: 2806 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-0.5 + parent: 1 + - uid: 2807 + components: + - type: Transform + pos: -40.5,7.5 + parent: 1 + - uid: 2839 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,-15.5 + parent: 1 + - uid: 2840 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-9.5 + parent: 1 + - uid: 2881 + components: + - type: Transform + pos: -40.5,3.5 + parent: 1 + - uid: 2889 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-15.5 + parent: 1 + - uid: 2906 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-15.5 + parent: 1 + - uid: 2929 + components: + - type: Transform + pos: 9.5,63.5 + parent: 1 + - uid: 2930 + components: + - type: Transform + pos: 8.5,63.5 + parent: 1 + - uid: 2951 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-0.5 + parent: 1 + - uid: 2973 + components: + - type: Transform + pos: 7.5,63.5 + parent: 1 + - uid: 3009 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,54.5 + parent: 1 + - uid: 3014 + components: + - type: Transform + pos: -24.5,-7.5 + parent: 1 + - uid: 3015 + components: + - type: Transform + pos: -25.5,-7.5 + parent: 1 + - uid: 3053 + components: + - type: Transform + pos: -16.5,-13.5 + parent: 1 + - uid: 3054 + components: + - type: Transform + pos: -17.5,-13.5 + parent: 1 + - uid: 3055 + components: + - type: Transform + pos: -18.5,-13.5 + parent: 1 + - uid: 3056 + components: + - type: Transform + pos: -19.5,-13.5 + parent: 1 + - uid: 3066 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,51.5 + parent: 1 + - uid: 3078 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,0.5 + parent: 1 + - uid: 3131 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,1.5 + parent: 1 + - uid: 3180 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,54.5 + parent: 1 + - uid: 3189 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,-20.5 + parent: 1 + - uid: 3190 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,-19.5 + parent: 1 + - uid: 3191 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,-18.5 + parent: 1 + - uid: 3237 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,38.5 + parent: 1 + - uid: 3275 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-10.5 + parent: 1 + - uid: 3362 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,67.5 + parent: 1 + - uid: 3385 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,28.5 + parent: 1 + - uid: 3389 + components: + - type: Transform + pos: 14.5,-11.5 + parent: 1 + - uid: 3408 + components: + - type: Transform + pos: 13.5,57.5 + parent: 1 + - uid: 3421 + components: + - type: Transform + pos: 20.5,48.5 + parent: 1 + - uid: 3423 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,38.5 + parent: 1 + - uid: 3468 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 25.5,67.5 + parent: 1 + - uid: 3471 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-15.5 + parent: 1 + - uid: 3472 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-15.5 + parent: 1 + - uid: 3473 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-15.5 + parent: 1 + - uid: 3474 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-15.5 + parent: 1 + - uid: 3479 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,70.5 + parent: 1 + - uid: 3488 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,50.5 + parent: 1 + - uid: 3496 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,-15.5 + parent: 1 + - uid: 3497 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-15.5 + parent: 1 + - uid: 3516 + components: + - type: Transform + pos: 18.5,48.5 + parent: 1 + - uid: 3562 + components: + - type: Transform + pos: 16.5,48.5 + parent: 1 + - uid: 3577 + components: + - type: Transform + pos: 11.5,57.5 + parent: 1 + - uid: 3593 + components: + - type: Transform + pos: 12.5,68.5 + parent: 1 + - uid: 3594 + components: + - type: Transform + pos: 13.5,68.5 + parent: 1 + - uid: 3595 + components: + - type: Transform + pos: 13.5,66.5 + parent: 1 + - uid: 3601 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-8.5 + parent: 1 + - uid: 3615 + components: + - type: Transform + pos: 13.5,45.5 + parent: 1 + - uid: 3624 + components: + - type: Transform + pos: 12.5,45.5 + parent: 1 + - uid: 3630 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-15.5 + parent: 1 + - uid: 3632 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-15.5 + parent: 1 + - uid: 3634 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,53.5 + parent: 1 + - uid: 3642 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,70.5 + parent: 1 + - uid: 3661 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,48.5 + parent: 1 + - uid: 3662 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,48.5 + parent: 1 + - uid: 3665 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,52.5 + parent: 1 + - uid: 3706 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,49.5 + parent: 1 + - uid: 3713 + components: + - type: Transform + pos: 10.5,68.5 + parent: 1 + - uid: 3714 + components: + - type: Transform + pos: 11.5,68.5 + parent: 1 + - uid: 3715 + components: + - type: Transform + pos: 10.5,66.5 + parent: 1 + - uid: 3716 + components: + - type: Transform + pos: 11.5,66.5 + parent: 1 + - uid: 3717 + components: + - type: Transform + pos: 12.5,66.5 + parent: 1 + - uid: 3766 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,-11.5 + parent: 1 + - uid: 3772 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,67.5 + parent: 1 + - uid: 3775 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,70.5 + parent: 1 + - uid: 3783 + components: + - type: Transform + pos: -2.5,54.5 + parent: 1 + - uid: 3784 + components: + - type: Transform + pos: -1.5,54.5 + parent: 1 + - uid: 3785 + components: + - type: Transform + pos: -0.5,54.5 + parent: 1 + - uid: 3796 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 23.5,67.5 + parent: 1 + - uid: 3804 + components: + - type: Transform + pos: -2.5,50.5 + parent: 1 + - uid: 3805 + components: + - type: Transform + pos: -1.5,50.5 + parent: 1 + - uid: 3806 + components: + - type: Transform + pos: -0.5,50.5 + parent: 1 + - uid: 3820 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,70.5 + parent: 1 + - uid: 3823 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,37.5 + parent: 1 + - uid: 3835 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,28.5 + parent: 1 + - uid: 3915 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,56.5 + parent: 1 + - uid: 3919 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,61.5 + parent: 1 + - uid: 3962 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,70.5 + parent: 1 + - uid: 3984 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,70.5 + parent: 1 + - uid: 3987 + components: + - type: Transform + pos: 2.5,64.5 + parent: 1 + - uid: 4009 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,70.5 + parent: 1 + - uid: 4010 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-9.5 + parent: 1 + - uid: 4013 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,56.5 + parent: 1 + - uid: 4056 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,37.5 + parent: 1 + - uid: 4082 + components: + - type: Transform + pos: 1.5,64.5 + parent: 1 + - uid: 4083 + components: + - type: Transform + pos: 0.5,64.5 + parent: 1 + - uid: 4084 + components: + - type: Transform + pos: -0.5,64.5 + parent: 1 + - uid: 4195 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,14.5 + parent: 1 + - uid: 4232 + components: + - type: Transform + pos: 44.5,6.5 + parent: 1 + - uid: 4235 + components: + - type: Transform + pos: 44.5,17.5 + parent: 1 + - uid: 4238 + components: + - type: Transform + pos: 46.5,17.5 + parent: 1 + - uid: 4253 + components: + - type: Transform + pos: -43.5,-10.5 + parent: 1 + - uid: 4289 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,50.5 + parent: 1 + - uid: 4342 + components: + - type: Transform + pos: 49.5,13.5 + parent: 1 + - uid: 4370 + components: + - type: Transform + pos: -6.5,-23.5 + parent: 1 + - uid: 4447 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,-12.5 + parent: 1 + - uid: 4452 + components: + - type: Transform + pos: 46.5,6.5 + parent: 1 + - uid: 4458 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,41.5 + parent: 1 + - uid: 4470 + components: + - type: Transform + pos: -13.5,-8.5 + parent: 1 + - uid: 4475 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,57.5 + parent: 1 + - uid: 4524 + components: + - type: Transform + pos: 51.5,10.5 + parent: 1 + - uid: 4529 + components: + - type: Transform + pos: 44.5,15.5 + parent: 1 + - uid: 4530 + components: + - type: Transform + pos: 45.5,15.5 + parent: 1 + - uid: 4540 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,41.5 + parent: 1 + - uid: 4554 + components: + - type: Transform + pos: -23.5,50.5 + parent: 1 + - uid: 4555 + components: + - type: Transform + pos: -19.5,50.5 + parent: 1 + - uid: 4588 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,14.5 + parent: 1 + - uid: 4606 + components: + - type: Transform + pos: 44.5,8.5 + parent: 1 + - uid: 4624 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,57.5 + parent: 1 + - uid: 4638 + components: + - type: Transform + pos: 46.5,15.5 + parent: 1 + - uid: 4645 + components: + - type: Transform + pos: -1.5,-23.5 + parent: 1 + - uid: 4652 + components: + - type: Transform + pos: -35.5,-10.5 + parent: 1 + - uid: 4699 + components: + - type: Transform + pos: -35.5,-12.5 + parent: 1 + - uid: 4715 + components: + - type: Transform + pos: -43.5,-12.5 + parent: 1 + - uid: 4716 + components: + - type: Transform + pos: 45.5,6.5 + parent: 1 + - uid: 4776 + components: + - type: Transform + pos: -20.5,50.5 + parent: 1 + - uid: 4793 + components: + - type: Transform + pos: 45.5,17.5 + parent: 1 + - uid: 4812 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,37.5 + parent: 1 + - uid: 4868 + components: + - type: Transform + pos: 51.5,13.5 + parent: 1 + - uid: 4869 + components: + - type: Transform + pos: -22.5,50.5 + parent: 1 + - uid: 4873 + components: + - type: Transform + pos: 51.5,11.5 + parent: 1 + - uid: 4938 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,62.5 + parent: 1 + - uid: 4944 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,28.5 + parent: 1 + - uid: 4957 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,41.5 + parent: 1 + - uid: 5020 + components: + - type: Transform + pos: -13.5,-7.5 + parent: 1 + - uid: 5044 + components: + - type: Transform + pos: 45.5,8.5 + parent: 1 + - uid: 5048 + components: + - type: Transform + pos: 46.5,8.5 + parent: 1 + - uid: 5054 + components: + - type: Transform + pos: 51.5,12.5 + parent: 1 + - uid: 5068 + components: + - type: Transform + pos: 49.5,12.5 + parent: 1 + - uid: 5073 + components: + - type: Transform + pos: 49.5,11.5 + parent: 1 + - uid: 5076 + components: + - type: Transform + pos: 49.5,10.5 + parent: 1 + - uid: 5103 + components: + - type: Transform + pos: -5.5,-23.5 + parent: 1 + - uid: 5141 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,41.5 + parent: 1 + - uid: 5219 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,12.5 + parent: 1 + - uid: 5220 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,11.5 + parent: 1 + - uid: 5228 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,9.5 + parent: 1 + - uid: 5229 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 40.5,9.5 + parent: 1 + - uid: 5260 + components: + - type: Transform + pos: -21.5,50.5 + parent: 1 + - uid: 5329 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,-13.5 + parent: 1 + - uid: 5393 + components: + - type: Transform + pos: -4.5,-23.5 + parent: 1 + - uid: 5697 + components: + - type: Transform + pos: -3.5,-23.5 + parent: 1 + - uid: 5720 + components: + - type: Transform + pos: -2.5,-23.5 + parent: 1 + - uid: 5723 + components: + - type: Transform + pos: -7.5,-23.5 + parent: 1 + - uid: 10025 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,56.5 + parent: 1 + - uid: 10027 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,63.5 + parent: 1 + - uid: 10066 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,63.5 + parent: 1 + - uid: 10120 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,61.5 + parent: 1 + - uid: 12398 + components: + - type: Transform + pos: 2.5,-23.5 + parent: 1 + - uid: 12399 + components: + - type: Transform + pos: 1.5,-23.5 + parent: 1 + - uid: 12400 + components: + - type: Transform + pos: -0.5,-23.5 + parent: 1 + - uid: 12473 + components: + - type: Transform + pos: -8.5,-23.5 + parent: 1 + - uid: 12570 + components: + - type: Transform + pos: 0.5,-23.5 + parent: 1 + - uid: 12573 + components: + - type: Transform + pos: 3.5,-23.5 + parent: 1 + - uid: 13310 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -51.5,-6.5 + parent: 1 + - uid: 13321 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -53.5,-3.5 + parent: 1 + - uid: 13326 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -51.5,-3.5 + parent: 1 + - uid: 13373 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -53.5,-6.5 + parent: 1 + - uid: 15114 + components: + - type: Transform + pos: -46.5,53.5 + parent: 1 + - uid: 15115 + components: + - type: Transform + pos: -47.5,53.5 + parent: 1 + - uid: 15116 + components: + - type: Transform + pos: -48.5,53.5 + parent: 1 + - uid: 15120 + components: + - type: Transform + pos: -42.5,53.5 + parent: 1 + - uid: 15121 + components: + - type: Transform + pos: -41.5,53.5 + parent: 1 + - uid: 15122 + components: + - type: Transform + pos: -40.5,53.5 + parent: 1 + - uid: 15140 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -47.5,58.5 + parent: 1 + - uid: 15163 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,57.5 + parent: 1 + - uid: 15176 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,57.5 + parent: 1 + - uid: 15177 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,58.5 + parent: 1 + - uid: 15178 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,57.5 + parent: 1 + - uid: 15182 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,65.5 + parent: 1 + - uid: 16603 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,27.5 + parent: 1 + - uid: 16606 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,25.5 + parent: 1 + - uid: 16607 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,27.5 + parent: 1 + - uid: 16608 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,29.5 + parent: 1 +- proto: RemoteSignaller + entities: + - uid: 1079 + components: + - type: Transform + pos: 18.648104,19.574785 + parent: 1 +- proto: ResearchAndDevelopmentServer + entities: + - uid: 799 + components: + - type: Transform + pos: 24.5,17.5 + parent: 1 +- proto: ResearchAndDevelopmentServerMachineCircuitboard + entities: + - uid: 2399 + components: + - type: Transform + pos: -32.285545,-8.562305 + parent: 1 +- proto: ResearchComputerCircuitboard + entities: + - uid: 2402 + components: + - type: Transform + pos: -32.297775,-8.366615 + parent: 1 +- proto: RightArmBorgEngineer + entities: + - uid: 13288 + components: + - type: Transform + pos: 41.294197,17.416924 + parent: 1 + - uid: 13289 + components: + - type: Transform + pos: 41.383938,17.312384 + parent: 1 +- proto: RubberStampApproved + entities: + - uid: 889 + components: + - type: Transform + pos: -21.33506,33.54021 + parent: 1 +- proto: RubberStampDenied + entities: + - uid: 39 + components: + - type: Transform + pos: -21.600685,33.743336 + parent: 1 +- proto: SalvageCanisterSpawner + entities: + - uid: 13429 + components: + - type: Transform + pos: -9.5,39.5 + parent: 1 + - uid: 13435 + components: + - type: Transform + pos: -4.5,36.5 + parent: 1 + - uid: 13441 + components: + - type: Transform + pos: -6.5,37.5 + parent: 1 + - uid: 13509 + components: + - type: Transform + pos: -9.5,37.5 + parent: 1 + - uid: 13510 + components: + - type: Transform + pos: -10.5,39.5 + parent: 1 + - uid: 13518 + components: + - type: Transform + pos: -10.5,42.5 + parent: 1 + - uid: 13546 + components: + - type: Transform + pos: -5.5,42.5 + parent: 1 +- proto: SalvageMagnet + entities: + - uid: 5596 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,32.5 + parent: 1 +- proto: Screwdriver + entities: + - uid: 4171 + components: + - type: Transform + pos: -28.449024,42.55441 + parent: 1 +- proto: SeedExtractor + entities: + - uid: 628 + components: + - type: Transform + pos: 11.5,25.5 + parent: 1 + - uid: 14816 + components: + - type: Transform + pos: -46.5,-5.5 + parent: 1 +- proto: ShardGlass + entities: + - uid: 5642 + components: + - type: Transform + pos: 8.182522,-4.223699 + parent: 1 + - uid: 6120 + components: + - type: Transform + pos: 20.6769,8.357466 + parent: 1 + - uid: 6214 + components: + - type: Transform + pos: 7.0350676,23.103098 + parent: 1 + - uid: 6394 + components: + - type: Transform + pos: 27.821785,20.153137 + parent: 1 +- proto: SheetBrass + entities: + - uid: 14977 + components: + - type: Transform + pos: 52.50048,8.465545 + parent: 1 +- proto: SheetGlass + entities: + - uid: 306 + components: + - type: Transform + pos: -23.46937,34.306824 + parent: 1 + - uid: 1422 + components: + - type: Transform + pos: 11.410121,8.436037 + parent: 1 + - uid: 2666 + components: + - type: Transform + pos: -22.48371,-3.963514 + parent: 1 + - uid: 15658 + components: + - type: Transform + pos: -17.5,-41.5 + parent: 1 +- proto: SheetPlasma + entities: + - uid: 1564 + components: + - type: Transform + pos: 10.39559,5.6356897 + parent: 1 + - uid: 4884 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.627157,-8.446272 + parent: 1 + - uid: 5281 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.38866,-8.40958 + parent: 1 + - uid: 12662 + components: + - type: Transform + parent: 12661 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 12663 + components: + - type: Transform + parent: 12661 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 12664 + components: + - type: Transform + parent: 12661 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 12775 + components: + - type: Transform + parent: 12661 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 12837 + components: + - type: Transform + parent: 12661 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 12838 + components: + - type: Transform + parent: 12661 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 12842 + components: + - type: Transform + parent: 12661 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 12854 + components: + - type: Transform + parent: 12661 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: SheetPlasteel + entities: + - uid: 5531 + components: + - type: Transform + pos: 17.42816,27.522682 + parent: 1 +- proto: SheetPlastic + entities: + - uid: 811 + components: + - type: Transform + pos: 11.648618,9.536791 + parent: 1 + - uid: 1104 + components: + - type: Transform + pos: -23.516245,34.07245 + parent: 1 + - uid: 2932 + components: + - type: Transform + pos: -22.500017,-3.6455185 + parent: 1 + - uid: 15659 + components: + - type: Transform + pos: -17.5,-41.5 + parent: 1 +- proto: SheetSteel + entities: + - uid: 224 + components: + - type: Transform + pos: -23.516245,34.5412 + parent: 1 + - uid: 226 + components: + - type: Transform + pos: 11.483504,9.518445 + parent: 1 + - uid: 2931 + components: + - type: Transform + pos: -22.48371,-3.3519843 + parent: 1 + - uid: 4626 + components: + - type: Transform + pos: 8.50501,67.63397 + parent: 1 + - uid: 6287 + components: + - type: Transform + pos: 23.55957,25.484047 + parent: 1 + - uid: 9385 + components: + - type: Transform + pos: -10.47695,67.53487 + parent: 1 + - uid: 15657 + components: + - type: Transform + pos: -17.5,-41.5 + parent: 1 +- proto: SheetSteel10 + entities: + - uid: 15631 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.562498,-38.327896 + parent: 1 +- proto: SheetUranium + entities: + - uid: 12928 + components: + - type: Transform + parent: 12862 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 12942 + components: + - type: Transform + parent: 12862 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 12984 + components: + - type: Transform + parent: 12862 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 13168 + components: + - type: Transform + parent: 12862 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 13191 + components: + - type: Transform + parent: 12862 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 13193 + components: + - type: Transform + parent: 12862 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 13195 + components: + - type: Transform + parent: 12862 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 13204 + components: + - type: Transform + parent: 12862 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 13284 + components: + - type: Transform + parent: 12862 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 13285 + components: + - type: Transform + parent: 12862 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 13286 + components: + - type: Transform + parent: 12862 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage + - uid: 13287 + components: + - type: Transform + parent: 12862 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False + - type: InsideEntityStorage +- proto: Shovel + entities: + - uid: 4917 + components: + - type: Transform + pos: -25.974112,-0.5030156 + parent: 1 +- proto: ShuttersNormal + entities: + - uid: 8 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,24.5 + parent: 1 + - uid: 2191 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,23.5 + parent: 1 + - uid: 9119 + components: + - type: Transform + pos: -32.5,50.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9055 + - uid: 9455 + components: + - type: Transform + pos: -33.5,50.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9055 +- proto: ShuttersNormalOpen + entities: + - uid: 193 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,27.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9399 + - uid: 276 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,34.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9250 + - uid: 351 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,19.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9355 + - uid: 569 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,28.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9399 + - uid: 596 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,14.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9372 + - uid: 662 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,33.5 + parent: 1 + - type: DeviceLinkSink + invokeCounter: 1 + links: + - 9600 + - uid: 848 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,28.5 + parent: 1 + - type: DeviceLinkSink + links: + - 8700 + - uid: 1001 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,18.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9355 + - uid: 1006 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,14.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9830 + - uid: 1047 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,15.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9830 + - uid: 1162 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,33.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9250 + - uid: 1399 + components: + - type: Transform + pos: -5.5,27.5 + parent: 1 + - type: DeviceLinkSink + links: + - 8700 + - uid: 1663 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,32.5 + parent: 1 + - type: DeviceLinkSink + invokeCounter: 1 + links: + - 9600 + - uid: 1690 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,14.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9372 + - uid: 1699 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,13.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9830 + - uid: 1701 + components: + - type: Transform + pos: -4.5,27.5 + parent: 1 + - type: DeviceLinkSink + links: + - 8700 + - uid: 1702 + components: + - type: Transform + pos: -3.5,27.5 + parent: 1 + - type: DeviceLinkSink + links: + - 8700 + - uid: 1704 + components: + - type: Transform + pos: -7.5,27.5 + parent: 1 + - type: DeviceLinkSink + links: + - 8700 + - uid: 1705 + components: + - type: Transform + pos: -6.5,27.5 + parent: 1 + - type: DeviceLinkSink + links: + - 8700 + - uid: 1797 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,14.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9372 + - uid: 1801 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,12.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9830 + - uid: 1806 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,29.5 + parent: 1 + - type: DeviceLinkSink + links: + - 8700 + - uid: 1809 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,12.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9830 + - uid: 1908 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,14.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9372 + - uid: 1959 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,13.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9830 + - uid: 2057 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,14.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9830 + - uid: 8992 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,39.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9665 + - uid: 9243 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,40.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9665 + - uid: 9365 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,5.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9364 + - uid: 9393 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,42.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9665 + - uid: 9414 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,39.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9665 + - uid: 9467 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,40.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9665 + - uid: 9468 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,41.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9665 + - uid: 9666 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,41.5 + parent: 1 + - uid: 9667 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 34.5,41.5 + parent: 1 + - uid: 9668 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,41.5 + parent: 1 + - uid: 9669 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,41.5 + parent: 1 + - uid: 9752 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,7.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9364 + - uid: 9764 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,41.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9665 + - uid: 9771 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,16.5 + parent: 1 + - uid: 9772 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,17.5 + parent: 1 + - uid: 9784 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,6.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9364 + - uid: 9839 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,42.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9665 + - uid: 9929 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-4.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9640 + - uid: 9930 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-3.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9640 + - uid: 13259 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,41.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9665 + - uid: 13260 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,40.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9665 + - uid: 13262 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,39.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9665 +- proto: ShuttersRadiationOpen + entities: + - uid: 6 + components: + - type: Transform + pos: 14.5,16.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9871 + - uid: 31 + components: + - type: Transform + pos: 15.5,16.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9871 + - uid: 32 + components: + - type: Transform + pos: 13.5,16.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9871 + - uid: 117 + components: + - type: Transform + pos: 12.5,16.5 + parent: 1 + - type: DeviceLinkSink + links: + - 9871 + - uid: 15575 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,-30.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16293 + - uid: 15576 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,-30.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16293 + - uid: 15577 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,-32.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16293 + - uid: 15578 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,-33.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16293 + - uid: 15579 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,-34.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16293 + - uid: 15584 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-32.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16293 + - uid: 15585 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-33.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16293 + - uid: 15586 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-34.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16293 + - uid: 15587 + components: + - type: Transform + pos: -19.5,-36.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16293 + - uid: 15588 + components: + - type: Transform + pos: -20.5,-36.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16293 + - uid: 15589 + components: + - type: Transform + pos: -21.5,-36.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16293 + - uid: 15603 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-22.5 + parent: 1 + - uid: 15604 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-24.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16293 + - uid: 15612 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-25.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16293 + - uid: 15614 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,-22.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16293 + - uid: 15672 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-22.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16293 + - uid: 15674 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-24.5 + parent: 1 + - type: DeviceLinkSink + links: + - 16293 +- proto: SignAi + entities: + - uid: 9926 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,11.5 + parent: 1 +- proto: SignalButton + entities: + - uid: 5824 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 30.5,59.5 + parent: 1 + - uid: 8700 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,28.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 1704: + - Pressed: Toggle + 1705: + - Pressed: Toggle + 1399: + - Pressed: Toggle + 1701: + - Pressed: Toggle + 1702: + - Pressed: Toggle + 848: + - Pressed: Toggle + 1806: + - Pressed: Toggle + - uid: 9055 + components: + - type: Transform + pos: -31.5,50.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 9119: + - Pressed: Toggle + 9455: + - Pressed: Toggle + - uid: 9250 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 10.5,33.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 1162: + - Pressed: Toggle + 276: + - Pressed: Toggle + - uid: 9355 + components: + - type: Transform + pos: 8.5,21.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 351: + - Pressed: Toggle + 1001: + - Pressed: Toggle + - uid: 9364 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,4.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 9365: + - Pressed: Toggle + 9784: + - Pressed: Toggle + 9752: + - Pressed: Toggle + - uid: 9372 + components: + - type: Transform + pos: -3.5,14.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 596: + - Pressed: Toggle + 1690: + - Pressed: Toggle + 1908: + - Pressed: Toggle + 1797: + - Pressed: Toggle + - uid: 9399 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,24.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 193: + - Pressed: Toggle + 569: + - Pressed: Toggle + - uid: 9600 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,33.5 + parent: 1 + - type: SignalSwitch + state: True + - type: DeviceLinkSource + linkedPorts: + 662: + - Pressed: Toggle + 1663: + - Pressed: Toggle + - uid: 9640 + components: + - type: Transform + pos: -20.5,-1.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 9930: + - Pressed: Toggle + 9929: + - Pressed: Toggle + - uid: 9665 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,37.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 9414: + - Pressed: Toggle + 9467: + - Pressed: Toggle + 9468: + - Pressed: Toggle + 9839: + - Pressed: Toggle + 8992: + - Pressed: Toggle + 9243: + - Pressed: Toggle + 9764: + - Pressed: Toggle + 9393: + - Pressed: Toggle + 13259: + - Pressed: Toggle + 13260: + - Pressed: Toggle + 13262: + - Pressed: Toggle + - uid: 9830 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,16.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 2057: + - Pressed: Toggle + 1959: + - Pressed: Toggle + 1801: + - Pressed: Toggle + 1699: + - Pressed: Toggle + 1809: + - Pressed: Toggle + 1006: + - Pressed: Toggle + 1047: + - Pressed: Toggle + - uid: 9871 + components: + - type: Transform + pos: 11.5,15.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 117: + - Pressed: Toggle + 32: + - Pressed: Toggle + 6: + - Pressed: Toggle + 31: + - Pressed: Toggle +- proto: SignAnomaly + entities: + - uid: 10028 + components: + - type: Transform + pos: 16.5,16.5 + parent: 1 +- proto: SignAnomaly2 + entities: + - uid: 10073 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,10.5 + parent: 1 +- proto: SignArmory + entities: + - uid: 10018 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,6.5 + parent: 1 +- proto: SignAtmos + entities: + - uid: 5791 + components: + - type: Transform + pos: -13.5,-12.5 + parent: 1 +- proto: SignAtmosMinsky + entities: + - uid: 3217 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-10.5 + parent: 1 +- proto: SignBar + entities: + - uid: 470 + components: + - type: Transform + pos: -8.5,27.5 + parent: 1 +- proto: SignBridge + entities: + - uid: 280 + components: + - type: Transform + pos: -0.5,15.5 + parent: 1 +- proto: SignCanisters + entities: + - uid: 13443 + components: + - type: Transform + pos: -4.5,42.5 + parent: 1 +- proto: SignCargo + entities: + - uid: 815 + components: + - type: Transform + pos: -16.5,36.5 + parent: 1 + - uid: 1326 + components: + - type: Transform + pos: -16.5,30.5 + parent: 1 +- proto: SignCargoDock + entities: + - uid: 675 + components: + - type: Transform + pos: -31.5,29.5 + parent: 1 + - uid: 1183 + components: + - type: Transform + pos: -31.5,25.5 + parent: 1 +- proto: SignChapel + entities: + - uid: 2570 + components: + - type: Transform + pos: 9.5,3.5 + parent: 1 +- proto: SignChem + entities: + - uid: 3198 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 16.5,44.5 + parent: 1 +- proto: SignCloning + entities: + - uid: 5004 + components: + - type: Transform + pos: 32.5,44.5 + parent: 1 + - uid: 15001 + components: + - type: Transform + pos: 30.5,42.5 + parent: 1 +- proto: SignConference + entities: + - uid: 1656 + components: + - type: Transform + pos: -4.5,7.5 + parent: 1 +- proto: SignDanger + entities: + - uid: 13543 + components: + - type: Transform + pos: -4.5,43.5 + parent: 1 +- proto: SignDangerMed + entities: + - uid: 12469 + components: + - type: Transform + pos: 34.5,0.5 + parent: 1 + - uid: 12619 + components: + - type: Transform + pos: 30.5,65.5 + parent: 1 + - uid: 12638 + components: + - type: Transform + pos: 36.5,21.5 + parent: 1 + - uid: 12723 + components: + - type: Transform + pos: 11.5,-16.5 + parent: 1 + - uid: 12782 + components: + - type: Transform + pos: -38.5,18.5 + parent: 1 + - uid: 13281 + components: + - type: Transform + pos: -34.5,-13.5 + parent: 1 + - uid: 13282 + components: + - type: Transform + pos: -33.5,-14.5 + parent: 1 + - uid: 14431 + components: + - type: Transform + pos: 21.5,-24.5 + parent: 1 + - uid: 14450 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,-13.5 + parent: 1 + - uid: 15703 + components: + - type: Transform + pos: -18.5,-36.5 + parent: 1 + - uid: 15704 + components: + - type: Transform + pos: -22.5,-36.5 + parent: 1 + - uid: 16336 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -44.5,-14.5 + parent: 1 + - uid: 16337 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,-45.5 + parent: 1 + - uid: 16338 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-45.5 + parent: 1 + - uid: 16339 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-41.5 + parent: 1 + - uid: 16340 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,-45.5 + parent: 1 + - uid: 16341 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-45.5 + parent: 1 + - uid: 16342 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-43.5 + parent: 1 + - uid: 16343 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-45.5 + parent: 1 +- proto: SignDirectionalBar + entities: + - uid: 8948 + components: + - type: Transform + pos: -16.5,46.5 + parent: 1 + - uid: 9601 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,4.5 + parent: 1 + - uid: 10148 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,3.5 + parent: 1 +- proto: SignDirectionalBridge + entities: + - uid: 10021 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.496619,3.749395 + parent: 1 + - uid: 10192 + components: + - type: Transform + pos: -16.509624,46.771282 + parent: 1 + - uid: 10219 + components: + - type: Transform + pos: -12.502289,22.508995 + parent: 1 +- proto: SignDirectionalBrig + entities: + - uid: 10032 + components: + - type: Transform + pos: -16.510391,46.208675 + parent: 1 + - uid: 12390 + components: + - type: Transform + pos: 4.5,37.5 + parent: 1 + - uid: 12563 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,6.5 + parent: 1 + - uid: 12564 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,21.5 + parent: 1 + - uid: 12569 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,10.5 + parent: 1 +- proto: SignDirectionalChapel + entities: + - uid: 10142 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.526751,22.252153 + parent: 1 + - uid: 10149 + components: + - type: Transform + pos: 3.4971857,3.773735 + parent: 1 +- proto: SignDirectionalEng + entities: + - uid: 10185 + components: + - type: Transform + pos: -12.488465,3.2440696 + parent: 1 + - uid: 10191 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5652824,22.765839 + parent: 1 +- proto: SignDirectionalEvac + entities: + - uid: 9343 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.510391,45.95591 + parent: 1 + - uid: 10190 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.55305177,22.508995 + parent: 1 + - uid: 15261 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,53.5 + parent: 1 + - uid: 15262 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,57.5 + parent: 1 +- proto: SignDirectionalFood + entities: + - uid: 10033 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5652824,22.264383 + parent: 1 + - uid: 10034 + components: + - type: Transform + pos: -16.494083,45.686836 + parent: 1 + - uid: 10044 + components: + - type: Transform + pos: 0.5,51.5 + parent: 1 +- proto: SignDirectionalGravity + entities: + - uid: 9289 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,22.5 + parent: 1 + - uid: 10180 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.498571,2.9913037 + parent: 1 + - uid: 10217 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.482792,45.40746 + parent: 1 +- proto: SignDirectionalHop + entities: + - uid: 8423 + components: + - type: Transform + pos: -12.5,44.5 + parent: 1 +- proto: SignDirectionalHydro + entities: + - uid: 9363 + components: + - type: Transform + pos: 0.5,50.5 + parent: 1 +- proto: SignDirectionalJanitor + entities: + - uid: 9563 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.540267,16.14223 + parent: 1 + - uid: 10141 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,24.5 + parent: 1 + - uid: 10150 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5053394,5.0701785 + parent: 1 + - uid: 10160 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,33.5 + parent: 1 + - uid: 10197 + components: + - type: Transform + pos: 16.5,31.5 + parent: 1 +- proto: SignDirectionalLibrary + entities: + - uid: 9279 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.51562476,16.39907 + parent: 1 + - uid: 10183 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,30.5 + parent: 1 +- proto: SignDirectionalMed + entities: + - uid: 10135 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.506724,2.7222304 + parent: 1 + - uid: 10136 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,10.5 + parent: 1 + - uid: 10218 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.518292,22.790298 + parent: 1 +- proto: SignDirectionalSalvage + entities: + - uid: 10165 + components: + - type: Transform + pos: 4.5,36.5 + parent: 1 + - uid: 10216 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.50950694,16.649118 + parent: 1 +- proto: SignDirectionalSci + entities: + - uid: 10186 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.48882,25.765799 + parent: 1 + - uid: 10187 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.505168,4.811064 + parent: 1 +- proto: SignDirectionalSec + entities: + - uid: 8866 + components: + - type: Transform + pos: -16.498302,25.512575 + parent: 1 + - uid: 10184 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5048654,16.89373 + parent: 1 + - uid: 10188 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.497014,4.011998 + parent: 1 +- proto: SignDirectionalSolar + entities: + - uid: 9537 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,41.5 + parent: 1 + - uid: 9776 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,33.5 + parent: 1 + - uid: 10147 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,29.5 + parent: 1 + - uid: 10153 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,38.5 + parent: 1 + - uid: 10154 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,38.5 + parent: 1 + - uid: 10155 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,22.5 + parent: 1 + - uid: 10166 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,43.5 + parent: 1 +- proto: SignDirectionalSupply + entities: + - uid: 10164 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.47384,25.255733 + parent: 1 + - uid: 10189 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5133216,4.25661 + parent: 1 +- proto: SignDisposalSpace + entities: + - uid: 669 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,27.5 + parent: 1 +- proto: SignElectricalMed + entities: + - uid: 1144 + components: + - type: Transform + pos: -23.5,-22.5 + parent: 1 + - uid: 5420 + components: + - type: Transform + pos: -8.5,-23.5 + parent: 1 + - uid: 6058 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,66.5 + parent: 1 + - uid: 6059 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,61.5 + parent: 1 + - uid: 7408 + components: + - type: Transform + pos: -19.5,34.5 + parent: 1 + - uid: 7618 + components: + - type: Transform + pos: -2.5,12.5 + parent: 1 + - uid: 8789 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-15.5 + parent: 1 + - uid: 9429 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,-11.5 + parent: 1 + - uid: 9567 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-15.5 + parent: 1 + - uid: 9745 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,50.5 + parent: 1 + - uid: 12624 + components: + - type: Transform + pos: 3.5,-23.5 + parent: 1 + - uid: 14833 + components: + - type: Transform + pos: -26.5,-7.5 + parent: 1 + - uid: 14838 + components: + - type: Transform + pos: -24.5,-7.5 + parent: 1 + - uid: 15545 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,7.5 + parent: 1 + - uid: 15546 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,16.5 + parent: 1 + - uid: 15547 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,17.5 + parent: 1 + - uid: 15548 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 51.5,13.5 + parent: 1 + - uid: 15549 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 51.5,10.5 + parent: 1 + - uid: 15550 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,6.5 + parent: 1 +- proto: SignEngineering + entities: + - uid: 3278 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-5.5 + parent: 1 + - uid: 10112 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-6.5 + parent: 1 +- proto: SignEVA + entities: + - uid: 2984 + components: + - type: Transform + pos: -13.5,-4.5 + parent: 1 +- proto: SignExamroom + entities: + - uid: 3654 + components: + - type: Transform + pos: 10.5,45.5 + parent: 1 + - uid: 3655 + components: + - type: Transform + pos: 15.5,45.5 + parent: 1 +- proto: SignFire + entities: + - uid: 5812 + components: + - type: Transform + pos: -0.5,-11.5 + parent: 1 +- proto: SignGravity + entities: + - uid: 3726 + components: + - type: Transform + pos: -30.5,49.5 + parent: 1 +- proto: SignHead + entities: + - uid: 243 + components: + - type: Transform + pos: -11.5,15.5 + parent: 1 +- proto: SignHydro3 + entities: + - uid: 610 + components: + - type: Transform + pos: 4.5,29.5 + parent: 1 +- proto: SignLibrary + entities: + - uid: 1636 + components: + - type: Transform + pos: -16.5,39.5 + parent: 1 +- proto: SignMedical + entities: + - uid: 10031 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,46.5 + parent: 1 +- proto: SignMorgue + entities: + - uid: 2267 + components: + - type: Transform + pos: 25.5,47.5 + parent: 1 + - uid: 4996 + components: + - type: Transform + pos: 30.5,44.5 + parent: 1 +- proto: SignNanotrasen1 + entities: + - uid: 4363 + components: + - type: Transform + pos: -12.5,26.5 + parent: 1 +- proto: SignNanotrasen2 + entities: + - uid: 4169 + components: + - type: Transform + pos: -11.5,26.5 + parent: 1 +- proto: SignNanotrasen3 + entities: + - uid: 4168 + components: + - type: Transform + pos: -10.5,26.5 + parent: 1 +- proto: SignNanotrasen4 + entities: + - uid: 4190 + components: + - type: Transform + pos: -9.5,26.5 + parent: 1 +- proto: SignNanotrasen5 + entities: + - uid: 4309 + components: + - type: Transform + pos: -8.5,26.5 + parent: 1 +- proto: SignNosmoking + entities: + - uid: 4279 + components: + - type: Transform + pos: -9.5,-12.5 + parent: 1 +- proto: SignPrison + entities: + - uid: 2340 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,2.5 + parent: 1 +- proto: SignRadiationMed + entities: + - uid: 12310 + components: + - type: Transform + pos: -14.5,-20.5 + parent: 1 + - uid: 12886 + components: + - type: Transform + pos: -14.5,-14.5 + parent: 1 + - uid: 12887 + components: + - type: Transform + pos: -10.5,-12.5 + parent: 1 + - uid: 12889 + components: + - type: Transform + pos: -10.5,-14.5 + parent: 1 + - uid: 12890 + components: + - type: Transform + pos: -14.5,-17.5 + parent: 1 + - uid: 12893 + components: + - type: Transform + pos: -10.5,-17.5 + parent: 1 + - uid: 12990 + components: + - type: Transform + pos: -10.5,-20.5 + parent: 1 + - uid: 14399 + components: + - type: Transform + pos: -18.5,-30.5 + parent: 1 + - uid: 14409 + components: + - type: Transform + pos: -22.5,-30.5 + parent: 1 + - uid: 15571 + components: + - type: Transform + pos: -10.5,-23.5 + parent: 1 + - uid: 15572 + components: + - type: Transform + pos: -10.5,-27.5 + parent: 1 + - uid: 15580 + components: + - type: Transform + pos: -36.5,-33.5 + parent: 1 + - uid: 15581 + components: + - type: Transform + pos: -36.5,-31.5 + parent: 1 + - uid: 15582 + components: + - type: Transform + pos: -22.5,-43.5 + parent: 1 + - uid: 15583 + components: + - type: Transform + pos: -18.5,-43.5 + parent: 1 + - uid: 15669 + components: + - type: Transform + pos: -17.5,-31.5 + parent: 1 + - uid: 15670 + components: + - type: Transform + pos: -23.5,-31.5 + parent: 1 + - uid: 15701 + components: + - type: Transform + pos: -23.5,-35.5 + parent: 1 + - uid: 15702 + components: + - type: Transform + pos: -17.5,-35.5 + parent: 1 + - uid: 15713 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-24.5 + parent: 1 + - uid: 15714 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-22.5 + parent: 1 + - uid: 15715 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,-21.5 + parent: 1 + - uid: 15716 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,-21.5 + parent: 1 + - uid: 15717 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,-21.5 + parent: 1 +- proto: SignRND + entities: + - uid: 9869 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,15.5 + parent: 1 +- proto: SignScience2 + entities: + - uid: 1682 + components: + - type: Transform + pos: 7.5,15.5 + parent: 1 +- proto: SignSecureMed + entities: + - uid: 1651 + components: + - type: Transform + pos: -24.5,6.5 + parent: 1 + - uid: 2087 + components: + - type: Transform + pos: -22.5,6.5 + parent: 1 + - uid: 2270 + components: + - type: Transform + pos: 25.5,44.5 + parent: 1 + - uid: 9828 + components: + - type: Transform + pos: 3.5,0.5 + parent: 1 + - uid: 10020 + components: + - type: Transform + pos: 0.5,0.5 + parent: 1 +- proto: SignSecurity + entities: + - uid: 9995 + components: + - type: Transform + pos: -16.5,11.5 + parent: 1 +- proto: SignShipDock + entities: + - uid: 89 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,56.5 + parent: 1 + - uid: 3430 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,61.5 + parent: 1 + - uid: 7690 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,61.5 + parent: 1 + - uid: 8155 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,56.5 + parent: 1 + - uid: 15263 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -49.5,58.5 + parent: 1 + - uid: 15264 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -47.5,58.5 + parent: 1 + - uid: 15265 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,58.5 + parent: 1 +- proto: SignTelecomms + entities: + - uid: 2977 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-11.5 + parent: 1 + - uid: 10202 + components: + - type: Transform + pos: -29.5,-8.5 + parent: 1 +- proto: SignToolStorage + entities: + - uid: 13252 + components: + - type: Transform + pos: -3.5,35.5 + parent: 1 +- proto: SignVirology + entities: + - uid: 2888 + components: + - type: Transform + pos: 10.5,57.5 + parent: 1 + - uid: 3293 + components: + - type: Transform + pos: 14.5,57.5 + parent: 1 +- proto: SinkWide + entities: + - uid: 38 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,32.5 + parent: 1 + - uid: 247 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,32.5 + parent: 1 + - uid: 1062 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,28.5 + parent: 1 + - uid: 1965 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,11.5 + parent: 1 +- proto: SmartFridge + entities: + - uid: 423 + components: + - type: Transform + pos: 5.5,30.5 + parent: 1 + - uid: 1703 + components: + - type: Transform + pos: 19.5,45.5 + parent: 1 +- proto: SMESBasic + entities: + - uid: 196 + components: + - type: Transform + pos: -23.5,-8.5 + parent: 1 + - uid: 2936 + components: + - type: Transform + pos: -24.5,-8.5 + parent: 1 + - uid: 2937 + components: + - type: Transform + pos: -25.5,-8.5 + parent: 1 + - uid: 5119 + components: + - type: Transform + pos: -35.5,42.5 + parent: 1 + - uid: 5463 + components: + - type: Transform + pos: 31.5,33.5 + parent: 1 + - uid: 5597 + components: + - type: Transform + pos: -32.5,49.5 + parent: 1 + - uid: 5600 + components: + - type: Transform + pos: -33.5,49.5 + parent: 1 + - uid: 8336 + components: + - type: Transform + pos: 42.5,6.5 + parent: 1 + - uid: 16017 + components: + - type: Transform + pos: -14.5,-24.5 + parent: 1 +- proto: SmokingPipeFilledCannabis + entities: + - uid: 4542 + components: + - type: Transform + pos: -38.475735,-2.3900144 + parent: 1 +- proto: SolarPanel + entities: + - uid: 4160 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -46.5,44.5 + parent: 1 + - uid: 4201 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,36.5 + parent: 1 + - uid: 4277 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 41.5,35.5 + parent: 1 + - uid: 4382 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,47.5 + parent: 1 + - uid: 4420 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,43.5 + parent: 1 + - uid: 4464 + components: + - type: Transform + pos: -40.5,51.5 + parent: 1 + - uid: 4488 + components: + - type: Transform + pos: -40.5,50.5 + parent: 1 + - uid: 4495 + components: + - type: Transform + pos: -42.5,51.5 + parent: 1 + - uid: 4509 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,44.5 + parent: 1 + - uid: 4572 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,37.5 + parent: 1 + - uid: 4708 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,37.5 + parent: 1 + - uid: 4710 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,36.5 + parent: 1 + - uid: 4790 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,35.5 + parent: 1 + - uid: 4844 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,48.5 + parent: 1 + - uid: 5100 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,42.5 + parent: 1 + - uid: 5101 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,43.5 + parent: 1 + - uid: 5294 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,45.5 + parent: 1 + - uid: 5321 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,36.5 + parent: 1 + - uid: 5322 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,37.5 + parent: 1 + - uid: 5323 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,38.5 + parent: 1 + - uid: 5325 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,40.5 + parent: 1 + - uid: 5336 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,37.5 + parent: 1 + - uid: 5337 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,38.5 + parent: 1 + - uid: 5338 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,39.5 + parent: 1 + - uid: 5339 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,40.5 + parent: 1 + - uid: 5342 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -46.5,42.5 + parent: 1 + - uid: 5367 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,35.5 + parent: 1 + - uid: 5397 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,44.5 + parent: 1 + - uid: 5560 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,42.5 + parent: 1 + - uid: 5561 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,44.5 + parent: 1 + - uid: 5569 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,45.5 + parent: 1 + - uid: 5570 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,42.5 + parent: 1 + - uid: 12526 + components: + - type: Transform + pos: -42.5,47.5 + parent: 1 + - uid: 12529 + components: + - type: Transform + pos: -44.5,49.5 + parent: 1 + - uid: 12531 + components: + - type: Transform + pos: -44.5,48.5 + parent: 1 + - uid: 12590 + components: + - type: Transform + pos: -42.5,50.5 + parent: 1 + - uid: 12606 + components: + - type: Transform + pos: -44.5,47.5 + parent: 1 + - uid: 14861 + components: + - type: Transform + pos: -42.5,49.5 + parent: 1 + - uid: 14967 + components: + - type: Transform + pos: -46.5,49.5 + parent: 1 + - uid: 14992 + components: + - type: Transform + pos: -46.5,50.5 + parent: 1 + - uid: 14994 + components: + - type: Transform + pos: -48.5,51.5 + parent: 1 + - uid: 14995 + components: + - type: Transform + pos: -48.5,50.5 + parent: 1 + - uid: 15003 + components: + - type: Transform + pos: -48.5,47.5 + parent: 1 + - uid: 15004 + components: + - type: Transform + pos: -50.5,47.5 + parent: 1 + - uid: 15005 + components: + - type: Transform + pos: -50.5,48.5 + parent: 1 + - uid: 15007 + components: + - type: Transform + pos: -50.5,50.5 + parent: 1 + - uid: 15008 + components: + - type: Transform + pos: -52.5,50.5 + parent: 1 + - uid: 15010 + components: + - type: Transform + pos: -52.5,48.5 + parent: 1 + - uid: 15011 + components: + - type: Transform + pos: -52.5,47.5 + parent: 1 + - uid: 15013 + components: + - type: Transform + pos: -54.5,48.5 + parent: 1 + - uid: 15014 + components: + - type: Transform + pos: -54.5,49.5 + parent: 1 + - uid: 15017 + components: + - type: Transform + pos: -54.5,43.5 + parent: 1 + - uid: 15018 + components: + - type: Transform + pos: -52.5,45.5 + parent: 1 + - uid: 15020 + components: + - type: Transform + pos: -52.5,43.5 + parent: 1 + - uid: 15021 + components: + - type: Transform + pos: -52.5,42.5 + parent: 1 + - uid: 15022 + components: + - type: Transform + pos: -50.5,45.5 + parent: 1 + - uid: 15023 + components: + - type: Transform + pos: -50.5,44.5 + parent: 1 + - uid: 15026 + components: + - type: Transform + pos: -50.5,41.5 + parent: 1 + - uid: 15029 + components: + - type: Transform + pos: -48.5,43.5 + parent: 1 + - uid: 15030 + components: + - type: Transform + pos: -48.5,42.5 + parent: 1 + - uid: 15031 + components: + - type: Transform + pos: -46.5,45.5 + parent: 1 + - uid: 15228 + components: + - type: Transform + pos: -50.5,51.5 + parent: 1 + - uid: 15430 + components: + - type: Transform + pos: 41.5,38.5 + parent: 1 + - uid: 15431 + components: + - type: Transform + pos: 41.5,39.5 + parent: 1 + - uid: 15432 + components: + - type: Transform + pos: 41.5,40.5 + parent: 1 + - uid: 15435 + components: + - type: Transform + pos: 37.5,40.5 + parent: 1 + - uid: 15436 + components: + - type: Transform + pos: 43.5,40.5 + parent: 1 + - uid: 15437 + components: + - type: Transform + pos: 43.5,39.5 + parent: 1 + - uid: 15439 + components: + - type: Transform + pos: 43.5,37.5 + parent: 1 + - uid: 15441 + components: + - type: Transform + pos: 43.5,35.5 + parent: 1 + - uid: 15442 + components: + - type: Transform + pos: 45.5,35.5 + parent: 1 + - uid: 15444 + components: + - type: Transform + pos: 45.5,37.5 + parent: 1 + - uid: 15446 + components: + - type: Transform + pos: 45.5,39.5 + parent: 1 +- proto: SolarPanelBroken + entities: + - uid: 1755 + components: + - type: Transform + pos: 33.5,39.5 + parent: 1 + - uid: 1819 + components: + - type: Transform + pos: -40.5,49.5 + parent: 1 + - uid: 1926 + components: + - type: Transform + pos: 39.5,35.5 + parent: 1 + - uid: 1952 + components: + - type: Transform + pos: 37.5,39.5 + parent: 1 + - uid: 4425 + components: + - type: Transform + pos: -48.5,45.5 + parent: 1 + - uid: 4441 + components: + - type: Transform + pos: -48.5,44.5 + parent: 1 + - uid: 5335 + components: + - type: Transform + pos: 41.5,37.5 + parent: 1 + - uid: 10198 + components: + - type: Transform + pos: -40.5,43.5 + parent: 1 + - uid: 10302 + components: + - type: Transform + pos: -44.5,45.5 + parent: 1 + - uid: 10353 + components: + - type: Transform + pos: -46.5,43.5 + parent: 1 + - uid: 12525 + components: + - type: Transform + pos: 45.5,40.5 + parent: 1 + - uid: 12528 + components: + - type: Transform + pos: -50.5,42.5 + parent: 1 + - uid: 12592 + components: + - type: Transform + pos: 43.5,36.5 + parent: 1 + - uid: 12640 + components: + - type: Transform + pos: 43.5,38.5 + parent: 1 + - uid: 14966 + components: + - type: Transform + pos: -42.5,48.5 + parent: 1 + - uid: 14993 + components: + - type: Transform + pos: -50.5,43.5 + parent: 1 + - uid: 14996 + components: + - type: Transform + pos: -44.5,51.5 + parent: 1 + - uid: 14997 + components: + - type: Transform + pos: -44.5,50.5 + parent: 1 + - uid: 15006 + components: + - type: Transform + pos: -46.5,47.5 + parent: 1 + - uid: 15009 + components: + - type: Transform + pos: -46.5,51.5 + parent: 1 + - uid: 15012 + components: + - type: Transform + pos: -52.5,44.5 + parent: 1 + - uid: 15015 + components: + - type: Transform + pos: -48.5,48.5 + parent: 1 + - uid: 15016 + components: + - type: Transform + pos: -48.5,49.5 + parent: 1 + - uid: 15019 + components: + - type: Transform + pos: -50.5,49.5 + parent: 1 + - uid: 15024 + components: + - type: Transform + pos: -54.5,47.5 + parent: 1 + - uid: 15025 + components: + - type: Transform + pos: -52.5,49.5 + parent: 1 + - uid: 15027 + components: + - type: Transform + pos: -54.5,44.5 + parent: 1 + - uid: 15028 + components: + - type: Transform + pos: -54.5,45.5 + parent: 1 + - uid: 15433 + components: + - type: Transform + pos: 45.5,38.5 + parent: 1 + - uid: 15434 + components: + - type: Transform + pos: 45.5,36.5 + parent: 1 + - uid: 15438 + components: + - type: Transform + pos: 41.5,36.5 + parent: 1 + - uid: 15440 + components: + - type: Transform + pos: 39.5,40.5 + parent: 1 + - uid: 15443 + components: + - type: Transform + pos: 39.5,38.5 + parent: 1 + - uid: 15445 + components: + - type: Transform + pos: 37.5,38.5 + parent: 1 + - uid: 15447 + components: + - type: Transform + pos: 39.5,39.5 + parent: 1 +- proto: SolarTracker + entities: + - uid: 14867 + components: + - type: Transform + pos: -55.5,46.5 + parent: 1 + - uid: 15475 + components: + - type: Transform + pos: 47.5,34.5 + parent: 1 +- proto: SolidSecretDoor + entities: + - uid: 12158 + components: + - type: Transform + pos: 22.5,58.5 + parent: 1 +- proto: SophicScribeSpawner + entities: + - uid: 5254 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,15.5 + parent: 1 +- proto: SpareIdCabinetFilled + entities: + - uid: 636 + components: + - type: Transform + pos: -6.5,10.5 + parent: 1 +- proto: SpawnMobCorgi + entities: + - uid: 1138 + components: + - type: Transform + pos: -8.5,11.5 + parent: 1 +- proto: SpawnMobCrab + entities: + - uid: 4896 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-7.5 + parent: 1 +- proto: SpawnMobFoxRenault + entities: + - uid: 1658 + components: + - type: Transform + pos: -2.5,4.5 + parent: 1 +- proto: SpawnMobMedibot + entities: + - uid: 4508 + components: + - type: Transform + pos: 5.5,43.5 + parent: 1 +- proto: SpawnMobMonkeyPunpun + entities: + - uid: 4701 + components: + - type: Transform + pos: -5.5,29.5 + parent: 1 +- proto: SpawnMobMouse + entities: + - uid: 4551 + components: + - type: Transform + pos: 12.5,-5.5 + parent: 1 + - uid: 4556 + components: + - type: Transform + pos: 25.5,9.5 + parent: 1 + - uid: 5343 + components: + - type: Transform + pos: 15.5,66.5 + parent: 1 + - uid: 5449 + components: + - type: Transform + pos: -23.5,22.5 + parent: 1 + - uid: 6185 + components: + - type: Transform + pos: 25.5,27.5 + parent: 1 + - uid: 6188 + components: + - type: Transform + pos: 18.5,37.5 + parent: 1 + - uid: 6227 + components: + - type: Transform + pos: -31.5,44.5 + parent: 1 + - uid: 6316 + components: + - type: Transform + pos: -34.5,5.5 + parent: 1 +- proto: SpawnMobPossumMorty + entities: + - uid: 4801 + components: + - type: Transform + pos: 28.5,43.5 + parent: 1 +- proto: SpawnMobSecDogLaika + entities: + - uid: 4756 + components: + - type: Transform + pos: -18.5,13.5 + parent: 1 +- proto: SpawnMobShiva + entities: + - uid: 1972 + components: + - type: Transform + pos: -28.5,7.5 + parent: 1 +- proto: SpawnMobSlothPaperwork + entities: + - uid: 4229 + components: + - type: Transform + pos: -18.5,41.5 + parent: 1 +- proto: SpawnMobSmile + entities: + - uid: 1759 + components: + - type: Transform + pos: 22.5,16.5 + parent: 1 +- proto: SpawnMobWalter + entities: + - uid: 4800 + components: + - type: Transform + pos: 19.5,44.5 + parent: 1 +- proto: SpawnPointAtmos + entities: + - uid: 4537 + components: + - type: Transform + pos: -11.5,-7.5 + parent: 1 + - uid: 4685 + components: + - type: Transform + pos: -12.5,-7.5 + parent: 1 +- proto: SpawnPointBartender + entities: + - uid: 885 + components: + - type: Transform + pos: -11.5,29.5 + parent: 1 +- proto: SpawnPointBorg + entities: + - uid: 5751 + components: + - type: Transform + pos: 40.5,12.5 + parent: 1 + - uid: 14991 + components: + - type: Transform + pos: 41.5,11.5 + parent: 1 +- proto: SpawnPointBotanist + entities: + - uid: 303 + components: + - type: Transform + pos: 7.5,27.5 + parent: 1 + - uid: 1010 + components: + - type: Transform + pos: 8.5,27.5 + parent: 1 +- proto: SpawnPointBoxer + entities: + - uid: 3196 + components: + - type: Transform + pos: 25.5,62.5 + parent: 1 + - uid: 13249 + components: + - type: Transform + pos: 24.5,65.5 + parent: 1 +- proto: SpawnPointCaptain + entities: + - uid: 1608 + components: + - type: Transform + pos: -2.5,5.5 + parent: 1 +- proto: SpawnPointCargoTechnician + entities: + - uid: 540 + components: + - type: Transform + pos: -25.5,33.5 + parent: 1 + - uid: 617 + components: + - type: Transform + pos: -25.5,34.5 + parent: 1 + - uid: 1208 + components: + - type: Transform + pos: -25.5,32.5 + parent: 1 + - uid: 4804 + components: + - type: Transform + pos: -24.5,27.5 + parent: 1 +- proto: SpawnPointChaplain + entities: + - uid: 2389 + components: + - type: Transform + pos: 13.5,-8.5 + parent: 1 +- proto: SpawnPointChef + entities: + - uid: 620 + components: + - type: Transform + pos: 7.5,32.5 + parent: 1 +- proto: SpawnPointChemist + entities: + - uid: 4510 + components: + - type: Transform + pos: 21.5,42.5 + parent: 1 + - uid: 4567 + components: + - type: Transform + pos: 18.5,42.5 + parent: 1 +- proto: SpawnPointChiefEngineer + entities: + - uid: 3321 + components: + - type: Transform + pos: -17.5,-19.5 + parent: 1 +- proto: SpawnPointChiefMedicalOfficer + entities: + - uid: 13396 + components: + - type: Transform + pos: 22.5,54.5 + parent: 1 +- proto: SpawnPointClown + entities: + - uid: 2394 + components: + - type: Transform + pos: -37.5,3.5 + parent: 1 +- proto: SpawnPointDetective + entities: + - uid: 4587 + components: + - type: Transform + pos: -33.5,16.5 + parent: 1 +- proto: SpawnPointForensicMantis + entities: + - uid: 6273 + components: + - type: Transform + pos: 22.5,3.5 + parent: 1 +- proto: SpawnPointHeadOfPersonnel + entities: + - uid: 194 + components: + - type: Transform + pos: -11.5,12.5 + parent: 1 +- proto: SpawnPointHeadOfSecurity + entities: + - uid: 2206 + components: + - type: Transform + pos: -28.5,6.5 + parent: 1 +- proto: SpawnPointJanitor + entities: + - uid: 4418 + components: + - type: Transform + pos: 18.5,24.5 + parent: 1 + - uid: 4612 + components: + - type: Transform + pos: 20.5,24.5 + parent: 1 +- proto: SpawnPointLatejoin + entities: + - uid: 5149 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,64.5 + parent: 1 +- proto: SpawnPointLawyer + entities: + - uid: 3999 + components: + - type: Transform + pos: 3.5,62.5 + parent: 1 +- proto: SpawnPointLibrarian + entities: + - uid: 670 + components: + - type: Transform + pos: -24.5,42.5 + parent: 1 +- proto: SpawnPointLocationMidRoundAntag + entities: + - uid: 15290 + components: + - type: Transform + pos: -22.5,47.5 + parent: 1 + - uid: 15553 + components: + - type: Transform + pos: 21.5,-7.5 + parent: 1 + - uid: 15554 + components: + - type: Transform + pos: 14.5,-5.5 + parent: 1 + - uid: 15555 + components: + - type: Transform + pos: 22.5,9.5 + parent: 1 + - uid: 15556 + components: + - type: Transform + pos: 29.5,22.5 + parent: 1 + - uid: 15557 + components: + - type: Transform + pos: 29.5,26.5 + parent: 1 + - uid: 15558 + components: + - type: Transform + pos: 27.5,32.5 + parent: 1 + - uid: 15559 + components: + - type: Transform + pos: 19.5,34.5 + parent: 1 + - uid: 15560 + components: + - type: Transform + pos: 28.5,60.5 + parent: 1 + - uid: 15561 + components: + - type: Transform + pos: 25.5,65.5 + parent: 1 + - uid: 15562 + components: + - type: Transform + pos: 8.5,68.5 + parent: 1 + - uid: 15563 + components: + - type: Transform + pos: -7.5,61.5 + parent: 1 + - uid: 15564 + components: + - type: Transform + pos: -1.5,52.5 + parent: 1 + - uid: 15565 + components: + - type: Transform + pos: -16.5,49.5 + parent: 1 + - uid: 15567 + components: + - type: Transform + pos: -29.5,38.5 + parent: 1 + - uid: 15568 + components: + - type: Transform + pos: -29.5,23.5 + parent: 1 + - uid: 15569 + components: + - type: Transform + pos: -33.5,4.5 + parent: 1 + - uid: 15570 + components: + - type: Transform + pos: -28.5,-0.5 + parent: 1 +- proto: SpawnPointMailCarrier + entities: + - uid: 1223 + components: + - type: Transform + pos: -20.5,27.5 + parent: 1 + - uid: 14998 + components: + - type: Transform + pos: -17.5,26.5 + parent: 1 +- proto: SpawnPointMedicalBorg + entities: + - uid: 3343 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,50.5 + parent: 1 + - uid: 13251 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,50.5 + parent: 1 +- proto: SpawnPointMedicalDoctor + entities: + - uid: 3979 + components: + - type: Transform + pos: 18.5,50.5 + parent: 1 + - uid: 3980 + components: + - type: Transform + pos: 19.5,50.5 + parent: 1 +- proto: SpawnPointMedicalIntern + entities: + - uid: 2827 + components: + - type: Transform + pos: 11.5,51.5 + parent: 1 + - uid: 4088 + components: + - type: Transform + pos: 12.5,49.5 + parent: 1 + - uid: 14884 + components: + - type: Transform + pos: 13.5,54.5 + parent: 1 +- proto: SpawnPointMime + entities: + - uid: 2640 + components: + - type: Transform + pos: -37.5,8.5 + parent: 1 +- proto: SpawnPointMusician + entities: + - uid: 2336 + components: + - type: Transform + pos: -38.5,13.5 + parent: 1 +- proto: SpawnPointObserver + entities: + - uid: 4455 + components: + - type: Transform + pos: -6.5,24.5 + parent: 1 +- proto: SpawnPointParamedic + entities: + - uid: 4089 + components: + - type: Transform + pos: 17.5,50.5 + parent: 1 + - uid: 4090 + components: + - type: Transform + pos: 16.5,50.5 + parent: 1 +- proto: SpawnPointPassenger + entities: + - uid: 4448 + components: + - type: Transform + pos: 2.5,53.5 + parent: 1 + - uid: 4449 + components: + - type: Transform + pos: 2.5,54.5 + parent: 1 + - uid: 4605 + components: + - type: Transform + pos: 2.5,50.5 + parent: 1 + - uid: 4712 + components: + - type: Transform + pos: 2.5,51.5 + parent: 1 +- proto: SpawnPointPrisoner + entities: + - uid: 14999 + components: + - type: Transform + pos: -40.5,-6.5 + parent: 1 + - uid: 15000 + components: + - type: Transform + pos: -38.5,-9.5 + parent: 1 + - uid: 15002 + components: + - type: Transform + pos: -43.5,-3.5 + parent: 1 + - uid: 15934 + components: + - type: Transform + pos: -49.5,-4.5 + parent: 1 + - uid: 15935 + components: + - type: Transform + pos: -53.5,-12.5 + parent: 1 +- proto: SpawnPointPsychologist + entities: + - uid: 4270 + components: + - type: Transform + pos: 23.5,51.5 + parent: 1 +- proto: SpawnPointQuartermaster + entities: + - uid: 956 + components: + - type: Transform + pos: -29.5,32.5 + parent: 1 +- proto: SpawnPointReporter + entities: + - uid: 4391 + components: + - type: Transform + pos: -7.5,55.5 + parent: 1 +- proto: SpawnPointResearchAssistant + entities: + - uid: 803 + components: + - type: Transform + pos: 13.5,13.5 + parent: 1 +- proto: SpawnPointResearchDirector + entities: + - uid: 1752 + components: + - type: Transform + pos: 21.5,16.5 + parent: 1 +- proto: SpawnPointSalvageSpecialist + entities: + - uid: 152 + components: + - type: Transform + pos: -8.5,33.5 + parent: 1 + - uid: 537 + components: + - type: Transform + pos: -9.5,33.5 + parent: 1 + - uid: 1159 + components: + - type: Transform + pos: -7.5,33.5 + parent: 1 +- proto: SpawnPointScientist + entities: + - uid: 92 + components: + - type: Transform + pos: 9.5,12.5 + parent: 1 + - uid: 1369 + components: + - type: Transform + pos: 9.5,13.5 + parent: 1 +- proto: SpawnPointSecurityCadet + entities: + - uid: 2148 + components: + - type: Transform + pos: -24.5,16.5 + parent: 1 + - uid: 2149 + components: + - type: Transform + pos: -24.5,13.5 + parent: 1 +- proto: SpawnPointSecurityOfficer + entities: + - uid: 2150 + components: + - type: Transform + pos: -19.5,9.5 + parent: 1 + - uid: 2151 + components: + - type: Transform + pos: -18.5,9.5 + parent: 1 +- proto: SpawnPointServiceWorker + entities: + - uid: 4101 + components: + - type: Transform + pos: -8.5,23.5 + parent: 1 + - uid: 4132 + components: + - type: Transform + pos: -7.5,23.5 + parent: 1 + - uid: 4713 + components: + - type: Transform + pos: -3.5,23.5 + parent: 1 + - uid: 4714 + components: + - type: Transform + pos: -3.5,23.5 + parent: 1 + - uid: 7407 + components: + - type: Transform + pos: -4.5,23.5 + parent: 1 +- proto: SpawnPointStationEngineer + entities: + - uid: 2302 + components: + - type: Transform + pos: -17.5,-11.5 + parent: 1 + - uid: 3460 + components: + - type: Transform + pos: -18.5,-11.5 + parent: 1 + - uid: 16286 + components: + - type: Transform + pos: -18.5,-23.5 + parent: 1 + - uid: 16287 + components: + - type: Transform + pos: -21.5,-23.5 + parent: 1 +- proto: SpawnPointTechnicalAssistant + entities: + - uid: 2944 + components: + - type: Transform + pos: -16.5,-11.5 + parent: 1 +- proto: SpawnPointWarden + entities: + - uid: 388 + components: + - type: Transform + pos: -18.5,15.5 + parent: 1 +- proto: SprayBottle + entities: + - uid: 1970 + components: + - type: Transform + pos: 16.78857,15.282751 + parent: 1 +- proto: SprayBottleSpaceCleaner + entities: + - uid: 267 + components: + - type: Transform + pos: 21.37919,24.848787 + parent: 1 + - uid: 5745 + components: + - type: Transform + pos: 21.50419,24.723787 + parent: 1 +- proto: StasisBed + entities: + - uid: 3660 + components: + - type: Transform + pos: 7.5,48.5 + parent: 1 +- proto: StationMap + entities: + - uid: 9453 + components: + - type: Transform + pos: 4.5,14.5 + parent: 1 + - uid: 9604 + components: + - type: Transform + pos: -26.5,50.5 + parent: 1 + - uid: 9888 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,0.5 + parent: 1 + - uid: 10035 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,24.5 + parent: 1 + - uid: 10123 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,53.5 + parent: 1 + - uid: 16484 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,60.5 + parent: 1 + - uid: 16574 + components: + - type: Transform + pos: -18.5,-1.5 + parent: 1 + - uid: 16575 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,6.5 + parent: 1 + - uid: 16576 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,30.5 + parent: 1 + - uid: 16577 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,37.5 + parent: 1 + - uid: 16578 + components: + - type: Transform + pos: -22.5,43.5 + parent: 1 + - uid: 16579 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,49.5 + parent: 1 + - uid: 16580 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,60.5 + parent: 1 + - uid: 16581 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,53.5 + parent: 1 + - uid: 16582 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,44.5 + parent: 1 + - uid: 16583 + components: + - type: Transform + pos: 2.5,60.5 + parent: 1 + - uid: 16584 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,40.5 + parent: 1 + - uid: 16585 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,24.5 + parent: 1 + - uid: 16586 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,0.5 + parent: 1 + - uid: 16587 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,1.5 + parent: 1 + - uid: 16588 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,14.5 + parent: 1 + - uid: 16589 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-6.5 + parent: 1 +- proto: StationMapBroken + entities: + - uid: 5247 + components: + - type: Transform + pos: 42.5,14.5 + parent: 1 + - uid: 6196 + components: + - type: Transform + pos: 30.5,32.5 + parent: 1 +- proto: SteelOre + entities: + - uid: 6466 + components: + - type: Transform + pos: -0.91612613,39.598057 + parent: 1 + - type: Stack + count: 15 +- proto: StoolBar + entities: + - uid: 921 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,26.5 + parent: 1 + - uid: 922 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,26.5 + parent: 1 + - uid: 923 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,26.5 + parent: 1 + - uid: 924 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,26.5 + parent: 1 + - uid: 925 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,26.5 + parent: 1 +- proto: StorageCanister + entities: + - uid: 1614 + components: + - type: Transform + pos: 15.5,13.5 + parent: 1 + - uid: 1615 + components: + - type: Transform + pos: 14.5,13.5 + parent: 1 + - uid: 3105 + components: + - type: Transform + pos: -8.5,-2.5 + parent: 1 + - uid: 3241 + components: + - type: Transform + pos: -8.5,-4.5 + parent: 1 + - uid: 3242 + components: + - type: Transform + pos: -8.5,-3.5 + parent: 1 + - uid: 3508 + components: + - type: Transform + anchored: True + pos: 3.5,-20.5 + parent: 1 + - type: Physics + angularDamping: 0 + linearDamping: 0 + bodyType: Static + - uid: 13272 + components: + - type: Transform + pos: -24.5,-38.5 + parent: 1 + - uid: 13316 + components: + - type: Transform + pos: -25.5,-33.5 + parent: 1 + - uid: 13421 + components: + - type: Transform + pos: -25.5,-30.5 + parent: 1 +- proto: Stunbaton + entities: + - uid: 1276 + components: + - type: Transform + pos: -18.285347,12.478958 + parent: 1 + - uid: 1643 + components: + - type: Transform + pos: -18.468805,12.478958 + parent: 1 +- proto: SubstationBasic + entities: + - uid: 4180 + components: + - type: Transform + pos: -32.5,20.5 + parent: 1 + - uid: 4197 + components: + - type: Transform + pos: 28.5,38.5 + parent: 1 + - uid: 4202 + components: + - type: Transform + pos: 23.5,22.5 + parent: 1 + - uid: 4486 + components: + - type: Transform + pos: -29.5,40.5 + parent: 1 + - uid: 4617 + components: + - type: Transform + pos: -34.5,42.5 + parent: 1 + - uid: 4629 + components: + - type: Transform + pos: 23.5,-2.5 + parent: 1 + - uid: 4670 + components: + - type: Transform + pos: -11.5,60.5 + parent: 1 + - uid: 5499 + components: + - type: Transform + pos: -18.5,-7.5 + parent: 1 + - uid: 5601 + components: + - type: Transform + pos: -31.5,47.5 + parent: 1 + - uid: 6057 + components: + - type: Transform + pos: 18.5,59.5 + parent: 1 + - uid: 7005 + components: + - type: Transform + pos: 2.5,9.5 + parent: 1 + - uid: 16018 + components: + - type: Transform + pos: -15.5,-24.5 + parent: 1 +- proto: SubstationWallBasic + entities: + - uid: 4607 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 40.5,5.5 + parent: 1 +- proto: SuitStorageEngi + entities: + - uid: 15637 + components: + - type: Transform + pos: -27.5,-41.5 + parent: 1 + - uid: 15638 + components: + - type: Transform + pos: -26.5,-41.5 + parent: 1 +- proto: SuitStorageEVA + entities: + - uid: 2317 + components: + - type: Transform + pos: -12.5,-0.5 + parent: 1 + - uid: 2498 + components: + - type: Transform + pos: -12.5,-1.5 + parent: 1 + - uid: 3033 + components: + - type: Transform + pos: -10.5,-0.5 + parent: 1 + - uid: 3273 + components: + - type: Transform + pos: -12.5,-2.5 + parent: 1 + - uid: 3373 + components: + - type: Transform + pos: -10.5,-2.5 + parent: 1 + - uid: 3426 + components: + - type: Transform + pos: -10.5,-1.5 + parent: 1 +- proto: SuitStorageRD + entities: + - uid: 1947 + components: + - type: Transform + pos: 26.5,15.5 + parent: 1 +- proto: SuitStorageSalv + entities: + - uid: 297 + components: + - type: Transform + pos: -9.5,34.5 + parent: 1 + - uid: 732 + components: + - type: Transform + pos: -8.5,34.5 + parent: 1 + - uid: 1013 + components: + - type: Transform + pos: -7.5,34.5 + parent: 1 +- proto: SuitStorageSec + entities: + - uid: 2130 + components: + - type: Transform + pos: -21.5,5.5 + parent: 1 + - uid: 2181 + components: + - type: Transform + pos: -21.5,4.5 + parent: 1 +- proto: Supermatter + entities: + - uid: 3313 + components: + - type: Transform + pos: -20.5,-33.5 + parent: 1 +- proto: SurveillanceCameraCommand + entities: + - uid: 4278 + components: + - type: Transform + pos: 19.5,27.5 + parent: 1 + - uid: 5416 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-0.5 + parent: 1 + - uid: 5865 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-16.5 + parent: 1 + - uid: 6020 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,-10.5 + parent: 1 + - uid: 6184 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,12.5 + parent: 1 + - uid: 6257 + components: + - type: Transform + pos: -10.5,4.5 + parent: 1 + - uid: 6280 + components: + - type: Transform + pos: -4.5,11.5 + parent: 1 + - uid: 6420 + components: + - type: Transform + pos: 23.5,11.5 + parent: 1 + - uid: 6452 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,6.5 + parent: 1 + - uid: 6475 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,13.5 + parent: 1 + - uid: 6481 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,3.5 + parent: 1 + - uid: 6483 + components: + - type: Transform + pos: 39.5,15.5 + parent: 1 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + - uid: 6493 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-2.5 + parent: 1 + - uid: 6494 + components: + - type: Transform + pos: -33.5,47.5 + parent: 1 + - uid: 6532 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,13.5 + parent: 1 + - uid: 6538 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,9.5 + parent: 1 + - uid: 6539 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 39.5,8.5 + parent: 1 + - uid: 6544 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,14.5 + parent: 1 +- proto: SurveillanceCameraEngineering + entities: + - uid: 5512 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-15.5 + parent: 1 + - uid: 5954 + components: + - type: Transform + pos: 27.5,37.5 + parent: 1 + - uid: 6041 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,40.5 + parent: 1 + - uid: 6064 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,-7.5 + parent: 1 + - uid: 6086 + components: + - type: Transform + pos: -35.5,40.5 + parent: 1 + - uid: 6217 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,23.5 + parent: 1 + - uid: 6258 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-20.5 + parent: 1 + - uid: 6262 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-5.5 + parent: 1 + - uid: 6404 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,34.5 + parent: 1 + - uid: 6423 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-3.5 + parent: 1 + - uid: 6460 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 34.5,33.5 + parent: 1 + - uid: 6478 + components: + - type: Transform + pos: -15.5,-16.5 + parent: 1 + - uid: 6480 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,62.5 + parent: 1 + - uid: 6485 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,-9.5 + parent: 1 + - uid: 6488 + components: + - type: Transform + pos: -32.5,47.5 + parent: 1 + - uid: 6497 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-9.5 + parent: 1 + - uid: 6498 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,-5.5 + parent: 1 + - uid: 6522 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,21.5 + parent: 1 + - uid: 6548 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-17.5 + parent: 1 + - uid: 6560 + components: + - type: Transform + pos: -26.5,-10.5 + parent: 1 + - uid: 15605 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,-25.5 + parent: 1 + - uid: 16296 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,-26.5 + parent: 1 + - uid: 16298 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-29.5 + parent: 1 + - uid: 16299 + components: + - type: Transform + pos: -15.5,-41.5 + parent: 1 + - uid: 16300 + components: + - type: Transform + pos: -26.5,-41.5 + parent: 1 + - uid: 16301 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,-32.5 + parent: 1 + - uid: 16302 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,-22.5 + parent: 1 + - uid: 16303 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-22.5 + parent: 1 + - uid: 16304 + components: + - type: Transform + pos: -7.5,-26.5 + parent: 1 + - uid: 16305 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,-25.5 + parent: 1 +- proto: SurveillanceCameraGeneral + entities: + - uid: 820 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,25.5 + parent: 1 + - uid: 5154 + components: + - type: Transform + pos: -23.5,47.5 + parent: 1 + - uid: 5333 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,30.5 + parent: 1 + - uid: 5385 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,38.5 + parent: 1 + - uid: 5783 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,45.5 + parent: 1 + - uid: 5976 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,4.5 + parent: 1 + - uid: 6073 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,24.5 + parent: 1 + - uid: 6096 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,14.5 + parent: 1 + - uid: 6368 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,35.5 + parent: 1 + - uid: 6411 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,22.5 + parent: 1 + - uid: 6440 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-5.5 + parent: 1 + - uid: 6448 + components: + - type: Transform + pos: -1.5,51.5 + parent: 1 + - uid: 6449 + components: + - type: Transform + pos: -0.5,55.5 + parent: 1 + - uid: 6459 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,15.5 + parent: 1 + - uid: 6469 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,6.5 + parent: 1 + - uid: 6482 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,49.5 + parent: 1 + - uid: 6484 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,57.5 + parent: 1 + - uid: 6517 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,60.5 + parent: 1 +- proto: SurveillanceCameraMedical + entities: + - uid: 5581 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,49.5 + parent: 1 + - uid: 5808 + components: + - type: Transform + pos: 22.5,46.5 + parent: 1 + - uid: 5964 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,50.5 + parent: 1 + - uid: 6453 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,44.5 + parent: 1 + - uid: 6515 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,44.5 + parent: 1 + - uid: 6516 + components: + - type: Transform + pos: 20.5,41.5 + parent: 1 + - uid: 6540 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,65.5 + parent: 1 + - uid: 6541 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,55.5 + parent: 1 + - uid: 6542 + components: + - type: Transform + pos: 23.5,54.5 + parent: 1 + - uid: 6543 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,45.5 + parent: 1 + - uid: 6554 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,42.5 + parent: 1 +- proto: SurveillanceCameraMonitorCircuitboard + entities: + - uid: 10247 + components: + - type: Transform + pos: -9.42506,58.56457 + parent: 1 +- proto: SurveillanceCameraRouterCommand + entities: + - uid: 4385 + components: + - type: Transform + pos: 23.5,28.5 + parent: 1 +- proto: SurveillanceCameraRouterConstructed + entities: + - uid: 5309 + components: + - type: Transform + pos: 20.5,27.5 + parent: 1 +- proto: SurveillanceCameraRouterEngineering + entities: + - uid: 5390 + components: + - type: Transform + pos: 17.5,28.5 + parent: 1 +- proto: SurveillanceCameraRouterGeneral + entities: + - uid: 5147 + components: + - type: Transform + pos: 18.5,27.5 + parent: 1 +- proto: SurveillanceCameraRouterMedical + entities: + - uid: 4578 + components: + - type: Transform + pos: 23.5,29.5 + parent: 1 +- proto: SurveillanceCameraRouterScience + entities: + - uid: 5311 + components: + - type: Transform + pos: 17.5,30.5 + parent: 1 +- proto: SurveillanceCameraRouterSecurity + entities: + - uid: 4927 + components: + - type: Transform + pos: 23.5,30.5 + parent: 1 +- proto: SurveillanceCameraRouterService + entities: + - uid: 4926 + components: + - type: Transform + pos: 22.5,27.5 + parent: 1 +- proto: SurveillanceCameraRouterSupply + entities: + - uid: 5138 + components: + - type: Transform + pos: 17.5,29.5 + parent: 1 +- proto: SurveillanceCameraScience + entities: + - uid: 6186 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,7.5 + parent: 1 + - uid: 6454 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,15.5 + parent: 1 + - uid: 6531 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,18.5 + parent: 1 + - uid: 6546 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,15.5 + parent: 1 + - uid: 6547 + components: + - type: Transform + pos: 25.5,14.5 + parent: 1 +- proto: SurveillanceCameraSecurity + entities: + - uid: 4919 + components: + - type: Transform + pos: -19.5,12.5 + parent: 1 + - uid: 5671 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,18.5 + parent: 1 + - uid: 6072 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,20.5 + parent: 1 + - uid: 6245 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,10.5 + parent: 1 + - uid: 6325 + components: + - type: Transform + pos: -29.5,6.5 + parent: 1 + - uid: 6438 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,-5.5 + parent: 1 + - uid: 6470 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -34.5,-0.5 + parent: 1 + - uid: 6479 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,63.5 + parent: 1 + - uid: 6512 + components: + - type: Transform + pos: -23.5,3.5 + parent: 1 +- proto: SurveillanceCameraService + entities: + - uid: 5564 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,29.5 + parent: 1 + - uid: 5741 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,0.5 + parent: 1 + - uid: 6004 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,28.5 + parent: 1 + - uid: 6074 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,20.5 + parent: 1 + - uid: 6099 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,25.5 + parent: 1 + - uid: 6111 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,41.5 + parent: 1 + - uid: 6477 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,58.5 + parent: 1 + - uid: 6487 + components: + - type: Transform + pos: 12.5,31.5 + parent: 1 + - uid: 6545 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,30.5 + parent: 1 + - uid: 6555 + components: + - type: Transform + pos: -38.5,11.5 + parent: 1 + - uid: 6556 + components: + - type: Transform + pos: -38.5,1.5 + parent: 1 + - uid: 6557 + components: + - type: Transform + pos: -38.5,6.5 + parent: 1 + - uid: 6558 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,33.5 + parent: 1 + - uid: 6559 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,42.5 + parent: 1 + - uid: 6561 + components: + - type: Transform + pos: 12.5,-10.5 + parent: 1 +- proto: SurveillanceCameraSupply + entities: + - uid: 5439 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,34.5 + parent: 1 + - uid: 6298 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,38.5 + parent: 1 + - uid: 6456 + components: + - type: Transform + pos: -8.5,32.5 + parent: 1 + - uid: 6472 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,33.5 + parent: 1 + - uid: 6473 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,35.5 + parent: 1 + - uid: 6474 + components: + - type: Transform + pos: -18.5,25.5 + parent: 1 + - uid: 6511 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,27.5 + parent: 1 + - uid: 6552 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,46.5 + parent: 1 + - uid: 6553 + components: + - type: Transform + pos: -2.5,32.5 + parent: 1 +- proto: SurveillanceWirelessCameraAnchoredEntertainment + entities: + - uid: 4226 + components: + - type: Transform + pos: -8.5,58.5 + parent: 1 +- proto: SurveillanceWirelessCameraMovableEntertainment + entities: + - uid: 4225 + components: + - type: Transform + pos: -7.5,58.5 + parent: 1 +- proto: SynthesizerInstrument + entities: + - uid: 290 + components: + - type: Transform + pos: -7.425043,18.671097 + parent: 1 +- proto: SyringeAmbuzol + entities: + - uid: 3592 + components: + - type: Transform + pos: 10.362931,65.59865 + parent: 1 + - uid: 3741 + components: + - type: Transform + pos: 10.564735,65.50692 + parent: 1 +- proto: SyringeInaprovaline + entities: + - uid: 3740 + components: + - type: Transform + pos: 8.49165,54.675156 + parent: 1 +- proto: Table + entities: + - uid: 14 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,34.5 + parent: 1 + - uid: 15 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,33.5 + parent: 1 + - uid: 56 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,18.5 + parent: 1 + - uid: 84 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,5.5 + parent: 1 + - uid: 87 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,29.5 + parent: 1 + - uid: 119 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,35.5 + parent: 1 + - uid: 120 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,35.5 + parent: 1 + - uid: 121 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,35.5 + parent: 1 + - uid: 134 + components: + - type: Transform + pos: -7.5,7.5 + parent: 1 + - uid: 165 + components: + - type: Transform + pos: -0.5,32.5 + parent: 1 + - uid: 330 + components: + - type: Transform + pos: -0.5,34.5 + parent: 1 + - uid: 386 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,18.5 + parent: 1 + - uid: 465 + components: + - type: Transform + pos: -23.5,34.5 + parent: 1 + - uid: 559 + components: + - type: Transform + pos: 16.5,14.5 + parent: 1 + - uid: 607 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,7.5 + parent: 1 + - uid: 637 + components: + - type: Transform + pos: -0.5,33.5 + parent: 1 + - uid: 643 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,29.5 + parent: 1 + - uid: 778 + components: + - type: Transform + pos: -23.5,33.5 + parent: 1 + - uid: 813 + components: + - type: Transform + pos: -7.5,8.5 + parent: 1 + - uid: 814 + components: + - type: Transform + pos: 22.5,42.5 + parent: 1 + - uid: 821 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,32.5 + parent: 1 + - uid: 1111 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,18.5 + parent: 1 + - uid: 1173 + components: + - type: Transform + pos: -8.5,8.5 + parent: 1 + - uid: 1219 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,18.5 + parent: 1 + - uid: 1271 + components: + - type: Transform + pos: -0.5,13.5 + parent: 1 + - uid: 1345 + components: + - type: Transform + pos: 9.5,5.5 + parent: 1 + - uid: 1352 + components: + - type: Transform + pos: 10.5,5.5 + parent: 1 + - uid: 1405 + components: + - type: Transform + pos: -10.5,5.5 + parent: 1 + - uid: 1406 + components: + - type: Transform + pos: -10.5,4.5 + parent: 1 + - uid: 1553 + components: + - type: Transform + pos: -8.5,7.5 + parent: 1 + - uid: 1653 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,43.5 + parent: 1 + - uid: 1677 + components: + - type: Transform + pos: 3.5,-4.5 + parent: 1 + - uid: 1832 + components: + - type: Transform + pos: 16.5,15.5 + parent: 1 + - uid: 1977 + components: + - type: Transform + pos: 3.5,-3.5 + parent: 1 + - uid: 2067 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,7.5 + parent: 1 + - uid: 2274 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,44.5 + parent: 1 + - uid: 2303 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,-9.5 + parent: 1 + - uid: 2527 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,42.5 + parent: 1 + - uid: 2591 + components: + - type: Transform + pos: -11.5,-8.5 + parent: 1 + - uid: 2648 + components: + - type: Transform + pos: -12.5,-8.5 + parent: 1 + - uid: 2680 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,-8.5 + parent: 1 + - uid: 2689 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-9.5 + parent: 1 + - uid: 2785 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-8.5 + parent: 1 + - uid: 2969 + components: + - type: Transform + pos: -22.5,-4.5 + parent: 1 + - uid: 2970 + components: + - type: Transform + pos: -22.5,-3.5 + parent: 1 + - uid: 3074 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,42.5 + parent: 1 + - uid: 3490 + components: + - type: Transform + pos: -23.5,-10.5 + parent: 1 + - uid: 3491 + components: + - type: Transform + pos: -24.5,-10.5 + parent: 1 + - uid: 3492 + components: + - type: Transform + pos: -25.5,-10.5 + parent: 1 + - uid: 3609 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,62.5 + parent: 1 + - uid: 3610 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,64.5 + parent: 1 + - uid: 3763 + components: + - type: Transform + pos: -1.5,39.5 + parent: 1 + - uid: 3865 + components: + - type: Transform + pos: -0.5,40.5 + parent: 1 + - uid: 3875 + components: + - type: Transform + pos: -0.5,39.5 + parent: 1 + - uid: 3878 + components: + - type: Transform + pos: -0.5,41.5 + parent: 1 + - uid: 3897 + components: + - type: Transform + pos: -0.5,51.5 + parent: 1 + - uid: 3898 + components: + - type: Transform + pos: -1.5,51.5 + parent: 1 + - uid: 4070 + components: + - type: Transform + pos: -25.5,-0.5 + parent: 1 + - uid: 4086 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,9.5 + parent: 1 + - uid: 4134 + components: + - type: Transform + pos: -42.5,-2.5 + parent: 1 + - uid: 4292 + components: + - type: Transform + pos: -39.5,-8.5 + parent: 1 + - uid: 4293 + components: + - type: Transform + pos: -40.5,-8.5 + parent: 1 + - uid: 4499 + components: + - type: Transform + pos: -38.5,-2.5 + parent: 1 + - uid: 4657 + components: + - type: Transform + pos: -38.5,-8.5 + parent: 1 + - uid: 4658 + components: + - type: Transform + pos: -38.5,-7.5 + parent: 1 + - uid: 4659 + components: + - type: Transform + pos: -39.5,-7.5 + parent: 1 + - uid: 4738 + components: + - type: Transform + pos: 34.5,42.5 + parent: 1 + - uid: 4787 + components: + - type: Transform + pos: 33.5,42.5 + parent: 1 + - uid: 4887 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,47.5 + parent: 1 + - uid: 4968 + components: + - type: Transform + pos: -40.5,-7.5 + parent: 1 + - uid: 4979 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,61.5 + parent: 1 + - uid: 5123 + components: + - type: Transform + pos: -9.5,60.5 + parent: 1 + - uid: 5460 + components: + - type: Transform + pos: 1.5,33.5 + parent: 1 + - uid: 5511 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,49.5 + parent: 1 + - uid: 5515 + components: + - type: Transform + pos: -10.5,60.5 + parent: 1 + - uid: 5522 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,64.5 + parent: 1 + - uid: 5528 + components: + - type: Transform + pos: 18.5,3.5 + parent: 1 + - uid: 5545 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,63.5 + parent: 1 + - uid: 5678 + components: + - type: Transform + pos: -26.5,-0.5 + parent: 1 + - uid: 5681 + components: + - type: Transform + pos: 25.5,37.5 + parent: 1 + - uid: 5742 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,49.5 + parent: 1 + - uid: 5813 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,61.5 + parent: 1 + - uid: 5825 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,49.5 + parent: 1 + - uid: 5826 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,47.5 + parent: 1 + - uid: 5831 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,47.5 + parent: 1 + - uid: 5898 + components: + - type: Transform + pos: 25.5,38.5 + parent: 1 + - uid: 6121 + components: + - type: Transform + pos: 8.5,67.5 + parent: 1 + - uid: 6122 + components: + - type: Transform + pos: 7.5,67.5 + parent: 1 + - uid: 6140 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,66.5 + parent: 1 + - uid: 6141 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,65.5 + parent: 1 + - uid: 6153 + components: + - type: Transform + pos: 18.5,2.5 + parent: 1 + - uid: 6175 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,26.5 + parent: 1 + - uid: 6238 + components: + - type: Transform + pos: -24.5,-0.5 + parent: 1 + - uid: 6272 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,27.5 + parent: 1 + - uid: 6275 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,27.5 + parent: 1 + - uid: 6278 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,66.5 + parent: 1 + - uid: 6334 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,-19.5 + parent: 1 + - uid: 6379 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,26.5 + parent: 1 + - uid: 10261 + components: + - type: Transform + pos: -35.5,-3.5 + parent: 1 + - uid: 12296 + components: + - type: Transform + pos: 19.5,41.5 + parent: 1 + - uid: 12658 + components: + - type: Transform + pos: -36.5,-3.5 + parent: 1 + - uid: 15629 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,-39.5 + parent: 1 + - uid: 15630 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,-38.5 + parent: 1 + - uid: 15635 + components: + - type: Transform + pos: -29.5,-41.5 + parent: 1 + - uid: 15636 + components: + - type: Transform + pos: -28.5,-41.5 + parent: 1 + - uid: 15675 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,-25.5 + parent: 1 + - uid: 15676 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,-25.5 + parent: 1 + - uid: 15677 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,-25.5 + parent: 1 + - uid: 16288 + components: + - type: Transform + pos: -20.5,-22.5 + parent: 1 + - uid: 16289 + components: + - type: Transform + pos: -19.5,-22.5 + parent: 1 + - uid: 16544 + components: + - type: Transform + pos: -21.5,33.5 + parent: 1 +- proto: TableCarpet + entities: + - uid: 4243 + components: + - type: Transform + pos: 21.5,4.5 + parent: 1 + - uid: 4437 + components: + - type: Transform + pos: 24.5,4.5 + parent: 1 + - uid: 6056 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,3.5 + parent: 1 + - uid: 6137 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,3.5 + parent: 1 + - uid: 6320 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,2.5 + parent: 1 + - uid: 6339 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,4.5 + parent: 1 + - uid: 6428 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,4.5 + parent: 1 +- proto: TableCounterWood + entities: + - uid: 348 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,27.5 + parent: 1 + - uid: 926 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,29.5 + parent: 1 + - uid: 927 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,28.5 + parent: 1 + - uid: 930 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,27.5 + parent: 1 + - uid: 931 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,27.5 + parent: 1 + - uid: 932 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,27.5 + parent: 1 + - uid: 933 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,27.5 + parent: 1 + - uid: 1182 + components: + - type: Transform + pos: -9.5,56.5 + parent: 1 + - uid: 1464 + components: + - type: Transform + pos: -9.5,54.5 + parent: 1 + - uid: 3883 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,58.5 + parent: 1 + - uid: 3885 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,57.5 + parent: 1 + - uid: 3886 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,57.5 + parent: 1 + - uid: 3887 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,57.5 + parent: 1 + - uid: 4100 + components: + - type: Transform + pos: -9.5,55.5 + parent: 1 +- proto: TableGlass + entities: + - uid: 574 + components: + - type: Transform + pos: 10.5,18.5 + parent: 1 + - uid: 1725 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,19.5 + parent: 1 +- proto: TablePlasmaGlass + entities: + - uid: 5243 + components: + - type: Transform + pos: 45.5,11.5 + parent: 1 + - uid: 5244 + components: + - type: Transform + pos: 45.5,12.5 + parent: 1 +- proto: TableReinforced + entities: + - uid: 213 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,13.5 + parent: 1 + - uid: 262 + components: + - type: Transform + pos: 6.5,43.5 + parent: 1 + - uid: 336 + components: + - type: Transform + pos: 7.5,43.5 + parent: 1 + - uid: 350 + components: + - type: Transform + pos: 8.5,43.5 + parent: 1 + - uid: 374 + components: + - type: Transform + pos: -19.5,32.5 + parent: 1 + - uid: 505 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,18.5 + parent: 1 + - uid: 560 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,30.5 + parent: 1 + - uid: 561 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,28.5 + parent: 1 + - uid: 611 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,33.5 + parent: 1 + - uid: 613 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,34.5 + parent: 1 + - uid: 614 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,30.5 + parent: 1 + - uid: 627 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,27.5 + parent: 1 + - uid: 640 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,12.5 + parent: 1 + - uid: 737 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,13.5 + parent: 1 + - uid: 850 + components: + - type: Transform + pos: -20.5,12.5 + parent: 1 + - uid: 857 + components: + - type: Transform + pos: -19.5,33.5 + parent: 1 + - uid: 900 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,12.5 + parent: 1 + - uid: 1004 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,14.5 + parent: 1 + - uid: 1028 + components: + - type: Transform + pos: -19.5,12.5 + parent: 1 + - uid: 1169 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,35.5 + parent: 1 + - uid: 1177 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,46.5 + parent: 1 + - uid: 1307 + components: + - type: Transform + pos: -16.5,14.5 + parent: 1 + - uid: 1482 + components: + - type: Transform + pos: -18.5,12.5 + parent: 1 + - uid: 1521 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,19.5 + parent: 1 + - uid: 1528 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,21.5 + parent: 1 + - uid: 1686 + components: + - type: Transform + pos: -17.5,12.5 + parent: 1 + - uid: 1750 + components: + - type: Transform + pos: -16.5,15.5 + parent: 1 + - uid: 1859 + components: + - type: Transform + pos: 8.5,57.5 + parent: 1 + - uid: 2016 + components: + - type: Transform + pos: -18.5,16.5 + parent: 1 + - uid: 2017 + components: + - type: Transform + pos: -17.5,16.5 + parent: 1 + - uid: 2438 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,46.5 + parent: 1 + - uid: 2488 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,64.5 + parent: 1 + - uid: 2543 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-8.5 + parent: 1 + - uid: 2544 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,-10.5 + parent: 1 + - uid: 2545 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-10.5 + parent: 1 + - uid: 2560 + components: + - type: Transform + pos: -29.5,-17.5 + parent: 1 + - uid: 2744 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,49.5 + parent: 1 + - uid: 2776 + components: + - type: Transform + pos: 16.5,42.5 + parent: 1 + - uid: 2781 + components: + - type: Transform + pos: -19.5,-4.5 + parent: 1 + - uid: 2820 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,54.5 + parent: 1 + - uid: 2848 + components: + - type: Transform + pos: -19.5,-3.5 + parent: 1 + - uid: 2939 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,44.5 + parent: 1 + - uid: 3156 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-8.5 + parent: 1 + - uid: 3157 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,-8.5 + parent: 1 + - uid: 3174 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,51.5 + parent: 1 + - uid: 3176 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-10.5 + parent: 1 + - uid: 3294 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,49.5 + parent: 1 + - uid: 3381 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,50.5 + parent: 1 + - uid: 3415 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,51.5 + parent: 1 + - uid: 3565 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,48.5 + parent: 1 + - uid: 3614 + components: + - type: Transform + pos: 12.5,44.5 + parent: 1 + - uid: 3951 + components: + - type: Transform + pos: 1.5,63.5 + parent: 1 + - uid: 3952 + components: + - type: Transform + pos: 1.5,62.5 + parent: 1 + - uid: 3957 + components: + - type: Transform + pos: 3.5,63.5 + parent: 1 + - uid: 4299 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,23.5 + parent: 1 + - uid: 4353 + components: + - type: Transform + pos: -7.5,54.5 + parent: 1 + - uid: 4691 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,24.5 + parent: 1 + - uid: 5629 + components: + - type: Transform + pos: 21.5,-8.5 + parent: 1 + - uid: 6142 + components: + - type: Transform + pos: 20.5,-8.5 + parent: 1 +- proto: TableWood + entities: + - uid: 9 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,6.5 + parent: 1 + - uid: 135 + components: + - type: Transform + pos: -21.5,40.5 + parent: 1 + - uid: 136 + components: + - type: Transform + pos: -21.5,39.5 + parent: 1 + - uid: 146 + components: + - type: Transform + pos: 12.5,27.5 + parent: 1 + - uid: 240 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,28.5 + parent: 1 + - uid: 301 + components: + - type: Transform + pos: 14.5,7.5 + parent: 1 + - uid: 317 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,26.5 + parent: 1 + - uid: 382 + components: + - type: Transform + pos: -21.5,41.5 + parent: 1 + - uid: 393 + components: + - type: Transform + pos: -24.5,40.5 + parent: 1 + - uid: 403 + components: + - type: Transform + pos: 14.5,-2.5 + parent: 1 + - uid: 450 + components: + - type: Transform + pos: -29.5,33.5 + parent: 1 + - uid: 714 + components: + - type: Transform + pos: 12.5,28.5 + parent: 1 + - uid: 862 + components: + - type: Transform + pos: -19.5,42.5 + parent: 1 + - uid: 917 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,30.5 + parent: 1 + - uid: 919 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,30.5 + parent: 1 + - uid: 993 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,27.5 + parent: 1 + - uid: 1175 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,6.5 + parent: 1 + - uid: 1179 + components: + - type: Transform + pos: -25.5,40.5 + parent: 1 + - uid: 1186 + components: + - type: Transform + pos: 12.5,26.5 + parent: 1 + - uid: 1198 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,27.5 + parent: 1 + - uid: 1236 + components: + - type: Transform + pos: -18.5,42.5 + parent: 1 + - uid: 1240 + components: + - type: Transform + pos: -28.5,33.5 + parent: 1 + - uid: 1256 + components: + - type: Transform + pos: 14.5,6.5 + parent: 1 + - uid: 1306 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,3.5 + parent: 1 + - uid: 1353 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,26.5 + parent: 1 + - uid: 1724 + components: + - type: Transform + pos: 11.5,-1.5 + parent: 1 + - uid: 1773 + components: + - type: Transform + pos: 14.5,-1.5 + parent: 1 + - uid: 1803 + components: + - type: Transform + pos: 13.5,-1.5 + parent: 1 + - uid: 1935 + components: + - type: Transform + pos: 20.5,15.5 + parent: 1 + - uid: 1986 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,3.5 + parent: 1 + - uid: 1987 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,3.5 + parent: 1 + - uid: 1988 + components: + - type: Transform + pos: 10.5,-2.5 + parent: 1 + - uid: 1989 + components: + - type: Transform + pos: 10.5,-1.5 + parent: 1 + - uid: 2091 + components: + - type: Transform + pos: -28.5,11.5 + parent: 1 + - uid: 2092 + components: + - type: Transform + pos: -28.5,10.5 + parent: 1 + - uid: 2403 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,1.5 + parent: 1 + - uid: 2404 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,1.5 + parent: 1 + - uid: 2432 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,9.5 + parent: 1 + - uid: 2433 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,9.5 + parent: 1 + - uid: 2454 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,11.5 + parent: 1 + - uid: 2455 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,11.5 + parent: 1 + - uid: 2865 + components: + - type: Transform + pos: -18.5,-16.5 + parent: 1 + - uid: 2927 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,17.5 + parent: 1 + - uid: 2966 + components: + - type: Transform + pos: -16.5,-15.5 + parent: 1 + - uid: 2967 + components: + - type: Transform + pos: -17.5,-15.5 + parent: 1 + - uid: 3094 + components: + - type: Transform + pos: -18.5,-15.5 + parent: 1 + - uid: 3143 + components: + - type: Transform + pos: 13.5,-10.5 + parent: 1 + - uid: 3246 + components: + - type: Transform + pos: 14.5,-10.5 + parent: 1 + - uid: 3310 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-18.5 + parent: 1 + - uid: 3311 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-19.5 + parent: 1 + - uid: 3484 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,55.5 + parent: 1 + - uid: 3485 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,54.5 + parent: 1 + - uid: 4161 + components: + - type: Transform + pos: 27.5,50.5 + parent: 1 + - uid: 4205 + components: + - type: Transform + pos: 23.5,50.5 + parent: 1 + - uid: 4261 + components: + - type: Transform + pos: 23.5,50.5 + parent: 1 + - uid: 4262 + components: + - type: Transform + pos: 22.5,50.5 + parent: 1 + - uid: 4272 + components: + - type: Transform + pos: 22.5,51.5 + parent: 1 + - uid: 4940 + components: + - type: Transform + pos: 26.5,35.5 + parent: 1 + - uid: 5920 + components: + - type: Transform + pos: 8.5,22.5 + parent: 1 + - uid: 5921 + components: + - type: Transform + pos: 7.5,22.5 + parent: 1 + - uid: 5997 + components: + - type: Transform + pos: 19.5,35.5 + parent: 1 + - uid: 5998 + components: + - type: Transform + pos: 20.5,35.5 + parent: 1 + - uid: 6049 + components: + - type: Transform + pos: 18.5,35.5 + parent: 1 + - uid: 6143 + components: + - type: Transform + pos: 25.5,35.5 + parent: 1 + - uid: 16409 + components: + - type: Transform + pos: -4.5,-41.5 + parent: 1 +- proto: TargetHuman + entities: + - uid: 6054 + components: + - type: Transform + pos: 21.5,-6.5 + parent: 1 + - uid: 6179 + components: + - type: Transform + pos: 20.5,-6.5 + parent: 1 +- proto: TelecomServer + entities: + - uid: 407 + components: + - type: Transform + pos: 26.5,17.5 + parent: 1 + - uid: 1241 + components: + - type: Transform + pos: 3.5,-5.5 + parent: 1 + - type: ContainerContainer + containers: + key_slots: !type:Container + showEnts: False + occludes: True + ents: + - 391 + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] + - uid: 2332 + components: + - type: Transform + pos: -28.5,-13.5 + parent: 1 + - type: ContainerContainer + containers: + key_slots: !type:Container + showEnts: False + occludes: True + ents: + - 2333 + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] + - uid: 2506 + components: + - type: Transform + pos: -30.5,-14.5 + parent: 1 + - type: ContainerContainer + containers: + key_slots: !type:Container + showEnts: False + occludes: True + ents: + - 2507 + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] + - uid: 2725 + components: + - type: Transform + pos: -30.5,-13.5 + parent: 1 + - type: ContainerContainer + containers: + key_slots: !type:Container + showEnts: False + occludes: True + ents: + - 2726 + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] + - uid: 2727 + components: + - type: Transform + pos: -28.5,-12.5 + parent: 1 + - type: ContainerContainer + containers: + key_slots: !type:Container + showEnts: False + occludes: True + ents: + - 2728 + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] + - uid: 2842 + components: + - type: Transform + pos: -30.5,-12.5 + parent: 1 + - type: ContainerContainer + containers: + key_slots: !type:Container + showEnts: False + occludes: True + ents: + - 2843 + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] + - uid: 3122 + components: + - type: Transform + pos: -28.5,-14.5 + parent: 1 + - type: ContainerContainer + containers: + key_slots: !type:Container + showEnts: False + occludes: True + ents: + - 3123 + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] + - uid: 3260 + components: + - type: Transform + pos: -30.5,-15.5 + parent: 1 + - type: ContainerContainer + containers: + key_slots: !type:Container + showEnts: False + occludes: True + ents: + - 3261 + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] + - uid: 3262 + components: + - type: Transform + pos: -28.5,-15.5 + parent: 1 + - type: ContainerContainer + containers: + key_slots: !type:Container + showEnts: False + occludes: True + ents: + - 3263 + machine_board: !type:Container + showEnts: False + occludes: True + ents: [] + machine_parts: !type:Container + showEnts: False + occludes: True + ents: [] +- proto: TeslaCoil + entities: + - uid: 13497 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,-32.5 + parent: 1 + - uid: 13504 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,-34.5 + parent: 1 + - uid: 13623 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,-32.5 + parent: 1 + - uid: 13624 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,-34.5 + parent: 1 +- proto: TeslaGroundingRod + entities: + - uid: 13625 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,-33.5 + parent: 1 + - uid: 13626 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,-33.5 + parent: 1 +- proto: TeslaToy + entities: + - uid: 14935 + components: + - type: Transform + pos: 39.467525,30.478394 + parent: 1 +- proto: TimpaniInstrument + entities: + - uid: 609 + components: + - type: Transform + pos: -4.5,20.5 + parent: 1 +- proto: TintedWindow + entities: + - uid: 3324 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,54.5 + parent: 1 + - uid: 3616 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,48.5 + parent: 1 + - uid: 3627 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,51.5 + parent: 1 + - uid: 4597 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -39.5,-4.5 + parent: 1 + - uid: 4747 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -44.5,-4.5 + parent: 1 + - uid: 4796 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -43.5,-4.5 + parent: 1 + - uid: 4798 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -40.5,-4.5 + parent: 1 +- proto: TomatoSeeds + entities: + - uid: 6166 + components: + - type: Transform + pos: -50.315014,-6.393624 + parent: 1 + - uid: 10065 + components: + - type: Transform + pos: -50.315014,-6.393624 + parent: 1 +- proto: ToolboxElectricalFilled + entities: + - uid: 15633 + components: + - type: Transform + pos: -30.599892,-39.485306 + parent: 1 +- proto: ToolboxEmergencyFilled + entities: + - uid: 6156 + components: + - type: Transform + pos: 20.49129,35.567257 + parent: 1 +- proto: ToolboxGoldFilled + entities: + - uid: 2652 + components: + - type: Transform + pos: 3.5108056,-4.4626904 + parent: 1 +- proto: ToolboxMechanicalFilled + entities: + - uid: 15634 + components: + - type: Transform + pos: -30.387997,-39.18662 + parent: 1 +- proto: TorsoBorg + entities: + - uid: 4579 + components: + - type: Transform + pos: 41.398895,17.596136 + parent: 1 +- proto: ToyAi + entities: + - uid: 2285 + components: + - type: Transform + pos: 26.502884,16.651182 + parent: 1 + - uid: 5360 + components: + - type: Transform + pos: 25.503332,37.994156 + parent: 1 +- proto: ToyAmongPequeno + entities: + - uid: 14937 + components: + - type: Transform + pos: 17.499937,76.494415 + parent: 1 +- proto: ToyFigurineChiefEngineer + entities: + - uid: 15640 + components: + - type: Transform + pos: -29.530712,-41.378937 + parent: 1 +- proto: ToyFigurineMime + entities: + - uid: 2289 + components: + - type: Transform + pos: -37.21711,9.756964 + parent: 1 +- proto: ToyFigurineSecurity + entities: + - uid: 1491 + components: + - type: Transform + pos: -18.963097,12.737951 + parent: 1 +- proto: TrashBananaPeel + entities: + - uid: 14943 + components: + - type: Transform + pos: 29.678299,2.664498 + parent: 1 +- proto: trayScanner + entities: + - uid: 15690 + components: + - type: Transform + pos: -25.85299,-25.202759 + parent: 1 + - uid: 15691 + components: + - type: Transform + pos: -25.74081,-25.389437 + parent: 1 +- proto: TritiumCanister + entities: + - uid: 15573 + components: + - type: Transform + pos: -8.5,-31.5 + parent: 1 +- proto: TwoWayLever + entities: + - uid: 5331 + components: + - type: Transform + pos: 29.5,59.5 + parent: 1 + - uid: 12533 + components: + - type: Transform + pos: -20.5,31.5 + parent: 1 + - type: DeviceLinkSource + linkedPorts: + 12534: + - Left: Forward + - Right: Reverse + - Middle: Off + 12535: + - Left: Forward + - Right: Reverse + - Middle: Off + 1449: + - Left: Forward + - Right: Reverse + - Middle: Off +- proto: UniformPrinter + entities: + - uid: 307 + components: + - type: Transform + pos: -7.5,13.5 + parent: 1 +- proto: UniformShortsRedWithTop + entities: + - uid: 6311 + components: + - type: Transform + pos: 26.388903,63.686398 + parent: 1 + - uid: 6312 + components: + - type: Transform + pos: 26.664091,63.686398 + parent: 1 +- proto: UprightPianoInstrument + entities: + - uid: 1235 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,19.5 + parent: 1 +- proto: Vaccinator + entities: + - uid: 2816 + components: + - type: Transform + pos: 13.5,62.5 + parent: 1 +- proto: VariantCubeBox + entities: + - uid: 1664 + components: + - type: Transform + pos: 16.479551,15.538966 + parent: 1 + - uid: 5437 + components: + - type: Transform + pos: 7.5121136,33.749344 + parent: 1 +- proto: VendingBarDrobe + entities: + - uid: 158 + components: + - type: Transform + pos: -11.5,27.5 + parent: 1 +- proto: VendingMachineBooze + entities: + - uid: 471 + components: + - type: Transform + pos: -7.5,30.5 + parent: 1 +- proto: VendingMachineCargoDrobe + entities: + - uid: 781 + components: + - type: Transform + pos: -26.5,35.5 + parent: 1 +- proto: VendingMachineCart + entities: + - uid: 7 + components: + - type: Transform + pos: -8.5,13.5 + parent: 1 +- proto: VendingMachineChapel + entities: + - uid: 2681 + components: + - type: Transform + pos: 11.5,-7.5 + parent: 1 +- proto: VendingMachineChefDrobe + entities: + - uid: 947 + components: + - type: Transform + pos: 13.5,31.5 + parent: 1 +- proto: VendingMachineChefvend + entities: + - uid: 415 + components: + - type: Transform + pos: 8.5,35.5 + parent: 1 +- proto: VendingMachineChemicals + entities: + - uid: 1813 + components: + - type: Transform + pos: 21.5,44.5 + parent: 1 +- proto: VendingMachineCigs + entities: + - uid: 210 + components: + - type: Transform + pos: -11.5,9.5 + parent: 1 + - uid: 759 + components: + - type: Transform + pos: -17.5,7.5 + parent: 1 + - uid: 2356 + components: + - type: Transform + pos: 2.5,5.5 + parent: 1 + - uid: 3847 + components: + - type: Transform + pos: -2.5,58.5 + parent: 1 + - uid: 4557 + components: + - type: Transform + pos: -35.5,-7.5 + parent: 1 + - uid: 4823 + components: + - type: Transform + pos: 3.5,52.5 + parent: 1 + - uid: 5849 + components: + - type: Transform + pos: -13.5,12.5 + parent: 1 + - uid: 6254 + components: + - type: Transform + pos: 21.5,32.5 + parent: 1 +- proto: VendingMachineClothing + entities: + - uid: 380 + components: + - type: Transform + pos: -11.5,25.5 + parent: 1 + - uid: 989 + components: + - type: Transform + pos: 5.5,13.5 + parent: 1 + - uid: 4051 + components: + - type: Transform + pos: -28.5,47.5 + parent: 1 + - uid: 6267 + components: + - type: Transform + pos: 30.5,23.5 + parent: 1 +- proto: VendingMachineCoffee + entities: + - uid: 2292 + components: + - type: Transform + pos: 2.5,4.5 + parent: 1 + - uid: 5144 + components: + - type: Transform + pos: 25.5,6.5 + parent: 1 +- proto: VendingMachineCondiments + entities: + - uid: 255 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,35.5 + parent: 1 +- proto: VendingMachineCourierDrobe + entities: + - uid: 1657 + components: + - type: Transform + pos: -21.5,29.5 + parent: 1 +- proto: VendingMachineDetDrobe + entities: + - uid: 3414 + components: + - type: Transform + pos: -33.5,15.5 + parent: 1 +- proto: VendingMachineDinnerware + entities: + - uid: 416 + components: + - type: Transform + pos: 9.5,35.5 + parent: 1 +- proto: VendingMachineEngiDrobe + entities: + - uid: 3442 + components: + - type: Transform + pos: -31.5,-4.5 + parent: 1 +- proto: VendingMachineEngivend + entities: + - uid: 3206 + components: + - type: Transform + pos: -31.5,-5.5 + parent: 1 + - uid: 15639 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,-41.5 + parent: 1 +- proto: VendingMachineGames + entities: + - uid: 4635 + components: + - type: Transform + pos: -35.5,-8.5 + parent: 1 +- proto: VendingMachineGeneDrobe + entities: + - uid: 3077 + components: + - type: Transform + pos: 17.5,51.5 + parent: 1 +- proto: VendingMachineHydrobe + entities: + - uid: 418 + components: + - type: Transform + pos: 12.5,25.5 + parent: 1 +- proto: VendingMachineJaniDrobe + entities: + - uid: 4188 + components: + - type: Transform + pos: 21.5,25.5 + parent: 1 +- proto: VendingMachineLawDrobe + entities: + - uid: 3996 + components: + - type: Transform + pos: -0.5,63.5 + parent: 1 +- proto: VendingMachineMedical + entities: + - uid: 3648 + components: + - type: Transform + pos: 10.5,48.5 + parent: 1 +- proto: VendingMachineMediDrobe + entities: + - uid: 3623 + components: + - type: Transform + pos: 16.5,51.5 + parent: 1 +- proto: VendingMachineNutri + entities: + - uid: 1187 + components: + - type: Transform + pos: 11.5,29.5 + parent: 1 +- proto: VendingMachineRestockSmokes + entities: + - uid: 4879 + components: + - type: Transform + pos: -38.546104,-7.501818 + parent: 1 +- proto: VendingMachineRoboDrobe + entities: + - uid: 1312 + components: + - type: Transform + pos: 11.5,5.5 + parent: 1 +- proto: VendingMachineRobotics + entities: + - uid: 440 + components: + - type: Transform + pos: 14.5,5.5 + parent: 1 +- proto: VendingMachineSalvage + entities: + - uid: 487 + components: + - type: Transform + pos: -5.5,34.5 + parent: 1 +- proto: VendingMachineSciDrobe + entities: + - uid: 1165 + components: + - type: Transform + pos: 15.5,11.5 + parent: 1 +- proto: VendingMachineSec + entities: + - uid: 1611 + components: + - type: Transform + pos: -20.5,7.5 + parent: 1 +- proto: VendingMachineSecDrobe + entities: + - uid: 2015 + components: + - type: Transform + pos: -20.5,10.5 + parent: 1 +- proto: VendingMachineSeeds + entities: + - uid: 417 + components: + - type: Transform + pos: 12.5,29.5 + parent: 1 +- proto: VendingMachineSeedsUnlocked + entities: + - uid: 14815 + components: + - type: Transform + pos: -47.5,-5.5 + parent: 1 +- proto: VendingMachineSustenance + entities: + - uid: 4496 + components: + - type: Transform + pos: -35.5,-9.5 + parent: 1 +- proto: VendingMachineTankDispenserEngineering + entities: + - uid: 3396 + components: + - type: Transform + pos: -10.5,-10.5 + parent: 1 + - uid: 15648 + components: + - type: Transform + pos: -11.5,-41.5 + parent: 1 + - uid: 15649 + components: + - type: Transform + pos: -11.5,-40.5 + parent: 1 +- proto: VendingMachineTankDispenserEVA + entities: + - uid: 3106 + components: + - type: Transform + pos: -0.5,37.5 + parent: 1 + - uid: 3360 + components: + - type: Transform + pos: -10.5,-4.5 + parent: 1 +- proto: VendingMachineTheater + entities: + - uid: 2587 + components: + - type: Transform + pos: -28.5,4.5 + parent: 1 + - uid: 5413 + components: + - type: Transform + pos: 3.5,51.5 + parent: 1 +- proto: VendingMachineVendomat + entities: + - uid: 1529 + components: + - type: Transform + pos: -2.5,51.5 + parent: 1 +- proto: VendingMachineViroDrobe + entities: + - uid: 2792 + components: + - type: Transform + pos: 13.5,65.5 + parent: 1 +- proto: VendingMachineWallMedical + entities: + - uid: 3696 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,52.5 + parent: 1 +- proto: VendingMachineWinter + entities: + - uid: 177 + components: + - type: Transform + pos: -17.5,10.5 + parent: 1 + - uid: 1216 + components: + - type: Transform + pos: -12.5,25.5 + parent: 1 + - uid: 1550 + components: + - type: Transform + pos: 6.5,13.5 + parent: 1 + - uid: 2743 + components: + - type: Transform + pos: -14.5,-12.5 + parent: 1 + - uid: 4955 + components: + - type: Transform + pos: -27.5,47.5 + parent: 1 + - uid: 5575 + components: + - type: Transform + pos: 30.5,22.5 + parent: 1 +- proto: VendingMachineYouTool + entities: + - uid: 3010 + components: + - type: Transform + pos: -31.5,-6.5 + parent: 1 + - uid: 3902 + components: + - type: Transform + pos: -2.5,53.5 + parent: 1 + - uid: 15632 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-37.5 + parent: 1 +- proto: WallmountTelescreen + entities: + - uid: 7473 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 46.5,11.5 + parent: 1 + - uid: 15721 + components: + - type: Transform + pos: -17.5,-21.5 + parent: 1 +- proto: WallReinforced + entities: + - uid: 2 + components: + - type: Transform + pos: 5.5,-0.5 + parent: 1 + - uid: 10 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,0.5 + parent: 1 + - uid: 12 + components: + - type: Transform + pos: 0.5,7.5 + parent: 1 + - uid: 36 + components: + - type: Transform + pos: -18.5,11.5 + parent: 1 + - uid: 47 + components: + - type: Transform + pos: 7.5,8.5 + parent: 1 + - uid: 51 + components: + - type: Transform + pos: -27.5,3.5 + parent: 1 + - uid: 62 + components: + - type: Transform + pos: 0.5,13.5 + parent: 1 + - uid: 71 + components: + - type: Transform + pos: 0.5,14.5 + parent: 1 + - uid: 72 + components: + - type: Transform + pos: 2.5,-6.5 + parent: 1 + - uid: 124 + components: + - type: Transform + pos: 8.5,15.5 + parent: 1 + - uid: 141 + components: + - type: Transform + pos: 0.5,-1.5 + parent: 1 + - uid: 169 + components: + - type: Transform + pos: -26.5,3.5 + parent: 1 + - uid: 187 + components: + - type: Transform + pos: 13.5,4.5 + parent: 1 + - uid: 190 + components: + - type: Transform + pos: 3.5,3.5 + parent: 1 + - uid: 192 + components: + - type: Transform + pos: -2.5,11.5 + parent: 1 + - uid: 201 + components: + - type: Transform + pos: -21.5,16.5 + parent: 1 + - uid: 203 + components: + - type: Transform + pos: -9.5,15.5 + parent: 1 + - uid: 214 + components: + - type: Transform + pos: 7.5,15.5 + parent: 1 + - uid: 218 + components: + - type: Transform + pos: -9.5,11.5 + parent: 1 + - uid: 220 + components: + - type: Transform + pos: -17.5,21.5 + parent: 1 + - uid: 225 + components: + - type: Transform + pos: -19.5,1.5 + parent: 1 + - uid: 235 + components: + - type: Transform + pos: 0.5,6.5 + parent: 1 + - uid: 250 + components: + - type: Transform + pos: 23.5,18.5 + parent: 1 + - uid: 257 + components: + - type: Transform + pos: -12.5,13.5 + parent: 1 + - uid: 269 + components: + - type: Transform + pos: -3.5,-0.5 + parent: 1 + - uid: 271 + components: + - type: Transform + pos: -1.5,-1.5 + parent: 1 + - uid: 286 + components: + - type: Transform + pos: 3.5,1.5 + parent: 1 + - uid: 288 + components: + - type: Transform + pos: -16.5,6.5 + parent: 1 + - uid: 291 + components: + - type: Transform + pos: 16.5,20.5 + parent: 1 + - uid: 292 + components: + - type: Transform + pos: 17.5,16.5 + parent: 1 + - uid: 298 + components: + - type: Transform + pos: -2.5,10.5 + parent: 1 + - uid: 300 + components: + - type: Transform + pos: -12.5,15.5 + parent: 1 + - uid: 305 + components: + - type: Transform + pos: -19.5,6.5 + parent: 1 + - uid: 324 + components: + - type: Transform + pos: 15.5,4.5 + parent: 1 + - uid: 329 + components: + - type: Transform + pos: 0.5,3.5 + parent: 1 + - uid: 337 + components: + - type: Transform + pos: -3.5,-2.5 + parent: 1 + - uid: 338 + components: + - type: Transform + pos: -17.5,17.5 + parent: 1 + - uid: 347 + components: + - type: Transform + pos: -26.5,8.5 + parent: 1 + - uid: 352 + components: + - type: Transform + pos: 10.5,21.5 + parent: 1 + - uid: 353 + components: + - type: Transform + pos: 7.5,21.5 + parent: 1 + - uid: 360 + components: + - type: Transform + pos: 8.5,21.5 + parent: 1 + - uid: 361 + components: + - type: Transform + pos: 9.5,21.5 + parent: 1 + - uid: 362 + components: + - type: Transform + pos: 11.5,21.5 + parent: 1 + - uid: 364 + components: + - type: Transform + pos: 16.5,21.5 + parent: 1 + - uid: 365 + components: + - type: Transform + pos: 16.5,22.5 + parent: 1 + - uid: 384 + components: + - type: Transform + pos: 0.5,-6.5 + parent: 1 + - uid: 385 + components: + - type: Transform + pos: 3.5,0.5 + parent: 1 + - uid: 387 + components: + - type: Transform + pos: -9.5,13.5 + parent: 1 + - uid: 395 + components: + - type: Transform + pos: 4.5,-1.5 + parent: 1 + - uid: 396 + components: + - type: Transform + pos: 11.5,22.5 + parent: 1 + - uid: 424 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,67.5 + parent: 1 + - uid: 426 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,67.5 + parent: 1 + - uid: 429 + components: + - type: Transform + pos: -27.5,21.5 + parent: 1 + - uid: 432 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,67.5 + parent: 1 + - uid: 435 + components: + - type: Transform + pos: 19.5,10.5 + parent: 1 + - uid: 443 + components: + - type: Transform + pos: -34.5,-13.5 + parent: 1 + - uid: 474 + components: + - type: Transform + pos: 6.5,-6.5 + parent: 1 + - uid: 491 + components: + - type: Transform + pos: -7.5,10.5 + parent: 1 + - uid: 500 + components: + - type: Transform + pos: -22.5,-30.5 + parent: 1 + - uid: 511 + components: + - type: Transform + pos: 2.5,10.5 + parent: 1 + - uid: 517 + components: + - type: Transform + pos: 4.5,-5.5 + parent: 1 + - uid: 528 + components: + - type: Transform + pos: 16.5,8.5 + parent: 1 + - uid: 534 + components: + - type: Transform + pos: -9.5,10.5 + parent: 1 + - uid: 552 + components: + - type: Transform + pos: -12.5,8.5 + parent: 1 + - uid: 556 + components: + - type: Transform + pos: -12.5,12.5 + parent: 1 + - uid: 557 + components: + - type: Transform + pos: 10.5,15.5 + parent: 1 + - uid: 565 + components: + - type: Transform + pos: 19.5,17.5 + parent: 1 + - uid: 568 + components: + - type: Transform + pos: -28.5,18.5 + parent: 1 + - uid: 594 + components: + - type: Transform + pos: -28.5,21.5 + parent: 1 + - uid: 599 + components: + - type: Transform + pos: -25.5,21.5 + parent: 1 + - uid: 612 + components: + - type: Transform + pos: 5.5,0.5 + parent: 1 + - uid: 624 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-1.5 + parent: 1 + - uid: 635 + components: + - type: Transform + pos: -20.5,6.5 + parent: 1 + - uid: 657 + components: + - type: Transform + pos: -24.5,2.5 + parent: 1 + - uid: 672 + components: + - type: Transform + pos: -12.5,6.5 + parent: 1 + - uid: 680 + components: + - type: Transform + pos: -19.5,21.5 + parent: 1 + - uid: 681 + components: + - type: Transform + pos: -20.5,21.5 + parent: 1 + - uid: 682 + components: + - type: Transform + pos: -21.5,21.5 + parent: 1 + - uid: 695 + components: + - type: Transform + pos: 3.5,5.5 + parent: 1 + - uid: 697 + components: + - type: Transform + pos: -3.5,14.5 + parent: 1 + - uid: 706 + components: + - type: Transform + pos: -12.5,5.5 + parent: 1 + - uid: 716 + components: + - type: Transform + pos: 14.5,62.5 + parent: 1 + - uid: 721 + components: + - type: Transform + pos: -16.5,11.5 + parent: 1 + - uid: 730 + components: + - type: Transform + pos: -10.5,10.5 + parent: 1 + - uid: 736 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-5.5 + parent: 1 + - uid: 738 + components: + - type: Transform + pos: -3.5,-5.5 + parent: 1 + - uid: 746 + components: + - type: Transform + pos: 0.5,1.5 + parent: 1 + - uid: 747 + components: + - type: Transform + pos: -0.5,-0.5 + parent: 1 + - uid: 761 + components: + - type: Transform + pos: -28.5,5.5 + parent: 1 + - uid: 783 + components: + - type: Transform + pos: 12.5,4.5 + parent: 1 + - uid: 784 + components: + - type: Transform + pos: -29.5,16.5 + parent: 1 + - uid: 787 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,52.5 + parent: 1 + - uid: 788 + components: + - type: Transform + pos: 0.5,2.5 + parent: 1 + - uid: 797 + components: + - type: Transform + pos: 0.5,12.5 + parent: 1 + - uid: 806 + components: + - type: Transform + pos: -26.5,21.5 + parent: 1 + - uid: 809 + components: + - type: Transform + pos: -2.5,-0.5 + parent: 1 + - uid: 818 + components: + - type: Transform + pos: 3.5,-6.5 + parent: 1 + - uid: 819 + components: + - type: Transform + pos: 3.5,7.5 + parent: 1 + - uid: 838 + components: + - type: Transform + pos: 3.5,8.5 + parent: 1 + - uid: 839 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-5.5 + parent: 1 + - uid: 859 + components: + - type: Transform + pos: -16.5,21.5 + parent: 1 + - uid: 860 + components: + - type: Transform + pos: 6.5,-8.5 + parent: 1 + - uid: 861 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-1.5 + parent: 1 + - uid: 871 + components: + - type: Transform + pos: -22.5,21.5 + parent: 1 + - uid: 872 + components: + - type: Transform + pos: -18.5,21.5 + parent: 1 + - uid: 881 + components: + - type: Transform + pos: -12.5,10.5 + parent: 1 + - uid: 882 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-1.5 + parent: 1 + - uid: 884 + components: + - type: Transform + pos: -21.5,17.5 + parent: 1 + - uid: 895 + components: + - type: Transform + pos: -23.5,21.5 + parent: 1 + - uid: 906 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,47.5 + parent: 1 + - uid: 945 + components: + - type: Transform + pos: 23.5,16.5 + parent: 1 + - uid: 960 + components: + - type: Transform + pos: -12.5,11.5 + parent: 1 + - uid: 963 + components: + - type: Transform + pos: 0.5,5.5 + parent: 1 + - uid: 967 + components: + - type: Transform + pos: 16.5,10.5 + parent: 1 + - uid: 974 + components: + - type: Transform + pos: -26.5,15.5 + parent: 1 + - uid: 980 + components: + - type: Transform + pos: 7.5,9.5 + parent: 1 + - uid: 981 + components: + - type: Transform + pos: -24.5,6.5 + parent: 1 + - uid: 985 + components: + - type: Transform + pos: -23.5,1.5 + parent: 1 + - uid: 986 + components: + - type: Transform + pos: -21.5,2.5 + parent: 1 + - uid: 996 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-1.5 + parent: 1 + - uid: 1002 + components: + - type: Transform + pos: 3.5,9.5 + parent: 1 + - uid: 1005 + components: + - type: Transform + pos: 1.5,10.5 + parent: 1 + - uid: 1011 + components: + - type: Transform + pos: -0.5,-1.5 + parent: 1 + - uid: 1024 + components: + - type: Transform + pos: -12.5,14.5 + parent: 1 + - uid: 1027 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,7.5 + parent: 1 + - uid: 1042 + components: + - type: Transform + pos: -4.5,10.5 + parent: 1 + - uid: 1044 + components: + - type: Transform + pos: -12.5,9.5 + parent: 1 + - uid: 1048 + components: + - type: Transform + pos: 23.5,17.5 + parent: 1 + - uid: 1056 + components: + - type: Transform + pos: -30.5,12.5 + parent: 1 + - uid: 1058 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-1.5 + parent: 1 + - uid: 1066 + components: + - type: Transform + pos: -28.5,8.5 + parent: 1 + - uid: 1075 + components: + - type: Transform + pos: -29.5,21.5 + parent: 1 + - uid: 1090 + components: + - type: Transform + pos: -9.5,14.5 + parent: 1 + - uid: 1095 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-0.5 + parent: 1 + - uid: 1099 + components: + - type: Transform + pos: -0.5,0.5 + parent: 1 + - uid: 1118 + components: + - type: Transform + pos: -19.5,17.5 + parent: 1 + - uid: 1120 + components: + - type: Transform + pos: -5.5,10.5 + parent: 1 + - uid: 1123 + components: + - type: Transform + pos: -26.5,9.5 + parent: 1 + - uid: 1128 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-0.5 + parent: 1 + - uid: 1131 + components: + - type: Transform + pos: 3.5,6.5 + parent: 1 + - uid: 1137 + components: + - type: Transform + pos: 3.5,4.5 + parent: 1 + - uid: 1155 + components: + - type: Transform + pos: -16.5,16.5 + parent: 1 + - uid: 1157 + components: + - type: Transform + pos: -1.5,-5.5 + parent: 1 + - uid: 1163 + components: + - type: Transform + pos: 11.5,20.5 + parent: 1 + - uid: 1174 + components: + - type: Transform + pos: -17.5,6.5 + parent: 1 + - uid: 1181 + components: + - type: Transform + pos: 8.5,4.5 + parent: 1 + - uid: 1188 + components: + - type: Transform + pos: -8.5,14.5 + parent: 1 + - uid: 1191 + components: + - type: Transform + pos: -8.5,10.5 + parent: 1 + - uid: 1201 + components: + - type: Transform + pos: -11.5,15.5 + parent: 1 + - uid: 1209 + components: + - type: Transform + pos: -12.5,7.5 + parent: 1 + - uid: 1211 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,67.5 + parent: 1 + - uid: 1220 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,67.5 + parent: 1 + - uid: 1230 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-0.5 + parent: 1 + - uid: 1232 + components: + - type: Transform + pos: 20.5,13.5 + parent: 1 + - uid: 1239 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,41.5 + parent: 1 + - uid: 1259 + components: + - type: Transform + pos: 4.5,-0.5 + parent: 1 + - uid: 1267 + components: + - type: Transform + pos: -0.5,15.5 + parent: 1 + - uid: 1278 + components: + - type: Transform + pos: -2.5,15.5 + parent: 1 + - uid: 1279 + components: + - type: Transform + pos: -2.5,14.5 + parent: 1 + - uid: 1284 + components: + - type: Transform + pos: 4.5,-2.5 + parent: 1 + - uid: 1288 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,67.5 + parent: 1 + - uid: 1291 + components: + - type: Transform + pos: -3.5,10.5 + parent: 1 + - uid: 1314 + components: + - type: Transform + pos: 3.5,-0.5 + parent: 1 + - uid: 1328 + components: + - type: Transform + pos: 0.5,10.5 + parent: 1 + - uid: 1333 + components: + - type: Transform + pos: -11.5,10.5 + parent: 1 + - uid: 1334 + components: + - type: Transform + pos: 0.5,11.5 + parent: 1 + - uid: 1341 + components: + - type: Transform + pos: -4.5,3.5 + parent: 1 + - uid: 1342 + components: + - type: Transform + pos: 18.5,10.5 + parent: 1 + - uid: 1362 + components: + - type: Transform + pos: -19.5,5.5 + parent: 1 + - uid: 1365 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-0.5 + parent: 1 + - uid: 1366 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-5.5 + parent: 1 + - uid: 1367 + components: + - type: Transform + pos: -16.5,17.5 + parent: 1 + - uid: 1381 + components: + - type: Transform + pos: 19.5,20.5 + parent: 1 + - uid: 1389 + components: + - type: Transform + pos: 3.5,-1.5 + parent: 1 + - uid: 1390 + components: + - type: Transform + pos: -26.5,5.5 + parent: 1 + - uid: 1391 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,52.5 + parent: 1 + - uid: 1394 + components: + - type: Transform + pos: -1.5,-0.5 + parent: 1 + - uid: 1397 + components: + - type: Transform + pos: -1.5,-2.5 + parent: 1 + - uid: 1401 + components: + - type: Transform + pos: -19.5,3.5 + parent: 1 + - uid: 1410 + components: + - type: Transform + pos: 7.5,12.5 + parent: 1 + - uid: 1412 + components: + - type: Transform + pos: 3.5,10.5 + parent: 1 + - uid: 1417 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,54.5 + parent: 1 + - uid: 1419 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-4.5 + parent: 1 + - uid: 1420 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-0.5 + parent: 1 + - uid: 1421 + components: + - type: Transform + pos: 0.5,4.5 + parent: 1 + - uid: 1427 + components: + - type: Transform + pos: -3.5,-1.5 + parent: 1 + - uid: 1434 + components: + - type: Transform + pos: -29.5,5.5 + parent: 1 + - uid: 1435 + components: + - type: Transform + pos: 11.5,19.5 + parent: 1 + - uid: 1437 + components: + - type: Transform + pos: 11.5,17.5 + parent: 1 + - uid: 1438 + components: + - type: Transform + pos: 11.5,16.5 + parent: 1 + - uid: 1439 + components: + - type: Transform + pos: 11.5,15.5 + parent: 1 + - uid: 1444 + components: + - type: Transform + pos: -3.5,-7.5 + parent: 1 + - uid: 1450 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,51.5 + parent: 1 + - uid: 1453 + components: + - type: Transform + pos: 16.5,19.5 + parent: 1 + - uid: 1459 + components: + - type: Transform + pos: 7.5,14.5 + parent: 1 + - uid: 1461 + components: + - type: Transform + pos: 23.5,15.5 + parent: 1 + - uid: 1469 + components: + - type: Transform + pos: 6.5,-0.5 + parent: 1 + - uid: 1485 + components: + - type: Transform + pos: 6.5,0.5 + parent: 1 + - uid: 1488 + components: + - type: Transform + pos: 18.5,20.5 + parent: 1 + - uid: 1499 + components: + - type: Transform + pos: -1.5,-6.5 + parent: 1 + - uid: 1502 + components: + - type: Transform + pos: -31.5,12.5 + parent: 1 + - uid: 1504 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,50.5 + parent: 1 + - uid: 1505 + components: + - type: Transform + pos: -11.5,4.5 + parent: 1 + - uid: 1506 + components: + - type: Transform + pos: -12.5,4.5 + parent: 1 + - uid: 1507 + components: + - type: Transform + pos: -11.5,3.5 + parent: 1 + - uid: 1512 + components: + - type: Transform + pos: 5.5,-8.5 + parent: 1 + - uid: 1513 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,14.5 + parent: 1 + - uid: 1516 + components: + - type: Transform + pos: 17.5,20.5 + parent: 1 + - uid: 1519 + components: + - type: Transform + pos: 7.5,11.5 + parent: 1 + - uid: 1523 + components: + - type: Transform + pos: 15.5,10.5 + parent: 1 + - uid: 1524 + components: + - type: Transform + pos: 4.5,-8.5 + parent: 1 + - uid: 1525 + components: + - type: Transform + pos: -26.5,12.5 + parent: 1 + - uid: 1531 + components: + - type: Transform + pos: 21.5,18.5 + parent: 1 + - uid: 1532 + components: + - type: Transform + pos: 20.5,18.5 + parent: 1 + - uid: 1534 + components: + - type: Transform + pos: 8.5,46.5 + parent: 1 + - uid: 1541 + components: + - type: Transform + pos: 19.5,13.5 + parent: 1 + - uid: 1543 + components: + - type: Transform + pos: 10.5,10.5 + parent: 1 + - uid: 1557 + components: + - type: Transform + pos: 9.5,40.5 + parent: 1 + - uid: 1559 + components: + - type: Transform + pos: 5.5,40.5 + parent: 1 + - uid: 1579 + components: + - type: Transform + pos: -20.5,4.5 + parent: 1 + - uid: 1584 + components: + - type: Transform + pos: -4.5,4.5 + parent: 1 + - uid: 1586 + components: + - type: Transform + pos: -4.5,6.5 + parent: 1 + - uid: 1587 + components: + - type: Transform + pos: -4.5,7.5 + parent: 1 + - uid: 1588 + components: + - type: Transform + pos: -3.5,7.5 + parent: 1 + - uid: 1590 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,7.5 + parent: 1 + - uid: 1591 + components: + - type: Transform + pos: -0.5,7.5 + parent: 1 + - uid: 1592 + components: + - type: Transform + pos: 16.5,5.5 + parent: 1 + - uid: 1595 + components: + - type: Transform + pos: 11.5,4.5 + parent: 1 + - uid: 1599 + components: + - type: Transform + pos: -29.5,17.5 + parent: 1 + - uid: 1600 + components: + - type: Transform + pos: -25.5,6.5 + parent: 1 + - uid: 1602 + components: + - type: Transform + pos: 8.5,40.5 + parent: 1 + - uid: 1603 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,19.5 + parent: 1 + - uid: 1604 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,0.5 + parent: 1 + - uid: 1606 + components: + - type: Transform + pos: 19.5,18.5 + parent: 1 + - uid: 1607 + components: + - type: Transform + pos: 19.5,19.5 + parent: 1 + - uid: 1612 + components: + - type: Transform + pos: 6.5,-1.5 + parent: 1 + - uid: 1618 + components: + - type: Transform + pos: 17.5,10.5 + parent: 1 + - uid: 1619 + components: + - type: Transform + pos: 26.5,18.5 + parent: 1 + - uid: 1620 + components: + - type: Transform + pos: -25.5,2.5 + parent: 1 + - uid: 1622 + components: + - type: Transform + pos: 9.5,10.5 + parent: 1 + - uid: 1623 + components: + - type: Transform + pos: 8.5,10.5 + parent: 1 + - uid: 1626 + components: + - type: Transform + pos: 23.5,44.5 + parent: 1 + - uid: 1630 + components: + - type: Transform + pos: 4.5,0.5 + parent: 1 + - uid: 1631 + components: + - type: Transform + pos: 0.5,-0.5 + parent: 1 + - uid: 1633 + components: + - type: Transform + pos: 19.5,11.5 + parent: 1 + - uid: 1635 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,10.5 + parent: 1 + - uid: 1637 + components: + - type: Transform + pos: -29.5,20.5 + parent: 1 + - uid: 1649 + components: + - type: Transform + pos: 19.5,16.5 + parent: 1 + - uid: 1650 + components: + - type: Transform + pos: 16.5,16.5 + parent: 1 + - uid: 1652 + components: + - type: Transform + pos: 9.5,45.5 + parent: 1 + - uid: 1659 + components: + - type: Transform + pos: -17.5,11.5 + parent: 1 + - uid: 1674 + components: + - type: Transform + pos: 16.5,7.5 + parent: 1 + - uid: 1675 + components: + - type: Transform + pos: 16.5,9.5 + parent: 1 + - uid: 1676 + components: + - type: Transform + pos: 16.5,6.5 + parent: 1 + - uid: 1678 + components: + - type: Transform + pos: 9.5,4.5 + parent: 1 + - uid: 1687 + components: + - type: Transform + pos: 6.5,-5.5 + parent: 1 + - uid: 1688 + components: + - type: Transform + pos: 6.5,-7.5 + parent: 1 + - uid: 1689 + components: + - type: Transform + pos: -35.5,1.5 + parent: 1 + - uid: 1692 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,15.5 + parent: 1 + - uid: 1706 + components: + - type: Transform + pos: 24.5,18.5 + parent: 1 + - uid: 1710 + components: + - type: Transform + pos: 25.5,18.5 + parent: 1 + - uid: 1711 + components: + - type: Transform + pos: 23.5,13.5 + parent: 1 + - uid: 1713 + components: + - type: Transform + pos: 22.5,40.5 + parent: 1 + - uid: 1716 + components: + - type: Transform + pos: 15.5,40.5 + parent: 1 + - uid: 1726 + components: + - type: Transform + pos: -31.5,8.5 + parent: 1 + - uid: 1732 + components: + - type: Transform + pos: -19.5,2.5 + parent: 1 + - uid: 1738 + components: + - type: Transform + pos: 4.5,40.5 + parent: 1 + - uid: 1744 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-1.5 + parent: 1 + - uid: 1745 + components: + - type: Transform + pos: 23.5,42.5 + parent: 1 + - uid: 1746 + components: + - type: Transform + pos: -19.5,11.5 + parent: 1 + - uid: 1749 + components: + - type: Transform + pos: 7.5,40.5 + parent: 1 + - uid: 1753 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,5.5 + parent: 1 + - uid: 1756 + components: + - type: Transform + pos: 22.5,13.5 + parent: 1 + - uid: 1763 + components: + - type: Transform + pos: 27.5,13.5 + parent: 1 + - uid: 1764 + components: + - type: Transform + pos: 24.5,13.5 + parent: 1 + - uid: 1765 + components: + - type: Transform + pos: 25.5,13.5 + parent: 1 + - uid: 1766 + components: + - type: Transform + pos: 26.5,13.5 + parent: 1 + - uid: 1767 + components: + - type: Transform + pos: 27.5,14.5 + parent: 1 + - uid: 1768 + components: + - type: Transform + pos: 27.5,15.5 + parent: 1 + - uid: 1769 + components: + - type: Transform + pos: 27.5,17.5 + parent: 1 + - uid: 1771 + components: + - type: Transform + pos: -25.5,1.5 + parent: 1 + - uid: 1776 + components: + - type: Transform + pos: -29.5,12.5 + parent: 1 + - uid: 1782 + components: + - type: Transform + pos: -29.5,15.5 + parent: 1 + - uid: 1785 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-1.5 + parent: 1 + - uid: 1786 + components: + - type: Transform + pos: 21.5,40.5 + parent: 1 + - uid: 1788 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,10.5 + parent: 1 + - uid: 1790 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,10.5 + parent: 1 + - uid: 1791 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,12.5 + parent: 1 + - uid: 1807 + components: + - type: Transform + pos: -26.5,1.5 + parent: 1 + - uid: 1808 + components: + - type: Transform + pos: -21.5,1.5 + parent: 1 + - uid: 1812 + components: + - type: Transform + pos: 20.5,40.5 + parent: 1 + - uid: 1820 + components: + - type: Transform + pos: 27.5,18.5 + parent: 1 + - uid: 1823 + components: + - type: Transform + pos: 10.5,4.5 + parent: 1 + - uid: 1824 + components: + - type: Transform + pos: 7.5,4.5 + parent: 1 + - uid: 1828 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,12.5 + parent: 1 + - uid: 1829 + components: + - type: Transform + pos: -18.5,6.5 + parent: 1 + - uid: 1830 + components: + - type: Transform + pos: -22.5,2.5 + parent: 1 + - uid: 1833 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-6.5 + parent: 1 + - uid: 1834 + components: + - type: Transform + pos: 0.5,-8.5 + parent: 1 + - uid: 1835 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,-6.5 + parent: 1 + - uid: 1836 + components: + - type: Transform + pos: 3.5,-8.5 + parent: 1 + - uid: 1837 + components: + - type: Transform + pos: -0.5,-6.5 + parent: 1 + - uid: 1838 + components: + - type: Transform + pos: 22.5,18.5 + parent: 1 + - uid: 1839 + components: + - type: Transform + pos: -0.5,-8.5 + parent: 1 + - uid: 1840 + components: + - type: Transform + pos: -1.5,-8.5 + parent: 1 + - uid: 1841 + components: + - type: Transform + pos: -2.5,-8.5 + parent: 1 + - uid: 1843 + components: + - type: Transform + pos: -3.5,-8.5 + parent: 1 + - uid: 1846 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,13.5 + parent: 1 + - uid: 1847 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-1.5 + parent: 1 + - uid: 1848 + components: + - type: Transform + pos: 22.5,45.5 + parent: 1 + - uid: 1849 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,14.5 + parent: 1 + - uid: 1852 + components: + - type: Transform + pos: 1.5,-6.5 + parent: 1 + - uid: 1854 + components: + - type: Transform + pos: 1.5,-8.5 + parent: 1 + - uid: 1855 + components: + - type: Transform + pos: 2.5,-8.5 + parent: 1 + - uid: 1856 + components: + - type: Transform + pos: -3.5,-6.5 + parent: 1 + - uid: 1857 + components: + - type: Transform + pos: 4.5,-6.5 + parent: 1 + - uid: 1858 + components: + - type: Transform + pos: 21.5,45.5 + parent: 1 + - uid: 1861 + components: + - type: Transform + pos: 22.5,41.5 + parent: 1 + - uid: 1864 + components: + - type: Transform + pos: -18.5,17.5 + parent: 1 + - uid: 1867 + components: + - type: Transform + pos: -21.5,10.5 + parent: 1 + - uid: 1871 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-1.5 + parent: 1 + - uid: 1875 + components: + - type: Transform + pos: 14.5,40.5 + parent: 1 + - uid: 1879 + components: + - type: Transform + pos: 7.5,13.5 + parent: 1 + - uid: 1880 + components: + - type: Transform + pos: 14.5,4.5 + parent: 1 + - uid: 1886 + components: + - type: Transform + pos: -21.5,6.5 + parent: 1 + - uid: 1888 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,14.5 + parent: 1 + - uid: 1894 + components: + - type: Transform + pos: -21.5,11.5 + parent: 1 + - uid: 1895 + components: + - type: Transform + pos: 20.5,45.5 + parent: 1 + - uid: 1897 + components: + - type: Transform + pos: -20.5,11.5 + parent: 1 + - uid: 1900 + components: + - type: Transform + pos: -27.5,8.5 + parent: 1 + - uid: 1901 + components: + - type: Transform + pos: -27.5,5.5 + parent: 1 + - uid: 1905 + components: + - type: Transform + pos: -20.5,5.5 + parent: 1 + - uid: 1906 + components: + - type: Transform + pos: -26.5,2.5 + parent: 1 + - uid: 1907 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-15.5 + parent: 1 + - uid: 1913 + components: + - type: Transform + pos: 23.5,43.5 + parent: 1 + - uid: 1914 + components: + - type: Transform + pos: 7.5,10.5 + parent: 1 + - uid: 1915 + components: + - type: Transform + pos: 27.5,16.5 + parent: 1 + - uid: 1917 + components: + - type: Transform + pos: -34.5,2.5 + parent: 1 + - uid: 1918 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,14.5 + parent: 1 + - uid: 1921 + components: + - type: Transform + pos: -29.5,19.5 + parent: 1 + - uid: 1930 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-1.5 + parent: 1 + - uid: 1931 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,22.5 + parent: 1 + - uid: 1937 + components: + - type: Transform + pos: -9.5,-19.5 + parent: 1 + - uid: 1940 + components: + - type: Transform + pos: -20.5,17.5 + parent: 1 + - uid: 1941 + components: + - type: Transform + pos: -26.5,11.5 + parent: 1 + - uid: 1958 + components: + - type: Transform + pos: -28.5,15.5 + parent: 1 + - uid: 1960 + components: + - type: Transform + pos: -26.5,4.5 + parent: 1 + - uid: 1968 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-1.5 + parent: 1 + - uid: 1981 + components: + - type: Transform + pos: 16.5,4.5 + parent: 1 + - uid: 1996 + components: + - type: Transform + pos: -29.5,18.5 + parent: 1 + - uid: 1997 + components: + - type: Transform + pos: 6.5,40.5 + parent: 1 + - uid: 1998 + components: + - type: Transform + pos: 11.5,40.5 + parent: 1 + - uid: 2023 + components: + - type: Transform + pos: -27.5,2.5 + parent: 1 + - uid: 2027 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,30.5 + parent: 1 + - uid: 2029 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,-1.5 + parent: 1 + - uid: 2032 + components: + - type: Transform + pos: -35.5,2.5 + parent: 1 + - uid: 2039 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,51.5 + parent: 1 + - uid: 2040 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,10.5 + parent: 1 + - uid: 2042 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,10.5 + parent: 1 + - uid: 2043 + components: + - type: Transform + pos: -3.5,0.5 + parent: 1 + - uid: 2044 + components: + - type: Transform + pos: -23.5,2.5 + parent: 1 + - uid: 2047 + components: + - type: Transform + pos: -2.5,0.5 + parent: 1 + - uid: 2048 + components: + - type: Transform + pos: 0.5,0.5 + parent: 1 + - uid: 2055 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,15.5 + parent: 1 + - uid: 2056 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,29.5 + parent: 1 + - uid: 2060 + components: + - type: Transform + pos: -20.5,2.5 + parent: 1 + - uid: 2061 + components: + - type: Transform + pos: -27.5,1.5 + parent: 1 + - uid: 2063 + components: + - type: Transform + pos: -20.5,3.5 + parent: 1 + - uid: 2068 + components: + - type: Transform + pos: -27.5,4.5 + parent: 1 + - uid: 2070 + components: + - type: Transform + pos: -24.5,1.5 + parent: 1 + - uid: 2072 + components: + - type: Transform + pos: 7.5,46.5 + parent: 1 + - uid: 2073 + components: + - type: Transform + pos: 0.5,36.5 + parent: 1 + - uid: 2076 + components: + - type: Transform + pos: -35.5,0.5 + parent: 1 + - uid: 2083 + components: + - type: Transform + pos: -20.5,1.5 + parent: 1 + - uid: 2085 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,31.5 + parent: 1 + - uid: 2086 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,25.5 + parent: 1 + - uid: 2088 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-1.5 + parent: 1 + - uid: 2094 + components: + - type: Transform + pos: -26.5,6.5 + parent: 1 + - uid: 2095 + components: + - type: Transform + pos: -30.5,5.5 + parent: 1 + - uid: 2096 + components: + - type: Transform + pos: -31.5,5.5 + parent: 1 + - uid: 2097 + components: + - type: Transform + pos: -22.5,1.5 + parent: 1 + - uid: 2098 + components: + - type: Transform + pos: 9.5,58.5 + parent: 1 + - uid: 2099 + components: + - type: Transform + pos: -30.5,8.5 + parent: 1 + - uid: 2100 + components: + - type: Transform + pos: 9.5,46.5 + parent: 1 + - uid: 2101 + components: + - type: Transform + pos: -26.5,18.5 + parent: 1 + - uid: 2103 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,52.5 + parent: 1 + - uid: 2105 + components: + - type: Transform + pos: -9.5,-15.5 + parent: 1 + - uid: 2107 + components: + - type: Transform + pos: -22.5,6.5 + parent: 1 + - uid: 2109 + components: + - type: Transform + pos: -12.5,44.5 + parent: 1 + - uid: 2110 + components: + - type: Transform + pos: -19.5,4.5 + parent: 1 + - uid: 2113 + components: + - type: Transform + pos: -27.5,12.5 + parent: 1 + - uid: 2114 + components: + - type: Transform + pos: -28.5,12.5 + parent: 1 + - uid: 2115 + components: + - type: Transform + pos: -12.5,47.5 + parent: 1 + - uid: 2116 + components: + - type: Transform + pos: 6.5,46.5 + parent: 1 + - uid: 2117 + components: + - type: Transform + pos: -21.5,7.5 + parent: 1 + - uid: 2120 + components: + - type: Transform + pos: -26.5,7.5 + parent: 1 + - uid: 2122 + components: + - type: Transform + pos: 5.5,46.5 + parent: 1 + - uid: 2123 + components: + - type: Transform + pos: -29.5,14.5 + parent: 1 + - uid: 2124 + components: + - type: Transform + pos: -29.5,13.5 + parent: 1 + - uid: 2125 + components: + - type: Transform + pos: -27.5,18.5 + parent: 1 + - uid: 2126 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,14.5 + parent: 1 + - uid: 2127 + components: + - type: Transform + pos: 15.5,20.5 + parent: 1 + - uid: 2134 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,0.5 + parent: 1 + - uid: 2138 + components: + - type: Transform + pos: -9.5,35.5 + parent: 1 + - uid: 2144 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,-1.5 + parent: 1 + - uid: 2145 + components: + - type: Transform + pos: 2.5,-19.5 + parent: 1 + - uid: 2146 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-1.5 + parent: 1 + - uid: 2155 + components: + - type: Transform + pos: -10.5,35.5 + parent: 1 + - uid: 2162 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,10.5 + parent: 1 + - uid: 2163 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,10.5 + parent: 1 + - uid: 2169 + components: + - type: Transform + pos: -11.5,35.5 + parent: 1 + - uid: 2170 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,29.5 + parent: 1 + - uid: 2171 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,28.5 + parent: 1 + - uid: 2172 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,27.5 + parent: 1 + - uid: 2173 + components: + - type: Transform + pos: -12.5,36.5 + parent: 1 + - uid: 2180 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,10.5 + parent: 1 + - uid: 2182 + components: + - type: Transform + pos: 0.5,37.5 + parent: 1 + - uid: 2183 + components: + - type: Transform + pos: -12.5,37.5 + parent: 1 + - uid: 2184 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,10.5 + parent: 1 + - uid: 2185 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-1.5 + parent: 1 + - uid: 2192 + components: + - type: Transform + pos: 16.5,40.5 + parent: 1 + - uid: 2201 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,5.5 + parent: 1 + - uid: 2204 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,26.5 + parent: 1 + - uid: 2210 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,13.5 + parent: 1 + - uid: 2212 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,29.5 + parent: 1 + - uid: 2213 + components: + - type: Transform + pos: 22.5,44.5 + parent: 1 + - uid: 2214 + components: + - type: Transform + pos: 23.5,41.5 + parent: 1 + - uid: 2215 + components: + - type: Transform + pos: 19.5,40.5 + parent: 1 + - uid: 2216 + components: + - type: Transform + pos: 18.5,40.5 + parent: 1 + - uid: 2217 + components: + - type: Transform + pos: -0.5,35.5 + parent: 1 + - uid: 2218 + components: + - type: Transform + pos: -1.5,35.5 + parent: 1 + - uid: 2219 + components: + - type: Transform + pos: 16.5,44.5 + parent: 1 + - uid: 2220 + components: + - type: Transform + pos: 16.5,45.5 + parent: 1 + - uid: 2221 + components: + - type: Transform + pos: 13.5,20.5 + parent: 1 + - uid: 2222 + components: + - type: Transform + pos: 12.5,40.5 + parent: 1 + - uid: 2223 + components: + - type: Transform + pos: -3.5,35.5 + parent: 1 + - uid: 2224 + components: + - type: Transform + pos: 13.5,40.5 + parent: 1 + - uid: 2227 + components: + - type: Transform + pos: 10.5,40.5 + parent: 1 + - uid: 2228 + components: + - type: Transform + pos: 17.5,40.5 + parent: 1 + - uid: 2242 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,29.5 + parent: 1 + - uid: 2243 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-12.5 + parent: 1 + - uid: 2245 + components: + - type: Transform + pos: 0.5,43.5 + parent: 1 + - uid: 2246 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,67.5 + parent: 1 + - uid: 2250 + components: + - type: Transform + pos: -12.5,45.5 + parent: 1 + - uid: 2253 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-42.5 + parent: 1 + - uid: 2257 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,47.5 + parent: 1 + - uid: 2258 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,51.5 + parent: 1 + - uid: 2260 + components: + - type: Transform + pos: -10.5,-15.5 + parent: 1 + - uid: 2262 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-17.5 + parent: 1 + - uid: 2271 + components: + - type: Transform + pos: -12.5,43.5 + parent: 1 + - uid: 2272 + components: + - type: Transform + pos: -7.5,-20.5 + parent: 1 + - uid: 2279 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-10.5 + parent: 1 + - uid: 2280 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-18.5 + parent: 1 + - uid: 2282 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-16.5 + parent: 1 + - uid: 2284 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,44.5 + parent: 1 + - uid: 2287 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-18.5 + parent: 1 + - uid: 2297 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-10.5 + parent: 1 + - uid: 2298 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,19.5 + parent: 1 + - uid: 2299 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,19.5 + parent: 1 + - uid: 2300 + components: + - type: Transform + pos: 25.5,47.5 + parent: 1 + - uid: 2301 + components: + - type: Transform + pos: -5.5,-18.5 + parent: 1 + - uid: 2305 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,53.5 + parent: 1 + - uid: 2306 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,30.5 + parent: 1 + - uid: 2311 + components: + - type: Transform + pos: -1.5,-17.5 + parent: 1 + - uid: 2312 + components: + - type: Transform + pos: 8.5,66.5 + parent: 1 + - uid: 2320 + components: + - type: Transform + pos: -1.5,-18.5 + parent: 1 + - uid: 2321 + components: + - type: Transform + pos: -3.5,-21.5 + parent: 1 + - uid: 2322 + components: + - type: Transform + pos: 2.5,-18.5 + parent: 1 + - uid: 2324 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-13.5 + parent: 1 + - uid: 2325 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,31.5 + parent: 1 + - uid: 2326 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,-21.5 + parent: 1 + - uid: 2327 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-21.5 + parent: 1 + - uid: 2328 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,11.5 + parent: 1 + - uid: 2349 + components: + - type: Transform + pos: -8.5,35.5 + parent: 1 + - uid: 2351 + components: + - type: Transform + pos: -29.5,-11.5 + parent: 1 + - uid: 2358 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-17.5 + parent: 1 + - uid: 2359 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-21.5 + parent: 1 + - uid: 2362 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-7.5 + parent: 1 + - uid: 2367 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,18.5 + parent: 1 + - uid: 2368 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,17.5 + parent: 1 + - uid: 2369 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-11.5 + parent: 1 + - uid: 2370 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,19.5 + parent: 1 + - uid: 2371 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-18.5 + parent: 1 + - uid: 2372 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,16.5 + parent: 1 + - uid: 2373 + components: + - type: Transform + pos: -32.5,-7.5 + parent: 1 + - uid: 2384 + components: + - type: Transform + pos: -3.5,-17.5 + parent: 1 + - uid: 2385 + components: + - type: Transform + pos: 4.5,-20.5 + parent: 1 + - uid: 2386 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,19.5 + parent: 1 + - uid: 2387 + components: + - type: Transform + pos: 4.5,-21.5 + parent: 1 + - uid: 2388 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,-19.5 + parent: 1 + - uid: 2391 + components: + - type: Transform + pos: -9.5,-18.5 + parent: 1 + - uid: 2392 + components: + - type: Transform + pos: 9.5,57.5 + parent: 1 + - uid: 2405 + components: + - type: Transform + pos: -33.5,-4.5 + parent: 1 + - uid: 2406 + components: + - type: Transform + pos: -32.5,-3.5 + parent: 1 + - uid: 2407 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-9.5 + parent: 1 + - uid: 2411 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-15.5 + parent: 1 + - uid: 2412 + components: + - type: Transform + pos: -35.5,-0.5 + parent: 1 + - uid: 2413 + components: + - type: Transform + pos: -30.5,-7.5 + parent: 1 + - uid: 2418 + components: + - type: Transform + pos: -26.5,-11.5 + parent: 1 + - uid: 2423 + components: + - type: Transform + pos: -12.5,46.5 + parent: 1 + - uid: 2424 + components: + - type: Transform + pos: -7.5,-17.5 + parent: 1 + - uid: 2428 + components: + - type: Transform + pos: -4.5,35.5 + parent: 1 + - uid: 2429 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-1.5 + parent: 1 + - uid: 2430 + components: + - type: Transform + pos: -7.5,35.5 + parent: 1 + - uid: 2434 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,53.5 + parent: 1 + - uid: 2435 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,45.5 + parent: 1 + - uid: 2436 + components: + - type: Transform + pos: -5.5,35.5 + parent: 1 + - uid: 2437 + components: + - type: Transform + pos: -6.5,35.5 + parent: 1 + - uid: 2445 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,24.5 + parent: 1 + - uid: 2446 + components: + - type: Transform + pos: -10.5,-14.5 + parent: 1 + - uid: 2448 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,18.5 + parent: 1 + - uid: 2457 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,9.5 + parent: 1 + - uid: 2459 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-17.5 + parent: 1 + - uid: 2460 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-15.5 + parent: 1 + - uid: 2461 + components: + - type: Transform + pos: -12.5,35.5 + parent: 1 + - uid: 2462 + components: + - type: Transform + pos: 0.5,35.5 + parent: 1 + - uid: 2464 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,52.5 + parent: 1 + - uid: 2472 + components: + - type: Transform + pos: -31.5,-11.5 + parent: 1 + - uid: 2473 + components: + - type: Transform + pos: -31.5,-7.5 + parent: 1 + - uid: 2475 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-8.5 + parent: 1 + - uid: 2482 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,52.5 + parent: 1 + - uid: 2484 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,53.5 + parent: 1 + - uid: 2485 + components: + - type: Transform + pos: -33.5,-5.5 + parent: 1 + - uid: 2486 + components: + - type: Transform + pos: -34.5,-11.5 + parent: 1 + - uid: 2491 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,25.5 + parent: 1 + - uid: 2497 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-13.5 + parent: 1 + - uid: 2499 + components: + - type: Transform + pos: -29.5,-7.5 + parent: 1 + - uid: 2500 + components: + - type: Transform + pos: 21.5,51.5 + parent: 1 + - uid: 2503 + components: + - type: Transform + pos: -32.5,-5.5 + parent: 1 + - uid: 2505 + components: + - type: Transform + pos: 14.5,60.5 + parent: 1 + - uid: 2511 + components: + - type: Transform + pos: -22.5,-13.5 + parent: 1 + - uid: 2512 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-5.5 + parent: 1 + - uid: 2513 + components: + - type: Transform + pos: -12.5,48.5 + parent: 1 + - uid: 2514 + components: + - type: Transform + pos: -12.5,49.5 + parent: 1 + - uid: 2518 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-5.5 + parent: 1 + - uid: 2520 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 20.5,56.5 + parent: 1 + - uid: 2521 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-19.5 + parent: 1 + - uid: 2522 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,11.5 + parent: 1 + - uid: 2524 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-14.5 + parent: 1 + - uid: 2525 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,49.5 + parent: 1 + - uid: 2526 + components: + - type: Transform + pos: 10.5,58.5 + parent: 1 + - uid: 2530 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-12.5 + parent: 1 + - uid: 2532 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-16.5 + parent: 1 + - uid: 2537 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,20.5 + parent: 1 + - uid: 2538 + components: + - type: Transform + pos: -12.5,38.5 + parent: 1 + - uid: 2540 + components: + - type: Transform + pos: -9.5,-20.5 + parent: 1 + - uid: 2546 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-10.5 + parent: 1 + - uid: 2551 + components: + - type: Transform + pos: -28.5,-11.5 + parent: 1 + - uid: 2554 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,39.5 + parent: 1 + - uid: 2561 + components: + - type: Transform + pos: 12.5,20.5 + parent: 1 + - uid: 2562 + components: + - type: Transform + pos: 0.5,38.5 + parent: 1 + - uid: 2564 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,48.5 + parent: 1 + - uid: 2565 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-2.5 + parent: 1 + - uid: 2567 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-13.5 + parent: 1 + - uid: 2568 + components: + - type: Transform + pos: -32.5,-11.5 + parent: 1 + - uid: 2569 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,53.5 + parent: 1 + - uid: 2571 + components: + - type: Transform + pos: -33.5,-1.5 + parent: 1 + - uid: 2572 + components: + - type: Transform + pos: -32.5,-6.5 + parent: 1 + - uid: 2573 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-18.5 + parent: 1 + - uid: 2578 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,49.5 + parent: 1 + - uid: 2579 + components: + - type: Transform + pos: -29.5,-8.5 + parent: 1 + - uid: 2581 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-18.5 + parent: 1 + - uid: 2586 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-16.5 + parent: 1 + - uid: 2588 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-18.5 + parent: 1 + - uid: 2592 + components: + - type: Transform + pos: -33.5,-3.5 + parent: 1 + - uid: 2593 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-18.5 + parent: 1 + - uid: 2594 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-12.5 + parent: 1 + - uid: 2595 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-14.5 + parent: 1 + - uid: 2604 + components: + - type: Transform + pos: -23.5,-13.5 + parent: 1 + - uid: 2608 + components: + - type: Transform + pos: 0.5,-21.5 + parent: 1 + - uid: 2611 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,55.5 + parent: 1 + - uid: 2613 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,40.5 + parent: 1 + - uid: 2616 + components: + - type: Transform + pos: -24.5,-11.5 + parent: 1 + - uid: 2618 + components: + - type: Transform + pos: 2.5,-20.5 + parent: 1 + - uid: 2621 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-16.5 + parent: 1 + - uid: 2624 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-9.5 + parent: 1 + - uid: 2625 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-40.5 + parent: 1 + - uid: 2626 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-17.5 + parent: 1 + - uid: 2630 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-9.5 + parent: 1 + - uid: 2631 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-13.5 + parent: 1 + - uid: 2633 + components: + - type: Transform + pos: 4.5,-17.5 + parent: 1 + - uid: 2647 + components: + - type: Transform + pos: 14.5,68.5 + parent: 1 + - uid: 2651 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,42.5 + parent: 1 + - uid: 2655 + components: + - type: Transform + pos: -22.5,-36.5 + parent: 1 + - uid: 2657 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,43.5 + parent: 1 + - uid: 2662 + components: + - type: Transform + pos: -32.5,2.5 + parent: 1 + - uid: 2664 + components: + - type: Transform + pos: -9.5,-21.5 + parent: 1 + - uid: 2668 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-19.5 + parent: 1 + - uid: 2669 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-13.5 + parent: 1 + - uid: 2670 + components: + - type: Transform + pos: 0.5,-17.5 + parent: 1 + - uid: 2676 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,52.5 + parent: 1 + - uid: 2679 + components: + - type: Transform + pos: 4.5,-18.5 + parent: 1 + - uid: 2683 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,45.5 + parent: 1 + - uid: 2684 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,44.5 + parent: 1 + - uid: 2687 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-15.5 + parent: 1 + - uid: 2690 + components: + - type: Transform + pos: 15.5,57.5 + parent: 1 + - uid: 2695 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-14.5 + parent: 1 + - uid: 2711 + components: + - type: Transform + pos: -32.5,-2.5 + parent: 1 + - uid: 2717 + components: + - type: Transform + pos: 14.5,20.5 + parent: 1 + - uid: 2719 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 5.5,70.5 + parent: 1 + - uid: 2723 + components: + - type: Transform + pos: 6.5,61.5 + parent: 1 + - uid: 2736 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,-17.5 + parent: 1 + - uid: 2737 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-21.5 + parent: 1 + - uid: 2740 + components: + - type: Transform + pos: -7.5,-18.5 + parent: 1 + - uid: 2746 + components: + - type: Transform + pos: -33.5,-6.5 + parent: 1 + - uid: 2754 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,55.5 + parent: 1 + - uid: 2755 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,24.5 + parent: 1 + - uid: 2759 + components: + - type: Transform + pos: -35.5,-1.5 + parent: 1 + - uid: 2765 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-18.5 + parent: 1 + - uid: 2767 + components: + - type: Transform + pos: -32.5,-4.5 + parent: 1 + - uid: 2773 + components: + - type: Transform + pos: 4.5,-19.5 + parent: 1 + - uid: 2774 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,54.5 + parent: 1 + - uid: 2780 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,41.5 + parent: 1 + - uid: 2786 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-14.5 + parent: 1 + - uid: 2787 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-15.5 + parent: 1 + - uid: 2789 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,63.5 + parent: 1 + - uid: 2793 + components: + - type: Transform + pos: -29.5,-10.5 + parent: 1 + - uid: 2794 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-17.5 + parent: 1 + - uid: 2800 + components: + - type: Transform + pos: 0.5,-18.5 + parent: 1 + - uid: 2805 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-0.5 + parent: 1 + - uid: 2808 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,15.5 + parent: 1 + - uid: 2810 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-13.5 + parent: 1 + - uid: 2811 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-19.5 + parent: 1 + - uid: 2812 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-19.5 + parent: 1 + - uid: 2813 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,66.5 + parent: 1 + - uid: 2814 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-12.5 + parent: 1 + - uid: 2815 + components: + - type: Transform + pos: -32.5,-1.5 + parent: 1 + - uid: 2817 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,48.5 + parent: 1 + - uid: 2821 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-21.5 + parent: 1 + - uid: 2823 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-6.5 + parent: 1 + - uid: 2824 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,65.5 + parent: 1 + - uid: 2830 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,0.5 + parent: 1 + - uid: 2832 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-13.5 + parent: 1 + - uid: 2833 + components: + - type: Transform + pos: -21.5,-13.5 + parent: 1 + - uid: 2837 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-17.5 + parent: 1 + - uid: 2838 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,56.5 + parent: 1 + - uid: 2841 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-6.5 + parent: 1 + - uid: 2844 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-7.5 + parent: 1 + - uid: 2845 + components: + - type: Transform + pos: -25.5,-11.5 + parent: 1 + - uid: 2847 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,53.5 + parent: 1 + - uid: 2850 + components: + - type: Transform + pos: -5.5,-21.5 + parent: 1 + - uid: 2854 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,44.5 + parent: 1 + - uid: 2863 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,62.5 + parent: 1 + - uid: 2868 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,17.5 + parent: 1 + - uid: 2872 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,19.5 + parent: 1 + - uid: 2873 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-16.5 + parent: 1 + - uid: 2874 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-17.5 + parent: 1 + - uid: 2879 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -32.5,-16.5 + parent: 1 + - uid: 2882 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,67.5 + parent: 1 + - uid: 2893 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-7.5 + parent: 1 + - uid: 2894 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,68.5 + parent: 1 + - uid: 2897 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-15.5 + parent: 1 + - uid: 2898 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-14.5 + parent: 1 + - uid: 2899 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-14.5 + parent: 1 + - uid: 2900 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-15.5 + parent: 1 + - uid: 2902 + components: + - type: Transform + pos: -7.5,-19.5 + parent: 1 + - uid: 2910 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-13.5 + parent: 1 + - uid: 2914 + components: + - type: Transform + pos: 8.5,58.5 + parent: 1 + - uid: 2915 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-12.5 + parent: 1 + - uid: 2916 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,23.5 + parent: 1 + - uid: 2917 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-10.5 + parent: 1 + - uid: 2925 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -37.5,15.5 + parent: 1 + - uid: 2938 + components: + - type: Transform + pos: -33.5,-7.5 + parent: 1 + - uid: 2943 + components: + - type: Transform + pos: -34.5,-10.5 + parent: 1 + - uid: 2945 + components: + - type: Transform + pos: 10.5,60.5 + parent: 1 + - uid: 2947 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-9.5 + parent: 1 + - uid: 2949 + components: + - type: Transform + pos: -34.5,-8.5 + parent: 1 + - uid: 2950 + components: + - type: Transform + pos: -34.5,-7.5 + parent: 1 + - uid: 2952 + components: + - type: Transform + pos: -33.5,-11.5 + parent: 1 + - uid: 2953 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,67.5 + parent: 1 + - uid: 2955 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,55.5 + parent: 1 + - uid: 2957 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-19.5 + parent: 1 + - uid: 2958 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,-19.5 + parent: 1 + - uid: 2959 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-12.5 + parent: 1 + - uid: 2960 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,18.5 + parent: 1 + - uid: 2964 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-21.5 + parent: 1 + - uid: 2974 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-16.5 + parent: 1 + - uid: 2975 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,-17.5 + parent: 1 + - uid: 2976 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,26.5 + parent: 1 + - uid: 2979 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,0.5 + parent: 1 + - uid: 2980 + components: + - type: Transform + pos: 27.5,55.5 + parent: 1 + - uid: 2981 + components: + - type: Transform + pos: 6.5,60.5 + parent: 1 + - uid: 2983 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,21.5 + parent: 1 + - uid: 2985 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-16.5 + parent: 1 + - uid: 2986 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -39.5,15.5 + parent: 1 + - uid: 2992 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-17.5 + parent: 1 + - uid: 2999 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,26.5 + parent: 1 + - uid: 3000 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-15.5 + parent: 1 + - uid: 3005 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,26.5 + parent: 1 + - uid: 3011 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-17.5 + parent: 1 + - uid: 3012 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,8.5 + parent: 1 + - uid: 3016 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,0.5 + parent: 1 + - uid: 3018 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,52.5 + parent: 1 + - uid: 3019 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,49.5 + parent: 1 + - uid: 3020 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,49.5 + parent: 1 + - uid: 3025 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,26.5 + parent: 1 + - uid: 3027 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,26.5 + parent: 1 + - uid: 3031 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,15.5 + parent: 1 + - uid: 3032 + components: + - type: Transform + pos: 6.5,62.5 + parent: 1 + - uid: 3040 + components: + - type: Transform + pos: -1.5,-19.5 + parent: 1 + - uid: 3045 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -38.5,15.5 + parent: 1 + - uid: 3060 + components: + - type: Transform + pos: 0.5,-19.5 + parent: 1 + - uid: 3063 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,5.5 + parent: 1 + - uid: 3065 + components: + - type: Transform + pos: 2.5,-17.5 + parent: 1 + - uid: 3071 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,47.5 + parent: 1 + - uid: 3073 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-14.5 + parent: 1 + - uid: 3076 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-1.5 + parent: 1 + - uid: 3079 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-20.5 + parent: 1 + - uid: 3080 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-19.5 + parent: 1 + - uid: 3083 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 17.5,56.5 + parent: 1 + - uid: 3085 + components: + - type: Transform + pos: -3.5,-19.5 + parent: 1 + - uid: 3087 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,14.5 + parent: 1 + - uid: 3088 + components: + - type: Transform + pos: 2.5,-21.5 + parent: 1 + - uid: 3090 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-21.5 + parent: 1 + - uid: 3091 + components: + - type: Transform + pos: -1.5,-21.5 + parent: 1 + - uid: 3095 + components: + - type: Transform + pos: -3.5,-20.5 + parent: 1 + - uid: 3099 + components: + - type: Transform + pos: 10.5,59.5 + parent: 1 + - uid: 3100 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,52.5 + parent: 1 + - uid: 3101 + components: + - type: Transform + pos: -30.5,-11.5 + parent: 1 + - uid: 3109 + components: + - type: Transform + pos: -3.5,-18.5 + parent: 1 + - uid: 3111 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-19.5 + parent: 1 + - uid: 3112 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,16.5 + parent: 1 + - uid: 3113 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,7.5 + parent: 1 + - uid: 3114 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,50.5 + parent: 1 + - uid: 3120 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,70.5 + parent: 1 + - uid: 3121 + components: + - type: Transform + pos: -23.5,-12.5 + parent: 1 + - uid: 3130 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,33.5 + parent: 1 + - uid: 3136 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,50.5 + parent: 1 + - uid: 3140 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-13.5 + parent: 1 + - uid: 3142 + components: + - type: Transform + pos: -34.5,-9.5 + parent: 1 + - uid: 3144 + components: + - type: Transform + pos: -5.5,-17.5 + parent: 1 + - uid: 3145 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,-14.5 + parent: 1 + - uid: 3155 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-4.5 + parent: 1 + - uid: 3165 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,68.5 + parent: 1 + - uid: 3167 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-17.5 + parent: 1 + - uid: 3168 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-21.5 + parent: 1 + - uid: 3169 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-20.5 + parent: 1 + - uid: 3170 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-19.5 + parent: 1 + - uid: 3171 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-18.5 + parent: 1 + - uid: 3172 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,-17.5 + parent: 1 + - uid: 3173 + components: + - type: Transform + pos: -18.5,-30.5 + parent: 1 + - uid: 3184 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-11.5 + parent: 1 + - uid: 3186 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,6.5 + parent: 1 + - uid: 3188 + components: + - type: Transform + pos: -23.5,-11.5 + parent: 1 + - uid: 3192 + components: + - type: Transform + pos: 6.5,64.5 + parent: 1 + - uid: 3193 + components: + - type: Transform + pos: 6.5,63.5 + parent: 1 + - uid: 3194 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-6.5 + parent: 1 + - uid: 3195 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,-6.5 + parent: 1 + - uid: 3197 + components: + - type: Transform + pos: 14.5,57.5 + parent: 1 + - uid: 3199 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 20.5,67.5 + parent: 1 + - uid: 3202 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,56.5 + parent: 1 + - uid: 3203 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,-21.5 + parent: 1 + - uid: 3204 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-13.5 + parent: 1 + - uid: 3205 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,41.5 + parent: 1 + - uid: 3209 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-16.5 + parent: 1 + - uid: 3211 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,11.5 + parent: 1 + - uid: 3214 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-17.5 + parent: 1 + - uid: 3218 + components: + - type: Transform + pos: 9.5,60.5 + parent: 1 + - uid: 3219 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,35.5 + parent: 1 + - uid: 3220 + components: + - type: Transform + pos: 6.5,58.5 + parent: 1 + - uid: 3223 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-6.5 + parent: 1 + - uid: 3224 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-5.5 + parent: 1 + - uid: 3225 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-4.5 + parent: 1 + - uid: 3226 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-3.5 + parent: 1 + - uid: 3227 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-2.5 + parent: 1 + - uid: 3228 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -31.5,-19.5 + parent: 1 + - uid: 3229 + components: + - type: Transform + pos: -30.5,-19.5 + parent: 1 + - uid: 3230 + components: + - type: Transform + pos: -0.5,-11.5 + parent: 1 + - uid: 3233 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,-13.5 + parent: 1 + - uid: 3239 + components: + - type: Transform + pos: -33.5,-2.5 + parent: 1 + - uid: 3243 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-12.5 + parent: 1 + - uid: 3249 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-18.5 + parent: 1 + - uid: 3254 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,9.5 + parent: 1 + - uid: 3267 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,46.5 + parent: 1 + - uid: 3268 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,14.5 + parent: 1 + - uid: 3270 + components: + - type: Transform + pos: 9.5,68.5 + parent: 1 + - uid: 3272 + components: + - type: Transform + pos: 6.5,57.5 + parent: 1 + - uid: 3281 + components: + - type: Transform + pos: 13.5,60.5 + parent: 1 + - uid: 3283 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,67.5 + parent: 1 + - uid: 3286 + components: + - type: Transform + pos: -9.5,-17.5 + parent: 1 + - uid: 3287 + components: + - type: Transform + pos: 6.5,56.5 + parent: 1 + - uid: 3289 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -33.5,21.5 + parent: 1 + - uid: 3292 + components: + - type: Transform + pos: 14.5,67.5 + parent: 1 + - uid: 3296 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-18.5 + parent: 1 + - uid: 3300 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,52.5 + parent: 1 + - uid: 3301 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-9.5 + parent: 1 + - uid: 3306 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,-1.5 + parent: 1 + - uid: 3320 + components: + - type: Transform + pos: 7.5,60.5 + parent: 1 + - uid: 3327 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,-12.5 + parent: 1 + - uid: 3330 + components: + - type: Transform + pos: -10.5,-16.5 + parent: 1 + - uid: 3332 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,55.5 + parent: 1 + - uid: 3333 + components: + - type: Transform + pos: -5.5,-20.5 + parent: 1 + - uid: 3336 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,39.5 + parent: 1 + - uid: 3338 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 19.5,56.5 + parent: 1 + - uid: 3341 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,54.5 + parent: 1 + - uid: 3342 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,53.5 + parent: 1 + - uid: 3346 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,50.5 + parent: 1 + - uid: 3348 + components: + - type: Transform + pos: 0.5,46.5 + parent: 1 + - uid: 3350 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,-9.5 + parent: 1 + - uid: 3353 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,53.5 + parent: 1 + - uid: 3354 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,51.5 + parent: 1 + - uid: 3355 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,53.5 + parent: 1 + - uid: 3356 + components: + - type: Transform + pos: 0.5,45.5 + parent: 1 + - uid: 3358 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,55.5 + parent: 1 + - uid: 3361 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,52.5 + parent: 1 + - uid: 3364 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 8.5,-9.5 + parent: 1 + - uid: 3365 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,48.5 + parent: 1 + - uid: 3366 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,48.5 + parent: 1 + - uid: 3371 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-20.5 + parent: 1 + - uid: 3374 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,57.5 + parent: 1 + - uid: 3375 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,10.5 + parent: 1 + - uid: 3376 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,13.5 + parent: 1 + - uid: 3377 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,53.5 + parent: 1 + - uid: 3379 + components: + - type: Transform + pos: -3.5,38.5 + parent: 1 + - uid: 3380 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,41.5 + parent: 1 + - uid: 3386 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,45.5 + parent: 1 + - uid: 3387 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,4.5 + parent: 1 + - uid: 3388 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,20.5 + parent: 1 + - uid: 3390 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,39.5 + parent: 1 + - uid: 3399 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,67.5 + parent: 1 + - uid: 3401 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -40.5,1.5 + parent: 1 + - uid: 3403 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,-15.5 + parent: 1 + - uid: 3404 + components: + - type: Transform + pos: -17.5,-31.5 + parent: 1 + - uid: 3405 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 11.5,-11.5 + parent: 1 + - uid: 3406 + components: + - type: Transform + pos: 11.5,60.5 + parent: 1 + - uid: 3407 + components: + - type: Transform + pos: 14.5,58.5 + parent: 1 + - uid: 3409 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,41.5 + parent: 1 + - uid: 3417 + components: + - type: Transform + pos: -5.5,-19.5 + parent: 1 + - uid: 3419 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,-11.5 + parent: 1 + - uid: 3427 + components: + - type: Transform + pos: -7.5,-21.5 + parent: 1 + - uid: 3428 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,39.5 + parent: 1 + - uid: 3438 + components: + - type: Transform + pos: 8.5,60.5 + parent: 1 + - uid: 3439 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 18.5,56.5 + parent: 1 + - uid: 3440 + components: + - type: Transform + pos: -3.5,37.5 + parent: 1 + - uid: 3446 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,-5.5 + parent: 1 + - uid: 3447 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,70.5 + parent: 1 + - uid: 3455 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,56.5 + parent: 1 + - uid: 3456 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,52.5 + parent: 1 + - uid: 3457 + components: + - type: Transform + pos: -6.5,10.5 + parent: 1 + - uid: 3459 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,48.5 + parent: 1 + - uid: 3462 + components: + - type: Transform + pos: -1.5,-20.5 + parent: 1 + - uid: 3463 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,41.5 + parent: 1 + - uid: 3465 + components: + - type: Transform + pos: 21.5,50.5 + parent: 1 + - uid: 3476 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-17.5 + parent: 1 + - uid: 3483 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-11.5 + parent: 1 + - uid: 3494 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,53.5 + parent: 1 + - uid: 3495 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,48.5 + parent: 1 + - uid: 3499 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,-10.5 + parent: 1 + - uid: 3502 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,45.5 + parent: 1 + - uid: 3513 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,44.5 + parent: 1 + - uid: 3515 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,42.5 + parent: 1 + - uid: 3522 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,48.5 + parent: 1 + - uid: 3528 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-20.5 + parent: 1 + - uid: 3529 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-21.5 + parent: 1 + - uid: 3530 + components: + - type: Transform + pos: -9.5,-3.5 + parent: 1 + - uid: 3538 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,55.5 + parent: 1 + - uid: 3539 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,56.5 + parent: 1 + - uid: 3541 + components: + - type: Transform + pos: 21.5,52.5 + parent: 1 + - uid: 3542 + components: + - type: Transform + pos: 10.5,57.5 + parent: 1 + - uid: 3545 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,-3.5 + parent: 1 + - uid: 3549 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,62.5 + parent: 1 + - uid: 3550 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,-1.5 + parent: 1 + - uid: 3557 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,50.5 + parent: 1 + - uid: 3558 + components: + - type: Transform + pos: 6.5,65.5 + parent: 1 + - uid: 3559 + components: + - type: Transform + pos: 6.5,66.5 + parent: 1 + - uid: 3560 + components: + - type: Transform + pos: 7.5,66.5 + parent: 1 + - uid: 3568 + components: + - type: Transform + pos: 29.5,55.5 + parent: 1 + - uid: 3575 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,23.5 + parent: 1 + - uid: 3580 + components: + - type: Transform + pos: 4.5,46.5 + parent: 1 + - uid: 3589 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,40.5 + parent: 1 + - uid: 3591 + components: + - type: Transform + pos: -9.5,-16.5 + parent: 1 + - uid: 3600 + components: + - type: Transform + pos: 14.5,61.5 + parent: 1 + - uid: 3602 + components: + - type: Transform + pos: 14.5,59.5 + parent: 1 + - uid: 3604 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,25.5 + parent: 1 + - uid: 3605 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,48.5 + parent: 1 + - uid: 3606 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,49.5 + parent: 1 + - uid: 3607 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,49.5 + parent: 1 + - uid: 3612 + components: + - type: Transform + pos: -18.5,-36.5 + parent: 1 + - uid: 3619 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,56.5 + parent: 1 + - uid: 3620 + components: + - type: Transform + pos: 14.5,65.5 + parent: 1 + - uid: 3621 + components: + - type: Transform + pos: 14.5,66.5 + parent: 1 + - uid: 3622 + components: + - type: Transform + pos: 9.5,66.5 + parent: 1 + - uid: 3625 + components: + - type: Transform + pos: 21.5,48.5 + parent: 1 + - uid: 3626 + components: + - type: Transform + pos: 21.5,49.5 + parent: 1 + - uid: 3628 + components: + - type: Transform + pos: 0.5,44.5 + parent: 1 + - uid: 3635 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,-9.5 + parent: 1 + - uid: 3636 + components: + - type: Transform + pos: 28.5,55.5 + parent: 1 + - uid: 3637 + components: + - type: Transform + pos: -3.5,36.5 + parent: 1 + - uid: 3638 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,-5.5 + parent: 1 + - uid: 3639 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,26.5 + parent: 1 + - uid: 3640 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,45.5 + parent: 1 + - uid: 3641 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,-9.5 + parent: 1 + - uid: 3645 + components: + - type: Transform + pos: 26.5,55.5 + parent: 1 + - uid: 3649 + components: + - type: Transform + pos: 7.5,58.5 + parent: 1 + - uid: 3652 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,58.5 + parent: 1 + - uid: 3653 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,55.5 + parent: 1 + - uid: 3658 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,55.5 + parent: 1 + - uid: 3659 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,56.5 + parent: 1 + - uid: 3663 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,41.5 + parent: 1 + - uid: 3664 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,41.5 + parent: 1 + - uid: 3667 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,-1.5 + parent: 1 + - uid: 3668 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,70.5 + parent: 1 + - uid: 3669 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,64.5 + parent: 1 + - uid: 3670 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,26.5 + parent: 1 + - uid: 3671 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,-11.5 + parent: 1 + - uid: 3672 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,67.5 + parent: 1 + - uid: 3675 + components: + - type: Transform + pos: -17.5,-30.5 + parent: 1 + - uid: 3676 + components: + - type: Transform + pos: -23.5,-35.5 + parent: 1 + - uid: 3678 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,-11.5 + parent: 1 + - uid: 3679 + components: + - type: Transform + pos: -10.5,-23.5 + parent: 1 + - uid: 3680 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,-12.5 + parent: 1 + - uid: 3681 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,-4.5 + parent: 1 + - uid: 3686 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,67.5 + parent: 1 + - uid: 3687 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,50.5 + parent: 1 + - uid: 3688 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,44.5 + parent: 1 + - uid: 3689 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,24.5 + parent: 1 + - uid: 3690 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,69.5 + parent: 1 + - uid: 3691 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,48.5 + parent: 1 + - uid: 3699 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,53.5 + parent: 1 + - uid: 3701 + components: + - type: Transform + pos: -30.5,46.5 + parent: 1 + - uid: 3705 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,45.5 + parent: 1 + - uid: 3707 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,52.5 + parent: 1 + - uid: 3722 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,-11.5 + parent: 1 + - uid: 3731 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,67.5 + parent: 1 + - uid: 3733 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,70.5 + parent: 1 + - uid: 3734 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,51.5 + parent: 1 + - uid: 3735 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,50.5 + parent: 1 + - uid: 3736 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,50.5 + parent: 1 + - uid: 3737 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,-11.5 + parent: 1 + - uid: 3738 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,68.5 + parent: 1 + - uid: 3739 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,21.5 + parent: 1 + - uid: 3749 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,46.5 + parent: 1 + - uid: 3755 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 15.5,70.5 + parent: 1 + - uid: 3757 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,22.5 + parent: 1 + - uid: 3765 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,-5.5 + parent: 1 + - uid: 3767 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,31.5 + parent: 1 + - uid: 3802 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,-11.5 + parent: 1 + - uid: 3803 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,38.5 + parent: 1 + - uid: 3818 + components: + - type: Transform + pos: -22.5,-35.5 + parent: 1 + - uid: 3822 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,49.5 + parent: 1 + - uid: 3829 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,32.5 + parent: 1 + - uid: 3836 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,32.5 + parent: 1 + - uid: 3839 + components: + - type: Transform + pos: -30.5,47.5 + parent: 1 + - uid: 3841 + components: + - type: Transform + pos: -10.5,-27.5 + parent: 1 + - uid: 3844 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,61.5 + parent: 1 + - uid: 3857 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,60.5 + parent: 1 + - uid: 3858 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,59.5 + parent: 1 + - uid: 3860 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,62.5 + parent: 1 + - uid: 3861 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,34.5 + parent: 1 + - uid: 3862 + components: + - type: Transform + pos: -30.5,49.5 + parent: 1 + - uid: 3863 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,37.5 + parent: 1 + - uid: 3864 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,36.5 + parent: 1 + - uid: 3866 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,35.5 + parent: 1 + - uid: 3868 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,33.5 + parent: 1 + - uid: 3869 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 29.5,32.5 + parent: 1 + - uid: 3870 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 30.5,32.5 + parent: 1 + - uid: 3871 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,2.5 + parent: 1 + - uid: 3872 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,1.5 + parent: 1 + - uid: 3873 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,3.5 + parent: 1 + - uid: 3874 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,-2.5 + parent: 1 + - uid: 3876 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 26.5,-1.5 + parent: 1 + - uid: 3877 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,-1.5 + parent: 1 + - uid: 3889 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,-0.5 + parent: 1 + - uid: 3899 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 28.5,0.5 + parent: 1 + - uid: 3901 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,67.5 + parent: 1 + - uid: 3903 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,66.5 + parent: 1 + - uid: 3909 + components: + - type: Transform + pos: -3.5,51.5 + parent: 1 + - uid: 3910 + components: + - type: Transform + pos: -3.5,50.5 + parent: 1 + - uid: 3911 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,51.5 + parent: 1 + - uid: 3913 + components: + - type: Transform + pos: -3.5,49.5 + parent: 1 + - uid: 3920 + components: + - type: Transform + pos: -5.5,51.5 + parent: 1 + - uid: 3921 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -53.5,-7.5 + parent: 1 + - uid: 3923 + components: + - type: Transform + pos: -7.5,51.5 + parent: 1 + - uid: 3924 + components: + - type: Transform + pos: -8.5,51.5 + parent: 1 + - uid: 3925 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -53.5,-2.5 + parent: 1 + - uid: 3935 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,58.5 + parent: 1 + - uid: 3937 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,57.5 + parent: 1 + - uid: 3940 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,68.5 + parent: 1 + - uid: 3943 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,68.5 + parent: 1 + - uid: 3946 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 22.5,-6.5 + parent: 1 + - uid: 3953 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,53.5 + parent: 1 + - uid: 3963 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,50.5 + parent: 1 + - uid: 3964 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,50.5 + parent: 1 + - uid: 3969 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,67.5 + parent: 1 + - uid: 3971 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.5,68.5 + parent: 1 + - uid: 3982 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,51.5 + parent: 1 + - uid: 3988 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,68.5 + parent: 1 + - uid: 3989 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,68.5 + parent: 1 + - uid: 3993 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,68.5 + parent: 1 + - uid: 3994 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,68.5 + parent: 1 + - uid: 4001 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,68.5 + parent: 1 + - uid: 4002 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,68.5 + parent: 1 + - uid: 4003 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,68.5 + parent: 1 + - uid: 4014 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,68.5 + parent: 1 + - uid: 4015 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,68.5 + parent: 1 + - uid: 4024 + components: + - type: Transform + pos: -12.5,50.5 + parent: 1 + - uid: 4025 + components: + - type: Transform + pos: -12.5,51.5 + parent: 1 + - uid: 4026 + components: + - type: Transform + pos: 0.5,50.5 + parent: 1 + - uid: 4027 + components: + - type: Transform + pos: 0.5,49.5 + parent: 1 + - uid: 4028 + components: + - type: Transform + pos: 0.5,48.5 + parent: 1 + - uid: 4029 + components: + - type: Transform + pos: 0.5,47.5 + parent: 1 + - uid: 4032 + components: + - type: Transform + pos: -9.5,51.5 + parent: 1 + - uid: 4033 + components: + - type: Transform + pos: -10.5,51.5 + parent: 1 + - uid: 4034 + components: + - type: Transform + pos: -11.5,51.5 + parent: 1 + - uid: 4035 + components: + - type: Transform + pos: -4.5,51.5 + parent: 1 + - uid: 4036 + components: + - type: Transform + pos: -6.5,51.5 + parent: 1 + - uid: 4044 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,61.5 + parent: 1 + - uid: 4046 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,60.5 + parent: 1 + - uid: 4047 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,59.5 + parent: 1 + - uid: 4087 + components: + - type: Transform + pos: 32.5,6.5 + parent: 1 + - uid: 4103 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 33.5,45.5 + parent: 1 + - uid: 4110 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,-14.5 + parent: 1 + - uid: 4113 + components: + - type: Transform + pos: 48.5,6.5 + parent: 1 + - uid: 4135 + components: + - type: Transform + pos: 34.5,8.5 + parent: 1 + - uid: 4136 + components: + - type: Transform + pos: 38.5,7.5 + parent: 1 + - uid: 4143 + components: + - type: Transform + pos: -45.5,-12.5 + parent: 1 + - uid: 4148 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,-13.5 + parent: 1 + - uid: 4151 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -55.5,-12.5 + parent: 1 + - uid: 4157 + components: + - type: Transform + pos: -45.5,-11.5 + parent: 1 + - uid: 4163 + components: + - type: Transform + pos: 47.5,8.5 + parent: 1 + - uid: 4167 + components: + - type: Transform + pos: 49.5,17.5 + parent: 1 + - uid: 4170 + components: + - type: Transform + pos: 49.5,16.5 + parent: 1 + - uid: 4184 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -49.5,-16.5 + parent: 1 + - uid: 4198 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -48.5,-15.5 + parent: 1 + - uid: 4199 + components: + - type: Transform + pos: -37.5,-1.5 + parent: 1 + - uid: 4207 + components: + - type: Transform + pos: 43.5,6.5 + parent: 1 + - uid: 4209 + components: + - type: Transform + pos: -45.5,-10.5 + parent: 1 + - uid: 4210 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,-4.5 + parent: 1 + - uid: 4213 + components: + - type: Transform + pos: 47.5,17.5 + parent: 1 + - uid: 4222 + components: + - type: Transform + pos: 39.5,9.5 + parent: 1 + - uid: 4227 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,30.5 + parent: 1 + - uid: 4233 + components: + - type: Transform + pos: 49.5,6.5 + parent: 1 + - uid: 4234 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -48.5,-16.5 + parent: 1 + - uid: 4252 + components: + - type: Transform + pos: -44.5,-10.5 + parent: 1 + - uid: 4275 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -55.5,-14.5 + parent: 1 + - uid: 4285 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -55.5,-13.5 + parent: 1 + - uid: 4291 + components: + - type: Transform + pos: 39.5,14.5 + parent: 1 + - uid: 4297 + components: + - type: Transform + pos: 49.5,14.5 + parent: 1 + - uid: 4306 + components: + - type: Transform + pos: 51.5,16.5 + parent: 1 + - uid: 4315 + components: + - type: Transform + pos: 38.5,5.5 + parent: 1 + - uid: 4321 + components: + - type: Transform + pos: -45.5,-4.5 + parent: 1 + - uid: 4322 + components: + - type: Transform + pos: -45.5,-2.5 + parent: 1 + - uid: 4341 + components: + - type: Transform + pos: 43.5,16.5 + parent: 1 + - uid: 4357 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,35.5 + parent: 1 + - uid: 4360 + components: + - type: Transform + pos: 50.5,16.5 + parent: 1 + - uid: 4368 + components: + - type: Transform + pos: 51.5,15.5 + parent: 1 + - uid: 4379 + components: + - type: Transform + pos: -37.5,-0.5 + parent: 1 + - uid: 4383 + components: + - type: Transform + pos: 48.5,14.5 + parent: 1 + - uid: 4386 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,29.5 + parent: 1 + - uid: 4389 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,45.5 + parent: 1 + - uid: 4390 + components: + - type: Transform + pos: 47.5,9.5 + parent: 1 + - uid: 4392 + components: + - type: Transform + pos: 49.5,7.5 + parent: 1 + - uid: 4397 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,35.5 + parent: 1 + - uid: 4399 + components: + - type: Transform + pos: -37.5,43.5 + parent: 1 + - uid: 4410 + components: + - type: Transform + pos: 49.5,9.5 + parent: 1 + - uid: 4416 + components: + - type: Transform + pos: -40.5,-1.5 + parent: 1 + - uid: 4417 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,52.5 + parent: 1 + - uid: 4419 + components: + - type: Transform + pos: -45.5,-3.5 + parent: 1 + - uid: 4421 + components: + - type: Transform + pos: 43.5,17.5 + parent: 1 + - uid: 4424 + components: + - type: Transform + pos: 35.5,16.5 + parent: 1 + - uid: 4446 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,9.5 + parent: 1 + - uid: 4450 + components: + - type: Transform + pos: 43.5,7.5 + parent: 1 + - uid: 4453 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,42.5 + parent: 1 + - uid: 4456 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,30.5 + parent: 1 + - uid: 4482 + components: + - type: Transform + pos: 47.5,6.5 + parent: 1 + - uid: 4487 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,45.5 + parent: 1 + - uid: 4490 + components: + - type: Transform + pos: 51.5,14.5 + parent: 1 + - uid: 4491 + components: + - type: Transform + pos: -37.5,47.5 + parent: 1 + - uid: 4506 + components: + - type: Transform + pos: 43.5,8.5 + parent: 1 + - uid: 4507 + components: + - type: Transform + pos: -36.5,43.5 + parent: 1 + - uid: 4525 + components: + - type: Transform + pos: 50.5,7.5 + parent: 1 + - uid: 4532 + components: + - type: Transform + pos: -38.5,-1.5 + parent: 1 + - uid: 4535 + components: + - type: Transform + pos: 51.5,7.5 + parent: 1 + - uid: 4545 + components: + - type: Transform + pos: 37.5,14.5 + parent: 1 + - uid: 4561 + components: + - type: Transform + pos: -44.5,-1.5 + parent: 1 + - uid: 4566 + components: + - type: Transform + pos: 42.5,5.5 + parent: 1 + - uid: 4577 + components: + - type: Transform + pos: -33.5,-12.5 + parent: 1 + - uid: 4586 + components: + - type: Transform + pos: -31.5,46.5 + parent: 1 + - uid: 4592 + components: + - type: Transform + pos: -34.5,-12.5 + parent: 1 + - uid: 4600 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,52.5 + parent: 1 + - uid: 4604 + components: + - type: Transform + pos: 34.5,10.5 + parent: 1 + - uid: 4610 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 31.5,14.5 + parent: 1 + - uid: 4611 + components: + - type: Transform + pos: -44.5,-12.5 + parent: 1 + - uid: 4613 + components: + - type: Transform + pos: 43.5,5.5 + parent: 1 + - uid: 4628 + components: + - type: Transform + pos: 34.5,9.5 + parent: 1 + - uid: 4641 + components: + - type: Transform + pos: -45.5,-1.5 + parent: 1 + - uid: 4676 + components: + - type: Transform + pos: 43.5,9.5 + parent: 1 + - uid: 4677 + components: + - type: Transform + pos: 42.5,9.5 + parent: 1 + - uid: 4682 + components: + - type: Transform + pos: 34.5,7.5 + parent: 1 + - uid: 4684 + components: + - type: Transform + pos: -39.5,-1.5 + parent: 1 + - uid: 4704 + components: + - type: Transform + pos: -36.5,-0.5 + parent: 1 + - uid: 4709 + components: + - type: Transform + pos: 48.5,17.5 + parent: 1 + - uid: 4729 + components: + - type: Transform + pos: 32.5,10.5 + parent: 1 + - uid: 4733 + components: + - type: Transform + pos: 47.5,14.5 + parent: 1 + - uid: 4739 + components: + - type: Transform + pos: 37.5,7.5 + parent: 1 + - uid: 4740 + components: + - type: Transform + pos: 36.5,7.5 + parent: 1 + - uid: 4745 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,14.5 + parent: 1 + - uid: 4748 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,26.5 + parent: 1 + - uid: 4754 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,14.5 + parent: 1 + - uid: 4764 + components: + - type: Transform + pos: 38.5,13.5 + parent: 1 + - uid: 4768 + components: + - type: Transform + pos: 35.5,7.5 + parent: 1 + - uid: 4772 + components: + - type: Transform + pos: -34.5,46.5 + parent: 1 + - uid: 4802 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,-2.5 + parent: 1 + - uid: 4806 + components: + - type: Transform + pos: 33.5,10.5 + parent: 1 + - uid: 4807 + components: + - type: Transform + pos: 38.5,6.5 + parent: 1 + - uid: 4822 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,9.5 + parent: 1 + - uid: 4833 + components: + - type: Transform + pos: -42.5,-1.5 + parent: 1 + - uid: 4834 + components: + - type: Transform + pos: -41.5,-4.5 + parent: 1 + - uid: 4835 + components: + - type: Transform + pos: -41.5,-3.5 + parent: 1 + - uid: 4836 + components: + - type: Transform + pos: -41.5,-2.5 + parent: 1 + - uid: 4837 + components: + - type: Transform + pos: -41.5,-1.5 + parent: 1 + - uid: 4838 + components: + - type: Transform + pos: -34.5,53.5 + parent: 1 + - uid: 4840 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,-3.5 + parent: 1 + - uid: 4841 + components: + - type: Transform + pos: -44.5,-11.5 + parent: 1 + - uid: 4848 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-33.5 + parent: 1 + - uid: 4850 + components: + - type: Transform + pos: 36.5,16.5 + parent: 1 + - uid: 4853 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 32.5,9.5 + parent: 1 + - uid: 4856 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,32.5 + parent: 1 + - uid: 4870 + components: + - type: Transform + pos: -34.5,43.5 + parent: 1 + - uid: 4881 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 31.5,30.5 + parent: 1 + - uid: 4893 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,31.5 + parent: 1 + - uid: 4899 + components: + - type: Transform + pos: 1.5,-27.5 + parent: 1 + - uid: 4907 + components: + - type: Transform + pos: 32.5,13.5 + parent: 1 + - uid: 4908 + components: + - type: Transform + pos: 33.5,13.5 + parent: 1 + - uid: 4909 + components: + - type: Transform + pos: 34.5,13.5 + parent: 1 + - uid: 4910 + components: + - type: Transform + pos: 34.5,14.5 + parent: 1 + - uid: 4911 + components: + - type: Transform + pos: 34.5,15.5 + parent: 1 + - uid: 4912 + components: + - type: Transform + pos: 34.5,16.5 + parent: 1 + - uid: 4923 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 22.5,31.5 + parent: 1 + - uid: 4924 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,31.5 + parent: 1 + - uid: 4925 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 23.5,26.5 + parent: 1 + - uid: 4935 + components: + - type: Transform + pos: -33.5,46.5 + parent: 1 + - uid: 4939 + components: + - type: Transform + pos: -53.5,58.5 + parent: 1 + - uid: 4950 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -50.5,-16.5 + parent: 1 + - uid: 4956 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 34.5,45.5 + parent: 1 + - uid: 4958 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,43.5 + parent: 1 + - uid: 4960 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,31.5 + parent: 1 + - uid: 4969 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-1.5 + parent: 1 + - uid: 4972 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-2.5 + parent: 1 + - uid: 4974 + components: + - type: Transform + pos: 36.5,9.5 + parent: 1 + - uid: 4975 + components: + - type: Transform + pos: 37.5,9.5 + parent: 1 + - uid: 4976 + components: + - type: Transform + pos: 38.5,9.5 + parent: 1 + - uid: 4977 + components: + - type: Transform + pos: 38.5,10.5 + parent: 1 + - uid: 4980 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -52.5,-1.5 + parent: 1 + - uid: 4981 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -52.5,-2.5 + parent: 1 + - uid: 4987 + components: + - type: Transform + pos: 38.5,16.5 + parent: 1 + - uid: 4988 + components: + - type: Transform + pos: 37.5,16.5 + parent: 1 + - uid: 4989 + components: + - type: Transform + pos: 38.5,14.5 + parent: 1 + - uid: 4990 + components: + - type: Transform + pos: 36.5,14.5 + parent: 1 + - uid: 5005 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -56.5,-14.5 + parent: 1 + - uid: 5007 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,28.5 + parent: 1 + - uid: 5010 + components: + - type: Transform + pos: -46.5,-3.5 + parent: 1 + - uid: 5011 + components: + - type: Transform + pos: -46.5,-2.5 + parent: 1 + - uid: 5013 + components: + - type: Transform + pos: -46.5,-1.5 + parent: 1 + - uid: 5014 + components: + - type: Transform + pos: -45.5,-0.5 + parent: 1 + - uid: 5015 + components: + - type: Transform + pos: -44.5,-0.5 + parent: 1 + - uid: 5016 + components: + - type: Transform + pos: -43.5,-0.5 + parent: 1 + - uid: 5017 + components: + - type: Transform + pos: -42.5,-0.5 + parent: 1 + - uid: 5018 + components: + - type: Transform + pos: -41.5,-0.5 + parent: 1 + - uid: 5019 + components: + - type: Transform + pos: -40.5,-0.5 + parent: 1 + - uid: 5021 + components: + - type: Transform + pos: 38.5,18.5 + parent: 1 + - uid: 5025 + components: + - type: Transform + pos: 43.5,15.5 + parent: 1 + - uid: 5026 + components: + - type: Transform + pos: 43.5,14.5 + parent: 1 + - uid: 5031 + components: + - type: Transform + pos: 47.5,15.5 + parent: 1 + - uid: 5032 + components: + - type: Transform + pos: 42.5,14.5 + parent: 1 + - uid: 5033 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -56.5,-15.5 + parent: 1 + - uid: 5034 + components: + - type: Transform + pos: -46.5,-4.5 + parent: 1 + - uid: 5037 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-15.5 + parent: 1 + - uid: 5038 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-16.5 + parent: 1 + - uid: 5043 + components: + - type: Transform + pos: 48.5,9.5 + parent: 1 + - uid: 5056 + components: + - type: Transform + pos: 51.5,8.5 + parent: 1 + - uid: 5063 + components: + - type: Transform + pos: 51.5,9.5 + parent: 1 + - uid: 5066 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -56.5,-12.5 + parent: 1 + - uid: 5067 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,-16.5 + parent: 1 + - uid: 5072 + components: + - type: Transform + pos: 39.5,5.5 + parent: 1 + - uid: 5074 + components: + - type: Transform + pos: 40.5,5.5 + parent: 1 + - uid: 5079 + components: + - type: Transform + pos: 41.5,5.5 + parent: 1 + - uid: 5083 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,-13.5 + parent: 1 + - uid: 5140 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,41.5 + parent: 1 + - uid: 5142 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 36.5,45.5 + parent: 1 + - uid: 5148 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,26.5 + parent: 1 + - uid: 5150 + components: + - type: Transform + pos: -32.5,46.5 + parent: 1 + - uid: 5165 + components: + - type: Transform + pos: 38.5,17.5 + parent: 1 + - uid: 5166 + components: + - type: Transform + pos: 39.5,18.5 + parent: 1 + - uid: 5167 + components: + - type: Transform + pos: 40.5,18.5 + parent: 1 + - uid: 5168 + components: + - type: Transform + pos: 42.5,18.5 + parent: 1 + - uid: 5169 + components: + - type: Transform + pos: 41.5,18.5 + parent: 1 + - uid: 5170 + components: + - type: Transform + pos: 43.5,18.5 + parent: 1 + - uid: 5184 + components: + - type: Transform + pos: -37.5,49.5 + parent: 1 + - uid: 5190 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-29.5 + parent: 1 + - uid: 5191 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,44.5 + parent: 1 + - uid: 5193 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,31.5 + parent: 1 + - uid: 5194 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,31.5 + parent: 1 + - uid: 5216 + components: + - type: Transform + pos: -37.5,42.5 + parent: 1 + - uid: 5238 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,-14.5 + parent: 1 + - uid: 5251 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -56.5,-13.5 + parent: 1 + - uid: 5264 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -52.5,-15.5 + parent: 1 + - uid: 5265 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -53.5,-16.5 + parent: 1 + - uid: 5266 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -52.5,-16.5 + parent: 1 + - uid: 5287 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,30.5 + parent: 1 + - uid: 5291 + components: + - type: Transform + pos: -37.5,40.5 + parent: 1 + - uid: 5295 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,35.5 + parent: 1 + - uid: 5296 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,32.5 + parent: 1 + - uid: 5305 + components: + - type: Transform + pos: -34.5,39.5 + parent: 1 + - uid: 5306 + components: + - type: Transform + pos: -35.5,39.5 + parent: 1 + - uid: 5307 + components: + - type: Transform + pos: -36.5,39.5 + parent: 1 + - uid: 5310 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,31.5 + parent: 1 + - uid: 5314 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,50.5 + parent: 1 + - uid: 5372 + components: + - type: Transform + pos: -36.5,50.5 + parent: 1 + - uid: 5373 + components: + - type: Transform + pos: -37.5,50.5 + parent: 1 + - uid: 5374 + components: + - type: Transform + pos: -37.5,48.5 + parent: 1 + - uid: 5384 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,50.5 + parent: 1 + - uid: 5395 + components: + - type: Transform + pos: -35.5,43.5 + parent: 1 + - uid: 5409 + components: + - type: Transform + pos: -35.5,50.5 + parent: 1 + - uid: 5410 + components: + - type: Transform + pos: -35.5,46.5 + parent: 1 + - uid: 5411 + components: + - type: Transform + pos: -36.5,46.5 + parent: 1 + - uid: 5414 + components: + - type: Transform + pos: -34.5,50.5 + parent: 1 + - uid: 5430 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,35.5 + parent: 1 + - uid: 5432 + components: + - type: Transform + pos: 32.5,3.5 + parent: 1 + - uid: 5470 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,35.5 + parent: 1 + - uid: 5498 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,33.5 + parent: 1 + - uid: 5500 + components: + - type: Transform + pos: 5.5,-23.5 + parent: 1 + - uid: 5503 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,27.5 + parent: 1 + - uid: 5546 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-29.5 + parent: 1 + - uid: 5548 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,-12.5 + parent: 1 + - uid: 5551 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -34.5,35.5 + parent: 1 + - uid: 5552 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,-13.5 + parent: 1 + - uid: 5589 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-42.5 + parent: 1 + - uid: 5759 + components: + - type: Transform + pos: 32.5,4.5 + parent: 1 + - uid: 5814 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,-23.5 + parent: 1 + - uid: 5852 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,-24.5 + parent: 1 + - uid: 5854 + components: + - type: Transform + pos: -10.5,-22.5 + parent: 1 + - uid: 5928 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,-23.5 + parent: 1 + - uid: 5955 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,-24.5 + parent: 1 + - uid: 5963 + components: + - type: Transform + pos: 0.5,-27.5 + parent: 1 + - uid: 5968 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,-23.5 + parent: 1 + - uid: 5969 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,-24.5 + parent: 1 + - uid: 6001 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,-23.5 + parent: 1 + - uid: 6003 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,-24.5 + parent: 1 + - uid: 6011 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-25.5 + parent: 1 + - uid: 6026 + components: + - type: Transform + pos: -9.5,-22.5 + parent: 1 + - uid: 6028 + components: + - type: Transform + pos: 32.5,5.5 + parent: 1 + - uid: 6033 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-25.5 + parent: 1 + - uid: 6063 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-14.5 + parent: 1 + - uid: 6101 + components: + - type: Transform + pos: 32.5,7.5 + parent: 1 + - uid: 6112 + components: + - type: Transform + pos: -9.5,-23.5 + parent: 1 + - uid: 6123 + components: + - type: Transform + pos: 31.5,3.5 + parent: 1 + - uid: 6125 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-16.5 + parent: 1 + - uid: 6157 + components: + - type: Transform + pos: -12.5,72.5 + parent: 1 + - uid: 6161 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-18.5 + parent: 1 + - uid: 6162 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-19.5 + parent: 1 + - uid: 6163 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-20.5 + parent: 1 + - uid: 6164 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-21.5 + parent: 1 + - uid: 6165 + components: + - type: Transform + pos: 2.5,75.5 + parent: 1 + - uid: 6194 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-15.5 + parent: 1 + - uid: 6239 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-28.5 + parent: 1 + - uid: 6240 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-28.5 + parent: 1 + - uid: 6252 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,-23.5 + parent: 1 + - uid: 6292 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,-28.5 + parent: 1 + - uid: 6295 + components: + - type: Transform + pos: 5.5,-24.5 + parent: 1 + - uid: 6318 + components: + - type: Transform + pos: -4.5,42.5 + parent: 1 + - uid: 6326 + components: + - type: Transform + pos: 30.5,3.5 + parent: 1 + - uid: 6402 + components: + - type: Transform + pos: 31.5,7.5 + parent: 1 + - uid: 6418 + components: + - type: Transform + pos: 29.5,3.5 + parent: 1 + - uid: 6464 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -15.5,-25.5 + parent: 1 + - uid: 7993 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -50.5,-2.5 + parent: 1 + - uid: 8108 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-28.5 + parent: 1 + - uid: 8109 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-34.5 + parent: 1 + - uid: 8157 + components: + - type: Transform + pos: -7.5,-27.5 + parent: 1 + - uid: 8158 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,-28.5 + parent: 1 + - uid: 8297 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-35.5 + parent: 1 + - uid: 8298 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-28.5 + parent: 1 + - uid: 8301 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-28.5 + parent: 1 + - uid: 8326 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-28.5 + parent: 1 + - uid: 8328 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-34.5 + parent: 1 + - uid: 8331 + components: + - type: Transform + pos: -17.5,-35.5 + parent: 1 + - uid: 8332 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-35.5 + parent: 1 + - uid: 8340 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -55.5,-11.5 + parent: 1 + - uid: 8341 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -50.5,-15.5 + parent: 1 + - uid: 8347 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,-23.5 + parent: 1 + - uid: 8351 + components: + - type: Transform + pos: -18.5,-35.5 + parent: 1 + - uid: 8352 + components: + - type: Transform + pos: -23.5,-31.5 + parent: 1 + - uid: 8353 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,-25.5 + parent: 1 + - uid: 8354 + components: + - type: Transform + pos: -22.5,-31.5 + parent: 1 + - uid: 8357 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,-28.5 + parent: 1 + - uid: 8358 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,-27.5 + parent: 1 + - uid: 8359 + components: + - type: Transform + pos: -23.5,-30.5 + parent: 1 + - uid: 9061 + components: + - type: Transform + pos: 15.5,22.5 + parent: 1 + - uid: 9540 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -49.5,-15.5 + parent: 1 + - uid: 9733 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,50.5 + parent: 1 + - uid: 9824 + components: + - type: Transform + pos: 12.5,22.5 + parent: 1 + - uid: 10005 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-34.5 + parent: 1 + - uid: 10209 + components: + - type: Transform + pos: -30.5,72.5 + parent: 1 + - uid: 10242 + components: + - type: Transform + pos: -18.5,-31.5 + parent: 1 + - uid: 10243 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,54.5 + parent: 1 + - uid: 10310 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,53.5 + parent: 1 + - uid: 10324 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,-26.5 + parent: 1 + - uid: 10330 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,-35.5 + parent: 1 + - uid: 10357 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-23.5 + parent: 1 + - uid: 10362 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-26.5 + parent: 1 + - uid: 10717 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-23.5 + parent: 1 + - uid: 10838 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-34.5 + parent: 1 + - uid: 10839 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-28.5 + parent: 1 + - uid: 12288 + components: + - type: Transform + pos: -4.5,38.5 + parent: 1 + - uid: 12289 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,-24.5 + parent: 1 + - uid: 12290 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-42.5 + parent: 1 + - uid: 12297 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,71.5 + parent: 1 + - uid: 12301 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-34.5 + parent: 1 + - uid: 12306 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-27.5 + parent: 1 + - uid: 12324 + components: + - type: Transform + pos: 4.5,-24.5 + parent: 1 + - uid: 12325 + components: + - type: Transform + pos: 4.5,-25.5 + parent: 1 + - uid: 12326 + components: + - type: Transform + pos: 4.5,-26.5 + parent: 1 + - uid: 12327 + components: + - type: Transform + pos: 4.5,-27.5 + parent: 1 + - uid: 12330 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,-28.5 + parent: 1 + - uid: 12341 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-28.5 + parent: 1 + - uid: 12350 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,-25.5 + parent: 1 + - uid: 12351 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,-28.5 + parent: 1 + - uid: 12352 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,-28.5 + parent: 1 + - uid: 12354 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,-25.5 + parent: 1 + - uid: 12378 + components: + - type: Transform + pos: -1.5,-27.5 + parent: 1 + - uid: 12383 + components: + - type: Transform + pos: 3.5,-27.5 + parent: 1 + - uid: 12394 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,-42.5 + parent: 1 + - uid: 12395 + components: + - type: Transform + pos: 2.5,-27.5 + parent: 1 + - uid: 12401 + components: + - type: Transform + pos: 5.5,-27.5 + parent: 1 + - uid: 12430 + components: + - type: Transform + pos: -9.5,-27.5 + parent: 1 + - uid: 12436 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,-43.5 + parent: 1 + - uid: 12437 + components: + - type: Transform + pos: 5.5,-22.5 + parent: 1 + - uid: 12439 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,-43.5 + parent: 1 + - uid: 12440 + components: + - type: Transform + pos: -2.5,-27.5 + parent: 1 + - uid: 12441 + components: + - type: Transform + pos: -3.5,-27.5 + parent: 1 + - uid: 12442 + components: + - type: Transform + pos: -4.5,-27.5 + parent: 1 + - uid: 12443 + components: + - type: Transform + pos: -5.5,-27.5 + parent: 1 + - uid: 12451 + components: + - type: Transform + pos: -38.5,18.5 + parent: 1 + - uid: 12452 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,-28.5 + parent: 1 + - uid: 12454 + components: + - type: Transform + pos: 30.5,65.5 + parent: 1 + - uid: 12458 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,-42.5 + parent: 1 + - uid: 12460 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,-36.5 + parent: 1 + - uid: 12461 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -17.5,-43.5 + parent: 1 + - uid: 12471 + components: + - type: Transform + pos: -6.5,-27.5 + parent: 1 + - uid: 12472 + components: + - type: Transform + pos: -8.5,-27.5 + parent: 1 + - uid: 12478 + components: + - type: Transform + pos: -40.5,10.5 + parent: 1 + - uid: 12484 + components: + - type: Transform + pos: 4.5,-23.5 + parent: 1 + - uid: 12503 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,-42.5 + parent: 1 + - uid: 12510 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,-28.5 + parent: 1 + - uid: 12514 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-28.5 + parent: 1 + - uid: 12515 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,-28.5 + parent: 1 + - uid: 12516 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-28.5 + parent: 1 + - uid: 12524 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-36.5 + parent: 1 + - uid: 12560 + components: + - type: Transform + pos: -0.5,-27.5 + parent: 1 + - uid: 12561 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,-28.5 + parent: 1 + - uid: 12562 + components: + - type: Transform + pos: 5.5,-26.5 + parent: 1 + - uid: 12567 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-28.5 + parent: 1 + - uid: 12568 + components: + - type: Transform + pos: 5.5,-25.5 + parent: 1 + - uid: 12572 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,-25.5 + parent: 1 + - uid: 12575 + components: + - type: Transform + pos: 4.5,-22.5 + parent: 1 + - uid: 12587 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-36.5 + parent: 1 + - uid: 12591 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-36.5 + parent: 1 + - uid: 12614 + components: + - type: Transform + pos: -25.5,-21.5 + parent: 1 + - uid: 12615 + components: + - type: Transform + pos: -24.5,-21.5 + parent: 1 + - uid: 12627 + components: + - type: Transform + pos: 0.5,-20.5 + parent: 1 + - uid: 12672 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,-23.5 + parent: 1 + - uid: 12701 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-24.5 + parent: 1 + - uid: 12708 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,-24.5 + parent: 1 + - uid: 12740 + components: + - type: Transform + pos: 34.5,0.5 + parent: 1 + - uid: 12763 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-43.5 + parent: 1 + - uid: 12765 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-35.5 + parent: 1 + - uid: 12779 + components: + - type: Transform + pos: 36.5,21.5 + parent: 1 + - uid: 12780 + components: + - type: Transform + pos: 11.5,-16.5 + parent: 1 + - uid: 12812 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,-33.5 + parent: 1 + - uid: 12845 + components: + - type: Transform + pos: -37.5,39.5 + parent: 1 + - uid: 12850 + components: + - type: Transform + pos: -0.5,-9.5 + parent: 1 + - uid: 12858 + components: + - type: Transform + pos: -4.5,43.5 + parent: 1 + - uid: 12859 + components: + - type: Transform + pos: -33.5,24.5 + parent: 1 + - uid: 12860 + components: + - type: Transform + pos: -9.5,44.5 + parent: 1 + - uid: 12865 + components: + - type: Transform + pos: -10.5,44.5 + parent: 1 + - uid: 12875 + components: + - type: Transform + pos: 32.5,42.5 + parent: 1 + - uid: 12880 + components: + - type: Transform + pos: -6.5,68.5 + parent: 1 + - uid: 12895 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,-29.5 + parent: 1 + - uid: 12896 + components: + - type: Transform + pos: -10.5,-12.5 + parent: 1 + - uid: 12899 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-39.5 + parent: 1 + - uid: 12910 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-41.5 + parent: 1 + - uid: 12918 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,-23.5 + parent: 1 + - uid: 12921 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,-42.5 + parent: 1 + - uid: 12930 + components: + - type: Transform + pos: -13.5,-21.5 + parent: 1 + - uid: 12934 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-37.5 + parent: 1 + - uid: 12939 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-37.5 + parent: 1 + - uid: 12940 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-43.5 + parent: 1 + - uid: 12987 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-34.5 + parent: 1 + - uid: 12991 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-29.5 + parent: 1 + - uid: 13008 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-29.5 + parent: 1 + - uid: 13020 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-29.5 + parent: 1 + - uid: 13021 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-34.5 + parent: 1 + - uid: 13023 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-30.5 + parent: 1 + - uid: 13035 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-39.5 + parent: 1 + - uid: 13046 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-35.5 + parent: 1 + - uid: 13051 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-35.5 + parent: 1 + - uid: 13064 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-28.5 + parent: 1 + - uid: 13077 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,-42.5 + parent: 1 + - uid: 13078 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-43.5 + parent: 1 + - uid: 13081 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,-37.5 + parent: 1 + - uid: 13090 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-34.5 + parent: 1 + - uid: 13091 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,-42.5 + parent: 1 + - uid: 13123 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-43.5 + parent: 1 + - uid: 13126 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,-29.5 + parent: 1 + - uid: 13142 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-29.5 + parent: 1 + - uid: 13150 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-34.5 + parent: 1 + - uid: 13151 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,-41.5 + parent: 1 + - uid: 13152 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,-35.5 + parent: 1 + - uid: 13154 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,-35.5 + parent: 1 + - uid: 13158 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,-43.5 + parent: 1 + - uid: 13161 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-43.5 + parent: 1 + - uid: 13164 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-42.5 + parent: 1 + - uid: 13208 + components: + - type: Transform + pos: -25.5,72.5 + parent: 1 + - uid: 13209 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-38.5 + parent: 1 + - uid: 13210 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-43.5 + parent: 1 + - uid: 13218 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-37.5 + parent: 1 + - uid: 13219 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-35.5 + parent: 1 + - uid: 13235 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-36.5 + parent: 1 + - uid: 13243 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-42.5 + parent: 1 + - uid: 13250 + components: + - type: Transform + pos: -37.5,46.5 + parent: 1 + - uid: 13253 + components: + - type: Transform + pos: -4.5,44.5 + parent: 1 + - uid: 13254 + components: + - type: Transform + pos: -5.5,44.5 + parent: 1 + - uid: 13255 + components: + - type: Transform + pos: -8.5,44.5 + parent: 1 + - uid: 13256 + components: + - type: Transform + pos: -7.5,44.5 + parent: 1 + - uid: 13257 + components: + - type: Transform + pos: -11.5,44.5 + parent: 1 + - uid: 13258 + components: + - type: Transform + pos: -6.5,44.5 + parent: 1 + - uid: 13267 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-40.5 + parent: 1 + - uid: 13277 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,-41.5 + parent: 1 + - uid: 13278 + components: + - type: Transform + pos: -33.5,-14.5 + parent: 1 + - uid: 13280 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-40.5 + parent: 1 + - uid: 13303 + components: + - type: Transform + pos: -32.5,53.5 + parent: 1 + - uid: 13304 + components: + - type: Transform + pos: -31.5,53.5 + parent: 1 + - uid: 13305 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-43.5 + parent: 1 + - uid: 13306 + components: + - type: Transform + pos: -33.5,53.5 + parent: 1 + - uid: 13317 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-42.5 + parent: 1 + - uid: 13334 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-42.5 + parent: 1 + - uid: 13375 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -54.5,-10.5 + parent: 1 + - uid: 13377 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -48.5,-1.5 + parent: 1 + - uid: 13379 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -47.5,-1.5 + parent: 1 + - uid: 13394 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-43.5 + parent: 1 + - uid: 13395 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-41.5 + parent: 1 + - uid: 13397 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-39.5 + parent: 1 + - uid: 13400 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-42.5 + parent: 1 + - uid: 13410 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-38.5 + parent: 1 + - uid: 13431 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,-42.5 + parent: 1 + - uid: 13433 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,-42.5 + parent: 1 + - uid: 13464 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -53.5,-10.5 + parent: 1 + - uid: 13465 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -53.5,-9.5 + parent: 1 + - uid: 13472 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -49.5,-1.5 + parent: 1 + - uid: 13473 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,-39.5 + parent: 1 + - uid: 13475 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,-40.5 + parent: 1 + - uid: 13476 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-42.5 + parent: 1 + - uid: 13477 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-30.5 + parent: 1 + - uid: 13478 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,-38.5 + parent: 1 + - uid: 13480 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,-42.5 + parent: 1 + - uid: 13482 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,-43.5 + parent: 1 + - uid: 13483 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,-43.5 + parent: 1 + - uid: 13484 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,-43.5 + parent: 1 + - uid: 13485 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-36.5 + parent: 1 + - uid: 13486 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,-43.5 + parent: 1 + - uid: 13491 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,-35.5 + parent: 1 + - uid: 13494 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-35.5 + parent: 1 + - uid: 13498 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,-42.5 + parent: 1 + - uid: 13569 + components: + - type: Transform + pos: -8.5,72.5 + parent: 1 + - uid: 13577 + components: + - type: Transform + pos: -17.5,72.5 + parent: 1 + - uid: 13588 + components: + - type: Transform + pos: 0.5,73.5 + parent: 1 + - uid: 13589 + components: + - type: Transform + pos: -4.5,72.5 + parent: 1 + - uid: 13590 + components: + - type: Transform + pos: 0.5,75.5 + parent: 1 + - uid: 13591 + components: + - type: Transform + pos: -0.5,72.5 + parent: 1 + - uid: 13603 + components: + - type: Transform + pos: 55.5,7.5 + parent: 1 + - uid: 13604 + components: + - type: Transform + pos: 55.5,1.5 + parent: 1 + - uid: 13605 + components: + - type: Transform + pos: 55.5,-0.5 + parent: 1 + - uid: 13606 + components: + - type: Transform + pos: 53.5,-0.5 + parent: 1 + - uid: 13607 + components: + - type: Transform + pos: 44.5,-0.5 + parent: 1 + - uid: 13630 + components: + - type: Transform + pos: -25.5,-24.5 + parent: 1 + - uid: 13935 + components: + - type: Transform + pos: 32.5,-13.5 + parent: 1 + - uid: 14349 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -52.5,-7.5 + parent: 1 + - uid: 14350 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-9.5 + parent: 1 + - uid: 14351 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -52.5,-8.5 + parent: 1 + - uid: 14353 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -47.5,-16.5 + parent: 1 + - uid: 14356 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -55.5,-10.5 + parent: 1 + - uid: 14358 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -55.5,-9.5 + parent: 1 + - uid: 14369 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -56.5,-11.5 + parent: 1 + - uid: 14381 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -50.5,-1.5 + parent: 1 + - uid: 14384 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -47.5,-15.5 + parent: 1 + - uid: 14385 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -52.5,-9.5 + parent: 1 + - uid: 14398 + components: + - type: Transform + pos: -24.5,-24.5 + parent: 1 + - uid: 14402 + components: + - type: Transform + pos: -18.5,-25.5 + parent: 1 + - uid: 14408 + components: + - type: Transform + pos: -17.5,-25.5 + parent: 1 + - uid: 14416 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,-15.5 + parent: 1 + - uid: 14417 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -46.5,-15.5 + parent: 1 + - uid: 14418 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -53.5,-15.5 + parent: 1 + - uid: 14430 + components: + - type: Transform + pos: 21.5,-24.5 + parent: 1 + - uid: 14449 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 32.5,-2.5 + parent: 1 + - uid: 14467 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-8.5 + parent: 1 + - uid: 14468 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,-15.5 + parent: 1 + - uid: 14485 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 27.5,71.5 + parent: 1 + - uid: 14486 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 31.5,67.5 + parent: 1 + - uid: 14487 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,69.5 + parent: 1 + - uid: 14488 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,71.5 + parent: 1 + - uid: 14625 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -45.5,-16.5 + parent: 1 + - uid: 14626 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-7.5 + parent: 1 + - uid: 14627 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -55.5,-16.5 + parent: 1 + - uid: 14628 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -56.5,-10.5 + parent: 1 + - uid: 14629 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -55.5,-15.5 + parent: 1 + - uid: 14801 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -56.5,-9.5 + parent: 1 + - uid: 14802 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -54.5,-15.5 + parent: 1 + - uid: 14803 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -51.5,-10.5 + parent: 1 + - uid: 14804 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -49.5,-2.5 + parent: 1 + - uid: 14806 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -54.5,-16.5 + parent: 1 + - uid: 14811 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -47.5,-2.5 + parent: 1 + - uid: 14812 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -48.5,-2.5 + parent: 1 + - uid: 14813 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -52.5,-10.5 + parent: 1 + - uid: 14880 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -47.5,15.5 + parent: 1 + - uid: 15109 + components: + - type: Transform + pos: -35.5,53.5 + parent: 1 + - uid: 15110 + components: + - type: Transform + pos: -36.5,53.5 + parent: 1 + - uid: 15111 + components: + - type: Transform + pos: -37.5,53.5 + parent: 1 + - uid: 15112 + components: + - type: Transform + pos: -38.5,53.5 + parent: 1 + - uid: 15113 + components: + - type: Transform + pos: -39.5,53.5 + parent: 1 + - uid: 15117 + components: + - type: Transform + pos: -43.5,53.5 + parent: 1 + - uid: 15118 + components: + - type: Transform + pos: -44.5,53.5 + parent: 1 + - uid: 15119 + components: + - type: Transform + pos: -45.5,53.5 + parent: 1 + - uid: 15123 + components: + - type: Transform + pos: -49.5,53.5 + parent: 1 + - uid: 15124 + components: + - type: Transform + pos: -50.5,53.5 + parent: 1 + - uid: 15125 + components: + - type: Transform + pos: -50.5,54.5 + parent: 1 + - uid: 15126 + components: + - type: Transform + pos: -50.5,55.5 + parent: 1 + - uid: 15127 + components: + - type: Transform + pos: -50.5,56.5 + parent: 1 + - uid: 15128 + components: + - type: Transform + pos: -50.5,57.5 + parent: 1 + - uid: 15129 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -49.5,58.5 + parent: 1 + - uid: 15136 + components: + - type: Transform + pos: -49.5,57.5 + parent: 1 + - uid: 15137 + components: + - type: Transform + pos: -31.5,57.5 + parent: 1 + - uid: 15154 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,57.5 + parent: 1 + - uid: 15155 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,57.5 + parent: 1 + - uid: 15197 + components: + - type: Transform + pos: -53.5,57.5 + parent: 1 + - uid: 15198 + components: + - type: Transform + pos: -53.5,56.5 + parent: 1 + - uid: 15199 + components: + - type: Transform + pos: -53.5,54.5 + parent: 1 + - uid: 15200 + components: + - type: Transform + pos: -53.5,53.5 + parent: 1 + - uid: 15201 + components: + - type: Transform + pos: -53.5,52.5 + parent: 1 + - uid: 15566 + components: + - type: Transform + pos: 42.5,30.5 + parent: 1 + - uid: 15595 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-33.5 + parent: 1 + - uid: 15596 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-29.5 + parent: 1 + - uid: 15757 + components: + - type: Transform + pos: -7.5,-41.5 + parent: 1 + - uid: 15758 + components: + - type: Transform + pos: -7.5,-43.5 + parent: 1 + - uid: 15759 + components: + - type: Transform + pos: -7.5,-45.5 + parent: 1 + - uid: 15760 + components: + - type: Transform + pos: -9.5,-45.5 + parent: 1 + - uid: 15761 + components: + - type: Transform + pos: -18.5,-45.5 + parent: 1 + - uid: 15762 + components: + - type: Transform + pos: -22.5,-45.5 + parent: 1 + - uid: 15763 + components: + - type: Transform + pos: -24.5,-45.5 + parent: 1 + - uid: 16326 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -58.5,-12.5 + parent: 1 + - uid: 16328 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -58.5,-16.5 + parent: 1 + - uid: 16329 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -58.5,-18.5 + parent: 1 + - uid: 16330 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -56.5,-18.5 + parent: 1 + - uid: 16331 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -47.5,-18.5 + parent: 1 + - uid: 16332 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -55.5,0.5 + parent: 1 + - uid: 16333 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -55.5,-1.5 + parent: 1 + - uid: 16334 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -53.5,0.5 + parent: 1 + - uid: 16335 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -55.5,-5.5 + parent: 1 + - uid: 16609 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,29.5 + parent: 1 + - uid: 16610 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,27.5 + parent: 1 + - uid: 16611 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,25.5 + parent: 1 +- proto: WallRockSand + entities: + - uid: 638 + components: + - type: Transform + pos: -11.5,2.5 + parent: 1 + - uid: 1585 + components: + - type: Transform + pos: 9.5,77.5 + parent: 1 + - uid: 1610 + components: + - type: Transform + pos: 10.5,77.5 + parent: 1 + - uid: 1697 + components: + - type: Transform + pos: 10.5,76.5 + parent: 1 + - uid: 1865 + components: + - type: Transform + pos: 11.5,77.5 + parent: 1 + - uid: 1948 + components: + - type: Transform + pos: 11.5,76.5 + parent: 1 + - uid: 2238 + components: + - type: Transform + pos: 11.5,75.5 + parent: 1 + - uid: 2273 + components: + - type: Transform + pos: -11.5,1.5 + parent: 1 + - uid: 2825 + components: + - type: Transform + pos: 9.5,76.5 + parent: 1 + - uid: 3037 + components: + - type: Transform + pos: -42.5,10.5 + parent: 1 + - uid: 3978 + components: + - type: Transform + pos: -24.5,-13.5 + parent: 1 + - uid: 4060 + components: + - type: Transform + pos: -41.5,1.5 + parent: 1 + - uid: 4185 + components: + - type: Transform + pos: -24.5,-17.5 + parent: 1 + - uid: 4239 + components: + - type: Transform + pos: -42.5,0.5 + parent: 1 + - uid: 5082 + components: + - type: Transform + pos: -42.5,-16.5 + parent: 1 + - uid: 5315 + components: + - type: Transform + pos: -50.5,0.5 + parent: 1 + - uid: 5535 + components: + - type: Transform + pos: -51.5,0.5 + parent: 1 + - uid: 6408 + components: + - type: Transform + pos: -24.5,-12.5 + parent: 1 + - uid: 6550 + components: + - type: Transform + pos: -36.5,-20.5 + parent: 1 + - uid: 9040 + components: + - type: Transform + pos: -22.5,11.5 + parent: 1 + - uid: 9788 + components: + - type: Transform + pos: 28.5,66.5 + parent: 1 + - uid: 10077 + components: + - type: Transform + pos: -50.5,3.5 + parent: 1 + - uid: 10208 + components: + - type: Transform + pos: -38.5,-16.5 + parent: 1 + - uid: 10295 + components: + - type: Transform + pos: 10.5,75.5 + parent: 1 + - uid: 12177 + components: + - type: Transform + pos: 15.5,79.5 + parent: 1 + - uid: 12292 + components: + - type: Transform + pos: -15.5,68.5 + parent: 1 + - uid: 12843 + components: + - type: Transform + pos: -1.5,69.5 + parent: 1 + - uid: 12844 + components: + - type: Transform + pos: 17.5,71.5 + parent: 1 + - uid: 12846 + components: + - type: Transform + pos: 14.5,79.5 + parent: 1 + - uid: 12847 + components: + - type: Transform + pos: 12.5,76.5 + parent: 1 + - uid: 12848 + components: + - type: Transform + pos: 12.5,78.5 + parent: 1 + - uid: 12849 + components: + - type: Transform + pos: 12.5,77.5 + parent: 1 + - uid: 12851 + components: + - type: Transform + pos: 9.5,75.5 + parent: 1 + - uid: 12857 + components: + - type: Transform + pos: 20.5,71.5 + parent: 1 + - uid: 12863 + components: + - type: Transform + pos: 14.5,78.5 + parent: 1 + - uid: 12864 + components: + - type: Transform + pos: 14.5,76.5 + parent: 1 + - uid: 12866 + components: + - type: Transform + pos: 8.5,75.5 + parent: 1 + - uid: 12867 + components: + - type: Transform + pos: 8.5,76.5 + parent: 1 + - uid: 12868 + components: + - type: Transform + pos: 7.5,76.5 + parent: 1 + - uid: 12869 + components: + - type: Transform + pos: 7.5,75.5 + parent: 1 + - uid: 12871 + components: + - type: Transform + pos: 19.5,72.5 + parent: 1 + - uid: 12872 + components: + - type: Transform + pos: 17.5,70.5 + parent: 1 + - uid: 12873 + components: + - type: Transform + pos: 13.5,76.5 + parent: 1 + - uid: 12874 + components: + - type: Transform + pos: 19.5,71.5 + parent: 1 + - uid: 12876 + components: + - type: Transform + pos: 19.5,70.5 + parent: 1 + - uid: 12877 + components: + - type: Transform + pos: 14.5,77.5 + parent: 1 + - uid: 12878 + components: + - type: Transform + pos: 13.5,75.5 + parent: 1 + - uid: 12881 + components: + - type: Transform + pos: 21.5,70.5 + parent: 1 + - uid: 12882 + components: + - type: Transform + pos: 22.5,70.5 + parent: 1 + - uid: 12883 + components: + - type: Transform + pos: 13.5,77.5 + parent: 1 + - uid: 12884 + components: + - type: Transform + pos: 13.5,78.5 + parent: 1 + - uid: 12885 + components: + - type: Transform + pos: 20.5,70.5 + parent: 1 + - uid: 12903 + components: + - type: Transform + pos: 14.5,75.5 + parent: 1 + - uid: 12904 + components: + - type: Transform + pos: 31.5,66.5 + parent: 1 + - uid: 12908 + components: + - type: Transform + pos: -48.5,14.5 + parent: 1 + - uid: 12916 + components: + - type: Transform + pos: 33.5,49.5 + parent: 1 + - uid: 12923 + components: + - type: Transform + pos: 36.5,57.5 + parent: 1 + - uid: 12924 + components: + - type: Transform + pos: 33.5,47.5 + parent: 1 + - uid: 12925 + components: + - type: Transform + pos: 32.5,55.5 + parent: 1 + - uid: 12926 + components: + - type: Transform + pos: 36.5,54.5 + parent: 1 + - uid: 12927 + components: + - type: Transform + pos: -40.5,18.5 + parent: 1 + - uid: 12929 + components: + - type: Transform + pos: 16.5,76.5 + parent: 1 + - uid: 12937 + components: + - type: Transform + pos: -43.5,10.5 + parent: 1 + - uid: 12938 + components: + - type: Transform + pos: 39.5,49.5 + parent: 1 + - uid: 12941 + components: + - type: Transform + pos: 41.5,50.5 + parent: 1 + - uid: 12945 + components: + - type: Transform + pos: 35.5,60.5 + parent: 1 + - uid: 12946 + components: + - type: Transform + pos: -38.5,46.5 + parent: 1 + - uid: 12947 + components: + - type: Transform + pos: -34.5,45.5 + parent: 1 + - uid: 12948 + components: + - type: Transform + pos: -49.5,11.5 + parent: 1 + - uid: 12949 + components: + - type: Transform + pos: 14.5,71.5 + parent: 1 + - uid: 12952 + components: + - type: Transform + pos: 37.5,54.5 + parent: 1 + - uid: 12953 + components: + - type: Transform + pos: -43.5,6.5 + parent: 1 + - uid: 12955 + components: + - type: Transform + pos: -47.5,6.5 + parent: 1 + - uid: 12956 + components: + - type: Transform + pos: -41.5,18.5 + parent: 1 + - uid: 12957 + components: + - type: Transform + pos: 38.5,49.5 + parent: 1 + - uid: 12962 + components: + - type: Transform + pos: 34.5,57.5 + parent: 1 + - uid: 12967 + components: + - type: Transform + pos: -42.5,16.5 + parent: 1 + - uid: 12968 + components: + - type: Transform + pos: -47.5,11.5 + parent: 1 + - uid: 12969 + components: + - type: Transform + pos: 31.5,65.5 + parent: 1 + - uid: 12970 + components: + - type: Transform + pos: -35.5,45.5 + parent: 1 + - uid: 12971 + components: + - type: Transform + pos: 15.5,76.5 + parent: 1 + - uid: 12974 + components: + - type: Transform + pos: 39.5,46.5 + parent: 1 + - uid: 12975 + components: + - type: Transform + pos: 41.5,48.5 + parent: 1 + - uid: 12976 + components: + - type: Transform + pos: -42.5,9.5 + parent: 1 + - uid: 12977 + components: + - type: Transform + pos: 35.5,59.5 + parent: 1 + - uid: 12978 + components: + - type: Transform + pos: 27.5,68.5 + parent: 1 + - uid: 12979 + components: + - type: Transform + pos: 33.5,63.5 + parent: 1 + - uid: 12980 + components: + - type: Transform + pos: 31.5,61.5 + parent: 1 + - uid: 12981 + components: + - type: Transform + pos: 30.5,63.5 + parent: 1 + - uid: 12982 + components: + - type: Transform + pos: 31.5,59.5 + parent: 1 + - uid: 12983 + components: + - type: Transform + pos: -39.5,38.5 + parent: 1 + - uid: 12992 + components: + - type: Transform + pos: -41.5,15.5 + parent: 1 + - uid: 12993 + components: + - type: Transform + pos: -41.5,5.5 + parent: 1 + - uid: 12994 + components: + - type: Transform + pos: -43.5,5.5 + parent: 1 + - uid: 12995 + components: + - type: Transform + pos: 30.5,37.5 + parent: 1 + - uid: 12997 + components: + - type: Transform + pos: 33.5,62.5 + parent: 1 + - uid: 12998 + components: + - type: Transform + pos: 33.5,61.5 + parent: 1 + - uid: 12999 + components: + - type: Transform + pos: -48.5,9.5 + parent: 1 + - uid: 13000 + components: + - type: Transform + pos: -46.5,5.5 + parent: 1 + - uid: 13001 + components: + - type: Transform + pos: -38.5,50.5 + parent: 1 + - uid: 13007 + components: + - type: Transform + pos: 14.5,72.5 + parent: 1 + - uid: 13009 + components: + - type: Transform + pos: 16.5,78.5 + parent: 1 + - uid: 13010 + components: + - type: Transform + pos: 15.5,77.5 + parent: 1 + - uid: 13011 + components: + - type: Transform + pos: 33.5,50.5 + parent: 1 + - uid: 13012 + components: + - type: Transform + pos: 37.5,55.5 + parent: 1 + - uid: 13013 + components: + - type: Transform + pos: 36.5,55.5 + parent: 1 + - uid: 13014 + components: + - type: Transform + pos: 36.5,56.5 + parent: 1 + - uid: 13015 + components: + - type: Transform + pos: 37.5,57.5 + parent: 1 + - uid: 13016 + components: + - type: Transform + pos: 33.5,48.5 + parent: 1 + - uid: 13017 + components: + - type: Transform + pos: 32.5,37.5 + parent: 1 + - uid: 13018 + components: + - type: Transform + pos: -35.5,44.5 + parent: 1 + - uid: 13019 + components: + - type: Transform + pos: -36.5,16.5 + parent: 1 + - uid: 13024 + components: + - type: Transform + pos: 28.5,63.5 + parent: 1 + - uid: 13025 + components: + - type: Transform + pos: 22.5,68.5 + parent: 1 + - uid: 13026 + components: + - type: Transform + pos: 34.5,59.5 + parent: 1 + - uid: 13027 + components: + - type: Transform + pos: 28.5,64.5 + parent: 1 + - uid: 13028 + components: + - type: Transform + pos: 33.5,64.5 + parent: 1 + - uid: 13037 + components: + - type: Transform + pos: -46.5,15.5 + parent: 1 + - uid: 13038 + components: + - type: Transform + pos: -46.5,7.5 + parent: 1 + - uid: 13039 + components: + - type: Transform + pos: -47.5,10.5 + parent: 1 + - uid: 13042 + components: + - type: Transform + pos: 35.5,52.5 + parent: 1 + - uid: 13044 + components: + - type: Transform + pos: 42.5,50.5 + parent: 1 + - uid: 13045 + components: + - type: Transform + pos: 42.5,49.5 + parent: 1 + - uid: 13048 + components: + - type: Transform + pos: 40.5,50.5 + parent: 1 + - uid: 13050 + components: + - type: Transform + pos: -44.5,15.5 + parent: 1 + - uid: 13052 + components: + - type: Transform + pos: -41.5,14.5 + parent: 1 + - uid: 13053 + components: + - type: Transform + pos: 38.5,50.5 + parent: 1 + - uid: 13054 + components: + - type: Transform + pos: -43.5,15.5 + parent: 1 + - uid: 13055 + components: + - type: Transform + pos: -42.5,14.5 + parent: 1 + - uid: 13056 + components: + - type: Transform + pos: 28.5,67.5 + parent: 1 + - uid: 13057 + components: + - type: Transform + pos: -48.5,10.5 + parent: 1 + - uid: 13059 + components: + - type: Transform + pos: -42.5,15.5 + parent: 1 + - uid: 13060 + components: + - type: Transform + pos: 32.5,65.5 + parent: 1 + - uid: 13061 + components: + - type: Transform + pos: 39.5,44.5 + parent: 1 + - uid: 13062 + components: + - type: Transform + pos: 36.5,48.5 + parent: 1 + - uid: 13065 + components: + - type: Transform + pos: -37.5,16.5 + parent: 1 + - uid: 13066 + components: + - type: Transform + pos: 40.5,46.5 + parent: 1 + - uid: 13067 + components: + - type: Transform + pos: 31.5,58.5 + parent: 1 + - uid: 13068 + components: + - type: Transform + pos: 19.5,68.5 + parent: 1 + - uid: 13069 + components: + - type: Transform + pos: -38.5,36.5 + parent: 1 + - uid: 13070 + components: + - type: Transform + pos: 39.5,45.5 + parent: 1 + - uid: 13071 + components: + - type: Transform + pos: -36.5,17.5 + parent: 1 + - uid: 13072 + components: + - type: Transform + pos: -40.5,38.5 + parent: 1 + - uid: 13073 + components: + - type: Transform + pos: -39.5,37.5 + parent: 1 + - uid: 13074 + components: + - type: Transform + pos: 36.5,59.5 + parent: 1 + - uid: 13075 + components: + - type: Transform + pos: 34.5,60.5 + parent: 1 + - uid: 13076 + components: + - type: Transform + pos: 33.5,58.5 + parent: 1 + - uid: 13079 + components: + - type: Transform + pos: 37.5,56.5 + parent: 1 + - uid: 13080 + components: + - type: Transform + pos: 30.5,66.5 + parent: 1 + - uid: 13082 + components: + - type: Transform + pos: 40.5,51.5 + parent: 1 + - uid: 13083 + components: + - type: Transform + pos: 40.5,47.5 + parent: 1 + - uid: 13084 + components: + - type: Transform + pos: 41.5,49.5 + parent: 1 + - uid: 13086 + components: + - type: Transform + pos: -43.5,16.5 + parent: 1 + - uid: 13087 + components: + - type: Transform + pos: 41.5,51.5 + parent: 1 + - uid: 13092 + components: + - type: Transform + pos: -39.5,39.5 + parent: 1 + - uid: 13100 + components: + - type: Transform + pos: -38.5,47.5 + parent: 1 + - uid: 13101 + components: + - type: Transform + pos: -38.5,48.5 + parent: 1 + - uid: 13103 + components: + - type: Transform + pos: 30.5,36.5 + parent: 1 + - uid: 13104 + components: + - type: Transform + pos: -14.5,69.5 + parent: 1 + - uid: 13105 + components: + - type: Transform + pos: -40.5,36.5 + parent: 1 + - uid: 13106 + components: + - type: Transform + pos: -14.5,68.5 + parent: 1 + - uid: 13107 + components: + - type: Transform + pos: -37.5,44.5 + parent: 1 + - uid: 13108 + components: + - type: Transform + pos: -40.5,39.5 + parent: 1 + - uid: 13109 + components: + - type: Transform + pos: -41.5,39.5 + parent: 1 + - uid: 13110 + components: + - type: Transform + pos: -37.5,45.5 + parent: 1 + - uid: 13111 + components: + - type: Transform + pos: -42.5,39.5 + parent: 1 + - uid: 13113 + components: + - type: Transform + pos: 33.5,51.5 + parent: 1 + - uid: 13114 + components: + - type: Transform + pos: 32.5,51.5 + parent: 1 + - uid: 13115 + components: + - type: Transform + pos: 35.5,55.5 + parent: 1 + - uid: 13116 + components: + - type: Transform + pos: 35.5,54.5 + parent: 1 + - uid: 13117 + components: + - type: Transform + pos: 35.5,56.5 + parent: 1 + - uid: 13118 + components: + - type: Transform + pos: 35.5,57.5 + parent: 1 + - uid: 13119 + components: + - type: Transform + pos: 34.5,55.5 + parent: 1 + - uid: 13120 + components: + - type: Transform + pos: 36.5,58.5 + parent: 1 + - uid: 13121 + components: + - type: Transform + pos: -41.5,9.5 + parent: 1 + - uid: 13122 + components: + - type: Transform + pos: -36.5,45.5 + parent: 1 + - uid: 13128 + components: + - type: Transform + pos: -47.5,13.5 + parent: 1 + - uid: 13134 + components: + - type: Transform + pos: 31.5,37.5 + parent: 1 + - uid: 13135 + components: + - type: Transform + pos: -48.5,11.5 + parent: 1 + - uid: 13136 + components: + - type: Transform + pos: -49.5,8.5 + parent: 1 + - uid: 13138 + components: + - type: Transform + pos: -47.5,8.5 + parent: 1 + - uid: 13141 + components: + - type: Transform + pos: 40.5,45.5 + parent: 1 + - uid: 13143 + components: + - type: Transform + pos: -38.5,16.5 + parent: 1 + - uid: 13144 + components: + - type: Transform + pos: 37.5,49.5 + parent: 1 + - uid: 13145 + components: + - type: Transform + pos: 35.5,49.5 + parent: 1 + - uid: 13146 + components: + - type: Transform + pos: 36.5,49.5 + parent: 1 + - uid: 13147 + components: + - type: Transform + pos: 36.5,51.5 + parent: 1 + - uid: 13148 + components: + - type: Transform + pos: 36.5,50.5 + parent: 1 + - uid: 13149 + components: + - type: Transform + pos: 39.5,42.5 + parent: 1 + - uid: 13155 + components: + - type: Transform + pos: 15.5,75.5 + parent: 1 + - uid: 13156 + components: + - type: Transform + pos: 21.5,68.5 + parent: 1 + - uid: 13157 + components: + - type: Transform + pos: 16.5,77.5 + parent: 1 + - uid: 13159 + components: + - type: Transform + pos: 16.5,72.5 + parent: 1 + - uid: 13162 + components: + - type: Transform + pos: -13.5,68.5 + parent: 1 + - uid: 13163 + components: + - type: Transform + pos: 17.5,68.5 + parent: 1 + - uid: 13165 + components: + - type: Transform + pos: 16.5,75.5 + parent: 1 + - uid: 13167 + components: + - type: Transform + pos: 32.5,36.5 + parent: 1 + - uid: 13169 + components: + - type: Transform + pos: 31.5,38.5 + parent: 1 + - uid: 13171 + components: + - type: Transform + pos: -36.5,18.5 + parent: 1 + - uid: 13172 + components: + - type: Transform + pos: 36.5,53.5 + parent: 1 + - uid: 13173 + components: + - type: Transform + pos: 36.5,52.5 + parent: 1 + - uid: 13174 + components: + - type: Transform + pos: 37.5,51.5 + parent: 1 + - uid: 13175 + components: + - type: Transform + pos: 40.5,49.5 + parent: 1 + - uid: 13176 + components: + - type: Transform + pos: -39.5,16.5 + parent: 1 + - uid: 13177 + components: + - type: Transform + pos: 37.5,52.5 + parent: 1 + - uid: 13178 + components: + - type: Transform + pos: 38.5,51.5 + parent: 1 + - uid: 13179 + components: + - type: Transform + pos: 38.5,53.5 + parent: 1 + - uid: 13180 + components: + - type: Transform + pos: 37.5,50.5 + parent: 1 + - uid: 13181 + components: + - type: Transform + pos: -38.5,37.5 + parent: 1 + - uid: 13182 + components: + - type: Transform + pos: -39.5,36.5 + parent: 1 + - uid: 13185 + components: + - type: Transform + pos: 38.5,52.5 + parent: 1 + - uid: 13186 + components: + - type: Transform + pos: -47.5,5.5 + parent: 1 + - uid: 13187 + components: + - type: Transform + pos: 15.5,71.5 + parent: 1 + - uid: 13188 + components: + - type: Transform + pos: 30.5,68.5 + parent: 1 + - uid: 13189 + components: + - type: Transform + pos: -39.5,18.5 + parent: 1 + - uid: 13190 + components: + - type: Transform + pos: -36.5,44.5 + parent: 1 + - uid: 13192 + components: + - type: Transform + pos: 39.5,43.5 + parent: 1 + - uid: 13194 + components: + - type: Transform + pos: -38.5,49.5 + parent: 1 + - uid: 13196 + components: + - type: Transform + pos: -34.5,44.5 + parent: 1 + - uid: 13197 + components: + - type: Transform + pos: -48.5,12.5 + parent: 1 + - uid: 13198 + components: + - type: Transform + pos: -48.5,8.5 + parent: 1 + - uid: 13199 + components: + - type: Transform + pos: -48.5,13.5 + parent: 1 + - uid: 13200 + components: + - type: Transform + pos: -47.5,14.5 + parent: 1 + - uid: 13201 + components: + - type: Transform + pos: -46.5,14.5 + parent: 1 + - uid: 13203 + components: + - type: Transform + pos: 15.5,72.5 + parent: 1 + - uid: 13215 + components: + - type: Transform + pos: -42.5,5.5 + parent: 1 + - uid: 13216 + components: + - type: Transform + pos: -44.5,6.5 + parent: 1 + - uid: 13217 + components: + - type: Transform + pos: -46.5,9.5 + parent: 1 + - uid: 13221 + components: + - type: Transform + pos: 34.5,61.5 + parent: 1 + - uid: 13222 + components: + - type: Transform + pos: -47.5,9.5 + parent: 1 + - uid: 13223 + components: + - type: Transform + pos: -47.5,12.5 + parent: 1 + - uid: 13224 + components: + - type: Transform + pos: -49.5,9.5 + parent: 1 + - uid: 13225 + components: + - type: Transform + pos: -50.5,9.5 + parent: 1 + - uid: 13226 + components: + - type: Transform + pos: -49.5,10.5 + parent: 1 + - uid: 13227 + components: + - type: Transform + pos: 31.5,60.5 + parent: 1 + - uid: 13228 + components: + - type: Transform + pos: 31.5,63.5 + parent: 1 + - uid: 13229 + components: + - type: Transform + pos: 28.5,68.5 + parent: 1 + - uid: 13230 + components: + - type: Transform + pos: 16.5,71.5 + parent: 1 + - uid: 13236 + components: + - type: Transform + pos: -50.5,10.5 + parent: 1 + - uid: 13237 + components: + - type: Transform + pos: -47.5,7.5 + parent: 1 + - uid: 13238 + components: + - type: Transform + pos: 15.5,78.5 + parent: 1 + - uid: 13244 + components: + - type: Transform + pos: 40.5,48.5 + parent: 1 + - uid: 13245 + components: + - type: Transform + pos: 39.5,50.5 + parent: 1 + - uid: 13246 + components: + - type: Transform + pos: 37.5,53.5 + parent: 1 + - uid: 13247 + components: + - type: Transform + pos: 39.5,51.5 + parent: 1 + - uid: 13248 + components: + - type: Transform + pos: 20.5,68.5 + parent: 1 + - uid: 13311 + components: + - type: Transform + pos: -24.5,-15.5 + parent: 1 + - uid: 13312 + components: + - type: Transform + pos: -24.5,-18.5 + parent: 1 + - uid: 13313 + components: + - type: Transform + pos: -24.5,-19.5 + parent: 1 + - uid: 13314 + components: + - type: Transform + pos: -24.5,-14.5 + parent: 1 + - uid: 13315 + components: + - type: Transform + pos: -24.5,-16.5 + parent: 1 + - uid: 13323 + components: + - type: Transform + pos: -48.5,7.5 + parent: 1 + - uid: 13328 + components: + - type: Transform + pos: -52.5,-0.5 + parent: 1 + - uid: 13329 + components: + - type: Transform + pos: -47.5,4.5 + parent: 1 + - uid: 13341 + components: + - type: Transform + pos: -32.5,-22.5 + parent: 1 + - uid: 13342 + components: + - type: Transform + pos: -38.5,-18.5 + parent: 1 + - uid: 13343 + components: + - type: Transform + pos: -39.5,-17.5 + parent: 1 + - uid: 13344 + components: + - type: Transform + pos: -40.5,-16.5 + parent: 1 + - uid: 13345 + components: + - type: Transform + pos: -42.5,1.5 + parent: 1 + - uid: 13346 + components: + - type: Transform + pos: -41.5,4.5 + parent: 1 + - uid: 13347 + components: + - type: Transform + pos: -42.5,3.5 + parent: 1 + - uid: 13348 + components: + - type: Transform + pos: -32.5,-21.5 + parent: 1 + - uid: 13349 + components: + - type: Transform + pos: -39.5,-16.5 + parent: 1 + - uid: 13350 + components: + - type: Transform + pos: -41.5,0.5 + parent: 1 + - uid: 13351 + components: + - type: Transform + pos: -44.5,0.5 + parent: 1 + - uid: 13352 + components: + - type: Transform + pos: -31.5,-20.5 + parent: 1 + - uid: 13353 + components: + - type: Transform + pos: -38.5,-19.5 + parent: 1 + - uid: 13354 + components: + - type: Transform + pos: -38.5,-17.5 + parent: 1 + - uid: 13355 + components: + - type: Transform + pos: -42.5,4.5 + parent: 1 + - uid: 13356 + components: + - type: Transform + pos: -46.5,1.5 + parent: 1 + - uid: 13357 + components: + - type: Transform + pos: -31.5,-21.5 + parent: 1 + - uid: 13358 + components: + - type: Transform + pos: -37.5,-19.5 + parent: 1 + - uid: 13359 + components: + - type: Transform + pos: -44.5,1.5 + parent: 1 + - uid: 13360 + components: + - type: Transform + pos: -31.5,-22.5 + parent: 1 + - uid: 13361 + components: + - type: Transform + pos: -37.5,-20.5 + parent: 1 + - uid: 13362 + components: + - type: Transform + pos: -46.5,0.5 + parent: 1 + - uid: 13363 + components: + - type: Transform + pos: -36.5,-22.5 + parent: 1 + - uid: 13365 + components: + - type: Transform + pos: -36.5,-19.5 + parent: 1 + - uid: 13366 + components: + - type: Transform + pos: -42.5,-17.5 + parent: 1 + - uid: 13370 + components: + - type: Transform + pos: -49.5,7.5 + parent: 1 + - uid: 13372 + components: + - type: Transform + pos: -51.5,-0.5 + parent: 1 + - uid: 13374 + components: + - type: Transform + pos: -43.5,0.5 + parent: 1 + - uid: 13376 + components: + - type: Transform + pos: -49.5,-0.5 + parent: 1 + - uid: 13378 + components: + - type: Transform + pos: -47.5,1.5 + parent: 1 + - uid: 13380 + components: + - type: Transform + pos: -51.5,2.5 + parent: 1 + - uid: 13381 + components: + - type: Transform + pos: -48.5,4.5 + parent: 1 + - uid: 13384 + components: + - type: Transform + pos: -48.5,5.5 + parent: 1 + - uid: 13385 + components: + - type: Transform + pos: -48.5,6.5 + parent: 1 + - uid: 13388 + components: + - type: Transform + pos: -49.5,3.5 + parent: 1 + - uid: 13389 + components: + - type: Transform + pos: -50.5,1.5 + parent: 1 + - uid: 13390 + components: + - type: Transform + pos: -49.5,4.5 + parent: 1 + - uid: 13391 + components: + - type: Transform + pos: -50.5,2.5 + parent: 1 + - uid: 13392 + components: + - type: Transform + pos: -51.5,1.5 + parent: 1 + - uid: 13393 + components: + - type: Transform + pos: -50.5,-0.5 + parent: 1 + - uid: 13399 + components: + - type: Transform + pos: -41.5,-16.5 + parent: 1 + - uid: 13401 + components: + - type: Transform + pos: -36.5,-18.5 + parent: 1 + - uid: 13402 + components: + - type: Transform + pos: -32.5,-20.5 + parent: 1 + - uid: 13403 + components: + - type: Transform + pos: -36.5,-17.5 + parent: 1 + - uid: 13404 + components: + - type: Transform + pos: -36.5,-21.5 + parent: 1 + - uid: 13405 + components: + - type: Transform + pos: -36.5,-16.5 + parent: 1 + - uid: 13444 + components: + - type: Transform + pos: -30.5,-21.5 + parent: 1 + - uid: 13445 + components: + - type: Transform + pos: -37.5,-16.5 + parent: 1 + - uid: 13446 + components: + - type: Transform + pos: -29.5,-20.5 + parent: 1 + - uid: 13447 + components: + - type: Transform + pos: -37.5,-15.5 + parent: 1 + - uid: 13448 + components: + - type: Transform + pos: -42.5,-15.5 + parent: 1 + - uid: 13449 + components: + - type: Transform + pos: -28.5,-20.5 + parent: 1 + - uid: 13450 + components: + - type: Transform + pos: -38.5,-15.5 + parent: 1 + - uid: 13451 + components: + - type: Transform + pos: -35.5,-16.5 + parent: 1 + - uid: 13452 + components: + - type: Transform + pos: -35.5,-15.5 + parent: 1 + - uid: 13453 + components: + - type: Transform + pos: -35.5,-17.5 + parent: 1 + - uid: 13454 + components: + - type: Transform + pos: -35.5,-19.5 + parent: 1 + - uid: 13455 + components: + - type: Transform + pos: -33.5,-20.5 + parent: 1 + - uid: 13456 + components: + - type: Transform + pos: -40.5,-15.5 + parent: 1 + - uid: 13457 + components: + - type: Transform + pos: -39.5,-15.5 + parent: 1 + - uid: 13458 + components: + - type: Transform + pos: -41.5,-15.5 + parent: 1 + - uid: 13459 + components: + - type: Transform + pos: -27.5,-20.5 + parent: 1 + - uid: 13460 + components: + - type: Transform + pos: -33.5,-17.5 + parent: 1 + - uid: 13461 + components: + - type: Transform + pos: -35.5,-20.5 + parent: 1 + - uid: 13463 + components: + - type: Transform + pos: -33.5,-13.5 + parent: 1 + - uid: 13466 + components: + - type: Transform + pos: -30.5,-20.5 + parent: 1 + - uid: 13467 + components: + - type: Transform + pos: -35.5,-21.5 + parent: 1 + - uid: 13468 + components: + - type: Transform + pos: -33.5,-16.5 + parent: 1 + - uid: 13470 + components: + - type: Transform + pos: -35.5,-13.5 + parent: 1 + - uid: 13525 + components: + - type: Transform + pos: 5.5,74.5 + parent: 1 + - uid: 13526 + components: + - type: Transform + pos: 6.5,74.5 + parent: 1 + - uid: 13533 + components: + - type: Transform + pos: 5.5,75.5 + parent: 1 + - uid: 13534 + components: + - type: Transform + pos: 7.5,74.5 + parent: 1 + - uid: 13541 + components: + - type: Transform + pos: 12.5,75.5 + parent: 1 + - uid: 13542 + components: + - type: Transform + pos: 8.5,74.5 + parent: 1 + - uid: 13544 + components: + - type: Transform + pos: 16.5,74.5 + parent: 1 + - uid: 13545 + components: + - type: Transform + pos: 3.5,69.5 + parent: 1 + - uid: 13547 + components: + - type: Transform + pos: 0.5,69.5 + parent: 1 + - uid: 13548 + components: + - type: Transform + pos: 3.5,70.5 + parent: 1 + - uid: 13549 + components: + - type: Transform + pos: 4.5,71.5 + parent: 1 + - uid: 13550 + components: + - type: Transform + pos: -0.5,69.5 + parent: 1 + - uid: 13551 + components: + - type: Transform + pos: 3.5,74.5 + parent: 1 + - uid: 13552 + components: + - type: Transform + pos: 3.5,72.5 + parent: 1 + - uid: 13553 + components: + - type: Transform + pos: 15.5,74.5 + parent: 1 + - uid: 13554 + components: + - type: Transform + pos: 6.5,72.5 + parent: 1 + - uid: 13555 + components: + - type: Transform + pos: 7.5,72.5 + parent: 1 + - uid: 13556 + components: + - type: Transform + pos: 14.5,74.5 + parent: 1 + - uid: 13557 + components: + - type: Transform + pos: 5.5,71.5 + parent: 1 + - uid: 13558 + components: + - type: Transform + pos: 5.5,72.5 + parent: 1 + - uid: 13559 + components: + - type: Transform + pos: 6.5,71.5 + parent: 1 + - uid: 13560 + components: + - type: Transform + pos: 9.5,74.5 + parent: 1 + - uid: 13561 + components: + - type: Transform + pos: 18.5,74.5 + parent: 1 + - uid: 13562 + components: + - type: Transform + pos: 17.5,75.5 + parent: 1 + - uid: 13578 + components: + - type: Transform + pos: -9.5,69.5 + parent: 1 + - uid: 13579 + components: + - type: Transform + pos: -4.5,69.5 + parent: 1 + - uid: 13580 + components: + - type: Transform + pos: -8.5,69.5 + parent: 1 + - uid: 13581 + components: + - type: Transform + pos: -7.5,69.5 + parent: 1 + - uid: 13584 + components: + - type: Transform + pos: -2.5,69.5 + parent: 1 + - uid: 13586 + components: + - type: Transform + pos: -3.5,69.5 + parent: 1 + - uid: 13622 + components: + - type: Transform + pos: 36.5,-10.5 + parent: 1 + - uid: 13640 + components: + - type: Transform + pos: 6.5,-28.5 + parent: 1 + - uid: 13641 + components: + - type: Transform + pos: 6.5,-27.5 + parent: 1 + - uid: 13642 + components: + - type: Transform + pos: 6.5,-26.5 + parent: 1 + - uid: 13643 + components: + - type: Transform + pos: 7.5,-28.5 + parent: 1 + - uid: 13644 + components: + - type: Transform + pos: 7.5,-27.5 + parent: 1 + - uid: 13645 + components: + - type: Transform + pos: 7.5,-26.5 + parent: 1 + - uid: 13646 + components: + - type: Transform + pos: 8.5,-28.5 + parent: 1 + - uid: 13648 + components: + - type: Transform + pos: 9.5,-28.5 + parent: 1 + - uid: 13653 + components: + - type: Transform + pos: 11.5,-31.5 + parent: 1 + - uid: 13654 + components: + - type: Transform + pos: 11.5,-30.5 + parent: 1 + - uid: 13655 + components: + - type: Transform + pos: 12.5,-30.5 + parent: 1 + - uid: 13656 + components: + - type: Transform + pos: 14.5,-30.5 + parent: 1 + - uid: 13657 + components: + - type: Transform + pos: 13.5,-30.5 + parent: 1 + - uid: 13658 + components: + - type: Transform + pos: 7.5,-25.5 + parent: 1 + - uid: 13659 + components: + - type: Transform + pos: 8.5,-25.5 + parent: 1 + - uid: 13660 + components: + - type: Transform + pos: 8.5,-26.5 + parent: 1 + - uid: 13661 + components: + - type: Transform + pos: 9.5,-24.5 + parent: 1 + - uid: 13662 + components: + - type: Transform + pos: 9.5,-23.5 + parent: 1 + - uid: 13663 + components: + - type: Transform + pos: 9.5,-22.5 + parent: 1 + - uid: 13664 + components: + - type: Transform + pos: 9.5,-21.5 + parent: 1 + - uid: 13665 + components: + - type: Transform + pos: 8.5,-24.5 + parent: 1 + - uid: 13666 + components: + - type: Transform + pos: 8.5,-23.5 + parent: 1 + - uid: 13667 + components: + - type: Transform + pos: 8.5,-22.5 + parent: 1 + - uid: 13668 + components: + - type: Transform + pos: 8.5,-21.5 + parent: 1 + - uid: 13669 + components: + - type: Transform + pos: 7.5,-22.5 + parent: 1 + - uid: 13670 + components: + - type: Transform + pos: 7.5,-21.5 + parent: 1 + - uid: 13671 + components: + - type: Transform + pos: 7.5,-20.5 + parent: 1 + - uid: 13672 + components: + - type: Transform + pos: 6.5,-22.5 + parent: 1 + - uid: 13673 + components: + - type: Transform + pos: 6.5,-21.5 + parent: 1 + - uid: 13674 + components: + - type: Transform + pos: 6.5,-20.5 + parent: 1 + - uid: 13675 + components: + - type: Transform + pos: 7.5,-19.5 + parent: 1 + - uid: 13676 + components: + - type: Transform + pos: 7.5,-17.5 + parent: 1 + - uid: 13677 + components: + - type: Transform + pos: 8.5,-18.5 + parent: 1 + - uid: 13678 + components: + - type: Transform + pos: 7.5,-16.5 + parent: 1 + - uid: 13679 + components: + - type: Transform + pos: 8.5,-16.5 + parent: 1 + - uid: 13680 + components: + - type: Transform + pos: 9.5,-16.5 + parent: 1 + - uid: 13681 + components: + - type: Transform + pos: 9.5,-13.5 + parent: 1 + - uid: 13682 + components: + - type: Transform + pos: 9.5,-12.5 + parent: 1 + - uid: 13683 + components: + - type: Transform + pos: 9.5,-11.5 + parent: 1 + - uid: 13684 + components: + - type: Transform + pos: 9.5,-10.5 + parent: 1 + - uid: 13685 + components: + - type: Transform + pos: 8.5,-13.5 + parent: 1 + - uid: 13686 + components: + - type: Transform + pos: 8.5,-12.5 + parent: 1 + - uid: 13689 + components: + - type: Transform + pos: 7.5,-13.5 + parent: 1 + - uid: 13690 + components: + - type: Transform + pos: 7.5,-12.5 + parent: 1 + - uid: 13691 + components: + - type: Transform + pos: 7.5,-11.5 + parent: 1 + - uid: 13692 + components: + - type: Transform + pos: 7.5,-10.5 + parent: 1 + - uid: 13693 + components: + - type: Transform + pos: 8.5,-14.5 + parent: 1 + - uid: 13694 + components: + - type: Transform + pos: 11.5,-12.5 + parent: 1 + - uid: 13695 + components: + - type: Transform + pos: 11.5,-13.5 + parent: 1 + - uid: 13696 + components: + - type: Transform + pos: 12.5,-12.5 + parent: 1 + - uid: 13697 + components: + - type: Transform + pos: 12.5,-13.5 + parent: 1 + - uid: 13698 + components: + - type: Transform + pos: 12.5,-14.5 + parent: 1 + - uid: 13699 + components: + - type: Transform + pos: 13.5,-13.5 + parent: 1 + - uid: 13700 + components: + - type: Transform + pos: 15.5,-12.5 + parent: 1 + - uid: 13701 + components: + - type: Transform + pos: 15.5,-13.5 + parent: 1 + - uid: 13703 + components: + - type: Transform + pos: 16.5,-13.5 + parent: 1 + - uid: 13704 + components: + - type: Transform + pos: 16.5,-14.5 + parent: 1 + - uid: 13705 + components: + - type: Transform + pos: 12.5,-16.5 + parent: 1 + - uid: 13706 + components: + - type: Transform + pos: 12.5,-17.5 + parent: 1 + - uid: 13707 + components: + - type: Transform + pos: 12.5,-18.5 + parent: 1 + - uid: 13708 + components: + - type: Transform + pos: 12.5,-19.5 + parent: 1 + - uid: 13709 + components: + - type: Transform + pos: 13.5,-16.5 + parent: 1 + - uid: 13710 + components: + - type: Transform + pos: 13.5,-17.5 + parent: 1 + - uid: 13711 + components: + - type: Transform + pos: 13.5,-18.5 + parent: 1 + - uid: 13712 + components: + - type: Transform + pos: 13.5,-19.5 + parent: 1 + - uid: 13713 + components: + - type: Transform + pos: 14.5,-16.5 + parent: 1 + - uid: 13714 + components: + - type: Transform + pos: 14.5,-17.5 + parent: 1 + - uid: 13715 + components: + - type: Transform + pos: 14.5,-18.5 + parent: 1 + - uid: 13716 + components: + - type: Transform + pos: 14.5,-19.5 + parent: 1 + - uid: 13717 + components: + - type: Transform + pos: 15.5,-16.5 + parent: 1 + - uid: 13718 + components: + - type: Transform + pos: 15.5,-17.5 + parent: 1 + - uid: 13719 + components: + - type: Transform + pos: 15.5,-18.5 + parent: 1 + - uid: 13720 + components: + - type: Transform + pos: 15.5,-19.5 + parent: 1 + - uid: 13721 + components: + - type: Transform + pos: 16.5,-16.5 + parent: 1 + - uid: 13722 + components: + - type: Transform + pos: 16.5,-17.5 + parent: 1 + - uid: 13723 + components: + - type: Transform + pos: 16.5,-18.5 + parent: 1 + - uid: 13724 + components: + - type: Transform + pos: 16.5,-19.5 + parent: 1 + - uid: 13725 + components: + - type: Transform + pos: 13.5,-20.5 + parent: 1 + - uid: 13726 + components: + - type: Transform + pos: 13.5,-21.5 + parent: 1 + - uid: 13727 + components: + - type: Transform + pos: 13.5,-22.5 + parent: 1 + - uid: 13728 + components: + - type: Transform + pos: 13.5,-23.5 + parent: 1 + - uid: 13729 + components: + - type: Transform + pos: 14.5,-20.5 + parent: 1 + - uid: 13730 + components: + - type: Transform + pos: 14.5,-21.5 + parent: 1 + - uid: 13731 + components: + - type: Transform + pos: 14.5,-22.5 + parent: 1 + - uid: 13732 + components: + - type: Transform + pos: 14.5,-23.5 + parent: 1 + - uid: 13733 + components: + - type: Transform + pos: 15.5,-20.5 + parent: 1 + - uid: 13734 + components: + - type: Transform + pos: 15.5,-21.5 + parent: 1 + - uid: 13735 + components: + - type: Transform + pos: 15.5,-22.5 + parent: 1 + - uid: 13736 + components: + - type: Transform + pos: 15.5,-23.5 + parent: 1 + - uid: 13737 + components: + - type: Transform + pos: 16.5,-20.5 + parent: 1 + - uid: 13738 + components: + - type: Transform + pos: 16.5,-21.5 + parent: 1 + - uid: 13739 + components: + - type: Transform + pos: 16.5,-22.5 + parent: 1 + - uid: 13740 + components: + - type: Transform + pos: 16.5,-23.5 + parent: 1 + - uid: 13741 + components: + - type: Transform + pos: 17.5,-20.5 + parent: 1 + - uid: 13742 + components: + - type: Transform + pos: 17.5,-21.5 + parent: 1 + - uid: 13743 + components: + - type: Transform + pos: 17.5,-22.5 + parent: 1 + - uid: 13744 + components: + - type: Transform + pos: 17.5,-23.5 + parent: 1 + - uid: 13745 + components: + - type: Transform + pos: 13.5,-24.5 + parent: 1 + - uid: 13746 + components: + - type: Transform + pos: 13.5,-25.5 + parent: 1 + - uid: 13747 + components: + - type: Transform + pos: 13.5,-26.5 + parent: 1 + - uid: 13748 + components: + - type: Transform + pos: 13.5,-27.5 + parent: 1 + - uid: 13749 + components: + - type: Transform + pos: 14.5,-24.5 + parent: 1 + - uid: 13750 + components: + - type: Transform + pos: 14.5,-25.5 + parent: 1 + - uid: 13751 + components: + - type: Transform + pos: 14.5,-26.5 + parent: 1 + - uid: 13752 + components: + - type: Transform + pos: 14.5,-27.5 + parent: 1 + - uid: 13753 + components: + - type: Transform + pos: 15.5,-24.5 + parent: 1 + - uid: 13754 + components: + - type: Transform + pos: 15.5,-25.5 + parent: 1 + - uid: 13755 + components: + - type: Transform + pos: 15.5,-26.5 + parent: 1 + - uid: 13756 + components: + - type: Transform + pos: 15.5,-27.5 + parent: 1 + - uid: 13757 + components: + - type: Transform + pos: 16.5,-24.5 + parent: 1 + - uid: 13758 + components: + - type: Transform + pos: 16.5,-25.5 + parent: 1 + - uid: 13759 + components: + - type: Transform + pos: 16.5,-26.5 + parent: 1 + - uid: 13760 + components: + - type: Transform + pos: 16.5,-27.5 + parent: 1 + - uid: 13761 + components: + - type: Transform + pos: 13.5,-28.5 + parent: 1 + - uid: 13762 + components: + - type: Transform + pos: 14.5,-28.5 + parent: 1 + - uid: 13763 + components: + - type: Transform + pos: 15.5,-28.5 + parent: 1 + - uid: 13764 + components: + - type: Transform + pos: 13.5,-29.5 + parent: 1 + - uid: 13765 + components: + - type: Transform + pos: 15.5,-30.5 + parent: 1 + - uid: 13766 + components: + - type: Transform + pos: 15.5,-29.5 + parent: 1 + - uid: 13767 + components: + - type: Transform + pos: 16.5,-30.5 + parent: 1 + - uid: 13768 + components: + - type: Transform + pos: 16.5,-29.5 + parent: 1 + - uid: 13769 + components: + - type: Transform + pos: 16.5,-28.5 + parent: 1 + - uid: 13770 + components: + - type: Transform + pos: 17.5,-30.5 + parent: 1 + - uid: 13771 + components: + - type: Transform + pos: 17.5,-29.5 + parent: 1 + - uid: 13772 + components: + - type: Transform + pos: 17.5,-28.5 + parent: 1 + - uid: 13773 + components: + - type: Transform + pos: 18.5,-30.5 + parent: 1 + - uid: 13774 + components: + - type: Transform + pos: 18.5,-29.5 + parent: 1 + - uid: 13775 + components: + - type: Transform + pos: 18.5,-28.5 + parent: 1 + - uid: 13776 + components: + - type: Transform + pos: 19.5,-30.5 + parent: 1 + - uid: 13777 + components: + - type: Transform + pos: 19.5,-29.5 + parent: 1 + - uid: 13778 + components: + - type: Transform + pos: 19.5,-28.5 + parent: 1 + - uid: 13779 + components: + - type: Transform + pos: 20.5,-28.5 + parent: 1 + - uid: 13780 + components: + - type: Transform + pos: 20.5,-27.5 + parent: 1 + - uid: 13781 + components: + - type: Transform + pos: 20.5,-26.5 + parent: 1 + - uid: 13782 + components: + - type: Transform + pos: 21.5,-28.5 + parent: 1 + - uid: 13783 + components: + - type: Transform + pos: 21.5,-27.5 + parent: 1 + - uid: 13784 + components: + - type: Transform + pos: 21.5,-26.5 + parent: 1 + - uid: 13785 + components: + - type: Transform + pos: 22.5,-28.5 + parent: 1 + - uid: 13786 + components: + - type: Transform + pos: 22.5,-27.5 + parent: 1 + - uid: 13787 + components: + - type: Transform + pos: 22.5,-26.5 + parent: 1 + - uid: 13788 + components: + - type: Transform + pos: 23.5,-28.5 + parent: 1 + - uid: 13789 + components: + - type: Transform + pos: 23.5,-27.5 + parent: 1 + - uid: 13790 + components: + - type: Transform + pos: 23.5,-26.5 + parent: 1 + - uid: 13791 + components: + - type: Transform + pos: 24.5,-28.5 + parent: 1 + - uid: 13792 + components: + - type: Transform + pos: 24.5,-27.5 + parent: 1 + - uid: 13793 + components: + - type: Transform + pos: 24.5,-26.5 + parent: 1 + - uid: 13794 + components: + - type: Transform + pos: 22.5,-29.5 + parent: 1 + - uid: 13795 + components: + - type: Transform + pos: 24.5,-29.5 + parent: 1 + - uid: 13796 + components: + - type: Transform + pos: 25.5,-28.5 + parent: 1 + - uid: 13797 + components: + - type: Transform + pos: 25.5,-27.5 + parent: 1 + - uid: 13798 + components: + - type: Transform + pos: 25.5,-26.5 + parent: 1 + - uid: 13799 + components: + - type: Transform + pos: 25.5,-25.5 + parent: 1 + - uid: 13800 + components: + - type: Transform + pos: 26.5,-28.5 + parent: 1 + - uid: 13801 + components: + - type: Transform + pos: 26.5,-27.5 + parent: 1 + - uid: 13802 + components: + - type: Transform + pos: 26.5,-26.5 + parent: 1 + - uid: 13803 + components: + - type: Transform + pos: 26.5,-25.5 + parent: 1 + - uid: 13804 + components: + - type: Transform + pos: 27.5,-28.5 + parent: 1 + - uid: 13805 + components: + - type: Transform + pos: 27.5,-27.5 + parent: 1 + - uid: 13806 + components: + - type: Transform + pos: 27.5,-26.5 + parent: 1 + - uid: 13807 + components: + - type: Transform + pos: 27.5,-25.5 + parent: 1 + - uid: 13808 + components: + - type: Transform + pos: 28.5,-26.5 + parent: 1 + - uid: 13809 + components: + - type: Transform + pos: 28.5,-25.5 + parent: 1 + - uid: 13810 + components: + - type: Transform + pos: 28.5,-24.5 + parent: 1 + - uid: 13811 + components: + - type: Transform + pos: 28.5,-23.5 + parent: 1 + - uid: 13812 + components: + - type: Transform + pos: 28.5,-22.5 + parent: 1 + - uid: 13813 + components: + - type: Transform + pos: 29.5,-26.5 + parent: 1 + - uid: 13814 + components: + - type: Transform + pos: 29.5,-25.5 + parent: 1 + - uid: 13815 + components: + - type: Transform + pos: 29.5,-24.5 + parent: 1 + - uid: 13816 + components: + - type: Transform + pos: 29.5,-23.5 + parent: 1 + - uid: 13817 + components: + - type: Transform + pos: 29.5,-22.5 + parent: 1 + - uid: 13818 + components: + - type: Transform + pos: 30.5,-26.5 + parent: 1 + - uid: 13819 + components: + - type: Transform + pos: 30.5,-25.5 + parent: 1 + - uid: 13820 + components: + - type: Transform + pos: 30.5,-24.5 + parent: 1 + - uid: 13821 + components: + - type: Transform + pos: 30.5,-23.5 + parent: 1 + - uid: 13822 + components: + - type: Transform + pos: 30.5,-22.5 + parent: 1 + - uid: 13823 + components: + - type: Transform + pos: 29.5,-27.5 + parent: 1 + - uid: 13824 + components: + - type: Transform + pos: 29.5,-28.5 + parent: 1 + - uid: 13825 + components: + - type: Transform + pos: 31.5,-25.5 + parent: 1 + - uid: 13826 + components: + - type: Transform + pos: 31.5,-24.5 + parent: 1 + - uid: 13827 + components: + - type: Transform + pos: 31.5,-23.5 + parent: 1 + - uid: 13828 + components: + - type: Transform + pos: 31.5,-22.5 + parent: 1 + - uid: 13829 + components: + - type: Transform + pos: 32.5,-25.5 + parent: 1 + - uid: 13830 + components: + - type: Transform + pos: 32.5,-24.5 + parent: 1 + - uid: 13831 + components: + - type: Transform + pos: 32.5,-23.5 + parent: 1 + - uid: 13832 + components: + - type: Transform + pos: 32.5,-22.5 + parent: 1 + - uid: 13833 + components: + - type: Transform + pos: 33.5,-22.5 + parent: 1 + - uid: 13834 + components: + - type: Transform + pos: 33.5,-21.5 + parent: 1 + - uid: 13835 + components: + - type: Transform + pos: 33.5,-20.5 + parent: 1 + - uid: 13836 + components: + - type: Transform + pos: 33.5,-19.5 + parent: 1 + - uid: 13837 + components: + - type: Transform + pos: 33.5,-18.5 + parent: 1 + - uid: 13838 + components: + - type: Transform + pos: 32.5,-21.5 + parent: 1 + - uid: 13839 + components: + - type: Transform + pos: 32.5,-20.5 + parent: 1 + - uid: 13840 + components: + - type: Transform + pos: 32.5,-19.5 + parent: 1 + - uid: 13841 + components: + - type: Transform + pos: 32.5,-18.5 + parent: 1 + - uid: 13842 + components: + - type: Transform + pos: 34.5,-20.5 + parent: 1 + - uid: 13843 + components: + - type: Transform + pos: 34.5,-18.5 + parent: 1 + - uid: 13844 + components: + - type: Transform + pos: 35.5,-18.5 + parent: 1 + - uid: 13845 + components: + - type: Transform + pos: 35.5,-17.5 + parent: 1 + - uid: 13846 + components: + - type: Transform + pos: 35.5,-16.5 + parent: 1 + - uid: 13847 + components: + - type: Transform + pos: 35.5,-15.5 + parent: 1 + - uid: 13848 + components: + - type: Transform + pos: 35.5,-14.5 + parent: 1 + - uid: 13849 + components: + - type: Transform + pos: 36.5,-17.5 + parent: 1 + - uid: 13850 + components: + - type: Transform + pos: 36.5,-16.5 + parent: 1 + - uid: 13851 + components: + - type: Transform + pos: 36.5,-15.5 + parent: 1 + - uid: 13852 + components: + - type: Transform + pos: 36.5,-14.5 + parent: 1 + - uid: 13853 + components: + - type: Transform + pos: 36.5,-13.5 + parent: 1 + - uid: 13854 + components: + - type: Transform + pos: 36.5,-12.5 + parent: 1 + - uid: 13855 + components: + - type: Transform + pos: 36.5,-11.5 + parent: 1 + - uid: 13856 + components: + - type: Transform + pos: 37.5,-12.5 + parent: 1 + - uid: 13857 + components: + - type: Transform + pos: 37.5,-10.5 + parent: 1 + - uid: 13858 + components: + - type: Transform + pos: 38.5,-10.5 + parent: 1 + - uid: 13859 + components: + - type: Transform + pos: 38.5,-8.5 + parent: 1 + - uid: 13860 + components: + - type: Transform + pos: 37.5,-9.5 + parent: 1 + - uid: 13861 + components: + - type: Transform + pos: 37.5,-8.5 + parent: 1 + - uid: 13862 + components: + - type: Transform + pos: 37.5,-7.5 + parent: 1 + - uid: 13863 + components: + - type: Transform + pos: 37.5,-6.5 + parent: 1 + - uid: 13864 + components: + - type: Transform + pos: 38.5,-6.5 + parent: 1 + - uid: 13865 + components: + - type: Transform + pos: 38.5,-9.5 + parent: 1 + - uid: 13866 + components: + - type: Transform + pos: 39.5,-6.5 + parent: 1 + - uid: 13867 + components: + - type: Transform + pos: 39.5,-5.5 + parent: 1 + - uid: 13868 + components: + - type: Transform + pos: 39.5,-4.5 + parent: 1 + - uid: 13869 + components: + - type: Transform + pos: 38.5,-3.5 + parent: 1 + - uid: 13870 + components: + - type: Transform + pos: 38.5,-4.5 + parent: 1 + - uid: 13871 + components: + - type: Transform + pos: 38.5,-2.5 + parent: 1 + - uid: 13872 + components: + - type: Transform + pos: 38.5,-1.5 + parent: 1 + - uid: 13873 + components: + - type: Transform + pos: 39.5,-1.5 + parent: 1 + - uid: 13874 + components: + - type: Transform + pos: 40.5,-1.5 + parent: 1 + - uid: 13875 + components: + - type: Transform + pos: 40.5,-0.5 + parent: 1 + - uid: 13876 + components: + - type: Transform + pos: 41.5,-0.5 + parent: 1 + - uid: 13877 + components: + - type: Transform + pos: 42.5,-0.5 + parent: 1 + - uid: 13878 + components: + - type: Transform + pos: 37.5,-1.5 + parent: 1 + - uid: 13879 + components: + - type: Transform + pos: 42.5,0.5 + parent: 1 + - uid: 13880 + components: + - type: Transform + pos: 43.5,0.5 + parent: 1 + - uid: 13881 + components: + - type: Transform + pos: 44.5,0.5 + parent: 1 + - uid: 13882 + components: + - type: Transform + pos: 45.5,0.5 + parent: 1 + - uid: 13883 + components: + - type: Transform + pos: 46.5,0.5 + parent: 1 + - uid: 13884 + components: + - type: Transform + pos: 47.5,0.5 + parent: 1 + - uid: 13885 + components: + - type: Transform + pos: 48.5,0.5 + parent: 1 + - uid: 13886 + components: + - type: Transform + pos: 49.5,0.5 + parent: 1 + - uid: 13887 + components: + - type: Transform + pos: 27.5,-22.5 + parent: 1 + - uid: 13888 + components: + - type: Transform + pos: 27.5,-21.5 + parent: 1 + - uid: 13889 + components: + - type: Transform + pos: 26.5,-21.5 + parent: 1 + - uid: 13890 + components: + - type: Transform + pos: 26.5,-20.5 + parent: 1 + - uid: 13891 + components: + - type: Transform + pos: 25.5,-20.5 + parent: 1 + - uid: 13892 + components: + - type: Transform + pos: 23.5,-20.5 + parent: 1 + - uid: 13893 + components: + - type: Transform + pos: 24.5,-19.5 + parent: 1 + - uid: 13894 + components: + - type: Transform + pos: 25.5,-19.5 + parent: 1 + - uid: 13895 + components: + - type: Transform + pos: 23.5,-21.5 + parent: 1 + - uid: 13896 + components: + - type: Transform + pos: 22.5,-20.5 + parent: 1 + - uid: 13897 + components: + - type: Transform + pos: 23.5,-18.5 + parent: 1 + - uid: 13898 + components: + - type: Transform + pos: 24.5,-18.5 + parent: 1 + - uid: 13899 + components: + - type: Transform + pos: 25.5,-18.5 + parent: 1 + - uid: 13900 + components: + - type: Transform + pos: 26.5,-22.5 + parent: 1 + - uid: 13901 + components: + - type: Transform + pos: 25.5,-23.5 + parent: 1 + - uid: 13902 + components: + - type: Transform + pos: 25.5,-22.5 + parent: 1 + - uid: 13903 + components: + - type: Transform + pos: 27.5,-20.5 + parent: 1 + - uid: 13904 + components: + - type: Transform + pos: 27.5,-19.5 + parent: 1 + - uid: 13905 + components: + - type: Transform + pos: 27.5,-18.5 + parent: 1 + - uid: 13906 + components: + - type: Transform + pos: 24.5,-17.5 + parent: 1 + - uid: 13907 + components: + - type: Transform + pos: 25.5,-16.5 + parent: 1 + - uid: 13908 + components: + - type: Transform + pos: 27.5,-16.5 + parent: 1 + - uid: 13909 + components: + - type: Transform + pos: 27.5,-15.5 + parent: 1 + - uid: 13910 + components: + - type: Transform + pos: 27.5,-14.5 + parent: 1 + - uid: 13911 + components: + - type: Transform + pos: 28.5,-16.5 + parent: 1 + - uid: 13912 + components: + - type: Transform + pos: 28.5,-18.5 + parent: 1 + - uid: 13913 + components: + - type: Transform + pos: 29.5,-17.5 + parent: 1 + - uid: 13914 + components: + - type: Transform + pos: 30.5,-16.5 + parent: 1 + - uid: 13915 + components: + - type: Transform + pos: 31.5,-20.5 + parent: 1 + - uid: 13916 + components: + - type: Transform + pos: 31.5,-21.5 + parent: 1 + - uid: 13917 + components: + - type: Transform + pos: 30.5,-21.5 + parent: 1 + - uid: 13918 + components: + - type: Transform + pos: 29.5,-20.5 + parent: 1 + - uid: 13919 + components: + - type: Transform + pos: 28.5,-20.5 + parent: 1 + - uid: 13920 + components: + - type: Transform + pos: 33.5,-17.5 + parent: 1 + - uid: 13921 + components: + - type: Transform + pos: 33.5,-16.5 + parent: 1 + - uid: 13922 + components: + - type: Transform + pos: 34.5,-17.5 + parent: 1 + - uid: 13923 + components: + - type: Transform + pos: 34.5,-16.5 + parent: 1 + - uid: 13924 + components: + - type: Transform + pos: 34.5,-15.5 + parent: 1 + - uid: 13925 + components: + - type: Transform + pos: 28.5,-9.5 + parent: 1 + - uid: 13926 + components: + - type: Transform + pos: 28.5,-10.5 + parent: 1 + - uid: 13927 + components: + - type: Transform + pos: 28.5,-11.5 + parent: 1 + - uid: 13928 + components: + - type: Transform + pos: 29.5,-9.5 + parent: 1 + - uid: 13929 + components: + - type: Transform + pos: 29.5,-10.5 + parent: 1 + - uid: 13930 + components: + - type: Transform + pos: 29.5,-11.5 + parent: 1 + - uid: 13932 + components: + - type: Transform + pos: 31.5,-10.5 + parent: 1 + - uid: 13933 + components: + - type: Transform + pos: 30.5,-11.5 + parent: 1 + - uid: 13934 + components: + - type: Transform + pos: 34.5,-10.5 + parent: 1 + - uid: 13936 + components: + - type: Transform + pos: 28.5,-6.5 + parent: 1 + - uid: 13937 + components: + - type: Transform + pos: 28.5,-5.5 + parent: 1 + - uid: 13938 + components: + - type: Transform + pos: 29.5,-6.5 + parent: 1 + - uid: 13939 + components: + - type: Transform + pos: 29.5,-5.5 + parent: 1 + - uid: 13940 + components: + - type: Transform + pos: 27.5,-3.5 + parent: 1 + - uid: 13941 + components: + - type: Transform + pos: 28.5,-3.5 + parent: 1 + - uid: 13942 + components: + - type: Transform + pos: 26.5,-5.5 + parent: 1 + - uid: 13943 + components: + - type: Transform + pos: 27.5,-5.5 + parent: 1 + - uid: 13944 + components: + - type: Transform + pos: 25.5,-3.5 + parent: 1 + - uid: 13945 + components: + - type: Transform + pos: 30.5,-6.5 + parent: 1 + - uid: 13946 + components: + - type: Transform + pos: 30.5,-7.5 + parent: 1 + - uid: 13947 + components: + - type: Transform + pos: 23.5,-6.5 + parent: 1 + - uid: 13948 + components: + - type: Transform + pos: 24.5,-6.5 + parent: 1 + - uid: 13949 + components: + - type: Transform + pos: 23.5,-12.5 + parent: 1 + - uid: 13950 + components: + - type: Transform + pos: 23.5,-11.5 + parent: 1 + - uid: 13951 + components: + - type: Transform + pos: 22.5,-12.5 + parent: 1 + - uid: 13952 + components: + - type: Transform + pos: 23.5,-13.5 + parent: 1 + - uid: 13953 + components: + - type: Transform + pos: 24.5,-12.5 + parent: 1 + - uid: 13954 + components: + - type: Transform + pos: 25.5,-12.5 + parent: 1 + - uid: 13955 + components: + - type: Transform + pos: 19.5,-17.5 + parent: 1 + - uid: 13956 + components: + - type: Transform + pos: 19.5,-18.5 + parent: 1 + - uid: 13957 + components: + - type: Transform + pos: 20.5,-17.5 + parent: 1 + - uid: 13958 + components: + - type: Transform + pos: 20.5,-18.5 + parent: 1 + - uid: 13959 + components: + - type: Transform + pos: 21.5,-17.5 + parent: 1 + - uid: 13960 + components: + - type: Transform + pos: 21.5,-18.5 + parent: 1 + - uid: 13961 + components: + - type: Transform + pos: 17.5,-19.5 + parent: 1 + - uid: 13962 + components: + - type: Transform + pos: 12.5,-20.5 + parent: 1 + - uid: 13963 + components: + - type: Transform + pos: 12.5,-22.5 + parent: 1 + - uid: 13964 + components: + - type: Transform + pos: 11.5,-19.5 + parent: 1 + - uid: 13965 + components: + - type: Transform + pos: 11.5,-18.5 + parent: 1 + - uid: 13966 + components: + - type: Transform + pos: 17.5,-24.5 + parent: 1 + - uid: 13967 + components: + - type: Transform + pos: 18.5,-23.5 + parent: 1 + - uid: 13968 + components: + - type: Transform + pos: 18.5,-22.5 + parent: 1 + - uid: 13969 + components: + - type: Transform + pos: 17.5,-27.5 + parent: 1 + - uid: 13970 + components: + - type: Transform + pos: 22.5,-14.5 + parent: 1 + - uid: 13971 + components: + - type: Transform + pos: 24.5,-9.5 + parent: 1 + - uid: 13972 + components: + - type: Transform + pos: 24.5,-10.5 + parent: 1 + - uid: 13973 + components: + - type: Transform + pos: 25.5,-10.5 + parent: 1 + - uid: 13974 + components: + - type: Transform + pos: 36.5,-8.5 + parent: 1 + - uid: 13975 + components: + - type: Transform + pos: 36.5,-7.5 + parent: 1 + - uid: 13976 + components: + - type: Transform + pos: 36.5,-6.5 + parent: 1 + - uid: 13977 + components: + - type: Transform + pos: 36.5,-9.5 + parent: 1 + - uid: 13978 + components: + - type: Transform + pos: 35.5,-7.5 + parent: 1 + - uid: 13979 + components: + - type: Transform + pos: 35.5,-5.5 + parent: 1 + - uid: 13980 + components: + - type: Transform + pos: 31.5,-0.5 + parent: 1 + - uid: 13981 + components: + - type: Transform + pos: 29.5,1.5 + parent: 1 + - uid: 13982 + components: + - type: Transform + pos: 32.5,2.5 + parent: 1 + - uid: 13983 + components: + - type: Transform + pos: 35.5,6.5 + parent: 1 + - uid: 13984 + components: + - type: Transform + pos: 35.5,5.5 + parent: 1 + - uid: 13985 + components: + - type: Transform + pos: 36.5,6.5 + parent: 1 + - uid: 13986 + components: + - type: Transform + pos: 36.5,5.5 + parent: 1 + - uid: 13987 + components: + - type: Transform + pos: 37.5,5.5 + parent: 1 + - uid: 13988 + components: + - type: Transform + pos: 38.5,4.5 + parent: 1 + - uid: 13989 + components: + - type: Transform + pos: 37.5,4.5 + parent: 1 + - uid: 13990 + components: + - type: Transform + pos: 37.5,-0.5 + parent: 1 + - uid: 13991 + components: + - type: Transform + pos: 36.5,-1.5 + parent: 1 + - uid: 13992 + components: + - type: Transform + pos: 36.5,-0.5 + parent: 1 + - uid: 13993 + components: + - type: Transform + pos: 37.5,-3.5 + parent: 1 + - uid: 13994 + components: + - type: Transform + pos: 36.5,-3.5 + parent: 1 + - uid: 13995 + components: + - type: Transform + pos: 37.5,-5.5 + parent: 1 + - uid: 13996 + components: + - type: Transform + pos: 39.5,27.5 + parent: 1 + - uid: 13997 + components: + - type: Transform + pos: 39.5,-0.5 + parent: 1 + - uid: 13998 + components: + - type: Transform + pos: 39.5,0.5 + parent: 1 + - uid: 13999 + components: + - type: Transform + pos: 38.5,0.5 + parent: 1 + - uid: 14000 + components: + - type: Transform + pos: 43.5,3.5 + parent: 1 + - uid: 14001 + components: + - type: Transform + pos: 43.5,4.5 + parent: 1 + - uid: 14002 + components: + - type: Transform + pos: 44.5,3.5 + parent: 1 + - uid: 14003 + components: + - type: Transform + pos: 44.5,4.5 + parent: 1 + - uid: 14004 + components: + - type: Transform + pos: 45.5,3.5 + parent: 1 + - uid: 14005 + components: + - type: Transform + pos: 45.5,4.5 + parent: 1 + - uid: 14006 + components: + - type: Transform + pos: 47.5,5.5 + parent: 1 + - uid: 14007 + components: + - type: Transform + pos: 47.5,3.5 + parent: 1 + - uid: 14008 + components: + - type: Transform + pos: 48.5,5.5 + parent: 1 + - uid: 14009 + components: + - type: Transform + pos: 48.5,3.5 + parent: 1 + - uid: 14010 + components: + - type: Transform + pos: 47.5,2.5 + parent: 1 + - uid: 14011 + components: + - type: Transform + pos: 44.5,2.5 + parent: 1 + - uid: 14012 + components: + - type: Transform + pos: 41.5,3.5 + parent: 1 + - uid: 14013 + components: + - type: Transform + pos: 42.5,4.5 + parent: 1 + - uid: 14014 + components: + - type: Transform + pos: 41.5,4.5 + parent: 1 + - uid: 14015 + components: + - type: Transform + pos: 40.5,4.5 + parent: 1 + - uid: 14016 + components: + - type: Transform + pos: 40.5,3.5 + parent: 1 + - uid: 14017 + components: + - type: Transform + pos: 39.5,2.5 + parent: 1 + - uid: 14018 + components: + - type: Transform + pos: 38.5,3.5 + parent: 1 + - uid: 14019 + components: + - type: Transform + pos: 39.5,3.5 + parent: 1 + - uid: 14020 + components: + - type: Transform + pos: 50.5,6.5 + parent: 1 + - uid: 14021 + components: + - type: Transform + pos: 50.5,5.5 + parent: 1 + - uid: 14022 + components: + - type: Transform + pos: 50.5,4.5 + parent: 1 + - uid: 14023 + components: + - type: Transform + pos: 50.5,3.5 + parent: 1 + - uid: 14024 + components: + - type: Transform + pos: 50.5,2.5 + parent: 1 + - uid: 14025 + components: + - type: Transform + pos: 51.5,6.5 + parent: 1 + - uid: 14026 + components: + - type: Transform + pos: 51.5,5.5 + parent: 1 + - uid: 14027 + components: + - type: Transform + pos: 51.5,4.5 + parent: 1 + - uid: 14028 + components: + - type: Transform + pos: 51.5,3.5 + parent: 1 + - uid: 14029 + components: + - type: Transform + pos: 51.5,2.5 + parent: 1 + - uid: 14030 + components: + - type: Transform + pos: 52.5,6.5 + parent: 1 + - uid: 14031 + components: + - type: Transform + pos: 52.5,5.5 + parent: 1 + - uid: 14032 + components: + - type: Transform + pos: 52.5,4.5 + parent: 1 + - uid: 14033 + components: + - type: Transform + pos: 52.5,3.5 + parent: 1 + - uid: 14034 + components: + - type: Transform + pos: 52.5,2.5 + parent: 1 + - uid: 14035 + components: + - type: Transform + pos: 54.5,3.5 + parent: 1 + - uid: 14036 + components: + - type: Transform + pos: 54.5,5.5 + parent: 1 + - uid: 14037 + components: + - type: Transform + pos: 54.5,6.5 + parent: 1 + - uid: 14038 + components: + - type: Transform + pos: 54.5,7.5 + parent: 1 + - uid: 14039 + components: + - type: Transform + pos: 54.5,8.5 + parent: 1 + - uid: 14040 + components: + - type: Transform + pos: 54.5,9.5 + parent: 1 + - uid: 14041 + components: + - type: Transform + pos: 54.5,10.5 + parent: 1 + - uid: 14042 + components: + - type: Transform + pos: 52.5,9.5 + parent: 1 + - uid: 14043 + components: + - type: Transform + pos: 52.5,14.5 + parent: 1 + - uid: 14044 + components: + - type: Transform + pos: 52.5,15.5 + parent: 1 + - uid: 14045 + components: + - type: Transform + pos: 54.5,16.5 + parent: 1 + - uid: 14046 + components: + - type: Transform + pos: 54.5,15.5 + parent: 1 + - uid: 14047 + components: + - type: Transform + pos: 54.5,14.5 + parent: 1 + - uid: 14048 + components: + - type: Transform + pos: 55.5,16.5 + parent: 1 + - uid: 14049 + components: + - type: Transform + pos: 55.5,15.5 + parent: 1 + - uid: 14050 + components: + - type: Transform + pos: 55.5,14.5 + parent: 1 + - uid: 14051 + components: + - type: Transform + pos: 56.5,16.5 + parent: 1 + - uid: 14052 + components: + - type: Transform + pos: 56.5,15.5 + parent: 1 + - uid: 14053 + components: + - type: Transform + pos: 56.5,14.5 + parent: 1 + - uid: 14054 + components: + - type: Transform + pos: 57.5,16.5 + parent: 1 + - uid: 14055 + components: + - type: Transform + pos: 57.5,15.5 + parent: 1 + - uid: 14056 + components: + - type: Transform + pos: 57.5,14.5 + parent: 1 + - uid: 14057 + components: + - type: Transform + pos: 58.5,16.5 + parent: 1 + - uid: 14058 + components: + - type: Transform + pos: 58.5,15.5 + parent: 1 + - uid: 14059 + components: + - type: Transform + pos: 58.5,14.5 + parent: 1 + - uid: 14060 + components: + - type: Transform + pos: 56.5,11.5 + parent: 1 + - uid: 14061 + components: + - type: Transform + pos: 56.5,12.5 + parent: 1 + - uid: 14062 + components: + - type: Transform + pos: 56.5,13.5 + parent: 1 + - uid: 14063 + components: + - type: Transform + pos: 57.5,11.5 + parent: 1 + - uid: 14064 + components: + - type: Transform + pos: 57.5,12.5 + parent: 1 + - uid: 14065 + components: + - type: Transform + pos: 57.5,13.5 + parent: 1 + - uid: 14066 + components: + - type: Transform + pos: 58.5,11.5 + parent: 1 + - uid: 14067 + components: + - type: Transform + pos: 58.5,12.5 + parent: 1 + - uid: 14068 + components: + - type: Transform + pos: 58.5,13.5 + parent: 1 + - uid: 14069 + components: + - type: Transform + pos: 59.5,11.5 + parent: 1 + - uid: 14070 + components: + - type: Transform + pos: 59.5,12.5 + parent: 1 + - uid: 14071 + components: + - type: Transform + pos: 59.5,13.5 + parent: 1 + - uid: 14072 + components: + - type: Transform + pos: 56.5,9.5 + parent: 1 + - uid: 14073 + components: + - type: Transform + pos: 56.5,10.5 + parent: 1 + - uid: 14074 + components: + - type: Transform + pos: 60.5,12.5 + parent: 1 + - uid: 14075 + components: + - type: Transform + pos: 60.5,13.5 + parent: 1 + - uid: 14076 + components: + - type: Transform + pos: 60.5,14.5 + parent: 1 + - uid: 14077 + components: + - type: Transform + pos: 60.5,15.5 + parent: 1 + - uid: 14078 + components: + - type: Transform + pos: 60.5,16.5 + parent: 1 + - uid: 14079 + components: + - type: Transform + pos: 61.5,12.5 + parent: 1 + - uid: 14080 + components: + - type: Transform + pos: 61.5,13.5 + parent: 1 + - uid: 14081 + components: + - type: Transform + pos: 61.5,14.5 + parent: 1 + - uid: 14082 + components: + - type: Transform + pos: 61.5,15.5 + parent: 1 + - uid: 14083 + components: + - type: Transform + pos: 61.5,16.5 + parent: 1 + - uid: 14084 + components: + - type: Transform + pos: 62.5,12.5 + parent: 1 + - uid: 14085 + components: + - type: Transform + pos: 62.5,13.5 + parent: 1 + - uid: 14086 + components: + - type: Transform + pos: 62.5,14.5 + parent: 1 + - uid: 14087 + components: + - type: Transform + pos: 62.5,15.5 + parent: 1 + - uid: 14088 + components: + - type: Transform + pos: 62.5,16.5 + parent: 1 + - uid: 14089 + components: + - type: Transform + pos: 63.5,15.5 + parent: 1 + - uid: 14090 + components: + - type: Transform + pos: 63.5,16.5 + parent: 1 + - uid: 14091 + components: + - type: Transform + pos: 62.5,17.5 + parent: 1 + - uid: 14092 + components: + - type: Transform + pos: 61.5,17.5 + parent: 1 + - uid: 14093 + components: + - type: Transform + pos: 61.5,18.5 + parent: 1 + - uid: 14094 + components: + - type: Transform + pos: 60.5,18.5 + parent: 1 + - uid: 14095 + components: + - type: Transform + pos: 59.5,17.5 + parent: 1 + - uid: 14096 + components: + - type: Transform + pos: 59.5,18.5 + parent: 1 + - uid: 14097 + components: + - type: Transform + pos: 58.5,17.5 + parent: 1 + - uid: 14098 + components: + - type: Transform + pos: 58.5,18.5 + parent: 1 + - uid: 14099 + components: + - type: Transform + pos: 57.5,17.5 + parent: 1 + - uid: 14100 + components: + - type: Transform + pos: 57.5,18.5 + parent: 1 + - uid: 14101 + components: + - type: Transform + pos: 60.5,17.5 + parent: 1 + - uid: 14102 + components: + - type: Transform + pos: 59.5,19.5 + parent: 1 + - uid: 14103 + components: + - type: Transform + pos: 58.5,19.5 + parent: 1 + - uid: 14104 + components: + - type: Transform + pos: 57.5,19.5 + parent: 1 + - uid: 14105 + components: + - type: Transform + pos: 56.5,19.5 + parent: 1 + - uid: 14106 + components: + - type: Transform + pos: 56.5,17.5 + parent: 1 + - uid: 14107 + components: + - type: Transform + pos: 56.5,18.5 + parent: 1 + - uid: 14108 + components: + - type: Transform + pos: 56.5,20.5 + parent: 1 + - uid: 14109 + components: + - type: Transform + pos: 55.5,17.5 + parent: 1 + - uid: 14110 + components: + - type: Transform + pos: 55.5,18.5 + parent: 1 + - uid: 14111 + components: + - type: Transform + pos: 55.5,19.5 + parent: 1 + - uid: 14112 + components: + - type: Transform + pos: 55.5,20.5 + parent: 1 + - uid: 14113 + components: + - type: Transform + pos: 56.5,21.5 + parent: 1 + - uid: 14114 + components: + - type: Transform + pos: 55.5,21.5 + parent: 1 + - uid: 14115 + components: + - type: Transform + pos: 54.5,21.5 + parent: 1 + - uid: 14116 + components: + - type: Transform + pos: 53.5,21.5 + parent: 1 + - uid: 14117 + components: + - type: Transform + pos: 55.5,22.5 + parent: 1 + - uid: 14118 + components: + - type: Transform + pos: 54.5,22.5 + parent: 1 + - uid: 14119 + components: + - type: Transform + pos: 53.5,22.5 + parent: 1 + - uid: 14120 + components: + - type: Transform + pos: 54.5,23.5 + parent: 1 + - uid: 14121 + components: + - type: Transform + pos: 53.5,23.5 + parent: 1 + - uid: 14122 + components: + - type: Transform + pos: 52.5,23.5 + parent: 1 + - uid: 14123 + components: + - type: Transform + pos: 52.5,22.5 + parent: 1 + - uid: 14124 + components: + - type: Transform + pos: 51.5,22.5 + parent: 1 + - uid: 14125 + components: + - type: Transform + pos: 50.5,22.5 + parent: 1 + - uid: 14126 + components: + - type: Transform + pos: 49.5,22.5 + parent: 1 + - uid: 14127 + components: + - type: Transform + pos: 51.5,21.5 + parent: 1 + - uid: 14128 + components: + - type: Transform + pos: 52.5,21.5 + parent: 1 + - uid: 14129 + components: + - type: Transform + pos: 54.5,20.5 + parent: 1 + - uid: 14130 + components: + - type: Transform + pos: 52.5,17.5 + parent: 1 + - uid: 14131 + components: + - type: Transform + pos: 52.5,18.5 + parent: 1 + - uid: 14132 + components: + - type: Transform + pos: 52.5,19.5 + parent: 1 + - uid: 14133 + components: + - type: Transform + pos: 51.5,17.5 + parent: 1 + - uid: 14134 + components: + - type: Transform + pos: 51.5,18.5 + parent: 1 + - uid: 14135 + components: + - type: Transform + pos: 51.5,19.5 + parent: 1 + - uid: 14136 + components: + - type: Transform + pos: 50.5,17.5 + parent: 1 + - uid: 14137 + components: + - type: Transform + pos: 50.5,18.5 + parent: 1 + - uid: 14138 + components: + - type: Transform + pos: 50.5,19.5 + parent: 1 + - uid: 14139 + components: + - type: Transform + pos: 48.5,18.5 + parent: 1 + - uid: 14140 + components: + - type: Transform + pos: 48.5,19.5 + parent: 1 + - uid: 14141 + components: + - type: Transform + pos: 47.5,18.5 + parent: 1 + - uid: 14142 + components: + - type: Transform + pos: 47.5,19.5 + parent: 1 + - uid: 14143 + components: + - type: Transform + pos: 43.5,19.5 + parent: 1 + - uid: 14144 + components: + - type: Transform + pos: 44.5,19.5 + parent: 1 + - uid: 14145 + components: + - type: Transform + pos: 42.5,19.5 + parent: 1 + - uid: 14146 + components: + - type: Transform + pos: 41.5,19.5 + parent: 1 + - uid: 14147 + components: + - type: Transform + pos: 40.5,19.5 + parent: 1 + - uid: 14148 + components: + - type: Transform + pos: 39.5,19.5 + parent: 1 + - uid: 14149 + components: + - type: Transform + pos: 38.5,19.5 + parent: 1 + - uid: 14150 + components: + - type: Transform + pos: 37.5,19.5 + parent: 1 + - uid: 14151 + components: + - type: Transform + pos: 36.5,19.5 + parent: 1 + - uid: 14152 + components: + - type: Transform + pos: 37.5,17.5 + parent: 1 + - uid: 14153 + components: + - type: Transform + pos: 37.5,18.5 + parent: 1 + - uid: 14154 + components: + - type: Transform + pos: 36.5,17.5 + parent: 1 + - uid: 14155 + components: + - type: Transform + pos: 36.5,18.5 + parent: 1 + - uid: 14156 + components: + - type: Transform + pos: 33.5,15.5 + parent: 1 + - uid: 14157 + components: + - type: Transform + pos: 33.5,16.5 + parent: 1 + - uid: 14158 + components: + - type: Transform + pos: 33.5,17.5 + parent: 1 + - uid: 14159 + components: + - type: Transform + pos: 33.5,18.5 + parent: 1 + - uid: 14160 + components: + - type: Transform + pos: 33.5,19.5 + parent: 1 + - uid: 14161 + components: + - type: Transform + pos: 33.5,20.5 + parent: 1 + - uid: 14162 + components: + - type: Transform + pos: 32.5,15.5 + parent: 1 + - uid: 14163 + components: + - type: Transform + pos: 32.5,16.5 + parent: 1 + - uid: 14164 + components: + - type: Transform + pos: 32.5,17.5 + parent: 1 + - uid: 14166 + components: + - type: Transform + pos: 32.5,19.5 + parent: 1 + - uid: 14167 + components: + - type: Transform + pos: 32.5,20.5 + parent: 1 + - uid: 14168 + components: + - type: Transform + pos: 31.5,15.5 + parent: 1 + - uid: 14169 + components: + - type: Transform + pos: 31.5,16.5 + parent: 1 + - uid: 14170 + components: + - type: Transform + pos: 31.5,17.5 + parent: 1 + - uid: 14171 + components: + - type: Transform + pos: 31.5,18.5 + parent: 1 + - uid: 14172 + components: + - type: Transform + pos: 31.5,19.5 + parent: 1 + - uid: 14173 + components: + - type: Transform + pos: 31.5,20.5 + parent: 1 + - uid: 14174 + components: + - type: Transform + pos: 34.5,17.5 + parent: 1 + - uid: 14175 + components: + - type: Transform + pos: 34.5,18.5 + parent: 1 + - uid: 14176 + components: + - type: Transform + pos: 34.5,19.5 + parent: 1 + - uid: 14177 + components: + - type: Transform + pos: 34.5,20.5 + parent: 1 + - uid: 14178 + components: + - type: Transform + pos: 34.5,21.5 + parent: 1 + - uid: 14179 + components: + - type: Transform + pos: 34.5,22.5 + parent: 1 + - uid: 14180 + components: + - type: Transform + pos: 34.5,23.5 + parent: 1 + - uid: 14181 + components: + - type: Transform + pos: 33.5,21.5 + parent: 1 + - uid: 14182 + components: + - type: Transform + pos: 33.5,22.5 + parent: 1 + - uid: 14183 + components: + - type: Transform + pos: 33.5,23.5 + parent: 1 + - uid: 14184 + components: + - type: Transform + pos: 33.5,24.5 + parent: 1 + - uid: 14185 + components: + - type: Transform + pos: 33.5,25.5 + parent: 1 + - uid: 14186 + components: + - type: Transform + pos: 32.5,21.5 + parent: 1 + - uid: 14187 + components: + - type: Transform + pos: 32.5,22.5 + parent: 1 + - uid: 14188 + components: + - type: Transform + pos: 32.5,23.5 + parent: 1 + - uid: 14189 + components: + - type: Transform + pos: 32.5,24.5 + parent: 1 + - uid: 14190 + components: + - type: Transform + pos: 32.5,25.5 + parent: 1 + - uid: 14191 + components: + - type: Transform + pos: 37.5,21.5 + parent: 1 + - uid: 14192 + components: + - type: Transform + pos: 37.5,22.5 + parent: 1 + - uid: 14193 + components: + - type: Transform + pos: 37.5,23.5 + parent: 1 + - uid: 14194 + components: + - type: Transform + pos: 38.5,21.5 + parent: 1 + - uid: 14195 + components: + - type: Transform + pos: 38.5,22.5 + parent: 1 + - uid: 14196 + components: + - type: Transform + pos: 38.5,23.5 + parent: 1 + - uid: 14197 + components: + - type: Transform + pos: 36.5,22.5 + parent: 1 + - uid: 14198 + components: + - type: Transform + pos: 39.5,22.5 + parent: 1 + - uid: 14199 + components: + - type: Transform + pos: 39.5,23.5 + parent: 1 + - uid: 14200 + components: + - type: Transform + pos: 39.5,24.5 + parent: 1 + - uid: 14201 + components: + - type: Transform + pos: 40.5,22.5 + parent: 1 + - uid: 14202 + components: + - type: Transform + pos: 40.5,23.5 + parent: 1 + - uid: 14203 + components: + - type: Transform + pos: 40.5,24.5 + parent: 1 + - uid: 14204 + components: + - type: Transform + pos: 41.5,22.5 + parent: 1 + - uid: 14205 + components: + - type: Transform + pos: 41.5,23.5 + parent: 1 + - uid: 14206 + components: + - type: Transform + pos: 41.5,24.5 + parent: 1 + - uid: 14207 + components: + - type: Transform + pos: 38.5,25.5 + parent: 1 + - uid: 14208 + components: + - type: Transform + pos: 38.5,26.5 + parent: 1 + - uid: 14209 + components: + - type: Transform + pos: 38.5,27.5 + parent: 1 + - uid: 14210 + components: + - type: Transform + pos: 38.5,28.5 + parent: 1 + - uid: 14211 + components: + - type: Transform + pos: 38.5,29.5 + parent: 1 + - uid: 14212 + components: + - type: Transform + pos: 37.5,26.5 + parent: 1 + - uid: 14213 + components: + - type: Transform + pos: 37.5,27.5 + parent: 1 + - uid: 14214 + components: + - type: Transform + pos: 37.5,28.5 + parent: 1 + - uid: 14215 + components: + - type: Transform + pos: 37.5,29.5 + parent: 1 + - uid: 14216 + components: + - type: Transform + pos: 39.5,28.5 + parent: 1 + - uid: 14217 + components: + - type: Transform + pos: 39.5,29.5 + parent: 1 + - uid: 14218 + components: + - type: Transform + pos: 40.5,27.5 + parent: 1 + - uid: 14219 + components: + - type: Transform + pos: 40.5,28.5 + parent: 1 + - uid: 14220 + components: + - type: Transform + pos: 40.5,29.5 + parent: 1 + - uid: 14221 + components: + - type: Transform + pos: 41.5,27.5 + parent: 1 + - uid: 14222 + components: + - type: Transform + pos: 41.5,28.5 + parent: 1 + - uid: 14223 + components: + - type: Transform + pos: 41.5,29.5 + parent: 1 + - uid: 14224 + components: + - type: Transform + pos: 42.5,29.5 + parent: 1 + - uid: 14225 + components: + - type: Transform + pos: 41.5,30.5 + parent: 1 + - uid: 14226 + components: + - type: Transform + pos: 40.5,30.5 + parent: 1 + - uid: 14227 + components: + - type: Transform + pos: 40.5,31.5 + parent: 1 + - uid: 14228 + components: + - type: Transform + pos: 39.5,31.5 + parent: 1 + - uid: 14229 + components: + - type: Transform + pos: 38.5,31.5 + parent: 1 + - uid: 14230 + components: + - type: Transform + pos: 38.5,32.5 + parent: 1 + - uid: 14231 + components: + - type: Transform + pos: 37.5,31.5 + parent: 1 + - uid: 14232 + components: + - type: Transform + pos: 37.5,30.5 + parent: 1 + - uid: 14233 + components: + - type: Transform + pos: 36.5,31.5 + parent: 1 + - uid: 14234 + components: + - type: Transform + pos: 36.5,32.5 + parent: 1 + - uid: 14236 + components: + - type: Transform + pos: 40.5,26.5 + parent: 1 + - uid: 14237 + components: + - type: Transform + pos: 40.5,25.5 + parent: 1 + - uid: 14238 + components: + - type: Transform + pos: 41.5,26.5 + parent: 1 + - uid: 14239 + components: + - type: Transform + pos: 41.5,25.5 + parent: 1 + - uid: 14240 + components: + - type: Transform + pos: 42.5,26.5 + parent: 1 + - uid: 14241 + components: + - type: Transform + pos: 42.5,27.5 + parent: 1 + - uid: 14242 + components: + - type: Transform + pos: 42.5,25.5 + parent: 1 + - uid: 14243 + components: + - type: Transform + pos: 43.5,25.5 + parent: 1 + - uid: 14244 + components: + - type: Transform + pos: 44.5,25.5 + parent: 1 + - uid: 14245 + components: + - type: Transform + pos: 43.5,24.5 + parent: 1 + - uid: 14246 + components: + - type: Transform + pos: 43.5,23.5 + parent: 1 + - uid: 14247 + components: + - type: Transform + pos: 44.5,24.5 + parent: 1 + - uid: 14248 + components: + - type: Transform + pos: 44.5,23.5 + parent: 1 + - uid: 14249 + components: + - type: Transform + pos: 45.5,24.5 + parent: 1 + - uid: 14250 + components: + - type: Transform + pos: 45.5,23.5 + parent: 1 + - uid: 14251 + components: + - type: Transform + pos: 46.5,24.5 + parent: 1 + - uid: 14252 + components: + - type: Transform + pos: 46.5,23.5 + parent: 1 + - uid: 14253 + components: + - type: Transform + pos: 47.5,24.5 + parent: 1 + - uid: 14254 + components: + - type: Transform + pos: 47.5,23.5 + parent: 1 + - uid: 14255 + components: + - type: Transform + pos: 47.5,22.5 + parent: 1 + - uid: 14256 + components: + - type: Transform + pos: 48.5,22.5 + parent: 1 + - uid: 14257 + components: + - type: Transform + pos: 45.5,21.5 + parent: 1 + - uid: 14258 + components: + - type: Transform + pos: 45.5,22.5 + parent: 1 + - uid: 14259 + components: + - type: Transform + pos: 46.5,22.5 + parent: 1 + - uid: 14260 + components: + - type: Transform + pos: 43.5,22.5 + parent: 1 + - uid: 14261 + components: + - type: Transform + pos: 42.5,22.5 + parent: 1 + - uid: 14262 + components: + - type: Transform + pos: 42.5,23.5 + parent: 1 + - uid: 14263 + components: + - type: Transform + pos: 44.5,21.5 + parent: 1 + - uid: 14264 + components: + - type: Transform + pos: 41.5,21.5 + parent: 1 + - uid: 14265 + components: + - type: Transform + pos: 46.5,21.5 + parent: 1 + - uid: 14266 + components: + - type: Transform + pos: -10.5,1.5 + parent: 1 + - uid: 14267 + components: + - type: Transform + pos: -4.5,2.5 + parent: 1 + - uid: 14268 + components: + - type: Transform + pos: -9.5,1.5 + parent: 1 + - uid: 14269 + components: + - type: Transform + pos: -1.5,1.5 + parent: 1 + - uid: 14270 + components: + - type: Transform + pos: -0.5,1.5 + parent: 1 + - uid: 14271 + components: + - type: Transform + pos: -2.5,1.5 + parent: 1 + - uid: 14276 + components: + - type: Transform + pos: -3.5,1.5 + parent: 1 + - uid: 14808 + components: + - type: Transform + pos: -43.5,-13.5 + parent: 1 + - uid: 14809 + components: + - type: Transform + pos: -43.5,-15.5 + parent: 1 + - uid: 14887 + components: + - type: Transform + pos: -32.5,8.5 + parent: 1 + - uid: 14888 + components: + - type: Transform + pos: -32.5,6.5 + parent: 1 + - uid: 14889 + components: + - type: Transform + pos: -32.5,11.5 + parent: 1 + - uid: 14890 + components: + - type: Transform + pos: -31.5,1.5 + parent: 1 + - uid: 14891 + components: + - type: Transform + pos: -31.5,-0.5 + parent: 1 + - uid: 14892 + components: + - type: Transform + pos: -22.5,-18.5 + parent: 1 + - uid: 14893 + components: + - type: Transform + pos: -22.5,-20.5 + parent: 1 + - uid: 14894 + components: + - type: Transform + pos: 15.5,5.5 + parent: 1 + - uid: 14895 + components: + - type: Transform + pos: 15.5,9.5 + parent: 1 + - uid: 14896 + components: + - type: Transform + pos: -2.5,21.5 + parent: 1 + - uid: 14897 + components: + - type: Transform + pos: -2.5,18.5 + parent: 1 + - uid: 14898 + components: + - type: Transform + pos: -9.5,21.5 + parent: 1 + - uid: 14899 + components: + - type: Transform + pos: -9.5,18.5 + parent: 1 + - uid: 14900 + components: + - type: Transform + pos: -7.5,16.5 + parent: 1 + - uid: 14901 + components: + - type: Transform + pos: -4.5,16.5 + parent: 1 + - uid: 14902 + components: + - type: Transform + pos: 13.5,67.5 + parent: 1 + - uid: 14903 + components: + - type: Transform + pos: 10.5,67.5 + parent: 1 + - uid: 14939 + components: + - type: Transform + pos: 26.5,-2.5 + parent: 1 + - uid: 14940 + components: + - type: Transform + pos: 30.5,2.5 + parent: 1 + - uid: 15764 + components: + - type: Transform + pos: -37.5,-21.5 + parent: 1 + - uid: 15765 + components: + - type: Transform + pos: -38.5,-21.5 + parent: 1 + - uid: 15766 + components: + - type: Transform + pos: -38.5,-20.5 + parent: 1 + - uid: 15767 + components: + - type: Transform + pos: -37.5,-22.5 + parent: 1 + - uid: 15768 + components: + - type: Transform + pos: -38.5,-22.5 + parent: 1 + - uid: 15769 + components: + - type: Transform + pos: -39.5,-25.5 + parent: 1 + - uid: 15770 + components: + - type: Transform + pos: -38.5,-23.5 + parent: 1 + - uid: 15771 + components: + - type: Transform + pos: -37.5,-25.5 + parent: 1 + - uid: 15772 + components: + - type: Transform + pos: -37.5,-24.5 + parent: 1 + - uid: 15773 + components: + - type: Transform + pos: -33.5,-27.5 + parent: 1 + - uid: 15774 + components: + - type: Transform + pos: -33.5,-26.5 + parent: 1 + - uid: 15775 + components: + - type: Transform + pos: -34.5,-27.5 + parent: 1 + - uid: 15776 + components: + - type: Transform + pos: -40.5,-28.5 + parent: 1 + - uid: 15777 + components: + - type: Transform + pos: -40.5,-29.5 + parent: 1 + - uid: 15778 + components: + - type: Transform + pos: -41.5,-29.5 + parent: 1 + - uid: 15779 + components: + - type: Transform + pos: -39.5,-26.5 + parent: 1 + - uid: 15780 + components: + - type: Transform + pos: -40.5,-26.5 + parent: 1 + - uid: 15781 + components: + - type: Transform + pos: -40.5,-25.5 + parent: 1 + - uid: 15782 + components: + - type: Transform + pos: -40.5,-30.5 + parent: 1 + - uid: 15783 + components: + - type: Transform + pos: -40.5,-31.5 + parent: 1 + - uid: 15784 + components: + - type: Transform + pos: -40.5,-32.5 + parent: 1 + - uid: 15785 + components: + - type: Transform + pos: -40.5,-33.5 + parent: 1 + - uid: 15786 + components: + - type: Transform + pos: -40.5,-34.5 + parent: 1 + - uid: 15787 + components: + - type: Transform + pos: -40.5,-35.5 + parent: 1 + - uid: 15788 + components: + - type: Transform + pos: -40.5,-36.5 + parent: 1 + - uid: 15789 + components: + - type: Transform + pos: -40.5,-37.5 + parent: 1 + - uid: 15790 + components: + - type: Transform + pos: -41.5,-30.5 + parent: 1 + - uid: 15791 + components: + - type: Transform + pos: -41.5,-31.5 + parent: 1 + - uid: 15792 + components: + - type: Transform + pos: -41.5,-32.5 + parent: 1 + - uid: 15793 + components: + - type: Transform + pos: -41.5,-33.5 + parent: 1 + - uid: 15794 + components: + - type: Transform + pos: -41.5,-34.5 + parent: 1 + - uid: 15795 + components: + - type: Transform + pos: -41.5,-35.5 + parent: 1 + - uid: 15796 + components: + - type: Transform + pos: -41.5,-36.5 + parent: 1 + - uid: 15797 + components: + - type: Transform + pos: -41.5,-37.5 + parent: 1 + - uid: 15798 + components: + - type: Transform + pos: -42.5,-33.5 + parent: 1 + - uid: 15799 + components: + - type: Transform + pos: -39.5,-31.5 + parent: 1 + - uid: 15800 + components: + - type: Transform + pos: -39.5,-33.5 + parent: 1 + - uid: 15801 + components: + - type: Transform + pos: -37.5,-34.5 + parent: 1 + - uid: 15802 + components: + - type: Transform + pos: -37.5,-35.5 + parent: 1 + - uid: 15803 + components: + - type: Transform + pos: -37.5,-29.5 + parent: 1 + - uid: 15804 + components: + - type: Transform + pos: -36.5,-27.5 + parent: 1 + - uid: 15805 + components: + - type: Transform + pos: -42.5,-36.5 + parent: 1 + - uid: 15806 + components: + - type: Transform + pos: -43.5,-35.5 + parent: 1 + - uid: 15807 + components: + - type: Transform + pos: -43.5,-34.5 + parent: 1 + - uid: 15808 + components: + - type: Transform + pos: -43.5,-33.5 + parent: 1 + - uid: 15809 + components: + - type: Transform + pos: -42.5,-34.5 + parent: 1 + - uid: 15810 + components: + - type: Transform + pos: -42.5,-35.5 + parent: 1 + - uid: 15811 + components: + - type: Transform + pos: -43.5,-36.5 + parent: 1 + - uid: 15812 + components: + - type: Transform + pos: -44.5,-38.5 + parent: 1 + - uid: 15813 + components: + - type: Transform + pos: -44.5,-36.5 + parent: 1 + - uid: 15814 + components: + - type: Transform + pos: -43.5,-39.5 + parent: 1 + - uid: 15815 + components: + - type: Transform + pos: -43.5,-40.5 + parent: 1 + - uid: 15816 + components: + - type: Transform + pos: -41.5,-39.5 + parent: 1 + - uid: 15817 + components: + - type: Transform + pos: -41.5,-38.5 + parent: 1 + - uid: 15818 + components: + - type: Transform + pos: -42.5,-39.5 + parent: 1 + - uid: 15819 + components: + - type: Transform + pos: -42.5,-41.5 + parent: 1 + - uid: 15820 + components: + - type: Transform + pos: -42.5,-42.5 + parent: 1 + - uid: 15821 + components: + - type: Transform + pos: -43.5,-41.5 + parent: 1 + - uid: 15822 + components: + - type: Transform + pos: -44.5,-40.5 + parent: 1 + - uid: 15823 + components: + - type: Transform + pos: -41.5,-41.5 + parent: 1 + - uid: 15824 + components: + - type: Transform + pos: -40.5,-41.5 + parent: 1 + - uid: 15825 + components: + - type: Transform + pos: -39.5,-43.5 + parent: 1 + - uid: 15826 + components: + - type: Transform + pos: -38.5,-43.5 + parent: 1 + - uid: 15827 + components: + - type: Transform + pos: -36.5,-43.5 + parent: 1 + - uid: 15828 + components: + - type: Transform + pos: -37.5,-46.5 + parent: 1 + - uid: 15829 + components: + - type: Transform + pos: -40.5,-43.5 + parent: 1 + - uid: 15830 + components: + - type: Transform + pos: -40.5,-42.5 + parent: 1 + - uid: 15831 + components: + - type: Transform + pos: -33.5,-41.5 + parent: 1 + - uid: 15832 + components: + - type: Transform + pos: -33.5,-39.5 + parent: 1 + - uid: 15833 + components: + - type: Transform + pos: -34.5,-37.5 + parent: 1 + - uid: 15834 + components: + - type: Transform + pos: -33.5,-37.5 + parent: 1 + - uid: 15835 + components: + - type: Transform + pos: -38.5,-40.5 + parent: 1 + - uid: 15836 + components: + - type: Transform + pos: -38.5,-41.5 + parent: 1 + - uid: 15837 + components: + - type: Transform + pos: -36.5,-41.5 + parent: 1 + - uid: 15838 + components: + - type: Transform + pos: -36.5,-40.5 + parent: 1 + - uid: 15839 + components: + - type: Transform + pos: -37.5,-41.5 + parent: 1 + - uid: 15840 + components: + - type: Transform + pos: -37.5,-42.5 + parent: 1 + - uid: 15841 + components: + - type: Transform + pos: -39.5,-41.5 + parent: 1 + - uid: 15842 + components: + - type: Transform + pos: -38.5,-45.5 + parent: 1 + - uid: 15843 + components: + - type: Transform + pos: -38.5,-44.5 + parent: 1 + - uid: 15844 + components: + - type: Transform + pos: -39.5,-44.5 + parent: 1 + - uid: 15845 + components: + - type: Transform + pos: -36.5,-46.5 + parent: 1 + - uid: 15846 + components: + - type: Transform + pos: -35.5,-47.5 + parent: 1 + - uid: 15847 + components: + - type: Transform + pos: -34.5,-47.5 + parent: 1 + - uid: 15848 + components: + - type: Transform + pos: -33.5,-46.5 + parent: 1 + - uid: 15849 + components: + - type: Transform + pos: -32.5,-46.5 + parent: 1 + - uid: 15850 + components: + - type: Transform + pos: -32.5,-47.5 + parent: 1 + - uid: 15851 + components: + - type: Transform + pos: -33.5,-45.5 + parent: 1 + - uid: 15852 + components: + - type: Transform + pos: -34.5,-45.5 + parent: 1 + - uid: 15853 + components: + - type: Transform + pos: -34.5,-43.5 + parent: 1 + - uid: 15854 + components: + - type: Transform + pos: -35.5,-44.5 + parent: 1 + - uid: 15855 + components: + - type: Transform + pos: -32.5,-44.5 + parent: 1 + - uid: 15856 + components: + - type: Transform + pos: -36.5,-45.5 + parent: 1 + - uid: 15857 + components: + - type: Transform + pos: -36.5,-44.5 + parent: 1 + - uid: 15858 + components: + - type: Transform + pos: -35.5,-45.5 + parent: 1 + - uid: 15859 + components: + - type: Transform + pos: -35.5,-46.5 + parent: 1 + - uid: 15860 + components: + - type: Transform + pos: -34.5,-46.5 + parent: 1 + - uid: 15861 + components: + - type: Transform + pos: -34.5,-44.5 + parent: 1 + - uid: 15862 + components: + - type: Transform + pos: -33.5,-43.5 + parent: 1 + - uid: 15863 + components: + - type: Transform + pos: -33.5,-42.5 + parent: 1 + - uid: 15864 + components: + - type: Transform + pos: -31.5,-46.5 + parent: 1 + - uid: 15865 + components: + - type: Transform + pos: -31.5,-45.5 + parent: 1 + - uid: 15866 + components: + - type: Transform + pos: -30.5,-46.5 + parent: 1 + - uid: 15867 + components: + - type: Transform + pos: -30.5,-45.5 + parent: 1 + - uid: 15868 + components: + - type: Transform + pos: -29.5,-46.5 + parent: 1 + - uid: 15869 + components: + - type: Transform + pos: -29.5,-45.5 + parent: 1 + - uid: 15870 + components: + - type: Transform + pos: -28.5,-46.5 + parent: 1 + - uid: 15871 + components: + - type: Transform + pos: -28.5,-45.5 + parent: 1 + - uid: 15872 + components: + - type: Transform + pos: -27.5,-46.5 + parent: 1 + - uid: 15873 + components: + - type: Transform + pos: -27.5,-45.5 + parent: 1 + - uid: 15874 + components: + - type: Transform + pos: -26.5,-45.5 + parent: 1 + - uid: 15875 + components: + - type: Transform + pos: -27.5,-44.5 + parent: 1 + - uid: 15876 + components: + - type: Transform + pos: -28.5,-44.5 + parent: 1 + - uid: 15877 + components: + - type: Transform + pos: -29.5,-44.5 + parent: 1 + - uid: 15878 + components: + - type: Transform + pos: -26.5,-44.5 + parent: 1 + - uid: 15879 + components: + - type: Transform + pos: -24.5,-44.5 + parent: 1 + - uid: 15880 + components: + - type: Transform + pos: -25.5,-44.5 + parent: 1 + - uid: 15881 + components: + - type: Transform + pos: -25.5,-45.5 + parent: 1 + - uid: 15996 + components: + - type: Transform + pos: 2.5,-29.5 + parent: 1 + - uid: 15997 + components: + - type: Transform + pos: 1.5,-29.5 + parent: 1 + - uid: 16344 + components: + - type: Transform + pos: 0.5,-29.5 + parent: 1 + - uid: 16345 + components: + - type: Transform + pos: -0.5,-29.5 + parent: 1 + - uid: 16346 + components: + - type: Transform + pos: -1.5,-29.5 + parent: 1 + - uid: 16347 + components: + - type: Transform + pos: -2.5,-29.5 + parent: 1 + - uid: 16348 + components: + - type: Transform + pos: -3.5,-33.5 + parent: 1 + - uid: 16349 + components: + - type: Transform + pos: -3.5,-34.5 + parent: 1 + - uid: 16350 + components: + - type: Transform + pos: -1.5,-33.5 + parent: 1 + - uid: 16351 + components: + - type: Transform + pos: -0.5,-32.5 + parent: 1 + - uid: 16352 + components: + - type: Transform + pos: -0.5,-31.5 + parent: 1 + - uid: 16353 + components: + - type: Transform + pos: -1.5,-32.5 + parent: 1 + - uid: 16354 + components: + - type: Transform + pos: 0.5,-32.5 + parent: 1 + - uid: 16355 + components: + - type: Transform + pos: 0.5,-31.5 + parent: 1 + - uid: 16356 + components: + - type: Transform + pos: 1.5,-32.5 + parent: 1 + - uid: 16357 + components: + - type: Transform + pos: 1.5,-31.5 + parent: 1 + - uid: 16358 + components: + - type: Transform + pos: 2.5,-32.5 + parent: 1 + - uid: 16359 + components: + - type: Transform + pos: 2.5,-31.5 + parent: 1 + - uid: 16360 + components: + - type: Transform + pos: 3.5,-32.5 + parent: 1 + - uid: 16361 + components: + - type: Transform + pos: 3.5,-31.5 + parent: 1 + - uid: 16362 + components: + - type: Transform + pos: 5.5,-32.5 + parent: 1 + - uid: 16363 + components: + - type: Transform + pos: 4.5,-32.5 + parent: 1 + - uid: 16364 + components: + - type: Transform + pos: 5.5,-31.5 + parent: 1 + - uid: 16365 + components: + - type: Transform + pos: 7.5,-32.5 + parent: 1 + - uid: 16366 + components: + - type: Transform + pos: 9.5,-32.5 + parent: 1 + - uid: 16367 + components: + - type: Transform + pos: 10.5,-31.5 + parent: 1 + - uid: 16368 + components: + - type: Transform + pos: 10.5,-32.5 + parent: 1 + - uid: 16369 + components: + - type: Transform + pos: 9.5,-31.5 + parent: 1 + - uid: 16370 + components: + - type: Transform + pos: 8.5,-32.5 + parent: 1 + - uid: 16371 + components: + - type: Transform + pos: 4.5,-29.5 + parent: 1 + - uid: 16372 + components: + - type: Transform + pos: 6.5,-29.5 + parent: 1 + - uid: 16373 + components: + - type: Transform + pos: -3.5,-29.5 + parent: 1 + - uid: 16374 + components: + - type: Transform + pos: -1.5,-34.5 + parent: 1 + - uid: 16375 + components: + - type: Transform + pos: -1.5,-35.5 + parent: 1 + - uid: 16376 + components: + - type: Transform + pos: -0.5,-35.5 + parent: 1 + - uid: 16377 + components: + - type: Transform + pos: -0.5,-36.5 + parent: 1 + - uid: 16378 + components: + - type: Transform + pos: -3.5,-35.5 + parent: 1 + - uid: 16379 + components: + - type: Transform + pos: -4.5,-36.5 + parent: 1 + - uid: 16382 + components: + - type: Transform + pos: -7.5,-36.5 + parent: 1 + - uid: 16383 + components: + - type: Transform + pos: -8.5,-38.5 + parent: 1 + - uid: 16384 + components: + - type: Transform + pos: -8.5,-39.5 + parent: 1 + - uid: 16385 + components: + - type: Transform + pos: -6.5,-36.5 + parent: 1 + - uid: 16386 + components: + - type: Transform + pos: -5.5,-36.5 + parent: 1 + - uid: 16387 + components: + - type: Transform + pos: -7.5,-38.5 + parent: 1 + - uid: 16388 + components: + - type: Transform + pos: -8.5,-40.5 + parent: 1 + - uid: 16389 + components: + - type: Transform + pos: -7.5,-37.5 + parent: 1 + - uid: 16390 + components: + - type: Transform + pos: -6.5,-37.5 + parent: 1 + - uid: 16391 + components: + - type: Transform + pos: -7.5,-40.5 + parent: 1 + - uid: 16392 + components: + - type: Transform + pos: 0.5,-36.5 + parent: 1 + - uid: 16393 + components: + - type: Transform + pos: 0.5,-37.5 + parent: 1 + - uid: 16394 + components: + - type: Transform + pos: -0.5,-37.5 + parent: 1 +- proto: WallSandstone + entities: + - uid: 14272 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,1.5 + parent: 1 + - uid: 14273 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,0.5 + parent: 1 + - uid: 14274 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,1.5 + parent: 1 + - uid: 14275 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,1.5 + parent: 1 + - uid: 14277 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,1.5 + parent: 1 + - uid: 14278 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,1.5 + parent: 1 +- proto: WallSolid + entities: + - uid: 26 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,33.5 + parent: 1 + - uid: 27 + components: + - type: Transform + pos: 14.5,36.5 + parent: 1 + - uid: 28 + components: + - type: Transform + pos: 10.5,-6.5 + parent: 1 + - uid: 50 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,30.5 + parent: 1 + - uid: 68 + components: + - type: Transform + pos: -21.5,38.5 + parent: 1 + - uid: 69 + components: + - type: Transform + pos: -23.5,38.5 + parent: 1 + - uid: 82 + components: + - type: Transform + pos: 18.5,-3.5 + parent: 1 + - uid: 106 + components: + - type: Transform + pos: 12.5,37.5 + parent: 1 + - uid: 107 + components: + - type: Transform + pos: 23.5,7.5 + parent: 1 + - uid: 116 + components: + - type: Transform + pos: -17.5,36.5 + parent: 1 + - uid: 144 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,29.5 + parent: 1 + - uid: 147 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,35.5 + parent: 1 + - uid: 159 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,35.5 + parent: 1 + - uid: 160 + components: + - type: Transform + pos: -17.5,2.5 + parent: 1 + - uid: 171 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,40.5 + parent: 1 + - uid: 172 + components: + - type: Transform + pos: -35.5,5.5 + parent: 1 + - uid: 178 + components: + - type: Transform + pos: -24.5,38.5 + parent: 1 + - uid: 179 + components: + - type: Transform + pos: -22.5,38.5 + parent: 1 + - uid: 185 + components: + - type: Transform + pos: 14.5,24.5 + parent: 1 + - uid: 206 + components: + - type: Transform + pos: 9.5,-1.5 + parent: 1 + - uid: 221 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,24.5 + parent: 1 + - uid: 222 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,24.5 + parent: 1 + - uid: 238 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,36.5 + parent: 1 + - uid: 239 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,30.5 + parent: 1 + - uid: 254 + components: + - type: Transform + pos: -24.5,43.5 + parent: 1 + - uid: 256 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,24.5 + parent: 1 + - uid: 268 + components: + - type: Transform + pos: 15.5,-1.5 + parent: 1 + - uid: 272 + components: + - type: Transform + pos: -20.5,24.5 + parent: 1 + - uid: 278 + components: + - type: Transform + pos: 14.5,28.5 + parent: 1 + - uid: 279 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,24.5 + parent: 1 + - uid: 281 + components: + - type: Transform + pos: 14.5,26.5 + parent: 1 + - uid: 289 + components: + - type: Transform + pos: -27.5,41.5 + parent: 1 + - uid: 294 + components: + - type: Transform + pos: 0.5,22.5 + parent: 1 + - uid: 302 + components: + - type: Transform + pos: -22.5,34.5 + parent: 1 + - uid: 315 + components: + - type: Transform + pos: -27.5,40.5 + parent: 1 + - uid: 323 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,24.5 + parent: 1 + - uid: 339 + components: + - type: Transform + pos: -18.5,38.5 + parent: 1 + - uid: 341 + components: + - type: Transform + pos: -16.5,38.5 + parent: 1 + - uid: 344 + components: + - type: Transform + pos: -17.5,4.5 + parent: 1 + - uid: 355 + components: + - type: Transform + pos: 4.5,21.5 + parent: 1 + - uid: 356 + components: + - type: Transform + pos: 4.5,22.5 + parent: 1 + - uid: 358 + components: + - type: Transform + pos: 5.5,21.5 + parent: 1 + - uid: 359 + components: + - type: Transform + pos: 6.5,21.5 + parent: 1 + - uid: 370 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,58.5 + parent: 1 + - uid: 375 + components: + - type: Transform + pos: -12.5,22.5 + parent: 1 + - uid: 376 + components: + - type: Transform + pos: -18.5,43.5 + parent: 1 + - uid: 378 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,30.5 + parent: 1 + - uid: 390 + components: + - type: Transform + pos: 26.5,7.5 + parent: 1 + - uid: 398 + components: + - type: Transform + pos: 16.5,36.5 + parent: 1 + - uid: 400 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,25.5 + parent: 1 + - uid: 405 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,5.5 + parent: 1 + - uid: 409 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,30.5 + parent: 1 + - uid: 412 + components: + - type: Transform + pos: -17.5,43.5 + parent: 1 + - uid: 419 + components: + - type: Transform + pos: 4.5,37.5 + parent: 1 + - uid: 420 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,16.5 + parent: 1 + - uid: 422 + components: + - type: Transform + pos: 14.5,27.5 + parent: 1 + - uid: 431 + components: + - type: Transform + pos: -20.5,36.5 + parent: 1 + - uid: 434 + components: + - type: Transform + pos: 24.5,7.5 + parent: 1 + - uid: 445 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,35.5 + parent: 1 + - uid: 452 + components: + - type: Transform + pos: -6.5,67.5 + parent: 1 + - uid: 458 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,30.5 + parent: 1 + - uid: 461 + components: + - type: Transform + pos: -17.5,0.5 + parent: 1 + - uid: 468 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,24.5 + parent: 1 + - uid: 472 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,36.5 + parent: 1 + - uid: 476 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,30.5 + parent: 1 + - uid: 477 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,30.5 + parent: 1 + - uid: 478 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,24.5 + parent: 1 + - uid: 490 + components: + - type: Transform + pos: -16.5,46.5 + parent: 1 + - uid: 497 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,58.5 + parent: 1 + - uid: 498 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,29.5 + parent: 1 + - uid: 503 + components: + - type: Transform + pos: 16.5,-6.5 + parent: 1 + - uid: 504 + components: + - type: Transform + pos: -27.5,43.5 + parent: 1 + - uid: 508 + components: + - type: Transform + pos: 18.5,-0.5 + parent: 1 + - uid: 510 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,36.5 + parent: 1 + - uid: 521 + components: + - type: Transform + pos: -17.5,38.5 + parent: 1 + - uid: 530 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,16.5 + parent: 1 + - uid: 555 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,30.5 + parent: 1 + - uid: 575 + components: + - type: Transform + pos: -26.5,36.5 + parent: 1 + - uid: 576 + components: + - type: Transform + pos: -18.5,36.5 + parent: 1 + - uid: 581 + components: + - type: Transform + pos: -20.5,38.5 + parent: 1 + - uid: 583 + components: + - type: Transform + pos: -23.5,41.5 + parent: 1 + - uid: 585 + components: + - type: Transform + pos: 24.5,38.5 + parent: 1 + - uid: 588 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,31.5 + parent: 1 + - uid: 589 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,32.5 + parent: 1 + - uid: 601 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,34.5 + parent: 1 + - uid: 602 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,24.5 + parent: 1 + - uid: 603 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,24.5 + parent: 1 + - uid: 604 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,24.5 + parent: 1 + - uid: 633 + components: + - type: Transform + pos: 16.5,32.5 + parent: 1 + - uid: 634 + components: + - type: Transform + pos: 16.5,33.5 + parent: 1 + - uid: 639 + components: + - type: Transform + pos: 14.5,25.5 + parent: 1 + - uid: 642 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,24.5 + parent: 1 + - uid: 661 + components: + - type: Transform + pos: -22.5,43.5 + parent: 1 + - uid: 664 + components: + - type: Transform + pos: -19.5,43.5 + parent: 1 + - uid: 665 + components: + - type: Transform + pos: 15.5,-0.5 + parent: 1 + - uid: 671 + components: + - type: Transform + pos: 22.5,7.5 + parent: 1 + - uid: 686 + components: + - type: Transform + pos: 26.5,21.5 + parent: 1 + - uid: 723 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,35.5 + parent: 1 + - uid: 726 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,31.5 + parent: 1 + - uid: 733 + components: + - type: Transform + pos: 6.5,38.5 + parent: 1 + - uid: 740 + components: + - type: Transform + pos: -16.5,45.5 + parent: 1 + - uid: 750 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,24.5 + parent: 1 + - uid: 758 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,24.5 + parent: 1 + - uid: 773 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,26.5 + parent: 1 + - uid: 777 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,17.5 + parent: 1 + - uid: 782 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,34.5 + parent: 1 + - uid: 789 + components: + - type: Transform + pos: -12.5,27.5 + parent: 1 + - uid: 790 + components: + - type: Transform + pos: -12.5,26.5 + parent: 1 + - uid: 791 + components: + - type: Transform + pos: -12.5,30.5 + parent: 1 + - uid: 792 + components: + - type: Transform + pos: -12.5,28.5 + parent: 1 + - uid: 793 + components: + - type: Transform + pos: -12.5,29.5 + parent: 1 + - uid: 794 + components: + - type: Transform + pos: -12.5,31.5 + parent: 1 + - uid: 795 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,31.5 + parent: 1 + - uid: 816 + components: + - type: Transform + pos: -22.5,33.5 + parent: 1 + - uid: 823 + components: + - type: Transform + pos: 27.5,7.5 + parent: 1 + - uid: 826 + components: + - type: Transform + pos: -27.5,39.5 + parent: 1 + - uid: 832 + components: + - type: Transform + pos: -11.5,26.5 + parent: 1 + - uid: 833 + components: + - type: Transform + pos: -10.5,26.5 + parent: 1 + - uid: 837 + components: + - type: Transform + pos: 15.5,-2.5 + parent: 1 + - uid: 840 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,34.5 + parent: 1 + - uid: 841 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,34.5 + parent: 1 + - uid: 842 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,33.5 + parent: 1 + - uid: 844 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,31.5 + parent: 1 + - uid: 845 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,30.5 + parent: 1 + - uid: 846 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 13.5,30.5 + parent: 1 + - uid: 852 + components: + - type: Transform + pos: -17.5,24.5 + parent: 1 + - uid: 854 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,59.5 + parent: 1 + - uid: 865 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,35.5 + parent: 1 + - uid: 866 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,29.5 + parent: 1 + - uid: 870 + components: + - type: Transform + pos: 18.5,-1.5 + parent: 1 + - uid: 873 + components: + - type: Transform + pos: -22.5,24.5 + parent: 1 + - uid: 890 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,17.5 + parent: 1 + - uid: 891 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,30.5 + parent: 1 + - uid: 894 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,24.5 + parent: 1 + - uid: 898 + components: + - type: Transform + pos: -25.5,43.5 + parent: 1 + - uid: 902 + components: + - type: Transform + pos: -16.5,43.5 + parent: 1 + - uid: 909 + components: + - type: Transform + pos: -8.5,30.5 + parent: 1 + - uid: 911 + components: + - type: Transform + pos: -8.5,28.5 + parent: 1 + - uid: 912 + components: + - type: Transform + pos: -8.5,27.5 + parent: 1 + - uid: 913 + components: + - type: Transform + pos: -8.5,26.5 + parent: 1 + - uid: 914 + components: + - type: Transform + pos: -9.5,26.5 + parent: 1 + - uid: 929 + components: + - type: Transform + pos: 27.5,21.5 + parent: 1 + - uid: 934 + components: + - type: Transform + pos: -1.5,31.5 + parent: 1 + - uid: 935 + components: + - type: Transform + pos: -2.5,31.5 + parent: 1 + - uid: 936 + components: + - type: Transform + pos: -3.5,31.5 + parent: 1 + - uid: 937 + components: + - type: Transform + pos: -4.5,31.5 + parent: 1 + - uid: 938 + components: + - type: Transform + pos: -5.5,31.5 + parent: 1 + - uid: 939 + components: + - type: Transform + pos: -6.5,31.5 + parent: 1 + - uid: 940 + components: + - type: Transform + pos: -7.5,31.5 + parent: 1 + - uid: 942 + components: + - type: Transform + pos: -9.5,31.5 + parent: 1 + - uid: 943 + components: + - type: Transform + pos: -10.5,31.5 + parent: 1 + - uid: 944 + components: + - type: Transform + pos: -8.5,31.5 + parent: 1 + - uid: 959 + components: + - type: Transform + pos: 10.5,38.5 + parent: 1 + - uid: 965 + components: + - type: Transform + pos: -2.5,27.5 + parent: 1 + - uid: 971 + components: + - type: Transform + pos: 9.5,-6.5 + parent: 1 + - uid: 978 + components: + - type: Transform + pos: 25.5,21.5 + parent: 1 + - uid: 988 + components: + - type: Transform + pos: -24.5,36.5 + parent: 1 + - uid: 990 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,24.5 + parent: 1 + - uid: 1007 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,34.5 + parent: 1 + - uid: 1016 + components: + - type: Transform + pos: 4.5,14.5 + parent: 1 + - uid: 1017 + components: + - type: Transform + pos: -19.5,36.5 + parent: 1 + - uid: 1037 + components: + - type: Transform + pos: 9.5,1.5 + parent: 1 + - uid: 1041 + components: + - type: Transform + pos: -19.5,30.5 + parent: 1 + - uid: 1051 + components: + - type: Transform + pos: 15.5,2.5 + parent: 1 + - uid: 1054 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,24.5 + parent: 1 + - uid: 1055 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,24.5 + parent: 1 + - uid: 1080 + components: + - type: Transform + pos: 14.5,29.5 + parent: 1 + - uid: 1081 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,34.5 + parent: 1 + - uid: 1082 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,57.5 + parent: 1 + - uid: 1085 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,31.5 + parent: 1 + - uid: 1087 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,36.5 + parent: 1 + - uid: 1088 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,36.5 + parent: 1 + - uid: 1092 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 9.5,30.5 + parent: 1 + - uid: 1093 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,31.5 + parent: 1 + - uid: 1097 + components: + - type: Transform + pos: -22.5,28.5 + parent: 1 + - uid: 1106 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,25.5 + parent: 1 + - uid: 1108 + components: + - type: Transform + pos: -21.5,36.5 + parent: 1 + - uid: 1112 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,30.5 + parent: 1 + - uid: 1113 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,35.5 + parent: 1 + - uid: 1116 + components: + - type: Transform + pos: -19.5,24.5 + parent: 1 + - uid: 1121 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,24.5 + parent: 1 + - uid: 1132 + components: + - type: Transform + pos: 15.5,-6.5 + parent: 1 + - uid: 1133 + components: + - type: Transform + pos: 29.5,21.5 + parent: 1 + - uid: 1134 + components: + - type: Transform + pos: -17.5,3.5 + parent: 1 + - uid: 1141 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,36.5 + parent: 1 + - uid: 1142 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,35.5 + parent: 1 + - uid: 1153 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 10.5,33.5 + parent: 1 + - uid: 1164 + components: + - type: Transform + pos: -21.5,43.5 + parent: 1 + - uid: 1195 + components: + - type: Transform + pos: -16.5,22.5 + parent: 1 + - uid: 1225 + components: + - type: Transform + pos: -17.5,30.5 + parent: 1 + - uid: 1227 + components: + - type: Transform + pos: -23.5,42.5 + parent: 1 + - uid: 1233 + components: + - type: Transform + pos: -18.5,30.5 + parent: 1 + - uid: 1244 + components: + - type: Transform + pos: 6.5,14.5 + parent: 1 + - uid: 1245 + components: + - type: Transform + pos: -21.5,24.5 + parent: 1 + - uid: 1246 + components: + - type: Transform + pos: -22.5,36.5 + parent: 1 + - uid: 1247 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 5.5,36.5 + parent: 1 + - uid: 1248 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 6.5,36.5 + parent: 1 + - uid: 1250 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,30.5 + parent: 1 + - uid: 1255 + components: + - type: Transform + pos: 14.5,-3.5 + parent: 1 + - uid: 1258 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,34.5 + parent: 1 + - uid: 1262 + components: + - type: Transform + pos: -23.5,36.5 + parent: 1 + - uid: 1263 + components: + - type: Transform + pos: -18.5,24.5 + parent: 1 + - uid: 1266 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,34.5 + parent: 1 + - uid: 1277 + components: + - type: Transform + pos: 16.5,35.5 + parent: 1 + - uid: 1283 + components: + - type: Transform + pos: 15.5,36.5 + parent: 1 + - uid: 1285 + components: + - type: Transform + pos: -19.5,38.5 + parent: 1 + - uid: 1286 + components: + - type: Transform + pos: -23.5,43.5 + parent: 1 + - uid: 1317 + components: + - type: Transform + pos: 15.5,0.5 + parent: 1 + - uid: 1320 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,39.5 + parent: 1 + - uid: 1321 + components: + - type: Transform + pos: -26.5,43.5 + parent: 1 + - uid: 1323 + components: + - type: Transform + pos: -27.5,38.5 + parent: 1 + - uid: 1324 + components: + - type: Transform + pos: -25.5,38.5 + parent: 1 + - uid: 1338 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,10.5 + parent: 1 + - uid: 1382 + components: + - type: Transform + pos: -27.5,42.5 + parent: 1 + - uid: 1385 + components: + - type: Transform + pos: 11.5,-6.5 + parent: 1 + - uid: 1425 + components: + - type: Transform + pos: 24.5,21.5 + parent: 1 + - uid: 1441 + components: + - type: Transform + pos: 11.5,-3.5 + parent: 1 + - uid: 1446 + components: + - type: Transform + pos: 19.5,38.5 + parent: 1 + - uid: 1468 + components: + - type: Transform + pos: 9.5,3.5 + parent: 1 + - uid: 1487 + components: + - type: Transform + pos: 11.5,38.5 + parent: 1 + - uid: 1490 + components: + - type: Transform + pos: 9.5,0.5 + parent: 1 + - uid: 1494 + components: + - type: Transform + pos: 15.5,-3.5 + parent: 1 + - uid: 1514 + components: + - type: Transform + pos: 18.5,-4.5 + parent: 1 + - uid: 1515 + components: + - type: Transform + pos: -35.5,4.5 + parent: 1 + - uid: 1535 + components: + - type: Transform + pos: 4.5,38.5 + parent: 1 + - uid: 1548 + components: + - type: Transform + pos: -17.5,1.5 + parent: 1 + - uid: 1558 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,0.5 + parent: 1 + - uid: 1605 + components: + - type: Transform + pos: 9.5,-3.5 + parent: 1 + - uid: 1641 + components: + - type: Transform + pos: 4.5,49.5 + parent: 1 + - uid: 1644 + components: + - type: Transform + pos: 9.5,-0.5 + parent: 1 + - uid: 1662 + components: + - type: Transform + pos: 8.5,38.5 + parent: 1 + - uid: 1673 + components: + - type: Transform + pos: 12.5,-3.5 + parent: 1 + - uid: 1694 + components: + - type: Transform + pos: 12.5,36.5 + parent: 1 + - uid: 1695 + components: + - type: Transform + pos: 6.5,39.5 + parent: 1 + - uid: 1696 + components: + - type: Transform + pos: 7.5,38.5 + parent: 1 + - uid: 1700 + components: + - type: Transform + pos: 18.5,-6.5 + parent: 1 + - uid: 1712 + components: + - type: Transform + pos: -17.5,-0.5 + parent: 1 + - uid: 1718 + components: + - type: Transform + pos: -16.5,4.5 + parent: 1 + - uid: 1743 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,10.5 + parent: 1 + - uid: 1770 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,5.5 + parent: 1 + - uid: 1779 + components: + - type: Transform + pos: 15.5,1.5 + parent: 1 + - uid: 1780 + components: + - type: Transform + pos: 10.5,-3.5 + parent: 1 + - uid: 1787 + components: + - type: Transform + pos: -17.5,-1.5 + parent: 1 + - uid: 1794 + components: + - type: Transform + pos: 17.5,38.5 + parent: 1 + - uid: 1795 + components: + - type: Transform + pos: 22.5,22.5 + parent: 1 + - uid: 1796 + components: + - type: Transform + pos: 22.5,21.5 + parent: 1 + - uid: 1862 + components: + - type: Transform + pos: 4.5,60.5 + parent: 1 + - uid: 1870 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,5.5 + parent: 1 + - uid: 1874 + components: + - type: Transform + pos: 23.5,21.5 + parent: 1 + - uid: 1909 + components: + - type: Transform + pos: 12.5,38.5 + parent: 1 + - uid: 1922 + components: + - type: Transform + pos: 13.5,36.5 + parent: 1 + - uid: 1925 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,10.5 + parent: 1 + - uid: 1927 + components: + - type: Transform + pos: -35.5,6.5 + parent: 1 + - uid: 1928 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,0.5 + parent: 1 + - uid: 1929 + components: + - type: Transform + pos: 7.5,-6.5 + parent: 1 + - uid: 1934 + components: + - type: Transform + pos: 18.5,0.5 + parent: 1 + - uid: 1936 + components: + - type: Transform + pos: -31.5,2.5 + parent: 1 + - uid: 1963 + components: + - type: Transform + pos: 8.5,0.5 + parent: 1 + - uid: 1969 + components: + - type: Transform + pos: 12.5,-6.5 + parent: 1 + - uid: 2005 + components: + - type: Transform + pos: 21.5,7.5 + parent: 1 + - uid: 2006 + components: + - type: Transform + pos: 18.5,-5.5 + parent: 1 + - uid: 2028 + components: + - type: Transform + pos: 30.5,15.5 + parent: 1 + - uid: 2054 + components: + - type: Transform + pos: 4.5,50.5 + parent: 1 + - uid: 2058 + components: + - type: Transform + pos: -35.5,10.5 + parent: 1 + - uid: 2059 + components: + - type: Transform + pos: -35.5,9.5 + parent: 1 + - uid: 2064 + components: + - type: Transform + pos: 15.5,3.5 + parent: 1 + - uid: 2065 + components: + - type: Transform + pos: 9.5,-2.5 + parent: 1 + - uid: 2074 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,5.5 + parent: 1 + - uid: 2081 + components: + - type: Transform + pos: -35.5,11.5 + parent: 1 + - uid: 2128 + components: + - type: Transform + pos: 14.5,-6.5 + parent: 1 + - uid: 2153 + components: + - type: Transform + pos: 19.5,3.5 + parent: 1 + - uid: 2154 + components: + - type: Transform + pos: 19.5,4.5 + parent: 1 + - uid: 2156 + components: + - type: Transform + pos: 19.5,6.5 + parent: 1 + - uid: 2157 + components: + - type: Transform + pos: 19.5,7.5 + parent: 1 + - uid: 2158 + components: + - type: Transform + pos: 20.5,7.5 + parent: 1 + - uid: 2161 + components: + - type: Transform + pos: 25.5,7.5 + parent: 1 + - uid: 2164 + components: + - type: Transform + pos: -12.5,1.5 + parent: 1 + - uid: 2165 + components: + - type: Transform + pos: -12.5,2.5 + parent: 1 + - uid: 2166 + components: + - type: Transform + pos: -12.5,3.5 + parent: 1 + - uid: 2168 + components: + - type: Transform + pos: 22.5,23.5 + parent: 1 + - uid: 2186 + components: + - type: Transform + pos: 19.5,2.5 + parent: 1 + - uid: 2187 + components: + - type: Transform + pos: 19.5,1.5 + parent: 1 + - uid: 2188 + components: + - type: Transform + pos: 18.5,-2.5 + parent: 1 + - uid: 2189 + components: + - type: Transform + pos: 18.5,1.5 + parent: 1 + - uid: 2199 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,10.5 + parent: 1 + - uid: 2229 + components: + - type: Transform + pos: -18.5,-1.5 + parent: 1 + - uid: 2232 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,0.5 + parent: 1 + - uid: 2244 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 14.5,38.5 + parent: 1 + - uid: 2266 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,0.5 + parent: 1 + - uid: 2268 + components: + - type: Transform + pos: 16.5,66.5 + parent: 1 + - uid: 2335 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,46.5 + parent: 1 + - uid: 2354 + components: + - type: Transform + pos: 4.5,63.5 + parent: 1 + - uid: 2360 + components: + - type: Transform + pos: 26.5,57.5 + parent: 1 + - uid: 2422 + components: + - type: Transform + pos: 17.5,59.5 + parent: 1 + - uid: 2470 + components: + - type: Transform + pos: 24.5,39.5 + parent: 1 + - uid: 2479 + components: + - type: Transform + pos: 15.5,-7.5 + parent: 1 + - uid: 2483 + components: + - type: Transform + pos: 16.5,64.5 + parent: 1 + - uid: 2493 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,2.5 + parent: 1 + - uid: 2531 + components: + - type: Transform + pos: 10.5,-8.5 + parent: 1 + - uid: 2553 + components: + - type: Transform + pos: 22.5,38.5 + parent: 1 + - uid: 2585 + components: + - type: Transform + pos: 18.5,38.5 + parent: 1 + - uid: 2632 + components: + - type: Transform + pos: 26.5,56.5 + parent: 1 + - uid: 2645 + components: + - type: Transform + pos: 4.5,62.5 + parent: 1 + - uid: 2698 + components: + - type: Transform + pos: 23.5,58.5 + parent: 1 + - uid: 2699 + components: + - type: Transform + pos: 28.5,39.5 + parent: 1 + - uid: 2702 + components: + - type: Transform + pos: 29.5,7.5 + parent: 1 + - uid: 2751 + components: + - type: Transform + pos: 20.5,58.5 + parent: 1 + - uid: 2818 + components: + - type: Transform + pos: 16.5,63.5 + parent: 1 + - uid: 2826 + components: + - type: Transform + pos: 16.5,59.5 + parent: 1 + - uid: 2918 + components: + - type: Transform + pos: 28.5,7.5 + parent: 1 + - uid: 2928 + components: + - type: Transform + pos: 19.5,58.5 + parent: 1 + - uid: 2994 + components: + - type: Transform + pos: 21.5,38.5 + parent: 1 + - uid: 3001 + components: + - type: Transform + pos: 20.5,20.5 + parent: 1 + - uid: 3002 + components: + - type: Transform + pos: 22.5,25.5 + parent: 1 + - uid: 3041 + components: + - type: Transform + pos: 15.5,-10.5 + parent: 1 + - uid: 3108 + components: + - type: Transform + pos: 20.5,38.5 + parent: 1 + - uid: 3132 + components: + - type: Transform + pos: 4.5,47.5 + parent: 1 + - uid: 3135 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,66.5 + parent: 1 + - uid: 3138 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,46.5 + parent: 1 + - uid: 3150 + components: + - type: Transform + pos: 24.5,58.5 + parent: 1 + - uid: 3152 + components: + - type: Transform + pos: 16.5,65.5 + parent: 1 + - uid: 3158 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.5,46.5 + parent: 1 + - uid: 3222 + components: + - type: Transform + pos: 10.5,-7.5 + parent: 1 + - uid: 3231 + components: + - type: Transform + pos: 4.5,53.5 + parent: 1 + - uid: 3255 + components: + - type: Transform + pos: 16.5,38.5 + parent: 1 + - uid: 3274 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,46.5 + parent: 1 + - uid: 3288 + components: + - type: Transform + pos: 17.5,58.5 + parent: 1 + - uid: 3298 + components: + - type: Transform + pos: 18.5,58.5 + parent: 1 + - uid: 3363 + components: + - type: Transform + pos: 26.5,58.5 + parent: 1 + - uid: 3416 + components: + - type: Transform + pos: 15.5,-8.5 + parent: 1 + - uid: 3434 + components: + - type: Transform + pos: 25.5,39.5 + parent: 1 + - uid: 3451 + components: + - type: Transform + pos: 4.5,64.5 + parent: 1 + - uid: 3477 + components: + - type: Transform + pos: 23.5,38.5 + parent: 1 + - uid: 3498 + components: + - type: Transform + pos: 28.5,4.5 + parent: 1 + - uid: 3520 + components: + - type: Transform + pos: 21.5,58.5 + parent: 1 + - uid: 3524 + components: + - type: Transform + pos: 28.5,6.5 + parent: 1 + - uid: 3546 + components: + - type: Transform + pos: 16.5,60.5 + parent: 1 + - uid: 3547 + components: + - type: Transform + pos: 16.5,61.5 + parent: 1 + - uid: 3555 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,66.5 + parent: 1 + - uid: 3570 + components: + - type: Transform + pos: 4.5,61.5 + parent: 1 + - uid: 3633 + components: + - type: Transform + pos: 27.5,39.5 + parent: 1 + - uid: 3650 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -24.5,46.5 + parent: 1 + - uid: 3651 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,46.5 + parent: 1 + - uid: 3682 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,46.5 + parent: 1 + - uid: 3683 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,46.5 + parent: 1 + - uid: 3695 + components: + - type: Transform + pos: 16.5,62.5 + parent: 1 + - uid: 3723 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,46.5 + parent: 1 + - uid: 3724 + components: + - type: Transform + pos: 4.5,56.5 + parent: 1 + - uid: 3743 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,46.5 + parent: 1 + - uid: 3744 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,46.5 + parent: 1 + - uid: 3747 + components: + - type: Transform + pos: 4.5,55.5 + parent: 1 + - uid: 3748 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,46.5 + parent: 1 + - uid: 3750 + components: + - type: Transform + pos: 28.5,5.5 + parent: 1 + - uid: 3751 + components: + - type: Transform + pos: 4.5,51.5 + parent: 1 + - uid: 3752 + components: + - type: Transform + pos: 4.5,52.5 + parent: 1 + - uid: 3761 + components: + - type: Transform + pos: 4.5,57.5 + parent: 1 + - uid: 3762 + components: + - type: Transform + pos: 4.5,59.5 + parent: 1 + - uid: 3769 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,58.5 + parent: 1 + - uid: 3770 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,59.5 + parent: 1 + - uid: 3771 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,65.5 + parent: 1 + - uid: 3773 + components: + - type: Transform + pos: -7.5,53.5 + parent: 1 + - uid: 3778 + components: + - type: Transform + pos: -3.5,56.5 + parent: 1 + - uid: 3779 + components: + - type: Transform + pos: -3.5,55.5 + parent: 1 + - uid: 3786 + components: + - type: Transform + pos: -3.5,54.5 + parent: 1 + - uid: 3787 + components: + - type: Transform + pos: 0.5,54.5 + parent: 1 + - uid: 3788 + components: + - type: Transform + pos: 0.5,51.5 + parent: 1 + - uid: 3789 + components: + - type: Transform + pos: 0.5,53.5 + parent: 1 + - uid: 3800 + components: + - type: Transform + pos: -3.5,53.5 + parent: 1 + - uid: 3801 + components: + - type: Transform + pos: -4.5,53.5 + parent: 1 + - uid: 3824 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,59.5 + parent: 1 + - uid: 3826 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,59.5 + parent: 1 + - uid: 3827 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,59.5 + parent: 1 + - uid: 3828 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,54.5 + parent: 1 + - uid: 3845 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,55.5 + parent: 1 + - uid: 3859 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,57.5 + parent: 1 + - uid: 3884 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,57.5 + parent: 1 + - uid: 3890 + components: + - type: Transform + pos: -6.5,53.5 + parent: 1 + - uid: 3912 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,59.5 + parent: 1 + - uid: 3927 + components: + - type: Transform + pos: -10.5,53.5 + parent: 1 + - uid: 3928 + components: + - type: Transform + pos: -12.5,53.5 + parent: 1 + - uid: 3929 + components: + - type: Transform + pos: -11.5,53.5 + parent: 1 + - uid: 3930 + components: + - type: Transform + pos: -9.5,53.5 + parent: 1 + - uid: 3936 + components: + - type: Transform + pos: -8.5,53.5 + parent: 1 + - uid: 3942 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,66.5 + parent: 1 + - uid: 3947 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,57.5 + parent: 1 + - uid: 3966 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,66.5 + parent: 1 + - uid: 3967 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,65.5 + parent: 1 + - uid: 3972 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,62.5 + parent: 1 + - uid: 3973 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,64.5 + parent: 1 + - uid: 3974 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,63.5 + parent: 1 + - uid: 3975 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,61.5 + parent: 1 + - uid: 3976 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,60.5 + parent: 1 + - uid: 3977 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,59.5 + parent: 1 + - uid: 3985 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,66.5 + parent: 1 + - uid: 4011 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,56.5 + parent: 1 + - uid: 4016 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,66.5 + parent: 1 + - uid: 4017 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,66.5 + parent: 1 + - uid: 4022 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,59.5 + parent: 1 + - uid: 4041 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,65.5 + parent: 1 + - uid: 4098 + components: + - type: Transform + pos: 21.5,36.5 + parent: 1 + - uid: 4099 + components: + - type: Transform + pos: 17.5,36.5 + parent: 1 + - uid: 4164 + components: + - type: Transform + pos: 26.5,29.5 + parent: 1 + - uid: 4165 + components: + - type: Transform + pos: 19.5,36.5 + parent: 1 + - uid: 4175 + components: + - type: Transform + pos: 26.5,1.5 + parent: 1 + - uid: 4189 + components: + - type: Transform + pos: 28.5,29.5 + parent: 1 + - uid: 4193 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,-5.5 + parent: 1 + - uid: 4215 + components: + - type: Transform + pos: 21.5,1.5 + parent: 1 + - uid: 4312 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,60.5 + parent: 1 + - uid: 4314 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,-1.5 + parent: 1 + - uid: 4323 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,22.5 + parent: 1 + - uid: 4324 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,22.5 + parent: 1 + - uid: 4326 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,-1.5 + parent: 1 + - uid: 4343 + components: + - type: Transform + pos: 29.5,31.5 + parent: 1 + - uid: 4361 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,24.5 + parent: 1 + - uid: 4362 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,24.5 + parent: 1 + - uid: 4426 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,43.5 + parent: 1 + - uid: 4427 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,43.5 + parent: 1 + - uid: 4428 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,43.5 + parent: 1 + - uid: 4429 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,39.5 + parent: 1 + - uid: 4430 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,39.5 + parent: 1 + - uid: 4431 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,39.5 + parent: 1 + - uid: 4433 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,42.5 + parent: 1 + - uid: 4434 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,40.5 + parent: 1 + - uid: 4438 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,-2.5 + parent: 1 + - uid: 4454 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 21.5,-4.5 + parent: 1 + - uid: 4469 + components: + - type: Transform + pos: 26.5,61.5 + parent: 1 + - uid: 4473 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 22.5,24.5 + parent: 1 + - uid: 4476 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,20.5 + parent: 1 + - uid: 4500 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,37.5 + parent: 1 + - uid: 4501 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 24.5,36.5 + parent: 1 + - uid: 4502 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 25.5,36.5 + parent: 1 + - uid: 4503 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,36.5 + parent: 1 + - uid: 4504 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 27.5,36.5 + parent: 1 + - uid: 4505 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 28.5,36.5 + parent: 1 + - uid: 4636 + components: + - type: Transform + pos: 30.5,24.5 + parent: 1 + - uid: 4642 + components: + - type: Transform + pos: 22.5,1.5 + parent: 1 + - uid: 4663 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,61.5 + parent: 1 + - uid: 4664 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,63.5 + parent: 1 + - uid: 4665 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,63.5 + parent: 1 + - uid: 4666 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,63.5 + parent: 1 + - uid: 4667 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,63.5 + parent: 1 + - uid: 4687 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,22.5 + parent: 1 + - uid: 4688 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,23.5 + parent: 1 + - uid: 4689 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 26.5,24.5 + parent: 1 + - uid: 4735 + components: + - type: Transform + pos: 22.5,20.5 + parent: 1 + - uid: 4736 + components: + - type: Transform + pos: 21.5,20.5 + parent: 1 + - uid: 4854 + components: + - type: Transform + pos: 24.5,32.5 + parent: 1 + - uid: 4859 + components: + - type: Transform + pos: -6.5,63.5 + parent: 1 + - uid: 4865 + components: + - type: Transform + pos: 29.5,29.5 + parent: 1 + - uid: 4891 + components: + - type: Transform + pos: 20.5,-5.5 + parent: 1 + - uid: 5122 + components: + - type: Transform + pos: -6.5,64.5 + parent: 1 + - uid: 5297 + components: + - type: Transform + pos: 29.5,30.5 + parent: 1 + - uid: 5351 + components: + - type: Transform + pos: 22.5,32.5 + parent: 1 + - uid: 5353 + components: + - type: Transform + pos: -7.5,63.5 + parent: 1 + - uid: 5382 + components: + - type: Transform + pos: 18.5,36.5 + parent: 1 + - uid: 5389 + components: + - type: Transform + pos: -6.5,65.5 + parent: 1 + - uid: 5468 + components: + - type: Transform + pos: 22.5,36.5 + parent: 1 + - uid: 5477 + components: + - type: Transform + pos: 24.5,33.5 + parent: 1 + - uid: 5494 + components: + - type: Transform + pos: 27.5,24.5 + parent: 1 + - uid: 5505 + components: + - type: Transform + pos: 25.5,1.5 + parent: 1 + - uid: 5667 + components: + - type: Transform + pos: 23.5,1.5 + parent: 1 + - uid: 5682 + components: + - type: Transform + pos: 26.5,3.5 + parent: 1 + - uid: 5712 + components: + - type: Transform + pos: 26.5,6.5 + parent: 1 + - uid: 5727 + components: + - type: Transform + pos: 20.5,36.5 + parent: 1 + - uid: 5748 + components: + - type: Transform + pos: 25.5,29.5 + parent: 1 + - uid: 5777 + components: + - type: Transform + pos: 26.5,62.5 + parent: 1 + - uid: 5782 + components: + - type: Transform + pos: 22.5,35.5 + parent: 1 + - uid: 5784 + components: + - type: Transform + pos: 24.5,1.5 + parent: 1 + - uid: 5790 + components: + - type: Transform + pos: 26.5,2.5 + parent: 1 + - uid: 5818 + components: + - type: Transform + pos: 29.5,24.5 + parent: 1 + - uid: 5830 + components: + - type: Transform + pos: 26.5,5.5 + parent: 1 + - uid: 5838 + components: + - type: Transform + pos: 20.5,1.5 + parent: 1 + - uid: 5875 + components: + - type: Transform + pos: 24.5,35.5 + parent: 1 + - uid: 6170 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -25.5,45.5 + parent: 1 +- proto: WallSolidRust + entities: + - uid: 2052 + components: + - type: Transform + pos: 8.5,-6.5 + parent: 1 + - uid: 6023 + components: + - type: Transform + pos: 30.5,30.5 + parent: 1 + - uid: 9822 + components: + - type: Transform + pos: 13.5,22.5 + parent: 1 + - uid: 9823 + components: + - type: Transform + pos: 14.5,22.5 + parent: 1 +- proto: WallWood + entities: + - uid: 3777 + components: + - type: Transform + pos: 3.5,64.5 + parent: 1 + - uid: 3850 + components: + - type: Transform + pos: 3.5,60.5 + parent: 1 + - uid: 3851 + components: + - type: Transform + pos: 2.5,60.5 + parent: 1 + - uid: 3852 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,60.5 + parent: 1 + - uid: 3853 + components: + - type: Transform + pos: -2.5,62.5 + parent: 1 + - uid: 3854 + components: + - type: Transform + pos: -2.5,61.5 + parent: 1 + - uid: 3855 + components: + - type: Transform + pos: -2.5,60.5 + parent: 1 + - uid: 3856 + components: + - type: Transform + pos: -1.5,64.5 + parent: 1 + - uid: 3880 + components: + - type: Transform + pos: 0.5,60.5 + parent: 1 + - uid: 3881 + components: + - type: Transform + pos: 1.5,60.5 + parent: 1 + - uid: 3882 + components: + - type: Transform + pos: -0.5,60.5 + parent: 1 + - uid: 3893 + components: + - type: Transform + pos: -2.5,63.5 + parent: 1 + - uid: 3894 + components: + - type: Transform + pos: -2.5,64.5 + parent: 1 +- proto: WardrobePrisonFilled + entities: + - uid: 52 + components: + - type: Transform + pos: -28.5,16.5 + parent: 1 + - uid: 342 + components: + - type: Transform + pos: -28.5,13.5 + parent: 1 + - uid: 1827 + components: + - type: Transform + pos: -28.5,19.5 + parent: 1 + - uid: 4994 + components: + - type: Transform + pos: -44.5,-3.5 + parent: 1 + - uid: 4995 + components: + - type: Transform + pos: -40.5,-3.5 + parent: 1 +- proto: WarningCO2 + entities: + - uid: 4200 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,-17.5 + parent: 1 + - uid: 12628 + components: + - type: Transform + pos: -3.5,-21.5 + parent: 1 +- proto: WarningN2 + entities: + - uid: 4217 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-17.5 + parent: 1 + - uid: 12629 + components: + - type: Transform + pos: -5.5,-21.5 + parent: 1 +- proto: WarningN2O + entities: + - uid: 5664 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 2.5,-17.5 + parent: 1 + - uid: 12625 + components: + - type: Transform + pos: 2.5,-21.5 + parent: 1 +- proto: WarningO2 + entities: + - uid: 4515 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-17.5 + parent: 1 + - uid: 12630 + components: + - type: Transform + pos: -7.5,-21.5 + parent: 1 +- proto: WarningPlasma + entities: + - uid: 5703 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,-17.5 + parent: 1 + - uid: 12626 + components: + - type: Transform + pos: 0.5,-21.5 + parent: 1 +- proto: WarningWaste + entities: + - uid: 14914 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-21.5 + parent: 1 + - uid: 14915 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,-17.5 + parent: 1 +- proto: WaterCooler + entities: + - uid: 1407 + components: + - type: Transform + pos: 8.5,17.5 + parent: 1 + - uid: 2357 + components: + - type: Transform + pos: 2.5,8.5 + parent: 1 + - uid: 3097 + components: + - type: Transform + pos: -22.5,-5.5 + parent: 1 + - uid: 4271 + components: + - type: Transform + pos: 23.5,52.5 + parent: 1 + - uid: 4880 + components: + - type: Transform + pos: -13.5,13.5 + parent: 1 + - uid: 5058 + components: + - type: Transform + pos: 15.5,44.5 + parent: 1 + - uid: 5357 + components: + - type: Transform + pos: -23.5,20.5 + parent: 1 +- proto: WaterTank + entities: + - uid: 5990 + components: + - type: Transform + pos: 20.5,-4.5 + parent: 1 +- proto: WaterTankFull + entities: + - uid: 1552 + components: + - type: Transform + pos: 20.5,44.5 + parent: 1 + - uid: 4581 + components: + - type: Transform + pos: 19.5,25.5 + parent: 1 + - uid: 4760 + components: + - type: Transform + pos: -1.5,-9.5 + parent: 1 + - uid: 5572 + components: + - type: Transform + pos: 29.5,8.5 + parent: 1 + - uid: 5961 + components: + - type: Transform + pos: 24.5,20.5 + parent: 1 + - uid: 5982 + components: + - type: Transform + pos: -18.5,22.5 + parent: 1 + - uid: 5989 + components: + - type: Transform + pos: -18.5,-0.5 + parent: 1 + - uid: 6062 + components: + - type: Transform + pos: 23.5,32.5 + parent: 1 + - uid: 6115 + components: + - type: Transform + pos: -3.5,62.5 + parent: 1 + - uid: 6332 + components: + - type: Transform + pos: -32.5,45.5 + parent: 1 +- proto: WaterTankHighCapacity + entities: + - uid: 1126 + components: + - type: Transform + pos: 10.5,25.5 + parent: 1 +- proto: WaterVaporCanister + entities: + - uid: 3509 + components: + - type: Transform + anchored: True + pos: -2.5,-20.5 + parent: 1 + - type: Physics + angularDamping: 0 + linearDamping: 0 + bodyType: Static + - uid: 14910 + components: + - type: Transform + pos: -9.5,-30.5 + parent: 1 +- proto: WeaponCapacitorRecharger + entities: + - uid: 43 + components: + - type: Transform + pos: -17.5,16.5 + parent: 1 + - uid: 835 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,4.5 + parent: 1 + - uid: 1805 + components: + - type: Transform + pos: -18.5,7.5 + parent: 1 + - uid: 2084 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -28.5,11.5 + parent: 1 +- proto: WeaponDisabler + entities: + - uid: 973 + components: + - type: Transform + pos: -17.679932,12.51565 + parent: 1 + - uid: 992 + components: + - type: Transform + pos: -17.569857,12.662417 + parent: 1 +- proto: WeaponDisablerPractice + entities: + - uid: 5062 + components: + - type: Transform + pos: 21.53283,-8.39837 + parent: 1 +- proto: WeaponLaserCarbine + entities: + - uid: 1938 + components: + - type: Transform + pos: -22.47486,3.315974 + parent: 1 + - uid: 1976 + components: + - type: Transform + pos: -22.493204,3.627854 + parent: 1 + - uid: 2139 + components: + - type: Transform + pos: -22.456512,3.481087 + parent: 1 +- proto: WeaponLaserCarbinePractice + entities: + - uid: 6291 + components: + - type: Transform + pos: 20.666061,-8.361678 + parent: 1 +- proto: WeaponRevolverDeckard + entities: + - uid: 1561 + components: + - type: Transform + parent: 1560 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: WeaponRevolverInspector + entities: + - uid: 817 + components: + - type: Transform + parent: 129 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: WeaponShotgunImprovised + entities: + - uid: 6055 + components: + - type: Transform + pos: 9.443394,59.504414 + parent: 1 +- proto: WeaponShotgunKammerer + entities: + - uid: 1781 + components: + - type: Transform + pos: -23.447191,3.5728164 + parent: 1 + - uid: 1985 + components: + - type: Transform + pos: -23.465538,3.3343198 + parent: 1 +- proto: WeaponTurretSyndicateBroken + entities: + - uid: 5239 + components: + - type: Transform + pos: 45.5,9.5 + parent: 1 + - uid: 5240 + components: + - type: Transform + pos: 48.5,10.5 + parent: 1 + - uid: 5241 + components: + - type: Transform + pos: 48.5,13.5 + parent: 1 + - uid: 5242 + components: + - type: Transform + pos: 45.5,14.5 + parent: 1 + - uid: 6215 + components: + - type: Transform + pos: 18.5,-7.5 + parent: 1 +- proto: WeaponWaterBlaster + entities: + - uid: 9462 + components: + - type: Transform + pos: -38.541298,-0.56289303 + parent: 1 +- proto: WelderIndustrialAdvanced + entities: + - uid: 13495 + components: + - type: Transform + pos: -12.2903185,-8.491906 + parent: 1 +- proto: WeldingFuelTankFull + entities: + - uid: 2993 + components: + - type: Transform + pos: -2.5,-9.5 + parent: 1 + - uid: 2998 + components: + - type: Transform + pos: -24.5,-6.5 + parent: 1 + - uid: 5884 + components: + - type: Transform + pos: 28.5,8.5 + parent: 1 + - uid: 5960 + components: + - type: Transform + pos: 23.5,20.5 + parent: 1 + - uid: 5981 + components: + - type: Transform + pos: -17.5,22.5 + parent: 1 + - uid: 6116 + components: + - type: Transform + pos: -3.5,61.5 + parent: 1 + - uid: 6138 + components: + - type: Transform + pos: 20.5,-3.5 + parent: 1 + - uid: 6145 + components: + - type: Transform + pos: -19.5,-0.5 + parent: 1 + - uid: 6202 + components: + - type: Transform + pos: 23.5,33.5 + parent: 1 + - uid: 6333 + components: + - type: Transform + pos: -31.5,45.5 + parent: 1 +- proto: WetFloorSign + entities: + - uid: 10358 + components: + - type: Transform + pos: 3.7433653,44.510227 + parent: 1 + - uid: 10361 + components: + - type: Transform + pos: -11.057247,24.542654 + parent: 1 +- proto: WheatSeeds + entities: + - uid: 2348 + components: + - type: Transform + pos: -50.339943,-6.667419 + parent: 1 + - uid: 2829 + components: + - type: Transform + pos: -50.339943,-6.667419 + parent: 1 +- proto: WhoopieCushion + entities: + - uid: 6216 + components: + - type: Transform + pos: -39.67874,-0.4528178 + parent: 1 +- proto: Windoor + entities: + - uid: 666 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,33.5 + parent: 1 + - uid: 668 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,32.5 + parent: 1 + - uid: 748 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,33.5 + parent: 1 + - uid: 1167 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,28.5 + parent: 1 + - uid: 1168 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,27.5 + parent: 1 + - uid: 1170 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,34.5 + parent: 1 + - uid: 1222 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,18.5 + parent: 1 + - uid: 1384 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,19.5 + parent: 1 + - uid: 1679 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,15.5 + parent: 1 + - uid: 1734 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,14.5 + parent: 1 + - uid: 2308 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-3.5 + parent: 1 + - uid: 2556 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-4.5 + parent: 1 + - uid: 2696 + components: + - type: Transform + pos: 12.5,48.5 + parent: 1 + - uid: 2732 + components: + - type: Transform + pos: 13.5,48.5 + parent: 1 + - uid: 2770 + components: + - type: Transform + pos: 7.5,43.5 + parent: 1 + - uid: 2799 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 16.5,42.5 + parent: 1 + - uid: 2913 + components: + - type: Transform + pos: 11.5,48.5 + parent: 1 + - uid: 3464 + components: + - type: Transform + pos: 6.5,43.5 + parent: 1 + - uid: 3586 + components: + - type: Transform + pos: 8.5,43.5 + parent: 1 + - uid: 4356 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,8.5 + parent: 1 + - uid: 4683 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 38.5,15.5 + parent: 1 +- proto: WindoorBarLocked + entities: + - uid: 920 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,30.5 + parent: 1 +- proto: WindoorCargoLocked + entities: + - uid: 764 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,31.5 + parent: 1 +- proto: WindoorHydroponicsLocked + entities: + - uid: 260 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,27.5 + parent: 1 + - uid: 261 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,28.5 + parent: 1 +- proto: WindoorKitchenHydroponicsLocked + entities: + - uid: 864 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,30.5 + parent: 1 +- proto: WindoorKitchenLocked + entities: + - uid: 153 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,34.5 + parent: 1 + - uid: 1008 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 4.5,33.5 + parent: 1 +- proto: WindoorSecure + entities: + - uid: 1059 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,16.5 + parent: 1 + - uid: 1125 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,16.5 + parent: 1 + - uid: 1293 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,14.5 + parent: 1 + - uid: 5441 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,64.5 + parent: 1 + - uid: 5839 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,58.5 + parent: 1 + - uid: 6219 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,63.5 + parent: 1 + - uid: 15317 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -52.5,-13.5 + parent: 1 + - uid: 15318 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -52.5,-12.5 + parent: 1 +- proto: WindoorSecureArmoryLocked + entities: + - uid: 1489 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,4.5 + parent: 1 + - uid: 1647 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,3.5 + parent: 1 + - uid: 1740 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,14.5 + parent: 1 + - uid: 1778 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -28.5,9.5 + parent: 1 + - uid: 1910 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,15.5 + parent: 1 + - uid: 2178 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,3.5 + parent: 1 + - uid: 2179 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,4.5 + parent: 1 + - uid: 2233 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -25.5,5.5 + parent: 1 + - uid: 2234 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,3.5 + parent: 1 + - uid: 2235 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -21.5,5.5 + parent: 1 +- proto: WindoorSecureAtmosphericsLocked + entities: + - uid: 719 + components: + - type: Transform + pos: -5.5,-5.5 + parent: 1 + - uid: 825 + components: + - type: Transform + pos: -7.5,-5.5 + parent: 1 + - uid: 1203 + components: + - type: Transform + pos: -6.5,-5.5 + parent: 1 +- proto: WindoorSecureCargoLocked + entities: + - uid: 656 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,32.5 + parent: 1 + - uid: 1261 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,33.5 + parent: 1 +- proto: WindoorSecureChemistryLocked + entities: + - uid: 3042 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 16.5,42.5 + parent: 1 +- proto: WindoorSecureCommandLocked + entities: + - uid: 343 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-4.5 + parent: 1 + - uid: 1815 + components: + - type: Transform + pos: 25.5,16.5 + parent: 1 + - uid: 3578 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,43.5 + parent: 1 + - uid: 3674 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,53.5 + parent: 1 + - uid: 5078 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,12.5 + parent: 1 + - uid: 5234 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 44.5,11.5 + parent: 1 + - uid: 15483 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 36.5,10.5 + parent: 1 + - uid: 15484 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 37.5,10.5 + parent: 1 + - uid: 15485 + components: + - type: Transform + pos: 36.5,13.5 + parent: 1 + - uid: 15486 + components: + - type: Transform + pos: 37.5,13.5 + parent: 1 +- proto: WindoorSecureEngineeringLocked + entities: + - uid: 2276 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,-4.5 + parent: 1 + - uid: 2864 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,-2.5 + parent: 1 + - uid: 2883 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,-3.5 + parent: 1 + - uid: 3164 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-15.5 + parent: 1 + - uid: 5959 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,59.5 + parent: 1 + - uid: 12922 + components: + - type: Transform + pos: -20.5,-36.5 + parent: 1 + - uid: 12931 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-35.5 + parent: 1 +- proto: WindoorSecureHeadOfPersonnelLocked + entities: + - uid: 202 + components: + - type: Transform + pos: -4.5,14.5 + parent: 1 +- proto: WindoorSecureJanitorLocked + entities: + - uid: 4774 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,22.5 + parent: 1 +- proto: WindoorSecureMedicalLocked + entities: + - uid: 2682 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,62.5 + parent: 1 + - uid: 2880 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,43.5 + parent: 1 + - uid: 3179 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 7.5,43.5 + parent: 1 + - uid: 3452 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,64.5 + parent: 1 + - uid: 4339 + components: + - type: Transform + pos: 24.5,50.5 + parent: 1 + - uid: 4480 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,51.5 + parent: 1 +- proto: WindoorSecureSalvageLocked + entities: + - uid: 3127 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,36.5 + parent: 1 + - uid: 3692 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,37.5 + parent: 1 +- proto: WindoorSecureScienceLocked + entities: + - uid: 274 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,13.5 + parent: 1 + - uid: 703 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 8.5,20.5 + parent: 1 + - uid: 1103 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,18.5 + parent: 1 + - uid: 1268 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 7.5,19.5 + parent: 1 + - uid: 1371 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,12.5 + parent: 1 + - uid: 1428 + components: + - type: Transform + pos: 17.5,19.5 + parent: 1 + - uid: 1429 + components: + - type: Transform + pos: 18.5,19.5 + parent: 1 +- proto: WindoorSecureSecurityLawyerLocked + entities: + - uid: 3916 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,61.5 + parent: 1 + - uid: 3933 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,59.5 + parent: 1 +- proto: WindoorSecureSecurityLocked + entities: + - uid: 76 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,14.5 + parent: 1 + - uid: 2077 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,20.5 + parent: 1 + - uid: 2111 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,17.5 + parent: 1 + - uid: 3370 + components: + - type: Transform + pos: -34.5,17.5 + parent: 1 + - uid: 4355 + components: + - type: Transform + pos: -35.5,-4.5 + parent: 1 +- proto: WindoorServiceLocked + entities: + - uid: 731 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,42.5 + parent: 1 + - uid: 1251 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,41.5 + parent: 1 + - uid: 4141 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,56.5 + parent: 1 + - uid: 4237 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,55.5 + parent: 1 + - uid: 6380 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 24.5,2.5 + parent: 1 +- proto: WindoorTheatreLocked + entities: + - uid: 114 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,21.5 + parent: 1 + - uid: 519 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,21.5 + parent: 1 + - uid: 536 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,21.5 + parent: 1 +- proto: WindowReinforcedDirectional + entities: + - uid: 17 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,25.5 + parent: 1 + - uid: 94 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -6.5,16.5 + parent: 1 + - uid: 95 + components: + - type: Transform + pos: -3.5,18.5 + parent: 1 + - uid: 96 + components: + - type: Transform + pos: -4.5,18.5 + parent: 1 + - uid: 97 + components: + - type: Transform + pos: -5.5,18.5 + parent: 1 + - uid: 98 + components: + - type: Transform + pos: -6.5,18.5 + parent: 1 + - uid: 99 + components: + - type: Transform + pos: -7.5,18.5 + parent: 1 + - uid: 100 + components: + - type: Transform + pos: -8.5,18.5 + parent: 1 + - uid: 101 + components: + - type: Transform + pos: -9.5,18.5 + parent: 1 + - uid: 103 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,18.5 + parent: 1 + - uid: 104 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,19.5 + parent: 1 + - uid: 105 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,20.5 + parent: 1 + - uid: 149 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,11.5 + parent: 1 + - uid: 245 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,21.5 + parent: 1 + - uid: 246 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,21.5 + parent: 1 + - uid: 253 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.5,10.5 + parent: 1 + - uid: 258 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,33.5 + parent: 1 + - uid: 263 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,21.5 + parent: 1 + - uid: 275 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,15.5 + parent: 1 + - uid: 295 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,13.5 + parent: 1 + - uid: 308 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.5,25.5 + parent: 1 + - uid: 349 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,8.5 + parent: 1 + - uid: 371 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,6.5 + parent: 1 + - uid: 427 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,18.5 + parent: 1 + - uid: 428 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,14.5 + parent: 1 + - uid: 433 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,5.5 + parent: 1 + - uid: 453 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,-3.5 + parent: 1 + - uid: 454 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,21.5 + parent: 1 + - uid: 466 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,58.5 + parent: 1 + - uid: 482 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -2.5,21.5 + parent: 1 + - uid: 554 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,22.5 + parent: 1 + - uid: 580 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,21.5 + parent: 1 + - uid: 626 + components: + - type: Transform + pos: -5.5,16.5 + parent: 1 + - uid: 644 + components: + - type: Transform + pos: -4.5,56.5 + parent: 1 + - uid: 663 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,5.5 + parent: 1 + - uid: 699 + components: + - type: Transform + pos: -7.5,16.5 + parent: 1 + - uid: 751 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,60.5 + parent: 1 + - uid: 752 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,19.5 + parent: 1 + - uid: 755 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,20.5 + parent: 1 + - uid: 757 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,16.5 + parent: 1 + - uid: 762 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,16.5 + parent: 1 + - uid: 766 + components: + - type: Transform + pos: -4.5,16.5 + parent: 1 + - uid: 767 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,16.5 + parent: 1 + - uid: 774 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,22.5 + parent: 1 + - uid: 822 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,-3.5 + parent: 1 + - uid: 827 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,12.5 + parent: 1 + - uid: 834 + components: + - type: Transform + pos: -2.5,18.5 + parent: 1 + - uid: 863 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -18.5,34.5 + parent: 1 + - uid: 877 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-5.5 + parent: 1 + - uid: 901 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,21.5 + parent: 1 + - uid: 979 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,65.5 + parent: 1 + - uid: 1030 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,29.5 + parent: 1 + - uid: 1031 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,28.5 + parent: 1 + - uid: 1032 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,27.5 + parent: 1 + - uid: 1033 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,26.5 + parent: 1 + - uid: 1034 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 13.5,25.5 + parent: 1 + - uid: 1050 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,30.5 + parent: 1 + - uid: 1117 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,21.5 + parent: 1 + - uid: 1139 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,25.5 + parent: 1 + - uid: 1143 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-3.5 + parent: 1 + - uid: 1171 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,35.5 + parent: 1 + - uid: 1172 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,29.5 + parent: 1 + - uid: 1213 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,29.5 + parent: 1 + - uid: 1298 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,34.5 + parent: 1 + - uid: 1356 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,16.5 + parent: 1 + - uid: 1359 + components: + - type: Transform + pos: -6.5,16.5 + parent: 1 + - uid: 1361 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,16.5 + parent: 1 + - uid: 1364 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,8.5 + parent: 1 + - uid: 1372 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,10.5 + parent: 1 + - uid: 1400 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,64.5 + parent: 1 + - uid: 1411 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-8.5 + parent: 1 + - uid: 1418 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,59.5 + parent: 1 + - uid: 1423 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 10.5,9.5 + parent: 1 + - uid: 1447 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,64.5 + parent: 1 + - uid: 1448 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,60.5 + parent: 1 + - uid: 1452 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,57.5 + parent: 1 + - uid: 1500 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 11.5,11.5 + parent: 1 + - uid: 1617 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,13.5 + parent: 1 + - uid: 1638 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,-3.5 + parent: 1 + - uid: 1923 + components: + - type: Transform + pos: 24.5,16.5 + parent: 1 + - uid: 1924 + components: + - type: Transform + pos: 26.5,16.5 + parent: 1 + - uid: 1978 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,9.5 + parent: 1 + - uid: 1979 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,8.5 + parent: 1 + - uid: 1980 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,7.5 + parent: 1 + - uid: 2034 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -22.5,14.5 + parent: 1 + - uid: 2035 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,14.5 + parent: 1 + - uid: 2049 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,13.5 + parent: 1 + - uid: 2050 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,12.5 + parent: 1 + - uid: 2051 + components: + - type: Transform + pos: -22.5,11.5 + parent: 1 + - uid: 2053 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -22.5,11.5 + parent: 1 + - uid: 2248 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,-4.5 + parent: 1 + - uid: 2286 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,64.5 + parent: 1 + - uid: 2347 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 12.5,-9.5 + parent: 1 + - uid: 2471 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -33.5,18.5 + parent: 1 + - uid: 2612 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 25.5,42.5 + parent: 1 + - uid: 2635 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,57.5 + parent: 1 + - uid: 2671 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,7.5 + parent: 1 + - uid: 2788 + components: + - type: Transform + pos: 2.5,2.5 + parent: 1 + - uid: 2790 + components: + - type: Transform + pos: 12.5,51.5 + parent: 1 + - uid: 3051 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,-12.5 + parent: 1 + - uid: 3115 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,-12.5 + parent: 1 + - uid: 3134 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,-6.5 + parent: 1 + - uid: 3160 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-12.5 + parent: 1 + - uid: 3175 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,51.5 + parent: 1 + - uid: 3178 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,51.5 + parent: 1 + - uid: 3210 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,52.5 + parent: 1 + - uid: 3235 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,57.5 + parent: 1 + - uid: 3247 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,46.5 + parent: 1 + - uid: 3269 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,59.5 + parent: 1 + - uid: 3284 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,61.5 + parent: 1 + - uid: 3285 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 9.5,65.5 + parent: 1 + - uid: 3291 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 13.5,44.5 + parent: 1 + - uid: 3299 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,-10.5 + parent: 1 + - uid: 3314 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,59.5 + parent: 1 + - uid: 3328 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 6.5,43.5 + parent: 1 + - uid: 3337 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,53.5 + parent: 1 + - uid: 3422 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-6.5 + parent: 1 + - uid: 3424 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,51.5 + parent: 1 + - uid: 3443 + components: + - type: Transform + pos: -34.5,0.5 + parent: 1 + - uid: 3475 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 11.5,-9.5 + parent: 1 + - uid: 3523 + components: + - type: Transform + pos: 14.5,48.5 + parent: 1 + - uid: 3527 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 12.5,53.5 + parent: 1 + - uid: 3551 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,52.5 + parent: 1 + - uid: 3571 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,49.5 + parent: 1 + - uid: 3617 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,44.5 + parent: 1 + - uid: 3646 + components: + - type: Transform + pos: 10.5,48.5 + parent: 1 + - uid: 3703 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 12.5,46.5 + parent: 1 + - uid: 3768 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,58.5 + parent: 1 + - uid: 3914 + components: + - type: Transform + pos: 1.5,62.5 + parent: 1 + - uid: 3917 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,65.5 + parent: 1 + - uid: 3918 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,59.5 + parent: 1 + - uid: 3922 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,60.5 + parent: 1 + - uid: 3934 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.5,63.5 + parent: 1 + - uid: 3939 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -26.5,64.5 + parent: 1 + - uid: 3949 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -1.5,57.5 + parent: 1 + - uid: 3965 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,58.5 + parent: 1 + - uid: 4006 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,60.5 + parent: 1 + - uid: 4018 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,65.5 + parent: 1 + - uid: 4019 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,58.5 + parent: 1 + - uid: 4021 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,65.5 + parent: 1 + - uid: 4102 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,56.5 + parent: 1 + - uid: 4109 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,-12.5 + parent: 1 + - uid: 4111 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,56.5 + parent: 1 + - uid: 4140 + components: + - type: Transform + pos: -9.5,54.5 + parent: 1 + - uid: 4154 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,27.5 + parent: 1 + - uid: 4236 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,56.5 + parent: 1 + - uid: 4296 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,54.5 + parent: 1 + - uid: 4311 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,22.5 + parent: 1 + - uid: 4333 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 26.5,51.5 + parent: 1 + - uid: 4334 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 28.5,51.5 + parent: 1 + - uid: 4354 + components: + - type: Transform + pos: -34.5,-4.5 + parent: 1 + - uid: 4377 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,54.5 + parent: 1 + - uid: 4679 + components: + - type: Transform + pos: -36.5,-4.5 + parent: 1 + - uid: 4728 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,13.5 + parent: 1 + - uid: 4771 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,10.5 + parent: 1 + - uid: 4773 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,22.5 + parent: 1 + - uid: 4784 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 35.5,42.5 + parent: 1 + - uid: 4785 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 35.5,42.5 + parent: 1 + - uid: 4786 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,22.5 + parent: 1 + - uid: 4851 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 18.5,21.5 + parent: 1 + - uid: 4858 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,22.5 + parent: 1 + - uid: 5006 + components: + - type: Transform + pos: -18.5,14.5 + parent: 1 + - uid: 5035 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-12.5 + parent: 1 + - uid: 5090 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,58.5 + parent: 1 + - uid: 5091 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -16.5,57.5 + parent: 1 + - uid: 5116 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 29.5,58.5 + parent: 1 + - uid: 5221 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,10.5 + parent: 1 + - uid: 5222 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,10.5 + parent: 1 + - uid: 5223 + components: + - type: Transform + pos: 46.5,13.5 + parent: 1 + - uid: 5224 + components: + - type: Transform + pos: 45.5,13.5 + parent: 1 + - uid: 5225 + components: + - type: Transform + pos: 44.5,13.5 + parent: 1 + - uid: 5226 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,10.5 + parent: 1 + - uid: 5248 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,10.5 + parent: 1 + - uid: 5249 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,13.5 + parent: 1 + - uid: 5250 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-12.5 + parent: 1 + - uid: 5276 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,64.5 + parent: 1 + - uid: 5300 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,8.5 + parent: 1 + - uid: 5361 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-34.5 + parent: 1 + - uid: 5403 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,-34.5 + parent: 1 + - uid: 5428 + components: + - type: Transform + pos: -17.5,14.5 + parent: 1 + - uid: 5532 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 23.5,27.5 + parent: 1 + - uid: 5566 + components: + - type: Transform + pos: -14.5,-35.5 + parent: 1 + - uid: 5599 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,49.5 + parent: 1 + - uid: 5665 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 27.5,58.5 + parent: 1 + - uid: 5817 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,8.5 + parent: 1 + - uid: 6037 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,60.5 + parent: 1 + - uid: 6043 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,62.5 + parent: 1 + - uid: 6089 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,65.5 + parent: 1 + - uid: 6117 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 7.5,67.5 + parent: 1 + - uid: 6246 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,64.5 + parent: 1 + - uid: 6281 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,66.5 + parent: 1 + - uid: 6282 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 21.5,61.5 + parent: 1 + - uid: 6307 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-34.5 + parent: 1 + - uid: 6310 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-35.5 + parent: 1 + - uid: 6317 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-33.5 + parent: 1 + - uid: 6319 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-32.5 + parent: 1 + - uid: 6350 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 21.5,60.5 + parent: 1 + - uid: 6351 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 20.5,60.5 + parent: 1 + - uid: 6352 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,60.5 + parent: 1 + - uid: 6353 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 18.5,60.5 + parent: 1 + - uid: 6354 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 17.5,60.5 + parent: 1 + - uid: 6382 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,-32.5 + parent: 1 + - uid: 6389 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-34.5 + parent: 1 + - uid: 6403 + components: + - type: Transform + pos: -14.5,-31.5 + parent: 1 + - uid: 6416 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,-33.5 + parent: 1 + - uid: 6436 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,-32.5 + parent: 1 + - uid: 6437 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-33.5 + parent: 1 + - uid: 6441 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-33.5 + parent: 1 + - uid: 6442 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-35.5 + parent: 1 + - uid: 6443 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,-32.5 + parent: 1 + - uid: 6471 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-32.5 + parent: 1 + - uid: 6551 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,-36.5 + parent: 1 + - uid: 8330 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,-35.5 + parent: 1 + - uid: 10011 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,13.5 + parent: 1 + - uid: 10060 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,10.5 + parent: 1 + - uid: 10320 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,-35.5 + parent: 1 + - uid: 10321 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 17.5,55.5 + parent: 1 + - uid: 10365 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -51.5,-4.5 + parent: 1 + - uid: 10379 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,63.5 + parent: 1 + - uid: 10426 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,-10.5 + parent: 1 + - uid: 10783 + components: + - type: Transform + pos: -36.5,-12.5 + parent: 1 + - uid: 10899 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,-10.5 + parent: 1 + - uid: 10918 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,-10.5 + parent: 1 + - uid: 11033 + components: + - type: Transform + pos: -42.5,-10.5 + parent: 1 + - uid: 11229 + components: + - type: Transform + pos: -39.5,-12.5 + parent: 1 + - uid: 11613 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-10.5 + parent: 1 + - uid: 12300 + components: + - type: Transform + pos: -41.5,-10.5 + parent: 1 + - uid: 12302 + components: + - type: Transform + pos: -38.5,-12.5 + parent: 1 + - uid: 12303 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,-10.5 + parent: 1 + - uid: 12304 + components: + - type: Transform + pos: -40.5,-10.5 + parent: 1 + - uid: 12333 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,-10.5 + parent: 1 + - uid: 12337 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -38.5,-10.5 + parent: 1 + - uid: 12342 + components: + - type: Transform + pos: -37.5,-12.5 + parent: 1 + - uid: 12621 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-32.5 + parent: 1 + - uid: 12623 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-35.5 + parent: 1 + - uid: 12689 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-32.5 + parent: 1 + - uid: 12739 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-34.5 + parent: 1 + - uid: 12754 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,-33.5 + parent: 1 + - uid: 12760 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-33.5 + parent: 1 + - uid: 12761 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,-35.5 + parent: 1 + - uid: 12911 + components: + - type: Transform + pos: -21.5,-31.5 + parent: 1 + - uid: 12912 + components: + - type: Transform + pos: -20.5,-31.5 + parent: 1 + - uid: 12913 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,-35.5 + parent: 1 + - uid: 12914 + components: + - type: Transform + pos: -19.5,-31.5 + parent: 1 + - uid: 12915 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,-36.5 + parent: 1 + - uid: 13241 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-34.5 + parent: 1 + - uid: 13242 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,-35.5 + parent: 1 + - uid: 13308 + components: + - type: Transform + pos: -37.5,-10.5 + parent: 1 + - uid: 13318 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -51.5,-5.5 + parent: 1 + - uid: 13322 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -53.5,-5.5 + parent: 1 + - uid: 13324 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -53.5,-4.5 + parent: 1 + - uid: 13325 + components: + - type: Transform + pos: -38.5,-10.5 + parent: 1 + - uid: 13409 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -53.5,-5.5 + parent: 1 + - uid: 13487 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,-36.5 + parent: 1 + - uid: 14352 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -51.5,-5.5 + parent: 1 + - uid: 14354 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -51.5,-4.5 + parent: 1 + - uid: 14624 + components: + - type: Transform + pos: -36.5,-10.5 + parent: 1 + - uid: 14805 + components: + - type: Transform + pos: -41.5,-12.5 + parent: 1 + - uid: 14807 + components: + - type: Transform + pos: -40.5,-12.5 + parent: 1 + - uid: 14810 + components: + - type: Transform + pos: -42.5,-12.5 + parent: 1 + - uid: 14817 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -53.5,-4.5 + parent: 1 + - uid: 14818 + components: + - type: Transform + pos: -39.5,-10.5 + parent: 1 + - uid: 14820 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,-8.5 + parent: 1 + - uid: 15157 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -44.5,57.5 + parent: 1 + - uid: 15158 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,57.5 + parent: 1 + - uid: 15159 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,57.5 + parent: 1 + - uid: 15160 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -35.5,57.5 + parent: 1 + - uid: 15161 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.5,57.5 + parent: 1 + - uid: 15162 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -37.5,57.5 + parent: 1 + - uid: 15164 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,57.5 + parent: 1 + - uid: 15165 + components: + - type: Transform + pos: -37.5,57.5 + parent: 1 + - uid: 15166 + components: + - type: Transform + pos: -36.5,57.5 + parent: 1 + - uid: 15167 + components: + - type: Transform + pos: -35.5,57.5 + parent: 1 + - uid: 15168 + components: + - type: Transform + pos: -34.5,57.5 + parent: 1 + - uid: 15169 + components: + - type: Transform + pos: -33.5,57.5 + parent: 1 + - uid: 15170 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,57.5 + parent: 1 + - uid: 15171 + components: + - type: Transform + pos: -45.5,57.5 + parent: 1 + - uid: 15172 + components: + - type: Transform + pos: -42.5,57.5 + parent: 1 + - uid: 15173 + components: + - type: Transform + pos: -43.5,57.5 + parent: 1 + - uid: 15174 + components: + - type: Transform + pos: -44.5,57.5 + parent: 1 + - uid: 15175 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -45.5,57.5 + parent: 1 + - uid: 15183 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,63.5 + parent: 1 + - uid: 15184 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.5,64.5 + parent: 1 + - uid: 15309 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -39.5,-12.5 + parent: 1 + - uid: 15310 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -40.5,-12.5 + parent: 1 + - uid: 15311 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -41.5,-12.5 + parent: 1 + - uid: 15312 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -42.5,-12.5 + parent: 1 + - uid: 15313 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -52.5,-11.5 + parent: 1 + - uid: 15314 + components: + - type: Transform + pos: -52.5,-11.5 + parent: 1 + - uid: 15315 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -52.5,-14.5 + parent: 1 + - uid: 15316 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -52.5,-14.5 + parent: 1 +- proto: Wrench + entities: + - uid: 1967 + components: + - type: Transform + pos: 16.531727,14.781297 + parent: 1 + - uid: 4131 + components: + - type: Transform + pos: -10.494593,60.486763 + parent: 1 + - uid: 4603 + components: + - type: Transform + pos: 23.574036,27.522682 + parent: 1 +- proto: ZiptiesBroken + entities: + - uid: 5246 + components: + - type: Transform + pos: 46.433636,14.50018 + parent: 1 + - uid: 5637 + components: + - type: Transform + pos: 29.106209,15.656858 + parent: 1 +... diff --git a/Resources/Maps/glacier.yml b/Resources/Maps/glacier.yml index 41acf600625..c4756e4c258 100644 --- a/Resources/Maps/glacier.yml +++ b/Resources/Maps/glacier.yml @@ -52959,6 +52959,14 @@ entities: - BorgModuleClowning - BorgModuleDiagnosis - BorgModuleDefibrillator + - BorgModuleJetpack + - BorgModulePka + - BorgModuleAdvancedSurgery + - JawsOfLifeLeftArm + - JawsOfLifeRightArm + - SpeedLeftLeg + - SpeedRightLeg + - BasicCyberneticEyes - BorgModuleAdvancedTreatment - RipleyHarness - RipleyLArm diff --git a/Resources/Maps/saltern.yml b/Resources/Maps/saltern.yml index 46bdea0fda7..e88865dc9b1 100644 --- a/Resources/Maps/saltern.yml +++ b/Resources/Maps/saltern.yml @@ -4,9 +4,12 @@ meta: tilemap: 0: Space 7: FloorAsteroidSand + 4: FloorBlue 17: FloorBlueCircuit 19: FloorBrokenWood + 6: FloorCaveDrought 25: FloorClown + 1: FloorConcrete 29: FloorDark 30: FloorDarkDiagonal 33: FloorDarkMini @@ -19,6 +22,7 @@ tilemap: 45: FloorGlass 46: FloorGold 47: FloorGrass + 3: FloorGym 58: FloorHydro 60: FloorKitchen 61: FloorLaundry @@ -26,6 +30,7 @@ tilemap: 64: FloorMetalDiamond 65: FloorMime 69: FloorMono + 2: FloorPlastic 76: FloorRGlass 77: FloorReinforced 78: FloorReinforcedHardened @@ -39,6 +44,7 @@ tilemap: 105: FloorTechMaint2 108: FloorWhite 113: FloorWhiteMono + 5: FloorWhitePlastic 118: FloorWood 119: FloorWoodTile 120: Lattice @@ -55,103 +61,103 @@ entities: chunks: -1,-1: ind: -1,-1 - tiles: WQAAAAADWQAAAAABWQAAAAABWQAAAAAAWQAAAAAAWQAAAAACWQAAAAABWQAAAAADWQAAAAAAWQAAAAAAWQAAAAABWQAAAAAAWQAAAAABWQAAAAADWQAAAAADWQAAAAABWQAAAAACWQAAAAACWQAAAAAAWQAAAAAAWQAAAAABWQAAAAABWQAAAAAAWQAAAAAAWQAAAAABWQAAAAAAWQAAAAADWQAAAAACWQAAAAADWQAAAAACWQAAAAABWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAdgAAAAADdgAAAAADeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAdgAAAAAAdgAAAAACdgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAdgAAAAADdgAAAAADdgAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAdgAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAdgAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAdgAAAAACdgAAAAAAdgAAAAABdgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAdgAAAAADdgAAAAAAdgAAAAACdgAAAAACdgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAdgAAAAACdgAAAAADdgAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAdgAAAAACdgAAAAABdgAAAAABaAAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAAeQAAAAAAdgAAAAAAdgAAAAADdgAAAAADdgAAAAACdgAAAAACdgAAAAACdgAAAAACdgAAAAAAeQAAAAAAeQAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAAeQAAAAAAdgAAAAAAdgAAAAACdgAAAAACdgAAAAADdgAAAAADdgAAAAADdgAAAAACdgAAAAABeQAAAAAAeQAAAAAAeQAAAAAALAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAdgAAAAADdgAAAAABdgAAAAAAdgAAAAADdgAAAAACdgAAAAACdgAAAAABeQAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAdgAAAAAAdgAAAAADdgAAAAACdgAAAAAAdgAAAAABdgAAAAACdgAAAAAAdgAAAAACdgAAAAADdgAAAAAAeQAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAWQAAAAADdgAAAAACdgAAAAADdgAAAAADdgAAAAABdgAAAAADdgAAAAACdgAAAAACdgAAAAADdgAAAAABdgAAAAAB + tiles: WQAAAAAAWQAAAAABWQAAAAAAWQAAAAADWQAAAAADWQAAAAADWQAAAAADWQAAAAAAWQAAAAABWQAAAAABAgAAAAAAWQAAAAAAWQAAAAADWQAAAAACWQAAAAADWQAAAAABWQAAAAAAWQAAAAAAWQAAAAABWQAAAAABAgAAAAAAWQAAAAADWQAAAAADWQAAAAADWQAAAAADWQAAAAABWQAAAAADWQAAAAAAWQAAAAADWQAAAAACWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAwAAAAAAAwAAAAAAdgAAAAAAdgAAAAABdgAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAABAAAAAAABAAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAAwAAAAAAAwAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAABAAAAAAABAAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAAwAAAAAAAwAAAAAAdgAAAAABdgAAAAAAdgAAAAACeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAADdgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAdgAAAAADdgAAAAACdgAAAAAAdgAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAdgAAAAACdgAAAAACdgAAAAABdgAAAAAAdgAAAAABPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAdgAAAAABdgAAAAADdgAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAdgAAAAACdgAAAAACdgAAAAAAeQAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAAeQAAAAAAdgAAAAACdgAAAAADdgAAAAADdgAAAAADdgAAAAABdgAAAAADdgAAAAACdgAAAAACeQAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAALAAAAAAAeQAAAAAAdgAAAAADdgAAAAAAdgAAAAABdgAAAAAAdgAAAAACdgAAAAAAdgAAAAACdgAAAAADeQAAAAAAeQAAAAAAeQAAAAAALAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAABdgAAAAACdgAAAAAAdgAAAAABdgAAAAAAdgAAAAACdgAAAAADdgAAAAAAeQAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAdgAAAAABdgAAAAADdgAAAAAAdgAAAAACdgAAAAAAdgAAAAAAdgAAAAADdgAAAAABdgAAAAADdgAAAAACeQAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAWQAAAAACdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAADdgAAAAADdgAAAAABdgAAAAACdgAAAAABdgAAAAACdgAAAAAA version: 6 -1,0: ind: -1,0 - tiles: PAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAWQAAAAAAdgAAAAAAdgAAAAAAdgAAAAADdgAAAAADdgAAAAABdgAAAAAAdgAAAAABdgAAAAAAdgAAAAADdgAAAAADPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAWQAAAAADdgAAAAADdgAAAAAAdgAAAAACdgAAAAABdgAAAAAAdgAAAAADdgAAAAACdgAAAAAAdgAAAAADdgAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAZAAAAAABZAAAAAADZAAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAABWQAAAAADWQAAAAABWQAAAAABWQAAAAACWQAAAAAAWQAAAAABWQAAAAACWQAAAAABWQAAAAACWQAAAAACWQAAAAABWQAAAAABWQAAAAABWQAAAAAAWQAAAAACWQAAAAADWQAAAAAAWQAAAAACWQAAAAAAWQAAAAAAWQAAAAABWQAAAAAAWQAAAAADWQAAAAAAWQAAAAADWQAAAAADWQAAAAADWQAAAAADWQAAAAADWQAAAAADWQAAAAACWQAAAAAAWQAAAAACWQAAAAABWQAAAAADWQAAAAABWQAAAAAAWQAAAAABWQAAAAABWQAAAAAAWQAAAAABWQAAAAABWQAAAAABWQAAAAAAWQAAAAACWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAADeQAAAAAAWQAAAAABeQAAAAAAWQAAAAACWQAAAAADeQAAAAAAWQAAAAABWQAAAAACeQAAAAAAHQAAAAAAHQAAAAACHQAAAAACYAAAAAAAeQAAAAAAWQAAAAADWQAAAAABeQAAAAAAWQAAAAACeQAAAAAAWQAAAAABWQAAAAABeQAAAAAAWQAAAAACWQAAAAABeQAAAAAAHQAAAAABHQAAAAABHQAAAAAAYAAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAWQAAAAACeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAYAAAAAAAYAAAAAAAWQAAAAAAWQAAAAACWQAAAAADWQAAAAACWQAAAAABWQAAAAADWQAAAAABWQAAAAADWQAAAAABWQAAAAADWQAAAAAAWQAAAAACWQAAAAAAWQAAAAACYAAAAAAAeQAAAAAAWQAAAAADWQAAAAAAWQAAAAABWQAAAAADWQAAAAAAWQAAAAADWQAAAAABWQAAAAACWQAAAAADWQAAAAAAWQAAAAACWQAAAAABWQAAAAACWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADLQAAAAAAWQAAAAADLQAAAAAAWQAAAAACWQAAAAAAWQAAAAADWQAAAAABeQAAAAAAbAAAAAAALAAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAeQAAAAAAWQAAAAADWQAAAAACWQAAAAAAWQAAAAAAWQAAAAADWQAAAAABWQAAAAADWQAAAAADeQAAAAAAbAAAAAAALAAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAeQAAAAAAWQAAAAACLQAAAAAAWQAAAAACLQAAAAAAWQAAAAACWQAAAAAAWQAAAAABWQAAAAADeQAAAAAAbAAAAAAAeQAAAAAALAAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAWQAAAAAAWQAAAAACWQAAAAABWQAAAAADWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA + tiles: PAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAWQAAAAAAdgAAAAABdgAAAAABdgAAAAADdgAAAAADdgAAAAABdgAAAAABdgAAAAADdgAAAAABdgAAAAABdgAAAAACPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAPAAAAAAAWQAAAAABdgAAAAADdgAAAAACdgAAAAAAdgAAAAADdgAAAAADdgAAAAABdgAAAAAAdgAAAAADdgAAAAADdgAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAZAAAAAAAZAAAAAACZAAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACAgAAAAAAWQAAAAACWQAAAAACWQAAAAACWQAAAAAAWQAAAAABAgAAAAAAWQAAAAABWQAAAAACWQAAAAABWQAAAAACWQAAAAACAgAAAAAAWQAAAAADWQAAAAAAWQAAAAACWQAAAAADWQAAAAACWQAAAAADWQAAAAADWQAAAAABWQAAAAAAWQAAAAABAgAAAAAAWQAAAAABWQAAAAADWQAAAAABWQAAAAABWQAAAAACWQAAAAABWQAAAAADWQAAAAACAgAAAAAAWQAAAAABWQAAAAABWQAAAAADWQAAAAADWQAAAAABWQAAAAACWQAAAAADWQAAAAAAWQAAAAADWQAAAAADWQAAAAAAWQAAAAABWQAAAAABAgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAADeQAAAAAAeQAAAAAAWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAAAWQAAAAABTQAAAAAAWQAAAAABWQAAAAABWQAAAAADeQAAAAAAWQAAAAACWQAAAAADeQAAAAAAHQAAAAAAHQAAAAADHQAAAAACYAAAAAAAeQAAAAAAWQAAAAACWQAAAAAAWQAAAAACTQAAAAAAWQAAAAADWQAAAAACWQAAAAACeQAAAAAAWQAAAAABWQAAAAACeQAAAAAAHQAAAAABHQAAAAADHQAAAAACYAAAAAAAeQAAAAAAeQAAAAAAWQAAAAADeQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAYAAAAAAAYAAAAAAAWQAAAAACWQAAAAADWQAAAAACWQAAAAACWQAAAAABWQAAAAADWQAAAAADWQAAAAAAWQAAAAABWQAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAYAAAAAAAeQAAAAAAWQAAAAABWQAAAAADWQAAAAACWQAAAAAAWQAAAAADLQAAAAAAAgAAAAAALQAAAAAAAgAAAAAAWQAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAWQAAAAADPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAJgAAAAAAJgAAAAAAJgAAAAADJgAAAAACeQAAAAAAWQAAAAAALQAAAAAAAgAAAAAALQAAAAAAAgAAAAAAWQAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAJgAAAAABJgAAAAAAJgAAAAADJgAAAAABJgAAAAACeQAAAAAAWQAAAAACAgAAAAAAAgAAAAAAAgAAAAAAWQAAAAABWQAAAAACPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAJgAAAAACJgAAAAABJgAAAAADJgAAAAADUAAAAAAAWQAAAAAALQAAAAAAAgAAAAAALQAAAAAAWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA version: 6 0,-1: ind: 0,-1 - tiles: WQAAAAACWQAAAAABWQAAAAADWQAAAAABWQAAAAADWQAAAAAAeQAAAAAAbAAAAAADbAAAAAABbAAAAAADbAAAAAABeQAAAAAAHQAAAAADIgAAAAADIgAAAAACHQAAAAABWQAAAAABWQAAAAADWQAAAAAAWQAAAAADWQAAAAADWQAAAAACeQAAAAAAbAAAAAABbAAAAAAAbAAAAAADbAAAAAAAcQAAAAACHQAAAAAAHQAAAAACHQAAAAACHQAAAAABeQAAAAAAWQAAAAADWQAAAAABWQAAAAACWQAAAAAAWQAAAAAAeQAAAAAAbAAAAAACbAAAAAACbAAAAAABbAAAAAACeQAAAAAAIgAAAAABIgAAAAABIgAAAAACIgAAAAADeQAAAAAAeQAAAAAAWQAAAAABWQAAAAABWQAAAAADeQAAAAAAeQAAAAAAbAAAAAADbAAAAAACbAAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAWQAAAAACWQAAAAABWQAAAAAAeQAAAAAAbAAAAAACbAAAAAADeQAAAAAAbAAAAAAAbAAAAAABLAAAAAAALAAAAAAAeQAAAAAAbAAAAAABbAAAAAABeQAAAAAAeQAAAAAAWQAAAAABWQAAAAADWQAAAAAAeQAAAAAAbAAAAAABbAAAAAACbAAAAAACbAAAAAADbAAAAAABbAAAAAABbAAAAAADeQAAAAAAbAAAAAABbAAAAAADeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAABWQAAAAABeQAAAAAAbAAAAAAAbAAAAAAAbAAAAAADbAAAAAABbAAAAAAAbAAAAAAAbAAAAAAAbAAAAAAAbAAAAAABbAAAAAACeQAAAAAAeQAAAAAAWQAAAAADWQAAAAADWQAAAAACeQAAAAAAbAAAAAABbAAAAAABbAAAAAAAbAAAAAABbAAAAAADbAAAAAACbAAAAAADeQAAAAAAbAAAAAADbAAAAAABeQAAAAAAeQAAAAAAWQAAAAACWQAAAAADWQAAAAABeQAAAAAAbAAAAAADbAAAAAABeQAAAAAAbAAAAAACbAAAAAABbAAAAAAAbAAAAAABeQAAAAAAbAAAAAACbAAAAAADdgAAAAABeQAAAAAAWQAAAAAAWQAAAAABWQAAAAABeQAAAAAAbAAAAAACbAAAAAABbAAAAAAAbAAAAAABbAAAAAABeQAAAAAAeQAAAAAAeQAAAAAAbAAAAAABbAAAAAAAdgAAAAABeQAAAAAAWQAAAAACWQAAAAACWQAAAAACeQAAAAAAbAAAAAACbAAAAAABbAAAAAADbAAAAAAAbAAAAAACbAAAAAABbAAAAAADeQAAAAAAbAAAAAAAbAAAAAACdgAAAAADeQAAAAAAWQAAAAABWQAAAAADWQAAAAADeQAAAAAAbAAAAAACbAAAAAACbAAAAAADbAAAAAADbAAAAAAAbAAAAAACbAAAAAABeQAAAAAAbAAAAAAAbAAAAAADdgAAAAADeQAAAAAAWQAAAAACWQAAAAADWQAAAAAAeQAAAAAAbAAAAAABbAAAAAABbAAAAAACbAAAAAAAbAAAAAACbAAAAAABbAAAAAACeQAAAAAAeQAAAAAAbAAAAAAAdgAAAAADZAAAAAACWQAAAAADWQAAAAAAWQAAAAADcQAAAAACbAAAAAADbAAAAAADbAAAAAADbAAAAAACbAAAAAADbAAAAAAAbAAAAAABeQAAAAAAbAAAAAAAbAAAAAABdgAAAAADZAAAAAADWQAAAAACWQAAAAACWQAAAAADcQAAAAADbAAAAAAAbAAAAAAAbAAAAAACbAAAAAADbAAAAAABbAAAAAABbAAAAAABeQAAAAAAbAAAAAACbAAAAAABdgAAAAADZAAAAAABWQAAAAAAWQAAAAABWQAAAAABcQAAAAABbAAAAAACbAAAAAACbAAAAAAAbAAAAAABbAAAAAABbAAAAAADbAAAAAABeQAAAAAAbAAAAAACbAAAAAAA + tiles: TQAAAAAAWQAAAAABAgAAAAAAWQAAAAADWQAAAAABWQAAAAABeQAAAAAAbAAAAAADbAAAAAACbAAAAAACbAAAAAADeQAAAAAAHQAAAAADIgAAAAADIgAAAAADHQAAAAADWQAAAAACWQAAAAAAWQAAAAAAWQAAAAABWQAAAAAAWQAAAAAAeQAAAAAAbAAAAAADbAAAAAABBQAAAAAAbAAAAAACcQAAAAAAHQAAAAAAHQAAAAAAHQAAAAADHQAAAAABeQAAAAAAWQAAAAADWQAAAAADWQAAAAACWQAAAAABWQAAAAACeQAAAAAAbAAAAAABbAAAAAAAbAAAAAABbAAAAAAAeQAAAAAAIgAAAAAAIgAAAAABIgAAAAADIgAAAAABeQAAAAAAeQAAAAAAWQAAAAABTQAAAAAAWQAAAAABeQAAAAAAeQAAAAAAbAAAAAAAbAAAAAABbAAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAWQAAAAABWQAAAAAAWQAAAAACeQAAAAAAbAAAAAAAbAAAAAACeQAAAAAAbAAAAAAAbAAAAAABLAAAAAAALAAAAAAAeQAAAAAAbAAAAAACbAAAAAABeQAAAAAAeQAAAAAAWQAAAAACWQAAAAABWQAAAAACeQAAAAAAbAAAAAAAbAAAAAABbAAAAAACbAAAAAAAbAAAAAADbAAAAAADbAAAAAADeQAAAAAAbAAAAAADbAAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAABWQAAAAACeQAAAAAAbAAAAAABbAAAAAADbAAAAAABbAAAAAABbAAAAAAAbAAAAAACbAAAAAADbAAAAAADbAAAAAACbAAAAAACeQAAAAAAeQAAAAAAWQAAAAADWQAAAAACWQAAAAADeQAAAAAAbAAAAAABbAAAAAACbAAAAAADbAAAAAABbAAAAAACbAAAAAADbAAAAAACeQAAAAAAbAAAAAADbAAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAbAAAAAADbAAAAAAAeQAAAAAAbAAAAAADbAAAAAADbAAAAAACbAAAAAACeQAAAAAAbAAAAAAAbAAAAAAAdgAAAAADeQAAAAAAWQAAAAADWQAAAAADAgAAAAAAeQAAAAAAbAAAAAADbAAAAAADbAAAAAACbAAAAAAAbAAAAAADeQAAAAAAeQAAAAAAeQAAAAAAbAAAAAABbAAAAAABdgAAAAACeQAAAAAAWQAAAAACWQAAAAADWQAAAAABeQAAAAAAbAAAAAAAbAAAAAAAbAAAAAACbAAAAAACbAAAAAADbAAAAAABbAAAAAACeQAAAAAAbAAAAAAAbAAAAAACdgAAAAABeQAAAAAAWQAAAAAAWQAAAAADWQAAAAAAeQAAAAAAbAAAAAACbAAAAAAAbAAAAAABbAAAAAAAbAAAAAAAbAAAAAABbAAAAAABeQAAAAAAbAAAAAAAbAAAAAABdgAAAAAAeQAAAAAAWQAAAAABWQAAAAAAWQAAAAABeQAAAAAAbAAAAAADbAAAAAAAbAAAAAABBQAAAAAAbAAAAAAAbAAAAAACbAAAAAACeQAAAAAAeQAAAAAAbAAAAAABdgAAAAACZAAAAAADWQAAAAAAWQAAAAADWQAAAAAAcQAAAAABbAAAAAADbAAAAAACbAAAAAADbAAAAAAAbAAAAAACbAAAAAABbAAAAAACeQAAAAAAbAAAAAACbAAAAAAAdgAAAAAAZAAAAAACAgAAAAAAWQAAAAABWQAAAAADcQAAAAAABQAAAAAAbAAAAAACbAAAAAACbAAAAAACbAAAAAADbAAAAAACbAAAAAADeQAAAAAAbAAAAAAAbAAAAAACdgAAAAAAZAAAAAAAWQAAAAAAWQAAAAACWQAAAAABcQAAAAAAbAAAAAADbAAAAAADbAAAAAADbAAAAAACbAAAAAACbAAAAAACBQAAAAAAeQAAAAAAbAAAAAADbAAAAAAA version: 6 0,0: ind: 0,0 - tiles: dgAAAAADeQAAAAAAWQAAAAAAWQAAAAADWQAAAAABWQAAAAADbAAAAAAAbAAAAAACbAAAAAABbAAAAAAAbAAAAAAAbAAAAAAAbAAAAAACeQAAAAAAbAAAAAAAbAAAAAAAdgAAAAACeQAAAAAAWQAAAAADWQAAAAADWQAAAAACeQAAAAAAbAAAAAAAbAAAAAACbAAAAAADbAAAAAAAbAAAAAAAbAAAAAADbAAAAAADeQAAAAAAbAAAAAADbAAAAAADeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAABWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAABWQAAAAADWQAAAAACWQAAAAADWQAAAAADWQAAAAAAWQAAAAAAWQAAAAADWQAAAAAAWQAAAAACWQAAAAACWQAAAAABWQAAAAADWQAAAAACWQAAAAACWQAAAAABWQAAAAABWQAAAAABWQAAAAAAWQAAAAAAWQAAAAABWQAAAAABWQAAAAAAWQAAAAAAWQAAAAABWQAAAAAAWQAAAAAAWQAAAAABWQAAAAADWQAAAAADWQAAAAACWQAAAAABWQAAAAADWQAAAAADWQAAAAABWQAAAAACWQAAAAADWQAAAAABWQAAAAAAWQAAAAADWQAAAAABWQAAAAADWQAAAAABWQAAAAACWQAAAAADWQAAAAABWQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAAAWQAAAAADeQAAAAAAeQAAAAAAIgAAAAAAeQAAAAAAIgAAAAABeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAACWQAAAAABWQAAAAABHQAAAAACeQAAAAAAWQAAAAABWQAAAAADWQAAAAABeQAAAAAAHQAAAAACHQAAAAACHQAAAAABHQAAAAABHQAAAAADeQAAAAAAWQAAAAABWQAAAAADWQAAAAAAWQAAAAACHQAAAAACeQAAAAAAWQAAAAACWQAAAAADWQAAAAADeQAAAAAAHQAAAAAAHQAAAAACHQAAAAADHQAAAAACHQAAAAABeQAAAAAAeQAAAAAAWQAAAAABZAAAAAAAWQAAAAADHQAAAAAAeQAAAAAAWQAAAAAAWQAAAAABWQAAAAABeQAAAAAAHQAAAAACHQAAAAACHQAAAAAAHQAAAAADHQAAAAADeQAAAAAAWQAAAAADWQAAAAADWQAAAAADWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAACWQAAAAABeQAAAAAAHQAAAAAAHQAAAAADHQAAAAABHQAAAAAAHQAAAAAAeQAAAAAAWQAAAAABWQAAAAABWQAAAAADWQAAAAAAbAAAAAAAeQAAAAAAWQAAAAABWQAAAAAAWQAAAAABeQAAAAAAHQAAAAACHQAAAAAAHQAAAAACHQAAAAAAHQAAAAADeQAAAAAAWQAAAAADWQAAAAAAWQAAAAAAWQAAAAACbAAAAAAAeQAAAAAAWQAAAAADWQAAAAACWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAAAWQAAAAABWQAAAAAAbAAAAAAAeQAAAAAAWQAAAAABWQAAAAACWQAAAAADeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAbAAAAAAAeQAAAAAAWQAAAAADWQAAAAABWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAABWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAA + tiles: dgAAAAABeQAAAAAAWQAAAAABWQAAAAACWQAAAAADWQAAAAADbAAAAAADbAAAAAADbAAAAAADbAAAAAADbAAAAAAAbAAAAAACbAAAAAABeQAAAAAAbAAAAAADbAAAAAADdgAAAAADeQAAAAAAWQAAAAACWQAAAAAAWQAAAAABeQAAAAAAbAAAAAABbAAAAAACbAAAAAABbAAAAAADbAAAAAAAbAAAAAACbAAAAAAAeQAAAAAAbAAAAAAAbAAAAAABeQAAAAAAeQAAAAAAWQAAAAADWQAAAAABWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAABWQAAAAACWQAAAAADAgAAAAAAWQAAAAACWQAAAAABWQAAAAACWQAAAAADWQAAAAADWQAAAAACWQAAAAADWQAAAAACWQAAAAAAWQAAAAACWQAAAAADWQAAAAABWQAAAAABWQAAAAACWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAACWQAAAAACWQAAAAABWQAAAAAAWQAAAAADWQAAAAABWQAAAAABWQAAAAACAgAAAAAAWQAAAAADWQAAAAAAWQAAAAACWQAAAAACWQAAAAADWQAAAAACWQAAAAADWQAAAAABWQAAAAAAWQAAAAADWQAAAAACWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAACWQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAADWQAAAAADeQAAAAAAeQAAAAAAIgAAAAAAeQAAAAAAIgAAAAADeQAAAAAAeQAAAAAAWQAAAAADWQAAAAACWQAAAAAAWQAAAAADHQAAAAADeQAAAAAAWQAAAAAAWQAAAAACWQAAAAAAeQAAAAAAHQAAAAACHQAAAAAAHQAAAAACHQAAAAABHQAAAAABeQAAAAAAWQAAAAACWQAAAAAAWQAAAAABWQAAAAABHQAAAAADeQAAAAAAWQAAAAACWQAAAAAAAgAAAAAAeQAAAAAAHQAAAAABHQAAAAABHQAAAAACHQAAAAAAHQAAAAACeQAAAAAAeQAAAAAAWQAAAAACZAAAAAAAWQAAAAACHQAAAAADeQAAAAAAAgAAAAAAWQAAAAABWQAAAAACeQAAAAAAHQAAAAACHQAAAAADHQAAAAAAHQAAAAABHQAAAAADeQAAAAAAWQAAAAADWQAAAAADWQAAAAACWQAAAAACPgAAAAAAeQAAAAAAWQAAAAABWQAAAAABWQAAAAACeQAAAAAAHQAAAAADHQAAAAAAHQAAAAACHQAAAAADHQAAAAAAeQAAAAAAWQAAAAACWQAAAAADWQAAAAADWQAAAAAAPgAAAAAAeQAAAAAAWQAAAAACWQAAAAACWQAAAAADeQAAAAAAHQAAAAADHQAAAAADHQAAAAACHQAAAAABHQAAAAADeQAAAAAAWQAAAAADWQAAAAACWQAAAAACWQAAAAABPgAAAAAAeQAAAAAAWQAAAAAAWQAAAAACAgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAADWQAAAAABWQAAAAADPgAAAAAAeQAAAAAAWQAAAAACWQAAAAACWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAPgAAAAAAeQAAAAAAWQAAAAAAWQAAAAABWQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAWQAAAAADeQAAAAAAWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAA version: 6 1,0: ind: 1,0 - tiles: bAAAAAACbAAAAAADbAAAAAABbAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAARQAAAAAARQAAAAAARQAAAAAARQAAAAAARQAAAAAAeQAAAAAAWQAAAAAAbAAAAAABbAAAAAABbAAAAAABbAAAAAABeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAARQAAAAAARQAAAAAARQAAAAAARQAAAAAARQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAARQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAADWQAAAAABWQAAAAADWQAAAAAAWQAAAAAAWQAAAAADWQAAAAACWQAAAAABWQAAAAADWQAAAAAAWQAAAAADWQAAAAABWQAAAAADWQAAAAAAWQAAAAADWQAAAAACWQAAAAABWQAAAAAAWQAAAAABWQAAAAABWQAAAAACWQAAAAADWQAAAAADWQAAAAADWQAAAAACWQAAAAADWQAAAAABWQAAAAACWQAAAAACWQAAAAACeQAAAAAAWQAAAAACWQAAAAACWQAAAAABWQAAAAADWQAAAAABWQAAAAACWQAAAAAAWQAAAAADWQAAAAABWQAAAAADWQAAAAADWQAAAAACWQAAAAAAWQAAAAABWQAAAAADHQAAAAACWQAAAAADWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAAAWQAAAAADWQAAAAADWQAAAAABeQAAAAAAWQAAAAABWQAAAAACeQAAAAAAWQAAAAABWQAAAAADWQAAAAACWQAAAAABWQAAAAACWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAABWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAACWQAAAAABeQAAAAAAWQAAAAABWQAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAaAAAAAAAWQAAAAABeQAAAAAAWQAAAAABWQAAAAACWQAAAAAAWQAAAAADWQAAAAACWQAAAAACWQAAAAACWQAAAAACWQAAAAACWQAAAAAAdgAAAAACdgAAAAABeQAAAAAAaAAAAAAAWQAAAAAAWQAAAAABWQAAAAADWQAAAAABWQAAAAABWQAAAAAAWQAAAAAAWQAAAAACWQAAAAAAeQAAAAAAWQAAAAABWQAAAAACdgAAAAAAdgAAAAABeQAAAAAAaAAAAAAAWQAAAAACWQAAAAABWQAAAAADWQAAAAAAWQAAAAACWQAAAAABWQAAAAACWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAWQAAAAABeQAAAAAAWQAAAAABWQAAAAABWQAAAAADWQAAAAACWQAAAAABWQAAAAACWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAABWQAAAAACWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAWQAAAAABWQAAAAADWQAAAAADWQAAAAACWQAAAAABWQAAAAADWQAAAAACWQAAAAAAWQAAAAACWQAAAAAAWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAA + tiles: bAAAAAADbAAAAAAAbAAAAAADbAAAAAACeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAARQAAAAAARQAAAAAARQAAAAAARQAAAAAARQAAAAAAeQAAAAAAWQAAAAAAbAAAAAADbAAAAAABbAAAAAAAbAAAAAACeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAARQAAAAAARQAAAAAARQAAAAAARQAAAAAARQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAARQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAABWQAAAAACAgAAAAAAWQAAAAABWQAAAAAAWQAAAAADWQAAAAADWQAAAAABWQAAAAACWQAAAAABAgAAAAAAWQAAAAAAWQAAAAACWQAAAAABWQAAAAAAWQAAAAABWQAAAAAAWQAAAAACWQAAAAAAWQAAAAAAWQAAAAADWQAAAAACWQAAAAAAWQAAAAAAWQAAAAADWQAAAAADWQAAAAACWQAAAAAAWQAAAAAAWQAAAAACeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAACWQAAAAACWQAAAAABWQAAAAACWQAAAAABWQAAAAADAgAAAAAAWQAAAAABWQAAAAAAWQAAAAACWQAAAAADAgAAAAAAWQAAAAABHQAAAAADWQAAAAABWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAADWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAACWQAAAAABeQAAAAAAWQAAAAAAWQAAAAABWQAAAAABWQAAAAACWQAAAAACWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAADWQAAAAABeQAAAAAAWQAAAAADWQAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAaAAAAAAAWQAAAAAAeQAAAAAAWQAAAAADWQAAAAADWQAAAAAAWQAAAAAAWQAAAAADWQAAAAACWQAAAAACWQAAAAADWQAAAAADWQAAAAABdgAAAAACdgAAAAAAeQAAAAAAaAAAAAAAWQAAAAACWQAAAAACWQAAAAAAWQAAAAADWQAAAAAAWQAAAAADWQAAAAADWQAAAAABWQAAAAACeQAAAAAAWQAAAAABWQAAAAABdgAAAAADdgAAAAAAeQAAAAAAaAAAAAAAWQAAAAADWQAAAAADWQAAAAADWQAAAAADWQAAAAADWQAAAAACWQAAAAADWQAAAAABWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAWQAAAAACeQAAAAAAWQAAAAABWQAAAAAAWQAAAAACWQAAAAACWQAAAAACWQAAAAADWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAADWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAADWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAWQAAAAADWQAAAAACWQAAAAADWQAAAAABWQAAAAABWQAAAAABWQAAAAADWQAAAAABWQAAAAABWQAAAAADWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA version: 6 0,1: ind: 0,1 - tiles: eQAAAAAAWQAAAAAAWQAAAAACWQAAAAABWQAAAAADWQAAAAABeQAAAAAAHQAAAAADHQAAAAACHQAAAAACHQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAHQAAAAADWQAAAAABWQAAAAABWQAAAAACWQAAAAABWQAAAAABdgAAAAABdgAAAAADdgAAAAADdgAAAAADdgAAAAABeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAWQAAAAABWQAAAAAAWQAAAAABWQAAAAAAWQAAAAADeQAAAAAAdgAAAAADdgAAAAACdgAAAAADdgAAAAACeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAWQAAAAABWQAAAAABWQAAAAAAWQAAAAABWQAAAAACeQAAAAAAdgAAAAAAdgAAAAACdgAAAAADdgAAAAADHQAAAAABeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAACWQAAAAAAWQAAAAABWQAAAAACWQAAAAAAdgAAAAACdgAAAAACdgAAAAABdgAAAAACeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAAAWQAAAAACWQAAAAABWQAAAAAAeQAAAAAAHQAAAAABHQAAAAADHQAAAAACHQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAADeQAAAAAAHQAAAAAAHQAAAAADHQAAAAABeQAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAdgAAAAACdgAAAAACdgAAAAADeQAAAAAAeQAAAAAAAAAAAAAAHQAAAAAAHQAAAAACHQAAAAADHQAAAAADHQAAAAADeQAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAdgAAAAADdgAAAAAAdgAAAAACeQAAAAAAeQAAAAAAAAAAAAAAHQAAAAADHQAAAAABHQAAAAACHQAAAAAAHQAAAAACPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAdgAAAAACdgAAAAADeQAAAAAAdgAAAAADeQAAAAAAeQAAAAAAAAAAAAAAHQAAAAAAeQAAAAAAeQAAAAAAHQAAAAABeQAAAAAAeQAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAdgAAAAADeQAAAAAAbAAAAAAAbAAAAAACeQAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAHQAAAAADHQAAAAADHQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAbAAAAAABeQAAAAAAeQAAAAAAAAAAAAAAHQAAAAACHQAAAAACHQAAAAABHQAAAAABHQAAAAABHQAAAAADHQAAAAAAHQAAAAABHQAAAAAAHQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAHQAAAAADeQAAAAAAHQAAAAACHQAAAAACHQAAAAABeQAAAAAAHQAAAAABHQAAAAACHQAAAAAAHQAAAAADeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAACHQAAAAACHQAAAAACHQAAAAADHQAAAAADHQAAAAACHQAAAAACHQAAAAACHQAAAAACHQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAADHQAAAAADHQAAAAADHQAAAAADHQAAAAACHQAAAAACHQAAAAACHQAAAAAAHQAAAAADeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: eQAAAAAAWQAAAAACAgAAAAAAWQAAAAADWQAAAAABWQAAAAACeQAAAAAAHQAAAAABHQAAAAABHQAAAAADHQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAHQAAAAACWQAAAAABWQAAAAABWQAAAAABWQAAAAABWQAAAAAAdgAAAAABdgAAAAADdgAAAAAAdgAAAAACdgAAAAABeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAWQAAAAABWQAAAAABWQAAAAAAAgAAAAAAWQAAAAAAeQAAAAAAdgAAAAACdgAAAAACdgAAAAACdgAAAAABeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAWQAAAAACWQAAAAAAWQAAAAADWQAAAAABWQAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAADdgAAAAADHQAAAAADeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAADWQAAAAACWQAAAAADWQAAAAAAWQAAAAADdgAAAAABdgAAAAACdgAAAAADdgAAAAACeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAWQAAAAABAgAAAAAAWQAAAAABWQAAAAABWQAAAAACeQAAAAAAHQAAAAADHQAAAAABHQAAAAABHQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAACeQAAAAAAHQAAAAABHQAAAAAAHQAAAAACeQAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAdgAAAAACdgAAAAABdgAAAAABeQAAAAAAeQAAAAAAeAAAAAAAHQAAAAACHQAAAAACHQAAAAADHQAAAAAAHQAAAAABeQAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAdgAAAAAAdgAAAAADdgAAAAACeQAAAAAAeQAAAAAAeAAAAAAAHQAAAAABHQAAAAAAHQAAAAABHQAAAAACHQAAAAABPgAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAdgAAAAABeQAAAAAAeQAAAAAAAAAAAAAAHQAAAAAAeQAAAAAAHQAAAAABHQAAAAADHQAAAAADeQAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAdgAAAAAAeQAAAAAAbAAAAAABbAAAAAADeQAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAHQAAAAAAHQAAAAABHQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAbAAAAAADbAAAAAAAeQAAAAAAAAAAAAAAHQAAAAADAQAAAAADAQAAAAACAQAAAAADAQAAAAACHQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAHQAAAAADAQAAAAADAQAAAAAAAQAAAAABAQAAAAADeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAACAQAAAAABAQAAAAABAQAAAAADAQAAAAADHQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAACHQAAAAABHQAAAAAAHQAAAAAAHQAAAAABeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 -2,0: ind: -2,0 - tiles: eQAAAAAAdgAAAAAAdgAAAAACdgAAAAAAdgAAAAABdgAAAAACWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAOgAAAAAAYwAAAAADYwAAAAAAYwAAAAABOgAAAAAAeQAAAAAAdgAAAAADdgAAAAACdgAAAAACdgAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAADeQAAAAAAeQAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAACWQAAAAABWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAAAWQAAAAACWQAAAAACWQAAAAACWQAAAAACWQAAAAADWQAAAAACWQAAAAACWQAAAAACWQAAAAACWQAAAAABWQAAAAABWQAAAAAAWQAAAAACWQAAAAADWQAAAAACWQAAAAACWQAAAAAAWQAAAAADWQAAAAABWQAAAAAAWQAAAAABWQAAAAABWQAAAAACWQAAAAADWQAAAAACWQAAAAAAWQAAAAAAWQAAAAACWQAAAAADWQAAAAADWQAAAAACWQAAAAADWQAAAAADWQAAAAADWQAAAAACWQAAAAAAWQAAAAADWQAAAAACWQAAAAAAWQAAAAADWQAAAAABWQAAAAABWQAAAAABWQAAAAADWQAAAAABWQAAAAADWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAADWQAAAAABWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAWQAAAAADWQAAAAADWQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAWQAAAAAAWQAAAAABWQAAAAACWQAAAAABWQAAAAAAWQAAAAADWQAAAAAAWwAAAAACWwAAAAACeQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAaAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAABeQAAAAAAWQAAAAAAWQAAAAACWwAAAAACWwAAAAADeQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAaAAAAAAAeQAAAAAAWQAAAAADWQAAAAACWQAAAAAAWQAAAAAAWQAAAAADWQAAAAAAWQAAAAABWwAAAAAAWwAAAAACeQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAaAAAAAAAeQAAAAAAWQAAAAACWQAAAAAAWQAAAAABWQAAAAABeQAAAAAAWQAAAAABWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAYAAAAAAAYAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA + tiles: eQAAAAAAdgAAAAADdgAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAADeQAAAAAAKAAAAAAAYAAAAAAABgAAAAAAYAAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAYAAAAAAAKAAAAAAAYAAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAgAAAAAAWQAAAAAAWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAAAWQAAAAADWQAAAAAAWQAAAAACWQAAAAACWQAAAAAAWQAAAAABWQAAAAADWQAAAAAAWQAAAAABWQAAAAADWQAAAAADWQAAAAABWQAAAAABWQAAAAABWQAAAAACWQAAAAABAgAAAAAAWQAAAAACWQAAAAACWQAAAAAAWQAAAAACWQAAAAACWQAAAAACAgAAAAADWQAAAAADTQAAAAAAWQAAAAAAAgAAAAAAWQAAAAACWQAAAAAAWQAAAAACWQAAAAABWQAAAAAAWQAAAAAAWQAAAAADWQAAAAAAWQAAAAACAgAAAAAAWQAAAAABWQAAAAABWQAAAAABWQAAAAADWQAAAAACWQAAAAACWQAAAAABWQAAAAABWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAABWQAAAAACWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAWQAAAAACAgAAAAAAWQAAAAABeQAAAAAAeQAAAAAAWQAAAAACWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAWQAAAAACWQAAAAACWQAAAAACWQAAAAABWQAAAAADWQAAAAABWQAAAAAAWwAAAAADWwAAAAADeQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAaAAAAAAAeQAAAAAAWQAAAAADWQAAAAABWQAAAAACWQAAAAACeQAAAAAAAgAAAAAAWQAAAAACWwAAAAABWwAAAAACeQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAaAAAAAAAeQAAAAAAWQAAAAABWQAAAAABAgAAAAAAWQAAAAADWQAAAAADWQAAAAADWQAAAAABWwAAAAADWwAAAAABeQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAaAAAAAAAeQAAAAAAWQAAAAADWQAAAAACWQAAAAADWQAAAAADeQAAAAAAWQAAAAABWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAYAAAAAAAYAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAJgAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAA version: 6 1,-1: ind: 1,-1 - tiles: eQAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAcQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAbAAAAAADbAAAAAAAbAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAbAAAAAABbAAAAAABbAAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAbAAAAAADbAAAAAACbAAAAAADbAAAAAACcQAAAAABdgAAAAACdgAAAAADdgAAAAACdgAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAbAAAAAACbAAAAAACbAAAAAAAbAAAAAACeQAAAAAAdgAAAAABdgAAAAABdgAAAAACdgAAAAAAdgAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAYAAAAAAAYAAAAAAAbAAAAAAAbAAAAAACbAAAAAACbAAAAAABeQAAAAAAdgAAAAACdgAAAAAAdgAAAAAAdgAAAAACdgAAAAADeQAAAAAAeQAAAAAAeQAAAAAAYAAAAAAAeQAAAAAAeQAAAAAAbAAAAAADbAAAAAABbAAAAAAAbAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAbAAAAAADbAAAAAADbAAAAAACbAAAAAACeQAAAAAAbAAAAAADbAAAAAAAbAAAAAACbAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAbAAAAAACbAAAAAADbAAAAAABbAAAAAACcQAAAAACbAAAAAABbAAAAAABbAAAAAAAbAAAAAADeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAbAAAAAAAbAAAAAADbAAAAAABbAAAAAABeQAAAAAAbAAAAAAAbAAAAAADbAAAAAAAbAAAAAACeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAbAAAAAAAbAAAAAACbAAAAAADbAAAAAABeQAAAAAAbAAAAAABbAAAAAAAbAAAAAADbAAAAAABeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAWQAAAAADWQAAAAACWQAAAAAAbAAAAAADbAAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAWQAAAAACWQAAAAADWQAAAAACbAAAAAAAbAAAAAACbAAAAAADbAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAWQAAAAACWQAAAAADWQAAAAABbAAAAAADbAAAAAACbAAAAAACbAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAWQAAAAACWQAAAAAAWQAAAAAAbAAAAAAAbAAAAAADbAAAAAADbAAAAAADeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAD + tiles: eQAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAcQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAbAAAAAAAbAAAAAADbAAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAbAAAAAADbAAAAAADbAAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAbAAAAAAAbAAAAAADBQAAAAAAbAAAAAACcQAAAAADdgAAAAACdgAAAAAAdgAAAAADdgAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAbAAAAAADbAAAAAACbAAAAAABbAAAAAAAeQAAAAAAdgAAAAABdgAAAAABdgAAAAABdgAAAAACdgAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAYAAAAAAAYAAAAAAAbAAAAAAAbAAAAAACbAAAAAAAbAAAAAADeQAAAAAAdgAAAAABdgAAAAAAdgAAAAAAdgAAAAABdgAAAAACeQAAAAAAeQAAAAAAeQAAAAAAYAAAAAAAeQAAAAAAeQAAAAAAbAAAAAABbAAAAAADbAAAAAABbAAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAbAAAAAABBQAAAAAAbAAAAAABbAAAAAAAeQAAAAAAbAAAAAAAbAAAAAACbAAAAAACbAAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAbAAAAAABbAAAAAABbAAAAAADbAAAAAACcQAAAAACbAAAAAABbAAAAAAAbAAAAAABbAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAbAAAAAABbAAAAAADbAAAAAADbAAAAAACeQAAAAAAbAAAAAACbAAAAAADbAAAAAAAbAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAbAAAAAADbAAAAAADbAAAAAAAbAAAAAACeQAAAAAAbAAAAAACbAAAAAABbAAAAAACbAAAAAACeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAWQAAAAADWQAAAAADWQAAAAABbAAAAAACbAAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAWQAAAAADAgAAAAAAWQAAAAADbAAAAAABbAAAAAACbAAAAAABbAAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAWQAAAAACWQAAAAAAWQAAAAADbAAAAAADbAAAAAACbAAAAAABbAAAAAABeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAWQAAAAACWQAAAAACWQAAAAADbAAAAAABbAAAAAAAbAAAAAABbAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAB version: 6 0,-2: ind: 0,-2 - tiles: eQAAAAAAeQAAAAAAeQAAAAAAHQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAdgAAAAACdgAAAAABdgAAAAADdgAAAAAAdgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAABdgAAAAADdgAAAAAAdgAAAAADeQAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAACaAAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAABdgAAAAAAdgAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAADIgAAAAACdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAADdgAAAAABdgAAAAADdgAAAAABdgAAAAADdgAAAAAAdgAAAAABdgAAAAACeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAACHQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAACdgAAAAABdgAAAAACdgAAAAABdgAAAAACdgAAAAABdgAAAAABeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAADdgAAAAADdgAAAAAAdgAAAAACdgAAAAAAdgAAAAACdgAAAAABdgAAAAACeQAAAAAAeQAAAAAAeQAAAAAAQAAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAdgAAAAACdgAAAAAAdgAAAAABdgAAAAADdgAAAAACdgAAAAADdgAAAAADeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAACWQAAAAAAeQAAAAAAdgAAAAACdgAAAAACdgAAAAADdgAAAAABdgAAAAABdgAAAAACdgAAAAABeQAAAAAAeQAAAAAAaAAAAAAAZAAAAAADWQAAAAABWQAAAAAAWQAAAAACWQAAAAACeQAAAAAAeQAAAAAAdgAAAAAAdgAAAAACdgAAAAACdgAAAAACdgAAAAACdgAAAAABeQAAAAAAeQAAAAAAaAAAAAAAZAAAAAADWQAAAAABWQAAAAAAWQAAAAABWQAAAAACWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAZAAAAAACWQAAAAADWQAAAAABWQAAAAABWQAAAAABWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAZAAAAAAAWQAAAAABWQAAAAADWQAAAAABWQAAAAACWQAAAAACeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAWQAAAAADWQAAAAAAWQAAAAADWQAAAAACWQAAAAAAeQAAAAAAeQAAAAAAaQAAAAAAaQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAABWQAAAAAAWQAAAAABWQAAAAAAeQAAAAAAbAAAAAABbAAAAAAAbAAAAAADbAAAAAACeQAAAAAAIgAAAAABIgAAAAAAIgAAAAACIgAAAAADWQAAAAACWQAAAAABWQAAAAADWQAAAAAAWQAAAAAAWQAAAAACeQAAAAAAbAAAAAAAbAAAAAABbAAAAAACbAAAAAACeQAAAAAAHQAAAAADHQAAAAADHQAAAAADHQAAAAAD + tiles: eQAAAAAAeQAAAAAAeQAAAAAAHQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAdgAAAAAAdgAAAAABdgAAAAACeQAAAAAAdgAAAAABdgAAAAABdgAAAAAAdgAAAAADdgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAdgAAAAACdgAAAAAAdgAAAAACdgAAAAADdgAAAAACdgAAAAADdgAAAAACdgAAAAABeQAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAADaAAAAAAAdgAAAAACdgAAAAAAdgAAAAACdgAAAAAAdgAAAAADdgAAAAABdgAAAAACdgAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAADIgAAAAACdgAAAAABdgAAAAABdgAAAAACdgAAAAABdgAAAAAAdgAAAAACdgAAAAABdgAAAAAAdgAAAAABdgAAAAAAdgAAAAADeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAAAHQAAAAABdgAAAAADdgAAAAADdgAAAAACdgAAAAAAdgAAAAAAdgAAAAACdgAAAAAAdgAAAAADdgAAAAABdgAAAAAAdgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAAAeQAAAAAAdgAAAAABdgAAAAADdgAAAAACdgAAAAADdgAAAAADdgAAAAADdgAAAAADdgAAAAADdgAAAAABdgAAAAADdgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAQAAAAAAAeQAAAAAAdgAAAAABdgAAAAACdgAAAAAAeQAAAAAAdgAAAAABdgAAAAACdgAAAAADdgAAAAACdgAAAAABdgAAAAAAdgAAAAABeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAADWQAAAAADeQAAAAAAdgAAAAACdgAAAAACdgAAAAAAdgAAAAACdgAAAAADdgAAAAADdgAAAAADeQAAAAAAeQAAAAAAaAAAAAAAZAAAAAACWQAAAAADWQAAAAAAWQAAAAACWQAAAAADeQAAAAAAeQAAAAAAdgAAAAADdgAAAAACdgAAAAABdgAAAAAAdgAAAAABdgAAAAACeQAAAAAAeQAAAAAAaAAAAAAAZAAAAAABAgAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAZAAAAAAAWQAAAAADWQAAAAAAAgAAAAAAWQAAAAAAAgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAZAAAAAAAWQAAAAADWQAAAAAAWQAAAAAAWQAAAAABWQAAAAACeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAWQAAAAADAgAAAAAAWQAAAAACWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAaQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAACWQAAAAACWQAAAAAAWQAAAAADeQAAAAAAbAAAAAADbAAAAAACbAAAAAABbAAAAAADeQAAAAAAIgAAAAACIgAAAAACIgAAAAAAIgAAAAABWQAAAAADWQAAAAAAWQAAAAACWQAAAAAAWQAAAAAAWQAAAAABeQAAAAAAbAAAAAAAbAAAAAAAbAAAAAAAbAAAAAACeQAAAAAAHQAAAAABHQAAAAACHQAAAAABHQAAAAAC version: 6 1,-2: ind: 1,-2 - tiles: eQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAYAAAAAAAYAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAYAAAAAAAYAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAACYAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAcQAAAAAAcQAAAAABcQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA + tiles: eQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAYAAAAAAAYAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAYAAAAAAAYAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAWQAAAAABWQAAAAABYAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAcQAAAAACcQAAAAABcQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA version: 6 -1,1: ind: -1,1 - tiles: eQAAAAAALAAAAAAAUAAAAAAAUAAAAAAAUAAAAAAAeQAAAAAAWQAAAAADLQAAAAAAWQAAAAAALQAAAAAAWQAAAAABeQAAAAAAHQAAAAABHQAAAAADHQAAAAABHQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAACeQAAAAAAeQAAAAAAWQAAAAADWQAAAAACWQAAAAACWQAAAAABWQAAAAAAeQAAAAAAHQAAAAAAHQAAAAACHQAAAAAAHQAAAAACeQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeQAAAAAAHQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAABHQAAAAAAHQAAAAACHQAAAAADeQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAHQAAAAAAHQAAAAADHQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAIgAAAAACdgAAAAADdgAAAAAAdgAAAAABeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAdgAAAAAAdgAAAAACdgAAAAACeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAABdgAAAAADdgAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAYAAAAAAAeQAAAAAAeQAAAAAAYAAAAAAAeQAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAYAAAAAAAeQAAAAAAYAAAAAAAYAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAeQAAAAAAHQAAAAADHQAAAAACHQAAAAACeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAYAAAAAAAeQAAAAAAeQAAAAAAHQAAAAADHQAAAAACHQAAAAABAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAADHQAAAAADHQAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAHQAAAAADHQAAAAADHQAAAAAB + tiles: eQAAAAAAJgAAAAABJgAAAAABJgAAAAABeQAAAAAAeQAAAAAAWQAAAAACAgAAAAAAAgAAAAAAAgAAAAAAWQAAAAAAeQAAAAAAHQAAAAABHQAAAAADHQAAAAADHQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAAAWQAAAAADWQAAAAAAWQAAAAABeQAAAAAAHQAAAAADHQAAAAAAHQAAAAAAHQAAAAADeQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAeQAAAAAAHQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAAAHQAAAAACHQAAAAAAHQAAAAADeQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAHQAAAAADHQAAAAAAHQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAIgAAAAAAdgAAAAADdgAAAAACdgAAAAACeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAdgAAAAAAdgAAAAADdgAAAAACeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAADdgAAAAABdgAAAAACeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAHQAAAAACHQAAAAADHQAAAAACHQAAAAAAeQAAAAAAeQAAAAAATQAAAAAATQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAATQAAAAAAHQAAAAAAHQAAAAACHQAAAAADeQAAAAAAHQAAAAACHQAAAAABHQAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAATQAAAAAAHQAAAAAAHQAAAAACHQAAAAACHQAAAAABHQAAAAADHQAAAAACHQAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAATQAAAAAAHQAAAAABHQAAAAACHQAAAAADHQAAAAABHQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAHQAAAAABHQAAAAADHQAAAAADHQAAAAADeQAAAAAAHQAAAAACeQAAAAAAHQAAAAAA version: 6 -2,1: ind: -2,1 - tiles: dgAAAAACeQAAAAAAKQAAAAAAKQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAADeQAAAAAAKQAAAAAAKQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeQAAAAAALgAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: dgAAAAAAeQAAAAAAKQAAAAAAKQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAdgAAAAABeQAAAAAAKQAAAAAAKQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAdgAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeQAAAAAALgAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 -1,2: ind: -1,2 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAHQAAAAABHQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAABHQAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAHQAAAAACHQAAAAACeQAAAAAAeAAAAAAAeAAAAAAATQAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAHQAAAAABHQAAAAACHQAAAAADHQAAAAADHQAAAAABTQAAAAAAeAAAAAAAeAAAAAAATQAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAHQAAAAAAHQAAAAADHQAAAAAAHQAAAAACHQAAAAADTQAAAAAAeAAAAAAAeAAAAAAATQAAAAAAHQAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAABHQAAAAABHQAAAAADHQAAAAABHQAAAAAAHQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAATQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 1,1: ind: 1,1 - tiles: aAAAAAAAeQAAAAAAWQAAAAABWQAAAAADWQAAAAACWQAAAAAAWQAAAAAAWQAAAAABWQAAAAABZAAAAAAAWQAAAAABWQAAAAABWQAAAAABZAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAABWQAAAAADWQAAAAACWQAAAAADWQAAAAAAZAAAAAAAWQAAAAACWQAAAAADWQAAAAADZAAAAAACeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAABWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAADWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAWQAAAAABWQAAAAACeQAAAAAAZAAAAAADaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAWQAAAAACWQAAAAADeQAAAAAAZAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAWQAAAAACWQAAAAACWQAAAAACeQAAAAAAZAAAAAACaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAWQAAAAABWQAAAAADWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAABeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAWQAAAAADWQAAAAABWQAAAAADeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAAAWQAAAAABeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: aAAAAAAAeQAAAAAAWQAAAAADWQAAAAACWQAAAAACWQAAAAADWQAAAAACWQAAAAACWQAAAAAAZAAAAAACWQAAAAABWQAAAAAAWQAAAAADZAAAAAADeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAWQAAAAABWQAAAAADWQAAAAAAWQAAAAACWQAAAAADWQAAAAAAWQAAAAACZAAAAAADWQAAAAACWQAAAAABWQAAAAAAZAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAACWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAADWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAWQAAAAADWQAAAAABWQAAAAADeQAAAAAAZAAAAAABaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAWQAAAAACWQAAAAABWQAAAAADeQAAAAAAZAAAAAACaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAWQAAAAADWQAAAAAAWQAAAAABeQAAAAAAZAAAAAACaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAWQAAAAADWQAAAAADWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAWQAAAAADWQAAAAACWQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAWQAAAAACWQAAAAADWQAAAAACeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAAAWQAAAAABeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 0,2: ind: 0,2 - tiles: HQAAAAADHQAAAAABHQAAAAACHQAAAAADHQAAAAAAHQAAAAABHQAAAAAAHQAAAAADeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: HQAAAAADHQAAAAADHQAAAAABHQAAAAADHQAAAAADeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAACHQAAAAACHQAAAAABHQAAAAABHQAAAAABTQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAACHQAAAAACHQAAAAABHQAAAAACHQAAAAACTQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAHQAAAAACHQAAAAAAHQAAAAACHQAAAAADTQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATQAAAAAAeQAAAAAAeQAAAAAATQAAAAAATQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 2,0: ind: 2,0 - tiles: WQAAAAABWQAAAAABWQAAAAAAWQAAAAADeQAAAAAAHQAAAAAAHQAAAAADHQAAAAABHQAAAAAAeQAAAAAAeQAAAAAAHQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAABHQAAAAAAHQAAAAADHQAAAAABHQAAAAADHQAAAAACWQAAAAADWQAAAAAAWQAAAAAAWQAAAAACeQAAAAAAWQAAAAAAWQAAAAABWQAAAAAAWQAAAAADWQAAAAACWQAAAAAAWQAAAAADWQAAAAADWQAAAAADWQAAAAACWQAAAAAAWQAAAAAATAAAAAAAWQAAAAAAWQAAAAABWQAAAAABWQAAAAAAWQAAAAABWQAAAAACWQAAAAADWQAAAAAAWQAAAAAAWQAAAAADWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAATAAAAAAATAAAAAAATAAAAAAAWQAAAAACWQAAAAADWQAAAAABWQAAAAABWQAAAAADWQAAAAADWQAAAAAAWQAAAAAAWQAAAAABWQAAAAABWQAAAAABWQAAAAACWQAAAAAAWQAAAAADTAAAAAAAWQAAAAABWQAAAAADWQAAAAABWQAAAAADWQAAAAACWQAAAAAAWQAAAAAAWQAAAAADWQAAAAAAWQAAAAAAWQAAAAACWQAAAAACWQAAAAABWQAAAAABWQAAAAADWQAAAAACWQAAAAACWQAAAAADeQAAAAAAWQAAAAADWQAAAAAAWQAAAAABWQAAAAABWQAAAAADWQAAAAACWQAAAAAAWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAWQAAAAABWQAAAAADWQAAAAADHQAAAAADHQAAAAABHQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAACWQAAAAAAWQAAAAADeQAAAAAAHQAAAAADHQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAABHQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA + tiles: WQAAAAAAWQAAAAADWQAAAAACWQAAAAAAeQAAAAAAHQAAAAABHQAAAAAAHQAAAAABHQAAAAAAeQAAAAAAeQAAAAAAHQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAADHQAAAAABHQAAAAAAHQAAAAAAHQAAAAACHQAAAAACAgAAAAAAWQAAAAACWQAAAAAAWQAAAAABeQAAAAAAWQAAAAACWQAAAAADWQAAAAABWQAAAAADWQAAAAABWQAAAAAAWQAAAAAAWQAAAAADWQAAAAADWQAAAAACWQAAAAACWQAAAAADTAAAAAADWQAAAAACWQAAAAADWQAAAAACWQAAAAACWQAAAAADAgAAAAAAWQAAAAAAWQAAAAADWQAAAAAAWQAAAAABWQAAAAACAgAAAAAAWQAAAAABWQAAAAACTAAAAAAATAAAAAACTAAAAAACWQAAAAABeQAAAAAAWQAAAAABWQAAAAACWQAAAAADWQAAAAAAWQAAAAAAWQAAAAABWQAAAAACWQAAAAABWQAAAAACWQAAAAABWQAAAAAAWQAAAAABTAAAAAADWQAAAAAAWQAAAAABWQAAAAADWQAAAAADWQAAAAAAWQAAAAACWQAAAAADWQAAAAABWQAAAAAAWQAAAAABWQAAAAADWQAAAAABWQAAAAACWQAAAAABWQAAAAACWQAAAAAAAgAAAAAAWQAAAAAAeQAAAAAAWQAAAAABWQAAAAADWQAAAAADWQAAAAACWQAAAAADWQAAAAADWQAAAAABWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAAAWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAeQAAAAAAWQAAAAADAgAAAAAAWQAAAAABHQAAAAACHQAAAAAAHQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAATQAAAAAAWQAAAAAAWQAAAAABWQAAAAACeQAAAAAAHQAAAAACHQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAAAHQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA version: 6 3,0: ind: 3,0 - tiles: HQAAAAADWQAAAAAAHQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAACWQAAAAAAeQAAAAAAWQAAAAACWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAADWQAAAAACHQAAAAADHQAAAAADHQAAAAACHQAAAAABeQAAAAAAWQAAAAADaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAABWQAAAAABWQAAAAAAWQAAAAACWQAAAAADWQAAAAAAWQAAAAABaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAABWQAAAAACHQAAAAAAHQAAAAAAHQAAAAAAeQAAAAAAWQAAAAADaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAADWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAACWQAAAAADeQAAAAAAWQAAAAADWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAACWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAADHQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAAAHQAAAAABHQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAAAHQAAAAAAHQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAaQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAADHQAAAAADeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAaAAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAA + tiles: HQAAAAABWQAAAAADHQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAABWQAAAAACeQAAAAAAWQAAAAABWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAAAAgAAAAAAHQAAAAADHQAAAAABHQAAAAABHQAAAAABeQAAAAAAWQAAAAACaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAAAWQAAAAACWQAAAAABWQAAAAADWQAAAAABWQAAAAAAWQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAACWQAAAAACHQAAAAAAHQAAAAADHQAAAAABeQAAAAAAWQAAAAADaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAADWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAADWQAAAAAAeQAAAAAAWQAAAAAAWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAABWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAACHQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAAAHQAAAAABHQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAAAHQAAAAACHQAAAAABeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAaQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAAAHQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAaAAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAaQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAA version: 6 2,-1: ind: 2,-1 - tiles: AAAAAAAAeAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAACdgAAAAACEwAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAYAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAEwAAAAAGdgAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAeQAAAAAAeQAAAAAAdgAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAEwAAAAAEeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAEwAAAAAAeQAAAAAAEwAAAAAEdgAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAWQAAAAAAWQAAAAACWQAAAAABWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAWQAAAAADWQAAAAABWQAAAAADWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAWQAAAAAAWQAAAAACWQAAAAAAWQAAAAABeQAAAAAAdgAAAAADdgAAAAACdgAAAAADdgAAAAAAdgAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAWQAAAAACWQAAAAACWQAAAAABWQAAAAADeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAACdgAAAAAAdgAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAA + tiles: AAAAAAAAeAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAADdgAAAAACEwAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAYAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAEwAAAAACdgAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAABeQAAAAAAeQAAAAAAdgAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAABEwAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAEwAAAAAEeQAAAAAAEwAAAAADdgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAWQAAAAABWQAAAAACWQAAAAACWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAWQAAAAABWQAAAAADWQAAAAABWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAWQAAAAADWQAAAAACAgAAAAAAWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAWQAAAAABWQAAAAAAWQAAAAADWQAAAAADeQAAAAAAdgAAAAABdgAAAAABdgAAAAACdgAAAAACdgAAAAADeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAWQAAAAAAWQAAAAADWQAAAAAAWQAAAAABeQAAAAAAdgAAAAAAdgAAAAABdgAAAAADdgAAAAACdgAAAAABeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAA version: 6 -1,-2: ind: -1,-2 - tiles: eQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAACHQAAAAADHQAAAAADHQAAAAADHQAAAAAAHQAAAAAAHQAAAAACHQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAHQAAAAABHQAAAAABHQAAAAABHQAAAAABHQAAAAABHQAAAAABQAAAAAAAQAAAAAAAQAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAATQAAAAAATQAAAAAAIgAAAAABHQAAAAACHQAAAAABHQAAAAADLQAAAAAALQAAAAAAHQAAAAACQAAAAAAAQAAAAAAAQAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAABHQAAAAAALQAAAAAALQAAAAAAHQAAAAAAHQAAAAACHQAAAAAAeQAAAAAAeQAAAAAAHQAAAAACHQAAAAACHQAAAAAAHQAAAAABHQAAAAADHQAAAAAAeQAAAAAAHQAAAAADHQAAAAADLQAAAAAALQAAAAAAHQAAAAADHQAAAAACHQAAAAABIgAAAAACHQAAAAADHQAAAAAAHQAAAAACHQAAAAABHQAAAAAAHQAAAAADHQAAAAAAeQAAAAAAHQAAAAAAHQAAAAACHQAAAAAAHQAAAAABHQAAAAABHQAAAAACHQAAAAABeQAAAAAAHQAAAAADHQAAAAADHQAAAAACHQAAAAACHQAAAAAAHQAAAAADHQAAAAADIgAAAAABHQAAAAABHQAAAAABHQAAAAAAHQAAAAABHQAAAAABHQAAAAAAHQAAAAABeQAAAAAAHQAAAAADHQAAAAABHQAAAAAAHQAAAAAAIgAAAAACHQAAAAADHQAAAAADeQAAAAAAHQAAAAABHQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAQAAAAAAAQAAAAAAAIQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAIgAAAAACeQAAAAAAWQAAAAAAWQAAAAADeQAAAAAAdgAAAAABdgAAAAAAdgAAAAABeQAAAAAAeQAAAAAAeQAAAAAAIQAAAAACIQAAAAADIQAAAAAAeQAAAAAAWQAAAAABWQAAAAABWQAAAAAAWQAAAAADWQAAAAACeQAAAAAAdgAAAAACdgAAAAADdgAAAAAAeQAAAAAAEQAAAAAAeQAAAAAAIQAAAAACIQAAAAABIQAAAAAAeQAAAAAAWQAAAAACWQAAAAACWQAAAAAAWQAAAAADWQAAAAACZAAAAAAAIQAAAAACIQAAAAACIQAAAAABeQAAAAAAEQAAAAAAeQAAAAAAIQAAAAACIQAAAAABeQAAAAAAeQAAAAAAWQAAAAADWQAAAAADWQAAAAADWQAAAAADWQAAAAADeQAAAAAAIQAAAAAAIQAAAAAAIQAAAAACEQAAAAAAEQAAAAAAeQAAAAAAIQAAAAAAIQAAAAAAWQAAAAAAWQAAAAACWQAAAAACWQAAAAADWQAAAAAAWQAAAAAAWQAAAAADeQAAAAAAIQAAAAAAIQAAAAADIQAAAAABEQAAAAAAEQAAAAAAeQAAAAAAIQAAAAAAIQAAAAAAZAAAAAABWQAAAAABWQAAAAACWQAAAAACWQAAAAACWQAAAAACWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAZAAAAAADZAAAAAABWQAAAAABWQAAAAAAZAAAAAAAZAAAAAAAWQAAAAAAWQAAAAACWQAAAAAAWQAAAAABWQAAAAABWQAAAAADWQAAAAACWQAAAAABWQAAAAAAWQAAAAADWQAAAAADWQAAAAACWQAAAAAAWQAAAAADWQAAAAAAWQAAAAAC + tiles: eQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAAAHQAAAAAAHQAAAAABHQAAAAAAHQAAAAABHQAAAAACHQAAAAADHQAAAAADeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAATQAAAAAATQAAAAAATQAAAAAAHQAAAAABHQAAAAADHQAAAAABHQAAAAACHQAAAAACHQAAAAADQAAAAAAAQAAAAAAAQAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAATQAAAAAATQAAAAAAIgAAAAACHQAAAAABHQAAAAAAHQAAAAACLQAAAAACLQAAAAADHQAAAAACQAAAAAAAQAAAAAAAQAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAACHQAAAAADLQAAAAAALQAAAAAAHQAAAAACHQAAAAACHQAAAAABeQAAAAAAeQAAAAAAHQAAAAADHQAAAAADHQAAAAABHQAAAAACHQAAAAAAHQAAAAABeQAAAAAAHQAAAAABHQAAAAAALQAAAAABLQAAAAABHQAAAAADHQAAAAADHQAAAAACIgAAAAACHQAAAAAAHQAAAAABHQAAAAABHQAAAAADHQAAAAAAHQAAAAAAHQAAAAABeQAAAAAAHQAAAAADHQAAAAADHQAAAAADHQAAAAABHQAAAAADHQAAAAABHQAAAAAAeQAAAAAAHQAAAAADHQAAAAADHQAAAAAAHQAAAAAAHQAAAAABHQAAAAADHQAAAAAAIgAAAAACHQAAAAACHQAAAAAAHQAAAAACHQAAAAACHQAAAAADHQAAAAABHQAAAAABeQAAAAAAHQAAAAAAHQAAAAACHQAAAAABHQAAAAACIgAAAAACHQAAAAADHQAAAAAAeQAAAAAAHQAAAAACHQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAQAAAAAAAQAAAAAAAIQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAIgAAAAADeQAAAAAAWQAAAAABWQAAAAAAeQAAAAAAdgAAAAADdgAAAAADdgAAAAABeQAAAAAAeQAAAAAAeQAAAAAAIQAAAAACIQAAAAADIQAAAAABeQAAAAAAWQAAAAABWQAAAAACWQAAAAADWQAAAAACWQAAAAACeQAAAAAAdgAAAAABdgAAAAABdgAAAAABeQAAAAAAEQAAAAAAeQAAAAAAIQAAAAACIQAAAAABIQAAAAACeQAAAAAAWQAAAAAAWQAAAAADWQAAAAABWQAAAAABWQAAAAADZAAAAAADIQAAAAADIQAAAAADIQAAAAABeQAAAAAAEQAAAAAAeQAAAAAAIQAAAAACIQAAAAACeQAAAAAAeQAAAAAAWQAAAAABWQAAAAAAWQAAAAACWQAAAAADWQAAAAAAeQAAAAAAIQAAAAABIQAAAAAAIQAAAAADEQAAAAAAEQAAAAAAeQAAAAAAIQAAAAADIQAAAAACWQAAAAABWQAAAAACWQAAAAACWQAAAAACWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAIQAAAAAAIQAAAAABIQAAAAADEQAAAAAAEQAAAAAAeQAAAAAAIQAAAAACIQAAAAABZAAAAAACWQAAAAABWQAAAAADWQAAAAAAWQAAAAABWQAAAAABWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAZAAAAAACZAAAAAAAWQAAAAADAgAAAAAAZAAAAAACZAAAAAAAWQAAAAADWQAAAAADWQAAAAAAWQAAAAACWQAAAAACWQAAAAABWQAAAAABWQAAAAADWQAAAAACWQAAAAACWQAAAAADWQAAAAACWQAAAAACWQAAAAAAWQAAAAAAWQAAAAAD version: 6 -2,-2: ind: -2,-2 - tiles: HQAAAAABHQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAATQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAaQAAAAAAHQAAAAADHQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAHQAAAAACHQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAHQAAAAABHQAAAAACdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAIQAAAAACIQAAAAACdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAHQAAAAAAIQAAAAAAIQAAAAABdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAHQAAAAAAIQAAAAADIQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAIQAAAAABIQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAIQAAAAAAIQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAIQAAAAAAIQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAAAHQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAADWQAAAAACWQAAAAAAWQAAAAAAWQAAAAABWQAAAAAAWQAAAAABWQAAAAABWQAAAAAC + tiles: HQAAAAAAHQAAAAADeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAATQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAATQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAHQAAAAAAdgAAAAABdgAAAAACdgAAAAADdgAAAAACdgAAAAABdgAAAAAAdgAAAAABRQAAAAAAHQAAAAAAHQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAdgAAAAABdgAAAAAAdgAAAAAAdgAAAAADeQAAAAAAdgAAAAACdgAAAAADeQAAAAAAHQAAAAACHQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAADdgAAAAABdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAADdgAAAAABdgAAAAADeQAAAAAAHQAAAAAAHQAAAAADdgAAAAAAdgAAAAABdgAAAAABdgAAAAACeQAAAAAAdgAAAAABdgAAAAAAdgAAAAADdgAAAAACdgAAAAACdgAAAAACdgAAAAABdgAAAAACeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAABdgAAAAABdgAAAAADdgAAAAACeQAAAAAAdgAAAAACdgAAAAAAdgAAAAADdgAAAAAAdgAAAAADdgAAAAABdgAAAAADdgAAAAAAeQAAAAAAIQAAAAACIQAAAAADdgAAAAADdgAAAAADdgAAAAAAdgAAAAABdgAAAAAAdgAAAAACdgAAAAAAdgAAAAADdgAAAAACdgAAAAACdgAAAAABdgAAAAABdgAAAAACHQAAAAAAIQAAAAADIQAAAAAAdgAAAAAAdgAAAAADdgAAAAADdgAAAAACdgAAAAABdgAAAAADdgAAAAABdgAAAAABdgAAAAACdgAAAAABdgAAAAABdgAAAAADdgAAAAACHQAAAAADIQAAAAABIQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAACdgAAAAADdgAAAAACdgAAAAADdgAAAAABdgAAAAACeQAAAAAAIQAAAAADIQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAACdgAAAAABdgAAAAACdgAAAAACdgAAAAAAdgAAAAADdgAAAAACdgAAAAABeQAAAAAAIQAAAAAAIQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAABdgAAAAADdgAAAAADdgAAAAABdgAAAAABdgAAAAAAdgAAAAABdgAAAAADeQAAAAAAeQAAAAAAIQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAABHQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAAAWQAAAAAAWQAAAAACWQAAAAABWQAAAAABWQAAAAABWQAAAAABAgAAAAAAWQAAAAAB version: 6 -2,-1: ind: -2,-1 - tiles: aAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAADWQAAAAABWQAAAAADWQAAAAADWQAAAAACWQAAAAAAWQAAAAACWQAAAAAAWQAAAAADaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAACWQAAAAABWQAAAAADWQAAAAACWQAAAAABWQAAAAAAWQAAAAABWQAAAAACWQAAAAADaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAABWQAAAAAAWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAAAWQAAAAABIgAAAAACHQAAAAAAHQAAAAACHQAAAAAAHQAAAAAAIgAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAACWQAAAAABeQAAAAAAHQAAAAADHQAAAAAAHQAAAAACHQAAAAACeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAWQAAAAAAWQAAAAACWQAAAAACeQAAAAAAeQAAAAAAHQAAAAABHQAAAAACHQAAAAADeQAAAAAAeQAAAAAAPQAAAAAAPQAAAAAAPQAAAAAAPQAAAAAAeQAAAAAAWQAAAAAAWQAAAAACWQAAAAAAWQAAAAABWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAPQAAAAAAPQAAAAAAPQAAAAAAPQAAAAAAPQAAAAAAWQAAAAABWQAAAAABWQAAAAACWQAAAAAAWQAAAAADGQAAAAAAGQAAAAAAGQAAAAAAQQAAAAAAeQAAAAAAeQAAAAAAPQAAAAAAPQAAAAAAPQAAAAAAPQAAAAAAeQAAAAAAWQAAAAABWQAAAAADWQAAAAAAWQAAAAADWQAAAAAAeQAAAAAAGQAAAAAAGQAAAAAAQQAAAAAAGQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAADWQAAAAABWQAAAAAAWQAAAAAAeQAAAAAAGQAAAAAAGQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAABdgAAAAABdgAAAAABdgAAAAACdgAAAAABWQAAAAADWQAAAAAAWQAAAAABWQAAAAABWQAAAAACdgAAAAABdgAAAAADdgAAAAACeQAAAAAAaAAAAAAAeQAAAAAAdgAAAAAAdgAAAAABdgAAAAABdgAAAAADeQAAAAAAWQAAAAAAWQAAAAACWQAAAAACWQAAAAABWQAAAAAAdgAAAAABdgAAAAACdgAAAAACeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAADWQAAAAADWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAOgAAAAAAeQAAAAAAdgAAAAACdgAAAAAAdgAAAAADdgAAAAADdgAAAAABWQAAAAADWQAAAAABWQAAAAACWQAAAAAAeQAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAeQAAAAAAdgAAAAACdgAAAAACdgAAAAAAdgAAAAADeQAAAAAAWQAAAAABWQAAAAACWQAAAAACWQAAAAABeQAAAAAAOgAAAAAAYwAAAAAAYwAAAAAAYwAAAAAAOgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAACWQAAAAACWQAAAAADeQAAAAAAOgAAAAAAYwAAAAADYwAAAAABYwAAAAACOgAAAAAA + tiles: aAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAACWQAAAAABWQAAAAADWQAAAAACWQAAAAABWQAAAAABWQAAAAABWQAAAAADWQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAADWQAAAAABWQAAAAACAgAAAAAAWQAAAAABWQAAAAACWQAAAAADWQAAAAADWQAAAAACaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAABWQAAAAADWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAHQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAACWQAAAAAAWQAAAAACeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAABAgAAAAAAWQAAAAADWQAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAgAAAAAAWQAAAAABWQAAAAACWQAAAAADWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADTQAAAAAAWQAAAAACeQAAAAAAWQAAAAAAeQAAAAAAHQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAPQAAAAAAPQAAAAAAPQAAAAAATQAAAAAAWQAAAAAAWQAAAAABWQAAAAACeQAAAAAAHQAAAAAAHQAAAAAAHQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAPQAAAAAAPQAAAAAAPQAAAAAATQAAAAAAWQAAAAABWQAAAAABWQAAAAACWQAAAAAAHQAAAAAAHQAAAAAAHQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAPQAAAAAAPQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAABWQAAAAAAWQAAAAAAHQAAAAAAHQAAAAAAHQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAPQAAAAAAPQAAAAAAWQAAAAAAWQAAAAACWQAAAAAAWQAAAAABWQAAAAABeQAAAAAAHQAAAAAAHQAAAAAAHQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAABWQAAAAABWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAOgAAAAAAeQAAAAAAdgAAAAADdgAAAAABeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAYAAAAAAAKAAAAAAAYAAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAeQAAAAAAdgAAAAADdgAAAAADeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAABgAAAAAAKAAAAAAAYAAAAAAAYAAAAAAAOgAAAAAAOgAAAAAAOgAAAAAAeQAAAAAAdgAAAAAAdgAAAAACeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAABeQAAAAAAKAAAAAAABgAAAAAAKAAAAAAAYAAAAAAAOgAAAAAAOgAAAAAAOgAAAAAA version: 6 -3,0: ind: -3,0 - tiles: eQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAAAWQAAAAADWQAAAAAAWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAABWQAAAAABWQAAAAABWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAACWQAAAAACWQAAAAADWQAAAAABWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAABWQAAAAADWQAAAAACWQAAAAACWQAAAAADWQAAAAADWQAAAAABAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAWQAAAAADWQAAAAABWQAAAAADWQAAAAABWQAAAAACWQAAAAADWQAAAAACWQAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAADWQAAAAABWQAAAAACWQAAAAABWQAAAAADWQAAAAAAWQAAAAACAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAACWQAAAAACWQAAAAAAWQAAAAAAWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAADWQAAAAACWQAAAAAAWQAAAAACWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAADWQAAAAADWQAAAAAAWQAAAAADWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAAAWQAAAAADWQAAAAAAWQAAAAABWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAAAWQAAAAADWQAAAAACWQAAAAADWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAdgAAAAAAEwAAAAAAEwAAAAAAEwAAAAAAdgAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAEwAAAAAAdgAAAAAAdgAAAAAAEwAAAAAAEwAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAEwAAAAAAEwAAAAAAEwAAAAAAdgAAAAABeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAEwAAAAAAdgAAAAAAEwAAAAAAdgAAAAAAEwAAAAAAeQAAAAAAeQAAAAAA + tiles: eQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAAAWQAAAAACWQAAAAABWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAACWQAAAAACWQAAAAABWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAABAgAAAAAAWQAAAAADWQAAAAADWQAAAAACWQAAAAACeQAAAAAAaQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAACWQAAAAABWQAAAAACWQAAAAAAWQAAAAABWQAAAAADWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAWQAAAAADWQAAAAABWQAAAAACWQAAAAACWQAAAAADWQAAAAADWQAAAAABWQAAAAABWQAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAWQAAAAACWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAADWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAWQAAAAACWQAAAAADWQAAAAABWQAAAAACWQAAAAAAWQAAAAACWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAADWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAgAAAAAAWQAAAAACWQAAAAABWQAAAAAAWQAAAAACWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAACWQAAAAABWQAAAAAAAgAAAAAAWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAABWQAAAAABWQAAAAAAWQAAAAACWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAdgAAAAABEwAAAAABEwAAAAACEwAAAAAEdgAAAAABeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAEwAAAAADdgAAAAAAdgAAAAAAEwAAAAACEwAAAAACeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAdgAAAAACdgAAAAABEwAAAAAAEwAAAAAAEwAAAAABdgAAAAADeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAEwAAAAABdgAAAAACEwAAAAADdgAAAAAAEwAAAAAEeQAAAAAAeQAAAAAA version: 6 -3,-1: ind: -3,-1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAAAWQAAAAACWQAAAAACWQAAAAAAWQAAAAADWQAAAAABWQAAAAADWQAAAAAAWQAAAAABWQAAAAABWQAAAAAAWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAALQAAAAAALQAAAAAAWQAAAAADWQAAAAAAWQAAAAACLQAAAAAALQAAAAAALQAAAAAAWQAAAAAAWQAAAAACLQAAAAAALQAAAAAALQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAABWQAAAAADWQAAAAADWQAAAAAAWQAAAAABWQAAAAADWQAAAAADWQAAAAACWQAAAAACWQAAAAADWQAAAAABWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAZAAAAAABZAAAAAADZAAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAWQAAAAABWQAAAAACWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAAAWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAALAAAAAAALAAAAAAALAAAAAAAeQAAAAAAWQAAAAAAWQAAAAACWQAAAAABWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAALAAAAAAALAAAAAAALAAAAAAAeQAAAAAAWQAAAAAAWQAAAAABWQAAAAABWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAALAAAAAAALAAAAAAALAAAAAAAeQAAAAAAWQAAAAAAWQAAAAADWQAAAAAAWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAACWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAWQAAAAABWQAAAAABWQAAAAADWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAACWQAAAAACWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAAAWQAAAAABWQAAAAACWQAAAAABWQAAAAACWQAAAAACWQAAAAADWQAAAAAAWQAAAAAAWQAAAAACWQAAAAADWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAALQAAAAADLQAAAAAAWQAAAAADWQAAAAADWQAAAAAALQAAAAACLQAAAAACLQAAAAACWQAAAAADAgAAAAAALQAAAAAALQAAAAACLQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAAAWQAAAAAAAgAAAAAAWQAAAAADWQAAAAACWQAAAAABWQAAAAACWQAAAAABWQAAAAABWQAAAAACWQAAAAADWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAZAAAAAABZAAAAAAAZAAAAAADeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAADWQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAALAAAAAAALAAAAAAALAAAAAAAeQAAAAAAWQAAAAABWQAAAAAAWQAAAAAAAgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAALAAAAAAALAAAAAAALAAAAAAAeQAAAAAAWQAAAAABWQAAAAACWQAAAAAAWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAALAAAAAAALAAAAAAALAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAAAWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAWQAAAAABWQAAAAABAgAAAAAAWQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAABWQAAAAAAWQAAAAADWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAA version: 6 3,-1: ind: 3,-1 - tiles: eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAHQAAAAACHQAAAAACeQAAAAAAJgAAAAAAJgAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAJgAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAADeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAHQAAAAADHQAAAAACeQAAAAAAJgAAAAACJgAAAAACeQAAAAAAQAAAAAAAeQAAAAAAaAAAAAAAQAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAHQAAAAAAHQAAAAAAeQAAAAAAJgAAAAACJgAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAJgAAAAADeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAZAAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAWQAAAAACWQAAAAACWQAAAAABWQAAAAACWQAAAAAAWQAAAAAAWQAAAAAAeQAAAAAAWQAAAAADWQAAAAABWQAAAAAAWQAAAAADWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAACWQAAAAABWQAAAAACWQAAAAABWQAAAAACWQAAAAADZAAAAAACWQAAAAAAWQAAAAADWQAAAAADWQAAAAABWQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAADWQAAAAADWQAAAAAAWQAAAAADWQAAAAAAWQAAAAADeQAAAAAAaAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAWQAAAAABWQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAZAAAAAADeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAADWQAAAAAAHQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA + tiles: eQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAHQAAAAADHQAAAAAAeQAAAAAAJgAAAAADJgAAAAACaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAJgAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAABeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAHQAAAAABHQAAAAABeQAAAAAAJgAAAAABJgAAAAABeQAAAAAAQAAAAAAAeQAAAAAAaAAAAAAAQAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJgAAAAADeQAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAHQAAAAAAHQAAAAABeQAAAAAAJgAAAAABJgAAAAADeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAJgAAAAACeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAZAAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAWQAAAAAAWQAAAAACWQAAAAACWQAAAAADWQAAAAADWQAAAAACWQAAAAABeQAAAAAAWQAAAAABWQAAAAABWQAAAAABWQAAAAACWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAADWQAAAAACWQAAAAABWQAAAAABWQAAAAACWQAAAAABZAAAAAACWQAAAAACWQAAAAAAWQAAAAAAWQAAAAADWQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAABWQAAAAADWQAAAAABWQAAAAABWQAAAAABWQAAAAABeQAAAAAAaAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAWQAAAAACWQAAAAACWQAAAAABeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAZAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAQAAAAAAAQAAAAAAAQAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAAAWQAAAAAAHQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA version: 6 2,-2: ind: 2,-2 - tiles: eAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAHQAAAAABHQAAAAABHQAAAAABeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAHQAAAAACLQAAAAAALQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAACHQAAAAABLQAAAAAALwAAAAAALQAAAAAALQAAAAAALQAAAAAAHQAAAAABHQAAAAABHQAAAAADHQAAAAABWQAAAAADHQAAAAADHQAAAAAAHQAAAAAAHQAAAAAAHQAAAAADLQAAAAAALwAAAAAALwAAAAAALQAAAAAALQAAAAAAHQAAAAADHQAAAAABHQAAAAABHQAAAAABHQAAAAACHQAAAAADHQAAAAADHQAAAAABHQAAAAABeQAAAAAAHQAAAAABLQAAAAAALwAAAAAALwAAAAAALQAAAAAAHQAAAAACHQAAAAADHQAAAAABHQAAAAACHQAAAAADHQAAAAACeQAAAAAAHQAAAAADHQAAAAABHQAAAAABHQAAAAACHQAAAAABLQAAAAAALwAAAAAALwAAAAAAHQAAAAADHQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAADHQAAAAAALQAAAAAALwAAAAAAHQAAAAADHQAAAAADeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAHQAAAAADLQAAAAAALQAAAAAAHQAAAAADHQAAAAABeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAHQAAAAABHQAAAAADHQAAAAAAHQAAAAABHQAAAAADeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAA + tiles: eAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAHQAAAAACHQAAAAABHQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAHQAAAAACJgAAAAAALQAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAABLQAAAAABHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAALQAAAAADHQAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAALQAAAAACJgAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAALQAAAAABHQAAAAAAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAACLQAAAAACHQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAHQAAAAADJgAAAAAALQAAAAADeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAHQAAAAADHQAAAAAAHQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAA version: 6 5,-1: ind: 5,-1 @@ -163,15 +169,15 @@ entities: version: 6 3,-2: ind: 3,-2 - tiles: eQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAHQAAAAABHQAAAAACeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAHQAAAAACHQAAAAABHQAAAAABeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALQAAAAAALQAAAAAALQAAAAAAHQAAAAADHQAAAAADHQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwAAAAAALwAAAAAALwAAAAAALQAAAAAALQAAAAAAHQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwAAAAAALwAAAAAALwAAAAAALwAAAAAALQAAAAAAHQAAAAACHQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwAAAAAALwAAAAAALwAAAAAALwAAAAAALwAAAAAALQAAAAAAHQAAAAABHQAAAAADeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwAAAAAALwAAAAAALwAAAAAALwAAAAAALwAAAAAALQAAAAAAHQAAAAABHQAAAAABeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwAAAAAALwAAAAAALwAAAAAALwAAAAAALwAAAAAALQAAAAAAHQAAAAABHQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwAAAAAALwAAAAAALwAAAAAALwAAAAAALQAAAAAAHQAAAAAAHQAAAAABeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwAAAAAALwAAAAAALwAAAAAALQAAAAAALQAAAAAAHQAAAAADeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALQAAAAAALQAAAAAALQAAAAAAHQAAAAADHQAAAAACHQAAAAADeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAACHQAAAAADHQAAAAADHQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAABHQAAAAAAHQAAAAADeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAA + tiles: eQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAABHQAAAAACHQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAAAAAAHQAAAAAAJgAAAAAAHQAAAAACeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALQAAAAADLQAAAAADLQAAAAACHQAAAAADHQAAAAAAHQAAAAABeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAJgAAAAAAHQAAAAAALQAAAAADJgAAAAAAHQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAAAAAAHQAAAAAAJgAAAAAAHQAAAAAALQAAAAAAHQAAAAABHQAAAAACeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAHQAAAAAAHQAAAAAAHQAAAAAAHQAAAAAALQAAAAABJgAAAAAAHQAAAAACeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAAAHQAAAAAAEQAAAAAAHQAAAAAAJgAAAAAALQAAAAABHQAAAAACHQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAHQAAAAAAHQAAAAAAHQAAAAAAHQAAAAAALQAAAAACJgAAAAAAHQAAAAACeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAAAAAAHQAAAAAAJgAAAAAAHQAAAAAALQAAAAADHQAAAAABHQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAJgAAAAAAHQAAAAAALQAAAAABJgAAAAAAHQAAAAABeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALQAAAAACLQAAAAACLQAAAAABHQAAAAAAHQAAAAADHQAAAAABeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAABHQAAAAADHQAAAAACHQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQAAAAAAHQAAAAADHQAAAAACeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAA version: 6 -3,1: ind: -3,1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAEwAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAADeQAAAAAAdgAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAdgAAAAADEwAAAAAAdgAAAAAAdgAAAAADdgAAAAAAdgAAAAAAdgAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAdgAAAAAAdgAAAAADdgAAAAAAdgAAAAACdgAAAAACdgAAAAADdgAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAdgAAAAAAEwAAAAAAdgAAAAAAEwAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAEwAAAAADeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAeQAAAAAAdgAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAdgAAAAACEwAAAAACdgAAAAAAdgAAAAACdgAAAAADdgAAAAACdgAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAdgAAAAACdgAAAAAAdgAAAAACdgAAAAABdgAAAAACdgAAAAABdgAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAdgAAAAABEwAAAAACdgAAAAABEwAAAAACeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAA version: 6 0,-3: ind: 0,-3 - tiles: eAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAKAAAAAACKAAAAAADeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAADOgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAOgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAADHQAAAAACHQAAAAAAHQAAAAAAHQAAAAAAHQAAAAADeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAABHQAAAAAAHQAAAAABHQAAAAABHQAAAAABHQAAAAADeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJAAAAAAAJAAAAAADJAAAAAAAJAAAAAACeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJAAAAAACeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA + tiles: eAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAKAAAAAADKAAAAAACeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWQAAAAADOgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAOgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAABHQAAAAABHQAAAAABHQAAAAADHQAAAAACHQAAAAADeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAABHQAAAAABHQAAAAAAHQAAAAABHQAAAAAAHQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJAAAAAABJAAAAAABJAAAAAACJAAAAAABeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAJAAAAAACeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAdgAAAAACdgAAAAAAdgAAAAACdgAAAAABdgAAAAABeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAdgAAAAAAdgAAAAAAdgAAAAADdgAAAAADdgAAAAACeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAdgAAAAABdgAAAAABdgAAAAACdgAAAAAAdgAAAAABeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA version: 6 1,-3: ind: 1,-3 @@ -179,19 +185,19 @@ entities: version: 6 2,1: ind: 2,1 - tiles: eQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: eQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAATgAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 3,1: ind: 3,1 - tiles: eQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: eQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 -1,-3: ind: -1,-3 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAKAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAOgAAAAAAeQAAAAAAWQAAAAACeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAWQAAAAACeQAAAAAAWQAAAAAAOgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAWQAAAAAAOgAAAAAAOgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAACdgAAAAADdgAAAAAAdgAAAAAAdgAAAAADeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAdgAAAAACdgAAAAADdgAAAAACdgAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAADdgAAAAACdgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAAAHQAAAAADHQAAAAABHQAAAAACHQAAAAABHQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAKAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAOgAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAWQAAAAAAeQAAAAAAWQAAAAABOgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAWQAAAAADOgAAAAAAOgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAdgAAAAACdgAAAAAAdgAAAAADdgAAAAABeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAdgAAAAADdgAAAAABdgAAAAAAdgAAAAACeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAACdgAAAAADdgAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAAAHQAAAAADHQAAAAACHQAAAAAAHQAAAAACHQAAAAADeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA version: 6 4,-1: ind: 4,-1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAA version: 6 4,0: ind: 4,0 @@ -199,23 +205,23 @@ entities: version: 6 3,-3: ind: 3,-3 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 2,-3: ind: 2,-3 - tiles: eAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAA + tiles: eAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAA version: 6 -3,-2: ind: -3,-2 - tiles: AAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAHQAAAAAAHQAAAAADAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAADHQAAAAACAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAdgAAAAACdgAAAAABdgAAAAACdgAAAAABdgAAAAABeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAdgAAAAAAdgAAAAABdgAAAAACdgAAAAACdgAAAAACAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAdgAAAAAAdgAAAAACdgAAAAABdgAAAAABdgAAAAADAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAdgAAAAABdgAAAAABAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAdgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAPgAAAAAAPgAAAAAAPgAAAAAAeQAAAAAAdgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAdgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA + tiles: AAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAACHQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAADHQAAAAACAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAHQAAAAACHQAAAAABHQAAAAADHQAAAAAAHQAAAAADeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAHQAAAAADHQAAAAABHQAAAAABHQAAAAABHQAAAAADAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAHQAAAAABHQAAAAACHQAAAAACHQAAAAADHQAAAAACAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAHQAAAAAAHQAAAAABHQAAAAADHQAAAAACHQAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAHQAAAAADHQAAAAACHQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAHQAAAAABHQAAAAABHQAAAAABeQAAAAAAdgAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAHQAAAAAAHQAAAAADHQAAAAAAeQAAAAAAdgAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAdgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA version: 6 -3,-3: ind: -3,-3 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAHQAAAAADHQAAAAAC + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAACHQAAAAAA version: 6 -2,-3: ind: -2,-3 - tiles: eAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAdgAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAdgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAHQAAAAAAHQAAAAABeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeAAAAAAA + tiles: eAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAdgAAAAADeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAdgAAAAADAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAdgAAAAADeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAaAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAaAAAAAAAaAAAAAAAaAAAAAAAeQAAAAAAeAAAAAAA version: 6 -4,0: ind: -4,0 @@ -223,19 +229,19 @@ entities: version: 6 -4,-1: ind: -4,-1 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAWQAAAAADWQAAAAAAWQAAAAADWQAAAAAAWQAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAACWQAAAAAALQAAAAAALQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAACWQAAAAABWQAAAAAAWQAAAAAAWQAAAAABWQAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAAAWQAAAAADWQAAAAABWQAAAAACWQAAAAABWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAAAWQAAAAAAWQAAAAADWQAAAAACLQAAAAACLQAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAWQAAAAADWQAAAAADWQAAAAAAWQAAAAACWQAAAAAAWQAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAA version: 6 -3,2: ind: -3,2 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAeAAAAAAAeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAATAAAAAABTAAAAAADTAAAAAAATAAAAAAAeAAAAAAATAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAATAAAAAABTAAAAAACTAAAAAAATAAAAAABeAAAAAAATAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAATAAAAAABTAAAAAABTAAAAAACTAAAAAAAeAAAAAAATAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAATAAAAAACTAAAAAADTAAAAAADTAAAAAADeAAAAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAATAAAAAADTAAAAAAATAAAAAABTAAAAAAAeAAAAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAATAAAAAADTAAAAAAATAAAAAAATAAAAAABeAAAAAAATAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 -2,2: ind: -2,2 - tiles: eQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeQAAAAAAeQAAAAAAeQAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: TAAAAAADTAAAAAADTAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAABTAAAAAADTAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAACTAAAAAADTAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAACTAAAAAACTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAADTAAAAAADTAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAADTAAAAAABTAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 -4,-2: ind: -4,-2 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 -4,-3: ind: -4,-3 @@ -243,11 +249,11 @@ entities: version: 6 -3,-4: ind: -3,-4 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAA version: 6 -2,-4: ind: -2,-4 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAeAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA version: 6 - type: Broadphase - type: Physics @@ -272,23 +278,25 @@ entities: -5,-4: 0: 61695 -4,-3: - 0: 47871 + 0: 14591 -4,-2: - 0: 12731 - 1: 49152 + 0: 703 + 1: 57344 + -5,-3: + 0: 57975 -5,-2: - 0: 47935 - -5,-1: - 0: 65528 + 0: 61422 -4,-1: + 1: 14 0: 61056 - 1: 12 + -5,-1: + 0: 32760 -4,0: 0: 61695 -3,-4: - 0: 54527 + 0: 24063 -3,-3: - 0: 3581 + 0: 3549 -3,-2: 0: 247 1: 28672 @@ -300,9 +308,9 @@ entities: -3,0: 0: 61695 -2,-4: - 0: 53503 + 0: 57599 -2,-3: - 0: 65529 + 0: 65294 -2,-2: 0: 65520 -2,-1: @@ -312,9 +320,9 @@ entities: -2,0: 0: 63487 -1,-4: - 0: 53503 + 0: 53759 -1,-3: - 0: 48124 + 0: 48108 -1,-2: 0: 65520 -1,-1: @@ -324,7 +332,7 @@ entities: -1,0: 0: 61695 0,-4: - 0: 52991 + 0: 20222 0,-3: 0: 56573 0,-2: @@ -344,13 +352,13 @@ entities: -4,3: 0: 61424 -5,3: - 0: 16241 + 0: 32577 -4,4: 0: 61070 -3,1: - 0: 41215 + 0: 53503 -3,2: - 0: 65450 + 0: 65421 -3,3: 0: 64988 -3,4: @@ -366,9 +374,9 @@ entities: -1,1: 0: 58623 -1,2: - 0: 16142 + 0: 65294 -1,3: - 0: 3003 + 0: 4095 -1,4: 0: 4095 0,0: @@ -378,7 +386,7 @@ entities: 0,2: 0: 56797 0,3: - 0: 52701 + 0: 19933 0,-5: 0: 65263 1,-4: @@ -402,7 +410,7 @@ entities: 2,-1: 0: 65535 2,-5: - 0: 30511 + 0: 30479 2,0: 0: 61695 3,-4: @@ -414,7 +422,7 @@ entities: 3,-1: 0: 64985 3,-5: - 0: 65295 + 0: 65359 3,0: 0: 61661 4,-4: @@ -509,43 +517,44 @@ entities: -1,5: 0: 58623 0,6: - 0: 51711 + 0: 36351 -1,6: 0: 3822 0,7: - 0: 65503 + 0: 65279 -1,7: - 0: 61166 + 0: 41967 0,8: - 0: 15 - 2: 3840 + 0: 65535 1,5: 0: 53439 1,6: - 0: 7421 + 0: 3581 1,7: - 0: 65503 + 0: 4369 + 2: 17484 1,8: - 0: 15 - 2: 40704 + 0: 4369 + 2: 17476 2,5: 0: 53367 2,6: 0: 1405 2,7: - 0: 4915 - 2: 34944 - 2,8: - 2: 36 + 2: 7 3,5: - 0: 4181 + 0: 4210 + 2: 32768 3,6: - 0: 4881 + 0: 13073 + 2: 8 + 3,7: + 2: 4 4,5: 0: 273 - 2: 17476 + 2: 29764 -8,0: - 0: 61678 + 0: 61550 -9,0: 0: 64413 -8,1: @@ -563,32 +572,34 @@ entities: -8,4: 0: 477 2: 49152 + -8,-1: + 0: 26208 -7,0: - 0: 64671 + 0: 63487 -7,1: 0: 40191 -7,2: 0: 49087 -7,3: - 0: 20472 - -7,4: - 0: 58983 + 0: 53240 -7,-1: - 0: 52732 + 0: 65407 + -7,4: + 0: 61039 -6,0: - 0: 62363 + 0: 61678 -6,1: - 0: 5119 + 0: 5115 -6,2: 0: 6007 -6,3: - 0: 4092 - -6,-1: - 0: 48051 + 0: 65436 -6,4: - 0: 61567 + 0: 65151 + -6,-1: + 0: 61152 -5,4: - 0: 30527 + 0: 30310 4,-5: 0: 61152 5,-4: @@ -633,7 +644,7 @@ entities: 0: 65524 0,-9: 0: 52416 - 2: 275 + 2: 273 1,-8: 0: 65488 1,-7: @@ -658,91 +669,88 @@ entities: 3,-6: 0: 64733 4,-8: - 0: 39299 + 0: 4483 2: 17484 4,-7: - 0: 65289 - 2: 4 + 0: 65281 + 2: 12 4,-6: 0: 61152 4,-9: - 2: 17476 - 0: 34952 + 2: 16384 + 0: 32768 5,-8: 2: 21855 - 0: 43680 + 0: 160 5,-7: - 2: 5 - 0: 63242 + 2: 15 + 0: 63232 5,-9: - 2: 21845 - 0: 43690 + 2: 20480 + 0: 40960 5,-6: 0: 26214 6,-8: 2: 21855 - 0: 43680 + 0: 160 6,-7: - 2: 5 - 0: 56586 + 2: 15 + 0: 56576 6,-6: 0: 61919 6,-9: - 2: 21845 - 0: 43690 + 2: 20480 + 0: 40960 7,-8: - 2: 4383 - 0: 8736 + 2: 21855 + 0: 160 7,-7: - 2: 8749 - 0: 2 + 2: 8751 7,-5: - 0: 36614 + 0: 36846 7,-9: - 2: 4369 - 0: 8738 + 2: 20767 + 0: 40960 7,-6: - 2: 1570 + 2: 3618 8,-8: - 2: 1 + 2: 21855 + 0: 160 8,-7: 2: 15 - 0: 65280 8,-6: - 0: 13119 - 2: 2048 + 2: 3840 8,-5: - 0: 3891 + 0: 4016 -4,5: 0: 238 -4,6: 0: 255 2: 61440 + -5,5: + 0: 58982 -5,6: 0: 238 2: 61440 - -4,7: - 2: 2289 - -5,7: - 2: 240 -3,5: 0: 3295 -3,6: 0: 255 - 2: 12288 + 2: 61440 -3,7: - 2: 8816 + 2: 51406 -3,8: - 2: 3086 + 2: 14 + 0: 52224 -2,5: 0: 52701 -2,6: - 0: 63743 + 0: 59647 -2,7: - 0: 255 + 0: 61166 -1,8: - 0: 8 - 2: 36640 + 0: 34952 + 2: 13104 -9,4: 0: 7400 -8,5: @@ -758,32 +766,36 @@ entities: 2: 43695 0: 21840 -8,7: - 2: 242 + 2: 2039 -9,7: - 2: 240 + 2: 28671 -7,6: - 2: 62465 + 2: 63249 0: 14 -7,7: 2: 16 -7,5: 0: 1038 + 2: 4352 -6,5: - 0: 65319 + 0: 65327 -6,6: 0: 255 - -6,7: - 2: 240 - -5,5: - 0: 26215 + 2: 61440 + -3,9: + 0: 12 + 2: 3584 -2,8: - 2: 7967 + 0: 30560 + -2,9: + 0: 7 + 2: 3840 -1,9: - 2: 142 + 2: 405 0,9: - 2: 15 + 2: 240 4,6: - 2: 4 + 2: 550 0: 34816 5,5: 0: 30583 @@ -795,32 +807,26 @@ entities: 0: 255 2: 53248 6,6: - 2: 35049 + 2: 35561 7,5: 0: 36063 2: 4096 7,6: 2: 53196 - 7,7: - 2: 12 8,4: 0: 4351 2: 57344 8,5: 0: 272 - 3: 17472 + 4: 17472 8,6: - 2: 65521 - 8,7: - 2: 15 + 2: 4081 1,9: - 2: 15 - 2,9: - 2: 1 + 2: 18 9,0: 0: 65102 9,1: - 0: 3839 + 0: 3838 9,2: 0: 61917 9,3: @@ -849,10 +855,10 @@ entities: 0: 53759 11,2: 0: 4319 - 4: 49152 + 3: 49152 11,3: 0: 61457 - 4: 204 + 3: 204 11,-1: 0: 30583 11,4: @@ -864,9 +870,9 @@ entities: 0: 28791 12,2: 0: 119 - 4: 28672 + 3: 28672 12,3: - 4: 119 + 3: 119 0: 61440 12,-1: 0: 29311 @@ -895,9 +901,9 @@ entities: 14,2: 0: 15235 14,3: - 2: 32760 + 2: 65528 14,4: - 2: 28979 + 2: 62455 15,0: 0: 56797 15,1: @@ -905,14 +911,14 @@ entities: 15,2: 0: 3548 15,3: - 2: 28671 + 2: 32767 15,4: - 2: 8754 + 2: 12850 15,-1: - 0: 52428 + 0: 52701 16,0: 0: 13116 - 4: 52416 + 3: 52416 16,1: 0: 65484 16,2: @@ -930,22 +936,29 @@ entities: 9,-2: 0: 58999 9,-5: - 0: 18176 + 0: 18288 10,-4: 0: 65024 + 2: 8 10,-3: 0: 65520 10,-2: 0: 63743 + 10,-5: + 2: 34956 11,-4: 0: 13056 - 2: 128 + 2: 2184 11,-3: 0: 43946 11,-2: 0: 30250 + 11,-5: + 0: 32776 + 2: 17968 12,-4: - 2: 1265 + 0: 7 + 2: 1272 12,-3: 0: 65535 12,-2: @@ -987,16 +1000,15 @@ entities: -1,-6: 0: 30065 -8,-8: - 0: 52227 - 2: 8712 + 0: 35331 + 2: 8 -8,-9: 0: 12288 - 2: 35056 + 2: 35064 -9,-8: - 0: 65356 - 2: 1 + 0: 56653 -8,-7: - 0: 63740 + 0: 63742 -9,-7: 0: 46079 -8,-6: @@ -1035,7 +1047,7 @@ entities: 0: 61440 2: 34 -6,-7: - 0: 36494 + 0: 52878 -6,-4: 0: 62463 -5,-9: @@ -1045,27 +1057,23 @@ entities: 0: 34952 2: 800 -8,-3: - 0: 65039 + 0: 3663 -9,-3: 0: 56797 -8,-2: - 0: 60942 + 0: 59119 -9,-2: - 0: 56829 + 0: 57309 -9,-1: - 0: 56797 - -8,-1: - 0: 3808 - -7,-3: - 0: 64907 + 0: 56781 -7,-2: - 0: 57293 + 0: 65262 + -7,-3: + 0: 44782 -6,-3: - 0: 63291 + 0: 41915 -6,-2: - 0: 30583 - -5,-3: - 0: 28791 + 0: 61166 -12,0: 0: 3855 -13,0: @@ -1127,16 +1135,15 @@ entities: -10,-5: 2: 32776 12,-5: - 2: 61440 - 0: 127 + 0: 62079 + 13,-4: + 2: 2808 13,-3: 0: 48059 13,-2: 0: 63243 - 13,-4: - 2: 2280 13,-5: - 2: 35304 + 2: 39912 14,-4: 2: 1039 14,-3: @@ -1145,56 +1152,59 @@ entities: 14,-2: 0: 65283 14,-1: - 0: 2047 + 0: 4095 14,-5: - 2: 17476 + 2: 17600 15,-4: 2: 8739 15,-3: 2: 62066 15,-2: - 0: 4352 + 0: 7424 2: 206 15,-5: - 2: 8704 + 2: 8721 16,-3: 2: 61440 16,-2: 2: 255 + 0: 3840 16,-1: 0: 53247 + 8,-9: + 2: 24143 + 0: 41120 + 9,-8: + 2: 15 9,-7: 2: 15 - 0: 65280 9,-6: - 0: 15 2: 3840 + 10,-8: + 2: 55703 10,-7: - 2: 7 - 0: 65280 + 2: 8743 + 0: 34816 10,-6: - 0: 15 - 2: 34560 - 10,-8: - 2: 34816 + 2: 50978 + 0: 8 + 10,-9: + 2: 40847 + 11,-8: + 2: 54 + 0: 2048 11,-7: - 0: 65534 + 0: 64988 11,-6: - 0: 61183 - 10,-5: - 2: 8 - 11,-8: - 2: 52 - 0: 59392 - 11,-5: - 2: 33840 - 0: 8 + 0: 3293 + 11,-9: + 2: 49921 12,-8: - 0: 65392 + 0: 12144 12,-7: - 0: 65535 + 0: 63743 12,-6: - 0: 65535 + 0: 24568 20,-1: 2: 256 19,-1: @@ -1203,36 +1213,48 @@ entities: 2: 16179 19,0: 2: 39118 + 0: 17441 20,1: 2: 14135 19,1: 2: 39321 + 0: 17476 20,2: 2: 29495 19,2: 2: 53179 + 0: 8260 20,3: 2: 35 19,3: 2: 4095 + 12,-9: + 2: 61440 13,-8: - 2: 34913 - 0: 12288 + 2: 35043 13,-7: - 0: 65395 + 0: 64849 13,-6: - 0: 13183 + 0: 349 2: 32768 + 13,-9: + 2: 4096 + 14,-8: + 2: 6144 14,-7: - 2: 26213 + 2: 8739 14,-6: - 2: 17766 - 14,-8: - 2: 17476 - 14,-9: - 2: 17476 + 2: 4898 + 15,-8: + 2: 4352 + 15,-7: + 2: 4369 + 15,-6: + 2: 4369 -11,5: 2: 35916 + -11,7: + 2: 35840 -10,5: 2: 39296 0: 17488 @@ -1241,10 +1263,15 @@ entities: -10,6: 0: 21569 2: 35230 + -10,7: + 2: 4040 + -11,8: + 2: 34952 -10,4: 0: 61152 - -10,7: - 2: 192 + -9,8: + 0: 2827 + 2: 25844 0,-12: 2: 79 0: 12288 @@ -1262,7 +1289,7 @@ entities: 0: 255 2: 36864 -1,-9: - 2: 3513 + 2: 3257 1,-12: 2: 4375 1,-11: @@ -1281,46 +1308,51 @@ entities: 2: 18240 3,-9: 2: 1396 - 4,-10: - 2: 17408 - 0: 34816 - 5,-10: - 2: 22000 - 0: 43520 - 6,-10: - 2: 22000 - 0: 43520 + 7,-12: + 2: 7455 + 7,-11: + 2: 7453 7,-10: - 2: 4592 - 0: 8704 + 2: 4381 + 8,-12: + 2: 20303 + 8,-11: + 2: 20303 8,-10: - 2: 240 + 2: 20047 + 0: 40960 9,5: 5: 4368 - 4: 17472 + 3: 17472 9,6: - 2: 8176 + 2: 12272 10,5: - 4: 4368 + 3: 4368 6: 17472 10,6: 2: 4080 11,5: - 4: 21840 + 3: 21840 11,6: - 2: 4080 + 2: 61424 + 11,7: + 2: 12 12,5: 2: 65535 12,6: - 2: 255 + 2: 65535 + 12,7: + 2: 15 13,5: 2: 55705 13,6: - 2: 127 + 2: 16383 + 13,7: + 2: 1 + 14,5: + 2: 30591 14,6: 2: 7 - 14,5: - 2: 17484 15,5: 2: 35 -4,-10: @@ -1335,7 +1367,6 @@ entities: 0: 34944 -2,-10: 0: 1019 - 2: 16384 -2,-11: 2: 544 0: 2176 @@ -1343,19 +1374,21 @@ entities: 2: 61696 17,-2: 2: 3327 + 0: 768 17,-1: 0: 4369 - 2: 52416 + 2: 52428 17,0: - 0: 17921 + 0: 19969 2: 8 - 4: 4368 + 3: 4368 18,-3: 2: 4096 18,-2: - 2: 63477 + 2: 59381 18,-1: 2: 15358 + 0: 33792 18,0: 2: 65399 19,-2: @@ -1373,30 +1406,89 @@ entities: 2: 2190 18,3: 2: 40959 + 12,-10: + 2: 61440 + 11,-10: + 2: 61440 + 13,-10: + 2: 7936 14,-10: - 2: 17520 + 2: 256 + 9,-12: + 2: 1807 + 9,-11: + 2: 1799 9,-10: - 2: 16 + 2: 7 + 9,-9: + 2: 3855 + 10,-12: + 2: 4369 + 10,-11: + 2: 4369 + 10,-10: + 2: 4369 + -12,-8: + 2: 64170 + -13,-8: + 2: 64170 + -12,-7: + 2: 64170 + -13,-7: + 2: 64170 + -12,-9: + 2: 61440 -11,-8: - 2: 60074 + 2: 64170 -11,-7: - 2: 2730 + 2: 64170 + -11,-9: + 2: 61440 -10,-8: - 2: 12846 - 0: 34816 + 2: 12834 + 0: 34828 -10,-7: - 2: 8738 + 2: 12834 0: 34952 + -10,-9: + 2: 13288 + 0: 32768 -10,-6: 2: 57378 0: 8 -9,-9: - 2: 4600 - 0: 49152 + 0: 61440 + 2: 248 + -13,-9: + 2: 61440 + -11,-10: + 2: 8 + -10,-10: + 2: 63631 + -10,-12: + 2: 59592 + -9,-12: + 2: 63743 + -10,-11: + 2: 34952 + -9,-11: + 2: 63736 -9,-10: - 2: 63728 + 2: 63736 + -9,-13: + 2: 61440 + -8,-12: + 2: 63743 + -8,-11: + 2: 63736 -8,-10: - 2: 28784 + 2: 63736 + -8,-13: + 2: 29696 + -7,-12: + 2: 1808 + -7,-11: + 2: 240 -6,-11: 2: 8192 -6,-10: @@ -1406,9 +1498,53 @@ entities: -14,2: 0: 3598 -14,-3: - 0: 3272 + 0: 3276 -13,-4: 0: 4096 + -11,9: + 2: 35980 + -11,10: + 2: 51336 + -10,8: + 2: 497 + 0: 3084 + -10,9: + 2: 449 + 0: 3084 + -10,10: + 2: 4593 + 0: 3084 + -10,11: + 2: 227 + -9,9: + 0: 2827 + 2: 21748 + -9,10: + 0: 2827 + 2: 58612 + -9,11: + 2: 254 + -8,8: + 0: 1799 + 2: 112 + -8,9: + 0: 1799 + 2: 4208 + -8,10: + 0: 1799 + 2: 112 + -8,11: + 2: 48 + -15,-8: + 2: 34944 + -14,-8: + 2: 64443 + -15,-7: + 2: 136 + -14,-7: + 2: 64443 + -14,-9: + 2: 61440 uniqueMixes: - volume: 2500 temperature: 293.15 @@ -1459,7 +1595,7 @@ entities: temperature: 293.15 moles: - 0 - - 6666.982 + - 0 - 0 - 0 - 0 @@ -1474,7 +1610,7 @@ entities: temperature: 293.15 moles: - 0 - - 0 + - 6666.982 - 0 - 0 - 0 @@ -1528,1172 +1664,995 @@ entities: color: '#FFFFFFFF' id: Arrows decals: - 570: -12,-30 + 446: -12,-30 - node: color: '#FFFFFFFF' id: Arrows decals: - 507: 20,17 - 522: 20,17 - 526: 20,27 - 571: -12,-29 + 383: 20,17 + 398: 20,17 + 402: 20,27 + 447: -12,-29 - node: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: Arrows decals: - 523: 22,17 - 527: 22,27 + 399: 22,17 + 403: 22,27 + - node: + color: '#C3C3C3FF' + id: Bot + decals: + 757: -35,-24 + 762: -32,-32 + 763: -31,-32 - node: color: '#FFFFFFFF' id: Bot decals: - 501: -35,6 - 502: -30,11 - 532: -3,-31 - 778: 31,8 - 779: 31,9 + 377: -35,6 + 378: -30,11 + 408: -3,-31 + 613: 31,8 + 614: 31,9 - node: zIndex: 1 color: '#FFFFFFFF' id: Bot decals: - 625: 20,7 - 626: 21,7 - 627: 22,7 - 699: -7,-26 - 700: -6,-26 + 481: 20,7 + 482: 21,7 + 483: 22,7 + 550: -7,-26 + 551: -6,-26 - node: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: Bot decals: - 524: 20,17 - 525: 22,17 + 400: 20,17 + 401: 22,17 - node: color: '#FFFFFFFF' id: BotRight decals: - 49: 19,16 - 50: 19,17 - - node: - color: '#FFFFFFFF' - id: BrickTileDarkCornerNe - decals: - 575: 52,-22 + 41: 19,16 + 42: 19,17 - node: - zIndex: 1 - color: '#FFFFFFFF' - id: BrickTileDarkCornerNe + color: '#C3C3C3FF' + id: Box decals: - 628: 32,-24 - 629: 33,-25 - 630: 34,-26 + 775: -33,-29 + 776: -33,-28 - node: zIndex: 2 color: '#FFFFFFFF' id: BrickTileDarkCornerNe decals: - 705: -9,-28 - - node: - color: '#FFFFFFFF' - id: BrickTileDarkCornerNw - decals: - 573: 46,-22 + 556: -9,-28 - node: zIndex: 2 color: '#FFFFFFFF' id: BrickTileDarkCornerNw decals: - 706: -10,-28 - - node: - color: '#FFFFFFFF' - id: BrickTileDarkCornerSe - decals: - 572: 52,-28 + 557: -10,-28 - node: zIndex: 2 color: '#FFFFFFFF' id: BrickTileDarkCornerSe decals: - 704: -9,-30 - - node: - color: '#FFFFFFFF' - id: BrickTileDarkCornerSw - decals: - 574: 46,-28 + 555: -9,-30 - node: zIndex: 2 color: '#FFFFFFFF' id: BrickTileDarkCornerSw decals: - 703: -10,-30 - - node: - color: '#FFFFFFFF' - id: BrickTileDarkInnerNe - decals: - 589: 51,-22 - 590: 52,-23 - - node: - zIndex: 1 - color: '#FFFFFFFF' - id: BrickTileDarkInnerNe - decals: - 631: 33,-26 - 632: 32,-25 - - node: - color: '#FFFFFFFF' - id: BrickTileDarkInnerNw - decals: - 584: 47,-22 - 591: 46,-23 + 554: -10,-30 - node: color: '#FFFFFFFF' id: BrickTileDarkInnerSe decals: - 585: 51,-28 - 586: 52,-27 - 777: -11,20 + 612: -11,20 - node: zIndex: 1 color: '#FFFFFFFF' id: BrickTileDarkInnerSe decals: - 637: 6,17 - - node: - color: '#FFFFFFFF' - id: BrickTileDarkInnerSw - decals: - 587: 47,-28 - 588: 46,-27 + 488: 6,17 - node: color: '#FFFFFFFF' id: BrickTileDarkLineE decals: - 578: 53,-26 - 579: 53,-24 - 679: 0,-25 + 530: 0,-25 + 736: -1,29 + 737: -1,28 - node: zIndex: 2 color: '#FFFFFFFF' id: BrickTileDarkLineE decals: - 707: -9,-29 + 558: -9,-29 - node: color: '#FFFFFFFF' id: BrickTileDarkLineN decals: - 576: 48,-21 - 577: 50,-21 - 674: -6,-23 - 675: -5,-23 - 676: -4,-23 + 525: -6,-23 + 526: -5,-23 + 527: -4,-23 + 734: 3,30 + 735: 4,30 - node: zIndex: 2 color: '#FFFFFFFF' id: BrickTileDarkLineN decals: - 714: 12,-14 - 715: 13,-14 - 716: 14,-14 - 717: 15,-14 + 565: 12,-14 + 566: 13,-14 + 567: 14,-14 + 568: 15,-14 - node: color: '#FFFFFFFF' id: BrickTileDarkLineS decals: - 580: 50,-29 - 581: 48,-29 - 774: -8,20 - 775: -9,20 - 776: -10,20 + 609: -8,20 + 610: -9,20 + 611: -10,20 - node: zIndex: 1 color: '#FFFFFFFF' id: BrickTileDarkLineS decals: - 633: 10,17 - 634: 9,17 - 635: 8,17 - 636: 7,17 + 484: 10,17 + 485: 9,17 + 486: 8,17 + 487: 7,17 - node: zIndex: 2 color: '#FFFFFFFF' id: BrickTileDarkLineS decals: - 718: 12,-18 - 719: 13,-18 - 720: 14,-18 - 721: 15,-18 + 569: 12,-18 + 570: 13,-18 + 571: 14,-18 + 572: 15,-18 - node: color: '#FFFFFFFF' id: BrickTileDarkLineW decals: - 582: 45,-26 - 583: 45,-24 - 680: -2,-25 + 531: -2,-25 - node: zIndex: 2 color: '#FFFFFFFF' id: BrickTileDarkLineW decals: - 708: -10,-29 + 559: -10,-29 - node: zIndex: 2 color: '#D381C9FF' id: BrickTileSteelCornerNe decals: - 702: -6,-26 + 553: -6,-26 - node: color: '#D381C9FF' id: BrickTileSteelCornerNw decals: - 688: -4,-26 + 539: -4,-26 - node: color: '#D381C9FF' id: BrickTileSteelCornerSe decals: - 694: -8,-24 + 545: -8,-24 - node: color: '#D381C9E5' id: BrickTileSteelCornerSw decals: - 561: -12,-32 + 437: -12,-32 - node: color: '#FFFFFFFF' id: BrickTileSteelCornerSw decals: - 790: 25,19 + 625: 25,19 - node: zIndex: 1 color: '#FFFFFFFF' id: BrickTileSteelEndE decals: - 612: -36,-11 - 613: -41,-11 - 614: -47,-11 + 468: -36,-11 + 469: -41,-11 + 470: -47,-11 - node: zIndex: 1 color: '#FFFFFFFF' id: BrickTileSteelEndW decals: - 609: -50,-11 - 610: -43,-11 - 611: -38,-11 + 465: -50,-11 + 466: -43,-11 + 467: -38,-11 + - node: + color: '#C3C3C3FF' + id: BrickTileSteelInnerNe + decals: + 751: -34,-32 + 780: -35,-27 - node: color: '#D381C9E5' id: BrickTileSteelInnerNe decals: - 565: -10,-26 + 441: -10,-26 - node: color: '#D381C9FF' id: BrickTileSteelInnerNe decals: - 678: -6,-27 - 693: 0,-29 - 698: -13,-19 + 529: -6,-27 + 544: 0,-29 + 549: -13,-19 - node: color: '#D381C9FF' id: BrickTileSteelInnerNw decals: - 687: -4,-27 - 689: -3,-26 + 538: -4,-27 + 540: -3,-26 + - node: + color: '#C3C3C3FF' + id: BrickTileSteelInnerSe + decals: + 761: -34,-30 + 771: -36,-28 + 772: -33,-30 - node: color: '#D381C9E5' id: BrickTileSteelInnerSe decals: - 555: -18,-28 - 558: -7,-33 + 431: -18,-28 + 434: -7,-33 - node: color: '#D381C9FF' id: BrickTileSteelInnerSe decals: - 690: 0,-26 - 695: -8,-23 + 541: 0,-26 + 546: -8,-23 + - node: + color: '#C3C3C3FF' + id: BrickTileSteelInnerSw + decals: + 738: -34,-28 - node: color: '#D381C9E5' id: BrickTileSteelInnerSw decals: - 537: -12,-20 - 562: -12,-31 + 413: -12,-20 + 438: -12,-31 + - node: + color: '#C3C3C3FF' + id: BrickTileSteelLineE + decals: + 748: -33,-29 + 749: -33,-28 + 750: -34,-31 + 755: -35,-26 + 756: -35,-25 + 759: -33,-30 + 770: -36,-29 + 779: -36,-30 - node: color: '#D381C9FF' id: BrickTileSteelLineE decals: - 691: 0,-27 - 692: 0,-28 + 542: 0,-27 + 543: 0,-28 - node: zIndex: 1 color: '#FFFFFFFF' id: BrickTileSteelLineE decals: - 623: -36,-9 + 479: -36,-9 - node: - zIndex: 2 - color: '#FFFFFFFF' - id: BrickTileSteelLineE + color: '#C3C3C3FF' + id: BrickTileSteelLineN decals: - 749: -7,12 - 750: -7,14 - 751: -7,16 + 746: -37,-24 + 747: -36,-24 + 752: -33,-32 + 753: -33,-27 + 754: -34,-27 - node: color: '#D381C9E5' id: BrickTileSteelLineN decals: - 539: -8,-19 - 540: -9,-19 - 541: -10,-19 - 542: -11,-19 - 564: -9,-26 + 415: -8,-19 + 416: -9,-19 + 417: -10,-19 + 418: -11,-19 + 440: -9,-26 - node: color: '#D381C9FF' id: BrickTileSteelLineN decals: - 677: -8,-26 - 697: -12,-19 + 528: -8,-26 + 548: -12,-19 - node: zIndex: 2 color: '#D381C9FF' id: BrickTileSteelLineN decals: - 701: -7,-26 + 552: -7,-26 - node: color: '#FFFFFFFF' id: BrickTileSteelLineN decals: - 533: -11,-24 + 409: -11,-24 - node: zIndex: 1 color: '#FFFFFFFF' id: BrickTileSteelLineN decals: - 615: -49,-11 - 616: -48,-11 - 617: -42,-11 - 618: -37,-11 + 471: -49,-11 + 472: -48,-11 + 473: -42,-11 + 474: -37,-11 + - node: + color: '#C3C3C3FF' + id: BrickTileSteelLineS + decals: + 741: -33,-33 + 760: -33,-30 + 764: -34,-33 + 769: -37,-30 + 777: -35,-28 + 778: -36,-30 - node: color: '#D381C9E5' id: BrickTileSteelLineS decals: - 538: -13,-20 - 551: -17,-28 - 552: -16,-28 - 553: -15,-28 - 554: -14,-28 - 556: -5,-33 - 557: -6,-33 - 560: -11,-32 - 563: -13,-31 + 414: -13,-20 + 427: -17,-28 + 428: -16,-28 + 429: -15,-28 + 430: -14,-28 + 432: -5,-33 + 433: -6,-33 + 436: -11,-32 + 439: -13,-31 - node: color: '#D381C9FF' id: BrickTileSteelLineS decals: - 696: -9,-24 + 547: -9,-24 - node: color: '#FFFFFFFF' id: BrickTileSteelLineS decals: - 647: 57,5 - 648: 56,5 - 787: 26,19 - 788: 27,19 - 789: 28,19 + 498: 57,5 + 499: 56,5 + 622: 26,19 + 623: 27,19 + 624: 28,19 - node: zIndex: 1 color: '#FFFFFFFF' id: BrickTileSteelLineS decals: - 619: -48,-11 - 620: -49,-11 - 621: -42,-11 - 622: -37,-11 + 475: -48,-11 + 476: -49,-11 + 477: -42,-11 + 478: -37,-11 + - node: + color: '#C3C3C3FF' + id: BrickTileSteelLineW + decals: + 739: -34,-29 + 740: -34,-32 + 742: -37,-27 + 743: -37,-26 + 744: -37,-25 + 745: -37,-24 + 758: -34,-30 + 768: -37,-28 - node: color: '#D381C9E5' id: BrickTileSteelLineW decals: - 534: -12,-23 - 535: -12,-22 - 536: -12,-21 + 410: -12,-23 + 411: -12,-22 + 412: -12,-21 - node: color: '#FFFFFFFF' id: BrickTileSteelLineW decals: - 791: 25,20 - 792: 25,21 + 626: 25,20 + 627: 25,21 - node: zIndex: 1 color: '#FFFFFFFF' id: BrickTileSteelLineW decals: - 624: -38,-9 + 480: -38,-9 - node: - zIndex: 2 - color: '#FFFFFFFF' - id: BrickTileSteelLineW + color: '#689F54FF' + id: BrickTileWhiteCornerNe + decals: + 791: -21,-5 + - node: + color: '#689F54FF' + id: BrickTileWhiteCornerNw decals: - 746: -9,12 - 747: -9,14 - 748: -9,16 + 792: -23,-5 - node: zIndex: 2 color: '#EFB34196' id: BrickTileWhiteCornerSe decals: - 754: -8,7 + 592: -8,7 - node: zIndex: 2 color: '#52B4E996' id: BrickTileWhiteCornerSw decals: - 744: 7,-18 + 588: 7,-18 - node: color: '#A4610696' id: BrickTileWhiteCornerSw decals: - 797: 18,15 + 632: 18,15 - node: zIndex: 2 color: '#EFB34196' id: BrickTileWhiteCornerSw decals: - 755: -14,7 + 593: -14,7 - node: color: '#52B4E996' id: BrickTileWhiteEndE decals: - 661: 49,-12 + 512: 49,-12 - node: color: '#9FED5896' id: BrickTileWhiteEndE decals: - 657: 52,-10 + 508: 52,-10 - node: color: '#A4610696' id: BrickTileWhiteEndE decals: - 664: 52,-8 + 515: 52,-8 - node: color: '#D381C996' id: BrickTileWhiteEndE decals: - 660: 52,-12 + 511: 52,-12 - node: color: '#D4D4D496' id: BrickTileWhiteEndE decals: - 656: 49,-10 + 507: 49,-10 - node: color: '#EFB34196' id: BrickTileWhiteEndE decals: - 649: 49,-8 + 500: 49,-8 - node: color: '#334E6DC8' id: BrickTileWhiteEndN decals: - 651: 57,-8 + 502: 57,-8 - node: color: '#DE3A3A96' id: BrickTileWhiteEndN decals: - 654: 57,-11 + 505: 57,-11 - node: color: '#334E6DC8' id: BrickTileWhiteEndS decals: - 652: 57,-9 + 503: 57,-9 - node: color: '#DE3A3A96' id: BrickTileWhiteEndS decals: - 653: 57,-12 + 504: 57,-12 - node: color: '#52B4E996' id: BrickTileWhiteEndW decals: - 662: 48,-12 + 513: 48,-12 - node: color: '#9FED5896' id: BrickTileWhiteEndW decals: - 658: 51,-10 + 509: 51,-10 - node: color: '#A4610696' id: BrickTileWhiteEndW decals: - 663: 51,-8 + 514: 51,-8 - node: color: '#D381C996' id: BrickTileWhiteEndW decals: - 659: 51,-12 + 510: 51,-12 - node: color: '#D4D4D496' id: BrickTileWhiteEndW decals: - 655: 48,-10 + 506: 48,-10 - node: color: '#EFB34196' id: BrickTileWhiteEndW decals: - 650: 48,-8 + 501: 48,-8 - node: zIndex: 2 color: '#52B4E996' id: BrickTileWhiteInnerSe decals: - 730: 19,-13 + 581: 19,-13 - node: color: '#A4610696' id: BrickTileWhiteInnerSe decals: - 795: 22,15 + 630: 22,15 - node: zIndex: 2 color: '#52B4E996' id: BrickTileWhiteInnerSw decals: - 729: 17,-13 + 580: 17,-13 - node: color: '#A4610696' id: BrickTileWhiteInnerSw decals: - 796: 19,15 + 631: 19,15 - node: zIndex: 2 color: '#FFFFFFFF' id: BrickTileWhiteInnerSw decals: - 725: 20,-18 + 576: 20,-18 - node: zIndex: 2 color: '#52B4E996' id: BrickTileWhiteLineE decals: - 727: 19,-14 + 578: 19,-14 - node: - zIndex: 2 - color: '#DE3A3A96' + color: '#689F54FF' id: BrickTileWhiteLineE decals: - 734: 0,12 - 735: 0,13 - 736: 0,14 - 737: 0,11 + 789: -21,-8 + 790: -21,-7 - node: zIndex: 2 color: '#EFB34196' id: BrickTileWhiteLineE decals: - 756: -8,8 + 594: -8,8 - node: - zIndex: 2 - color: '#9FED5896' + color: '#689F54FF' id: BrickTileWhiteLineN decals: - 758: -20,-11 - 759: -19,-11 - 760: -18,-11 + 793: -22,-5 - node: color: '#A4610696' id: BrickTileWhiteLineN decals: - 783: 26,10 - 784: 27,10 + 618: 26,10 + 619: 27,10 - node: zIndex: 2 color: '#52B4E996' id: BrickTileWhiteLineS decals: - 738: 8,-18 - 739: 9,-18 - 745: 10,-18 + 582: 8,-18 + 583: 9,-18 + 589: 10,-18 - node: color: '#A4610696' id: BrickTileWhiteLineS decals: - 785: 26,8 - 786: 27,8 - 793: 24,15 - 794: 23,15 - 800: 26,15 - 801: 27,15 - 802: 28,15 + 620: 26,8 + 621: 27,8 + 628: 24,15 + 629: 23,15 + 635: 26,15 + 636: 27,15 + 637: 28,15 - node: zIndex: 2 color: '#EFB34196' id: BrickTileWhiteLineS decals: - 752: -9,7 - 753: -13,7 + 590: -9,7 + 591: -13,7 - node: zIndex: 2 color: '#FFFFFFFF' id: BrickTileWhiteLineS decals: - 722: 17,-18 - 723: 18,-18 - 724: 19,-18 + 573: 17,-18 + 574: 18,-18 + 575: 19,-18 - node: zIndex: 2 color: '#52B4E996' id: BrickTileWhiteLineW decals: - 728: 17,-14 - 740: 7,-17 - 741: 7,-16 - 742: 7,-15 - 743: 7,-14 + 579: 17,-14 + 584: 7,-17 + 585: 7,-16 + 586: 7,-15 + 587: 7,-14 - node: - color: '#A4610696' + color: '#689F54FF' id: BrickTileWhiteLineW decals: - 798: 18,16 - 799: 18,17 + 787: -23,-7 + 788: -23,-6 + 794: -23,-8 - node: - zIndex: 2 - color: '#DE3A3A96' + color: '#A4610696' id: BrickTileWhiteLineW decals: - 731: -1,12 - 732: -1,13 - 733: -1,14 + 633: 18,16 + 634: 18,17 - node: color: '#EFB34196' id: BrickTileWhiteLineW decals: - 807: 48,-6 - 808: 48,-5 - 809: 48,-4 - 810: 48,-3 + 642: 48,-6 + 643: 48,-5 + 644: 48,-4 + 645: 48,-3 - node: zIndex: 2 color: '#EFB34196' id: BrickTileWhiteLineW decals: - 757: -14,8 - - node: - color: '#FFFFFFFF' - id: Bushf1 - decals: - 359: 49.70676,-26.348543 - 360: 45.878635,-24.817293 - 361: 47.878635,-24.286043 - 362: 47.98801,-22.239168 - 363: 50.01926,-24.348543 - - node: - color: '#FFFFFFFF' - id: Bushf2 - decals: - 364: 48.534885,-26.832918 - - node: - color: '#FFFFFFFF' - id: Bushi1 - decals: - 358: 50.61301,-24.082918 - - node: - color: '#FFFFFFFF' - id: Bushi2 - decals: - 356: 46.11301,-26.098543 - 357: 47.73801,-24.957918 - - node: - color: '#FFFFFFFF' - id: Bushi3 - decals: - 354: 49.941135,-27.348543 - 355: 46.05051,-23.989168 - - node: - color: '#FFFFFFFF' - id: Bushi4 - decals: - 351: 47.61301,-25.629793 - 352: 48.08176,-27.989168 - 353: 51.878635,-25.864168 - - node: - color: '#FFFFFFFF' - id: Bushk1 - decals: - 385: 51.01926,-26.036043 - 386: 46.972385,-23.754793 - 387: 48.61301,-26.082918 - - node: - color: '#FFFFFFFF' - id: Bushm2 - decals: - 379: 50.503635,-26.161043 - 380: 46.36301,-25.192293 - - node: - color: '#FFFFFFFF' - id: Bushm3 - decals: - 381: 48.941135,-27.754793 - 382: 48.05051,-25.379793 - - node: - color: '#FFFFFFFF' - id: Bushm4 - decals: - 383: 49.89426,-25.567293 - 384: 51.23801,-23.036043 + 595: -14,8 - node: color: '#FFFFFFFF' id: Caution decals: - 673: 58,-5 + 524: 58,-5 - node: angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: Caution decals: - 124: 53,2 + 81: 53,2 - node: color: '#52B4E996' id: CheckerNWSE decals: - 394: 21,-8 - 395: 21,-7 - 396: 21,-6 - 397: 21,-5 - 398: 22,-8 - 399: 22,-7 - 400: 22,-6 - 401: 22,-5 - 402: 23,-8 - 403: 23,-7 - 404: 23,-6 - 405: 23,-5 - 406: 24,-8 - 407: 24,-7 - 408: 24,-6 - 409: 24,-5 + 270: 21,-8 + 271: 21,-7 + 272: 21,-6 + 273: 21,-5 + 274: 22,-8 + 275: 22,-7 + 276: 22,-6 + 277: 22,-5 + 278: 23,-8 + 279: 23,-7 + 280: 23,-6 + 281: 23,-5 + 282: 24,-8 + 283: 24,-7 + 284: 24,-6 + 285: 24,-5 - node: color: '#D381C996' id: CheckerNWSE decals: - 457: -3,-23 + 333: -3,-23 - node: color: '#D4D4D428' id: CheckerNWSE decals: - 466: -40,4 - 467: -40,5 - 468: -40,6 - 469: -36,4 - 470: -36,5 - 471: -36,6 - 482: -37,0 - 483: -37,1 - 484: -37,2 - 485: -37,8 - 486: -37,9 - 487: -37,10 - 503: -37,-8 - 504: -37,-7 - 505: -37,-6 - 506: -37,-5 + 342: -40,4 + 343: -40,5 + 344: -40,6 + 345: -36,4 + 346: -36,5 + 347: -36,6 + 358: -37,0 + 359: -37,1 + 360: -37,2 + 361: -37,8 + 362: -37,9 + 363: -37,10 + 379: -37,-8 + 380: -37,-7 + 381: -37,-6 + 382: -37,-5 - node: color: '#FFFFFFFF' id: Delivery decals: - 559: -8,-33 - 682: -1,-31 + 435: -8,-33 + 533: -1,-31 - node: color: '#FFFFFFFF' id: DirtHeavy decals: - 312: -16,10 - 313: -17,11 + 259: -16,10 + 260: -17,11 - node: cleanable: True color: '#FFFFFFFF' id: DirtHeavy decals: - 517: -24,-25 + 393: -24,-25 - node: cleanable: True zIndex: 2 color: '#FFFFFFFF' id: DirtHeavy decals: - 762: -20,10 - 766: -20,9 - 767: -18,9 + 597: -20,10 + 601: -20,9 + 602: -18,9 - node: cleanable: True zIndex: 2 color: '#FFFFFFFF' id: DirtHeavyMonotile decals: - 765: -20,8 + 600: -20,8 - node: color: '#FFFFFFFF' id: DirtLight decals: - 316: -18,10 - 317: -17,9 + 263: -18,10 + 264: -17,9 - node: cleanable: True color: '#FFFFFFFF' id: DirtLight decals: - 53: 27,16 - 54: 26,17 - 55: 23,17 - 56: 24,16 - 57: 15,7 - 58: 14,7 - 59: 16,9 - 60: 15,9 - 61: 16,10 - 62: 20,13 - 63: 21,13 - 64: 20,14 - 65: 19,13 - 66: 18,11 - 67: 29,5 - 68: 29,6 - 69: 27,3 - 70: 50,1 - 71: 42,9 - 72: 46,7 - 74: 36,5 - 75: 29,-5 - 76: 30,-5 - 77: 34,-5 - 78: 33,0 - 79: 7,5 - 126: 52,1 - 127: 53,3 - 128: 57,4 - 129: 45,5 - 130: 35,2 - 488: -40,0 - 489: -36,1 - 490: -38,7 - 491: -40,8 - 492: -38,-4 - 493: -36,-8 - 494: -24,-9 - 495: -24,3 - 496: -25,2 - 497: -7,3 - 499: -36,8 - 500: -38,9 - 508: -23,-24 - 509: -25,-23 - 510: -23,-22 - 511: -25,-25 - 512: -24,-24 - 513: -24,-22 + 45: 27,16 + 46: 26,17 + 47: 23,17 + 48: 24,16 + 49: 15,7 + 50: 14,7 + 51: 16,9 + 52: 15,9 + 53: 16,10 + 54: 20,13 + 55: 21,13 + 56: 20,14 + 57: 19,13 + 58: 18,11 + 59: 29,5 + 60: 29,6 + 61: 27,3 + 62: 50,1 + 63: 42,9 + 64: 46,7 + 66: 36,5 + 67: 29,-5 + 68: 30,-5 + 69: 34,-5 + 70: 33,0 + 71: 7,5 + 83: 52,1 + 84: 53,3 + 85: 57,4 + 86: 45,5 + 87: 35,2 + 364: -40,0 + 365: -36,1 + 366: -38,7 + 367: -40,8 + 368: -38,-4 + 369: -36,-8 + 370: -24,-9 + 371: -24,3 + 372: -25,2 + 373: -7,3 + 375: -36,8 + 376: -38,9 + 384: -23,-24 + 385: -25,-23 + 386: -23,-22 + 387: -25,-25 + 388: -24,-24 + 389: -24,-22 - node: cleanable: True zIndex: 2 color: '#FFFFFFFF' id: DirtLight decals: - 763: -19,9 + 598: -19,9 - node: color: '#FFFFFFFF' id: DirtMedium decals: - 314: -17,10 - 315: -18,8 + 261: -17,10 + 262: -18,8 - node: cleanable: True color: '#FFFFFFFF' id: DirtMedium decals: - 51: 26,17 - 52: 24,17 - 73: 37,6 - 125: 53,1 - 498: -35,8 - 514: -23,-25 - 515: -25,-22 - 516: -25,-24 + 43: 26,17 + 44: 24,17 + 65: 37,6 + 82: 53,1 + 374: -35,8 + 390: -23,-25 + 391: -25,-22 + 392: -25,-24 - node: cleanable: True zIndex: 2 color: '#FFFFFFFF' id: DirtMedium decals: - 761: -19,10 - 764: -19,8 - - node: - color: '#FFFFFFFF' - id: Flowersbr2 - decals: - 365: 48.80051,-27.911043 - 366: 48.159885,-27.239168 - 367: 51.597385,-24.270418 - 368: 51.86301,-24.895418 - 369: 47.159885,-23.098543 - - node: - color: '#FFFFFFFF' - id: Flowerspv1 - decals: - 370: 46.566135,-25.036043 - 371: 47.11301,-25.645418 - 372: 50.80051,-23.317293 - - node: - color: '#FFFFFFFF' - id: Flowersy1 - decals: - 373: 50.80051,-26.098543 - 374: 50.097385,-26.239168 - 375: 47.753635,-26.489168 - 376: 49.95676,-22.848543 - 377: 47.628635,-23.707918 - 378: 50.503635,-26.739168 + 596: -19,10 + 599: -19,8 - node: color: '#52B4E996' id: FullTileOverlayGreyscale decals: - 140: 13,-7 - 425: 10,-7 - 426: 9,-7 - 441: 10,-10 - 442: 10,-9 - 443: 9,-10 - 444: 10,-11 - 445: 11,-10 + 97: 13,-7 + 301: 10,-7 + 302: 9,-7 + 317: 10,-10 + 318: 10,-9 + 319: 9,-10 + 320: 10,-11 + 321: 11,-10 - node: zIndex: 2 color: '#52B4E996' id: FullTileOverlayGreyscale decals: - 709: 9,-3 - 710: 9,-2 - 711: 10,-2 - 712: 8,-2 - 713: 9,-1 - - node: - color: '#DE3A3A96' - id: FullTileOverlayGreyscale - decals: - 118: -2,10 - 119: -1,10 - 120: 0,10 + 560: 9,-3 + 561: 9,-2 + 562: 10,-2 + 563: 8,-2 + 564: 9,-1 - node: color: '#EFB34196' id: FullTileOverlayGreyscale decals: - 231: 36,3 - 232: 36,4 - 233: 36,5 - 318: 30,3 - - node: - color: '#FFFFFFFF' - id: Grassb1 - decals: - 342: 47.034885,-26.332918 - 343: 48.159885,-27.364168 - 344: 51.01926,-23.629793 - - node: - color: '#FFFFFFFF' - id: Grassb2 - decals: - 340: 51.11301,-24.739168 - 341: 46.409885,-25.489168 - 350: 49.409885,-27.004793 - - node: - color: '#FFFFFFFF' - id: Grassb3 - decals: - 345: 50.98801,-27.020418 - 346: 49.972385,-26.176668 - - node: - color: '#FFFFFFFF' - id: Grassb4 - decals: - 347: 47.23801,-23.957918 - 348: 46.409885,-24.301668 - - node: - color: '#FFFFFFFF' - id: Grassb5 - decals: - 349: 48.347385,-26.270418 - - node: - color: '#FFFFFFFF' - id: Grassd1 - decals: - 319: 50.628635,-26.192293 - 320: 46.58176,-24.504793 - 321: 47.034885,-25.473543 - 322: 50.01926,-22.832918 - 323: 50.48801,-23.114168 - 324: 48.503635,-27.504793 - - node: - color: '#FFFFFFFF' - id: Grassd2 - decals: - 389: 48.45676,-24.942293 - - node: - color: '#FFFFFFFF' - id: Grassd3 - decals: - 337: 50.253635,-25.504793 - 338: 49.89426,-27.926668 - 339: 52.159885,-24.020418 - - node: - color: '#FFFFFFFF' - id: Grasse1 - decals: - 332: 46.20676,-25.754793 - 333: 47.034885,-24.598543 - 334: 51.48801,-25.051668 - 335: 50.45676,-26.801668 - 336: 49.64426,-25.004793 - - node: - color: '#FFFFFFFF' - id: Grasse2 - decals: - 329: 50.86301,-24.786043 - 330: 51.222385,-25.645418 - 331: 47.14426,-26.770418 - - node: - color: '#FFFFFFFF' - id: Grasse3 - decals: - 325: 49.222385,-27.411043 - 326: 48.11301,-26.239168 - 327: 47.08176,-23.395418 - 328: 51.36301,-24.379793 + 178: 36,3 + 179: 36,4 + 180: 36,5 + 265: 30,3 - node: color: '#52B4E996' id: HalfTileOverlayGreyscale decals: - 131: 19,-5 - 132: 18,-5 - 133: 17,-5 - 134: 16,-5 - 135: 15,-5 - 136: 14,-5 - 160: 6,1 - 161: 7,1 - 162: 8,1 - 163: 9,1 - 164: 10,1 - 165: 11,1 - 427: 9,-8 - 428: 10,-8 - 429: 11,-8 + 88: 19,-5 + 89: 18,-5 + 90: 17,-5 + 91: 16,-5 + 92: 15,-5 + 93: 14,-5 + 117: 6,1 + 118: 7,1 + 119: 8,1 + 120: 9,1 + 121: 10,1 + 122: 11,1 + 303: 9,-8 + 304: 10,-8 + 305: 11,-8 - node: color: '#A4610696' id: HalfTileOverlayGreyscale decals: - 22: 13,12 - 23: 14,12 - 24: 15,12 - 25: 16,12 + 14: 13,12 + 15: 14,12 + 16: 15,12 + 17: 16,12 + - node: + color: '#BD575DFF' + id: HalfTileOverlayGreyscale + decals: + 808: -9,17 + 809: -8,17 + 810: -7,17 + 820: -11,11 + 821: -12,11 + 822: -13,11 - node: color: '#DE3A3A96' id: HalfTileOverlayGreyscale decals: - 108: -11,11 - 109: -12,11 - 110: -13,11 - 111: -14,11 - 186: 0,5 - 187: -1,5 - 188: -2,5 - 189: -4,5 - 190: -3,5 - 191: -7,5 - 192: -8,5 - 193: -9,5 - 194: -10,5 - 195: -11,5 - 196: -12,5 - 197: -13,5 - 198: -14,5 - 199: -15,5 - 200: -16,5 - 201: -17,5 - 202: -18,5 + 133: 0,5 + 134: -1,5 + 135: -2,5 + 136: -4,5 + 137: -3,5 + 138: -7,5 + 139: -8,5 + 140: -9,5 + 141: -10,5 + 142: -11,5 + 143: -12,5 + 144: -13,5 + 145: -14,5 + 146: -15,5 + 147: -16,5 + 148: -17,5 + 149: -18,5 - node: color: '#EFB34196' id: HalfTileOverlayGreyscale decals: - 35: 30,-2 - 241: 49,5 - 242: 48,5 - 243: 47,5 - 244: 46,5 - 245: 45,5 - 250: 43,9 - 252: 42,9 - 257: 41,6 - 258: 40,6 - 259: 39,6 - 260: 38,6 + 27: 30,-2 + 188: 49,5 + 189: 48,5 + 190: 47,5 + 191: 46,5 + 192: 45,5 + 197: 43,9 + 199: 42,9 + 204: 41,6 + 205: 40,6 + 206: 39,6 + 207: 38,6 - node: color: '#FFD886FF' id: HalfTileOverlayGreyscale decals: - 149: 19,1 - 150: 18,1 - 151: 17,1 - 152: 16,1 - 153: 15,1 - 154: 14,1 + 106: 19,1 + 107: 18,1 + 108: 17,1 + 109: 16,1 + 110: 15,1 + 111: 14,1 - node: color: '#334E6DC8' id: HalfTileOverlayGreyscale180 decals: - 9: -3,28 - 10: -2,28 - 11: -1,28 - 12: 0,28 - 13: 6,28 - 14: 7,28 - 15: 8,28 - 16: 9,28 - 180: 5,30 - 181: 4,30 - 182: 3,30 - 183: 2,30 - 184: 1,30 + 131: 5,30 - node: color: '#52B4E996' id: HalfTileOverlayGreyscale180 decals: - 419: 11,-6 - 420: 10,-6 - 421: 9,-6 - 422: 8,-6 - 423: 7,-6 - 424: 6,-6 - 434: 11,-12 - 435: 10,-12 - 436: 9,-12 - 451: 15,-12 - 452: 16,-12 + 295: 11,-6 + 296: 10,-6 + 297: 9,-6 + 298: 8,-6 + 299: 7,-6 + 300: 6,-6 + 310: 11,-12 + 311: 10,-12 + 312: 9,-12 + 327: 15,-12 + 328: 16,-12 + - node: + color: '#BD575DFF' + id: HalfTileOverlayGreyscale180 + decals: + 798: -7,10 + 799: -8,10 + 800: -9,10 + 817: -11,10 + 818: -12,10 + 819: -13,10 - node: color: '#DE3A3A96' id: HalfTileOverlayGreyscale180 decals: - 89: -7,10 - 90: -8,10 - 91: -9,10 - 92: -10,10 - 93: -11,10 - 94: -12,10 - 95: -13,10 - 96: -14,10 - 115: -4,10 - 116: -3,10 - 221: -13,13 - 222: -14,13 - 223: -15,13 + 168: -13,13 + 169: -14,13 + 170: -15,13 - node: color: '#EFB34196' id: HalfTileOverlayGreyscale180 decals: - 169: 34,-5 - 170: 33,-5 - 171: 32,-5 - 172: 31,-5 - 173: 30,-5 + 126: 34,-5 + 127: 33,-5 + 128: 32,-5 + 129: 31,-5 + 130: 30,-5 - node: color: '#334E6DC8' id: HalfTileOverlayGreyscale270 @@ -2702,238 +2661,255 @@ entities: 6: 0,24 7: 0,25 8: 0,26 - 177: 6,29 - 288: 1,16 - 289: 1,17 - 290: 1,18 - 291: 1,19 - 292: 1,20 - 293: 1,21 - 294: 6,7 - 295: 6,8 - 296: 6,9 - 297: 6,10 - 298: 6,11 + 235: 1,16 + 236: 1,17 + 237: 1,18 + 238: 1,19 + 239: 1,20 + 240: 1,21 + 241: 6,7 + 242: 6,8 + 243: 6,9 + 244: 6,10 + 245: 6,11 - node: color: '#52B4E996' id: HalfTileOverlayGreyscale270 decals: - 138: 14,-6 - 139: 14,-7 - 437: 6,-12 - 438: 6,-11 - 439: 6,-9 - 440: 6,-8 - 446: 14,-8 - 447: 14,-9 - 448: 14,-10 - 449: 14,-11 + 95: 14,-6 + 96: 14,-7 + 313: 6,-12 + 314: 6,-11 + 315: 6,-9 + 316: 6,-8 + 322: 14,-8 + 323: 14,-9 + 324: 14,-10 + 325: 14,-11 - node: color: '#A4610696' id: HalfTileOverlayGreyscale270 decals: - 17: 12,9 - 18: 12,10 - 19: 12,11 - 20: 12,12 - 207: 12,6 - 208: 12,7 + 9: 12,9 + 10: 12,10 + 11: 12,11 + 12: 12,12 + 154: 12,6 + 155: 12,7 + - node: + color: '#BD575DFF' + id: HalfTileOverlayGreyscale270 + decals: + 802: -10,11 + 803: -10,12 + 804: -10,13 + 805: -10,14 + 806: -10,15 + 807: -10,16 - node: color: '#DE3A3A96' id: HalfTileOverlayGreyscale270 decals: - 80: -6,7 - 81: -6,8 - 82: -6,6 - 83: -6,9 - 101: -10,12 - 102: -10,13 - 103: -10,14 - 104: -10,15 - 105: -10,16 - 106: -10,17 + 72: -6,7 + 73: -6,8 + 74: -6,6 + 75: -6,9 - node: color: '#EFB34196' id: HalfTileOverlayGreyscale270 decals: - 26: 31,2 - 27: 31,3 - 28: 31,4 - 29: 31,5 - 30: 29,-5 - 31: 29,-4 - 32: 29,-3 - 33: 29,-2 - 37: 31,-1 - 38: 31,0 - 225: 31,6 - 234: 37,2 - 235: 37,3 - 236: 37,4 - 237: 37,5 - 238: 37,6 - 254: 42,8 - 255: 42,7 - 646: 55,2 + 18: 31,2 + 19: 31,3 + 20: 31,4 + 21: 31,5 + 22: 29,-5 + 23: 29,-4 + 24: 29,-3 + 25: 29,-2 + 29: 31,-1 + 30: 31,0 + 172: 31,6 + 181: 37,2 + 182: 37,3 + 183: 37,4 + 184: 37,5 + 185: 37,6 + 201: 42,8 + 202: 42,7 + 497: 55,2 - node: color: '#FFD886FF' id: HalfTileOverlayGreyscale270 decals: - 156: 14,0 - 157: 14,-1 - 158: 14,-2 - 159: 14,-3 + 113: 14,0 + 114: 14,-1 + 115: 14,-2 + 116: 14,-3 - node: color: '#334E6DC8' id: HalfTileOverlayGreyscale90 decals: - 176: 0,29 - 282: 5,16 - 283: 5,17 - 284: 5,18 - 285: 5,19 - 286: 5,20 - 287: 5,21 - 299: 10,7 - 300: 10,8 - 301: 10,9 - 302: 10,10 - 303: 10,11 + 229: 5,16 + 230: 5,17 + 231: 5,18 + 232: 5,19 + 233: 5,20 + 234: 5,21 + 246: 10,7 + 247: 10,8 + 248: 10,9 + 249: 10,10 + 250: 10,11 - node: color: '#52B4E996' id: HalfTileOverlayGreyscale90 decals: - 141: 12,-6 - 142: 12,-5 - 143: 12,-4 - 144: 12,-3 - 145: 12,-2 - 146: 12,-1 - 147: 12,0 - 148: 12,1 - 431: 12,-9 - 432: 12,-10 - 819: 12,-11 + 98: 12,-6 + 99: 12,-5 + 100: 12,-4 + 101: 12,-3 + 102: 12,-2 + 103: 12,-1 + 104: 12,0 + 105: 12,1 + 307: 12,-9 + 308: 12,-10 + 654: 12,-11 - node: color: '#A4610696' id: HalfTileOverlayGreyscale90 decals: - 46: 16,11 - 47: 16,10 - 48: 16,9 - 209: 16,7 - 210: 16,6 - 211: 24,13 - 212: 24,12 - 213: 24,11 - 214: 24,10 - 215: 24,9 - 216: 24,8 + 38: 16,11 + 39: 16,10 + 40: 16,9 + 156: 16,7 + 157: 16,6 + 158: 24,13 + 159: 24,12 + 160: 24,11 + 161: 24,10 + 162: 24,9 + 163: 24,8 + - node: + color: '#BD575DFF' + id: HalfTileOverlayGreyscale90 + decals: + 797: -5,8 + 811: -6,16 + 812: -6,15 + 816: -5,12 + - node: + color: '#C05B60FF' + id: HalfTileOverlayGreyscale90 + decals: + 845: -5,13 + 846: -5,11 + 858: -5,10 - node: color: '#DE3A3A96' id: HalfTileOverlayGreyscale90 decals: - 84: -5,6 - 85: -5,7 - 86: -5,8 - 87: -5,9 - 97: -3,11 - 98: -3,12 - 99: -3,13 - 100: -3,14 - 217: -12,13 - 218: -12,14 - 219: -12,15 - 220: -12,16 + 76: -5,6 + 77: -5,7 + 164: -12,13 + 165: -12,14 + 166: -12,15 + 167: -12,16 - node: color: '#EFB34196' id: HalfTileOverlayGreyscale90 decals: - 39: 35,-5 - 40: 35,-4 - 41: 35,-3 - 42: 35,-2 - 43: 35,-1 - 44: 35,0 - 226: 35,2 - 227: 35,3 - 228: 35,4 - 229: 35,5 - 230: 35,6 - 239: 50,5 - 247: 44,6 - 263: 29,3 - 264: 29,4 - 265: 29,5 - 266: 29,6 + 31: 35,-5 + 32: 35,-4 + 33: 35,-3 + 34: 35,-2 + 35: 35,-1 + 36: 35,0 + 173: 35,2 + 174: 35,3 + 175: 35,4 + 176: 35,5 + 177: 35,6 + 186: 50,5 + 194: 44,6 + 210: 29,3 + 211: 29,4 + 212: 29,5 + 213: 29,6 - node: color: '#FFFFFFFF' id: MiniTileDarkLineN decals: - 531: -16,-25 + 407: -16,-25 - node: color: '#D381C9E5' id: MiniTileSteelCornerSe decals: - 543: -14,-23 + 419: -14,-23 - node: color: '#D381C9E5' id: MiniTileSteelCornerSw decals: - 549: -18,-24 + 425: -18,-24 - node: color: '#D381C9E5' id: MiniTileSteelInnerSe decals: - 544: -15,-23 + 420: -15,-23 - node: color: '#D381C9E5' id: MiniTileSteelInnerSw decals: - 550: -17,-24 + 426: -17,-24 - node: color: '#D381C9E5' id: MiniTileSteelLineE decals: - 545: -14,-22 + 421: -14,-22 - node: color: '#D381C9E5' id: MiniTileSteelLineW decals: - 546: -18,-21 - 547: -18,-22 - 548: -18,-23 + 422: -18,-21 + 423: -18,-22 + 424: -18,-23 + - node: + color: '#FFFFFFFF' + id: MiniTileSteelLineW + decals: + 825: -5,-13 + 826: -5,-12 - node: color: '#3AB3DA99' id: MiniTileWhiteInnerSe decals: - 601: -51,-12 - 602: -44,-12 + 457: -51,-12 + 458: -44,-12 - node: color: '#3AB3DA99' id: MiniTileWhiteInnerSw decals: - 600: -46,-12 - 603: -53,-12 - 606: -39,-12 + 456: -46,-12 + 459: -53,-12 + 462: -39,-12 - node: color: '#3AB3DA99' id: MiniTileWhiteLineS decals: - 592: -50,-12 - 593: -49,-12 - 594: -48,-12 - 595: -47,-12 - 596: -43,-12 - 597: -42,-12 - 598: -41,-12 - 599: -40,-12 + 448: -50,-12 + 449: -49,-12 + 450: -48,-12 + 451: -47,-12 + 452: -43,-12 + 453: -42,-12 + 454: -41,-12 + 455: -40,-12 - node: color: '#3AB3DA99' id: MiniTileWhiteLineW decals: - 604: -54,-11 - 605: -54,-10 + 460: -54,-11 + 461: -54,-10 - node: color: '#334E6DC8' id: QuarterTileOverlayGreyscale @@ -2941,486 +2917,597 @@ entities: 0: 2,23 1: 2,24 2: 2,25 - 175: 6,28 - node: color: '#52B4E996' id: QuarterTileOverlayGreyscale decals: - 166: 12,1 + 123: 12,1 - node: color: '#D4D4D428' id: QuarterTileOverlayGreyscale decals: - 477: -36,3 - 478: -37,3 - 479: -38,3 - 480: -39,3 - 481: -40,3 + 353: -36,3 + 354: -37,3 + 355: -38,3 + 356: -39,3 + 357: -40,3 - node: color: '#DE3A3A96' id: QuarterTileOverlayGreyscale decals: - 107: -10,11 - 112: -14,10 - 204: 1,5 - 205: -6,5 + 151: 1,5 + 152: -6,5 - node: color: '#EFB34196' id: QuarterTileOverlayGreyscale decals: - 36: 31,-2 - 240: 50,5 - 251: 44,9 - 256: 42,6 - 645: 55,1 - - node: - color: '#334E6DC8' - id: QuarterTileOverlayGreyscale180 - decals: - 178: 0,30 + 28: 31,-2 + 187: 50,5 + 198: 44,9 + 203: 42,6 + 496: 55,1 - node: color: '#52B4E996' id: QuarterTileOverlayGreyscale180 decals: - 453: 19,-11 - 454: 19,-10 - 455: 19,-9 - 456: 19,-8 + 329: 19,-11 + 330: 19,-10 + 331: 19,-9 + 332: 19,-8 - node: color: '#A4610696' id: QuarterTileOverlayGreyscale180 decals: - 45: 16,12 + 37: 16,12 - node: color: '#D4D4D428' id: QuarterTileOverlayGreyscale180 decals: - 472: -37,7 - 473: -38,7 - 474: -39,7 - 475: -40,7 - 476: -36,7 - - node: - color: '#DE3A3A96' - id: QuarterTileOverlayGreyscale180 - decals: - 114: -5,10 + 348: -37,7 + 349: -38,7 + 350: -39,7 + 351: -40,7 + 352: -36,7 - node: color: '#EFB34196' id: QuarterTileOverlayGreyscale180 decals: - 167: 29,-5 - 248: 44,7 + 124: 29,-5 + 195: 44,7 - node: - color: '#334E6DC8' + color: '#52B4E996' id: QuarterTileOverlayGreyscale270 decals: - 179: 6,30 + 94: 14,-5 + 294: 12,-6 - node: - color: '#52B4E996' + color: '#C05B60FF' id: QuarterTileOverlayGreyscale270 decals: - 137: 14,-5 - 418: 12,-6 + 857: -6,10 - node: color: '#DE3A3A96' id: QuarterTileOverlayGreyscale270 decals: - 88: -6,10 - 113: -14,11 - 224: -12,13 + 171: -12,13 - node: color: '#EFB34196' id: QuarterTileOverlayGreyscale270 decals: - 168: 35,-5 - 253: 42,9 - 644: 55,3 + 125: 35,-5 + 200: 42,9 + 495: 55,3 - node: color: '#FFD886FF' id: QuarterTileOverlayGreyscale270 decals: - 155: 14,1 + 112: 14,1 - node: color: '#334E6DC8' id: QuarterTileOverlayGreyscale90 decals: 3: 4,24 4: 4,25 - 174: 0,28 - 185: 4,23 + 132: 4,23 - node: color: '#A4610696' id: QuarterTileOverlayGreyscale90 decals: - 21: 12,12 - 410: 16,5 - 411: 17,5 - 412: 18,5 - 413: 19,5 - 414: 20,5 - 415: 21,5 - 416: 22,5 - 417: 23,5 + 13: 12,12 + 286: 16,5 + 287: 17,5 + 288: 18,5 + 289: 19,5 + 290: 20,5 + 291: 21,5 + 292: 22,5 + 293: 23,5 - node: color: '#DE3A3A96' id: QuarterTileOverlayGreyscale90 decals: - 117: -3,10 - 203: -19,5 - 206: -5,5 + 150: -19,5 + 153: -5,5 - node: color: '#EFB34196' id: QuarterTileOverlayGreyscale90 decals: - 34: 29,-2 - 246: 44,5 - 249: 44,9 - 261: 37,6 - 262: 50,4 - 267: 28,6 - 268: 27,6 - 269: 26,6 - 270: 25,6 + 26: 29,-2 + 193: 44,5 + 196: 44,9 + 208: 37,6 + 209: 50,4 + 214: 28,6 + 215: 27,6 + 216: 26,6 + 217: 25,6 - node: - color: '#FFFFFFFF' - id: Rock01 + color: '#8F6CFFAD' + id: Rust decals: - 388: 49.003635,-25.832918 + 781: -31,-3 + 782: -30,-3 + 783: -30,0 + 784: -31,0 + 785: -31,1 + 786: -30,1 - node: color: '#FFFFFFFF' id: StandClear decals: - 520: 21,24 - 607: -52,-12 - 608: -45,-12 - 681: 1,-30 + 396: 21,24 + 463: -52,-12 + 464: -45,-12 + 532: 1,-30 - node: angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: StandClear decals: - 281: 60,2 + 228: 60,2 + - node: + color: '#BD575DFF' + id: ThreeQuarterTileOverlayGreyscale + decals: + 815: -10,17 + 824: -14,11 - node: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale180 decals: - 433: 12,-12 + 309: 12,-12 - node: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale270 decals: - 450: 14,-12 + 326: 14,-12 + - node: + color: '#BD575DFF' + id: ThreeQuarterTileOverlayGreyscale270 + decals: + 801: -10,10 + 823: -14,10 - node: color: '#52B4E996' id: ThreeQuarterTileOverlayGreyscale90 decals: - 430: 12,-8 + 306: 12,-8 + - node: + color: '#BD575DFF' + id: ThreeQuarterTileOverlayGreyscale90 + decals: + 813: -5,14 + 814: -6,17 - node: color: '#FF0000FF' id: WarnBox decals: - 860: 69,2 + 695: 69,2 - node: color: '#FFFFFFFF' id: WarnBox decals: - 393: -26,24 + 269: -26,24 - node: color: '#FF0000FF' id: WarnCornerNE decals: - 863: 68,3 + 698: 68,3 - node: color: '#FFFFFFFF' id: WarnCornerNE decals: - 811: -41,-6 + 646: -41,-6 - node: color: '#FF0000FF' id: WarnCornerNW decals: - 864: 66,3 + 699: 66,3 - node: color: '#FFFFFFFF' id: WarnCornerNW decals: - 812: -43,-6 + 647: -43,-6 - node: color: '#FF0000FF' id: WarnCornerSE decals: - 862: 68,1 + 697: 68,1 - node: color: '#FFFFFFFF' id: WarnCornerSE decals: - 813: -41,-4 + 648: -41,-4 - node: color: '#FF0000FF' id: WarnCornerSW decals: - 861: 66,1 + 696: 66,1 - node: color: '#FFFFFFFF' id: WarnCornerSW decals: - 814: -43,-4 + 649: -43,-4 - node: color: '#FFFFFFFF' id: WarnEndE decals: - 818: 12,-12 + 653: 12,-12 - node: color: '#FF0000FF' id: WarnEndN decals: - 859: 70,3 + 694: 70,3 - node: color: '#FF0000FF' id: WarnEndS decals: - 858: 70,2 + 693: 70,2 - node: color: '#FFFFFFFF' id: WarnEndW decals: - 817: 11,-12 + 652: 11,-12 + - node: + color: '#C3C3C3FF' + id: WarnLineE + decals: + 767: -36,-33 - node: color: '#FF0000FF' id: WarnLineE decals: - 832: 60,7 - 833: 60,6 - 865: 68,2 + 667: 60,7 + 668: 60,6 + 700: 68,2 - node: color: '#FFFFFFFF' id: WarnLineE decals: - 566: -15,-30 - 567: -15,-31 - 665: 54,-4 - 666: 54,-5 - 667: 54,-6 - 821: 57,7 - 822: 57,6 - 823: 57,8 - 824: 57,5 - 825: 57,4 - 826: 57,3 - 827: 57,2 - 828: 57,1 - 829: 57,0 + 442: -15,-30 + 443: -15,-31 + 516: 54,-4 + 517: 54,-5 + 518: 54,-6 + 656: 57,7 + 657: 57,6 + 658: 57,8 + 659: 57,5 + 660: 57,4 + 661: 57,3 + 662: 57,2 + 663: 57,1 + 664: 57,0 + 795: -21,-6 - node: color: '#FF0000FF' id: WarnLineN decals: - 853: 62,0 - 854: 63,0 - 855: 63,5 - 856: 62,5 - 857: 67,1 + 688: 62,0 + 689: 63,0 + 690: 63,5 + 691: 62,5 + 692: 67,1 - node: color: '#FFFFFFFF' id: WarnLineN decals: - 528: 20,26 - 529: 21,26 - 530: 22,26 - 668: 56,-4 - 669: 57,-4 - 670: 58,-4 - 671: 59,-4 - 672: 60,-4 - 683: -3,-29 - 684: -2,-29 - 685: -1,-29 - 686: 0,-29 - 815: -42,-4 - 869: 70,5 + 404: 20,26 + 405: 21,26 + 406: 22,26 + 519: 56,-4 + 520: 57,-4 + 521: 58,-4 + 522: 59,-4 + 523: 60,-4 + 534: -3,-29 + 535: -2,-29 + 536: -1,-29 + 537: 0,-29 + 650: -42,-4 + 703: 70,5 + - node: + color: '#C3C3C3FF' + id: WarnLineS + decals: + 765: -34,-33 + 766: -36,-33 + 773: -37,-30 + 774: -37,-29 - node: color: '#FF0000FF' id: WarnLineS decals: - 834: 62,10 - 835: 62,8 - 836: 62,9 - 837: 62,7 - 838: 62,6 - 839: 62,5 - 840: 62,4 - 841: 62,3 - 842: 62,2 - 843: 62,1 - 844: 62,0 - 845: 62,-1 - 846: 62,-2 - 847: 62,-3 - 848: 62,-4 - 866: 66,2 + 669: 62,10 + 670: 62,8 + 671: 62,9 + 672: 62,7 + 673: 62,6 + 674: 62,5 + 675: 62,4 + 676: 62,3 + 677: 62,2 + 678: 62,1 + 679: 62,0 + 680: 62,-1 + 681: 62,-2 + 682: 62,-3 + 683: 62,-4 + 701: 66,2 - node: color: '#FFFFFFFF' id: WarnLineS decals: - 568: -17,-31 - 569: -17,-30 - 770: -15,18 - 771: -15,19 - 772: -15,20 - 773: -15,21 - 830: 59,7 - 831: 59,6 + 444: -17,-31 + 445: -17,-30 + 605: -15,18 + 606: -15,19 + 607: -15,20 + 608: -15,21 + 665: 59,7 + 666: 59,6 + 796: -19,-6 - node: color: '#FF0000FF' id: WarnLineW decals: - 849: 62,4 - 850: 63,4 - 851: 63,-1 - 852: 62,-1 - 867: 67,3 + 684: 62,4 + 685: 63,4 + 686: 63,-1 + 687: 62,-1 + 702: 67,3 - node: color: '#FFFFFFFF' id: WarnLineW decals: - 518: 21,24 - 519: 22,24 - 521: 20,24 - 816: -42,-6 + 394: 21,24 + 395: 22,24 + 397: 20,24 + 651: -42,-6 - node: angle: -1.5707963267948966 rad color: '#FFFFFFFF' id: WarningLine decals: - 458: -40,0 - 459: -40,1 - 460: -40,2 - 461: -40,8 - 462: -40,9 - 463: -40,10 + 334: -40,0 + 335: -40,1 + 336: -40,2 + 337: -40,8 + 338: -40,9 + 339: -40,10 - node: color: '#FFFFFFFF' id: WarningLine decals: - 271: 46,7 - 272: 47,7 - 273: 48,7 - 274: 49,7 - 275: 50,7 - 304: 8,7 - 308: 7,7 - 309: 9,7 + 218: 46,7 + 219: 47,7 + 220: 48,7 + 221: 49,7 + 222: 50,7 + 251: 8,7 + 255: 7,7 + 256: 9,7 - node: angle: 1.5707963267948966 rad color: '#FFFFFFFF' id: WarningLine decals: - 121: 53,1 - 122: 53,2 - 123: 53,3 - 276: 60,0 - 277: 60,1 - 278: 60,2 - 279: 60,3 - 280: 60,4 - 390: -1,16 - 391: -1,17 - 392: -1,18 + 78: 53,1 + 79: 53,2 + 80: 53,3 + 223: 60,0 + 224: 60,1 + 225: 60,2 + 226: 60,3 + 227: 60,4 + 266: -1,16 + 267: -1,17 + 268: -1,18 - node: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: WarningLine decals: - 305: 8,11 + 252: 8,11 - node: angle: -1.5707963267948966 rad color: '#FFFFFFFF' id: WarningLineCorner decals: - 464: -40,3 + 340: -40,3 - node: color: '#FFFFFFFF' id: WarningLineCorner decals: - 311: 6,7 + 258: 6,7 - node: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: WarningLineCorner decals: - 306: 9,11 + 253: 9,11 - node: angle: -1.5707963267948966 rad color: '#FFFFFFFF' id: WarningLineCornerFlipped decals: - 465: -40,7 + 341: -40,7 - node: color: '#FFFFFFFF' id: WarningLineCornerFlipped decals: - 310: 10,7 + 257: 10,7 - node: angle: 3.141592653589793 rad color: '#FFFFFFFF' id: WarningLineCornerFlipped decals: - 307: 7,11 + 254: 7,11 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinCornerNe + decals: + 705: 0,1 + 830: -18,-11 + 844: 0,14 - node: zIndex: 1 color: '#FFFFFFFF' id: WoodTrimThinCornerNe decals: - 643: -4,-6 + 494: -4,-6 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinCornerNw + decals: + 704: -10,1 + 829: -21,-11 + 843: -4,14 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinCornerSe + decals: + 706: 0,-7 + 831: -18,-13 + 847: 0,10 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinCornerSw + decals: + 708: -10,-2 + 832: -21,-13 + 842: -4,10 - node: zIndex: 2 color: '#FFFFFFFF' id: WoodTrimThinCornerSw decals: - 768: -37,19 + 603: -37,19 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinInnerSw + decals: + 707: -8,-2 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinLineE + decals: + 720: 0,0 + 721: 0,-1 + 722: 0,-2 + 723: 0,-3 + 724: 0,-5 + 725: 0,-4 + 726: 0,-6 + 833: -18,-12 + 850: 0,11 + 851: 0,12 + 852: 0,13 - node: zIndex: 1 color: '#FFFFFFFF' id: WoodTrimThinLineE decals: - 642: -4,-7 - 780: 27,10 - 781: 27,9 - 782: 27,8 + 493: -4,-7 + 615: 27,10 + 616: 27,9 + 617: 27,8 - node: zIndex: 2 color: '#FFFFFFFF' id: WoodTrimThinLineE decals: - 726: 20,-12 + 577: 20,-12 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinLineN + decals: + 711: -8,1 + 712: -9,1 + 713: -7,1 + 714: -6,1 + 715: -5,1 + 716: -4,1 + 717: -3,1 + 718: -2,1 + 719: -1,1 + 834: -19,-11 + 835: -20,-11 + 853: -1,14 + 854: -2,14 + 855: -3,14 - node: zIndex: 1 color: '#FFFFFFFF' id: WoodTrimThinLineN decals: - 638: -8,-6 - 639: -7,-6 - 640: -6,-6 - 641: -5,-6 + 489: -8,-6 + 490: -7,-6 + 491: -6,-6 + 492: -5,-6 - node: color: '#FFFFFFFF' id: WoodTrimThinLineS decals: - 803: 37,0 - 804: 38,0 - 805: 39,0 - 806: 40,0 + 638: 37,0 + 639: 38,0 + 640: 39,0 + 641: 40,0 + 727: -1,-7 + 728: -2,-7 + 729: -3,-7 + 733: -9,-2 + 837: -20,-13 + 838: -19,-13 + 848: -1,10 + 849: -2,10 + 856: -3,10 - node: zIndex: 2 color: '#FFFFFFFF' id: WoodTrimThinLineS decals: - 769: -36,19 + 604: -36,19 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinLineW + decals: + 709: -10,-1 + 710: -10,0 + 730: -8,-5 + 731: -8,-4 + 732: -8,-3 + 827: -14,-12 + 828: -14,-11 + 836: -21,-12 + 839: -4,13 + 840: -4,12 + 841: -4,11 - node: color: '#FFFF00FF' id: radiation decals: - 820: 59,7 + 655: 59,7 - type: OccluderTree - type: SpreaderGrid - type: Shuttle @@ -3440,44 +3527,6 @@ entities: - type: Broadphase - type: OccluderTree - type: LoadedMap - - uid: 12098 - components: - - type: MetaData - name: grid - - type: Transform - parent: 658 - - type: MapGrid - chunks: - 3,0: - ind: 3,0 - tiles: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAA - version: 6 - - type: Broadphase - - type: Physics - bodyStatus: InAir - angularDamping: 0.05 - linearDamping: 0.05 - fixedRotation: False - bodyType: Dynamic - - type: Fixtures - fixtures: {} - - type: OccluderTree - - type: SpreaderGrid - - type: Shuttle - - type: GridPathfinding - - type: Gravity - gravityShakeSound: !type:SoundPathSpecifier - path: /Audio/Effects/alert.ogg - - type: DecalGrid - chunkCollection: - version: 2 - nodes: [] - - type: GridAtmosphere - version: 2 - data: - chunkSize: 4 - - type: GasTileOverlay - - type: NavMap - proto: AcousticGuitarInstrument entities: - uid: 3146 @@ -3490,8 +3539,41 @@ entities: - type: Transform pos: -11.470391,11.486723 parent: 31 +- proto: ActionToggleLight + entities: + - uid: 2470 + components: + - type: Transform + parent: 2469 + - type: InstantAction + container: 2469 + - uid: 7058 + components: + - type: Transform + parent: 7042 + - type: InstantAction + container: 7042 - proto: AirAlarm entities: + - uid: 3855 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,14.5 + parent: 31 + - type: DeviceList + devices: + - 526 + - 7853 + - 7855 + - 4828 + - 533 + - 7041 + - 9570 + - 8817 + - 6463 + - 475 + - 494 - uid: 5107 components: - type: Transform @@ -3510,9 +3592,7 @@ entities: - 10929 - 10908 - 10961 - - 10909 - 10960 - - 8384 - uid: 6582 components: - type: Transform @@ -3536,6 +3616,28 @@ entities: - 4267 - 9965 - 9966 + - uid: 7152 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,31.5 + parent: 31 + - type: DeviceList + devices: + - 6321 + - 6125 + - 6318 + - 6126 + - 2268 + - 6697 + - 7129 + - 6874 + - 6232 + - 7121 + - 6299 + - 7131 + - 6300 + - 7143 - uid: 7345 components: - type: Transform @@ -3574,7 +3676,6 @@ entities: - type: DeviceList devices: - 9972 - - 9971 - 9970 - 995 - 179 @@ -3589,20 +3690,18 @@ entities: parent: 31 - type: DeviceList devices: - - 3928 - - 3934 - - 3935 - 3969 - 3970 - 9972 - - 9971 - 9970 - - 9994 - - 9995 - 6119 - 6120 - 6117 - 6118 + - 11297 + - 10159 + - 11323 + - 11334 - uid: 9164 components: - type: Transform @@ -3629,7 +3728,6 @@ entities: - 6413 - 10008 - 9958 - - 9959 - 9960 - uid: 9976 components: @@ -3657,7 +3755,6 @@ entities: - 6276 - 9964 - 9958 - - 9959 - 9960 - 9961 - uid: 9978 @@ -3671,7 +3768,6 @@ entities: - 4030 - 4026 - 8856 - - 8858 - 8857 - 5476 - 5477 @@ -3679,6 +3775,7 @@ entities: - 5474 - 8876 - 8875 + - 6002 - uid: 9979 components: - type: Transform @@ -3693,7 +3790,6 @@ entities: - 1027 - 1028 - 8885 - - 8884 - 8883 - 3959 - 3944 @@ -3702,7 +3798,6 @@ entities: - 3987 - 3988 - 9988 - - 9989 - 9990 - 8874 - 8873 @@ -3712,7 +3807,7 @@ entities: - 5332 - 5543 - 5544 - - 7460 + - 3305 - uid: 9983 components: - type: Transform @@ -3733,7 +3828,6 @@ entities: - type: DeviceList devices: - 9988 - - 9989 - 9990 - 1029 - 100 @@ -3764,36 +3858,12 @@ entities: parent: 31 - type: DeviceList devices: - - 8794 + - 4860 + - 6042 - 8795 - - 5765 - - 6033 - - 6032 + - 6024 - 4701 - - 4185 - - 10000 - - 9999 - - uid: 10001 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 6.5,27.5 - parent: 31 - - type: DeviceList - devices: - - 8816 - - 8813 - - 8810 - - 8814 - - 8815 - - 9969 - - 5870 - - 5871 - - 5868 - - 5865 - - 5869 - - 5864 - - 716 + - 6032 - uid: 10003 components: - type: Transform @@ -3804,7 +3874,6 @@ entities: devices: - 8885 - 8883 - - 8884 - 5115 - 5849 - 5848 @@ -3886,16 +3955,11 @@ entities: parent: 31 - type: DeviceList devices: - - 7042 - - 5545 - - 5546 - 5542 - 5541 - 4529 - 4528 - 4525 - - 7041 - - 7040 - uid: 10238 components: - type: Transform @@ -3910,9 +3974,9 @@ entities: - 10315 - 10314 - 10313 - - 10240 - - 10241 - - 10242 + - 10159 + - 4006 + - 11719 - uid: 10371 components: - type: Transform @@ -3947,7 +4011,6 @@ entities: - type: DeviceList devices: - 10318 - - 10317 - 10316 - 10431 - 10313 @@ -3980,12 +4043,21 @@ entities: devices: - 11570 - 11569 - - 11596 - - 11597 - 11572 - 11571 - 11608 - 11609 + - uid: 11863 + components: + - type: Transform + pos: 49.5,-20.5 + parent: 31 + - type: DeviceList + devices: + - 6961 + - 8248 + - 12076 + - 2058 - proto: AirCanister entities: - uid: 1279 @@ -4010,26 +4082,10 @@ entities: parent: 31 - proto: Airlock entities: - - uid: 4082 - components: - - type: MetaData - name: Dorms 1 - - type: Transform - pos: -26.5,0.5 - parent: 31 - - uid: 4083 - components: - - type: MetaData - name: Dorms 2 - - type: Transform - pos: -26.5,-2.5 - parent: 31 - - uid: 4084 + - uid: 33 components: - - type: MetaData - name: Dorms 3 - type: Transform - pos: -26.5,-5.5 + pos: -28.5,0.5 parent: 31 - proto: AirlockArmoryGlassLocked entities: @@ -4053,6 +4109,11 @@ entities: parent: 31 - proto: AirlockBarLocked entities: + - uid: 1529 + components: + - type: Transform + pos: -13.5,-7.5 + parent: 31 - uid: 2272 components: - type: Transform @@ -4160,10 +4221,28 @@ entities: - type: Transform pos: 1.5,24.5 parent: 31 - - uid: 8832 + - uid: 3247 components: - type: Transform - pos: 3.5,26.5 + rot: 3.141592653589793 rad + pos: -3.5,30.5 + parent: 31 + - uid: 4308 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,32.5 + parent: 31 + - uid: 5120 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,32.5 + parent: 31 + - uid: 8519 + components: + - type: Transform + pos: 3.5,27.5 parent: 31 - uid: 8833 components: @@ -4172,6 +4251,18 @@ entities: - type: Transform pos: 3.5,22.5 parent: 31 + - type: Door + secondsUntilStateChange: -17204.738 + state: Opening + - type: DeviceLinkSource + lastSignals: + DoorStatus: True + - uid: 9869 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,28.5 + parent: 31 - proto: AirlockCommandLocked entities: - uid: 15 @@ -4195,20 +4286,19 @@ entities: - type: DeviceLinkSink links: - 276 -- proto: AirlockCorpsmanGlassLocked - entities: - - uid: 33 + - uid: 694 components: - type: Transform - pos: 0.5,11.5 + pos: 53.5,-24.5 parent: 31 -- proto: AirlockDetectiveLocked - entities: - - uid: 1338 + - uid: 3998 components: - type: Transform - pos: -20.5,16.5 + rot: 1.5707963267948966 rad + pos: 49.5,-28.5 parent: 31 +- proto: AirlockDetectiveLocked + entities: - uid: 1889 components: - type: Transform @@ -4240,11 +4330,6 @@ entities: - type: Transform pos: 36.5,3.5 parent: 31 - - uid: 3981 - components: - - type: Transform - pos: 36.5,4.5 - parent: 31 - uid: 4011 components: - type: Transform @@ -4269,6 +4354,11 @@ entities: parent: 31 - proto: AirlockEngineeringLocked entities: + - uid: 120 + components: + - type: Transform + pos: -31.5,-26.5 + parent: 31 - uid: 649 components: - type: MetaData @@ -4276,10 +4366,13 @@ entities: - type: Transform pos: 49.5,-1.5 parent: 31 - - uid: 1178 + - uid: 1123 components: + - type: MetaData + name: Substation Room - type: Transform - pos: 12.5,20.5 + rot: -1.5707963267948966 rad + pos: -20.5,13.5 parent: 31 - uid: 2010 components: @@ -4294,15 +4387,27 @@ entities: rot: 3.141592653589793 rad pos: -32.5,8.5 parent: 31 - - uid: 3423 + - uid: 2343 components: - type: Transform - pos: -11.5,-34.5 + rot: 3.141592653589793 rad + pos: 70.5,4.5 parent: 31 - - uid: 3852 + - uid: 2356 + components: + - type: Transform + pos: -29.5,-10.5 + parent: 31 + - uid: 2725 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 71.5,2.5 + parent: 31 + - uid: 3423 components: - type: Transform - pos: -17.5,16.5 + pos: -11.5,-34.5 parent: 31 - uid: 4172 components: @@ -4352,37 +4457,49 @@ entities: - type: Transform pos: 41.5,9.5 parent: 31 - - uid: 6922 + - uid: 7017 components: - type: Transform rot: 3.141592653589793 rad - pos: 70.5,4.5 + pos: 45.5,-24.5 parent: 31 - - uid: 9592 + - uid: 7052 components: - type: Transform - pos: 24.5,-13.5 + rot: 3.141592653589793 rad + pos: 50.5,-20.5 parent: 31 - - uid: 9986 + - uid: 7060 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -27.5,-11.5 + rot: 3.141592653589793 rad + pos: 48.5,-20.5 parent: 31 -- proto: AirlockExternal - entities: - - uid: 1758 + - uid: 8276 components: - type: Transform - pos: -21.5,-29.5 + rot: 3.141592653589793 rad + pos: 69.5,2.5 parent: 31 - - uid: 8525 + - uid: 8733 components: - type: Transform - pos: -31.5,-26.5 + rot: -1.5707963267948966 rad + pos: 13.5,20.5 + parent: 31 + - uid: 9592 + components: + - type: Transform + pos: 24.5,-13.5 parent: 31 - proto: AirlockExternalEngineeringLocked entities: + - uid: 7138 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 49.5,-17.5 + parent: 31 - uid: 11776 components: - type: Transform @@ -4554,6 +4671,32 @@ entities: linkedPorts: 9974: - DoorStatus: DoorBolt + - uid: 2774 + components: + - type: Transform + pos: -37.5,-31.5 + parent: 31 + - type: DeviceLinkSink + invokeCounter: 1 + links: + - 4823 + - type: DeviceLinkSource + linkedPorts: + 4823: + - DoorStatus: Close + - uid: 4823 + components: + - type: Transform + pos: -34.5,-32.5 + parent: 31 + - type: DeviceLinkSink + invokeCounter: 1 + links: + - 2774 + - type: DeviceLinkSource + linkedPorts: + 2774: + - DoorStatus: Close - uid: 9974 components: - type: Transform @@ -4671,6 +4814,24 @@ entities: parent: 31 - proto: AirlockExternalGlassShuttleLocked entities: + - uid: 4289 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,34.5 + parent: 31 + - uid: 4934 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,35.5 + parent: 31 + - uid: 6755 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,36.5 + parent: 31 - uid: 6995 components: - type: Transform @@ -4685,18 +4846,24 @@ entities: parent: 31 - proto: AirlockFreezer entities: - - uid: 599 + - uid: 820 components: - type: Transform - pos: -14.5,-4.5 + pos: -12.5,-2.5 parent: 31 - - uid: 820 + - uid: 8925 components: - type: Transform - pos: -12.5,-2.5 + pos: -14.5,-5.5 parent: 31 - proto: AirlockGlass entities: + - uid: 208 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -37.5,-2.5 + parent: 31 - uid: 588 components: - type: MetaData @@ -4711,41 +4878,27 @@ entities: - type: Transform pos: -25.5,10.5 parent: 31 - - uid: 660 - components: - - type: Transform - pos: -35.5,-2.5 - parent: 31 - - uid: 1767 - components: - - type: Transform - pos: 39.5,-24.5 - parent: 31 - - uid: 1808 + - uid: 710 components: - type: Transform - pos: 39.5,-23.5 + rot: -1.5707963267948966 rad + pos: -36.5,-2.5 parent: 31 - - uid: 2278 + - uid: 2032 components: - type: Transform - pos: -22.5,-10.5 + pos: -26.5,-8.5 parent: 31 - - uid: 2331 + - uid: 2147 components: - type: Transform - pos: 0.5,-15.5 + pos: -24.5,-8.5 parent: 31 - uid: 3929 components: - type: Transform pos: -21.5,5.5 parent: 31 - - uid: 3930 - components: - - type: Transform - pos: -21.5,4.5 - parent: 31 - uid: 3933 components: - type: Transform @@ -4756,21 +4909,6 @@ entities: - type: Transform pos: -21.5,3.5 parent: 31 - - uid: 3974 - components: - - type: Transform - pos: -23.5,1.5 - parent: 31 - - uid: 3997 - components: - - type: Transform - pos: -24.5,1.5 - parent: 31 - - uid: 3999 - components: - - type: Transform - pos: 3.5,15.5 - parent: 31 - uid: 4000 components: - type: Transform @@ -4786,25 +4924,10 @@ entities: - type: Transform pos: 2.5,-12.5 parent: 31 - - uid: 4018 - components: - - type: Transform - pos: 3.5,-12.5 - parent: 31 - - uid: 4683 - components: - - type: Transform - pos: 39.5,-25.5 - parent: 31 - - uid: 4820 - components: - - type: Transform - pos: -23.5,-10.5 - parent: 31 - - uid: 4823 + - uid: 4577 components: - type: Transform - pos: -24.5,-10.5 + pos: -11.5,-13.5 parent: 31 - uid: 5105 components: @@ -4816,50 +4939,21 @@ entities: - type: Transform pos: 0.5,-16.5 parent: 31 - - uid: 7036 - components: - - type: Transform - pos: 32.5,-18.5 - parent: 31 - - uid: 7037 - components: - - type: Transform - pos: 33.5,-18.5 - parent: 31 - - uid: 8200 - components: - - type: Transform - pos: 43.5,-25.5 - parent: 31 - - uid: 8201 - components: - - type: Transform - pos: 43.5,-24.5 - parent: 31 - - uid: 8202 + - uid: 8280 components: - type: Transform - pos: 43.5,-23.5 + pos: -3.5,-13.5 parent: 31 - uid: 8719 components: - type: Transform pos: -33.5,-30.5 parent: 31 - - uid: 8910 - components: - - type: Transform - pos: -26.5,-8.5 - parent: 31 - - uid: 9180 - components: - - type: Transform - pos: -37.5,-2.5 - parent: 31 - - uid: 9181 + - uid: 9989 components: - type: Transform - pos: -36.5,-2.5 + rot: -1.5707963267948966 rad + pos: -28.5,-4.5 parent: 31 - uid: 11398 components: @@ -4896,10 +4990,15 @@ entities: parent: 31 - proto: AirlockJanitorLocked entities: - - uid: 2709 + - uid: 4631 components: - type: Transform - pos: -21.5,-12.5 + pos: -22.5,-8.5 + parent: 31 + - uid: 7973 + components: + - type: Transform + pos: -19.5,-5.5 parent: 31 - proto: AirlockKitchenGlassLocked entities: @@ -4923,11 +5022,6 @@ entities: - type: Transform pos: 23.5,-24.5 parent: 31 - - uid: 4858 - components: - - type: Transform - pos: -14.5,-9.5 - parent: 31 - uid: 4948 components: - type: Transform @@ -4950,13 +5044,6 @@ entities: - type: Transform pos: 29.5,12.5 parent: 31 -- proto: AirlockMaintBarLocked - entities: - - uid: 615 - components: - - type: Transform - pos: -12.5,-8.5 - parent: 31 - proto: AirlockMaintCargoLocked entities: - uid: 564 @@ -4966,6 +5053,12 @@ entities: parent: 31 - proto: AirlockMaintCommandLocked entities: + - uid: 37 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,26.5 + parent: 31 - uid: 154 components: - type: Transform @@ -4981,13 +5074,9 @@ entities: - uid: 600 components: - type: Transform + rot: -1.5707963267948966 rad pos: -32.5,2.5 parent: 31 - - uid: 614 - components: - - type: Transform - pos: -34.5,-6.5 - parent: 31 - uid: 627 components: - type: Transform @@ -5003,12 +5092,22 @@ entities: - type: Transform pos: -26.5,-16.5 parent: 31 + - uid: 2305 + components: + - type: Transform + pos: -9.5,-12.5 + parent: 31 - uid: 2354 components: - type: Transform rot: 3.141592653589793 rad pos: -32.5,-12.5 parent: 31 + - uid: 4104 + components: + - type: Transform + pos: -34.5,-5.5 + parent: 31 - uid: 5731 components: - type: Transform @@ -5026,12 +5125,6 @@ entities: rot: -1.5707963267948966 rad pos: -28.5,-25.5 parent: 31 - - uid: 9220 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -9.5,-13.5 - parent: 31 - uid: 9402 components: - type: Transform @@ -5054,11 +5147,6 @@ entities: - type: Transform pos: 10.5,-39.5 parent: 31 - - uid: 9933 - components: - - type: Transform - pos: -4.5,26.5 - parent: 31 - proto: AirlockMaintEngiLocked entities: - uid: 2230 @@ -5078,20 +5166,6 @@ entities: - type: Transform pos: 11.5,19.5 parent: 31 -- proto: AirlockMaintHydroLocked - entities: - - uid: 524 - components: - - type: Transform - pos: -16.5,-3.5 - parent: 31 -- proto: AirlockMaintJanitorLocked - entities: - - uid: 3137 - components: - - type: Transform - pos: -16.5,-12.5 - parent: 31 - proto: AirlockMaintLocked entities: - uid: 543 @@ -5119,11 +5193,6 @@ entities: - type: Transform pos: -33.5,14.5 parent: 31 - - uid: 2454 - components: - - type: Transform - pos: -31.5,-8.5 - parent: 31 - uid: 4170 components: - type: Transform @@ -5134,15 +5203,10 @@ entities: - type: Transform pos: 34.5,-9.5 parent: 31 - - uid: 6166 - components: - - type: Transform - pos: -20.5,19.5 - parent: 31 - - uid: 6452 + - uid: 5551 components: - type: Transform - pos: -25.5,15.5 + pos: -31.5,-7.5 parent: 31 - uid: 7378 components: @@ -5157,11 +5221,10 @@ entities: parent: 31 - proto: AirlockMaintMedLocked entities: - - uid: 9516 + - uid: 3365 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 9.5,-18.5 + pos: 14.5,-18.5 parent: 31 - proto: AirlockMaintRnDLocked entities: @@ -5175,11 +5238,6 @@ entities: - type: Transform pos: -20.5,-28.5 parent: 31 - - uid: 8448 - components: - - type: Transform - pos: -18.5,-27.5 - parent: 31 - proto: AirlockMaintSalvageLocked entities: - uid: 58 @@ -5187,20 +5245,6 @@ entities: - type: Transform pos: 26.5,14.5 parent: 31 -- proto: AirlockMaintSecLocked - entities: - - uid: 9132 - components: - - type: Transform - pos: -16.5,14.5 - parent: 31 -- proto: AirlockMaintTheatreLocked - entities: - - uid: 525 - components: - - type: Transform - pos: -16.5,-7.5 - parent: 31 - proto: AirlockMantisGlassLocked entities: - uid: 1387 @@ -5251,11 +5295,6 @@ entities: - type: Transform pos: 18.5,-14.5 parent: 31 - - uid: 4906 - components: - - type: Transform - pos: 11.5,-14.5 - parent: 31 - uid: 7278 components: - type: Transform @@ -5268,6 +5307,11 @@ entities: parent: 31 - proto: AirlockMedicalLocked entities: + - uid: 3367 + components: + - type: Transform + pos: 11.5,-14.5 + parent: 31 - uid: 4146 components: - type: MetaData @@ -5313,27 +5357,25 @@ entities: parent: 31 - proto: AirlockScienceGlass entities: - - uid: 54 + - uid: 3843 components: - type: Transform - pos: -27.5,-22.5 + pos: -23.5,-17.5 parent: 31 - - uid: 72 + - uid: 3848 components: - type: Transform - pos: -27.5,-21.5 + pos: -22.5,-17.5 parent: 31 - - uid: 2190 + - uid: 3911 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -23.5,-17.5 + pos: -27.5,-21.5 parent: 31 - - uid: 2223 + - uid: 3916 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -22.5,-17.5 + pos: -27.5,-22.5 parent: 31 - uid: 8096 components: @@ -5362,6 +5404,11 @@ entities: - type: Transform pos: -4.5,-27.5 parent: 31 + - uid: 3846 + components: + - type: Transform + pos: -18.5,-22.5 + parent: 31 - uid: 3952 components: - type: Transform @@ -5372,14 +5419,22 @@ entities: - type: Transform pos: 1.5,-28.5 parent: 31 - - uid: 9374 +- proto: AirlockScienceLocked + entities: + - uid: 7786 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -18.5,-22.5 + pos: -18.5,-27.5 parent: 31 - proto: AirlockSecurityGlassLocked entities: + - uid: 243 + components: + - type: MetaData + name: Perma + - type: Transform + pos: -14.5,10.5 + parent: 31 - uid: 1203 components: - type: Transform @@ -5406,21 +5461,8 @@ entities: - type: DeviceLinkSink links: - 9951 - - uid: 7786 - components: - - type: MetaData - name: Perma - - type: Transform - pos: -14.5,10.5 - parent: 31 - proto: AirlockSecurityLawyerGlassLocked entities: - - uid: 30 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -10.5,9.5 - parent: 31 - uid: 574 components: - type: Transform @@ -5441,26 +5483,39 @@ entities: - type: Transform pos: -4.5,6.5 parent: 31 -- proto: AirlockShuttle +- proto: AirlockSecurityLocked entities: - - uid: 12463 + - uid: 940 components: - type: Transform - rot: 3.141592653589793 rad - pos: 35.5,28.5 + rot: 1.5707963267948966 rad + pos: -16.5,14.5 parent: 31 - - uid: 12525 +- proto: AirlockServiceLocked + entities: + - uid: 7593 components: - type: Transform - rot: 3.141592653589793 rad - pos: 33.5,28.5 + rot: -1.5707963267948966 rad + pos: -16.5,-3.5 parent: 31 - proto: AirlockTheatreLocked entities: - - uid: 7337 + - uid: 1136 components: - type: Transform - pos: -20.5,-8.5 + rot: -1.5707963267948966 rad + pos: -16.5,-12.5 + parent: 31 + - uid: 6975 + components: + - type: Transform + pos: -21.5,-12.5 + parent: 31 + - uid: 11847 + components: + - type: Transform + pos: -18.5,-9.5 parent: 31 - proto: AirSensor entities: @@ -5504,12 +5559,6 @@ entities: rot: -1.5707963267948966 rad pos: -12.5,-3.5 parent: 31 - - uid: 10042 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -7.5,-11.5 - parent: 31 - uid: 10239 components: - type: Transform @@ -5564,12 +5613,21 @@ entities: - type: Transform pos: 11.5,-8.5 parent: 31 -- proto: AltarDruid + - uid: 11334 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,-2.5 + parent: 31 + - type: DeviceNetwork + deviceLists: + - 9042 +- proto: AloeSeeds entities: - - uid: 4586 + - uid: 10442 components: - type: Transform - pos: 49.5,-25.5 + pos: -17.725698,1.7237155 parent: 31 - proto: AltarSpawner entities: @@ -5578,6 +5636,14 @@ entities: - type: Transform pos: -20.5,-20.5 parent: 31 +- proto: AlwaysPoweredLightSodium + entities: + - uid: 1671 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,24.5 + parent: 31 - proto: AmmoniaCanister entities: - uid: 6707 @@ -5590,6 +5656,11 @@ entities: angularDamping: 0 linearDamping: 0 bodyType: Static + - uid: 8730 + components: + - type: Transform + pos: 60.5,9.5 + parent: 31 - uid: 12258 components: - type: Transform @@ -5680,13 +5751,13 @@ entities: rot: -1.5707963267948966 rad pos: 37.5,10.5 parent: 31 - - uid: 2041 + - uid: 1489 components: - type: MetaData - name: Dorms APC + name: North Maints APC - type: Transform - rot: 1.5707963267948966 rad - pos: -26.5,-4.5 + rot: 3.141592653589793 rad + pos: -21.5,13.5 parent: 31 - uid: 2154 components: @@ -5818,13 +5889,6 @@ entities: parent: 31 - type: Battery startingCharge: 11999.217 - - uid: 4085 - components: - - type: MetaData - name: North Maints APC - - type: Transform - pos: -20.5,15.5 - parent: 31 - uid: 4261 components: - type: MetaData @@ -5847,14 +5911,6 @@ entities: - type: Transform pos: 7.5,12.5 parent: 31 - - uid: 5527 - components: - - type: MetaData - name: Botany APC - - type: Transform - rot: 3.141592653589793 rad - pos: -18.5,-3.5 - parent: 31 - uid: 5785 components: - type: MetaData @@ -5893,6 +5949,14 @@ entities: - type: Transform pos: -11.5,-17.5 parent: 31 + - uid: 7972 + components: + - type: MetaData + name: Dorms APC + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,-2.5 + parent: 31 - uid: 8439 components: - type: MetaData @@ -5908,6 +5972,12 @@ entities: - type: Transform pos: -32.5,-25.5 parent: 31 + - uid: 8911 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 45.5,-25.5 + parent: 31 - uid: 10268 components: - type: MetaData @@ -5971,6 +6041,11 @@ entities: - type: Transform pos: -29.406065,9.491461 parent: 31 + - uid: 679 + components: + - type: Transform + pos: 51.32734,-29.171757 + parent: 31 - uid: 7872 components: - type: Transform @@ -5981,6 +6056,11 @@ entities: - type: Transform pos: 29.46184,-1.6702437 parent: 31 + - uid: 9219 + components: + - type: Transform + pos: 51.806507,-29.171757 + parent: 31 - proto: AppraisalTool entities: - uid: 7119 @@ -6023,11 +6103,22 @@ entities: parent: 31 - proto: AtmosDeviceFanTiny entities: - - uid: 950 + - uid: 207 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -14.5,-4.5 + pos: -14.5,-5.5 + parent: 31 + - uid: 6767 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,35.5 + parent: 31 + - uid: 7480 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,34.5 parent: 31 - uid: 7566 components: @@ -6047,6 +6138,12 @@ entities: rot: 3.141592653589793 rad pos: -12.5,-2.5 parent: 31 + - uid: 9328 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -10.5,36.5 + parent: 31 - uid: 9923 components: - type: Transform @@ -6291,6 +6388,21 @@ entities: parent: 31 - proto: AtmosFixFreezerMarker entities: + - uid: 4376 + components: + - type: Transform + pos: -14.5,-3.5 + parent: 31 + - uid: 4377 + components: + - type: Transform + pos: -14.5,-4.5 + parent: 31 + - uid: 4618 + components: + - type: Transform + pos: -14.5,-4.5 + parent: 31 - uid: 5895 components: - type: Transform @@ -6341,6 +6453,11 @@ entities: - type: Transform pos: -9.5,-3.5 parent: 31 + - uid: 11308 + components: + - type: Transform + pos: -14.5,-3.5 + parent: 31 - proto: AtmosFixNitrogenMarker entities: - uid: 634 @@ -6426,17 +6543,12 @@ entities: - type: Physics angularDamping: 0 linearDamping: 0 -- proto: BannerNanotrasen +- proto: BanjoInstrument entities: - - uid: 3677 - components: - - type: Transform - pos: 53.5,-28.5 - parent: 31 - - uid: 8995 + - uid: 9995 components: - type: Transform - pos: 53.5,-20.5 + pos: -29.61864,1.6685541 parent: 31 - proto: BannerScience entities: @@ -6450,25 +6562,31 @@ entities: - type: Transform pos: 3.5,-22.5 parent: 31 -- proto: Barricade +- proto: BarberScissors entities: - - uid: 413 + - uid: 6981 components: - type: Transform - pos: -4.5,-11.5 + rot: 3.141592653589793 rad + pos: -6.283682,-11.530836 parent: 31 -- proto: BarricadeBlock +- proto: BarberSignPole entities: - - uid: 769 + - uid: 11813 components: - type: Transform - pos: -12.5,-8.5 + rot: 1.5707963267948966 rad + pos: -4.5,-13.5 parent: 31 - - uid: 3577 +- proto: BarberSignThesnip + entities: + - uid: 2596 components: - type: Transform - pos: -14.5,-9.5 + pos: -3.5,-11.5 parent: 31 +- proto: BarricadeBlock + entities: - uid: 8481 components: - type: Transform @@ -6488,6 +6606,17 @@ entities: parent: 31 - proto: BaseComputer entities: + - uid: 3658 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 24.5,15.5 + parent: 31 + - uid: 7453 + components: + - type: Transform + pos: -0.5,14.5 + parent: 31 - uid: 11453 components: - type: Transform @@ -6518,6 +6647,11 @@ entities: - data: null ReagentId: Leporazine Quantity: 40 + - uid: 10792 + components: + - type: Transform + pos: -16.76883,-1.1648301 + parent: 31 - uid: 10800 components: - type: Transform @@ -6530,31 +6664,21 @@ entities: - type: Transform pos: 29.5,8.5 parent: 31 - - uid: 475 + - uid: 425 components: - type: Transform - pos: -7.5,22.5 + pos: -11.5,7.5 parent: 31 - uid: 704 components: - type: Transform pos: -15.5,8.5 parent: 31 - - uid: 938 - components: - - type: Transform - pos: -3.5,-23.5 - parent: 31 - uid: 1621 components: - type: Transform pos: 41.5,-1.5 parent: 31 - - uid: 1956 - components: - - type: Transform - pos: -12.5,7.5 - parent: 31 - uid: 1997 components: - type: Transform @@ -6580,30 +6704,20 @@ entities: - type: Transform pos: -33.5,18.5 parent: 31 - - uid: 4086 - components: - - type: Transform - pos: -27.5,-1.5 - parent: 31 - - uid: 4087 - components: - - type: Transform - pos: -27.5,1.5 - parent: 31 - - uid: 4088 + - uid: 4150 components: - type: Transform - pos: -27.5,-4.5 + pos: -9.5,7.5 parent: 31 - uid: 7059 components: - type: Transform pos: 32.5,-10.5 parent: 31 - - uid: 7138 + - uid: 8263 components: - type: Transform - pos: -0.5,13.5 + pos: -29.5,-2.5 parent: 31 - uid: 8409 components: @@ -6615,6 +6729,16 @@ entities: - type: Transform pos: -13.5,-37.5 parent: 31 + - uid: 9507 + components: + - type: Transform + pos: -29.5,-1.5 + parent: 31 + - uid: 9542 + components: + - type: Transform + pos: -29.5,-0.5 + parent: 31 - uid: 10533 components: - type: Transform @@ -6630,34 +6754,39 @@ entities: - type: Transform pos: 6.5,-35.5 parent: 31 - - uid: 11051 + - uid: 11157 components: - type: Transform - pos: -23.5,17.5 + pos: -13.5,7.5 parent: 31 - - uid: 11472 +- proto: BedsheetBlack + entities: + - uid: 10042 components: - type: Transform - pos: -0.5,12.5 + rot: -1.5707963267948966 rad + pos: -29.5,-2.5 parent: 31 -- proto: BedsheetBlack - entities: - uid: 10705 components: - type: Transform pos: -24.5,-27.5 parent: 31 -- proto: BedsheetBrigmedic +- proto: BedsheetBlue entities: - - uid: 12101 + - uid: 10141 components: - type: Transform - pos: -0.5,13.5 + rot: -1.5707963267948966 rad + pos: -29.5,-1.5 parent: 31 - - uid: 12102 +- proto: BedsheetBrown + entities: + - uid: 10145 components: - type: Transform - pos: -0.5,12.5 + rot: -1.5707963267948966 rad + pos: -29.5,-0.5 parent: 31 - proto: BedsheetCaptain entities: @@ -6701,14 +6830,6 @@ entities: - type: Transform pos: 10.5,16.5 parent: 31 -- proto: BedsheetHOS - entities: - - uid: 425 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -7.5,22.5 - parent: 31 - proto: BedsheetMedical entities: - uid: 7813 @@ -6723,15 +6844,28 @@ entities: parent: 31 - proto: BedsheetOrange entities: - - uid: 1998 + - uid: 1999 components: - type: Transform - pos: -12.5,7.5 + pos: -7.5,7.5 parent: 31 - - uid: 1999 + - uid: 4005 components: - type: Transform - pos: -7.5,7.5 + rot: -1.5707963267948966 rad + pos: -11.5,7.5 + parent: 31 + - uid: 8808 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,7.5 + parent: 31 + - uid: 9270 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.5,7.5 parent: 31 - proto: BedsheetPurple entities: @@ -6749,13 +6883,6 @@ entities: rot: 3.141592653589793 rad pos: 29.5,8.5 parent: 31 -- proto: BedsheetRD - entities: - - uid: 9707 - components: - - type: Transform - pos: -3.5,-23.5 - parent: 31 - proto: BedsheetRed entities: - uid: 9464 @@ -6764,33 +6891,13 @@ entities: rot: -1.5707963267948966 rad pos: -13.5,-37.5 parent: 31 - - uid: 11057 - components: - - type: Transform - pos: -23.5,17.5 - parent: 31 - proto: BedsheetSpawner entities: - - uid: 553 - components: - - type: Transform - pos: -27.5,1.5 - parent: 31 - uid: 1056 components: - type: Transform pos: 32.5,-10.5 parent: 31 - - uid: 3591 - components: - - type: Transform - pos: -27.5,-4.5 - parent: 31 - - uid: 3893 - components: - - type: Transform - pos: -27.5,-1.5 - parent: 31 - uid: 5629 components: - type: Transform @@ -6893,13 +7000,6 @@ entities: rot: 3.141592653589793 rad pos: 6.5,-27.5 parent: 31 -- proto: BikeHornInstrument - entities: - - uid: 441 - components: - - type: Transform - pos: -19.612082,-6.8995214 - parent: 31 - proto: BiomassReclaimer entities: - uid: 11681 @@ -6941,6 +7041,46 @@ entities: - type: DeviceLinkSink links: - 1084 + - uid: 6090 + components: + - type: Transform + pos: -10.5,34.5 + parent: 31 + - type: DeviceLinkSink + links: + - 6124 + - uid: 6091 + components: + - type: Transform + pos: -10.5,35.5 + parent: 31 + - type: DeviceLinkSink + links: + - 6124 + - uid: 6121 + components: + - type: Transform + pos: -10.5,36.5 + parent: 31 + - type: DeviceLinkSink + links: + - 6124 + - uid: 6122 + components: + - type: Transform + pos: -6.5,32.5 + parent: 31 + - type: DeviceLinkSink + links: + - 6124 + - uid: 6123 + components: + - type: Transform + pos: -5.5,32.5 + parent: 31 + - type: DeviceLinkSink + links: + - 6124 - uid: 6345 components: - type: Transform @@ -6973,15 +7113,6 @@ entities: - type: DeviceLinkSink links: - 10325 - - uid: 8199 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 69.5,2.5 - parent: 31 - - type: DeviceLinkSink - links: - - 11939 - uid: 10095 components: - type: Transform @@ -7006,15 +7137,6 @@ entities: - type: DeviceLinkSink links: - 10218 - - uid: 11027 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 71.5,2.5 - parent: 31 - - type: DeviceLinkSink - links: - - 11939 - uid: 11369 components: - type: Transform @@ -7033,59 +7155,11 @@ entities: - 11371 - proto: BlastDoorOpen entities: - - uid: 3140 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 61.5,3.5 - parent: 31 - - type: DeviceLinkSink - links: - - 11939 - - uid: 7297 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 61.5,2.5 - parent: 31 - - type: DeviceLinkSink - links: - - 11939 - - uid: 7308 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 61.5,4.5 - parent: 31 - - type: DeviceLinkSink - links: - - 11939 - - uid: 11935 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 61.5,1.5 - parent: 31 - - type: DeviceLinkSink - links: - - 11939 - - uid: 11936 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 61.5,0.5 - parent: 31 - - type: DeviceLinkSink - links: - - 11939 - uid: 11938 components: - type: Transform pos: 70.5,4.5 parent: 31 - - type: DeviceLinkSink - links: - - 11939 - proto: BlockGameArcade entities: - uid: 9569 @@ -7158,11 +7232,6 @@ entities: - type: Transform pos: 12.5,-26.5 parent: 31 - - uid: 957 - components: - - type: Transform - pos: 11.5,-26.5 - parent: 31 - uid: 1037 components: - type: Transform @@ -7173,6 +7242,16 @@ entities: - type: Transform pos: 7.5,-30.5 parent: 31 + - uid: 2468 + components: + - type: Transform + pos: 11.5,-26.5 + parent: 31 + - uid: 11906 + components: + - type: Transform + pos: -3.5,14.5 + parent: 31 - proto: BoozeDispenser entities: - uid: 4180 @@ -7194,6 +7273,25 @@ entities: - type: Transform pos: -2.5,-30.5 parent: 31 + - uid: 4657 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 55.5,-25.5 + parent: 31 + - uid: 5036 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 55.5,-23.5 + parent: 31 +- proto: BorgModuleCleaning + entities: + - uid: 4674 + components: + - type: Transform + pos: 55.333996,-24.188694 + parent: 31 - proto: BorgModuleFireExtinguisher entities: - uid: 2856 @@ -7201,15 +7299,21 @@ entities: - type: Transform pos: 0.53372324,-27.321005 parent: 31 +- proto: BorgModulePka + entities: + - uid: 8230 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 55.47308,-24.626493 + parent: 31 - proto: BoxBeanbag entities: - - uid: 2222 + - uid: 1064 components: - type: Transform - pos: -10.5,-6.5 + pos: -11.666326,-6.547551 parent: 31 - - type: BallisticAmmoProvider - unspawnedCount: 12 - uid: 11280 components: - type: Transform @@ -7283,12 +7387,6 @@ entities: parent: 31 - proto: BoxFolderBlack entities: - - uid: 2851 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -4.395054,13.6322155 - parent: 31 - uid: 4167 components: - type: Transform @@ -7307,12 +7405,6 @@ entities: rot: 1.5707963267948966 rad pos: -4.356403,-20.931307 parent: 31 - - uid: 7232 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -19.671114,-5.542589 - parent: 31 - uid: 9048 components: - type: Transform @@ -7326,24 +7418,23 @@ entities: parent: 31 - proto: BoxFolderBlue entities: - - uid: 8742 + - uid: 9047 components: - - type: MetaData - name: lizard secrets - type: Transform - pos: -35.410393,-24.380575 + pos: 7.4773426,19.456753 parent: 31 - - type: ContainerContainer - containers: - storagebase: !type:Container - showEnts: False - occludes: True - ents: - - 8743 - - uid: 9047 +- proto: BoxFolderClipboard + entities: + - uid: 499 components: - type: Transform - pos: 7.4773426,19.456753 + rot: 1.5707963267948966 rad + pos: -5.369866,14.360475 + parent: 31 + - uid: 4630 + components: + - type: Transform + pos: -1.6012349,14.621384 parent: 31 - proto: BoxFolderGrey entities: @@ -7364,26 +7455,41 @@ entities: parent: 31 - proto: BoxFolderRed entities: - - uid: 7329 + - uid: 2495 components: - type: Transform - pos: 12.104875,-31.361996 + pos: -6.5519066,36.676613 parent: 31 - - uid: 8801 + - type: Storage + storedItems: + 2501: + position: 0,0 + _rotation: South + - type: ContainerContainer + containers: + storagebase: !type:Container + showEnts: False + occludes: True + ents: + - 2501 + - type: Physics + angularDamping: 0 + linearDamping: 0 + - uid: 7329 components: - type: Transform - pos: 9.497662,30.598364 + pos: 12.104875,-31.361996 parent: 31 - uid: 9046 components: - type: Transform pos: 7.2742176,19.456753 parent: 31 - - uid: 10804 + - uid: 9279 components: - type: Transform - rot: 3.141592653589793 rad - pos: -10.660394,7.554576 + rot: 1.5707963267948966 rad + pos: -3.61637,10.616192 parent: 31 - proto: BoxFolderWhite entities: @@ -7417,10 +7523,10 @@ entities: parent: 31 - proto: BoxHandcuff entities: - - uid: 9836 + - uid: 11779 components: - type: Transform - pos: -4.276994,14.694162 + pos: -3.3948944,11.522232 parent: 31 - proto: BoxLatexGloves entities: @@ -7469,13 +7575,11 @@ entities: parent: 31 - proto: BoxShotgunFlare entities: - - uid: 2219 + - uid: 4669 components: - type: Transform - pos: -10.5,-6.5 + pos: -11.775782,-6.360051 parent: 31 - - type: BallisticAmmoProvider - unspawnedCount: 12 - proto: BoxSterileMask entities: - uid: 680 @@ -7485,10 +7589,10 @@ entities: parent: 31 - proto: BoxZiptie entities: - - uid: 7737 + - uid: 11721 components: - type: Transform - pos: -4.6902046,14.635165 + pos: -3.555968,11.824245 parent: 31 - proto: BrbSign entities: @@ -7497,6 +7601,13 @@ entities: - type: Transform pos: 7.4759226,20.405302 parent: 31 +- proto: BriefcaseBrown + entities: + - uid: 7802 + components: + - type: Transform + pos: -4.4147854,-11.857406 + parent: 31 - proto: BrigTimer entities: - uid: 9951 @@ -7525,14 +7636,6 @@ entities: - Start: Close - Timer: AutoClose - Timer: Open -- proto: BrokenBottle - entities: - - uid: 10591 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -15.286806,-11.665175 - parent: 31 - proto: Brutepack entities: - uid: 2191 @@ -7542,20 +7645,20 @@ entities: parent: 31 - proto: Bucket entities: - - uid: 4129 + - uid: 5631 components: - type: Transform - pos: -19.764086,1.4415555 + pos: -18.884306,9.451485 parent: 31 - - uid: 5631 + - uid: 8284 components: - type: Transform - pos: -18.884306,9.451485 + pos: -20.232843,-4.3404136 parent: 31 - - uid: 8955 + - uid: 10476 components: - type: Transform - pos: -18.329012,-10.212495 + pos: -22.2306,-0.49714994 parent: 31 - uid: 10647 components: @@ -7611,6 +7714,11 @@ entities: - type: Transform pos: -13.5,10.5 parent: 31 + - uid: 30 + components: + - type: Transform + pos: -6.5,30.5 + parent: 31 - uid: 35 components: - type: Transform @@ -7636,6 +7744,11 @@ entities: - type: Transform pos: 29.5,12.5 parent: 31 + - uid: 148 + components: + - type: Transform + pos: -33.5,-32.5 + parent: 31 - uid: 164 components: - type: Transform @@ -7671,26 +7784,6 @@ entities: - type: Transform pos: -36.5,17.5 parent: 31 - - uid: 204 - components: - - type: Transform - pos: 53.5,-28.5 - parent: 31 - - uid: 207 - components: - - type: Transform - pos: 45.5,-28.5 - parent: 31 - - uid: 208 - components: - - type: Transform - pos: 45.5,-20.5 - parent: 31 - - uid: 209 - components: - - type: Transform - pos: 53.5,-20.5 - parent: 31 - uid: 218 components: - type: Transform @@ -7761,6 +7854,11 @@ entities: - type: Transform pos: -9.5,-19.5 parent: 31 + - uid: 347 + components: + - type: Transform + pos: -32.5,-32.5 + parent: 31 - uid: 397 components: - type: Transform @@ -7776,6 +7874,31 @@ entities: - type: Transform pos: -23.5,-13.5 parent: 31 + - uid: 420 + components: + - type: Transform + pos: -30.5,0.5 + parent: 31 + - uid: 421 + components: + - type: Transform + pos: -30.5,-0.5 + parent: 31 + - uid: 422 + components: + - type: Transform + pos: -32.5,-9.5 + parent: 31 + - uid: 437 + components: + - type: Transform + pos: -32.5,-10.5 + parent: 31 + - uid: 528 + components: + - type: Transform + pos: -40.5,-28.5 + parent: 31 - uid: 531 components: - type: Transform @@ -7791,10 +7914,10 @@ entities: - type: Transform pos: 27.5,1.5 parent: 31 - - uid: 563 + - uid: 553 components: - type: Transform - pos: 31.5,24.5 + pos: -38.5,-32.5 parent: 31 - uid: 569 components: @@ -7806,6 +7929,11 @@ entities: - type: Transform pos: 31.5,20.5 parent: 31 + - uid: 582 + components: + - type: Transform + pos: -36.5,-31.5 + parent: 31 - uid: 594 components: - type: Transform @@ -7816,6 +7944,16 @@ entities: - type: Transform pos: -4.5,4.5 parent: 31 + - uid: 614 + components: + - type: Transform + pos: -32.5,-37.5 + parent: 31 + - uid: 619 + components: + - type: Transform + pos: -36.5,-34.5 + parent: 31 - uid: 645 components: - type: Transform @@ -7826,11 +7964,6 @@ entities: - type: Transform pos: 16.5,15.5 parent: 31 - - uid: 650 - components: - - type: Transform - pos: -2.5,12.5 - parent: 31 - uid: 652 components: - type: Transform @@ -7851,6 +7984,16 @@ entities: - type: Transform pos: -5.5,-31.5 parent: 31 + - uid: 713 + components: + - type: Transform + pos: 44.5,-24.5 + parent: 31 + - uid: 716 + components: + - type: Transform + pos: -14.5,14.5 + parent: 31 - uid: 719 components: - type: Transform @@ -7861,16 +8004,36 @@ entities: - type: Transform pos: -9.5,-31.5 parent: 31 + - uid: 763 + components: + - type: Transform + pos: -6.5,31.5 + parent: 31 - uid: 767 components: - type: Transform pos: 8.5,-17.5 parent: 31 + - uid: 769 + components: + - type: Transform + pos: -16.5,-6.5 + parent: 31 + - uid: 775 + components: + - type: Transform + pos: -32.5,-35.5 + parent: 31 - uid: 780 components: - type: Transform pos: 21.5,22.5 parent: 31 + - uid: 782 + components: + - type: Transform + pos: -32.5,-37.5 + parent: 31 - uid: 783 components: - type: Transform @@ -7881,6 +8044,11 @@ entities: - type: Transform pos: 19.5,16.5 parent: 31 + - uid: 807 + components: + - type: Transform + pos: -32.5,-36.5 + parent: 31 - uid: 814 components: - type: Transform @@ -7891,6 +8059,11 @@ entities: - type: Transform pos: 21.5,16.5 parent: 31 + - uid: 828 + components: + - type: Transform + pos: 3.5,34.5 + parent: 31 - uid: 862 components: - type: Transform @@ -7901,6 +8074,26 @@ entities: - type: Transform pos: 16.5,20.5 parent: 31 + - uid: 929 + components: + - type: Transform + pos: -24.5,-2.5 + parent: 31 + - uid: 930 + components: + - type: Transform + pos: -33.5,-34.5 + parent: 31 + - uid: 935 + components: + - type: Transform + pos: -32.5,-34.5 + parent: 31 + - uid: 938 + components: + - type: Transform + pos: -20.5,12.5 + parent: 31 - uid: 939 components: - type: Transform @@ -7911,11 +8104,31 @@ entities: - type: Transform pos: -41.5,2.5 parent: 31 + - uid: 957 + components: + - type: Transform + pos: -28.5,-9.5 + parent: 31 - uid: 971 components: - type: Transform pos: -40.5,2.5 parent: 31 + - uid: 977 + components: + - type: Transform + pos: -6.5,33.5 + parent: 31 + - uid: 979 + components: + - type: Transform + pos: -12.5,14.5 + parent: 31 + - uid: 983 + components: + - type: Transform + pos: -21.5,12.5 + parent: 31 - uid: 992 components: - type: Transform @@ -7981,10 +8194,10 @@ entities: - type: Transform pos: 9.5,-17.5 parent: 31 - - uid: 1017 + - uid: 1013 components: - type: Transform - pos: -4.5,-11.5 + pos: 3.5,33.5 parent: 31 - uid: 1023 components: @@ -7996,6 +8209,11 @@ entities: - type: Transform pos: -37.5,0.5 parent: 31 + - uid: 1040 + components: + - type: Transform + pos: -6.5,29.5 + parent: 31 - uid: 1041 components: - type: Transform @@ -8016,20 +8234,20 @@ entities: - type: Transform pos: 21.5,-23.5 parent: 31 - - uid: 1050 + - uid: 1054 components: - type: Transform - pos: -28.5,-2.5 + pos: -6.5,32.5 parent: 31 - - uid: 1065 + - uid: 1071 components: - type: Transform - pos: -26.5,-5.5 + pos: -32.5,-41.5 parent: 31 - uid: 1079 components: - type: Transform - pos: -27.5,-5.5 + pos: -32.5,-40.5 parent: 31 - uid: 1081 components: @@ -8049,18 +8267,23 @@ entities: - uid: 1097 components: - type: Transform - pos: -26.5,0.5 + pos: -32.5,-42.5 parent: 31 - uid: 1111 components: - type: Transform - pos: 31.5,25.5 + pos: 0.5,32.5 parent: 31 - uid: 1114 components: - type: Transform pos: -3.5,-19.5 parent: 31 + - uid: 1115 + components: + - type: Transform + pos: -18.5,16.5 + parent: 31 - uid: 1116 components: - type: Transform @@ -8091,21 +8314,46 @@ entities: - type: Transform pos: 61.5,7.5 parent: 31 + - uid: 1132 + components: + - type: Transform + pos: -32.5,-43.5 + parent: 31 - uid: 1134 components: - type: Transform pos: 56.5,5.5 parent: 31 + - uid: 1135 + components: + - type: Transform + pos: -19.5,14.5 + parent: 31 + - uid: 1138 + components: + - type: Transform + pos: -32.5,-38.5 + parent: 31 - uid: 1139 components: - type: Transform pos: 32.5,17.5 parent: 31 + - uid: 1142 + components: + - type: Transform + pos: -32.5,-39.5 + parent: 31 - uid: 1145 components: - type: Transform pos: 22.5,-4.5 parent: 31 + - uid: 1149 + components: + - type: Transform + pos: -5.5,32.5 + parent: 31 - uid: 1159 components: - type: Transform @@ -8191,6 +8439,16 @@ entities: - type: Transform pos: -5.5,4.5 parent: 31 + - uid: 1253 + components: + - type: Transform + pos: -37.5,-34.5 + parent: 31 + - uid: 1269 + components: + - type: Transform + pos: -2.5,11.5 + parent: 31 - uid: 1282 components: - type: Transform @@ -8201,6 +8459,16 @@ entities: - type: Transform pos: -31.5,-12.5 parent: 31 + - uid: 1322 + components: + - type: Transform + pos: 46.5,11.5 + parent: 31 + - uid: 1325 + components: + - type: Transform + pos: -15.5,-10.5 + parent: 31 - uid: 1327 components: - type: Transform @@ -8211,6 +8479,11 @@ entities: - type: Transform pos: -12.5,8.5 parent: 31 + - uid: 1355 + components: + - type: Transform + pos: -32.5,-47.5 + parent: 31 - uid: 1369 components: - type: Transform @@ -8226,11 +8499,21 @@ entities: - type: Transform pos: 52.5,15.5 parent: 31 + - uid: 1414 + components: + - type: Transform + pos: -13.5,14.5 + parent: 31 - uid: 1421 components: - type: Transform pos: -40.5,0.5 parent: 31 + - uid: 1426 + components: + - type: Transform + pos: -35.5,-34.5 + parent: 31 - uid: 1428 components: - type: Transform @@ -8251,6 +8534,16 @@ entities: - type: Transform pos: -43.5,10.5 parent: 31 + - uid: 1440 + components: + - type: Transform + pos: -23.5,-5.5 + parent: 31 + - uid: 1444 + components: + - type: Transform + pos: -34.5,-34.5 + parent: 31 - uid: 1466 components: - type: Transform @@ -8276,11 +8569,21 @@ entities: - type: Transform pos: -4.5,-22.5 parent: 31 + - uid: 1522 + components: + - type: Transform + pos: -17.5,-5.5 + parent: 31 - uid: 1528 components: - type: Transform pos: 18.5,16.5 parent: 31 + - uid: 1530 + components: + - type: Transform + pos: -13.5,-7.5 + parent: 31 - uid: 1531 components: - type: Transform @@ -8301,6 +8604,11 @@ entities: - type: Transform pos: 29.5,20.5 parent: 31 + - uid: 1549 + components: + - type: Transform + pos: -35.5,-31.5 + parent: 31 - uid: 1553 components: - type: Transform @@ -8336,6 +8644,11 @@ entities: - type: Transform pos: -38.5,0.5 parent: 31 + - uid: 1579 + components: + - type: Transform + pos: -32.5,-44.5 + parent: 31 - uid: 1580 components: - type: Transform @@ -8356,6 +8669,11 @@ entities: - type: Transform pos: -41.5,0.5 parent: 31 + - uid: 1596 + components: + - type: Transform + pos: -12.5,-7.5 + parent: 31 - uid: 1597 components: - type: Transform @@ -8366,6 +8684,16 @@ entities: - type: Transform pos: 13.5,19.5 parent: 31 + - uid: 1599 + components: + - type: Transform + pos: -32.5,-45.5 + parent: 31 + - uid: 1606 + components: + - type: Transform + pos: -32.5,-46.5 + parent: 31 - uid: 1654 components: - type: Transform @@ -8386,11 +8714,6 @@ entities: - type: Transform pos: -18.5,18.5 parent: 31 - - uid: 1694 - components: - - type: Transform - pos: -18.5,16.5 - parent: 31 - uid: 1702 components: - type: Transform @@ -8436,11 +8759,6 @@ entities: - type: Transform pos: -13.5,8.5 parent: 31 - - uid: 1764 - components: - - type: Transform - pos: 44.5,-24.5 - parent: 31 - uid: 1769 components: - type: Transform @@ -8461,6 +8779,16 @@ entities: - type: Transform pos: -10.5,-38.5 parent: 31 + - uid: 1808 + components: + - type: Transform + pos: -22.5,-5.5 + parent: 31 + - uid: 1823 + components: + - type: Transform + pos: -38.5,-29.5 + parent: 31 - uid: 1838 components: - type: Transform @@ -8481,6 +8809,11 @@ entities: - type: Transform pos: -14.5,-38.5 parent: 31 + - uid: 1958 + components: + - type: Transform + pos: -46.5,-28.5 + parent: 31 - uid: 1973 components: - type: Transform @@ -8491,6 +8824,11 @@ entities: - type: Transform pos: -24.5,4.5 parent: 31 + - uid: 2030 + components: + - type: Transform + pos: -35.5,-32.5 + parent: 31 - uid: 2052 components: - type: Transform @@ -8506,6 +8844,11 @@ entities: - type: Transform pos: 1.5,6.5 parent: 31 + - uid: 2070 + components: + - type: Transform + pos: -38.5,-33.5 + parent: 31 - uid: 2082 components: - type: Transform @@ -8551,6 +8894,11 @@ entities: - type: Transform pos: -5.5,-21.5 parent: 31 + - uid: 2300 + components: + - type: Transform + pos: 13.5,21.5 + parent: 31 - uid: 2304 components: - type: Transform @@ -8561,6 +8909,11 @@ entities: - type: Transform pos: -4.5,-21.5 parent: 31 + - uid: 2320 + components: + - type: Transform + pos: 49.5,-22.5 + parent: 31 - uid: 2323 components: - type: Transform @@ -8571,21 +8924,11 @@ entities: - type: Transform pos: -28.5,-20.5 parent: 31 - - uid: 2330 - components: - - type: Transform - pos: 13.5,17.5 - parent: 31 - uid: 2339 components: - type: Transform pos: -1.5,-27.5 parent: 31 - - uid: 2341 - components: - - type: Transform - pos: -27.5,-2.5 - parent: 31 - uid: 2342 components: - type: Transform @@ -8641,21 +8984,11 @@ entities: - type: Transform pos: -4.5,6.5 parent: 31 - - uid: 2402 - components: - - type: Transform - pos: -15.5,-9.5 - parent: 31 - uid: 2453 components: - type: Transform pos: 10.5,-39.5 parent: 31 - - uid: 2482 - components: - - type: Transform - pos: -17.5,16.5 - parent: 31 - uid: 2483 components: - type: Transform @@ -8671,16 +9004,6 @@ entities: - type: Transform pos: 43.5,-5.5 parent: 31 - - uid: 2491 - components: - - type: Transform - pos: 6.5,29.5 - parent: 31 - - uid: 2495 - components: - - type: Transform - pos: -24.5,0.5 - parent: 31 - uid: 2496 components: - type: Transform @@ -8786,11 +9109,6 @@ entities: - type: Transform pos: -18.5,14.5 parent: 31 - - uid: 2536 - components: - - type: Transform - pos: -13.5,14.5 - parent: 31 - uid: 2538 components: - type: Transform @@ -8886,11 +9204,6 @@ entities: - type: Transform pos: -13.5,11.5 parent: 31 - - uid: 2558 - components: - - type: Transform - pos: -9.5,8.5 - parent: 31 - uid: 2560 components: - type: Transform @@ -9001,11 +9314,6 @@ entities: - type: Transform pos: 8.5,-36.5 parent: 31 - - uid: 2584 - components: - - type: Transform - pos: -26.5,-2.5 - parent: 31 - uid: 2585 components: - type: Transform @@ -9056,21 +9364,6 @@ entities: - type: Transform pos: -5.5,14.5 parent: 31 - - uid: 2595 - components: - - type: Transform - pos: -6.5,14.5 - parent: 31 - - uid: 2596 - components: - - type: Transform - pos: -7.5,14.5 - parent: 31 - - uid: 2597 - components: - - type: Transform - pos: -8.5,14.5 - parent: 31 - uid: 2598 components: - type: Transform @@ -9086,11 +9379,6 @@ entities: - type: Transform pos: -11.5,14.5 parent: 31 - - uid: 2601 - components: - - type: Transform - pos: -12.5,14.5 - parent: 31 - uid: 2602 components: - type: Transform @@ -9101,16 +9389,6 @@ entities: - type: Transform pos: -12.5,16.5 parent: 31 - - uid: 2604 - components: - - type: Transform - pos: -7.5,15.5 - parent: 31 - - uid: 2605 - components: - - type: Transform - pos: -7.5,16.5 - parent: 31 - uid: 2606 components: - type: Transform @@ -9386,75 +9664,25 @@ entities: - type: Transform pos: -38.5,4.5 parent: 31 - - uid: 2672 - components: - - type: Transform - pos: -25.5,-2.5 - parent: 31 - - uid: 2673 - components: - - type: Transform - pos: -25.5,-1.5 - parent: 31 - uid: 2674 components: - type: Transform - pos: -25.5,-0.5 - parent: 31 - - uid: 2675 - components: - - type: Transform - pos: -25.5,0.5 + pos: -39.5,-28.5 parent: 31 - uid: 2676 components: - type: Transform - pos: -30.5,-7.5 - parent: 31 - - uid: 2677 - components: - - type: Transform - pos: -29.5,-7.5 - parent: 31 - - uid: 2678 - components: - - type: Transform - pos: -28.5,-7.5 - parent: 31 - - uid: 2679 - components: - - type: Transform - pos: -27.5,-7.5 - parent: 31 - - uid: 2680 - components: - - type: Transform - pos: -26.5,-7.5 - parent: 31 - - uid: 2681 - components: - - type: Transform - pos: -25.5,-7.5 - parent: 31 - - uid: 2682 - components: - - type: Transform - pos: -25.5,-8.5 + pos: -42.5,-28.5 parent: 31 - uid: 2683 components: - type: Transform - pos: -24.5,-7.5 + pos: -53.5,-28.5 parent: 31 - uid: 2684 components: - type: Transform - pos: -23.5,-7.5 - parent: 31 - - uid: 2685 - components: - - type: Transform - pos: -23.5,-8.5 + pos: -55.5,-28.5 parent: 31 - uid: 2686 components: @@ -9464,42 +9692,7 @@ entities: - uid: 2687 components: - type: Transform - pos: -29.5,-2.5 - parent: 31 - - uid: 2688 - components: - - type: Transform - pos: -18.5,-3.5 - parent: 31 - - uid: 2689 - components: - - type: Transform - pos: -18.5,-2.5 - parent: 31 - - uid: 2690 - components: - - type: Transform - pos: -18.5,-1.5 - parent: 31 - - uid: 2691 - components: - - type: Transform - pos: -18.5,-0.5 - parent: 31 - - uid: 2692 - components: - - type: Transform - pos: -29.5,0.5 - parent: 31 - - uid: 2693 - components: - - type: Transform - pos: -28.5,0.5 - parent: 31 - - uid: 2694 - components: - - type: Transform - pos: -27.5,0.5 + pos: -49.5,-28.5 parent: 31 - uid: 2695 components: @@ -9551,6 +9744,11 @@ entities: - type: Transform pos: -32.5,0.5 parent: 31 + - uid: 2707 + components: + - type: Transform + pos: -34.5,-32.5 + parent: 31 - uid: 2710 components: - type: Transform @@ -9561,65 +9759,10 @@ entities: - type: Transform pos: -22.5,-12.5 parent: 31 - - uid: 2717 - components: - - type: Transform - pos: -14.5,-8.5 - parent: 31 - - uid: 2718 - components: - - type: Transform - pos: -14.5,-9.5 - parent: 31 - - uid: 2719 - components: - - type: Transform - pos: -11.5,8.5 - parent: 31 - - uid: 2720 - components: - - type: Transform - pos: -14.5,-10.5 - parent: 31 - - uid: 2722 - components: - - type: Transform - pos: -13.5,-11.5 - parent: 31 - - uid: 2723 - components: - - type: Transform - pos: -12.5,-11.5 - parent: 31 - uid: 2724 components: - type: Transform - pos: -11.5,-11.5 - parent: 31 - - uid: 2725 - components: - - type: Transform - pos: -12.5,-10.5 - parent: 31 - - uid: 2726 - components: - - type: Transform - pos: -12.5,-9.5 - parent: 31 - - uid: 2727 - components: - - type: Transform - pos: -13.5,-12.5 - parent: 31 - - uid: 2728 - components: - - type: Transform - pos: -12.5,-8.5 - parent: 31 - - uid: 2729 - components: - - type: Transform - pos: -16.5,-7.5 + pos: 44.5,-25.5 parent: 31 - uid: 2730 components: @@ -9631,91 +9774,21 @@ entities: - type: Transform pos: -14.5,-7.5 parent: 31 - - uid: 2732 - components: - - type: Transform - pos: -17.5,-7.5 - parent: 31 - uid: 2733 components: - type: Transform - pos: -18.5,-7.5 - parent: 31 - - uid: 2734 - components: - - type: Transform - pos: -19.5,-7.5 - parent: 31 - - uid: 2735 - components: - - type: Transform - pos: -20.5,-7.5 - parent: 31 - - uid: 2736 - components: - - type: Transform - pos: -18.5,-6.5 - parent: 31 - - uid: 2737 - components: - - type: Transform - pos: -18.5,-5.5 + pos: -41.5,-28.5 parent: 31 - uid: 2740 components: - type: Transform pos: -4.5,-38.5 parent: 31 - - uid: 2742 - components: - - type: Transform - pos: -22.5,-4.5 - parent: 31 - - uid: 2743 - components: - - type: Transform - pos: -22.5,-3.5 - parent: 31 - - uid: 2745 - components: - - type: Transform - pos: -22.5,-2.5 - parent: 31 - - uid: 2746 - components: - - type: Transform - pos: -22.5,-1.5 - parent: 31 - - uid: 2747 - components: - - type: Transform - pos: -22.5,-0.5 - parent: 31 - - uid: 2748 - components: - - type: Transform - pos: -22.5,0.5 - parent: 31 - - uid: 2750 - components: - - type: Transform - pos: -23.5,0.5 - parent: 31 - uid: 2751 components: - type: Transform pos: -15.5,-6.5 parent: 31 - - uid: 2752 - components: - - type: Transform - pos: -15.5,-5.5 - parent: 31 - - uid: 2753 - components: - - type: Transform - pos: -15.5,-4.5 - parent: 31 - uid: 2754 components: - type: Transform @@ -9786,41 +9859,6 @@ entities: - type: Transform pos: -16.5,0.5 parent: 31 - - uid: 2770 - components: - - type: Transform - pos: -17.5,0.5 - parent: 31 - - uid: 2771 - components: - - type: Transform - pos: -18.5,0.5 - parent: 31 - - uid: 2772 - components: - - type: Transform - pos: -19.5,0.5 - parent: 31 - - uid: 2773 - components: - - type: Transform - pos: -20.5,0.5 - parent: 31 - - uid: 2774 - components: - - type: Transform - pos: -20.5,1.5 - parent: 31 - - uid: 2775 - components: - - type: Transform - pos: -16.5,-0.5 - parent: 31 - - uid: 2776 - components: - - type: Transform - pos: -16.5,-1.5 - parent: 31 - uid: 2778 components: - type: Transform @@ -9834,17 +9872,7 @@ entities: - uid: 2781 components: - type: Transform - pos: -20.5,-0.5 - parent: 31 - - uid: 2782 - components: - - type: Transform - pos: -20.5,-1.5 - parent: 31 - - uid: 2783 - components: - - type: Transform - pos: -20.5,-2.5 + pos: -29.5,-9.5 parent: 31 - uid: 2784 components: @@ -9991,20 +10019,10 @@ entities: - type: Transform pos: -5.5,-9.5 parent: 31 - - uid: 2814 - components: - - type: Transform - pos: -5.5,-10.5 - parent: 31 - uid: 2816 components: - type: Transform - pos: -4.5,-10.5 - parent: 31 - - uid: 2817 - components: - - type: Transform - pos: -3.5,-10.5 + pos: -24.5,-5.5 parent: 31 - uid: 2818 components: @@ -10096,26 +10114,11 @@ entities: - type: Transform pos: -28.5,-21.5 parent: 31 - - uid: 2860 - components: - - type: Transform - pos: -3.5,-12.5 - parent: 31 - uid: 2865 components: - type: Transform pos: -14.5,-29.5 parent: 31 - - uid: 2867 - components: - - type: Transform - pos: -4.5,-12.5 - parent: 31 - - uid: 2869 - components: - - type: Transform - pos: -5.5,-12.5 - parent: 31 - uid: 2870 components: - type: Transform @@ -10131,6 +10134,11 @@ entities: - type: Transform pos: -13.5,-35.5 parent: 31 + - uid: 2874 + components: + - type: Transform + pos: -38.5,-30.5 + parent: 31 - uid: 2875 components: - type: Transform @@ -10141,6 +10149,11 @@ entities: - type: Transform pos: -3.5,-27.5 parent: 31 + - uid: 2877 + components: + - type: Transform + pos: 1.5,34.5 + parent: 31 - uid: 2879 components: - type: Transform @@ -10381,11 +10394,6 @@ entities: - type: Transform pos: 18.5,-17.5 parent: 31 - - uid: 2944 - components: - - type: Transform - pos: -22.5,-8.5 - parent: 31 - uid: 2946 components: - type: Transform @@ -11056,6 +11064,11 @@ entities: - type: Transform pos: 24.5,-18.5 parent: 31 + - uid: 3107 + components: + - type: Transform + pos: 3.5,32.5 + parent: 31 - uid: 3119 components: - type: Transform @@ -11111,6 +11124,11 @@ entities: - type: Transform pos: 27.5,7.5 parent: 31 + - uid: 3138 + components: + - type: Transform + pos: -21.5,-6.5 + parent: 31 - uid: 3149 components: - type: Transform @@ -11136,6 +11154,11 @@ entities: - type: Transform pos: 20.5,13.5 parent: 31 + - uid: 3158 + components: + - type: Transform + pos: -18.5,-5.5 + parent: 31 - uid: 3159 components: - type: Transform @@ -11341,16 +11364,6 @@ entities: - type: Transform pos: 12.5,14.5 parent: 31 - - uid: 3204 - components: - - type: Transform - pos: 13.5,14.5 - parent: 31 - - uid: 3208 - components: - - type: Transform - pos: 13.5,16.5 - parent: 31 - uid: 3209 components: - type: Transform @@ -11491,41 +11504,6 @@ entities: - type: Transform pos: 6.5,24.5 parent: 31 - - uid: 3242 - components: - - type: Transform - pos: 9.5,28.5 - parent: 31 - - uid: 3243 - components: - - type: Transform - pos: 9.5,29.5 - parent: 31 - - uid: 3244 - components: - - type: Transform - pos: 9.5,30.5 - parent: 31 - - uid: 3245 - components: - - type: Transform - pos: 8.5,30.5 - parent: 31 - - uid: 3246 - components: - - type: Transform - pos: 7.5,30.5 - parent: 31 - - uid: 3247 - components: - - type: Transform - pos: 6.5,30.5 - parent: 31 - - uid: 3248 - components: - - type: Transform - pos: 6.5,31.5 - parent: 31 - uid: 3249 components: - type: Transform @@ -11631,11 +11609,6 @@ entities: - type: Transform pos: -1.5,23.5 parent: 31 - - uid: 3305 - components: - - type: Transform - pos: 31.5,26.5 - parent: 31 - uid: 3318 components: - type: Transform @@ -11656,6 +11629,11 @@ entities: - type: Transform pos: -7.5,-19.5 parent: 31 + - uid: 3400 + components: + - type: Transform + pos: -15.5,-8.5 + parent: 31 - uid: 3418 components: - type: Transform @@ -11666,11 +11644,6 @@ entities: - type: Transform pos: 43.5,11.5 parent: 31 - - uid: 3536 - components: - - type: Transform - pos: 12.5,19.5 - parent: 31 - uid: 3570 components: - type: Transform @@ -11686,11 +11659,6 @@ entities: - type: Transform pos: 24.5,17.5 parent: 31 - - uid: 3617 - components: - - type: Transform - pos: -26.5,-4.5 - parent: 31 - uid: 3619 components: - type: Transform @@ -11706,30 +11674,25 @@ entities: - type: Transform pos: 25.5,9.5 parent: 31 - - uid: 3703 + - uid: 3677 components: - type: Transform - pos: -4.5,15.5 + pos: 13.5,20.5 parent: 31 - - uid: 3727 + - uid: 3703 components: - type: Transform - pos: -16.5,16.5 + pos: -4.5,15.5 parent: 31 - uid: 3729 components: - type: Transform pos: -28.5,-26.5 parent: 31 - - uid: 3768 - components: - - type: Transform - pos: -28.5,-5.5 - parent: 31 - - uid: 3769 + - uid: 3781 components: - type: Transform - pos: -29.5,-5.5 + pos: -29.5,-10.5 parent: 31 - uid: 3787 components: @@ -11751,11 +11714,6 @@ entities: - type: Transform pos: -18.5,17.5 parent: 31 - - uid: 3843 - components: - - type: Transform - pos: -4.5,12.5 - parent: 31 - uid: 3845 components: - type: Transform @@ -11786,6 +11744,11 @@ entities: - type: Transform pos: 15.5,15.5 parent: 31 + - uid: 3917 + components: + - type: Transform + pos: -38.5,-34.5 + parent: 31 - uid: 3918 components: - type: Transform @@ -11891,6 +11854,11 @@ entities: - type: Transform pos: 21.5,19.5 parent: 31 + - uid: 3972 + components: + - type: Transform + pos: -8.5,35.5 + parent: 31 - uid: 3979 components: - type: Transform @@ -11901,6 +11869,11 @@ entities: - type: Transform pos: 23.5,-18.5 parent: 31 + - uid: 3997 + components: + - type: Transform + pos: -54.5,-28.5 + parent: 31 - uid: 4012 components: - type: Transform @@ -11924,7 +11897,7 @@ entities: - uid: 4037 components: - type: Transform - pos: -20.5,13.5 + pos: -21.5,14.5 parent: 31 - uid: 4039 components: @@ -11939,12 +11912,7 @@ entities: - uid: 4043 components: - type: Transform - pos: -26.5,4.5 - parent: 31 - - uid: 4047 - components: - - type: Transform - pos: -19.5,13.5 + pos: -3.5,-9.5 parent: 31 - uid: 4048 components: @@ -11956,11 +11924,46 @@ entities: - type: Transform pos: -22.5,19.5 parent: 31 + - uid: 4066 + components: + - type: Transform + pos: -37.5,-31.5 + parent: 31 + - uid: 4067 + components: + - type: Transform + pos: -45.5,-28.5 + parent: 31 + - uid: 4068 + components: + - type: Transform + pos: -44.5,-28.5 + parent: 31 + - uid: 4070 + components: + - type: Transform + pos: -43.5,-28.5 + parent: 31 - uid: 4111 components: - type: Transform pos: 27.5,16.5 parent: 31 + - uid: 4122 + components: + - type: Transform + pos: 47.5,11.5 + parent: 31 + - uid: 4127 + components: + - type: Transform + pos: -38.5,-31.5 + parent: 31 + - uid: 4129 + components: + - type: Transform + pos: -52.5,-28.5 + parent: 31 - uid: 4132 components: - type: Transform @@ -12036,10 +12039,15 @@ entities: - type: Transform pos: 36.5,-12.5 parent: 31 - - uid: 4383 + - uid: 4457 components: - type: Transform - pos: 33.5,-22.5 + pos: -6.5,28.5 + parent: 31 + - uid: 4470 + components: + - type: Transform + pos: -9.5,36.5 parent: 31 - uid: 4491 components: @@ -12076,6 +12084,16 @@ entities: - type: Transform pos: 29.5,-9.5 parent: 31 + - uid: 4515 + components: + - type: Transform + pos: -20.5,3.5 + parent: 31 + - uid: 4583 + components: + - type: Transform + pos: -4.5,-9.5 + parent: 31 - uid: 4591 components: - type: Transform @@ -12096,16 +12114,6 @@ entities: - type: Transform pos: 37.5,-9.5 parent: 31 - - uid: 4630 - components: - - type: Transform - pos: 42.5,-24.5 - parent: 31 - - uid: 4633 - components: - - type: Transform - pos: 43.5,-24.5 - parent: 31 - uid: 4643 components: - type: Transform @@ -12126,45 +12134,30 @@ entities: - type: Transform pos: 32.5,-9.5 parent: 31 - - uid: 4665 - components: - - type: Transform - pos: 39.5,-24.5 - parent: 31 - - uid: 4666 - components: - - type: Transform - pos: 38.5,-24.5 - parent: 31 - - uid: 4667 + - uid: 4656 components: - type: Transform - pos: 37.5,-24.5 + pos: 51.5,-22.5 parent: 31 - - uid: 4668 + - uid: 4661 components: - type: Transform - pos: 36.5,-24.5 + pos: 51.5,-24.5 parent: 31 - - uid: 4669 + - uid: 4663 components: - type: Transform - pos: 35.5,-24.5 + pos: 51.5,-23.5 parent: 31 - uid: 4670 components: - type: Transform - pos: 34.5,-24.5 - parent: 31 - - uid: 4671 - components: - - type: Transform - pos: 33.5,-24.5 + pos: -7.5,16.5 parent: 31 - - uid: 4672 + - uid: 4712 components: - type: Transform - pos: 33.5,-23.5 + pos: -38.5,-28.5 parent: 31 - uid: 4720 components: @@ -12306,11 +12299,6 @@ entities: - type: Transform pos: 6.5,-25.5 parent: 31 - - uid: 4829 - components: - - type: Transform - pos: 31.5,23.5 - parent: 31 - uid: 4832 components: - type: Transform @@ -12321,21 +12309,6 @@ entities: - type: Transform pos: -15.5,-36.5 parent: 31 - - uid: 4859 - components: - - type: Transform - pos: -15.5,-10.5 - parent: 31 - - uid: 4861 - components: - - type: Transform - pos: -13.5,-10.5 - parent: 31 - - uid: 4864 - components: - - type: Transform - pos: 12.5,20.5 - parent: 31 - uid: 4865 components: - type: Transform @@ -12621,6 +12594,11 @@ entities: - type: Transform pos: -17.5,-35.5 parent: 31 + - uid: 5549 + components: + - type: Transform + pos: -22.5,3.5 + parent: 31 - uid: 5707 components: - type: Transform @@ -12646,15 +12624,15 @@ entities: - type: Transform pos: -39.5,-11.5 parent: 31 - - uid: 5938 + - uid: 5882 components: - type: Transform - pos: 46.5,24.5 + pos: 2.5,34.5 parent: 31 - - uid: 5976 + - uid: 5938 components: - type: Transform - pos: -22.5,-9.5 + pos: 46.5,24.5 parent: 31 - uid: 5977 components: @@ -12671,6 +12649,31 @@ entities: - type: Transform pos: -11.5,-18.5 parent: 31 + - uid: 6083 + components: + - type: Transform + pos: -50.5,-28.5 + parent: 31 + - uid: 6085 + components: + - type: Transform + pos: -46.5,-28.5 + parent: 31 + - uid: 6086 + components: + - type: Transform + pos: -51.5,-28.5 + parent: 31 + - uid: 6087 + components: + - type: Transform + pos: -48.5,-28.5 + parent: 31 + - uid: 6088 + components: + - type: Transform + pos: -47.5,-28.5 + parent: 31 - uid: 6115 components: - type: Transform @@ -13186,20 +13189,15 @@ entities: - type: Transform pos: -9.5,-37.5 parent: 31 - - uid: 6981 - components: - - type: Transform - pos: 41.5,-24.5 - parent: 31 - - uid: 6982 + - uid: 6967 components: - type: Transform - pos: 40.5,-24.5 + pos: -16.5,-5.5 parent: 31 - - uid: 7010 + - uid: 7009 components: - type: Transform - pos: 45.5,-24.5 + pos: -9.5,-14.5 parent: 31 - uid: 7026 components: @@ -13226,10 +13224,20 @@ entities: - type: Transform pos: 36.5,-9.5 parent: 31 + - uid: 7051 + components: + - type: Transform + pos: 47.5,-22.5 + parent: 31 - uid: 7054 components: - type: Transform - pos: 33.5,-21.5 + pos: 47.5,-25.5 + parent: 31 + - uid: 7061 + components: + - type: Transform + pos: 49.5,-26.5 parent: 31 - uid: 7064 components: @@ -13401,11 +13409,6 @@ entities: - type: Transform pos: -15.5,-25.5 parent: 31 - - uid: 7428 - components: - - type: Transform - pos: -19.5,16.5 - parent: 31 - uid: 7439 components: - type: Transform @@ -13421,11 +13424,21 @@ entities: - type: Transform pos: -22.5,-13.5 parent: 31 + - uid: 7471 + components: + - type: Transform + pos: -7.5,-16.5 + parent: 31 - uid: 7474 components: - type: Transform pos: 3.5,-29.5 parent: 31 + - uid: 7526 + components: + - type: Transform + pos: -6.5,-16.5 + parent: 31 - uid: 7637 components: - type: Transform @@ -13441,26 +13454,6 @@ entities: - type: Transform pos: -23.5,-29.5 parent: 31 - - uid: 7648 - components: - - type: Transform - pos: -25.5,-6.5 - parent: 31 - - uid: 7649 - components: - - type: Transform - pos: -25.5,-5.5 - parent: 31 - - uid: 7650 - components: - - type: Transform - pos: -25.5,-4.5 - parent: 31 - - uid: 7671 - components: - - type: Transform - pos: -14.5,14.5 - parent: 31 - uid: 7680 components: - type: Transform @@ -13616,11 +13609,6 @@ entities: - type: Transform pos: -24.5,3.5 parent: 31 - - uid: 7773 - components: - - type: Transform - pos: -24.5,2.5 - parent: 31 - uid: 7833 components: - type: Transform @@ -13661,6 +13649,11 @@ entities: - type: Transform pos: 53.5,16.5 parent: 31 + - uid: 7946 + components: + - type: Transform + pos: -21.5,-5.5 + parent: 31 - uid: 8040 components: - type: Transform @@ -13871,285 +13864,180 @@ entities: - type: Transform pos: 60.5,4.5 parent: 31 - - uid: 8226 - components: - - type: Transform - pos: 53.5,-24.5 - parent: 31 - - uid: 8227 - components: - - type: Transform - pos: 54.5,-24.5 - parent: 31 - - uid: 8228 - components: - - type: Transform - pos: 54.5,-23.5 - parent: 31 - - uid: 8229 - components: - - type: Transform - pos: 54.5,-22.5 - parent: 31 - - uid: 8230 - components: - - type: Transform - pos: 54.5,-25.5 - parent: 31 - - uid: 8231 - components: - - type: Transform - pos: 54.5,-26.5 - parent: 31 - - uid: 8233 - components: - - type: Transform - pos: 49.5,-28.5 - parent: 31 - - uid: 8234 - components: - - type: Transform - pos: 49.5,-29.5 - parent: 31 - - uid: 8235 - components: - - type: Transform - pos: 48.5,-29.5 - parent: 31 - - uid: 8236 - components: - - type: Transform - pos: 47.5,-29.5 - parent: 31 - - uid: 8237 - components: - - type: Transform - pos: 50.5,-29.5 - parent: 31 - - uid: 8238 - components: - - type: Transform - pos: 51.5,-29.5 - parent: 31 - - uid: 8240 - components: - - type: Transform - pos: 49.5,-20.5 - parent: 31 - - uid: 8241 - components: - - type: Transform - pos: 49.5,-19.5 - parent: 31 - - uid: 8242 - components: - - type: Transform - pos: 48.5,-19.5 - parent: 31 - - uid: 8243 - components: - - type: Transform - pos: 47.5,-19.5 - parent: 31 - - uid: 8244 - components: - - type: Transform - pos: 50.5,-19.5 - parent: 31 - - uid: 8245 - components: - - type: Transform - pos: 51.5,-19.5 - parent: 31 - - uid: 8246 - components: - - type: Transform - pos: 44.5,-25.5 - parent: 31 - - uid: 8247 - components: - - type: Transform - pos: 44.5,-26.5 - parent: 31 - - uid: 8248 + - uid: 8201 components: - type: Transform - pos: 44.5,-23.5 + pos: -2.5,-9.5 parent: 31 - uid: 8249 components: - type: Transform - pos: 44.5,-22.5 - parent: 31 - - uid: 8250 - components: - - type: Transform - pos: 45.5,-22.5 + pos: 49.5,-30.5 parent: 31 - - uid: 8251 + - uid: 8260 components: - type: Transform - pos: 45.5,-21.5 + pos: -16.5,-4.5 parent: 31 - - uid: 8252 + - uid: 8282 components: - type: Transform - pos: 47.5,-20.5 + pos: 38.5,-13.5 parent: 31 - - uid: 8253 + - uid: 8295 components: - type: Transform - pos: 46.5,-20.5 + pos: -2.5,-26.5 parent: 31 - - uid: 8254 + - uid: 8297 components: - type: Transform - pos: 51.5,-20.5 + pos: -40.5,-9.5 parent: 31 - - uid: 8255 + - uid: 8298 components: - type: Transform - pos: 52.5,-20.5 + pos: -39.5,-9.5 parent: 31 - - uid: 8256 + - uid: 8313 components: - type: Transform - pos: 53.5,-22.5 + pos: 47.5,-23.5 parent: 31 - - uid: 8257 + - uid: 8315 components: - type: Transform - pos: 53.5,-21.5 + pos: 46.5,15.5 parent: 31 - - uid: 8258 + - uid: 8338 components: - type: Transform - pos: 53.5,-26.5 + pos: 48.5,-26.5 parent: 31 - - uid: 8259 + - uid: 8339 components: - type: Transform - pos: 53.5,-27.5 + pos: 51.5,-26.5 parent: 31 - - uid: 8260 + - uid: 8348 components: - type: Transform - pos: 51.5,-28.5 + pos: 33.5,19.5 parent: 31 - - uid: 8261 + - uid: 8359 components: - type: Transform - pos: 52.5,-28.5 + pos: 33.5,23.5 parent: 31 - - uid: 8262 + - uid: 8360 components: - type: Transform - pos: 47.5,-28.5 + pos: 33.5,20.5 parent: 31 - - uid: 8263 + - uid: 8361 components: - type: Transform - pos: 46.5,-28.5 + pos: 33.5,21.5 parent: 31 - - uid: 8264 + - uid: 8394 components: - type: Transform - pos: 45.5,-26.5 + pos: 47.5,-24.5 parent: 31 - - uid: 8265 + - uid: 8395 components: - type: Transform - pos: 45.5,-27.5 + pos: 48.5,-22.5 parent: 31 - - uid: 8282 + - uid: 8403 components: - type: Transform - pos: 38.5,-13.5 + pos: 47.5,-26.5 parent: 31 - - uid: 8295 + - uid: 8404 components: - type: Transform - pos: -2.5,-26.5 + pos: 48.5,-29.5 parent: 31 - - uid: 8297 + - uid: 8405 components: - type: Transform - pos: -40.5,-9.5 + pos: 33.5,-18.5 parent: 31 - - uid: 8298 + - uid: 8406 components: - type: Transform - pos: -39.5,-9.5 + pos: -23.5,4.5 parent: 31 - - uid: 8315 + - uid: 8407 components: - type: Transform - pos: 46.5,15.5 + pos: -29.5,5.5 parent: 31 - - uid: 8348 + - uid: 8447 components: - type: Transform - pos: 33.5,19.5 + pos: -20.5,14.5 parent: 31 - - uid: 8359 + - uid: 8474 components: - type: Transform - pos: 33.5,23.5 + pos: 48.5,-28.5 parent: 31 - - uid: 8360 + - uid: 8487 components: - type: Transform - pos: 33.5,20.5 + pos: -25.5,-29.5 parent: 31 - - uid: 8361 + - uid: 8501 components: - type: Transform - pos: 33.5,21.5 + pos: -28.5,-29.5 parent: 31 - - uid: 8403 + - uid: 8508 components: - type: Transform - pos: 33.5,-20.5 + pos: -19.5,-29.5 parent: 31 - - uid: 8404 + - uid: 8509 components: - type: Transform - pos: 33.5,-19.5 + pos: -19.5,-30.5 parent: 31 - - uid: 8405 + - uid: 8515 components: - type: Transform - pos: 33.5,-18.5 + pos: 48.5,-21.5 parent: 31 - - uid: 8406 + - uid: 8525 components: - type: Transform - pos: -23.5,4.5 + pos: 50.5,-22.5 parent: 31 - - uid: 8407 + - uid: 8532 components: - type: Transform - pos: -29.5,5.5 + pos: 55.5,-25.5 parent: 31 - - uid: 8487 + - uid: 8538 components: - type: Transform - pos: -25.5,-29.5 + pos: 48.5,-19.5 parent: 31 - - uid: 8501 + - uid: 8575 components: - type: Transform - pos: -28.5,-29.5 + pos: 43.5,-24.5 parent: 31 - - uid: 8508 + - uid: 8614 components: - type: Transform - pos: -19.5,-29.5 + pos: 48.5,-18.5 parent: 31 - - uid: 8509 + - uid: 8618 components: - type: Transform - pos: -19.5,-30.5 + pos: 49.5,-18.5 parent: 31 - uid: 8677 components: @@ -14191,15 +14079,10 @@ entities: - type: Transform pos: -35.5,-26.5 parent: 31 - - uid: 8685 - components: - - type: Transform - pos: -35.5,-25.5 - parent: 31 - uid: 8686 components: - type: Transform - pos: -35.5,-24.5 + pos: 53.5,-25.5 parent: 31 - uid: 8687 components: @@ -14209,17 +14092,7 @@ entities: - uid: 8688 components: - type: Transform - pos: -35.5,-27.5 - parent: 31 - - uid: 8689 - components: - - type: Transform - pos: -35.5,-28.5 - parent: 31 - - uid: 8690 - components: - - type: Transform - pos: -35.5,-29.5 + pos: 49.5,-29.5 parent: 31 - uid: 8691 components: @@ -14266,6 +14139,26 @@ entities: - type: Transform pos: -30.5,-32.5 parent: 31 + - uid: 8718 + components: + - type: Transform + pos: 54.5,-25.5 + parent: 31 + - uid: 8727 + components: + - type: Transform + pos: 51.5,-25.5 + parent: 31 + - uid: 8737 + components: + - type: Transform + pos: 45.5,-25.5 + parent: 31 + - uid: 8739 + components: + - type: Transform + pos: -25.5,-2.5 + parent: 31 - uid: 8750 components: - type: Transform @@ -14276,11 +14169,6 @@ entities: - type: Transform pos: -24.5,-29.5 parent: 31 - - uid: 8757 - components: - - type: Transform - pos: -20.5,12.5 - parent: 31 - uid: 8761 components: - type: Transform @@ -14306,6 +14194,21 @@ entities: - type: Transform pos: -16.5,8.5 parent: 31 + - uid: 8782 + components: + - type: Transform + pos: -9.5,-13.5 + parent: 31 + - uid: 8810 + components: + - type: Transform + pos: -11.5,-14.5 + parent: 31 + - uid: 8813 + components: + - type: Transform + pos: -9.5,35.5 + parent: 31 - uid: 8821 components: - type: Transform @@ -14351,20 +14254,30 @@ entities: - type: Transform pos: 4.5,28.5 parent: 31 - - uid: 8830 + - uid: 8882 components: - type: Transform - pos: 5.5,28.5 + pos: -13.5,6.5 parent: 31 - - uid: 8831 + - uid: 8902 components: - type: Transform - pos: 6.5,28.5 + pos: 50.5,-26.5 parent: 31 - - uid: 8882 + - uid: 8910 components: - type: Transform - pos: -13.5,6.5 + pos: 46.5,-25.5 + parent: 31 + - uid: 8912 + components: + - type: Transform + pos: 52.5,-25.5 + parent: 31 + - uid: 8916 + components: + - type: Transform + pos: 48.5,-20.5 parent: 31 - uid: 8957 components: @@ -14521,11 +14434,6 @@ entities: - type: Transform pos: 3.5,8.5 parent: 31 - - uid: 9033 - components: - - type: Transform - pos: -22.5,-10.5 - parent: 31 - uid: 9133 components: - type: Transform @@ -14546,6 +14454,11 @@ entities: - type: Transform pos: -43.5,8.5 parent: 31 + - uid: 9180 + components: + - type: Transform + pos: -7.5,15.5 + parent: 31 - uid: 9210 components: - type: Transform @@ -14601,6 +14514,16 @@ entities: - type: Transform pos: -22.5,-29.5 parent: 31 + - uid: 9332 + components: + - type: Transform + pos: -10.5,26.5 + parent: 31 + - uid: 9366 + components: + - type: Transform + pos: -7.5,35.5 + parent: 31 - uid: 9367 components: - type: Transform @@ -14656,6 +14579,16 @@ entities: - type: Transform pos: -3.5,-21.5 parent: 31 + - uid: 9563 + components: + - type: Transform + pos: -6.5,35.5 + parent: 31 + - uid: 9571 + components: + - type: Transform + pos: -0.5,34.5 + parent: 31 - uid: 9575 components: - type: Transform @@ -14691,6 +14624,11 @@ entities: - type: Transform pos: -21.5,16.5 parent: 31 + - uid: 9794 + components: + - type: Transform + pos: -21.5,13.5 + parent: 31 - uid: 9828 components: - type: Transform @@ -14746,16 +14684,6 @@ entities: - type: Transform pos: 33.5,22.5 parent: 31 - - uid: 9937 - components: - - type: Transform - pos: 33.5,27.5 - parent: 31 - - uid: 9939 - components: - - type: Transform - pos: 34.5,27.5 - parent: 31 - uid: 9947 components: - type: Transform @@ -14791,15 +14719,45 @@ entities: - type: Transform pos: 22.5,26.5 parent: 31 - - uid: 10100 + - uid: 10154 components: - type: Transform - pos: 31.5,27.5 + pos: 3.5,35.5 parent: 31 - - uid: 10101 + - uid: 10160 + components: + - type: Transform + pos: 12.5,16.5 + parent: 31 + - uid: 10161 + components: + - type: Transform + pos: -26.5,4.5 + parent: 31 + - uid: 10162 components: - type: Transform - pos: 32.5,27.5 + pos: 12.5,18.5 + parent: 31 + - uid: 10168 + components: + - type: Transform + pos: 12.5,17.5 + parent: 31 + - uid: 10169 + components: + - type: Transform + pos: 12.5,15.5 + parent: 31 + - uid: 10173 + components: + - type: Transform + pos: -30.5,-1.5 + parent: 31 + - uid: 10174 + components: + - type: Transform + pos: 48.5,11.5 parent: 31 - uid: 10222 components: @@ -14926,6 +14884,11 @@ entities: - type: Transform pos: -3.5,-38.5 parent: 31 + - uid: 10397 + components: + - type: Transform + pos: -10.5,25.5 + parent: 31 - uid: 10496 components: - type: Transform @@ -15026,15 +14989,10 @@ entities: - type: Transform pos: -28.5,-11.5 parent: 31 - - uid: 10577 - components: - - type: Transform - pos: -27.5,-11.5 - parent: 31 - uid: 10578 components: - type: Transform - pos: -26.5,-11.5 + pos: -17.5,0.5 parent: 31 - uid: 10579 components: @@ -15046,6 +15004,31 @@ entities: - type: Transform pos: -28.5,-18.5 parent: 31 + - uid: 10581 + components: + - type: Transform + pos: -17.5,-0.5 + parent: 31 + - uid: 10582 + components: + - type: Transform + pos: -17.5,-1.5 + parent: 31 + - uid: 10586 + components: + - type: Transform + pos: -17.5,-1.5 + parent: 31 + - uid: 10587 + components: + - type: Transform + pos: -18.5,-0.5 + parent: 31 + - uid: 10588 + components: + - type: Transform + pos: -19.5,-0.5 + parent: 31 - uid: 10608 components: - type: Transform @@ -15191,16 +15174,6 @@ entities: - type: Transform pos: -13.5,9.5 parent: 31 - - uid: 10740 - components: - - type: Transform - pos: -11.5,7.5 - parent: 31 - - uid: 10741 - components: - - type: Transform - pos: -9.5,7.5 - parent: 31 - uid: 10742 components: - type: Transform @@ -15326,6 +15299,11 @@ entities: - type: Transform pos: 3.5,-25.5 parent: 31 + - uid: 10827 + components: + - type: Transform + pos: -26.5,-2.5 + parent: 31 - uid: 10832 components: - type: Transform @@ -15486,6 +15464,11 @@ entities: - type: Transform pos: 55.5,-6.5 parent: 31 + - uid: 10909 + components: + - type: Transform + pos: -26.5,-1.5 + parent: 31 - uid: 10966 components: - type: Transform @@ -15561,6 +15544,46 @@ entities: - type: Transform pos: 45.5,12.5 parent: 31 + - uid: 11049 + components: + - type: Transform + pos: -26.5,-0.5 + parent: 31 + - uid: 11106 + components: + - type: Transform + pos: -26.5,0.5 + parent: 31 + - uid: 11107 + components: + - type: Transform + pos: -27.5,0.5 + parent: 31 + - uid: 11120 + components: + - type: Transform + pos: -6.5,34.5 + parent: 31 + - uid: 11122 + components: + - type: Transform + pos: 0.5,34.5 + parent: 31 + - uid: 11126 + components: + - type: Transform + pos: 0.5,33.5 + parent: 31 + - uid: 11181 + components: + - type: Transform + pos: -26.5,-3.5 + parent: 31 + - uid: 11194 + components: + - type: Transform + pos: -9.5,34.5 + parent: 31 - uid: 11195 components: - type: Transform @@ -15581,10 +15604,15 @@ entities: - type: Transform pos: -5.5,28.5 parent: 31 - - uid: 11199 + - uid: 11200 components: - type: Transform - pos: -6.5,28.5 + pos: -28.5,0.5 + parent: 31 + - uid: 11201 + components: + - type: Transform + pos: -29.5,0.5 parent: 31 - uid: 11205 components: @@ -15611,6 +15639,31 @@ entities: - type: Transform pos: -28.5,-15.5 parent: 31 + - uid: 11225 + components: + - type: Transform + pos: -26.5,-4.5 + parent: 31 + - uid: 11226 + components: + - type: Transform + pos: -27.5,-4.5 + parent: 31 + - uid: 11227 + components: + - type: Transform + pos: -28.5,-4.5 + parent: 31 + - uid: 11228 + components: + - type: Transform + pos: -29.5,-4.5 + parent: 31 + - uid: 11229 + components: + - type: Transform + pos: -29.5,-5.5 + parent: 31 - uid: 11232 components: - type: Transform @@ -15671,6 +15724,11 @@ entities: - type: Transform pos: -20.5,-15.5 parent: 31 + - uid: 11244 + components: + - type: Transform + pos: -25.5,-4.5 + parent: 31 - uid: 11251 components: - type: Transform @@ -15686,6 +15744,21 @@ entities: - type: Transform pos: -32.5,7.5 parent: 31 + - uid: 11254 + components: + - type: Transform + pos: -25.5,-5.5 + parent: 31 + - uid: 11255 + components: + - type: Transform + pos: -25.5,-6.5 + parent: 31 + - uid: 11256 + components: + - type: Transform + pos: -25.5,-7.5 + parent: 31 - uid: 11257 components: - type: Transform @@ -15721,6 +15794,16 @@ entities: - type: Transform pos: -16.5,-16.5 parent: 31 + - uid: 11284 + components: + - type: Transform + pos: -25.5,-8.5 + parent: 31 + - uid: 11296 + components: + - type: Transform + pos: -20.5,-0.5 + parent: 31 - uid: 11305 components: - type: Transform @@ -15751,6 +15834,11 @@ entities: - type: Transform pos: 20.5,-23.5 parent: 31 + - uid: 11335 + components: + - type: Transform + pos: -14.5,-10.5 + parent: 31 - uid: 11350 components: - type: Transform @@ -15826,11 +15914,6 @@ entities: - type: Transform pos: 60.5,11.5 parent: 31 - - uid: 11445 - components: - - type: Transform - pos: -25.5,-3.5 - parent: 31 - uid: 11454 components: - type: Transform @@ -15881,6 +15964,11 @@ entities: - type: Transform pos: 52.5,21.5 parent: 31 + - uid: 11490 + components: + - type: Transform + pos: -13.5,-10.5 + parent: 31 - uid: 11515 components: - type: Transform @@ -16021,6 +16109,16 @@ entities: - type: Transform pos: -33.5,-21.5 parent: 31 + - uid: 11545 + components: + - type: Transform + pos: -15.5,-9.5 + parent: 31 + - uid: 11546 + components: + - type: Transform + pos: -12.5,-10.5 + parent: 31 - uid: 11613 components: - type: Transform @@ -16091,6 +16189,36 @@ entities: - type: Transform pos: 3.5,-33.5 parent: 31 + - uid: 11826 + components: + - type: Transform + pos: 48.5,-27.5 + parent: 31 + - uid: 11829 + components: + - type: Transform + pos: 50.5,-18.5 + parent: 31 + - uid: 11855 + components: + - type: Transform + pos: -7.5,14.5 + parent: 31 + - uid: 11857 + components: + - type: Transform + pos: -8.5,14.5 + parent: 31 + - uid: 11858 + components: + - type: Transform + pos: -7.5,14.5 + parent: 31 + - uid: 11859 + components: + - type: Transform + pos: -6.5,14.5 + parent: 31 - uid: 11942 components: - type: Transform @@ -16551,11 +16679,6 @@ entities: - type: Transform pos: -44.5,10.5 parent: 31 - - uid: 12526 - components: - - type: Transform - pos: 35.5,27.5 - parent: 31 - proto: CableApcStack entities: - uid: 94 @@ -16573,6 +16696,11 @@ entities: - type: Transform pos: 48.373375,5.713002 parent: 31 + - uid: 4620 + components: + - type: Transform + pos: 47.25442,-29.18218 + parent: 31 - proto: CableApcStack1 entities: - uid: 4263 @@ -16580,6 +16708,12 @@ entities: - type: Transform pos: 49.699306,-5.6046276 parent: 31 + - uid: 6731 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.259155,16.568325 + parent: 31 - uid: 9664 components: - type: Transform @@ -16591,12 +16725,23 @@ entities: rot: -1.5707963267948966 rad pos: -3.0297182,-43.247223 parent: 31 + - uid: 10063 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.89733,-9.702441 + parent: 31 - uid: 10901 components: - type: Transform rot: -1.5707963267948966 rad pos: 49.31561,-5.6046276 parent: 31 + - uid: 11119 + components: + - type: Transform + pos: -24.27628,16.630825 + parent: 31 - proto: CableApcStack10 entities: - uid: 2048 @@ -16631,6 +16776,11 @@ entities: - type: Transform pos: -22.5,21.5 parent: 31 + - uid: 155 + components: + - type: Transform + pos: 13.5,21.5 + parent: 31 - uid: 202 components: - type: Transform @@ -16646,6 +16796,11 @@ entities: - type: Transform pos: -21.5,22.5 parent: 31 + - uid: 441 + components: + - type: Transform + pos: -33.5,9.5 + parent: 31 - uid: 544 components: - type: Transform @@ -16716,15 +16871,15 @@ entities: - type: Transform pos: -27.5,-31.5 parent: 31 - - uid: 805 + - uid: 803 components: - type: Transform - pos: -27.5,-30.5 + pos: -5.5,-9.5 parent: 31 - - uid: 840 + - uid: 805 components: - type: Transform - pos: -12.5,-10.5 + pos: -27.5,-30.5 parent: 31 - uid: 872 components: @@ -16746,11 +16901,6 @@ entities: - type: Transform pos: -28.5,-23.5 parent: 31 - - uid: 1057 - components: - - type: Transform - pos: -12.5,-12.5 - parent: 31 - uid: 1070 components: - type: Transform @@ -16786,6 +16936,16 @@ entities: - type: Transform pos: -9.5,-14.5 parent: 31 + - uid: 1161 + components: + - type: Transform + pos: -18.5,16.5 + parent: 31 + - uid: 1170 + components: + - type: Transform + pos: -12.5,14.5 + parent: 31 - uid: 1175 components: - type: Transform @@ -16866,6 +17026,11 @@ entities: - type: Transform pos: -28.5,-26.5 parent: 31 + - uid: 1425 + components: + - type: Transform + pos: -13.5,14.5 + parent: 31 - uid: 1458 components: - type: Transform @@ -16941,6 +17106,11 @@ entities: - type: Transform pos: 31.5,-45.5 parent: 31 + - uid: 1926 + components: + - type: Transform + pos: -36.5,-34.5 + parent: 31 - uid: 2000 components: - type: Transform @@ -16961,6 +17131,11 @@ entities: - type: Transform pos: -26.5,-13.5 parent: 31 + - uid: 2059 + components: + - type: Transform + pos: -33.5,5.5 + parent: 31 - uid: 2120 components: - type: Transform @@ -17011,25 +17186,70 @@ entities: - type: Transform pos: 27.5,-10.5 parent: 31 + - uid: 2461 + components: + - type: Transform + pos: -38.5,-33.5 + parent: 31 - uid: 2534 components: - type: Transform pos: -18.5,15.5 parent: 31 - - uid: 2707 + - uid: 2672 components: - type: Transform - pos: -27.5,-11.5 + pos: -29.5,-10.5 parent: 31 - - uid: 2713 + - uid: 2688 components: - type: Transform - pos: -13.5,-12.5 + pos: -28.5,-9.5 parent: 31 - - uid: 2714 + - uid: 2693 + components: + - type: Transform + pos: -35.5,7.5 + parent: 31 + - uid: 2732 + components: + - type: Transform + pos: -38.5,-32.5 + parent: 31 + - uid: 2742 + components: + - type: Transform + pos: -34.5,5.5 + parent: 31 + - uid: 2743 + components: + - type: Transform + pos: -35.5,5.5 + parent: 31 + - uid: 2745 + components: + - type: Transform + pos: -34.5,8.5 + parent: 31 + - uid: 2746 + components: + - type: Transform + pos: -34.5,9.5 + parent: 31 + - uid: 2747 components: - type: Transform - pos: -14.5,-12.5 + pos: -34.5,7.5 + parent: 31 + - uid: 2748 + components: + - type: Transform + pos: -35.5,6.5 + parent: 31 + - uid: 2770 + components: + - type: Transform + pos: -38.5,-34.5 parent: 31 - uid: 2834 components: @@ -17046,11 +17266,6 @@ entities: - type: Transform pos: -19.5,-31.5 parent: 31 - - uid: 2850 - components: - - type: Transform - pos: -15.5,-12.5 - parent: 31 - uid: 2937 components: - type: Transform @@ -17071,6 +17286,11 @@ entities: - type: Transform pos: 53.5,4.5 parent: 31 + - uid: 3115 + components: + - type: Transform + pos: -4.5,-9.5 + parent: 31 - uid: 3123 components: - type: Transform @@ -17081,6 +17301,11 @@ entities: - type: Transform pos: 32.5,8.5 parent: 31 + - uid: 3204 + components: + - type: Transform + pos: 44.5,-23.5 + parent: 31 - uid: 3272 components: - type: Transform @@ -17446,16 +17671,6 @@ entities: - type: Transform pos: -19.5,-34.5 parent: 31 - - uid: 3365 - components: - - type: Transform - pos: -10.5,-10.5 - parent: 31 - - uid: 3374 - components: - - type: Transform - pos: -11.5,-10.5 - parent: 31 - uid: 3391 components: - type: Transform @@ -17476,35 +17691,10 @@ entities: - type: Transform pos: -9.5,-10.5 parent: 31 - - uid: 3395 - components: - - type: Transform - pos: -8.5,-10.5 - parent: 31 - uid: 3396 components: - type: Transform - pos: -7.5,-10.5 - parent: 31 - - uid: 3397 - components: - - type: Transform - pos: -6.5,-10.5 - parent: 31 - - uid: 3398 - components: - - type: Transform - pos: -5.5,-10.5 - parent: 31 - - uid: 3399 - components: - - type: Transform - pos: -4.5,-10.5 - parent: 31 - - uid: 3400 - components: - - type: Transform - pos: -3.5,-10.5 + pos: -8.5,-9.5 parent: 31 - uid: 3401 components: @@ -17526,11 +17716,6 @@ entities: - type: Transform pos: -0.5,-9.5 parent: 31 - - uid: 3426 - components: - - type: Transform - pos: -26.5,-11.5 - parent: 31 - uid: 3429 components: - type: Transform @@ -17651,11 +17836,6 @@ entities: - type: Transform pos: -32.5,5.5 parent: 31 - - uid: 3453 - components: - - type: Transform - pos: -32.5,6.5 - parent: 31 - uid: 3454 components: - type: Transform @@ -17741,11 +17921,6 @@ entities: - type: Transform pos: -23.5,14.5 parent: 31 - - uid: 3472 - components: - - type: Transform - pos: -22.5,14.5 - parent: 31 - uid: 3473 components: - type: Transform @@ -17761,21 +17936,6 @@ entities: - type: Transform pos: -19.5,14.5 parent: 31 - - uid: 3482 - components: - - type: Transform - pos: -18.5,16.5 - parent: 31 - - uid: 3483 - components: - - type: Transform - pos: -17.5,16.5 - parent: 31 - - uid: 3484 - components: - - type: Transform - pos: -16.5,16.5 - parent: 31 - uid: 3486 components: - type: Transform @@ -17981,11 +18141,6 @@ entities: - type: Transform pos: 11.5,19.5 parent: 31 - - uid: 3532 - components: - - type: Transform - pos: 12.5,20.5 - parent: 31 - uid: 3533 components: - type: Transform @@ -18201,6 +18356,11 @@ entities: - type: Transform pos: 7.5,-19.5 parent: 31 + - uid: 3783 + components: + - type: Transform + pos: -29.5,-9.5 + parent: 31 - uid: 3851 components: - type: Transform @@ -18221,11 +18381,26 @@ entities: - type: Transform pos: 65.5,7.5 parent: 31 + - uid: 4018 + components: + - type: Transform + pos: -9.5,-9.5 + parent: 31 + - uid: 4130 + components: + - type: Transform + pos: -37.5,-34.5 + parent: 31 - uid: 4233 components: - type: Transform pos: -21.5,24.5 parent: 31 + - uid: 4235 + components: + - type: Transform + pos: 13.5,19.5 + parent: 31 - uid: 4242 components: - type: Transform @@ -18401,6 +18576,11 @@ entities: - type: Transform pos: 55.5,1.5 parent: 31 + - uid: 4599 + components: + - type: Transform + pos: 13.5,20.5 + parent: 31 - uid: 4652 components: - type: Transform @@ -18716,6 +18896,11 @@ entities: - type: Transform pos: -4.5,25.5 parent: 31 + - uid: 5987 + components: + - type: Transform + pos: -7.5,-9.5 + parent: 31 - uid: 6198 components: - type: Transform @@ -19081,6 +19266,26 @@ entities: - type: Transform pos: 50.5,3.5 parent: 31 + - uid: 6992 + components: + - type: Transform + pos: -8.5,14.5 + parent: 31 + - uid: 7011 + components: + - type: Transform + pos: 43.5,-24.5 + parent: 31 + - uid: 7025 + components: + - type: Transform + pos: -8.5,13.5 + parent: 31 + - uid: 7038 + components: + - type: Transform + pos: 44.5,-25.5 + parent: 31 - uid: 7173 components: - type: Transform @@ -19101,11 +19306,6 @@ entities: - type: Transform pos: 0.5,-8.5 parent: 31 - - uid: 7384 - components: - - type: Transform - pos: -12.5,-11.5 - parent: 31 - uid: 7385 components: - type: Transform @@ -19176,6 +19376,11 @@ entities: - type: Transform pos: 63.5,6.5 parent: 31 + - uid: 8200 + components: + - type: Transform + pos: -3.5,-9.5 + parent: 31 - uid: 8351 components: - type: Transform @@ -19191,6 +19396,16 @@ entities: - type: Transform pos: 36.5,-45.5 parent: 31 + - uid: 8378 + components: + - type: Transform + pos: 44.5,-26.5 + parent: 31 + - uid: 8379 + components: + - type: Transform + pos: 43.5,-25.5 + parent: 31 - uid: 8452 components: - type: Transform @@ -19296,30 +19511,10 @@ entities: - type: Transform pos: -35.5,-34.5 parent: 31 - - uid: 8614 - components: - - type: Transform - pos: -35.5,-33.5 - parent: 31 - - uid: 8615 - components: - - type: Transform - pos: -35.5,-32.5 - parent: 31 - - uid: 8616 - components: - - type: Transform - pos: -35.5,-31.5 - parent: 31 - uid: 8617 components: - type: Transform - pos: -36.5,-31.5 - parent: 31 - - uid: 8618 - components: - - type: Transform - pos: -37.5,-31.5 + pos: 44.5,-22.5 parent: 31 - uid: 8619 components: @@ -19431,6 +19626,16 @@ entities: - type: Transform pos: -31.5,-31.5 parent: 31 + - uid: 8913 + components: + - type: Transform + pos: 43.5,-23.5 + parent: 31 + - uid: 8928 + components: + - type: Transform + pos: -6.5,-9.5 + parent: 31 - uid: 9000 components: - type: Transform @@ -19446,6 +19651,16 @@ entities: - type: Transform pos: 54.5,7.5 parent: 31 + - uid: 9220 + components: + - type: Transform + pos: -8.5,12.5 + parent: 31 + - uid: 9275 + components: + - type: Transform + pos: -8.5,11.5 + parent: 31 - uid: 9390 components: - type: Transform @@ -19586,6 +19801,16 @@ entities: - type: Transform pos: 43.5,0.5 parent: 31 + - uid: 9550 + components: + - type: Transform + pos: -20.5,13.5 + parent: 31 + - uid: 9551 + components: + - type: Transform + pos: -20.5,12.5 + parent: 31 - uid: 9591 components: - type: Transform @@ -19611,6 +19836,11 @@ entities: - type: Transform pos: 24.5,-13.5 parent: 31 + - uid: 9969 + components: + - type: Transform + pos: -19.5,12.5 + parent: 31 - uid: 10230 components: - type: Transform @@ -19691,16 +19921,6 @@ entities: - type: Transform pos: -14.5,14.5 parent: 31 - - uid: 10715 - components: - - type: Transform - pos: -13.5,14.5 - parent: 31 - - uid: 10716 - components: - - type: Transform - pos: -12.5,14.5 - parent: 31 - uid: 10717 components: - type: Transform @@ -19721,31 +19941,6 @@ entities: - type: Transform pos: -9.5,15.5 parent: 31 - - uid: 10721 - components: - - type: Transform - pos: -8.5,15.5 - parent: 31 - - uid: 10722 - components: - - type: Transform - pos: -8.5,14.5 - parent: 31 - - uid: 10723 - components: - - type: Transform - pos: -8.5,13.5 - parent: 31 - - uid: 10724 - components: - - type: Transform - pos: -8.5,12.5 - parent: 31 - - uid: 10725 - components: - - type: Transform - pos: -8.5,11.5 - parent: 31 - uid: 10726 components: - type: Transform @@ -19811,6 +20006,11 @@ entities: - type: Transform pos: -16.5,6.5 parent: 31 + - uid: 11131 + components: + - type: Transform + pos: -22.5,14.5 + parent: 31 - uid: 11204 components: - type: Transform @@ -19861,6 +20061,16 @@ entities: - type: Transform pos: -31.5,7.5 parent: 31 + - uid: 11549 + components: + - type: Transform + pos: -2.5,-9.5 + parent: 31 + - uid: 11854 + components: + - type: Transform + pos: -8.5,15.5 + parent: 31 - uid: 12256 components: - type: Transform @@ -20883,18 +21093,23 @@ entities: - type: Transform pos: 29.54536,1.7105546 parent: 31 - - uid: 6023 + - uid: 2368 components: - type: Transform - pos: 48.339085,5.504549 + pos: 47.462757,-29.494898 parent: 31 - - uid: 7634 + - uid: 6023 components: - type: Transform - pos: -20.539572,25.33725 + pos: 48.339085,5.504549 parent: 31 - proto: CableMV entities: + - uid: 72 + components: + - type: Transform + pos: -25.5,-4.5 + parent: 31 - uid: 96 components: - type: Transform @@ -20905,6 +21120,11 @@ entities: - type: Transform pos: -36.5,-6.5 parent: 31 + - uid: 396 + components: + - type: Transform + pos: -34.5,-5.5 + parent: 31 - uid: 407 components: - type: Transform @@ -20960,26 +21180,11 @@ entities: - type: Transform pos: 37.5,3.5 parent: 31 - - uid: 675 - components: - - type: Transform - pos: -12.5,-10.5 - parent: 31 - uid: 678 components: - type: Transform pos: 22.5,-11.5 parent: 31 - - uid: 679 - components: - - type: Transform - pos: -14.5,-10.5 - parent: 31 - - uid: 694 - components: - - type: Transform - pos: -13.5,-10.5 - parent: 31 - uid: 724 components: - type: Transform @@ -21010,11 +21215,31 @@ entities: - type: Transform pos: 12.5,21.5 parent: 31 + - uid: 906 + components: + - type: Transform + pos: -27.5,-4.5 + parent: 31 + - uid: 920 + components: + - type: Transform + pos: -21.5,13.5 + parent: 31 - uid: 931 components: - type: Transform pos: 8.5,26.5 parent: 31 + - uid: 950 + components: + - type: Transform + pos: -28.5,-4.5 + parent: 31 + - uid: 952 + components: + - type: Transform + pos: -26.5,-4.5 + parent: 31 - uid: 986 components: - type: Transform @@ -21040,6 +21265,16 @@ entities: - type: Transform pos: 12.5,22.5 parent: 31 + - uid: 1344 + components: + - type: Transform + pos: -21.5,14.5 + parent: 31 + - uid: 1396 + components: + - type: Transform + pos: -13.5,14.5 + parent: 31 - uid: 1569 components: - type: Transform @@ -21055,11 +21290,6 @@ entities: - type: Transform pos: 35.5,3.5 parent: 31 - - uid: 1599 - components: - - type: Transform - pos: -20.5,15.5 - parent: 31 - uid: 1601 components: - type: Transform @@ -21075,6 +21305,21 @@ entities: - type: Transform pos: 56.5,7.5 parent: 31 + - uid: 1741 + components: + - type: Transform + pos: -16.5,-5.5 + parent: 31 + - uid: 1763 + components: + - type: Transform + pos: -17.5,-1.5 + parent: 31 + - uid: 1764 + components: + - type: Transform + pos: -17.5,-2.5 + parent: 31 - uid: 1844 components: - type: Transform @@ -21085,6 +21330,26 @@ entities: - type: Transform pos: 60.5,7.5 parent: 31 + - uid: 1964 + components: + - type: Transform + pos: -21.5,12.5 + parent: 31 + - uid: 2071 + components: + - type: Transform + pos: -35.5,-5.5 + parent: 31 + - uid: 2088 + components: + - type: Transform + pos: -32.5,-5.5 + parent: 31 + - uid: 2099 + components: + - type: Transform + pos: -20.5,14.5 + parent: 31 - uid: 2182 components: - type: Transform @@ -21095,10 +21360,10 @@ entities: - type: Transform pos: -12.5,-27.5 parent: 31 - - uid: 2264 + - uid: 2297 components: - type: Transform - pos: -11.5,-10.5 + pos: -19.5,14.5 parent: 31 - uid: 2432 components: @@ -21135,15 +21400,25 @@ entities: - type: Transform pos: -11.5,-35.5 parent: 31 - - uid: 2738 + - uid: 2744 components: - type: Transform - pos: -16.5,-1.5 + pos: -3.5,-21.5 parent: 31 - - uid: 2744 + - uid: 2750 components: - type: Transform - pos: -3.5,-21.5 + pos: -29.5,-10.5 + parent: 31 + - uid: 2783 + components: + - type: Transform + pos: -29.5,-9.5 + parent: 31 + - uid: 2817 + components: + - type: Transform + pos: -15.5,-8.5 parent: 31 - uid: 2822 components: @@ -21195,11 +21470,6 @@ entities: - type: Transform pos: 14.5,-8.5 parent: 31 - - uid: 2908 - components: - - type: Transform - pos: -12.5,-11.5 - parent: 31 - uid: 3068 components: - type: Transform @@ -21300,21 +21570,31 @@ entities: - type: Transform pos: -10.5,-35.5 parent: 31 - - uid: 3479 + - uid: 3398 components: - type: Transform - pos: -19.5,15.5 + pos: -17.5,0.5 parent: 31 - uid: 3481 components: - type: Transform pos: 12.5,16.5 parent: 31 + - uid: 3577 + components: + - type: Transform + pos: -16.5,-6.5 + parent: 31 - uid: 3589 components: - type: Transform pos: 12.5,24.5 parent: 31 + - uid: 3591 + components: + - type: Transform + pos: -17.5,-0.5 + parent: 31 - uid: 3597 components: - type: Transform @@ -21885,20 +22165,10 @@ entities: - type: Transform pos: -9.5,-9.5 parent: 31 - - uid: 3770 - components: - - type: Transform - pos: -18.5,-3.5 - parent: 31 - - uid: 3771 - components: - - type: Transform - pos: -18.5,-2.5 - parent: 31 - - uid: 3772 + - uid: 3769 components: - type: Transform - pos: -17.5,-2.5 + pos: -28.5,-9.5 parent: 31 - uid: 3773 components: @@ -21935,31 +22205,6 @@ entities: - type: Transform pos: -11.5,2.5 parent: 31 - - uid: 3781 - components: - - type: Transform - pos: -26.5,-4.5 - parent: 31 - - uid: 3782 - components: - - type: Transform - pos: -25.5,-4.5 - parent: 31 - - uid: 3783 - components: - - type: Transform - pos: -25.5,-6.5 - parent: 31 - - uid: 3784 - components: - - type: Transform - pos: -25.5,-7.5 - parent: 31 - - uid: 3785 - components: - - type: Transform - pos: -25.5,-5.5 - parent: 31 - uid: 3786 components: - type: Transform @@ -21970,56 +22215,11 @@ entities: - type: Transform pos: -15.5,-9.5 parent: 31 - - uid: 3790 - components: - - type: Transform - pos: -14.5,-9.5 - parent: 31 - - uid: 3791 - components: - - type: Transform - pos: -14.5,-8.5 - parent: 31 - uid: 3792 components: - type: Transform pos: -32.5,-6.5 parent: 31 - - uid: 3796 - components: - - type: Transform - pos: -33.5,-6.5 - parent: 31 - - uid: 3798 - components: - - type: Transform - pos: -25.5,-8.5 - parent: 31 - - uid: 3799 - components: - - type: Transform - pos: -26.5,-8.5 - parent: 31 - - uid: 3800 - components: - - type: Transform - pos: -27.5,-8.5 - parent: 31 - - uid: 3801 - components: - - type: Transform - pos: -28.5,-8.5 - parent: 31 - - uid: 3802 - components: - - type: Transform - pos: -29.5,-8.5 - parent: 31 - - uid: 3803 - components: - - type: Transform - pos: -34.5,-6.5 - parent: 31 - uid: 3804 components: - type: Transform @@ -22100,26 +22300,11 @@ entities: - type: Transform pos: 21.5,-13.5 parent: 31 - - uid: 3846 - components: - - type: Transform - pos: -6.5,15.5 - parent: 31 - uid: 3847 components: - type: Transform pos: -5.5,15.5 parent: 31 - - uid: 3848 - components: - - type: Transform - pos: -15.5,-4.5 - parent: 31 - - uid: 3850 - components: - - type: Transform - pos: -16.5,16.5 - parent: 31 - uid: 3870 components: - type: Transform @@ -22130,16 +22315,6 @@ entities: - type: Transform pos: -31.5,-12.5 parent: 31 - - uid: 3896 - components: - - type: Transform - pos: -7.5,15.5 - parent: 31 - - uid: 3919 - components: - - type: Transform - pos: -15.5,-5.5 - parent: 31 - uid: 3920 components: - type: Transform @@ -22150,6 +22325,11 @@ entities: - type: Transform pos: -5.5,-7.5 parent: 31 + - uid: 4120 + components: + - type: Transform + pos: -19.5,12.5 + parent: 31 - uid: 4139 components: - type: Transform @@ -22165,6 +22345,11 @@ entities: - type: Transform pos: 18.5,-13.5 parent: 31 + - uid: 4375 + components: + - type: Transform + pos: -30.5,-7.5 + parent: 31 - uid: 4467 components: - type: Transform @@ -22190,6 +22375,11 @@ entities: - type: Transform pos: 1.5,-30.5 parent: 31 + - uid: 4958 + components: + - type: Transform + pos: -33.5,-5.5 + parent: 31 - uid: 4999 components: - type: Transform @@ -22450,6 +22640,21 @@ entities: - type: Transform pos: 46.5,10.5 parent: 31 + - uid: 7002 + components: + - type: Transform + pos: -29.5,-5.5 + parent: 31 + - uid: 7013 + components: + - type: Transform + pos: 44.5,-26.5 + parent: 31 + - uid: 7023 + components: + - type: Transform + pos: 13.5,21.5 + parent: 31 - uid: 7057 components: - type: Transform @@ -22475,11 +22680,6 @@ entities: - type: Transform pos: 0.5,-8.5 parent: 31 - - uid: 7209 - components: - - type: Transform - pos: -26.5,-11.5 - parent: 31 - uid: 7255 components: - type: Transform @@ -22490,10 +22690,15 @@ entities: - type: Transform pos: -5.5,-21.5 parent: 31 - - uid: 7404 + - uid: 7321 components: - type: Transform - pos: -16.5,-0.5 + pos: -8.5,15.5 + parent: 31 + - uid: 7437 + components: + - type: Transform + pos: -29.5,-7.5 parent: 31 - uid: 7456 components: @@ -22525,11 +22730,26 @@ entities: - type: Transform pos: 7.5,13.5 parent: 31 + - uid: 7816 + components: + - type: Transform + pos: -11.5,-13.5 + parent: 31 + - uid: 7832 + components: + - type: Transform + pos: -11.5,-12.5 + parent: 31 - uid: 7860 components: - type: Transform pos: 7.5,12.5 parent: 31 + - uid: 7896 + components: + - type: Transform + pos: -11.5,-11.5 + parent: 31 - uid: 8029 components: - type: Transform @@ -22555,15 +22775,10 @@ entities: - type: Transform pos: -16.5,0.5 parent: 31 - - uid: 8071 - components: - - type: Transform - pos: -18.5,16.5 - parent: 31 - - uid: 8077 + - uid: 8045 components: - type: Transform - pos: 12.5,20.5 + pos: -31.5,-7.5 parent: 31 - uid: 8078 components: @@ -22680,6 +22895,66 @@ entities: - type: Transform pos: -6.5,-26.5 parent: 31 + - uid: 8229 + components: + - type: Transform + pos: 13.5,19.5 + parent: 31 + - uid: 8234 + components: + - type: Transform + pos: -10.5,-14.5 + parent: 31 + - uid: 8251 + components: + - type: Transform + pos: -9.5,-13.5 + parent: 31 + - uid: 8255 + components: + - type: Transform + pos: -9.5,-14.5 + parent: 31 + - uid: 8256 + components: + - type: Transform + pos: -11.5,-14.5 + parent: 31 + - uid: 8257 + components: + - type: Transform + pos: -9.5,-11.5 + parent: 31 + - uid: 8258 + components: + - type: Transform + pos: -9.5,-12.5 + parent: 31 + - uid: 8294 + components: + - type: Transform + pos: -29.5,-4.5 + parent: 31 + - uid: 8299 + components: + - type: Transform + pos: -29.5,-4.5 + parent: 31 + - uid: 8335 + components: + - type: Transform + pos: 45.5,-25.5 + parent: 31 + - uid: 8336 + components: + - type: Transform + pos: 44.5,-25.5 + parent: 31 + - uid: 8440 + components: + - type: Transform + pos: -29.5,-6.5 + parent: 31 - uid: 8491 components: - type: Transform @@ -22725,10 +23000,20 @@ entities: - type: Transform pos: -32.5,-25.5 parent: 31 - - uid: 8782 + - uid: 8738 components: - type: Transform - pos: -8.5,15.5 + pos: -24.5,-4.5 + parent: 31 + - uid: 8740 + components: + - type: Transform + pos: -24.5,-3.5 + parent: 31 + - uid: 8742 + components: + - type: Transform + pos: 13.5,20.5 parent: 31 - uid: 9050 components: @@ -22750,21 +23035,26 @@ entities: - type: Transform pos: -18.5,14.5 parent: 31 - - uid: 9083 + - uid: 9084 components: - type: Transform - pos: -17.5,16.5 + pos: -17.5,14.5 parent: 31 - - uid: 9084 + - uid: 9088 components: - type: Transform - pos: -17.5,14.5 + pos: -12.5,14.5 parent: 31 - uid: 9141 components: - type: Transform pos: 21.5,-11.5 parent: 31 + - uid: 9181 + components: + - type: Transform + pos: -5.5,15.5 + parent: 31 - uid: 9202 components: - type: Transform @@ -22775,10 +23065,15 @@ entities: - type: Transform pos: -9.5,-10.5 parent: 31 - - uid: 9278 + - uid: 9284 components: - type: Transform - pos: -10.5,-10.5 + pos: -6.5,15.5 + parent: 31 + - uid: 9331 + components: + - type: Transform + pos: -7.5,15.5 parent: 31 - uid: 9505 components: @@ -22800,11 +23095,6 @@ entities: - type: Transform pos: -14.5,14.5 parent: 31 - - uid: 9621 - components: - - type: Transform - pos: -13.5,14.5 - parent: 31 - uid: 9625 components: - type: Transform @@ -22830,15 +23120,15 @@ entities: - type: Transform pos: 44.5,8.5 parent: 31 - - uid: 9869 + - uid: 9870 components: - type: Transform - pos: -12.5,14.5 + pos: -12.5,13.5 parent: 31 - - uid: 9870 + - uid: 9933 components: - type: Transform - pos: -12.5,13.5 + pos: -20.5,12.5 parent: 31 - uid: 10229 components: @@ -22870,21 +23160,11 @@ entities: - type: Transform pos: 53.5,-2.5 parent: 31 - - uid: 10356 - components: - - type: Transform - pos: -15.5,-12.5 - parent: 31 - uid: 10357 components: - type: Transform pos: -26.5,-13.5 parent: 31 - - uid: 10360 - components: - - type: Transform - pos: -27.5,-11.5 - parent: 31 - uid: 10361 components: - type: Transform @@ -22925,31 +23205,6 @@ entities: - type: Transform pos: -32.5,-8.5 parent: 31 - - uid: 10369 - components: - - type: Transform - pos: -31.5,-8.5 - parent: 31 - - uid: 10370 - components: - - type: Transform - pos: -30.5,-8.5 - parent: 31 - - uid: 10442 - components: - - type: Transform - pos: -12.5,-12.5 - parent: 31 - - uid: 10445 - components: - - type: Transform - pos: -14.5,-12.5 - parent: 31 - - uid: 10447 - components: - - type: Transform - pos: -13.5,-12.5 - parent: 31 - uid: 10525 components: - type: Transform @@ -23005,6 +23260,11 @@ entities: - type: Transform pos: 49.5,-4.5 parent: 31 + - uid: 10820 + components: + - type: Transform + pos: -24.5,-2.5 + parent: 31 - uid: 10848 components: - type: Transform @@ -23185,11 +23445,36 @@ entities: - type: Transform pos: 26.5,14.5 parent: 31 + - uid: 11450 + components: + - type: Transform + pos: -11.5,-10.5 + parent: 31 + - uid: 11472 + components: + - type: Transform + pos: -13.5,-10.5 + parent: 31 + - uid: 11482 + components: + - type: Transform + pos: -12.5,-10.5 + parent: 31 - uid: 11483 components: - type: Transform pos: -12.5,-35.5 parent: 31 + - uid: 11484 + components: + - type: Transform + pos: -14.5,-10.5 + parent: 31 + - uid: 11486 + components: + - type: Transform + pos: -15.5,-10.5 + parent: 31 - uid: 11487 components: - type: Transform @@ -23277,6 +23562,19 @@ entities: - type: Transform pos: 48.35775,5.619252 parent: 31 + - uid: 2727 + components: + - type: Transform + pos: 47.63984,-29.244724 + parent: 31 +- proto: CableMVStack1 + entities: + - uid: 3246 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.078724,16.10648 + parent: 31 - proto: CableTerminal entities: - uid: 4327 @@ -23347,6 +23645,11 @@ entities: rot: 3.141592653589793 rad pos: 55.5,3.5 parent: 31 + - uid: 8337 + components: + - type: Transform + pos: 43.5,-24.5 + parent: 31 - uid: 8573 components: - type: Transform @@ -23387,13 +23690,6 @@ entities: - type: Transform pos: 5.6265216,-33.554047 parent: 31 -- proto: CaptainIDCard - entities: - - uid: 4684 - components: - - type: Transform - pos: 6.5105124,24.655684 - parent: 31 - proto: CarbonDioxideCanister entities: - uid: 10010 @@ -23516,100 +23812,36 @@ entities: rot: 3.141592653589793 rad pos: 0.5,-5.5 parent: 31 - - uid: 4700 - components: - - type: Transform - pos: -7.5,21.5 - parent: 31 - - uid: 8271 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -7.5,22.5 - parent: 31 - - uid: 8919 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -25.5,-5.5 - parent: 31 - - uid: 8920 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -25.5,-6.5 - parent: 31 - - uid: 8921 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -25.5,-7.5 - parent: 31 - - uid: 8922 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -23.5,-7.5 - parent: 31 - - uid: 8923 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -24.5,-7.5 - parent: 31 - - uid: 8924 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -24.5,-6.5 - parent: 31 - - uid: 8925 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -23.5,-6.5 - parent: 31 - - uid: 8926 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -23.5,-5.5 - parent: 31 - - uid: 8927 + - uid: 4383 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -24.5,-5.5 + pos: -11.5,-11.5 parent: 31 - - uid: 8928 + - uid: 4700 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -24.5,-4.5 + pos: -7.5,21.5 parent: 31 - - uid: 8929 + - uid: 7000 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -23.5,-4.5 + pos: -12.5,-10.5 parent: 31 - - uid: 8931 + - uid: 8271 components: - type: Transform rot: -1.5707963267948966 rad - pos: -22.5,-5.5 + pos: -7.5,22.5 parent: 31 - - uid: 8932 + - uid: 8492 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -22.5,-6.5 + pos: -12.5,-11.5 parent: 31 - - uid: 8933 + - uid: 8496 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -22.5,-7.5 + pos: -11.5,-10.5 parent: 31 - uid: 9887 components: @@ -23659,18 +23891,6 @@ entities: rot: 1.5707963267948966 rad pos: -12.5,-39.5 parent: 31 - - uid: 10321 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -24.5,-8.5 - parent: 31 - - uid: 10322 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -23.5,-8.5 - parent: 31 - uid: 11039 components: - type: Transform @@ -23731,11 +23951,27 @@ entities: parent: 31 - proto: CarpetBlack entities: - - uid: 1449 + - uid: 754 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -23.5,16.5 + pos: 2.5,31.5 + parent: 31 + - uid: 984 + components: + - type: Transform + pos: 1.5,31.5 + parent: 31 + - uid: 1109 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,33.5 + parent: 31 + - uid: 2278 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,32.5 parent: 31 - uid: 4184 components: @@ -23837,17 +24073,11 @@ entities: rot: 3.141592653589793 rad pos: -5.5,-2.5 parent: 31 - - uid: 6281 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -23.5,17.5 - parent: 31 - - uid: 6309 + - uid: 6132 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -22.5,17.5 + rot: -1.5707963267948966 rad + pos: 1.5,32.5 parent: 31 - uid: 7360 components: @@ -23873,6 +24103,34 @@ entities: rot: 3.141592653589793 rad pos: -10.5,-7.5 parent: 31 + - uid: 10149 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-0.5 + parent: 31 + - uid: 10151 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-1.5 + parent: 31 + - uid: 10152 + components: + - type: Transform + pos: -30.5,-1.5 + parent: 31 + - uid: 10153 + components: + - type: Transform + pos: -30.5,-0.5 + parent: 31 + - uid: 11162 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,33.5 + parent: 31 - uid: 11464 components: - type: Transform @@ -23943,26 +24201,6 @@ entities: - type: Transform pos: 7.5,24.5 parent: 31 - - uid: 4107 - components: - - type: Transform - pos: -29.5,-1.5 - parent: 31 - - uid: 4108 - components: - - type: Transform - pos: -29.5,-2.5 - parent: 31 - - uid: 4109 - components: - - type: Transform - pos: -28.5,-1.5 - parent: 31 - - uid: 4110 - components: - - type: Transform - pos: -28.5,-2.5 - parent: 31 - uid: 4922 components: - type: Transform @@ -24019,37 +24257,35 @@ entities: rot: 3.141592653589793 rad pos: -0.5,0.5 parent: 31 - - uid: 4058 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 0.5,0.5 - parent: 31 - - uid: 4062 + - uid: 2863 components: - type: Transform - rot: 3.141592653589793 rad - pos: -0.5,1.5 + rot: -1.5707963267948966 rad + pos: -24.5,-0.5 parent: 31 - - uid: 4099 + - uid: 3782 components: - type: Transform - pos: -29.5,1.5 + rot: -1.5707963267948966 rad + pos: -24.5,0.5 parent: 31 - - uid: 4100 + - uid: 4058 components: - type: Transform - pos: -29.5,0.5 + rot: 3.141592653589793 rad + pos: 0.5,0.5 parent: 31 - - uid: 4101 + - uid: 4062 components: - type: Transform - pos: -28.5,1.5 + rot: 3.141592653589793 rad + pos: -0.5,1.5 parent: 31 - - uid: 4102 + - uid: 4072 components: - type: Transform - pos: -28.5,0.5 + rot: -1.5707963267948966 rad + pos: -24.5,-1.5 parent: 31 - uid: 8423 components: @@ -24057,56 +24293,6 @@ entities: rot: 3.141592653589793 rad pos: 0.5,1.5 parent: 31 - - uid: 8726 - components: - - type: Transform - pos: -34.5,-29.5 - parent: 31 - - uid: 8727 - components: - - type: Transform - pos: -34.5,-28.5 - parent: 31 - - uid: 8728 - components: - - type: Transform - pos: -35.5,-28.5 - parent: 31 - - uid: 8729 - components: - - type: Transform - pos: -36.5,-28.5 - parent: 31 - - uid: 8730 - components: - - type: Transform - pos: -36.5,-29.5 - parent: 31 - - uid: 8731 - components: - - type: Transform - pos: -35.5,-29.5 - parent: 31 - - uid: 8911 - components: - - type: Transform - pos: -24.5,-2.5 - parent: 31 - - uid: 8912 - components: - - type: Transform - pos: -23.5,-2.5 - parent: 31 - - uid: 8913 - components: - - type: Transform - pos: -23.5,-1.5 - parent: 31 - - uid: 8914 - components: - - type: Transform - pos: -24.5,-1.5 - parent: 31 - proto: CarpetOrange entities: - uid: 832 @@ -24154,53 +24340,49 @@ entities: - type: Transform pos: 41.5,-1.5 parent: 31 -- proto: CarpetPink +- proto: CarpetPurple entities: - - uid: 4103 - components: - - type: Transform - pos: -29.5,-4.5 - parent: 31 - - uid: 4104 + - uid: 1698 components: - type: Transform - pos: -29.5,-5.5 + rot: -1.5707963267948966 rad + pos: -4.5,-23.5 parent: 31 - - uid: 4105 + - uid: 2087 components: - type: Transform - pos: -28.5,-4.5 + rot: -1.5707963267948966 rad + pos: -3.5,-23.5 parent: 31 - - uid: 4106 + - uid: 2125 components: - type: Transform - pos: -28.5,-5.5 + rot: 1.5707963267948966 rad + pos: -21.5,-22.5 parent: 31 -- proto: CarpetPurple - entities: - - uid: 1686 + - uid: 2380 components: - type: Transform rot: 1.5707963267948966 rad - pos: 7.5,-25.5 + pos: 8.5,-25.5 parent: 31 - - uid: 1698 + - uid: 2430 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -4.5,-23.5 + rot: 1.5707963267948966 rad + pos: 8.5,-23.5 parent: 31 - - uid: 2087 + - uid: 2431 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -3.5,-23.5 + rot: 1.5707963267948966 rad + pos: 8.5,-24.5 parent: 31 - - uid: 2125 + - uid: 2434 components: - type: Transform rot: 1.5707963267948966 rad - pos: -21.5,-22.5 + pos: 8.5,-22.5 parent: 31 - uid: 4718 components: @@ -24238,12 +24420,6 @@ entities: rot: 1.5707963267948966 rad pos: 10.5,-23.5 parent: 31 - - uid: 5706 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -17.5,-22.5 - parent: 31 - uid: 5737 components: - type: Transform @@ -24292,42 +24468,12 @@ entities: rot: 1.5707963267948966 rad pos: 11.5,-23.5 parent: 31 - - uid: 6232 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,-25.5 - parent: 31 - - uid: 6299 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 7.5,-26.5 - parent: 31 - - uid: 6300 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 8.5,-26.5 - parent: 31 - uid: 6310 components: - type: Transform rot: 1.5707963267948966 rad pos: 5.5,-26.5 parent: 31 - - uid: 6318 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 7.5,-24.5 - parent: 31 - - uid: 6321 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 7.5,-23.5 - parent: 31 - uid: 6325 components: - type: Transform @@ -24354,54 +24500,12 @@ entities: rot: 1.5707963267948966 rad pos: -19.5,-22.5 parent: 31 - - uid: 7816 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -23.5,-17.5 - parent: 31 - - uid: 8474 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 5.5,-25.5 - parent: 31 - - uid: 8475 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 9.5,-26.5 - parent: 31 - - uid: 8479 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -18.5,-22.5 - parent: 31 - uid: 8502 components: - type: Transform rot: 1.5707963267948966 rad pos: -19.5,-21.5 parent: 31 - - uid: 8506 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -22.5,-17.5 - parent: 31 - - uid: 8520 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -17.5,-21.5 - parent: 31 - - uid: 8523 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -18.5,-21.5 - parent: 31 - uid: 9457 components: - type: Transform @@ -24438,30 +24542,6 @@ entities: rot: 1.5707963267948966 rad pos: 6.5,-26.5 parent: 31 - - uid: 11482 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -27.5,-21.5 - parent: 31 - - uid: 11484 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -29.5,-21.5 - parent: 31 - - uid: 11485 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -29.5,-22.5 - parent: 31 - - uid: 11486 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -27.5,-22.5 - parent: 31 - uid: 11623 components: - type: Transform @@ -24516,66 +24596,12 @@ entities: rot: -1.5707963267948966 rad pos: -26.5,-21.5 parent: 31 - - uid: 11632 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -27.5,-21.5 - parent: 31 - - uid: 11633 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -28.5,-21.5 - parent: 31 - - uid: 11634 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -29.5,-21.5 - parent: 31 - - uid: 11635 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -30.5,-21.5 - parent: 31 - - uid: 11636 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -30.5,-22.5 - parent: 31 - - uid: 11637 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -29.5,-22.5 - parent: 31 - - uid: 11638 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -28.5,-22.5 - parent: 31 - - uid: 11639 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -27.5,-22.5 - parent: 31 - uid: 11640 components: - type: Transform rot: -1.5707963267948966 rad pos: -26.5,-22.5 parent: 31 - - uid: 11641 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -23.5,-20.5 - parent: 31 - uid: 11642 components: - type: Transform @@ -24588,30 +24614,6 @@ entities: rot: -1.5707963267948966 rad pos: -23.5,-18.5 parent: 31 - - uid: 11644 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -23.5,-17.5 - parent: 31 - - uid: 11645 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -23.5,-16.5 - parent: 31 - - uid: 11646 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -22.5,-16.5 - parent: 31 - - uid: 11647 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -22.5,-17.5 - parent: 31 - uid: 11648 components: - type: Transform @@ -24624,18 +24626,6 @@ entities: rot: -1.5707963267948966 rad pos: -22.5,-19.5 parent: 31 - - uid: 11650 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -22.5,-20.5 - parent: 31 - - uid: 11654 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 7.5,-22.5 - parent: 31 - uid: 11655 components: - type: Transform @@ -24648,42 +24638,6 @@ entities: rot: 1.5707963267948966 rad pos: 6.5,-27.5 parent: 31 - - uid: 11657 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 7.5,-27.5 - parent: 31 - - uid: 11658 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 8.5,-27.5 - parent: 31 - - uid: 11659 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 9.5,-27.5 - parent: 31 - - uid: 11660 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 10.5,-27.5 - parent: 31 - - uid: 11661 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 11.5,-27.5 - parent: 31 - - uid: 11662 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 12.5,-27.5 - parent: 31 - uid: 11671 components: - type: Transform @@ -24820,6 +24774,17 @@ entities: rot: -1.5707963267948966 rad pos: -28.5,-28.5 parent: 31 + - uid: 204 + components: + - type: Transform + pos: -21.5,-29.5 + parent: 31 + - uid: 272 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,16.5 + parent: 31 - uid: 402 components: - type: Transform @@ -24846,20 +24811,15 @@ entities: - type: Transform pos: -1.5,21.5 parent: 31 - - uid: 705 - components: - - type: Transform - pos: -9.5,-10.5 - parent: 31 - - uid: 710 + - uid: 626 components: - type: Transform - pos: -7.5,-10.5 + pos: -4.5,-9.5 parent: 31 - - uid: 713 + - uid: 705 components: - type: Transform - pos: -4.5,-10.5 + pos: -9.5,-10.5 parent: 31 - uid: 722 components: @@ -24878,6 +24838,12 @@ entities: rot: -1.5707963267948966 rad pos: -28.5,-12.5 parent: 31 + - uid: 792 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,14.5 + parent: 31 - uid: 808 components: - type: Transform @@ -24941,10 +24907,11 @@ entities: - type: Transform pos: -0.5,21.5 parent: 31 - - uid: 1388 + - uid: 1248 components: - type: Transform - pos: 32.5,27.5 + rot: -1.5707963267948966 rad + pos: -18.5,17.5 parent: 31 - uid: 1427 components: @@ -24956,31 +24923,16 @@ entities: - type: Transform pos: -0.5,-10.5 parent: 31 - - uid: 1437 - components: - - type: Transform - pos: -8.5,-10.5 - parent: 31 - - uid: 1438 - components: - - type: Transform - pos: -5.5,-10.5 - parent: 31 - - uid: 1440 - components: - - type: Transform - pos: -3.5,-10.5 - parent: 31 - uid: 1483 components: - type: Transform rot: 1.5707963267948966 rad pos: 48.5,7.5 parent: 31 - - uid: 1492 + - uid: 1524 components: - type: Transform - pos: 6.5,14.5 + pos: -36.5,-31.5 parent: 31 - uid: 1552 components: @@ -25007,6 +24959,26 @@ entities: - type: Transform pos: 27.5,-12.5 parent: 31 + - uid: 2031 + components: + - type: Transform + pos: -55.5,-28.5 + parent: 31 + - uid: 2041 + components: + - type: Transform + pos: 7.5,13.5 + parent: 31 + - uid: 2047 + components: + - type: Transform + pos: 6.5,13.5 + parent: 31 + - uid: 2051 + components: + - type: Transform + pos: 12.5,19.5 + parent: 31 - uid: 2146 components: - type: Transform @@ -25022,21 +24994,54 @@ entities: - type: Transform pos: 12.5,18.5 parent: 31 + - uid: 2275 + components: + - type: Transform + pos: -2.5,-9.5 + parent: 31 + - uid: 2285 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,14.5 + parent: 31 - uid: 2329 components: - type: Transform pos: 27.5,-13.5 parent: 31 + - uid: 2491 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,14.5 + parent: 31 - uid: 2866 components: - type: Transform pos: 22.5,-19.5 parent: 31 + - uid: 2869 + components: + - type: Transform + pos: -9.5,-9.5 + parent: 31 - uid: 3110 components: - type: Transform pos: 59.5,12.5 parent: 31 + - uid: 3140 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,14.5 + parent: 31 + - uid: 3152 + components: + - type: Transform + pos: -7.5,-9.5 + parent: 31 - uid: 3279 components: - type: Transform @@ -25052,21 +25057,39 @@ entities: - type: Transform pos: -19.5,-30.5 parent: 31 - - uid: 3656 + - uid: 3427 components: - type: Transform - pos: 55.5,7.5 + rot: -1.5707963267948966 rad + pos: -16.5,14.5 parent: 31 - - uid: 3725 + - uid: 3472 components: - type: Transform - rot: 3.141592653589793 rad - pos: 8.5,-38.5 + rot: -1.5707963267948966 rad + pos: -17.5,14.5 parent: 31 - - uid: 3750 + - uid: 3532 components: - type: Transform - pos: -37.5,37.5 + rot: -1.5707963267948966 rad + pos: -33.5,-6.5 + parent: 31 + - uid: 3656 + components: + - type: Transform + pos: 55.5,7.5 + parent: 31 + - uid: 3725 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,-38.5 + parent: 31 + - uid: 3750 + components: + - type: Transform + pos: -37.5,37.5 parent: 31 - uid: 3751 components: @@ -25108,11 +25131,38 @@ entities: - type: Transform pos: -36.5,33.5 parent: 31 + - uid: 3928 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-32.5 + parent: 31 - uid: 3958 components: - type: Transform pos: 16.5,20.5 parent: 31 + - uid: 4065 + components: + - type: Transform + pos: -32.5,-47.5 + parent: 31 + - uid: 4100 + components: + - type: Transform + pos: -35.5,-31.5 + parent: 31 + - uid: 4191 + components: + - type: Transform + pos: 9.5,14.5 + parent: 31 + - uid: 4209 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -18.5,15.5 + parent: 31 - uid: 4218 components: - type: Transform @@ -25179,6 +25229,11 @@ entities: - type: Transform pos: 47.5,-9.5 parent: 31 + - uid: 4532 + components: + - type: Transform + pos: 9.5,13.5 + parent: 31 - uid: 4537 components: - type: Transform @@ -25189,6 +25244,16 @@ entities: - type: Transform pos: 30.5,-31.5 parent: 31 + - uid: 4597 + components: + - type: Transform + pos: 13.5,21.5 + parent: 31 + - uid: 4619 + components: + - type: Transform + pos: 8.5,13.5 + parent: 31 - uid: 5017 components: - type: Transform @@ -25461,11 +25526,6 @@ entities: rot: -1.5707963267948966 rad pos: -28.5,-20.5 parent: 31 - - uid: 5940 - components: - - type: Transform - pos: 31.5,26.5 - parent: 31 - uid: 6020 components: - type: Transform @@ -25502,11 +25562,6 @@ entities: - type: Transform pos: 34.5,-41.5 parent: 31 - - uid: 6523 - components: - - type: Transform - pos: 31.5,25.5 - parent: 31 - uid: 6609 components: - type: Transform @@ -25592,6 +25647,12 @@ entities: - type: Transform pos: 55.5,-10.5 parent: 31 + - uid: 7122 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,14.5 + parent: 31 - uid: 7163 components: - type: Transform @@ -25608,11 +25669,6 @@ entities: - type: Transform pos: 12.5,15.5 parent: 31 - - uid: 7235 - components: - - type: Transform - pos: 7.5,14.5 - parent: 31 - uid: 7236 components: - type: Transform @@ -25623,26 +25679,11 @@ entities: - type: Transform pos: 10.5,14.5 parent: 31 - - uid: 7238 - components: - - type: Transform - pos: 8.5,14.5 - parent: 31 - uid: 7239 components: - type: Transform pos: 12.5,16.5 parent: 31 - - uid: 7240 - components: - - type: Transform - pos: 9.5,14.5 - parent: 31 - - uid: 7241 - components: - - type: Transform - pos: 12.5,19.5 - parent: 31 - uid: 7494 components: - type: Transform @@ -25653,26 +25694,11 @@ entities: - type: Transform pos: 14.5,-31.5 parent: 31 - - uid: 7499 - components: - - type: Transform - pos: -9.5,-12.5 - parent: 31 - uid: 7500 components: - type: Transform pos: -9.5,-11.5 parent: 31 - - uid: 7510 - components: - - type: Transform - pos: -26.5,-11.5 - parent: 31 - - uid: 7511 - components: - - type: Transform - pos: -27.5,-11.5 - parent: 31 - uid: 7512 components: - type: Transform @@ -25733,11 +25759,6 @@ entities: - type: Transform pos: -33.5,-7.5 parent: 31 - - uid: 7526 - components: - - type: Transform - pos: -33.5,-6.5 - parent: 31 - uid: 7527 components: - type: Transform @@ -25899,11 +25920,6 @@ entities: - type: Transform pos: -18.5,20.5 parent: 31 - - uid: 7667 - components: - - type: Transform - pos: -18.5,21.5 - parent: 31 - uid: 7668 components: - type: Transform @@ -26292,11 +26308,10 @@ entities: - type: Transform pos: -32.5,-34.5 parent: 31 - - uid: 8751 + - uid: 8724 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -27.5,-28.5 + pos: -5.5,-9.5 parent: 31 - uid: 8754 components: @@ -26320,10 +26335,10 @@ entities: - type: Transform pos: -30.5,-26.5 parent: 31 - - uid: 9010 + - uid: 9036 components: - type: Transform - pos: -29.5,-27.5 + pos: -3.5,-9.5 parent: 31 - uid: 9060 components: @@ -26340,15 +26355,10 @@ entities: - type: Transform pos: 53.5,7.5 parent: 31 - - uid: 9088 - components: - - type: Transform - pos: -29.5,-28.5 - parent: 31 - - uid: 9252 + - uid: 9114 components: - type: Transform - pos: -29.5,-29.5 + pos: -8.5,-9.5 parent: 31 - uid: 9264 components: @@ -26549,6 +26559,11 @@ entities: rot: -1.5707963267948966 rad pos: -28.5,-16.5 parent: 31 + - uid: 10172 + components: + - type: Transform + pos: 13.5,19.5 + parent: 31 - uid: 10231 components: - type: Transform @@ -26609,11 +26624,6 @@ entities: - type: Transform pos: 45.5,-7.5 parent: 31 - - uid: 10711 - components: - - type: Transform - pos: 31.5,27.5 - parent: 31 - uid: 10799 components: - type: Transform @@ -26985,11 +26995,6 @@ entities: - type: Transform pos: 73.5,-3.5 parent: 31 - - uid: 12016 - components: - - type: Transform - pos: 72.5,-4.5 - parent: 31 - uid: 12017 components: - type: Transform @@ -27190,6 +27195,16 @@ entities: - type: Transform pos: 57.5,23.5 parent: 31 + - uid: 12680 + components: + - type: Transform + pos: -19.5,-29.5 + parent: 31 + - uid: 12681 + components: + - type: Transform + pos: -20.5,-29.5 + parent: 31 - uid: 12714 components: - type: Transform @@ -27287,23 +27302,11 @@ entities: rot: 3.141592653589793 rad pos: 45.5,-3.5 parent: 31 - - uid: 2003 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -5.5,14.5 - parent: 31 - - uid: 2047 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -5.5,13.5 - parent: 31 - - uid: 2051 + - uid: 2722 components: - type: Transform rot: 1.5707963267948966 rad - pos: -5.5,12.5 + pos: -6.5,15.5 parent: 31 - uid: 3379 components: @@ -27311,18 +27314,18 @@ entities: rot: 1.5707963267948966 rad pos: 17.5,-13.5 parent: 31 - - uid: 3908 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 50.5,-30.5 - parent: 31 - uid: 3961 components: - type: Transform rot: 1.5707963267948966 rad pos: 17.5,-12.5 parent: 31 + - uid: 4071 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,-29.5 + parent: 31 - uid: 4192 components: - type: Transform @@ -27341,28 +27344,17 @@ entities: rot: -1.5707963267948966 rad pos: 35.5,-12.5 parent: 31 - - uid: 4709 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -17.5,-17.5 - parent: 31 - - uid: 4714 - components: - - type: Transform - pos: -24.5,-4.5 - parent: 31 - - uid: 4715 + - uid: 4634 components: - type: Transform rot: 3.141592653589793 rad - pos: -23.5,-7.5 + pos: 31.5,-19.5 parent: 31 - - uid: 5004 + - uid: 4709 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -22.5,-2.5 + rot: 1.5707963267948966 rad + pos: -17.5,-17.5 parent: 31 - uid: 6258 components: @@ -27408,28 +27400,12 @@ entities: - type: Transform pos: 8.5,1.5 parent: 31 - - uid: 7341 - components: - - type: Transform - pos: -18.5,-4.5 - parent: 31 - - uid: 7365 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 48.5,-30.5 - parent: 31 - uid: 7627 components: - type: Transform rot: -1.5707963267948966 rad pos: -28.5,17.5 parent: 31 - - uid: 7646 - components: - - type: Transform - pos: -28.5,-7.5 - parent: 31 - uid: 7774 components: - type: Transform @@ -27459,48 +27435,17 @@ entities: - type: Transform pos: 27.5,6.5 parent: 31 - - uid: 8283 - components: - - type: Transform - pos: 50.5,-18.5 - parent: 31 - - uid: 8284 - components: - - type: Transform - pos: 48.5,-18.5 - parent: 31 - - uid: 8285 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 55.5,-23.5 - parent: 31 - - uid: 8286 + - uid: 8392 components: - type: Transform rot: -1.5707963267948966 rad - pos: 55.5,-25.5 - parent: 31 - - uid: 8290 - components: - - type: Transform - pos: 37.5,-23.5 - parent: 31 - - uid: 8291 - components: - - type: Transform - pos: 35.5,-23.5 - parent: 31 - - uid: 8299 - components: - - type: Transform - pos: 36.5,-23.5 + pos: -4.5,14.5 parent: 31 - - uid: 8812 + - uid: 8520 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -1.5,29.5 + rot: 1.5707963267948966 rad + pos: -6.5,13.5 parent: 31 - uid: 8869 components: @@ -27633,6 +27578,14 @@ entities: rot: 3.141592653589793 rad pos: 46.5,-3.5 parent: 31 +- proto: ChairBarber + entities: + - uid: 650 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-12.5 + parent: 31 - proto: ChairCursed entities: - uid: 11691 @@ -27654,18 +27607,54 @@ entities: rot: 3.141592653589793 rad pos: -9.5,-19.5 parent: 31 + - uid: 1331 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.3603764,-11.375768 + parent: 31 - uid: 2309 components: - type: Transform rot: 3.141592653589793 rad pos: -8.5,-19.5 parent: 31 + - uid: 4384 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.403637,-10.42971 + parent: 31 + - uid: 5214 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.122922,-10.39846 + parent: 31 - uid: 7079 components: - type: Transform rot: 1.5707963267948966 rad pos: 27.5,9.5 parent: 31 + - uid: 7344 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -13.060375,-11.21096 + parent: 31 + - uid: 7404 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -12.247271,-11.070335 + parent: 31 + - uid: 7499 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 54.76348,-23.148035 + parent: 31 - uid: 10755 components: - type: Transform @@ -27693,6 +27682,18 @@ entities: - type: Transform pos: -41.5,-9.5 parent: 31 +- proto: ChairFoldingSpawnFolded + entities: + - uid: 7037 + components: + - type: Transform + pos: -12.43491,-9.039085 + parent: 31 + - uid: 8475 + components: + - type: Transform + pos: -12.450546,-9.476585 + parent: 31 - proto: ChairOfficeDark entities: - uid: 953 @@ -27724,6 +27725,12 @@ entities: rot: 4.71238902409608 rad pos: -0.5,24.5 parent: 31 + - uid: 1281 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 1.2550097,34.693558 + parent: 31 - uid: 2211 components: - type: Transform @@ -27736,16 +27743,23 @@ entities: rot: 3.141592653589793 rad pos: -16.5,-26.5 parent: 31 - - uid: 2777 + - uid: 2533 components: - type: Transform - pos: -29.5,-1.5 + rot: 3.141592653589793 rad + pos: 3.5066853,34.521683 parent: 31 - - uid: 2815 + - uid: 2535 components: - type: Transform rot: 3.141592653589793 rad - pos: -30.5,0.5 + pos: 2.459031,34.724808 + parent: 31 + - uid: 2723 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.45630848,13.598008 parent: 31 - uid: 3154 components: @@ -27769,29 +27783,12 @@ entities: rot: 3.141592653589793 rad pos: -1.5,23.5 parent: 31 - - uid: 4150 - components: - - type: Transform - pos: -10.5,8.5 - parent: 31 - uid: 4179 components: - type: Transform rot: 3.141592653589793 rad pos: 23.5,12.5 parent: 31 - - uid: 4186 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 1.5,31.5 - parent: 31 - - uid: 4191 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 6.5,31.5 - parent: 31 - uid: 4268 components: - type: Transform @@ -27809,6 +27806,12 @@ entities: rot: 3.141592653589793 rad pos: 9.5,-29.5 parent: 31 + - uid: 5870 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 3.569232,32.631058 + parent: 31 - uid: 6017 components: - type: Transform @@ -27843,47 +27846,6 @@ entities: rot: 1.5707963267948966 rad pos: -5.5,-31.5 parent: 31 - - uid: 8695 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -36.5,-25.5 - parent: 31 - - uid: 8701 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -34.5,-25.5 - parent: 31 - - uid: 8702 - components: - - type: Transform - pos: -35.5,-23.5 - parent: 31 - - uid: 8706 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -34.5,-24.5 - parent: 31 - - uid: 8707 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -36.5,-24.5 - parent: 31 - - uid: 8769 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -3.5,13.5 - parent: 31 - - uid: 8811 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 8.5,29.5 - parent: 31 - uid: 8865 components: - type: Transform @@ -27896,11 +27858,6 @@ entities: rot: 3.141592653589793 rad pos: 41.5,3.5 parent: 31 - - uid: 9002 - components: - - type: Transform - pos: -20.5,-1.5 - parent: 31 - uid: 9023 components: - type: Transform @@ -27922,6 +27879,23 @@ entities: - type: Transform pos: 49.5,-4.5 parent: 31 + - uid: 10715 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.41063166,34.756058 + parent: 31 + - uid: 11164 + components: + - type: Transform + pos: 0.4262681,32.677933 + parent: 31 + - uid: 11659 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.487721,10.757132 + parent: 31 - uid: 11711 components: - type: Transform @@ -28022,14 +27996,6 @@ entities: rot: 1.5707963267948966 rad pos: -5.5,-20.5 parent: 31 -- proto: ChairPilotSeat - entities: - - uid: 1039 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 3.5,31.5 - parent: 31 - proto: ChairRitual entities: - uid: 9690 @@ -28075,6 +28041,12 @@ entities: - type: Transform pos: 11.5,-22.5 parent: 31 + - uid: 2358 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.318367,0.5019118 + parent: 31 - uid: 2391 components: - type: Transform @@ -28092,12 +28064,30 @@ entities: rot: 3.141592653589793 rad pos: 11.5,-25.5 parent: 31 + - uid: 2854 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.318367,-1.4199631 + parent: 31 - uid: 3153 components: - type: Transform rot: 3.141592653589793 rad pos: 10.5,-25.5 parent: 31 + - uid: 4928 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.819687,-11.769954 + parent: 31 + - uid: 4957 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.037855,-11.004329 + parent: 31 - uid: 6600 components: - type: Transform @@ -28186,6 +28176,14 @@ entities: rot: -1.5707963267948966 rad pos: -5.749122,-0.57288134 parent: 31 +- proto: CheapLighter + entities: + - uid: 11191 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.481464,-25.364504 + parent: 31 - proto: CheapRollerBed entities: - uid: 7252 @@ -28249,6 +28247,13 @@ entities: rot: 3.141592653589793 rad pos: 4.515862,-26.37586 parent: 31 +- proto: ChiliSeeds + entities: + - uid: 10402 + components: + - type: Transform + pos: -17.215282,1.4631176 + parent: 31 - proto: Cigar entities: - uid: 12197 @@ -28344,14 +28349,26 @@ entities: parent: 31 - proto: CleanerDispenser entities: - - uid: 554 + - uid: 8706 components: - type: Transform - rot: 3.141592653589793 rad - pos: -18.5,-13.5 + rot: -1.5707963267948966 rad + pos: -19.5,-7.5 parent: 31 - proto: ClockworkGrilleBroken entities: + - uid: 8801 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,17.5 + parent: 31 + - uid: 9834 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -23.5,17.5 + parent: 31 - uid: 10513 components: - type: Transform @@ -28367,463 +28384,445 @@ entities: parent: 31 - proto: ClosetChefFilled entities: - - uid: 799 + - uid: 8732 components: - type: Transform - pos: -12.5,1.5 + pos: -13.5,-3.5 parent: 31 - proto: ClosetEmergencyFilledRandom entities: - - uid: 759 + - uid: 2061 components: - type: Transform - pos: 5.5,-21.5 + pos: -36.5,-32.5 parent: 31 - - type: EntityStorage - air: - volume: 200 - immutable: False - temperature: 293.14673 - moles: - - 1.7459903 - - 6.568249 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - uid: 761 + - uid: 4102 components: - type: Transform - pos: -23.5,11.5 + pos: 6.5,14.5 parent: 31 - - uid: 828 + - uid: 10754 components: - type: Transform - pos: 54.5,-5.5 + pos: -53.5,-9.5 parent: 31 - - uid: 2181 +- proto: ClosetFireFilled + entities: + - uid: 10753 components: - type: Transform - pos: 15.5,14.5 + pos: -53.5,-10.5 parent: 31 - - uid: 3736 +- proto: ClosetL3VirologyFilled + entities: + - uid: 6695 components: - type: Transform - pos: -0.5,-17.5 + pos: 14.5,-7.5 parent: 31 - - uid: 4381 +- proto: ClosetMaintenanceFilledRandom + entities: + - uid: 6892 components: - type: Transform - pos: 33.5,-10.5 + pos: -17.5,13.5 parent: 31 - - uid: 6907 +- proto: ClosetWallEmergency + entities: + - uid: 8729 components: - type: Transform - pos: 30.5,14.5 + rot: 1.5707963267948966 rad + pos: -27.5,-10.5 parent: 31 - - uid: 7161 + - uid: 9865 components: - type: Transform - pos: 23.5,7.5 + rot: -1.5707963267948966 rad + pos: -34.5,0.5 parent: 31 - - uid: 7497 +- proto: ClosetWallEmergencyFilledRandom + entities: + - uid: 1388 components: - type: Transform - pos: 14.5,-29.5 + rot: -1.5707963267948966 rad + pos: 6.5,-21.5 parent: 31 - - uid: 7791 + - uid: 1393 components: - type: Transform - pos: -20.5,22.5 + rot: -1.5707963267948966 rad + pos: 17.5,15.5 parent: 31 - - uid: 8805 + - uid: 1394 components: - type: Transform - pos: 7.5,28.5 + rot: 3.141592653589793 rad + pos: -0.5,-18.5 parent: 31 - - uid: 9323 + - uid: 1395 components: - type: Transform - pos: -34.5,7.5 + rot: 3.141592653589793 rad + pos: 33.5,-11.5 parent: 31 - - uid: 9447 + - uid: 1397 components: - type: Transform - pos: -22.5,-31.5 + rot: -1.5707963267948966 rad + pos: 24.5,7.5 parent: 31 - - uid: 9740 + - uid: 1398 components: - type: Transform - pos: 15.5,-21.5 + rot: 3.141592653589793 rad + pos: 14.5,-30.5 parent: 31 - - uid: 9790 + - uid: 1400 components: - type: Transform - pos: -18.5,-36.5 + rot: 3.141592653589793 rad + pos: 1.5,27.5 parent: 31 - - uid: 9791 + - uid: 1402 components: - type: Transform - pos: 9.5,-32.5 + pos: -22.5,-30.5 parent: 31 - - uid: 10645 + - uid: 1404 components: - type: Transform - pos: 39.5,-14.5 + rot: -1.5707963267948966 rad + pos: -17.5,-36.5 parent: 31 - - uid: 10754 + - uid: 1405 components: - type: Transform - pos: -53.5,-9.5 + rot: -1.5707963267948966 rad + pos: -19.5,22.5 parent: 31 -- proto: ClosetEmergencyN2FilledRandom - entities: - - uid: 11448 + - uid: 1406 components: - type: Transform - pos: 15.5,-23.5 + rot: -1.5707963267948966 rad + pos: 40.5,-14.5 parent: 31 - - uid: 11449 + - uid: 1520 components: - type: Transform - pos: 42.5,-13.5 + rot: -1.5707963267948966 rad + pos: 16.5,-21.5 parent: 31 - - uid: 11450 + - uid: 1843 components: - type: Transform - pos: -20.5,12.5 + rot: -1.5707963267948966 rad + pos: 10.5,-32.5 parent: 31 -- proto: ClosetFireFilled - entities: - - uid: 3507 + - uid: 1881 components: - type: Transform - pos: 30.5,13.5 + rot: -1.5707963267948966 rad + pos: -10.5,-12.5 parent: 31 - - uid: 3922 + - uid: 2679 components: - type: Transform - pos: -1.5,-17.5 + rot: -1.5707963267948966 rad + pos: -3.5,27.5 parent: 31 - - uid: 4237 + - uid: 6607 components: - type: Transform - pos: 54.5,-3.5 + rot: 1.5707963267948966 rad + pos: 29.5,14.5 parent: 31 - - uid: 7792 + - uid: 7301 components: - type: Transform - pos: -20.5,23.5 + pos: -5.5,-24.5 parent: 31 - - uid: 7912 + - uid: 7460 components: - type: Transform - pos: 23.5,0.5 + pos: -31.5,6.5 parent: 31 - - uid: 8804 + - uid: 7497 components: - type: Transform - pos: 8.5,28.5 + pos: -23.5,12.5 parent: 31 - - uid: 9739 + - uid: 9132 components: - type: Transform - pos: 15.5,-22.5 + rot: 3.141592653589793 rad + pos: 54.5,-6.5 parent: 31 - - uid: 9792 + - uid: 9868 components: - type: Transform - pos: -6.5,-37.5 + pos: 28.5,7.5 parent: 31 - - uid: 10132 + - uid: 12529 components: - type: Transform - pos: 16.5,14.5 + pos: -8.5,-8.5 parent: 31 - - uid: 10753 +- proto: ClosetWallFireFilledRandom + entities: + - uid: 339 components: - type: Transform - pos: -53.5,-10.5 + rot: -1.5707963267948966 rad + pos: -33.5,8.5 parent: 31 -- proto: ClosetJanitorFilled - entities: - - uid: 2189 + - uid: 1403 components: - type: Transform - pos: -17.5,-10.5 + rot: -1.5707963267948966 rad + pos: 16.5,-22.5 parent: 31 -- proto: ClosetL3VirologyFilled - entities: - - uid: 6695 + - uid: 1424 components: - type: Transform - pos: 14.5,-7.5 + rot: 3.141592653589793 rad + pos: -2.5,-18.5 parent: 31 -- proto: ClosetMaintenanceFilledRandom - entities: - - uid: 550 + - uid: 1443 components: - type: Transform - pos: 46.5,-0.5 + rot: -1.5707963267948966 rad + pos: -19.5,23.5 parent: 31 - - uid: 1412 + - uid: 1449 components: - type: Transform - pos: -7.5,-8.5 + rot: -1.5707963267948966 rad + pos: 24.5,0.5 parent: 31 - - type: EntityStorage - air: - volume: 200 - immutable: False - temperature: 293.14963 - moles: - - 1.7459903 - - 6.568249 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - uid: 7058 + - uid: 1538 components: - type: Transform - pos: 29.5,-9.5 + pos: -6.5,-36.5 parent: 31 - - uid: 7518 + - uid: 1577 components: - type: Transform - pos: -11.5,-12.5 + rot: -1.5707963267948966 rad + pos: 17.5,14.5 parent: 31 - - uid: 7789 + - uid: 1883 components: - type: Transform - pos: -19.5,12.5 + rot: 3.141592653589793 rad + pos: 52.5,0.5 parent: 31 - - uid: 7911 + - uid: 3135 components: - type: Transform - pos: 23.5,1.5 + rot: -1.5707963267948966 rad + pos: 55.5,-5.5 parent: 31 - - uid: 7948 + - uid: 7105 components: - type: Transform - pos: 24.5,-25.5 + rot: -1.5707963267948966 rad + pos: -34.5,-0.5 parent: 31 - - uid: 9465 + - uid: 7107 components: - type: Transform - pos: -9.5,-39.5 + pos: 30.5,15.5 parent: 31 - - uid: 9570 + - uid: 7302 components: - type: Transform - pos: -27.5,13.5 + pos: -6.5,-24.5 parent: 31 - - uid: 9571 + - uid: 11127 components: - type: Transform - pos: -5.5,20.5 + pos: 0.5,30.5 parent: 31 - - uid: 9572 +- proto: ClosetWallMaintenanceFilledRandom + entities: + - uid: 1399 components: - type: Transform - pos: 27.5,-18.5 + rot: 3.141592653589793 rad + pos: -31.5,8.5 parent: 31 - - uid: 9675 + - uid: 1410 components: - type: Transform - pos: -1.5,-41.5 + pos: 42.5,-11.5 parent: 31 - - uid: 9793 + - uid: 1631 components: - type: Transform - pos: 5.5,-37.5 + rot: -1.5707963267948966 rad + pos: 47.5,-0.5 parent: 31 - - uid: 9794 + - uid: 1641 components: - type: Transform - pos: -11.5,-36.5 + pos: -7.5,-7.5 parent: 31 - - uid: 9862 + - uid: 1657 components: - type: Transform - pos: 11.5,-19.5 + pos: 29.5,-8.5 parent: 31 - - uid: 10221 + - uid: 1672 components: - type: Transform - pos: -30.5,-13.5 + rot: -1.5707963267948966 rad + pos: 24.5,1.5 parent: 31 - - uid: 10646 + - uid: 1673 components: - type: Transform - pos: 45.5,-13.5 + rot: -1.5707963267948966 rad + pos: 25.5,-24.5 parent: 31 - - uid: 11123 + - uid: 1674 components: - type: Transform - pos: -4.5,29.5 + rot: 1.5707963267948966 rad + pos: -10.5,-39.5 parent: 31 - - uid: 11229 + - uid: 1694 components: - type: Transform - pos: -27.5,-15.5 + pos: -28.5,15.5 parent: 31 - - type: Fixtures - fixtures: - fix1: - shape: !type:PolygonShape - radius: 0.01 - vertices: - - -0.25,-0.48 - - 0.25,-0.48 - - 0.25,0.48 - - -0.25,0.48 - mask: - - Impassable - - TableLayer - - LowImpassable - layer: - - BulletImpassable - - Opaque - density: 75 - hard: True - restitution: 0 - friction: 0.4 - - type: EntityStorage - open: True - removedMasks: 20 - - type: PlaceableSurface - isPlaceable: True - - uid: 11244 + - uid: 1840 components: - type: Transform - pos: -31.5,9.5 + rot: 1.5707963267948966 rad + pos: -6.5,20.5 parent: 31 -- proto: ClosetRadiationSuitFilled - entities: - - uid: 5127 + - uid: 1841 components: - type: Transform - pos: 52.5,1.5 + rot: 3.141592653589793 rad + pos: 27.5,-19.5 parent: 31 - - uid: 7068 + - uid: 1845 components: - type: Transform - pos: 53.5,1.5 + rot: 1.5707963267948966 rad + pos: 4.5,-37.5 parent: 31 - - uid: 7571 + - uid: 1874 components: - type: Transform - pos: -11.5,-11.5 + pos: -1.5,-40.5 parent: 31 - - uid: 8159 + - uid: 1875 components: - type: Transform - pos: -7.5,-25.5 + pos: 11.5,-18.5 parent: 31 - - uid: 12046 + - uid: 1876 components: - type: Transform - pos: 59.5,6.5 + rot: 3.141592653589793 rad + pos: -11.5,-37.5 parent: 31 -- proto: ClosetSteelBase - entities: - - uid: 7853 + - uid: 1877 components: - type: Transform - pos: 27.5,-22.5 + rot: -1.5707963267948966 rad + pos: 46.5,-13.5 parent: 31 - - type: EntityStorage - air: - volume: 200 - immutable: False - temperature: 293.1496 - moles: - - 1.7459903 - - 6.568249 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - type: ContainerContainer - containers: - entity_storage: !type:Container - showEnts: False - occludes: True - ents: - - 7856 - - 7859 - - 7854 - - 7857 - - 7855 - paper_label: !type:ContainerSlot - showEnts: False - occludes: True - ent: null -- proto: ClosetWallEmergency - entities: - - uid: 9865 + - uid: 1880 components: - type: Transform rot: -1.5707963267948966 rad - pos: -34.5,0.5 + pos: -26.5,-15.5 parent: 31 -- proto: ClosetWallEmergencyFilledRandom - entities: - - uid: 7301 + - uid: 1887 components: - type: Transform - pos: -5.5,-24.5 + pos: 27.5,-21.5 parent: 31 - - uid: 9868 + - uid: 7297 components: - type: Transform - pos: 28.5,7.5 + pos: -30.5,-12.5 parent: 31 -- proto: ClosetWallFireFilledRandom + - uid: 9864 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-3.5 + parent: 31 +- proto: ClosetWallMixed entities: - - uid: 339 + - uid: 10002 components: - type: Transform rot: -1.5707963267948966 rad - pos: -33.5,8.5 + pos: -28.5,-5.5 parent: 31 - - uid: 7105 +- proto: ClosetWallOrange + entities: + - uid: 274 components: - type: Transform rot: -1.5707963267948966 rad - pos: -34.5,-0.5 + pos: -6.5,7.5 parent: 31 - - uid: 7302 + - uid: 1274 components: - type: Transform - pos: -6.5,-24.5 + rot: 1.5707963267948966 rad + pos: -14.5,7.5 parent: 31 -- proto: ClosetWallMaintenanceFilledRandom +- proto: ClosetWallRadiationFilled entities: - - uid: 9864 + - uid: 723 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,0.5 + parent: 31 + - uid: 1061 + components: + - type: Transform + pos: 60.5,8.5 + parent: 31 + - uid: 1882 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 51.5,0.5 + parent: 31 + - uid: 1886 + components: + - type: Transform + pos: 59.5,8.5 + parent: 31 + - uid: 2467 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -34.5,-28.5 + parent: 31 + - uid: 3245 components: - type: Transform rot: -1.5707963267948966 rad - pos: -31.5,-3.5 + pos: -4.5,-26.5 + parent: 31 +- proto: ClosetWallWhite + entities: + - uid: 1890 + components: + - type: Transform + pos: 15.5,-12.5 parent: 31 - proto: ClothingBeltChampion entities: @@ -28844,6 +28843,11 @@ entities: parent: 31 - proto: ClothingBeltUtilityFilled entities: + - uid: 4494 + components: + - type: Transform + pos: 48.497185,-30.365786 + parent: 31 - uid: 7482 components: - type: Transform @@ -28858,12 +28862,6 @@ entities: parent: 31 - proto: ClothingEyesGlasses entities: - - uid: 7107 - components: - - type: Transform - parent: 7110 - - type: Physics - canCollide: False - uid: 11264 components: - type: Transform @@ -28879,26 +28877,26 @@ entities: - type: Transform pos: -9.162952,-18.20927 parent: 31 -- proto: ClothingEyesGlassesMeson +- proto: ClothingEyesGlassesJensen entities: - - uid: 8213 + - uid: 8722 components: - type: Transform - pos: 35.614624,-3.264578 + pos: -9.60229,-7.281926 parent: 31 -- proto: ClothingEyesGlassesSunglasses +- proto: ClothingEyesGlassesMeson entities: - - uid: 4235 + - uid: 8213 components: - type: Transform - pos: -10.276402,-6.3744125 + pos: 35.614624,-3.264578 parent: 31 - proto: ClothingEyesHudDiagnostic entities: - - uid: 7580 + - uid: 8705 components: - type: Transform - pos: 32.538,-3.0937886 + pos: 32.395454,-3.0351868 parent: 31 - proto: ClothingEyesHudMedical entities: @@ -28907,12 +28905,12 @@ entities: - type: Transform pos: 16.646324,-6.5235434 parent: 31 -- proto: ClothingHandsGlovesColorBlack +- proto: ClothingHandsGlovesColorRed entities: - - uid: 11225 + - uid: 12229 components: - type: Transform - pos: -29.520256,-9.469171 + pos: -28.53424,-7.1807466 parent: 31 - proto: ClothingHandsGlovesColorYellow entities: @@ -28921,11 +28919,6 @@ entities: - type: Transform pos: -29.506107,7.62424 parent: 31 - - uid: 7572 - components: - - type: Transform - pos: -11.565304,-10.576338 - parent: 31 - uid: 7581 components: - type: Transform @@ -28938,6 +28931,13 @@ entities: - type: Transform pos: 51.410316,17.602825 parent: 31 +- proto: ClothingHandsGlovesFingerlessInsulated + entities: + - uid: 108 + components: + - type: Transform + pos: -20.576214,18.40477 + parent: 31 - proto: ClothingHandsGlovesLatex entities: - uid: 2212 @@ -28945,12 +28945,6 @@ entities: - type: Transform pos: 19.45916,-20.403913 parent: 31 - - uid: 7102 - components: - - type: Transform - parent: 7110 - - type: Physics - canCollide: False - proto: ClothingHandsGlovesLeather entities: - uid: 9670 @@ -28958,13 +28952,6 @@ entities: - type: Transform pos: -4.544421,-41.335396 parent: 31 -- proto: ClothingHandsGlovesMercFingerless - entities: - - uid: 988 - components: - - type: Transform - pos: 30.104523,-19.311977 - parent: 31 - proto: ClothingHandsGlovesNitrile entities: - uid: 10029 @@ -28979,13 +28966,6 @@ entities: - type: Transform pos: 26.502825,-1.4970446 parent: 31 -- proto: ClothingHeadHatAnimalHeadslime - entities: - - uid: 3367 - components: - - type: Transform - pos: -4.5089555,-12.629585 - parent: 31 - proto: ClothingHeadHatBeret entities: - uid: 819 @@ -28993,13 +28973,6 @@ entities: - type: Transform pos: -22.754051,9.462572 parent: 31 -- proto: ClothingHeadHatBeretBrigmedic - entities: - - uid: 6607 - components: - - type: Transform - pos: 14.371354,-5.1023016 - parent: 31 - proto: ClothingHeadHatBowlerHat entities: - uid: 9261 @@ -29007,27 +28980,6 @@ entities: - type: Transform pos: 0.36587167,-19.353008 parent: 31 -- proto: ClothingHeadHatFedoraBrown - entities: - - uid: 7484 - components: - - type: Transform - pos: -21.550486,17.73303 - parent: 31 - - uid: 7857 - components: - - type: Transform - parent: 7853 - - type: Physics - canCollide: False - - type: InsideEntityStorage -- proto: ClothingHeadHatFlowerWreath - entities: - - uid: 3235 - components: - - type: Transform - pos: 49.449142,-25.427004 - parent: 31 - proto: ClothingHeadHatHardhatOrange entities: - uid: 10803 @@ -29035,31 +28987,19 @@ entities: - type: Transform pos: 23.016964,-16.05082 parent: 31 -- proto: ClothingHeadHatPirate - entities: - - uid: 4503 - components: - - type: Transform - pos: 36.423782,-15.13722 - parent: 31 -- proto: ClothingHeadHatPumpkin +- proto: ClothingHeadHatMagician entities: - - uid: 7407 + - uid: 11909 components: - type: Transform - pos: 48.273617,-26.666399 + pos: -20.343632,-10.914085 parent: 31 -- proto: ClothingHeadHatUshanka +- proto: ClothingHeadHatPirate entities: - - uid: 844 - components: - - type: Transform - pos: -15.464306,-10.5187645 - parent: 31 - - uid: 7570 + - uid: 4503 components: - type: Transform - pos: -15.5245695,-10.430269 + pos: 36.423782,-15.13722 parent: 31 - proto: ClothingHeadHatWelding entities: @@ -29102,13 +29042,6 @@ entities: - type: Transform pos: 37.548763,-3.266727 parent: 31 -- proto: ClothingMaskGasMerc - entities: - - uid: 952 - components: - - type: Transform - pos: 29.33713,-19.311977 - parent: 31 - proto: ClothingMaskGasSecurity entities: - uid: 7139 @@ -29123,14 +29056,15 @@ entities: - type: Transform pos: 4.570995,-42.497837 parent: 31 -- proto: ClothingMaskSterile +- proto: ClothingMaskPlague entities: - - uid: 7101 + - uid: 12228 components: - type: Transform - parent: 7110 - - type: Physics - canCollide: False + pos: -30.67646,-5.5401216 + parent: 31 +- proto: ClothingMaskSterile + entities: - uid: 9034 components: - type: Transform @@ -29167,13 +29101,6 @@ entities: - type: Transform pos: -13.566107,24.548891 parent: 31 -- proto: ClothingNeckScarfStripedGreen - entities: - - uid: 9028 - components: - - type: Transform - pos: 54.455875,-22.53784 - parent: 31 - proto: ClothingNeckScarfStripedRed entities: - uid: 10690 @@ -29182,29 +29109,6 @@ entities: rot: 1.5707963267948966 rad pos: -16.557934,-39.78134 parent: 31 -- proto: ClothingNeckScarfStripedZebra - entities: - - uid: 7895 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -19.198872,-5.9850674 - parent: 31 -- proto: ClothingNeckTieRed - entities: - - uid: 7109 - components: - - type: Transform - parent: 7110 - - type: Physics - canCollide: False - - uid: 7856 - components: - - type: Transform - parent: 7853 - - type: Physics - canCollide: False - - type: InsideEntityStorage - proto: ClothingOuterArmorBasic entities: - uid: 1206 @@ -29241,20 +29145,6 @@ entities: - type: Transform pos: -11.209741,19.672714 parent: 31 -- proto: ClothingOuterCoatDetective - entities: - - uid: 7480 - components: - - type: Transform - pos: -21.602036,17.352358 - parent: 31 - - uid: 7854 - components: - - type: Transform - parent: 7853 - - type: Physics - canCollide: False - - type: InsideEntityStorage - proto: ClothingOuterCoatJensen entities: - uid: 9758 @@ -29267,14 +29157,6 @@ entities: - type: Transform pos: -31.464373,10.564828 parent: 31 -- proto: ClothingOuterCoatLab - entities: - - uid: 4231 - components: - - type: Transform - parent: 7110 - - type: Physics - canCollide: False - proto: ClothingOuterCoatPirate entities: - uid: 7065 @@ -29282,47 +29164,12 @@ entities: - type: Transform pos: 36.486282,-15.465345 parent: 31 -- proto: ClothingOuterSanta +- proto: ClothingOuterCsCorporateJacket entities: - - uid: 108 - components: - - type: Transform - pos: -11.396052,16.59143 - parent: 31 - - uid: 4166 - components: - - type: Transform - pos: -11.396052,16.59143 - parent: 31 - - uid: 4457 - components: - - type: Transform - pos: -11.396052,16.59143 - parent: 31 - - uid: 8422 - components: - - type: Transform - pos: -11.396052,16.59143 - parent: 31 - - uid: 8447 - components: - - type: Transform - pos: -11.396052,16.59143 - parent: 31 - - uid: 11334 - components: - - type: Transform - pos: -11.396052,16.59143 - parent: 31 - - uid: 11335 - components: - - type: Transform - pos: -11.396052,16.59143 - parent: 31 - - uid: 11336 + - uid: 4633 components: - type: Transform - pos: -11.396052,16.59143 + pos: -30.285543,-6.4463716 parent: 31 - proto: ClothingOuterVestHazard entities: @@ -29344,13 +29191,6 @@ entities: - type: Transform pos: 38.383812,-0.3536343 parent: 31 -- proto: ClothingOuterWinterCentcom - entities: - - uid: 9036 - components: - - type: Transform - pos: 49.408,-22.48963 - parent: 31 - proto: ClothingOuterWinterCMO entities: - uid: 7088 @@ -29366,11 +29206,6 @@ entities: - type: Transform pos: 7.310254,-13.535391 parent: 31 - - uid: 11226 - components: - - type: Transform - pos: -30.51289,-9.469171 - parent: 31 - proto: ClothingOuterWinterHoP entities: - uid: 10828 @@ -29436,13 +29271,6 @@ entities: - type: Transform pos: 58.78938,-5.6705165 parent: 31 -- proto: ClothingShoesBootsMerc - entities: - - uid: 1109 - components: - - type: Transform - pos: -6.4295473,32.285225 - parent: 31 - proto: ClothingShoesBootsPerformer entities: - uid: 8319 @@ -29466,12 +29294,6 @@ entities: parent: 31 - proto: ClothingShoesLeather entities: - - uid: 7098 - components: - - type: Transform - parent: 7110 - - type: Physics - canCollide: False - uid: 10585 components: - type: Transform @@ -29498,17 +29320,18 @@ entities: parent: 31 - proto: ClothingUniformJumpskirtDetective entities: - - uid: 7972 + - uid: 13043 components: - type: Transform - pos: 14.57035,20.510712 + rot: -1.5707963267948966 rad + pos: 14.603168,16.430943 parent: 31 - proto: ClothingUniformJumpsuitAncient entities: - - uid: 8953 + - uid: 8707 components: - type: Transform - pos: -27.587215,7.5242066 + pos: -29.677063,7.9308863 parent: 31 - proto: ClothingUniformJumpsuitBartender entities: @@ -29518,26 +29341,12 @@ entities: rot: 1.5707963267948966 rad pos: -34.617214,17.30891 parent: 31 -- proto: ClothingUniformJumpsuitDetective - entities: - - uid: 7108 - components: - - type: Transform - parent: 7110 - - type: Physics - canCollide: False - - uid: 7973 - components: - - type: Transform - pos: 14.460975,20.651337 - parent: 31 -- proto: ClothingUniformJumpsuitMercenary +- proto: ClothingUniformJumpsuitHawaiRed entities: - - uid: 3571 + - uid: 6972 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 30.429188,-19.665958 + pos: -30.379364,-6.1807466 parent: 31 - proto: ComfyChair entities: @@ -29576,10 +29385,11 @@ entities: rot: 3.141592653589793 rad pos: -22.5,8.5 parent: 31 - - uid: 1209 + - uid: 988 components: - type: Transform - pos: -30.5,-4.5 + rot: 1.5707963267948966 rad + pos: -10.5,-7.5 parent: 31 - uid: 1715 components: @@ -29587,12 +29397,6 @@ entities: rot: 3.141592653589793 rad pos: 38.5,-1.5 parent: 31 - - uid: 2131 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -10.5,-7.5 - parent: 31 - uid: 2439 components: - type: Transform @@ -29660,24 +29464,6 @@ entities: - type: Transform pos: 27.5,-24.5 parent: 31 - - uid: 8721 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -36.5,-28.5 - parent: 31 - - uid: 8722 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -35.5,-29.5 - parent: 31 - - uid: 8723 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -34.5,-29.5 - parent: 31 - uid: 10202 components: - type: Transform @@ -29701,11 +29487,11 @@ entities: linearDamping: 0 - proto: ComputerAlert entities: - - uid: 8800 + - uid: 4119 components: - type: Transform rot: -1.5707963267948966 rad - pos: 7.5,31.5 + pos: 4.5,32.5 parent: 31 - uid: 12050 components: @@ -29733,6 +29519,14 @@ entities: rot: -1.5707963267948966 rad pos: 20.5,-15.5 parent: 31 +- proto: ComputerBroken + entities: + - uid: 4629 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 49.5,-30.5 + parent: 31 - proto: ComputerCargoBounty entities: - uid: 8796 @@ -29743,6 +29537,11 @@ entities: parent: 31 - proto: ComputerCargoOrders entities: + - uid: 2044 + components: + - type: Transform + pos: 23.5,13.5 + parent: 31 - uid: 3602 components: - type: Transform @@ -29755,13 +29554,11 @@ entities: rot: -1.5707963267948966 rad pos: 16.5,9.5 parent: 31 -- proto: ComputerCargoShuttle - entities: - - uid: 4254 + - uid: 7110 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 24.5,15.5 + rot: 3.141592653589793 rad + pos: 3.5,31.5 parent: 31 - proto: ComputerCloningConsole entities: @@ -29779,10 +29576,11 @@ entities: rot: 1.5707963267948966 rad pos: 6.5,23.5 parent: 31 - - uid: 2721 + - uid: 10062 components: - type: Transform - pos: 3.5,32.5 + rot: 1.5707963267948966 rad + pos: -0.5,34.5 parent: 31 - proto: ComputerCrewMonitoring entities: @@ -29791,10 +29589,11 @@ entities: - type: Transform pos: 23.5,-9.5 parent: 31 - - uid: 2448 + - uid: 6820 components: - type: Transform - pos: 0.5,32.5 + rot: 1.5707963267948966 rad + pos: -0.5,33.5 parent: 31 - uid: 7674 components: @@ -29810,10 +29609,10 @@ entities: rot: -1.5707963267948966 rad pos: -0.5,7.5 parent: 31 - - uid: 8803 + - uid: 9926 components: - type: Transform - pos: 8.5,30.5 + pos: 2.5,35.5 parent: 31 - proto: ComputerId entities: @@ -29822,12 +29621,6 @@ entities: - type: Transform pos: 7.5,21.5 parent: 31 - - uid: 870 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 4.5,31.5 - parent: 31 - uid: 1113 components: - type: Transform @@ -29844,6 +29637,12 @@ entities: - type: Transform pos: 29.5,10.5 parent: 31 + - uid: 2536 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -0.5,32.5 + parent: 31 - uid: 6840 components: - type: Transform @@ -29855,6 +29654,13 @@ entities: rot: 1.5707963267948966 rad pos: 37.5,0.5 parent: 31 +- proto: ComputerMedicalRecords + entities: + - uid: 5812 + components: + - type: Transform + pos: 0.5,35.5 + parent: 31 - proto: ComputerPalletConsole entities: - uid: 6865 @@ -29865,6 +29671,18 @@ entities: parent: 31 - proto: ComputerPowerMonitoring entities: + - uid: 809 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,33.5 + parent: 31 + - uid: 2728 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 43.5,-24.5 + parent: 31 - uid: 4306 components: - type: Transform @@ -29884,13 +29702,19 @@ entities: rot: -1.5707963267948966 rad pos: 32.5,22.5 parent: 31 - - uid: 2447 + - uid: 4371 components: - type: Transform - pos: 6.5,32.5 + rot: -1.5707963267948966 rad + pos: 4.5,34.5 parent: 31 - proto: ComputerResearchAndDevelopment entities: + - uid: 4025 + components: + - type: Transform + pos: 3.5,35.5 + parent: 31 - uid: 4244 components: - type: Transform @@ -29902,12 +29726,12 @@ entities: rot: 1.5707963267948966 rad pos: -17.5,-19.5 parent: 31 -- proto: ComputerShuttleCargo +- proto: ComputerRoboticsControl entities: - - uid: 2374 + - uid: 4672 components: - type: Transform - pos: 23.5,13.5 + pos: 54.5,-22.5 parent: 31 - proto: ComputerShuttleSalvage entities: @@ -29942,16 +29766,10 @@ entities: parent: 31 - proto: ComputerStationRecords entities: - - uid: 8515 - components: - - type: Transform - pos: -3.5,14.5 - parent: 31 - - uid: 9752 + - uid: 9791 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -2.5,29.5 + pos: 1.5,35.5 parent: 31 - uid: 11431 components: @@ -29959,20 +29777,25 @@ entities: rot: 3.141592653589793 rad pos: -13.5,-39.5 parent: 31 -- proto: ComputerSurveillanceCameraMonitor - entities: - - uid: 534 + - uid: 11657 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 9.5,29.5 + pos: -2.5,11.5 parent: 31 +- proto: ComputerSurveillanceCameraMonitor + entities: - uid: 2218 components: - type: Transform rot: 1.5707963267948966 rad pos: 48.5,-4.5 parent: 31 + - uid: 7101 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 0.5,31.5 + parent: 31 - proto: ComputerTechnologyDiskTerminal entities: - uid: 591 @@ -30277,12 +30100,7 @@ entities: parent: 31 - proto: CrateEmptySpawner entities: - - uid: 3135 - components: - - type: Transform - pos: -17.5,13.5 - parent: 31 - - uid: 8045 + - uid: 4126 components: - type: Transform pos: 10.5,13.5 @@ -30292,13 +30110,37 @@ entities: - type: Transform pos: 18.5,15.5 parent: 31 +- proto: CrateEngineeringCableBulk + entities: + - uid: 3553 + components: + - type: Transform + pos: -34.5,-23.5 + parent: 31 - proto: CrateEngineeringCableHV entities: + - uid: 2098 + components: + - type: Transform + pos: -20.5,22.5 + parent: 31 - uid: 11208 components: - type: Transform pos: 16.5,-29.5 parent: 31 +- proto: CrateEngineeringSolar + entities: + - uid: 2436 + components: + - type: Transform + pos: -32.5,-27.5 + parent: 31 + - uid: 2437 + components: + - type: Transform + pos: -32.5,-28.5 + parent: 31 - proto: CrateEngineeringTeslaCoil entities: - uid: 11373 @@ -30383,13 +30225,6 @@ entities: - type: Transform pos: 20.5,-17.5 parent: 31 -- proto: CrateNPCHamlet - entities: - - uid: 2458 - components: - - type: Transform - pos: 0.5,29.5 - parent: 31 - proto: CratePrivateSecure entities: - uid: 2363 @@ -30438,36 +30273,49 @@ entities: - type: Transform pos: 40.5,-3.5 parent: 31 - - uid: 6904 +- proto: CrateTrashCartFilled + entities: + - uid: 10468 components: - type: Transform - pos: 23.5,-18.5 + pos: -31.5,-13.5 parent: 31 - - uid: 7087 +- proto: CrateTrashCartJani + entities: + - uid: 1438 components: - type: Transform - pos: -7.5,-12.5 + pos: -21.5,-4.5 parent: 31 -- proto: CrateTrashCartFilled +- proto: CrateUranium entities: - - uid: 10468 + - uid: 7792 components: - type: Transform - pos: -31.5,-13.5 + pos: 46.5,9.5 parent: 31 -- proto: CrateTrashCartJani +- proto: CrayonBlack entities: - - uid: 125 + - uid: 8531 components: - type: Transform - pos: -20.5,-11.5 + rot: 3.141592653589793 rad + pos: -5.8501306,15.505665 parent: 31 -- proto: CrayonBox +- proto: CrayonBlue entities: - - uid: 263 + - uid: 8632 + components: + - type: Transform + pos: -5.568251,15.1432495 + parent: 31 +- proto: CrayonRed + entities: + - uid: 2720 components: - type: Transform - pos: -19.62684,-5.2181053 + rot: -1.5707963267948966 rad + pos: -5.3669076,15.646605 parent: 31 - proto: Crematorium entities: @@ -30489,29 +30337,24 @@ entities: available: False - proto: CrowbarRed entities: - - uid: 2093 - components: - - type: Transform - pos: -3.7752368,12.511271 - parent: 31 - uid: 7562 components: - type: Transform rot: -1.5707963267948966 rad pos: -52.74314,-11.621845 parent: 31 - - uid: 8834 + - uid: 11832 components: - type: Transform - pos: 8.498364,31.458696 + pos: -9.430286,-7.422551 parent: 31 - - uid: 9114 +- proto: CryogenicSleepUnit + entities: + - uid: 8027 components: - type: Transform - pos: -10.463156,-6.5336485 + pos: -42.5,-5.5 parent: 31 -- proto: CryogenicSleepUnit - entities: - uid: 9172 components: - type: Transform @@ -30529,13 +30372,6 @@ entities: - type: Transform pos: -40.5,-5.5 parent: 31 -- proto: CryogenicSleepUnitSpawnerPrisoner - entities: - - uid: 7306 - components: - - type: Transform - pos: -15.5,9.5 - parent: 31 - proto: CryoPod entities: - uid: 5231 @@ -30557,76 +30393,13 @@ entities: - type: Transform pos: 7.5,-41.5 parent: 31 -- proto: CurtainsBlackOpen +- proto: CurtainsPurple entities: - - uid: 4977 - components: - - type: Transform - pos: -15.5,-0.5 - parent: 31 - - uid: 12222 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -7.5,2.5 - parent: 31 - - uid: 12223 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -6.5,2.5 - parent: 31 - - uid: 12224 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -5.5,2.5 - parent: 31 - - uid: 12225 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -3.5,2.5 - parent: 31 - - uid: 12226 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -2.5,2.5 - parent: 31 - - uid: 12227 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -1.5,2.5 - parent: 31 - - uid: 12228 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 1.5,-0.5 - parent: 31 - - uid: 12229 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 1.5,-1.5 - parent: 31 - - uid: 12230 + - uid: 9271 components: - type: Transform rot: 3.141592653589793 rad - pos: 1.5,-2.5 - parent: 31 - - uid: 12231 - components: - - type: Transform - pos: -15.5,0.5 - parent: 31 - - uid: 12232 - components: - - type: Transform - pos: -15.5,1.5 + pos: -21.5,-27.5 parent: 31 - proto: CurtainsPurpleOpen entities: @@ -30642,18 +30415,6 @@ entities: rot: -1.5707963267948966 rad pos: -24.5,-17.5 parent: 31 - - uid: 7344 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -27.5,-22.5 - parent: 31 - - uid: 8100 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -27.5,-21.5 - parent: 31 - uid: 8500 components: - type: Transform @@ -30666,34 +30427,6 @@ entities: rot: -1.5707963267948966 rad pos: -21.5,-17.5 parent: 31 - - uid: 10706 - components: - - type: Transform - pos: -25.5,-25.5 - parent: 31 - - uid: 10707 - components: - - type: Transform - pos: -26.5,-25.5 - parent: 31 - - uid: 11712 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -6.5,-20.5 - parent: 31 - - uid: 11713 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -6.5,-21.5 - parent: 31 - - uid: 11714 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -6.5,-22.5 - parent: 31 - proto: CurtainsRedOpen entities: - uid: 175 @@ -30708,12 +30441,6 @@ entities: rot: -1.5707963267948966 rad pos: 4.5,-31.5 parent: 31 - - uid: 7317 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 3.5,-31.5 - parent: 31 - uid: 11690 components: - type: Transform @@ -30729,11 +30456,6 @@ entities: parent: 31 - proto: d20Dice entities: - - uid: 2357 - components: - - type: Transform - pos: -23.834803,-5.3811545 - parent: 31 - uid: 4723 components: - type: Transform @@ -30751,24682 +30473,24590 @@ entities: - type: Transform pos: 10.46357,-23.664734 parent: 31 -- proto: d8Dice - entities: - - uid: 2358 + - uid: 11848 components: - type: Transform - pos: -24.287928,-6.3967795 + pos: -17.469051,-6.3893943 parent: 31 + - uid: 11849 + components: + - type: Transform + pos: -17.281412,-6.4675193 + parent: 31 +- proto: d8Dice + entities: - uid: 7293 components: - type: Transform pos: 11.27607,-24.265812 parent: 31 -- proto: DefaultStationBeacon +- proto: DecorBarrels entities: - - uid: 774 + - uid: 8708 components: - type: Transform - pos: -39.5,5.5 + rot: -1.5707963267948966 rad + pos: 35.5,-6.5 parent: 31 - - type: NavMapBeacon - text: evac - - uid: 1374 + - uid: 8709 components: - type: Transform - pos: 44.5,-24.5 + rot: -1.5707963267948966 rad + pos: -24.5,15.5 parent: 31 - - type: NavMapBeacon - text: observatory -- proto: DefaultStationBeaconAME +- proto: DecorFloorBoard10 entities: - - uid: 7280 + - uid: 12642 components: - type: Transform - pos: 47.5,8.5 + rot: -1.5707963267948966 rad + pos: 7.5,-22.5 parent: 31 -- proto: DefaultStationBeaconAnomalyGenerator - entities: - - uid: 11361 + - type: Fixtures + fixtures: {} + - uid: 12674 components: - type: Transform - pos: -5.5,-30.5 + rot: -1.5707963267948966 rad + pos: 3.5,-34.5 parent: 31 -- proto: DefaultStationBeaconArmory + - type: Fixtures + fixtures: {} +- proto: DecorFloorBoard11 entities: - - uid: 10088 + - uid: 12431 components: - type: Transform - pos: -12.5,19.5 + pos: -19.5,-12.5 parent: 31 -- proto: DefaultStationBeaconArrivals - entities: - - uid: 812 + - type: Fixtures + fixtures: {} + - uid: 12525 components: - type: Transform - pos: -44.5,-10.5 + pos: -2.5,0.5 parent: 31 -- proto: DefaultStationBeaconArtifactLab + - type: Fixtures + fixtures: {} +- proto: DecorFloorBoard12 entities: - - uid: 11363 + - uid: 12650 components: - type: Transform - pos: -12.5,-29.5 + rot: -1.5707963267948966 rad + pos: 5.5,-29.5 parent: 31 -- proto: DefaultStationBeaconAtmospherics + - type: Fixtures + fixtures: {} +- proto: DecorFloorBoard17 entities: - - uid: 11312 + - uid: 12232 components: - type: Transform - pos: 31.5,12.5 + pos: -12.5,-9.5 parent: 31 -- proto: DefaultStationBeaconBar + - type: Fixtures + fixtures: {} +- proto: DecorFloorBoard18 entities: - - uid: 11319 + - uid: 12639 components: - type: Transform - pos: -5.5,-5.5 + rot: -1.5707963267948966 rad + pos: -5.5,-23.5 parent: 31 -- proto: DefaultStationBeaconBotany + - type: Fixtures + fixtures: {} +- proto: DecorFloorBoard2 entities: - - uid: 11320 + - uid: 12638 components: - type: Transform - pos: -18.5,-0.5 + rot: -1.5707963267948966 rad + pos: 3.5,-25.5 parent: 31 -- proto: DefaultStationBeaconBridge + - type: Fixtures + fixtures: {} +- proto: DecorFloorBoard20 entities: - - uid: 11269 + - uid: 6922 components: - type: Transform - pos: 3.5,30.5 + rot: -1.5707963267948966 rad + pos: -19.5,-26.5 parent: 31 -- proto: DefaultStationBeaconBrig + - type: Fixtures + fixtures: {} +- proto: DecorFloorBoard21 entities: - - uid: 8881 + - uid: 10794 components: - type: Transform - pos: -10.5,8.5 + pos: -22.5,-1.5 parent: 31 -- proto: DefaultStationBeaconCaptainsQuarters - entities: - - uid: 11268 + - type: Fixtures + fixtures: {} + - uid: 12536 components: - type: Transform - pos: 8.5,25.5 + rot: -1.5707963267948966 rad + pos: -20.5,-0.5 parent: 31 -- proto: DefaultStationBeaconCargoBay + - type: Fixtures + fixtures: {} +- proto: DecorFloorBoard3 entities: - - uid: 3509 + - uid: 12526 components: - type: Transform - pos: 21.5,16.5 + pos: -7.5,-3.5 parent: 31 -- proto: DefaultStationBeaconCargoReception + - type: Fixtures + fixtures: {} +- proto: DecorFloorBoard4 entities: - - uid: 2494 + - uid: 6958 components: - type: Transform - pos: 14.5,10.5 + rot: -1.5707963267948966 rad + pos: -29.5,-23.5 parent: 31 -- proto: DefaultStationBeaconCERoom - entities: - - uid: 3513 + - type: Fixtures + fixtures: {} + - uid: 12102 components: - type: Transform - pos: 39.5,-0.5 + rot: -1.5707963267948966 rad + pos: -1.5,-4.5 parent: 31 -- proto: DefaultStationBeaconChapel - entities: - - uid: 11653 + - type: Fixtures + fixtures: {} + - uid: 12676 components: - type: Transform - pos: -21.5,-20.5 + rot: -1.5707963267948966 rad + pos: -25.5,-25.5 parent: 31 -- proto: DefaultStationBeaconChemistry - entities: - - uid: 7256 + - type: Fixtures + fixtures: {} + - uid: 12678 components: - type: Transform - pos: 16.5,-0.5 + rot: -1.5707963267948966 rad + pos: -19.5,-20.5 parent: 31 -- proto: DefaultStationBeaconCMORoom + - type: Fixtures + fixtures: {} +- proto: DecorFloorBoard6 entities: - - uid: 7276 + - uid: 10158 components: - type: Transform - pos: 23.5,-10.5 + rot: 3.141592653589793 rad + pos: -30.5,0.5 parent: 31 -- proto: DefaultStationBeaconCryonics - entities: - - uid: 8316 + - type: Fixtures + fixtures: {} + - uid: 12537 components: - type: Transform - pos: 8.5,-15.5 + rot: -1.5707963267948966 rad + pos: 10.5,-27.5 parent: 31 -- proto: DefaultStationBeaconCryosleep - entities: - - uid: 9207 + - type: Fixtures + fixtures: {} + - uid: 13038 components: - type: Transform - pos: -41.5,-4.5 + rot: 3.141592653589793 rad + pos: -34.5,12.5 parent: 31 -- proto: DefaultStationBeaconDisposals + - type: Fixtures + fixtures: {} +- proto: DecorFloorBoard8 entities: - - uid: 7954 + - uid: 12677 components: - type: Transform - pos: -30.5,-16.5 + rot: -1.5707963267948966 rad + pos: -24.5,-27.5 parent: 31 -- proto: DefaultStationBeaconEngineering + - type: Fixtures + fixtures: {} +- proto: DecorFloorBoard9 entities: - - uid: 7281 + - uid: 6777 components: - type: Transform - pos: 33.5,4.5 + rot: -1.5707963267948966 rad + pos: -31.5,-21.5 parent: 31 - - uid: 11056 - components: - - type: Transform - pos: 57.5,10.5 - parent: 31 - - type: NavMapBeacon - text: Tesla Storage -- proto: DefaultStationBeaconEscapePod - entities: - - uid: 11467 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 31.5,-17.5 - parent: 31 - - uid: 11468 + - type: Fixtures + fixtures: {} + - uid: 10157 components: - type: Transform rot: 3.141592653589793 rad - pos: -8.5,-41.5 + pos: -29.5,-2.5 parent: 31 -- proto: DefaultStationBeaconEVAStorage - entities: - - uid: 7640 + - type: Fixtures + fixtures: {} + - uid: 12643 components: - type: Transform - pos: 8.5,9.5 + rot: -1.5707963267948966 rad + pos: 6.5,-30.5 parent: 31 -- proto: DefaultStationBeaconHOPOffice - entities: - - uid: 2464 + - type: Fixtures + fixtures: {} + - uid: 12675 components: - type: Transform - pos: 8.5,19.5 + rot: -1.5707963267948966 rad + pos: -25.5,-19.5 parent: 31 -- proto: DefaultStationBeaconHOSRoom - entities: - - uid: 778 + - type: Fixtures + fixtures: {} + - uid: 12979 components: - type: Transform - pos: -8.5,20.5 + pos: 29.5,9.5 parent: 31 -- proto: DefaultStationBeaconJanitorsCloset + - type: Fixtures + fixtures: {} +- proto: DecorFloorBookPile3 entities: - - uid: 11323 + - uid: 12683 components: - type: Transform - pos: -18.5,-11.5 + pos: 27.5,-22.5 parent: 31 -- proto: DefaultStationBeaconKitchen - entities: - - uid: 11318 + - type: Fixtures + fixtures: {} + - uid: 13045 components: - type: Transform - pos: -12.5,-0.5 + rot: 3.141592653589793 rad + pos: 7.5,24.5 parent: 31 -- proto: DefaultStationBeaconLibrary + - type: Fixtures + fixtures: {} +- proto: DecorFloorBookPile6 entities: - - uid: 11325 + - uid: 1247 components: - type: Transform - pos: 9.5,-26.5 + pos: 7.5,-24.5 parent: 31 -- proto: DefaultStationBeaconMantis + - type: Fixtures + fixtures: {} +- proto: DecorFloorBookstack1 entities: - - uid: 11757 + - uid: 8993 components: - type: Transform - pos: 4.5,-33.5 + pos: 12.5,-25.5 parent: 31 -- proto: DefaultStationBeaconMedbay - entities: - - uid: 5767 + - type: Fixtures + fixtures: {} + - uid: 10147 components: - type: Transform - pos: 9.5,-9.5 + rot: 3.141592653589793 rad + pos: -30.5,-2.5 parent: 31 -- proto: DefaultStationBeaconMedical + - type: Fixtures + fixtures: {} +- proto: DecorFloorBrickrubble entities: - - uid: 1215 + - uid: 8270 components: - type: Transform - pos: 9.5,-2.5 + rot: 3.141592653589793 rad + pos: 13.5,27.5 parent: 31 -- proto: DefaultStationBeaconMorgue + - type: Fixtures + fixtures: {} +- proto: DecorFloorCardboard entities: - - uid: 7275 + - uid: 4499 components: - type: Transform - pos: 13.5,-15.5 + rot: -1.5707963267948966 rad + pos: 50.5,-18.5 parent: 31 -- proto: DefaultStationBeaconPermaBrig - entities: - - uid: 11316 + - type: Fixtures + fixtures: {} + - uid: 4926 components: - type: Transform - pos: -17.5,9.5 + rot: 1.5707963267948966 rad + pos: -18.5,-11.5 parent: 31 -- proto: DefaultStationBeaconPowerBank - entities: - - uid: 11352 + - type: Fixtures + fixtures: {} + - uid: 5986 components: - type: Transform - pos: 41.5,5.5 + pos: -11.5,-26.5 parent: 31 -- proto: DefaultStationBeaconProber - entities: - - uid: 11652 + - type: Fixtures + fixtures: {} + - uid: 9866 components: - type: Transform - pos: -13.5,-24.5 + pos: -14.5,-8.5 parent: 31 -- proto: DefaultStationBeaconQMRoom - entities: - - uid: 11353 + - type: Fixtures + fixtures: {} + - uid: 9971 components: - type: Transform - pos: 27.5,9.5 + rot: -1.5707963267948966 rad + pos: -30.5,-4.5 parent: 31 -- proto: DefaultStationBeaconRDRoom - entities: - - uid: 11354 + - type: Fixtures + fixtures: {} + - uid: 12684 components: - type: Transform - pos: -4.5,-21.5 + rot: -1.5707963267948966 rad + pos: -12.5,-18.5 parent: 31 -- proto: DefaultStationBeaconRND - entities: - - uid: 11355 + - type: Fixtures + fixtures: {} + - uid: 12685 components: - type: Transform - pos: -15.5,-23.5 + pos: 45.5,-13.5 parent: 31 -- proto: DefaultStationBeaconRobotics - entities: - - uid: 11360 + - type: Fixtures + fixtures: {} + - uid: 12707 components: - type: Transform - pos: -1.5,-27.5 + rot: -1.5707963267948966 rad + pos: -30.5,-19.5 parent: 31 -- proto: DefaultStationBeaconSalvage - entities: - - uid: 11321 + - type: Fixtures + fixtures: {} + - uid: 12847 components: - type: Transform - pos: 27.5,18.5 + pos: 5.5,-37.5 parent: 31 -- proto: DefaultStationBeaconScience - entities: - - uid: 1208 + - type: Fixtures + fixtures: {} + - uid: 12863 components: - type: Transform - pos: -9.5,-20.5 + rot: -1.5707963267948966 rad + pos: -27.5,-28.5 parent: 31 -- proto: DefaultStationBeaconSecurity - entities: - - uid: 1136 + - type: Fixtures + fixtures: {} + - uid: 12864 components: - type: Transform - pos: -7.5,11.5 + pos: -33.5,0.5 parent: 31 -- proto: DefaultStationBeaconServerRoom - entities: - - uid: 11356 + - type: Fixtures + fixtures: {} + - uid: 12881 components: - type: Transform - pos: -1.5,-21.5 + rot: -1.5707963267948966 rad + pos: -27.5,7.5 parent: 31 -- proto: DefaultStationBeaconSingularity - entities: - - uid: 11358 + - type: Fixtures + fixtures: {} + - uid: 12882 components: - type: Transform - pos: 60.5,2.5 + pos: 19.5,13.5 parent: 31 -- proto: DefaultStationBeaconSolars - entities: - - uid: 11364 + - type: Fixtures + fixtures: {} + - uid: 12883 components: - type: Transform - pos: 15.5,-29.5 + rot: 3.141592653589793 rad + pos: 23.5,8.5 parent: 31 - - uid: 11365 + - type: Fixtures + fixtures: {} + - uid: 12976 components: - type: Transform - pos: -31.5,-32.5 + rot: 1.5707963267948966 rad + pos: 28.5,18.5 parent: 31 - - uid: 11366 + - type: Fixtures + fixtures: {} + - uid: 12980 components: - type: Transform - pos: -22.5,24.5 + rot: 1.5707963267948966 rad + pos: 32.5,-3.5 parent: 31 -- proto: DefaultStationBeaconTechVault - entities: - - uid: 1316 + - type: Fixtures + fixtures: {} + - uid: 12982 components: - type: Transform - pos: 27.5,1.5 + rot: 3.141592653589793 rad + pos: 35.5,-11.5 parent: 31 -- proto: DefaultStationBeaconTEG - entities: - - uid: 11314 + - type: Fixtures + fixtures: {} + - uid: 13021 components: - type: Transform - pos: 38.5,14.5 + rot: 1.5707963267948966 rad + pos: 31.5,-6.5 parent: 31 -- proto: DefaultStationBeaconTelecoms - entities: - - uid: 11357 + - type: Fixtures + fixtures: {} + - uid: 13022 components: - type: Transform - pos: 50.5,-5.5 + pos: 22.5,-0.5 parent: 31 -- proto: DefaultStationBeaconToolRoom - entities: - - uid: 11317 + - type: Fixtures + fixtures: {} + - uid: 13023 components: - type: Transform - pos: -27.5,9.5 + rot: -1.5707963267948966 rad + pos: 21.5,-23.5 parent: 31 -- proto: DefaultStationBeaconVault - entities: - - uid: 11315 + - type: Fixtures + fixtures: {} + - uid: 13039 components: - type: Transform - pos: -1.5,17.5 + rot: 3.141592653589793 rad + pos: 13.5,12.5 parent: 31 -- proto: DefaultStationBeaconWardensOffice - entities: - - uid: 762 + - type: Fixtures + fixtures: {} + - uid: 13040 components: - type: Transform - pos: -1.5,8.5 + pos: 14.5,14.5 parent: 31 -- proto: DefibrillatorCabinetFilled - entities: - - uid: 7340 + - type: Fixtures + fixtures: {} + - uid: 13041 components: - type: Transform rot: 3.141592653589793 rad - pos: 11.5,-12.5 - parent: 31 - - uid: 9834 - components: - - type: Transform - pos: 1.5,29.5 + pos: -31.5,12.5 parent: 31 - - uid: 9835 + - type: Fixtures + fixtures: {} + - uid: 13044 components: - type: Transform - pos: -32.5,6.5 + rot: 3.141592653589793 rad + pos: -18.5,-36.5 parent: 31 - - uid: 10032 + - type: Fixtures + fixtures: {} + - uid: 13052 components: - type: Transform rot: 1.5707963267948966 rad - pos: 16.5,-17.5 + pos: 22.5,-4.5 parent: 31 - - uid: 11438 + - type: Fixtures + fixtures: {} + - uid: 13053 components: - type: Transform - pos: 0.5,15.5 + rot: -1.5707963267948966 rad + pos: 21.5,-4.5 parent: 31 -- proto: DeployableBarrier + - type: Fixtures + fixtures: {} +- proto: DecorFloorGlass3 entities: - - uid: 2502 - components: - - type: Transform - pos: -6.5,17.5 - parent: 31 - - uid: 9369 + - uid: 12706 components: - type: Transform - pos: -5.5,17.5 + pos: 33.5,-10.5 parent: 31 -- proto: DeskBell + - type: Fixtures + fixtures: {} +- proto: DecorFloorGlass4 entities: - - uid: 2195 + - uid: 13037 components: - type: Transform - pos: 7.9000525,-3.1977162 + rot: 3.141592653589793 rad + pos: -37.5,15.5 parent: 31 -- proto: DiceBag + - type: Fixtures + fixtures: {} +- proto: DecorFloorGlass5 entities: - - uid: 10207 + - uid: 13027 components: - type: Transform - pos: 10.362751,-24.393734 + rot: 3.141592653589793 rad + pos: -16.5,23.5 parent: 31 - - uid: 10208 + - type: Fixtures + fixtures: {} +- proto: DecorFloorPallet + entities: + - uid: 12862 components: - type: Transform - pos: 10.756269,-24.370586 + rot: 3.141592653589793 rad + pos: 24.5,10.5 parent: 31 -- proto: DiseaseDiagnoser + - type: Fixtures + fixtures: {} +- proto: DecorFloorPalletStack entities: - - uid: 8435 + - uid: 12781 components: - type: Transform - pos: 19.5,-5.5 + pos: 23.5,7.5 parent: 31 -- proto: DisgustingSweptSoup - entities: - - uid: 9020 + - uid: 13042 components: - type: Transform - pos: -12.586034,24.541399 + rot: 3.141592653589793 rad + pos: 14.5,16.5 parent: 31 -- proto: DisposalBend +- proto: DecorFloorPaper entities: - - uid: 61 + - uid: 1191 components: - type: Transform - rot: 3.141592653589793 rad - pos: 3.5,-27.5 + pos: -1.5,14.5 parent: 31 - - uid: 238 + - type: Fixtures + fixtures: {} + - uid: 2734 components: - type: Transform - rot: 4.71238902409608 rad - pos: 37.5,3.5 + pos: -2.5,14.5 parent: 31 - - uid: 310 + - type: Fixtures + fixtures: {} + - uid: 4635 components: - type: Transform - pos: 8.5,17.5 + rot: 1.5707963267948966 rad + pos: -2.5,14.5 parent: 31 - - uid: 399 + - type: Fixtures + fixtures: {} + - uid: 6971 components: - type: Transform rot: -1.5707963267948966 rad - pos: -15.5,-27.5 + pos: -1.5,11.5 parent: 31 - - uid: 838 + - type: Fixtures + fixtures: {} + - uid: 7737 components: - type: Transform - rot: 3.141592697301183 rad - pos: -29.5,10.5 + pos: -2.5,10.5 parent: 31 - - uid: 839 + - type: Fixtures + fixtures: {} + - uid: 8028 components: - type: Transform - pos: -28.5,10.5 + rot: 1.5707963267948966 rad + pos: -1.5,11.5 parent: 31 - - uid: 848 + - type: Fixtures + fixtures: {} + - uid: 8227 components: - type: Transform - pos: -8.5,-25.5 + rot: 3.141592653589793 rad + pos: -1.5,14.5 parent: 31 - - uid: 849 + - type: Fixtures + fixtures: {} + - uid: 8714 components: - type: Transform rot: 1.5707963267948966 rad - pos: -15.5,-20.5 + pos: -15.5,-8.5 parent: 31 - - uid: 874 + - type: Fixtures + fixtures: {} + - uid: 8735 components: - type: Transform - pos: 7.5,11.5 + pos: -18.5,-7.5 parent: 31 - - uid: 927 + - type: Fixtures + fixtures: {} + - uid: 10170 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -14.5,-16.5 + pos: 0.5,34.5 parent: 31 - - uid: 2012 + - type: Fixtures + fixtures: {} + - uid: 11830 components: - type: Transform rot: -1.5707963267948966 rad - pos: -25.5,-16.5 + pos: -17.5,-4.5 parent: 31 - - uid: 2299 + - type: Fixtures + fixtures: {} + - uid: 11831 components: - type: Transform rot: -1.5707963267948966 rad - pos: 10.5,-11.5 + pos: -17.5,-6.5 parent: 31 - - uid: 2315 + - type: Fixtures + fixtures: {} + - uid: 12230 components: - type: Transform - pos: -5.5,12.5 + pos: -29.5,-6.5 parent: 31 - - uid: 2335 + - type: Fixtures + fixtures: {} + - uid: 13024 components: - type: Transform - pos: -4.5,-16.5 + pos: 4.5,-18.5 parent: 31 - - uid: 2874 + - type: Fixtures + fixtures: {} + - uid: 13025 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 6.5,26.5 + parent: 31 + - type: Fixtures + fixtures: {} + - uid: 13026 components: - type: Transform rot: -1.5707963267948966 rad - pos: -27.5,-8.5 + pos: -4.5,-17.5 parent: 31 - - uid: 3883 + - type: Fixtures + fixtures: {} + - uid: 13029 components: - type: Transform - pos: 3.5,28.5 + pos: -3.5,-2.5 parent: 31 - - uid: 4056 + - type: Fixtures + fixtures: {} + - uid: 13030 components: - type: Transform - pos: -10.5,-18.5 + rot: 1.5707963267948966 rad + pos: 22.5,-10.5 parent: 31 - - uid: 4090 + - type: Fixtures + fixtures: {} + - uid: 13031 components: - type: Transform rot: 3.141592653589793 rad - pos: -14.5,-18.5 + pos: 6.5,-5.5 parent: 31 - - uid: 4206 + - type: Fixtures + fixtures: {} + - uid: 13033 components: - type: Transform rot: 3.141592653589793 rad - pos: -32.5,-14.5 + pos: -34.5,13.5 parent: 31 - - uid: 4703 + - type: Fixtures + fixtures: {} + - uid: 13035 components: - type: Transform - pos: -30.5,-14.5 + pos: 12.5,11.5 parent: 31 - - uid: 4790 + - type: Fixtures + fixtures: {} + - uid: 13036 components: - type: Transform - pos: 6.5,-27.5 + rot: -1.5707963267948966 rad + pos: 14.5,12.5 parent: 31 - - uid: 5100 + - type: Fixtures + fixtures: {} +- proto: DecorFloorPaper1 + entities: + - uid: 125 components: - type: Transform - pos: 14.5,-0.5 + pos: 37.5,-0.5 parent: 31 - - uid: 5292 + - type: Fixtures + fixtures: {} + - uid: 12900 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -28.5,-16.5 + pos: 29.5,9.5 parent: 31 - - uid: 5742 + - type: Fixtures + fixtures: {} + - uid: 12978 components: - type: Transform - rot: 3.141592653589793 rad - pos: -28.5,-29.5 + pos: 38.5,-0.5 parent: 31 - - uid: 5758 + - type: Fixtures + fixtures: {} + - uid: 13034 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -20.5,-27.5 + rot: 3.141592653589793 rad + pos: -38.5,12.5 parent: 31 - - uid: 6586 + - type: Fixtures + fixtures: {} + - uid: 13046 components: - type: Transform - pos: 33.5,-17.5 + rot: -1.5707963267948966 rad + pos: 3.5,32.5 parent: 31 - - uid: 7420 + - type: Fixtures + fixtures: {} +- proto: DecorFloorPaper2 + entities: + - uid: 6999 components: - type: Transform - pos: 18.5,-10.5 + pos: 55.5,-24.5 parent: 31 - - uid: 7430 + - type: Fixtures + fixtures: {} +- proto: DecorFloorPaper3 + entities: + - uid: 13028 components: - type: Transform rot: 3.141592653589793 rad - pos: 29.5,3.5 + pos: -23.5,17.5 parent: 31 - - uid: 7631 + - type: Fixtures + fixtures: {} + - uid: 13032 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -20.5,-29.5 + rot: 3.141592653589793 rad + pos: -36.5,15.5 parent: 31 - - uid: 8092 + - type: Fixtures + fixtures: {} +- proto: DecorFloorScrapwood + entities: + - uid: 13056 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 62.5,1.5 + rot: 3.141592653589793 rad + pos: -14.5,-34.5 parent: 31 - - uid: 8093 + - type: Fixtures + fixtures: {} +- proto: DecorFloorSkeleton + entities: + - uid: 8228 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 62.5,0.5 + rot: 3.141592653589793 rad + pos: 6.5,-42.5 parent: 31 - - uid: 8445 + - type: Fixtures + fixtures: {} +- proto: DecorFloorTrashbags3 + entities: + - uid: 13055 components: - type: Transform rot: -1.5707963267948966 rad - pos: -7.5,1.5 + pos: -32.5,-17.5 parent: 31 - - uid: 9338 +- proto: DefaultStationBeacon + entities: + - uid: 774 components: - type: Transform - rot: 3.141592653589793 rad - pos: -34.5,3.5 + pos: -39.5,5.5 parent: 31 - - uid: 10147 + - type: NavMapBeacon + text: evac +- proto: DefaultStationBeaconAME + entities: + - uid: 7280 components: - type: Transform - pos: 49.5,-29.5 + pos: 47.5,8.5 parent: 31 - - uid: 10149 +- proto: DefaultStationBeaconAnomalyGenerator + entities: + - uid: 11361 components: - type: Transform - rot: 3.141592653589793 rad - pos: 47.5,-29.5 + pos: -5.5,-30.5 parent: 31 - - uid: 10150 +- proto: DefaultStationBeaconArmory + entities: + - uid: 10088 components: - type: Transform - pos: 47.5,-28.5 + pos: -12.5,19.5 parent: 31 - - uid: 10151 +- proto: DefaultStationBeaconArrivals + entities: + - uid: 812 components: - type: Transform - rot: 3.141592653589793 rad - pos: 45.5,-28.5 + pos: -44.5,-10.5 parent: 31 - - uid: 10152 +- proto: DefaultStationBeaconArtifactLab + entities: + - uid: 11363 components: - type: Transform - pos: 45.5,-26.5 + pos: -12.5,-29.5 parent: 31 - - uid: 10153 +- proto: DefaultStationBeaconAtmospherics + entities: + - uid: 11312 components: - type: Transform - rot: 3.141592653589793 rad - pos: 44.5,-26.5 + pos: 31.5,12.5 parent: 31 - - uid: 10154 +- proto: DefaultStationBeaconBar + entities: + - uid: 11319 components: - type: Transform - pos: 44.5,-25.5 + pos: -5.5,-5.5 parent: 31 - - uid: 10167 +- proto: DefaultStationBeaconBridge + entities: + - uid: 11269 components: - type: Transform - rot: 3.141592653589793 rad - pos: 33.5,-25.5 + pos: 3.5,30.5 parent: 31 - - uid: 10188 +- proto: DefaultStationBeaconBrig + entities: + - uid: 8881 components: - type: Transform - rot: 3.141592653589793 rad - pos: 19.5,-17.5 + pos: -10.5,8.5 parent: 31 - - uid: 10194 +- proto: DefaultStationBeaconCaptainsQuarters + entities: + - uid: 11268 components: - type: Transform - pos: 19.5,-11.5 + pos: 8.5,25.5 parent: 31 - - uid: 10195 +- proto: DefaultStationBeaconCargoBay + entities: + - uid: 3509 components: - type: Transform - rot: 3.141592653589793 rad - pos: 18.5,-11.5 + pos: 21.5,16.5 parent: 31 - - uid: 10206 +- proto: DefaultStationBeaconCargoReception + entities: + - uid: 2494 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 10.5,-10.5 + pos: 14.5,10.5 parent: 31 - - uid: 10284 +- proto: DefaultStationBeaconCERoom + entities: + - uid: 3513 components: - type: Transform - rot: 3.141592653589793 rad - pos: -35.5,5.5 + pos: 39.5,-0.5 parent: 31 - - uid: 10295 +- proto: DefaultStationBeaconChapel + entities: + - uid: 11653 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -35.5,15.5 + pos: -21.5,-20.5 parent: 31 - - uid: 11896 +- proto: DefaultStationBeaconChemistry + entities: + - uid: 7256 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 67.5,1.5 + pos: 16.5,-0.5 parent: 31 -- proto: DisposalJunction +- proto: DefaultStationBeaconCMORoom entities: - - uid: 176 + - uid: 7276 components: - type: Transform - rot: 4.71238902409608 rad - pos: -28.5,3.5 + pos: 23.5,-10.5 parent: 31 - - uid: 177 +- proto: DefaultStationBeaconCryonics + entities: + - uid: 8316 components: - type: Transform - rot: 4.71238902409608 rad - pos: -22.5,3.5 + pos: 8.5,-15.5 parent: 31 - - uid: 945 +- proto: DefaultStationBeaconCryosleep + entities: + - uid: 9207 components: - type: Transform - pos: -34.5,5.5 + pos: -41.5,-4.5 parent: 31 - - uid: 2016 +- proto: DefaultStationBeaconDisposals + entities: + - uid: 7954 components: - type: Transform - rot: 3.141592653589793 rad - pos: 3.5,-11.5 + pos: -30.5,-16.5 parent: 31 - - uid: 2290 +- proto: DefaultStationBeaconEngineering + entities: + - uid: 7281 components: - type: Transform - rot: 3.141592653589793 rad - pos: 12.5,-0.5 + pos: 33.5,4.5 parent: 31 - - uid: 2386 + - uid: 11056 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 14.5,-10.5 + pos: 57.5,10.5 parent: 31 - - uid: 4038 + - type: NavMapBeacon + text: Tesla Storage +- proto: DefaultStationBeaconEscapePod + entities: + - uid: 5008 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -12.5,-18.5 + pos: 49.5,-26.5 parent: 31 - - uid: 4149 + - uid: 11467 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -5.5,3.5 + rot: 3.141592653589793 rad + pos: 31.5,-17.5 parent: 31 - - uid: 4806 + - uid: 11468 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -10.5,-25.5 + rot: 3.141592653589793 rad + pos: -8.5,-41.5 parent: 31 - - uid: 7265 +- proto: DefaultStationBeaconEVAStorage + entities: + - uid: 7640 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 7.5,4.5 + pos: 8.5,9.5 parent: 31 - - uid: 9587 +- proto: DefaultStationBeaconHOPOffice + entities: + - uid: 2464 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 24.5,4.5 + pos: 8.5,19.5 parent: 31 - - uid: 10297 +- proto: DefaultStationBeaconHOSRoom + entities: + - uid: 778 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -30.5,-18.5 + pos: -8.5,20.5 parent: 31 -- proto: DisposalJunctionFlipped +- proto: DefaultStationBeaconJanitorsCloset entities: - - uid: 166 + - uid: 6523 components: - type: Transform - rot: 4.71238902409608 rad - pos: 34.5,3.5 + pos: -19.5,-0.5 parent: 31 - - uid: 170 + - uid: 6586 components: - type: Transform - pos: 3.5,4.5 + pos: -21.5,-5.5 parent: 31 - - uid: 313 + - uid: 10816 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 12.5,4.5 + pos: -30.5,-0.5 parent: 31 - - uid: 352 + - uid: 12640 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -7.5,3.5 + pos: -12.5,-12.5 parent: 31 - - uid: 365 +- proto: DefaultStationBeaconKitchen + entities: + - uid: 11318 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -11.5,3.5 + pos: -12.5,-0.5 parent: 31 - - uid: 1026 +- proto: DefaultStationBeaconLibrary + entities: + - uid: 11325 components: - type: Transform - pos: 3.5,17.5 + pos: 9.5,-26.5 parent: 31 - - uid: 3408 +- proto: DefaultStationBeaconMantis + entities: + - uid: 11757 components: - type: Transform - pos: -32.5,-8.5 + pos: 4.5,-33.5 parent: 31 - - uid: 3794 +- proto: DefaultStationBeaconMedbay + entities: + - uid: 5767 components: - type: Transform - pos: -15.5,-25.5 + pos: 9.5,-9.5 parent: 31 -- proto: DisposalPipe +- proto: DefaultStationBeaconMedical entities: - - uid: 56 + - uid: 1215 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 23.5,4.5 + pos: 9.5,-2.5 parent: 31 - - uid: 169 +- proto: DefaultStationBeaconMorgue + entities: + - uid: 7275 components: - type: Transform - pos: 3.5,5.5 + pos: 13.5,-15.5 parent: 31 - - uid: 171 +- proto: DefaultStationBeaconPermaBrig + entities: + - uid: 11316 components: - type: Transform - pos: 3.5,7.5 + pos: -17.5,9.5 parent: 31 - - uid: 180 +- proto: DefaultStationBeaconPowerBank + entities: + - uid: 11352 components: - type: Transform - pos: 3.5,8.5 + pos: 41.5,5.5 parent: 31 - - uid: 181 +- proto: DefaultStationBeaconProber + entities: + - uid: 11652 components: - type: Transform - pos: 3.5,9.5 + pos: -13.5,-24.5 parent: 31 - - uid: 189 +- proto: DefaultStationBeaconQMRoom + entities: + - uid: 11353 components: - type: Transform - pos: -28.5,5.5 + pos: 27.5,9.5 parent: 31 - - uid: 190 +- proto: DefaultStationBeaconRDRoom + entities: + - uid: 11354 components: - type: Transform - pos: -28.5,6.5 + pos: -4.5,-21.5 parent: 31 - - uid: 191 +- proto: DefaultStationBeaconRND + entities: + - uid: 11355 components: - type: Transform - pos: -28.5,7.5 + pos: -15.5,-23.5 parent: 31 - - uid: 192 +- proto: DefaultStationBeaconRobotics + entities: + - uid: 11360 components: - type: Transform - pos: -28.5,8.5 + pos: -1.5,-27.5 parent: 31 - - uid: 193 +- proto: DefaultStationBeaconSalvage + entities: + - uid: 11321 components: - type: Transform - pos: -28.5,9.5 + pos: 27.5,18.5 parent: 31 - - uid: 212 +- proto: DefaultStationBeaconScience + entities: + - uid: 1208 components: - type: Transform - pos: 24.5,5.5 + pos: -9.5,-20.5 parent: 31 - - uid: 213 +- proto: DefaultStationBeaconSecurity + entities: + - uid: 8996 components: - type: Transform - pos: 24.5,6.5 + pos: -7.5,11.5 parent: 31 - - uid: 214 +- proto: DefaultStationBeaconServerRoom + entities: + - uid: 11356 components: - type: Transform - pos: 24.5,7.5 + pos: -1.5,-21.5 parent: 31 - - uid: 223 +- proto: DefaultStationBeaconSingularity + entities: + - uid: 11358 components: - type: Transform - rot: 3.141592697301183 rad - pos: 34.5,1.5 + pos: 60.5,2.5 parent: 31 - - uid: 224 +- proto: DefaultStationBeaconSolars + entities: + - uid: 11364 components: - type: Transform - rot: 3.141592697301183 rad - pos: 34.5,0.5 + pos: 15.5,-29.5 parent: 31 - - uid: 225 + - uid: 11365 components: - type: Transform - rot: 3.141592697301183 rad - pos: 34.5,-0.5 + pos: -31.5,-32.5 parent: 31 - - uid: 226 + - type: NavMapBeacon + text: SW Engineering + - uid: 11366 components: - type: Transform - rot: 3.141592697301183 rad - pos: 34.5,-1.5 + pos: -22.5,24.5 parent: 31 - - uid: 227 +- proto: DefaultStationBeaconTechVault + entities: + - uid: 1316 components: - type: Transform - rot: 3.141592697301183 rad - pos: 34.5,-2.5 + pos: 27.5,1.5 parent: 31 - - uid: 228 +- proto: DefaultStationBeaconTEG + entities: + - uid: 11314 components: - type: Transform - rot: 3.141592697301183 rad - pos: 34.5,-3.5 + pos: 38.5,14.5 parent: 31 - - uid: 231 +- proto: DefaultStationBeaconTelecoms + entities: + - uid: 11357 components: - type: Transform - rot: 4.71238902409608 rad - pos: 30.5,3.5 + pos: 50.5,-5.5 parent: 31 - - uid: 232 +- proto: DefaultStationBeaconToolRoom + entities: + - uid: 11317 components: - type: Transform - rot: 4.71238902409608 rad - pos: 36.5,3.5 + pos: -27.5,9.5 parent: 31 - - uid: 233 +- proto: DefaultStationBeaconVault + entities: + - uid: 11315 components: - type: Transform - rot: 4.71238902409608 rad - pos: 35.5,3.5 + pos: -1.5,17.5 parent: 31 - - uid: 234 +- proto: DefaultStationBeaconWardensOffice + entities: + - uid: 762 components: - type: Transform - rot: 3.141592697301183 rad - pos: 34.5,2.5 + pos: -1.5,8.5 parent: 31 - - uid: 235 +- proto: DefibrillatorCabinetFilled + entities: + - uid: 5868 components: - type: Transform - rot: 4.71238902409608 rad - pos: 33.5,3.5 + rot: -1.5707963267948966 rad + pos: 5.5,30.5 parent: 31 - - uid: 236 + - uid: 7340 components: - type: Transform - rot: 4.71238902409608 rad - pos: 32.5,3.5 + rot: 3.141592653589793 rad + pos: 11.5,-12.5 parent: 31 - - uid: 237 + - uid: 9835 components: - type: Transform - rot: 4.71238902409608 rad - pos: 31.5,3.5 + pos: -32.5,6.5 parent: 31 - - uid: 239 + - uid: 10032 components: - type: Transform - pos: 37.5,4.5 + rot: 1.5707963267948966 rad + pos: 16.5,-17.5 parent: 31 - - uid: 240 +- proto: DeployableBarrier + entities: + - uid: 2502 components: - type: Transform - pos: 37.5,5.5 + pos: -6.5,17.5 parent: 31 - - uid: 243 + - uid: 9369 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 1.5,28.5 + pos: -5.5,17.5 parent: 31 - - uid: 244 +- proto: DeskBell + entities: + - uid: 2195 components: - type: Transform - pos: 3.5,10.5 + pos: 7.9000525,-3.1977162 parent: 31 - - uid: 246 +- proto: DiceBag + entities: + - uid: 10207 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 2.5,3.5 + pos: 10.362751,-24.393734 parent: 31 - - uid: 265 + - uid: 10208 components: - type: Transform - pos: 3.5,27.5 + pos: 10.756269,-24.370586 parent: 31 - - uid: 270 +- proto: DiseaseDiagnoser + entities: + - uid: 8435 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 0.5,28.5 + pos: 19.5,-5.5 parent: 31 - - uid: 271 +- proto: DisgustingSweptSoup + entities: + - uid: 9020 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -0.5,28.5 + pos: -12.586034,24.541399 parent: 31 - - uid: 272 +- proto: DisposalBend + entities: + - uid: 61 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -1.5,28.5 + rot: 3.141592653589793 rad + pos: 3.5,-27.5 parent: 31 - - uid: 277 + - uid: 156 components: - type: Transform - rot: 3.141592697301183 rad - pos: 3.5,-8.5 + pos: -15.5,-10.5 parent: 31 - - uid: 278 + - uid: 238 components: - type: Transform - rot: 3.141592697301183 rad - pos: 3.5,-7.5 + rot: 4.71238902409608 rad + pos: 37.5,3.5 parent: 31 - - uid: 279 + - uid: 310 components: - type: Transform - rot: 3.141592697301183 rad - pos: 3.5,-6.5 + pos: 8.5,17.5 parent: 31 - - uid: 280 + - uid: 399 components: - type: Transform - rot: 3.141592697301183 rad - pos: 3.5,-5.5 + rot: -1.5707963267948966 rad + pos: -15.5,-27.5 parent: 31 - - uid: 281 + - uid: 838 components: - type: Transform rot: 3.141592697301183 rad - pos: 3.5,-4.5 + pos: -29.5,10.5 parent: 31 - - uid: 282 - components: - - type: Transform - rot: 3.141592697301183 rad - pos: 3.5,-3.5 - parent: 31 - - uid: 283 + - uid: 839 components: - type: Transform - rot: 3.141592697301183 rad - pos: 3.5,-2.5 + pos: -28.5,10.5 parent: 31 - - uid: 284 + - uid: 848 components: - type: Transform - rot: 3.141592697301183 rad - pos: 3.5,-1.5 + pos: -8.5,-25.5 parent: 31 - - uid: 285 + - uid: 849 components: - type: Transform - rot: 3.141592697301183 rad - pos: 3.5,-0.5 + rot: 1.5707963267948966 rad + pos: -15.5,-20.5 parent: 31 - - uid: 286 + - uid: 874 components: - type: Transform - rot: 3.141592697301183 rad - pos: 3.5,0.5 + pos: 7.5,11.5 parent: 31 - - uid: 287 + - uid: 927 components: - type: Transform - rot: 3.141592697301183 rad - pos: 3.5,1.5 + rot: 1.5707963267948966 rad + pos: -14.5,-16.5 parent: 31 - - uid: 288 + - uid: 2012 components: - type: Transform - rot: 3.141592697301183 rad - pos: 3.5,2.5 + rot: -1.5707963267948966 rad + pos: -25.5,-16.5 parent: 31 - - uid: 289 + - uid: 2299 components: - type: Transform - rot: 3.141592697301183 rad - pos: 3.5,-10.5 + rot: -1.5707963267948966 rad + pos: 10.5,-11.5 parent: 31 - - uid: 291 + - uid: 2315 components: - type: Transform - rot: 4.71238902409608 rad - pos: 5.5,-11.5 + pos: -5.5,12.5 parent: 31 - - uid: 292 + - uid: 2331 components: - type: Transform - rot: 4.71238902409608 rad - pos: 6.5,-11.5 + rot: 3.141592653589793 rad + pos: -15.5,-11.5 parent: 31 - - uid: 293 + - uid: 2335 components: - type: Transform - rot: 4.71238902409608 rad - pos: 7.5,-11.5 + pos: -4.5,-16.5 parent: 31 - - uid: 294 + - uid: 2499 components: - type: Transform - rot: 4.71238902409608 rad - pos: 8.5,-11.5 + rot: 1.5707963267948966 rad + pos: 3.5,28.5 parent: 31 - - uid: 295 + - uid: 3535 components: - type: Transform - rot: 4.71238902409608 rad - pos: 4.5,-11.5 + rot: 1.5707963267948966 rad + pos: 49.5,-14.5 parent: 31 - - uid: 296 + - uid: 3790 components: - type: Transform - rot: 4.71238902409608 rad - pos: 9.5,-11.5 + rot: 3.141592653589793 rad + pos: -25.5,-3.5 parent: 31 - - uid: 301 + - uid: 4056 components: - type: Transform - pos: -5.5,7.5 + pos: -10.5,-18.5 parent: 31 - - uid: 302 + - uid: 4090 components: - type: Transform - rot: 3.141592697301183 rad - pos: 12.5,0.5 + rot: 3.141592653589793 rad + pos: -14.5,-18.5 parent: 31 - - uid: 304 + - uid: 4206 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 13.5,-0.5 + rot: 3.141592653589793 rad + pos: -32.5,-14.5 parent: 31 - - uid: 311 + - uid: 4703 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 6.5,17.5 + pos: -30.5,-14.5 parent: 31 - - uid: 314 + - uid: 4790 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 13.5,4.5 + pos: 6.5,-27.5 parent: 31 - - uid: 315 + - uid: 5100 components: - type: Transform - rot: 3.141592697301183 rad - pos: 12.5,2.5 + pos: 14.5,-0.5 parent: 31 - - uid: 316 + - uid: 5292 components: - type: Transform rot: 1.5707963267948966 rad - pos: 14.5,4.5 + pos: -28.5,-16.5 parent: 31 - - uid: 317 + - uid: 5742 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 15.5,4.5 + rot: 3.141592653589793 rad + pos: -28.5,-29.5 parent: 31 - - uid: 318 + - uid: 5758 components: - type: Transform rot: 1.5707963267948966 rad - pos: 16.5,4.5 + pos: -20.5,-27.5 parent: 31 - - uid: 319 + - uid: 7420 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 17.5,4.5 + pos: 18.5,-10.5 parent: 31 - - uid: 320 + - uid: 7430 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 18.5,4.5 + rot: 3.141592653589793 rad + pos: 29.5,3.5 parent: 31 - - uid: 321 + - uid: 7631 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 19.5,4.5 + rot: -1.5707963267948966 rad + pos: -20.5,-29.5 parent: 31 - - uid: 322 + - uid: 8092 components: - type: Transform rot: 1.5707963267948966 rad - pos: 20.5,4.5 + pos: 62.5,1.5 parent: 31 - - uid: 323 + - uid: 8093 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 21.5,4.5 + rot: -1.5707963267948966 rad + pos: 62.5,0.5 parent: 31 - - uid: 324 + - uid: 8445 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 22.5,4.5 + rot: -1.5707963267948966 rad + pos: -7.5,1.5 parent: 31 - - uid: 325 + - uid: 9338 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 27.5,4.5 + rot: 3.141592653589793 rad + pos: -34.5,3.5 parent: 31 - - uid: 326 + - uid: 10188 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 26.5,4.5 + rot: 3.141592653589793 rad + pos: 19.5,-17.5 parent: 31 - - uid: 327 + - uid: 10194 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 28.5,4.5 + pos: 19.5,-11.5 parent: 31 - - uid: 330 + - uid: 10195 components: - type: Transform - pos: 3.5,6.5 + rot: 3.141592653589793 rad + pos: 18.5,-11.5 parent: 31 - - uid: 334 + - uid: 10206 components: - type: Transform - rot: 3.141592697301183 rad - pos: 3.5,-9.5 + rot: 1.5707963267948966 rad + pos: 10.5,-10.5 parent: 31 - - uid: 342 + - uid: 10284 components: - type: Transform rot: 3.141592653589793 rad - pos: -11.5,2.5 + pos: -35.5,5.5 parent: 31 - - uid: 344 + - uid: 10295 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -17.5,-27.5 + rot: 1.5707963267948966 rad + pos: -35.5,15.5 parent: 31 - - uid: 348 + - uid: 10498 components: - type: Transform - pos: -22.5,4.5 + rot: -1.5707963267948966 rad + pos: -16.5,0.5 parent: 31 - - uid: 349 + - uid: 10590 components: - type: Transform - pos: -22.5,5.5 + rot: 1.5707963267948966 rad + pos: -17.5,0.5 parent: 31 - - uid: 353 + - uid: 11896 components: - type: Transform - rot: 4.71238902409608 rad - pos: -6.5,3.5 + rot: -1.5707963267948966 rad + pos: 67.5,1.5 parent: 31 - - uid: 355 + - uid: 12103 components: - type: Transform - rot: 4.71238902409608 rad - pos: -4.5,3.5 + rot: -1.5707963267948966 rad + pos: 50.5,-14.5 parent: 31 - - uid: 356 +- proto: DisposalJunction + entities: + - uid: 176 components: - type: Transform rot: 4.71238902409608 rad - pos: -3.5,3.5 + pos: -28.5,3.5 parent: 31 - - uid: 357 + - uid: 177 components: - type: Transform rot: 4.71238902409608 rad - pos: -2.5,3.5 + pos: -22.5,3.5 parent: 31 - - uid: 358 + - uid: 945 components: - type: Transform - rot: 4.71238902409608 rad - pos: -1.5,3.5 + pos: -34.5,5.5 parent: 31 - - uid: 359 + - uid: 2016 components: - type: Transform - rot: 4.71238902409608 rad - pos: -0.5,3.5 + rot: 3.141592653589793 rad + pos: 3.5,-11.5 parent: 31 - - uid: 361 + - uid: 2290 components: - type: Transform - rot: 4.71238902409608 rad - pos: 1.5,3.5 + rot: 3.141592653589793 rad + pos: 12.5,-0.5 parent: 31 - - uid: 362 + - uid: 2386 components: - type: Transform - rot: 4.71238902409608 rad - pos: -8.5,3.5 + rot: -1.5707963267948966 rad + pos: 14.5,-10.5 parent: 31 - - uid: 363 + - uid: 4038 components: - type: Transform - rot: 4.71238902409608 rad - pos: -9.5,3.5 + rot: 1.5707963267948966 rad + pos: -12.5,-18.5 parent: 31 - - uid: 364 + - uid: 4149 components: - type: Transform - rot: 4.71238902409608 rad - pos: -10.5,3.5 + rot: -1.5707963267948966 rad + pos: -5.5,3.5 parent: 31 - - uid: 367 + - uid: 4806 components: - type: Transform - rot: 4.71238902409608 rad - pos: -13.5,3.5 + rot: -1.5707963267948966 rad + pos: -10.5,-25.5 parent: 31 - - uid: 368 + - uid: 7265 components: - type: Transform - rot: 4.71238902409608 rad - pos: -14.5,3.5 + rot: -1.5707963267948966 rad + pos: 7.5,4.5 parent: 31 - - uid: 369 + - uid: 9587 components: - type: Transform - rot: 4.71238902409608 rad - pos: -15.5,3.5 + rot: -1.5707963267948966 rad + pos: 24.5,4.5 parent: 31 - - uid: 370 + - uid: 10297 components: - type: Transform - rot: 4.71238902409608 rad - pos: -16.5,3.5 + rot: -1.5707963267948966 rad + pos: -30.5,-18.5 parent: 31 - - uid: 371 +- proto: DisposalJunctionFlipped + entities: + - uid: 166 components: - type: Transform rot: 4.71238902409608 rad - pos: -17.5,3.5 + pos: 34.5,3.5 parent: 31 - - uid: 372 + - uid: 170 components: - type: Transform - rot: 4.71238902409608 rad - pos: -18.5,3.5 + pos: 3.5,4.5 parent: 31 - - uid: 373 + - uid: 313 components: - type: Transform - rot: 4.71238902409608 rad - pos: -19.5,3.5 + rot: -1.5707963267948966 rad + pos: 12.5,4.5 parent: 31 - - uid: 374 + - uid: 352 components: - type: Transform - rot: 4.71238902409608 rad - pos: -20.5,3.5 + rot: -1.5707963267948966 rad + pos: -7.5,3.5 parent: 31 - - uid: 375 + - uid: 365 components: - type: Transform - rot: 4.71238902409608 rad - pos: -21.5,3.5 + rot: -1.5707963267948966 rad + pos: -11.5,3.5 parent: 31 - - uid: 377 + - uid: 1026 components: - type: Transform - rot: 4.71238902409608 rad - pos: -23.5,3.5 + pos: 3.5,17.5 parent: 31 - - uid: 378 + - uid: 3794 components: - type: Transform - rot: 4.71238902409608 rad - pos: -24.5,3.5 + pos: -15.5,-25.5 parent: 31 - - uid: 379 + - uid: 4668 components: - type: Transform - rot: 4.71238902409608 rad + rot: -1.5707963267948966 rad pos: -25.5,3.5 parent: 31 - - uid: 380 + - uid: 7966 components: - type: Transform - rot: 4.71238902409608 rad - pos: -26.5,3.5 + rot: -1.5707963267948966 rad + pos: -16.5,3.5 parent: 31 - - uid: 381 +- proto: DisposalPipe + entities: + - uid: 56 components: - type: Transform - rot: 4.71238902409608 rad - pos: -27.5,3.5 + rot: 1.5707963267948966 rad + pos: 23.5,4.5 parent: 31 - - uid: 382 + - uid: 169 components: - type: Transform - pos: -28.5,4.5 + pos: 3.5,5.5 parent: 31 - - uid: 383 + - uid: 171 components: - type: Transform - rot: 4.71238902409608 rad - pos: -29.5,3.5 + pos: 3.5,7.5 parent: 31 - - uid: 384 + - uid: 180 components: - type: Transform - rot: 4.71238902409608 rad - pos: -30.5,3.5 + pos: 3.5,8.5 parent: 31 - - uid: 385 + - uid: 181 components: - type: Transform - rot: 4.71238902409608 rad - pos: -31.5,3.5 + pos: 3.5,9.5 parent: 31 - - uid: 386 + - uid: 189 components: - type: Transform - pos: -32.5,2.5 + pos: -28.5,5.5 parent: 31 - - uid: 387 + - uid: 190 components: - type: Transform - pos: -32.5,1.5 + pos: -28.5,6.5 parent: 31 - - uid: 388 + - uid: 191 components: - type: Transform - pos: -32.5,0.5 + pos: -28.5,7.5 parent: 31 - - uid: 389 + - uid: 192 components: - type: Transform - pos: -32.5,-0.5 + pos: -28.5,8.5 parent: 31 - - uid: 390 + - uid: 193 components: - type: Transform - pos: -32.5,-1.5 + pos: -28.5,9.5 parent: 31 - - uid: 391 + - uid: 212 components: - type: Transform - pos: -32.5,-2.5 + pos: 24.5,5.5 parent: 31 - - uid: 392 + - uid: 213 components: - type: Transform - pos: -32.5,-3.5 + pos: 24.5,6.5 parent: 31 - - uid: 393 + - uid: 214 components: - type: Transform - pos: -32.5,-4.5 + pos: 24.5,7.5 parent: 31 - - uid: 394 + - uid: 223 components: - type: Transform - pos: -32.5,-5.5 + rot: 3.141592697301183 rad + pos: 34.5,1.5 parent: 31 - - uid: 395 + - uid: 224 components: - type: Transform - pos: -32.5,-6.5 + rot: 3.141592697301183 rad + pos: 34.5,0.5 parent: 31 - - uid: 396 + - uid: 225 components: - type: Transform - pos: -32.5,-7.5 + rot: 3.141592697301183 rad + pos: 34.5,-0.5 parent: 31 - - uid: 405 + - uid: 226 components: - type: Transform - pos: -15.5,-23.5 + rot: 3.141592697301183 rad + pos: 34.5,-1.5 parent: 31 - - uid: 406 + - uid: 227 components: - type: Transform - pos: -15.5,-24.5 + rot: 3.141592697301183 rad + pos: 34.5,-2.5 parent: 31 - - uid: 414 + - uid: 228 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -11.5,-25.5 + rot: 3.141592697301183 rad + pos: 34.5,-3.5 parent: 31 - - uid: 624 + - uid: 231 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 16.5,-10.5 + rot: 4.71238902409608 rad + pos: 30.5,3.5 parent: 31 - - uid: 758 + - uid: 232 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 15.5,-10.5 + rot: 4.71238902409608 rad + pos: 36.5,3.5 parent: 31 - - uid: 788 + - uid: 233 components: - type: Transform - pos: -14.5,-17.5 + rot: 4.71238902409608 rad + pos: 35.5,3.5 parent: 31 - - uid: 846 + - uid: 234 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -16.5,-27.5 + rot: 3.141592697301183 rad + pos: 34.5,2.5 parent: 31 - - uid: 847 + - uid: 235 components: - type: Transform - pos: -15.5,-26.5 + rot: 4.71238902409608 rad + pos: 33.5,3.5 parent: 31 - - uid: 921 + - uid: 236 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -12.5,3.5 + rot: 4.71238902409608 rad + pos: 32.5,3.5 parent: 31 - - uid: 947 + - uid: 237 components: - type: Transform - pos: -15.5,-21.5 + rot: 4.71238902409608 rad + pos: 31.5,3.5 parent: 31 - - uid: 1031 + - uid: 239 components: - type: Transform - pos: -15.5,-22.5 + pos: 37.5,4.5 parent: 31 - - uid: 1062 + - uid: 240 components: - type: Transform - pos: 7.5,5.5 + pos: 37.5,5.5 parent: 31 - - uid: 1101 + - uid: 244 components: - type: Transform - pos: 7.5,6.5 + pos: 3.5,10.5 parent: 31 - - uid: 1221 + - uid: 246 components: - type: Transform - pos: 7.5,7.5 + rot: -1.5707963267948966 rad + pos: 2.5,3.5 parent: 31 - - uid: 1362 + - uid: 265 components: - type: Transform - pos: 7.5,8.5 + pos: 3.5,27.5 parent: 31 - - uid: 1375 + - uid: 270 components: - type: Transform - pos: 7.5,10.5 + rot: -1.5707963267948966 rad + pos: 0.5,28.5 parent: 31 - - uid: 1493 + - uid: 277 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -11.5,-18.5 + rot: 3.141592697301183 rad + pos: 3.5,-8.5 parent: 31 - - uid: 1701 + - uid: 278 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -18.5,-27.5 + rot: 3.141592697301183 rad + pos: 3.5,-7.5 parent: 31 - - uid: 2014 + - uid: 279 components: - type: Transform - rot: 3.141592653589793 rad - pos: 3.5,-13.5 + rot: 3.141592697301183 rad + pos: 3.5,-6.5 parent: 31 - - uid: 2015 + - uid: 280 components: - type: Transform - rot: 3.141592653589793 rad - pos: 3.5,-12.5 + rot: 3.141592697301183 rad + pos: 3.5,-5.5 parent: 31 - - uid: 2141 + - uid: 281 components: - type: Transform - pos: -8.5,-27.5 + rot: 3.141592697301183 rad + pos: 3.5,-4.5 parent: 31 - - uid: 2143 + - uid: 282 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 7.5,17.5 + rot: 3.141592697301183 rad + pos: 3.5,-3.5 parent: 31 - - uid: 2160 + - uid: 283 components: - type: Transform - pos: 3.5,21.5 + rot: 3.141592697301183 rad + pos: 3.5,-2.5 parent: 31 - - uid: 2260 + - uid: 284 components: - type: Transform - pos: -28.5,-20.5 + rot: 3.141592697301183 rad + pos: 3.5,-1.5 parent: 31 - - uid: 2296 + - uid: 285 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -8.5,-16.5 + rot: 3.141592697301183 rad + pos: 3.5,-0.5 parent: 31 - - uid: 2305 + - uid: 286 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -6.5,12.5 + rot: 3.141592697301183 rad + pos: 3.5,0.5 parent: 31 - - uid: 2306 + - uid: 287 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,12.5 + rot: 3.141592697301183 rad + pos: 3.5,1.5 parent: 31 - - uid: 2308 + - uid: 288 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -8.5,12.5 + rot: 3.141592697301183 rad + pos: 3.5,2.5 parent: 31 - - uid: 2314 + - uid: 289 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -6.5,-16.5 + rot: 3.141592697301183 rad + pos: 3.5,-10.5 parent: 31 - - uid: 2336 + - uid: 291 components: - type: Transform - pos: -28.5,-19.5 + rot: 4.71238902409608 rad + pos: 5.5,-11.5 parent: 31 - - uid: 2337 + - uid: 292 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -5.5,-16.5 + rot: 4.71238902409608 rad + pos: 6.5,-11.5 parent: 31 - - uid: 2338 + - uid: 293 components: - type: Transform - pos: -28.5,-21.5 + rot: 4.71238902409608 rad + pos: 7.5,-11.5 parent: 31 - - uid: 2385 + - uid: 294 components: - type: Transform - rot: 3.141592653589793 rad - pos: 14.5,-9.5 + rot: 4.71238902409608 rad + pos: 8.5,-11.5 parent: 31 - - uid: 2390 + - uid: 295 components: - type: Transform - pos: -10.5,-19.5 + rot: 4.71238902409608 rad + pos: 4.5,-11.5 parent: 31 - - uid: 2456 + - uid: 296 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -7.5,-16.5 + rot: 4.71238902409608 rad + pos: 9.5,-11.5 parent: 31 - - uid: 2527 + - uid: 301 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 4.5,17.5 + pos: -5.5,7.5 parent: 31 - - uid: 2621 + - uid: 302 components: - type: Transform - pos: -28.5,-22.5 + rot: 3.141592697301183 rad + pos: 12.5,0.5 parent: 31 - - uid: 2841 + - uid: 304 components: - type: Transform - pos: -28.5,-23.5 + rot: -1.5707963267948966 rad + pos: 13.5,-0.5 parent: 31 - - uid: 2857 + - uid: 311 components: - type: Transform - pos: -8.5,-26.5 + rot: -1.5707963267948966 rad + pos: 6.5,17.5 parent: 31 - - uid: 2858 + - uid: 314 components: - type: Transform - rot: 3.141592653589793 rad - pos: -10.5,-24.5 + rot: 1.5707963267948966 rad + pos: 13.5,4.5 parent: 31 - - uid: 2859 + - uid: 315 components: - type: Transform - rot: 3.141592653589793 rad - pos: -10.5,-23.5 + rot: 3.141592697301183 rad + pos: 12.5,2.5 parent: 31 - - uid: 2861 + - uid: 316 components: - type: Transform - rot: 3.141592653589793 rad - pos: -10.5,-22.5 + rot: 1.5707963267948966 rad + pos: 14.5,4.5 parent: 31 - - uid: 2862 + - uid: 317 components: - type: Transform rot: 1.5707963267948966 rad - pos: -26.5,-16.5 + pos: 15.5,4.5 parent: 31 - - uid: 2863 + - uid: 318 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -29.5,-8.5 + rot: 1.5707963267948966 rad + pos: 16.5,4.5 parent: 31 - - uid: 2864 + - uid: 319 components: - type: Transform - pos: -8.5,-30.5 + rot: 1.5707963267948966 rad + pos: 17.5,4.5 parent: 31 - - uid: 3354 + - uid: 320 components: - type: Transform - rot: 3.141592653589793 rad - pos: -33.5,-10.5 + rot: 1.5707963267948966 rad + pos: 18.5,4.5 parent: 31 - - uid: 3377 + - uid: 321 components: - type: Transform rot: 1.5707963267948966 rad - pos: 25.5,4.5 + pos: 19.5,4.5 parent: 31 - - uid: 3381 + - uid: 322 components: - type: Transform - pos: -8.5,-29.5 + rot: 1.5707963267948966 rad + pos: 20.5,4.5 parent: 31 - - uid: 3382 + - uid: 323 components: - type: Transform - pos: -8.5,-28.5 + rot: 1.5707963267948966 rad + pos: 21.5,4.5 parent: 31 - - uid: 3383 + - uid: 324 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -9.5,-25.5 + rot: 1.5707963267948966 rad + pos: 22.5,4.5 parent: 31 - - uid: 3593 + - uid: 325 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -30.5,-8.5 + rot: 1.5707963267948966 rad + pos: 27.5,4.5 parent: 31 - - uid: 3596 + - uid: 326 components: - type: Transform - pos: -32.5,-10.5 + rot: 1.5707963267948966 rad + pos: 26.5,4.5 parent: 31 - - uid: 3731 + - uid: 327 components: - type: Transform rot: 1.5707963267948966 rad - pos: -27.5,-16.5 + pos: 28.5,4.5 parent: 31 - - uid: 3741 + - uid: 330 components: - type: Transform - pos: -32.5,-13.5 + pos: 3.5,6.5 parent: 31 - - uid: 3742 + - uid: 334 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -19.5,-27.5 + rot: 3.141592697301183 rad + pos: 3.5,-9.5 parent: 31 - - uid: 3745 + - uid: 342 components: - type: Transform - pos: -8.5,-31.5 + rot: 3.141592653589793 rad + pos: -11.5,2.5 parent: 31 - - uid: 3747 + - uid: 344 components: - type: Transform - pos: -32.5,-12.5 + rot: -1.5707963267948966 rad + pos: -17.5,-27.5 parent: 31 - - uid: 3748 + - uid: 348 components: - type: Transform - pos: -32.5,-11.5 + pos: -22.5,4.5 parent: 31 - - uid: 3868 + - uid: 349 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 5.5,17.5 + pos: -22.5,5.5 parent: 31 - - uid: 3876 + - uid: 353 components: - type: Transform - pos: -28.5,-17.5 + rot: 4.71238902409608 rad + pos: -6.5,3.5 parent: 31 - - uid: 3877 + - uid: 355 components: - type: Transform - pos: 3.5,20.5 + rot: 4.71238902409608 rad + pos: -4.5,3.5 parent: 31 - - uid: 3939 + - uid: 356 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 2.5,28.5 + rot: 4.71238902409608 rad + pos: -3.5,3.5 parent: 31 - - uid: 4036 + - uid: 357 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -13.5,-16.5 + rot: 4.71238902409608 rad + pos: -2.5,3.5 parent: 31 - - uid: 4118 + - uid: 358 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -13.5,-18.5 + rot: 4.71238902409608 rad + pos: -1.5,3.5 parent: 31 - - uid: 4158 + - uid: 359 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -12.5,-16.5 + rot: 4.71238902409608 rad + pos: -0.5,3.5 parent: 31 - - uid: 4183 + - uid: 361 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -9.5,-16.5 + rot: 4.71238902409608 rad + pos: 1.5,3.5 parent: 31 - - uid: 4199 + - uid: 362 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -10.5,-16.5 + rot: 4.71238902409608 rad + pos: -8.5,3.5 parent: 31 - - uid: 4211 + - uid: 363 components: - type: Transform - pos: -5.5,9.5 + rot: 4.71238902409608 rad + pos: -9.5,3.5 parent: 31 - - uid: 4325 + - uid: 364 components: - type: Transform - pos: 12.5,1.5 + rot: 4.71238902409608 rad + pos: -10.5,3.5 parent: 31 - - uid: 4329 + - uid: 367 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -11.5,-16.5 + rot: 4.71238902409608 rad + pos: -13.5,3.5 parent: 31 - - uid: 4728 + - uid: 368 components: - type: Transform - pos: 3.5,-21.5 + rot: 4.71238902409608 rad + pos: -14.5,3.5 parent: 31 - - uid: 4739 + - uid: 369 components: - type: Transform - pos: 3.5,-20.5 + rot: 4.71238902409608 rad + pos: -15.5,3.5 parent: 31 - - uid: 4747 + - uid: 371 components: - type: Transform - pos: 3.5,-24.5 + rot: 4.71238902409608 rad + pos: -17.5,3.5 parent: 31 - - uid: 4748 + - uid: 372 components: - type: Transform - pos: 3.5,-23.5 + rot: 4.71238902409608 rad + pos: -18.5,3.5 parent: 31 - - uid: 4749 + - uid: 373 components: - type: Transform - pos: 3.5,-22.5 + rot: 4.71238902409608 rad + pos: -19.5,3.5 parent: 31 - - uid: 4792 + - uid: 374 components: - type: Transform - rot: 3.141592653589793 rad - pos: 6.5,-28.5 + rot: 4.71238902409608 rad + pos: -20.5,3.5 parent: 31 - - uid: 4793 + - uid: 375 components: - type: Transform - rot: 3.141592653589793 rad - pos: 6.5,-29.5 + rot: 4.71238902409608 rad + pos: -21.5,3.5 parent: 31 - - uid: 4798 + - uid: 377 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 5.5,-27.5 + rot: 4.71238902409608 rad + pos: -23.5,3.5 parent: 31 - - uid: 4799 + - uid: 378 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 4.5,-27.5 + rot: 4.71238902409608 rad + pos: -24.5,3.5 parent: 31 - - uid: 4800 + - uid: 380 components: - type: Transform - pos: 3.5,-16.5 + rot: 4.71238902409608 rad + pos: -26.5,3.5 parent: 31 - - uid: 4801 + - uid: 381 components: - type: Transform - pos: 3.5,-14.5 + rot: 4.71238902409608 rad + pos: -27.5,3.5 parent: 31 - - uid: 4802 + - uid: 382 components: - type: Transform - pos: 3.5,-15.5 + pos: -28.5,4.5 parent: 31 - - uid: 4803 + - uid: 383 components: - type: Transform - pos: 3.5,-18.5 + rot: 4.71238902409608 rad + pos: -29.5,3.5 parent: 31 - - uid: 4804 + - uid: 384 components: - type: Transform - pos: 3.5,-17.5 + rot: 4.71238902409608 rad + pos: -30.5,3.5 parent: 31 - - uid: 4805 + - uid: 385 components: - type: Transform - pos: 3.5,-19.5 + rot: 4.71238902409608 rad + pos: -31.5,3.5 parent: 31 - - uid: 4811 + - uid: 386 components: - type: Transform - pos: 3.5,-26.5 + pos: -32.5,2.5 parent: 31 - - uid: 4812 + - uid: 387 components: - type: Transform - pos: 3.5,-25.5 + pos: -32.5,1.5 parent: 31 - - uid: 4878 + - uid: 388 components: - type: Transform - pos: -5.5,8.5 + pos: -32.5,0.5 parent: 31 - - uid: 4969 + - uid: 389 components: - type: Transform - rot: 3.141592653589793 rad - pos: -10.5,-21.5 + pos: -32.5,-0.5 parent: 31 - - uid: 5085 + - uid: 390 components: - type: Transform - pos: -5.5,11.5 + pos: -32.5,-1.5 parent: 31 - - uid: 5099 + - uid: 391 components: - type: Transform - rot: 3.141592653589793 rad - pos: 14.5,-1.5 + pos: -32.5,-2.5 parent: 31 - - uid: 5144 + - uid: 392 components: - type: Transform - pos: -5.5,10.5 + pos: -32.5,-3.5 parent: 31 - - uid: 5191 + - uid: 393 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -13.5,-25.5 + pos: -32.5,-4.5 parent: 31 - - uid: 5232 + - uid: 394 components: - type: Transform - pos: -5.5,6.5 + pos: -32.5,-5.5 parent: 31 - - uid: 5234 + - uid: 395 components: - type: Transform - pos: -5.5,4.5 + pos: -32.5,-6.5 parent: 31 - - uid: 5235 + - uid: 405 components: - type: Transform - pos: -5.5,5.5 + pos: -15.5,-23.5 parent: 31 - - uid: 5250 + - uid: 406 components: - type: Transform - pos: -32.5,-9.5 + pos: -15.5,-24.5 parent: 31 - - uid: 5291 + - uid: 414 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -28.5,-8.5 + rot: 1.5707963267948966 rad + pos: -11.5,-25.5 parent: 31 - - uid: 5733 + - uid: 624 components: - type: Transform rot: 1.5707963267948966 rad - pos: -23.5,-29.5 + pos: 16.5,-10.5 parent: 31 - - uid: 5740 + - uid: 758 components: - type: Transform rot: 1.5707963267948966 rad - pos: -27.5,-29.5 + pos: 15.5,-10.5 parent: 31 - - uid: 5756 + - uid: 788 components: - type: Transform - rot: 3.141592653589793 rad - pos: -20.5,-28.5 + pos: -14.5,-17.5 parent: 31 - - uid: 5760 + - uid: 846 components: - type: Transform - pos: -28.5,-27.5 + rot: -1.5707963267948966 rad + pos: -16.5,-27.5 parent: 31 - - uid: 5763 + - uid: 847 components: - type: Transform - pos: -28.5,-28.5 + pos: -15.5,-26.5 parent: 31 - - uid: 5771 + - uid: 921 components: - type: Transform rot: 1.5707963267948966 rad - pos: -22.5,-29.5 + pos: -12.5,3.5 parent: 31 - - uid: 7082 + - uid: 947 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -24.5,-29.5 + pos: -15.5,-21.5 parent: 31 - - uid: 7224 + - uid: 1031 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -21.5,-29.5 + pos: -15.5,-22.5 parent: 31 - - uid: 7356 + - uid: 1062 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -26.5,-29.5 + pos: 7.5,5.5 parent: 31 - - uid: 7380 + - uid: 1101 components: - type: Transform - rot: 3.141592653589793 rad - pos: -10.5,-20.5 + pos: 7.5,6.5 parent: 31 - - uid: 7381 + - uid: 1221 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -14.5,-25.5 + pos: 7.5,7.5 parent: 31 - - uid: 7415 + - uid: 1343 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -25.5,-29.5 + rot: 3.141592653589793 rad + pos: 50.5,-13.5 parent: 31 - - uid: 7421 + - uid: 1362 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 17.5,-10.5 + pos: 7.5,8.5 parent: 31 - - uid: 7427 + - uid: 1367 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -12.5,-25.5 + rot: -1.5707963267948966 rad + pos: -6.5,12.5 parent: 31 - - uid: 7451 + - uid: 1375 components: - type: Transform - pos: 7.5,9.5 + pos: 7.5,10.5 parent: 31 - - uid: 7452 + - uid: 1493 components: - type: Transform - rot: 3.141592653589793 rad - pos: 3.5,11.5 + rot: 1.5707963267948966 rad + pos: -11.5,-18.5 parent: 31 - - uid: 7584 + - uid: 1701 components: - type: Transform - pos: -28.5,-26.5 + rot: -1.5707963267948966 rad + pos: -18.5,-27.5 parent: 31 - - uid: 7630 + - uid: 2014 components: - type: Transform - pos: -28.5,-25.5 + rot: 3.141592653589793 rad + pos: 3.5,-13.5 parent: 31 - - uid: 7962 + - uid: 2015 components: - type: Transform - pos: 29.5,5.5 + rot: 3.141592653589793 rad + pos: 3.5,-12.5 parent: 31 - - uid: 8171 + - uid: 2141 components: - type: Transform - rot: 3.141592653589793 rad - pos: 12.5,-2.5 + pos: -8.5,-27.5 parent: 31 - - uid: 8442 + - uid: 2143 components: - type: Transform rot: -1.5707963267948966 rad - pos: 0.5,3.5 + pos: 7.5,17.5 parent: 31 - - uid: 8446 + - uid: 2160 components: - type: Transform - rot: 3.141592653589793 rad - pos: -7.5,2.5 + pos: 3.5,21.5 parent: 31 - - uid: 9171 + - uid: 2260 components: - type: Transform - pos: -4.5,6.5 + pos: -28.5,-20.5 parent: 31 - - uid: 9221 + - uid: 2296 components: - type: Transform - rot: 3.141592653589793 rad - pos: -4.5,9.5 + rot: -1.5707963267948966 rad + pos: -8.5,-16.5 parent: 31 - - uid: 9229 + - uid: 2306 components: - type: Transform - rot: 3.141592653589793 rad - pos: 3.5,12.5 + rot: 1.5707963267948966 rad + pos: -16.5,-10.5 parent: 31 - - uid: 9230 + - uid: 2314 components: - type: Transform - rot: 3.141592653589793 rad - pos: 3.5,13.5 + rot: -1.5707963267948966 rad + pos: -6.5,-16.5 parent: 31 - - uid: 9324 + - uid: 2336 components: - type: Transform - rot: 3.141592653589793 rad - pos: 3.5,16.5 + pos: -28.5,-19.5 parent: 31 - - uid: 9340 + - uid: 2337 components: - type: Transform rot: -1.5707963267948966 rad - pos: -33.5,3.5 + pos: -5.5,-16.5 parent: 31 - - uid: 9341 + - uid: 2338 components: - type: Transform - rot: 3.141592653589793 rad - pos: -34.5,4.5 + pos: -28.5,-21.5 parent: 31 - - uid: 9378 + - uid: 2385 components: - type: Transform rot: 3.141592653589793 rad - pos: 3.5,15.5 - parent: 31 - - uid: 9458 - components: - - type: Transform - pos: -28.5,-24.5 + pos: 14.5,-9.5 parent: 31 - - uid: 9513 + - uid: 2390 components: - type: Transform - rot: 3.141592653589793 rad - pos: 3.5,14.5 + pos: -10.5,-19.5 parent: 31 - - uid: 9520 + - uid: 2456 components: - type: Transform - pos: 3.5,22.5 + rot: -1.5707963267948966 rad + pos: -7.5,-16.5 parent: 31 - - uid: 9521 + - uid: 2527 components: - type: Transform - pos: 3.5,23.5 + rot: -1.5707963267948966 rad + pos: 4.5,17.5 parent: 31 - - uid: 9522 + - uid: 2621 components: - type: Transform - pos: 3.5,24.5 + pos: -28.5,-22.5 parent: 31 - - uid: 9523 + - uid: 2735 components: - type: Transform - pos: 3.5,25.5 + pos: -32.5,-8.5 parent: 31 - - uid: 9524 + - uid: 2841 components: - type: Transform - pos: 3.5,26.5 + pos: -28.5,-23.5 parent: 31 - - uid: 9544 + - uid: 2857 components: - type: Transform - pos: 10.5,-6.5 + pos: -8.5,-26.5 parent: 31 - - uid: 9559 + - uid: 2858 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 5.5,4.5 + rot: 3.141592653589793 rad + pos: -10.5,-24.5 parent: 31 - - uid: 9588 + - uid: 2859 components: - type: Transform - pos: 12.5,3.5 + rot: 3.141592653589793 rad + pos: -10.5,-23.5 parent: 31 - - uid: 9599 + - uid: 2861 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 4.5,4.5 + rot: 3.141592653589793 rad + pos: -10.5,-22.5 parent: 31 - - uid: 9633 + - uid: 2862 components: - type: Transform rot: 1.5707963267948966 rad - pos: 17.5,10.5 + pos: -26.5,-16.5 parent: 31 - - uid: 9638 + - uid: 2864 components: - type: Transform - pos: 13.5,8.5 + pos: -8.5,-30.5 parent: 31 - - uid: 9649 + - uid: 3208 components: - type: Transform rot: -1.5707963267948966 rad - pos: 11.5,4.5 + pos: -8.5,12.5 parent: 31 - - uid: 9650 + - uid: 3235 components: - type: Transform rot: -1.5707963267948966 rad - pos: 10.5,4.5 + pos: -7.5,12.5 parent: 31 - - uid: 9651 + - uid: 3354 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 9.5,4.5 + rot: 3.141592653589793 rad + pos: -33.5,-10.5 parent: 31 - - uid: 9652 + - uid: 3377 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 9.5,4.5 + rot: 1.5707963267948966 rad + pos: 25.5,4.5 parent: 31 - - uid: 9653 + - uid: 3381 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 8.5,4.5 + pos: -8.5,-29.5 parent: 31 - - uid: 9655 + - uid: 3382 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 6.5,4.5 + pos: -8.5,-28.5 parent: 31 - - uid: 9847 + - uid: 3383 components: - type: Transform - rot: 3.141592653589793 rad - pos: 3.5,18.5 + rot: -1.5707963267948966 rad + pos: -9.5,-25.5 parent: 31 - - uid: 9849 + - uid: 3397 components: - type: Transform rot: 3.141592653589793 rad - pos: 3.5,19.5 + pos: -25.5,-0.5 parent: 31 - - uid: 10148 + - uid: 3596 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 48.5,-29.5 + pos: -32.5,-10.5 parent: 31 - - uid: 10155 + - uid: 3731 components: - type: Transform - pos: 45.5,-27.5 + rot: 1.5707963267948966 rad + pos: -27.5,-16.5 parent: 31 - - uid: 10156 + - uid: 3732 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 46.5,-28.5 + rot: 3.141592653589793 rad + pos: 50.5,-12.5 parent: 31 - - uid: 10157 + - uid: 3741 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 43.5,-25.5 + pos: -32.5,-13.5 parent: 31 - - uid: 10158 + - uid: 3742 components: - type: Transform rot: -1.5707963267948966 rad - pos: 42.5,-25.5 + pos: -19.5,-27.5 parent: 31 - - uid: 10159 + - uid: 3745 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 41.5,-25.5 + pos: -8.5,-31.5 parent: 31 - - uid: 10160 + - uid: 3747 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 40.5,-25.5 + pos: -32.5,-12.5 parent: 31 - - uid: 10161 + - uid: 3748 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 39.5,-25.5 + pos: -32.5,-11.5 parent: 31 - - uid: 10162 + - uid: 3772 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 38.5,-25.5 + rot: 3.141592653589793 rad + pos: -25.5,-1.5 parent: 31 - - uid: 10163 + - uid: 3868 components: - type: Transform rot: -1.5707963267948966 rad - pos: 37.5,-25.5 + pos: 5.5,17.5 parent: 31 - - uid: 10164 + - uid: 3876 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 36.5,-25.5 + pos: -28.5,-17.5 parent: 31 - - uid: 10165 + - uid: 3877 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 35.5,-25.5 + pos: 3.5,20.5 parent: 31 - - uid: 10166 + - uid: 4036 components: - type: Transform rot: -1.5707963267948966 rad - pos: 34.5,-25.5 - parent: 31 - - uid: 10168 - components: - - type: Transform - pos: 33.5,-24.5 - parent: 31 - - uid: 10169 - components: - - type: Transform - pos: 33.5,-23.5 + pos: -13.5,-16.5 parent: 31 - - uid: 10170 + - uid: 4118 components: - type: Transform - pos: 33.5,-22.5 + rot: 1.5707963267948966 rad + pos: -13.5,-18.5 parent: 31 - - uid: 10171 + - uid: 4158 components: - type: Transform - pos: 33.5,-21.5 + rot: -1.5707963267948966 rad + pos: -12.5,-16.5 parent: 31 - - uid: 10172 + - uid: 4183 components: - type: Transform - pos: 33.5,-20.5 + rot: -1.5707963267948966 rad + pos: -9.5,-16.5 parent: 31 - - uid: 10173 + - uid: 4199 components: - type: Transform - pos: 33.5,-19.5 + rot: -1.5707963267948966 rad + pos: -10.5,-16.5 parent: 31 - - uid: 10174 + - uid: 4211 components: - type: Transform - pos: 33.5,-18.5 + pos: -5.5,9.5 parent: 31 - - uid: 10175 + - uid: 4325 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 32.5,-17.5 + pos: 12.5,1.5 parent: 31 - - uid: 10176 + - uid: 4329 components: - type: Transform rot: -1.5707963267948966 rad - pos: 31.5,-17.5 + pos: -11.5,-16.5 parent: 31 - - uid: 10177 + - uid: 4580 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 30.5,-17.5 + rot: 3.141592653589793 rad + pos: -25.5,1.5 parent: 31 - - uid: 10178 + - uid: 4587 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 29.5,-17.5 + rot: 3.141592653589793 rad + pos: -25.5,2.5 parent: 31 - - uid: 10179 + - uid: 4588 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 28.5,-17.5 + pos: -32.5,-7.5 parent: 31 - - uid: 10180 + - uid: 4728 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 27.5,-17.5 + pos: 3.5,-21.5 parent: 31 - - uid: 10181 + - uid: 4739 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 26.5,-17.5 + pos: 3.5,-20.5 parent: 31 - - uid: 10182 + - uid: 4747 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 25.5,-17.5 + pos: 3.5,-24.5 parent: 31 - - uid: 10183 + - uid: 4748 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 24.5,-17.5 + pos: 3.5,-23.5 parent: 31 - - uid: 10184 + - uid: 4749 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 23.5,-17.5 + pos: 3.5,-22.5 parent: 31 - - uid: 10185 + - uid: 4792 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 22.5,-17.5 + rot: 3.141592653589793 rad + pos: 6.5,-28.5 parent: 31 - - uid: 10186 + - uid: 4793 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 21.5,-17.5 + rot: 3.141592653589793 rad + pos: 6.5,-29.5 parent: 31 - - uid: 10187 + - uid: 4798 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 20.5,-17.5 + rot: 1.5707963267948966 rad + pos: 5.5,-27.5 parent: 31 - - uid: 10189 + - uid: 4799 components: - type: Transform - rot: 3.141592653589793 rad - pos: 19.5,-16.5 + rot: 1.5707963267948966 rad + pos: 4.5,-27.5 parent: 31 - - uid: 10190 + - uid: 4800 components: - type: Transform - rot: 3.141592653589793 rad - pos: 19.5,-15.5 + pos: 3.5,-16.5 parent: 31 - - uid: 10191 + - uid: 4801 components: - type: Transform - rot: 3.141592653589793 rad - pos: 19.5,-14.5 + pos: 3.5,-14.5 parent: 31 - - uid: 10192 + - uid: 4802 components: - type: Transform - rot: 3.141592653589793 rad - pos: 19.5,-13.5 + pos: 3.5,-15.5 parent: 31 - - uid: 10193 + - uid: 4803 components: - type: Transform - rot: 3.141592653589793 rad - pos: 19.5,-12.5 + pos: 3.5,-18.5 parent: 31 - - uid: 10203 + - uid: 4804 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 13.5,-10.5 + pos: 3.5,-17.5 parent: 31 - - uid: 10204 + - uid: 4805 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 12.5,-10.5 + pos: 3.5,-19.5 parent: 31 - - uid: 10205 + - uid: 4811 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 11.5,-10.5 + pos: 3.5,-26.5 parent: 31 - - uid: 10280 + - uid: 4812 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -31.5,-14.5 + pos: 3.5,-25.5 parent: 31 - - uid: 10281 + - uid: 4878 components: - type: Transform - rot: 3.141592653589793 rad - pos: -30.5,-15.5 + pos: -5.5,8.5 parent: 31 - - uid: 10282 + - uid: 4969 components: - type: Transform rot: 3.141592653589793 rad - pos: -30.5,-16.5 + pos: -10.5,-21.5 parent: 31 - - uid: 10283 + - uid: 5085 components: - type: Transform - rot: 3.141592653589793 rad - pos: -30.5,-17.5 + pos: -5.5,11.5 parent: 31 - - uid: 10285 + - uid: 5099 components: - type: Transform rot: 3.141592653589793 rad - pos: -35.5,6.5 + pos: 14.5,-1.5 parent: 31 - - uid: 10286 + - uid: 5144 components: - type: Transform - rot: 3.141592653589793 rad - pos: -35.5,7.5 + pos: -5.5,10.5 parent: 31 - - uid: 10287 + - uid: 5191 components: - type: Transform - rot: 3.141592653589793 rad - pos: -35.5,8.5 + rot: 1.5707963267948966 rad + pos: -13.5,-25.5 parent: 31 - - uid: 10288 + - uid: 5227 components: - type: Transform rot: 3.141592653589793 rad - pos: -35.5,9.5 + pos: -25.5,0.5 parent: 31 - - uid: 10289 + - uid: 5232 components: - type: Transform - rot: 3.141592653589793 rad - pos: -35.5,10.5 + pos: -5.5,6.5 parent: 31 - - uid: 10290 + - uid: 5234 components: - type: Transform - rot: 3.141592653589793 rad - pos: -35.5,11.5 + pos: -5.5,4.5 parent: 31 - - uid: 10291 + - uid: 5235 components: - type: Transform - rot: 3.141592653589793 rad - pos: -35.5,12.5 + pos: -5.5,5.5 parent: 31 - - uid: 10292 + - uid: 5250 components: - type: Transform - rot: 3.141592653589793 rad - pos: -35.5,13.5 + pos: -32.5,-9.5 parent: 31 - - uid: 10293 + - uid: 5733 components: - type: Transform - rot: 3.141592653589793 rad - pos: -35.5,14.5 + rot: 1.5707963267948966 rad + pos: -23.5,-29.5 parent: 31 - - uid: 10298 + - uid: 5740 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -29.5,-18.5 + rot: 1.5707963267948966 rad + pos: -27.5,-29.5 parent: 31 - - uid: 10444 + - uid: 5756 components: - type: Transform rot: 3.141592653589793 rad - pos: 12.5,-1.5 + pos: -20.5,-28.5 parent: 31 - - uid: 11254 + - uid: 5760 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -31.5,-8.5 + pos: -28.5,-27.5 parent: 31 - - uid: 12037 + - uid: 5763 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 61.5,0.5 + pos: -28.5,-28.5 parent: 31 - - uid: 12038 + - uid: 5771 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 63.5,1.5 + rot: 1.5707963267948966 rad + pos: -22.5,-29.5 parent: 31 - - uid: 12039 + - uid: 7082 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 64.5,1.5 + rot: 1.5707963267948966 rad + pos: -24.5,-29.5 parent: 31 - - uid: 12040 + - uid: 7224 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 65.5,1.5 + rot: 1.5707963267948966 rad + pos: -21.5,-29.5 parent: 31 - - uid: 12041 + - uid: 7356 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 66.5,1.5 + rot: 1.5707963267948966 rad + pos: -26.5,-29.5 parent: 31 -- proto: DisposalTrunk - entities: - - uid: 178 + - uid: 7380 components: - type: Transform rot: 3.141592653589793 rad - pos: -11.5,1.5 + pos: -10.5,-20.5 parent: 31 - - uid: 215 + - uid: 7381 components: - type: Transform - pos: 24.5,8.5 + rot: 1.5707963267948966 rad + pos: -14.5,-25.5 parent: 31 - - uid: 229 + - uid: 7415 components: - type: Transform - rot: 3.141592697301183 rad - pos: 34.5,-4.5 + rot: 1.5707963267948966 rad + pos: -25.5,-29.5 parent: 31 - - uid: 241 + - uid: 7421 components: - type: Transform - pos: 37.5,6.5 + rot: 1.5707963267948966 rad + pos: 17.5,-10.5 parent: 31 - - uid: 273 + - uid: 7427 components: - type: Transform rot: 1.5707963267948966 rad - pos: -2.5,28.5 + pos: -12.5,-25.5 parent: 31 - - uid: 350 + - uid: 7451 components: - type: Transform - pos: -22.5,6.5 + pos: 7.5,9.5 parent: 31 - - uid: 837 + - uid: 7452 components: - type: Transform - pos: -29.5,11.5 + rot: 3.141592653589793 rad + pos: 3.5,11.5 parent: 31 - - uid: 1474 + - uid: 7584 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,11.5 + pos: -28.5,-26.5 parent: 31 - - uid: 2313 + - uid: 7630 components: - type: Transform - rot: 3.141592653589793 rad - pos: -8.5,-32.5 + pos: -28.5,-25.5 parent: 31 - - uid: 2322 + - uid: 7962 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -9.5,12.5 + pos: 29.5,5.5 parent: 31 - - uid: 2334 + - uid: 8171 components: - type: Transform rot: 3.141592653589793 rad - pos: -12.5,-19.5 + pos: 12.5,-2.5 parent: 31 - - uid: 2437 + - uid: 8226 components: - type: Transform - pos: -27.5,-7.5 + rot: 3.141592653589793 rad + pos: -25.5,-2.5 parent: 31 - - uid: 2531 + - uid: 8442 components: - type: Transform - rot: 3.141592653589793 rad - pos: -4.5,-17.5 + rot: -1.5707963267948966 rad + pos: 0.5,3.5 parent: 31 - - uid: 4795 + - uid: 8446 components: - type: Transform rot: 3.141592653589793 rad - pos: 6.5,-30.5 + pos: -7.5,2.5 parent: 31 - - uid: 5097 + - uid: 8717 components: - type: Transform rot: 3.141592653589793 rad - pos: 14.5,-2.5 + pos: -25.5,-1.5 parent: 31 - - uid: 5223 + - uid: 9171 components: - type: Transform - rot: 3.141592653589793 rad - pos: 8.5,16.5 + pos: -4.5,6.5 parent: 31 - - uid: 5671 + - uid: 9221 components: - type: Transform - pos: 14.5,-8.5 + rot: 3.141592653589793 rad + pos: -4.5,9.5 parent: 31 - - uid: 7120 + - uid: 9229 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -14.5,-20.5 + rot: 3.141592653589793 rad + pos: 3.5,12.5 parent: 31 - - uid: 7961 + - uid: 9230 components: - type: Transform - pos: 29.5,6.5 + rot: 3.141592653589793 rad + pos: 3.5,13.5 parent: 31 - - uid: 7987 + - uid: 9324 components: - type: Transform rot: 3.141592653589793 rad - pos: 12.5,-3.5 + pos: 3.5,16.5 parent: 31 - - uid: 8091 + - uid: 9340 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 60.5,0.5 + rot: -1.5707963267948966 rad + pos: -33.5,3.5 parent: 31 - - uid: 8444 + - uid: 9341 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -8.5,1.5 + rot: 3.141592653589793 rad + pos: -34.5,4.5 parent: 31 - - uid: 9339 + - uid: 9378 components: - type: Transform - pos: -34.5,6.5 + rot: 3.141592653589793 rad + pos: 3.5,15.5 parent: 31 - - uid: 10020 + - uid: 9458 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -31.5,-18.5 + pos: -28.5,-24.5 parent: 31 - - uid: 10146 + - uid: 9513 components: - type: Transform rot: 3.141592653589793 rad - pos: 49.5,-30.5 + pos: 3.5,14.5 parent: 31 - - uid: 10294 + - uid: 9520 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -34.5,15.5 + pos: 3.5,22.5 parent: 31 - - uid: 10300 + - uid: 9521 components: - type: Transform - pos: -25.5,-15.5 + pos: 3.5,23.5 parent: 31 - - uid: 12042 + - uid: 9522 components: - type: Transform - pos: 67.5,2.5 + pos: 3.5,24.5 parent: 31 -- proto: DisposalUnit - entities: - - uid: 195 + - uid: 9523 components: - type: Transform - pos: -29.5,11.5 + pos: 3.5,25.5 parent: 31 - - uid: 210 + - uid: 9524 components: - type: Transform - pos: 6.5,11.5 + pos: 3.5,26.5 parent: 31 - - uid: 216 + - uid: 9544 components: - type: Transform - pos: 24.5,8.5 + pos: 10.5,-6.5 parent: 31 - - uid: 230 + - uid: 9559 components: - type: Transform - pos: 34.5,-4.5 + rot: -1.5707963267948966 rad + pos: 5.5,4.5 parent: 31 - - uid: 242 + - uid: 9588 components: - type: Transform - pos: 37.5,6.5 + pos: 12.5,3.5 parent: 31 - - uid: 274 + - uid: 9599 components: - type: Transform - pos: -2.5,28.5 + rot: -1.5707963267948966 rad + pos: 4.5,4.5 parent: 31 - - uid: 332 + - uid: 9633 components: - type: Transform - pos: 29.5,6.5 + rot: 1.5707963267948966 rad + pos: 17.5,10.5 parent: 31 - - uid: 366 + - uid: 9638 components: - type: Transform - pos: -11.5,1.5 + pos: 13.5,8.5 parent: 31 - - uid: 376 + - uid: 9649 components: - type: Transform - pos: -22.5,6.5 + rot: -1.5707963267948966 rad + pos: 11.5,4.5 parent: 31 - - uid: 1102 + - uid: 9650 components: - type: Transform - pos: 14.5,-2.5 + rot: -1.5707963267948966 rad + pos: 10.5,4.5 parent: 31 - - uid: 2266 + - uid: 9651 components: - type: Transform - pos: -12.5,-19.5 + rot: -1.5707963267948966 rad + pos: 9.5,4.5 parent: 31 - - uid: 2520 + - uid: 9652 components: - type: Transform - pos: 14.5,-8.5 + rot: -1.5707963267948966 rad + pos: 9.5,4.5 parent: 31 - - uid: 3726 + - uid: 9653 components: - type: Transform - pos: -25.5,-15.5 + rot: -1.5707963267948966 rad + pos: 8.5,4.5 parent: 31 - - uid: 4078 + - uid: 9655 components: - type: Transform - pos: -27.5,-7.5 + rot: -1.5707963267948966 rad + pos: 6.5,4.5 parent: 31 - - uid: 4368 + - uid: 9847 components: - type: Transform - pos: -9.5,12.5 + rot: 3.141592653589793 rad + pos: 3.5,18.5 parent: 31 - - uid: 4772 + - uid: 9849 components: - type: Transform - pos: 6.5,-30.5 + rot: 3.141592653589793 rad + pos: 3.5,19.5 parent: 31 - - uid: 5226 + - uid: 10181 components: - type: Transform - pos: 8.5,16.5 + rot: -1.5707963267948966 rad + pos: 26.5,-17.5 parent: 31 - - uid: 7587 + - uid: 10182 components: - type: Transform - pos: -14.5,-20.5 + rot: -1.5707963267948966 rad + pos: 25.5,-17.5 parent: 31 - - uid: 8094 + - uid: 10183 components: - type: Transform - pos: 60.5,0.5 + rot: -1.5707963267948966 rad + pos: 24.5,-17.5 parent: 31 - - uid: 8130 + - uid: 10184 components: - type: Transform - pos: -4.5,-17.5 + rot: -1.5707963267948966 rad + pos: 23.5,-17.5 parent: 31 - - uid: 8443 + - uid: 10185 components: - type: Transform - pos: -8.5,1.5 + rot: -1.5707963267948966 rad + pos: 22.5,-17.5 parent: 31 - - uid: 9343 + - uid: 10186 components: - type: Transform - pos: -34.5,6.5 + rot: -1.5707963267948966 rad + pos: 21.5,-17.5 parent: 31 - - uid: 9417 + - uid: 10187 components: - type: Transform - pos: -8.5,-32.5 + rot: -1.5707963267948966 rad + pos: 20.5,-17.5 parent: 31 - - uid: 10145 + - uid: 10189 components: - type: Transform - pos: 49.5,-30.5 + rot: 3.141592653589793 rad + pos: 19.5,-16.5 parent: 31 - - uid: 10296 + - uid: 10190 components: - type: Transform - pos: -34.5,15.5 + rot: 3.141592653589793 rad + pos: 19.5,-15.5 parent: 31 - - uid: 10475 + - uid: 10191 components: - type: Transform - pos: 12.5,-3.5 + rot: 3.141592653589793 rad + pos: 19.5,-14.5 parent: 31 -- proto: DisposalYJunction - entities: - - uid: 5735 + - uid: 10192 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,-13.5 + parent: 31 + - uid: 10193 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 19.5,-12.5 + parent: 31 + - uid: 10203 components: - type: Transform rot: -1.5707963267948966 rad - pos: -28.5,-18.5 + pos: 13.5,-10.5 parent: 31 - - uid: 6931 + - uid: 10204 components: - type: Transform - pos: -32.5,3.5 + rot: -1.5707963267948966 rad + pos: 12.5,-10.5 parent: 31 - - uid: 7429 + - uid: 10205 components: - type: Transform rot: -1.5707963267948966 rad - pos: 29.5,4.5 + pos: 11.5,-10.5 parent: 31 - - uid: 9558 + - uid: 10280 components: - type: Transform rot: -1.5707963267948966 rad - pos: 3.5,3.5 + pos: -31.5,-14.5 parent: 31 -- proto: DogBed - entities: - - uid: 1244 + - uid: 10281 components: - type: Transform - pos: 10.5,20.5 + rot: 3.141592653589793 rad + pos: -30.5,-15.5 parent: 31 - - uid: 4735 + - uid: 10282 components: - type: Transform - pos: 21.5,-9.5 + rot: 3.141592653589793 rad + pos: -30.5,-16.5 parent: 31 - - uid: 6966 + - uid: 10283 components: - type: Transform - pos: 28.5,8.5 + rot: 3.141592653589793 rad + pos: -30.5,-17.5 parent: 31 - - uid: 8419 + - uid: 10285 components: - type: Transform - pos: 8.5,26.5 + rot: 3.141592653589793 rad + pos: -35.5,6.5 parent: 31 -- proto: DonkpocketBoxSpawner - entities: - - uid: 8044 + - uid: 10286 components: - type: Transform - pos: 18.5,-24.5 + rot: 3.141592653589793 rad + pos: -35.5,7.5 parent: 31 -- proto: DoorElectronics - entities: - - uid: 4269 + - uid: 10287 components: - type: Transform - pos: 29.27434,-1.3043437 + rot: 3.141592653589793 rad + pos: -35.5,8.5 parent: 31 - - uid: 4284 + - uid: 10288 components: - type: Transform - pos: 29.614664,-1.306627 + rot: 3.141592653589793 rad + pos: -35.5,9.5 parent: 31 -- proto: DresserCaptainFilled - entities: - - uid: 11383 + - uid: 10289 components: - type: Transform - pos: 11.5,23.5 + rot: 3.141592653589793 rad + pos: -35.5,10.5 parent: 31 -- proto: DresserChiefEngineerFilled - entities: - - uid: 6968 + - uid: 10290 components: - type: Transform - pos: 41.5,-0.5 + rot: 3.141592653589793 rad + pos: -35.5,11.5 parent: 31 -- proto: DresserChiefMedicalOfficerFilled - entities: - - uid: 11386 + - uid: 10291 components: - type: Transform - pos: 24.5,-11.5 + rot: 3.141592653589793 rad + pos: -35.5,12.5 parent: 31 -- proto: DresserHeadOfPersonnelFilled - entities: - - uid: 7085 + - uid: 10292 components: - type: Transform - pos: 7.5,16.5 + rot: 3.141592653589793 rad + pos: -35.5,13.5 parent: 31 -- proto: DresserHeadOfSecurityFilled - entities: - - uid: 11382 + - uid: 10293 components: - type: Transform - pos: -8.5,22.5 + rot: 3.141592653589793 rad + pos: -35.5,14.5 parent: 31 -- proto: DresserQuarterMasterFilled - entities: - - uid: 4909 + - uid: 10298 components: - type: Transform - pos: 26.5,10.5 + rot: -1.5707963267948966 rad + pos: -29.5,-18.5 parent: 31 -- proto: DresserResearchDirectorFilled - entities: - - uid: 5153 + - uid: 10444 components: - type: Transform - pos: -5.5,-19.5 + rot: 3.141592653589793 rad + pos: 12.5,-1.5 parent: 31 -- proto: DrinkBottleRum - entities: - - uid: 10630 + - uid: 10591 components: - type: Transform - pos: 42.56693,-8.254273 + rot: 3.141592653589793 rad + pos: -16.5,1.5 parent: 31 -- proto: DrinkBottleVodka - entities: - - uid: 10588 + - uid: 10722 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -15.293089,-12.048656 + rot: 3.141592653589793 rad + pos: -16.5,2.5 parent: 31 - - uid: 10589 + - uid: 12037 components: - type: Transform rot: -1.5707963267948966 rad - pos: -14.584726,-11.104703 + pos: 61.5,0.5 parent: 31 - - uid: 10590 + - uid: 12038 components: - type: Transform - pos: -14.761818,-11.281694 + rot: -1.5707963267948966 rad + pos: 63.5,1.5 parent: 31 -- proto: DrinkDeadRumGlass - entities: - - uid: 10660 + - uid: 12039 components: - type: Transform - pos: 41.438732,-8.355759 + rot: -1.5707963267948966 rad + pos: 64.5,1.5 parent: 31 -- proto: DrinkDetFlask - entities: - - uid: 7855 + - uid: 12040 components: - type: Transform - parent: 7853 - - type: Physics - canCollide: False - - type: InsideEntityStorage -- proto: DrinkDoctorsDelightGlass - entities: - - uid: 1110 + rot: -1.5707963267948966 rad + pos: 65.5,1.5 + parent: 31 + - uid: 12041 components: - type: Transform - pos: 22.757565,-9.802636 + rot: -1.5707963267948966 rad + pos: 66.5,1.5 parent: 31 -- proto: DrinkGildlagerBottleFull +- proto: DisposalTrunk entities: - - uid: 9626 + - uid: 178 components: - type: Transform - pos: -3.238819,18.880247 + rot: 3.141592653589793 rad + pos: -11.5,1.5 parent: 31 - - type: Physics - angularDamping: 0 - linearDamping: 0 -- proto: DrinkGlass - entities: - - uid: 10625 + - uid: 215 components: - type: Transform - pos: 40.353294,-10.29438 + pos: 24.5,8.5 parent: 31 - - uid: 10626 + - uid: 229 components: - type: Transform - pos: 40.382812,-10.471372 + rot: 3.141592697301183 rad + pos: 34.5,-4.5 parent: 31 - - uid: 10627 + - uid: 241 components: - type: Transform - pos: 40.530388,-10.353377 + pos: 37.5,6.5 parent: 31 -- proto: DrinkGoldenCup - entities: - - uid: 535 + - uid: 350 components: - type: Transform - pos: -3.053735,18.815365 + pos: -22.5,6.5 parent: 31 -- proto: DrinkGreenTeaGlass - entities: - - uid: 10662 + - uid: 837 components: - type: Transform - pos: 42.91449,-8.318105 + pos: -29.5,11.5 parent: 31 -- proto: DrinkHotCoco - entities: - - uid: 2173 + - uid: 1474 components: - type: Transform - pos: 7.752981,-13.56489 + rot: 1.5707963267948966 rad + pos: 6.5,11.5 parent: 31 -- proto: DrinkHotCoffee - entities: - - uid: 10538 + - uid: 2313 components: - type: Transform - pos: -17.21707,-26.040907 + rot: 3.141592653589793 rad + pos: -8.5,-32.5 parent: 31 - - uid: 10790 + - uid: 2322 components: - type: Transform - pos: 22.658688,13.036925 + rot: 1.5707963267948966 rad + pos: -9.5,12.5 parent: 31 -- proto: DrinkIcedTeaCan - entities: - - uid: 10759 + - uid: 2334 components: - type: Transform - pos: -48.660885,-9.377042 + rot: 3.141592653589793 rad + pos: -12.5,-19.5 parent: 31 -- proto: DrinkIcedTeaGlass - entities: - - uid: 9922 + - uid: 2531 components: - type: Transform - pos: -2.992663,-1.3206873 + rot: 3.141592653589793 rad + pos: -4.5,-17.5 parent: 31 - - type: Physics - angularDamping: 0 - linearDamping: 0 - - uid: 12169 + - uid: 2718 components: - type: Transform - pos: -2.680163,-1.1956873 + rot: -1.5707963267948966 rad + pos: -14.5,-11.5 parent: 31 -- proto: DrinkLemonJuice - entities: - - uid: 10820 + - uid: 2719 components: - type: Transform - pos: 45.26447,-20.914085 + rot: -1.5707963267948966 rad + pos: 4.5,28.5 parent: 31 -- proto: DrinkMeadGlass - entities: - - uid: 2952 + - uid: 4516 components: - type: Transform - pos: -31.680155,17.680439 + rot: 1.5707963267948966 rad + pos: -17.5,-10.5 parent: 31 -- proto: DrinkMilkCarton - entities: - - uid: 2283 + - uid: 4795 components: - type: Transform - pos: -11.776268,-3.7349403 + rot: 3.141592653589793 rad + pos: 6.5,-30.5 parent: 31 -- proto: DrinkMilkshake - entities: - - uid: 1589 + - uid: 5097 components: - type: Transform - pos: 60.502117,-8.214837 + rot: 3.141592653589793 rad + pos: 14.5,-2.5 parent: 31 -- proto: DrinkMugMetal - entities: - - uid: 4205 + - uid: 5223 components: - type: Transform - pos: -10.86558,-31.534925 + rot: 3.141592653589793 rad + pos: 8.5,16.5 parent: 31 -- proto: DrinkMugRed - entities: - - uid: 674 + - uid: 5671 components: - type: Transform - pos: -4.1449943,14.039462 + pos: 14.5,-8.5 parent: 31 -- proto: DrinkPoisonWinebottleFull - entities: - - uid: 12194 + - uid: 7120 components: - type: Transform - pos: -3.4315104,-6.2435474 + rot: -1.5707963267948966 rad + pos: -14.5,-20.5 parent: 31 -- proto: DrinkRamen - entities: - - uid: 7848 + - uid: 7961 components: - type: Transform - pos: -13.225656,24.798891 + pos: 29.5,6.5 parent: 31 -- proto: DrinkRootBeerGlass - entities: - - uid: 7691 + - uid: 7987 components: - type: Transform - pos: 16.50716,16.62439 + rot: 3.141592653589793 rad + pos: 12.5,-3.5 parent: 31 -- proto: DrinkSakeBottleFull - entities: - - uid: 12193 + - uid: 8091 components: - type: Transform - pos: -3.6971354,-6.3372974 + rot: 1.5707963267948966 rad + pos: 60.5,0.5 parent: 31 -- proto: DrinkSakeCup - entities: - - uid: 12177 + - uid: 8444 components: - type: Transform - pos: -2.4155946,-4.260042 + rot: 1.5707963267948966 rad + pos: -8.5,1.5 parent: 31 - - uid: 12178 + - uid: 8716 components: - type: Transform - pos: -2.3530946,-4.494417 + rot: -1.5707963267948966 rad + pos: -24.5,-3.5 parent: 31 -- proto: DrinkShaker - entities: - - uid: 10628 + - uid: 9339 components: - type: Transform - pos: 42.86208,-10.353377 + pos: -34.5,6.5 parent: 31 -- proto: DrinkShotGlass - entities: - - uid: 12189 + - uid: 10020 components: - type: Transform - pos: -5.952992,-4.4935474 + rot: 1.5707963267948966 rad + pos: -31.5,-18.5 parent: 31 - - uid: 12190 + - uid: 10294 components: - type: Transform - pos: -5.218617,-4.3060474 + rot: -1.5707963267948966 rad + pos: -34.5,15.5 parent: 31 - - uid: 12191 + - uid: 10300 components: - type: Transform - pos: -2.6404922,-5.5560474 + pos: -25.5,-15.5 parent: 31 -- proto: DrinkTequilaSunriseGlass - entities: - - uid: 10649 + - uid: 10589 components: - type: Transform - pos: 43.593338,-8.411646 + rot: 3.141592653589793 rad + pos: -17.5,-0.5 parent: 31 -- proto: DrinkTokkuri - entities: - - uid: 12176 + - uid: 10795 components: - type: Transform - pos: -2.6187196,-4.525667 + pos: 50.5,-11.5 parent: 31 -- proto: DrinkVodkaBottleFull - entities: - - uid: 1409 + - uid: 12042 components: - type: Transform - pos: -15.794847,-11.134202 + pos: 67.5,2.5 parent: 31 - - uid: 10586 + - uid: 12222 components: - type: Transform - pos: -15.4701805,-10.721223 + rot: 3.141592653589793 rad + pos: 49.5,-15.5 parent: 31 -- proto: DrinkVodkaGlass +- proto: DisposalUnit entities: - - uid: 10587 + - uid: 195 components: - type: Transform - pos: -15.440666,-11.399689 + pos: -29.5,11.5 parent: 31 -- proto: DrinkWaterBottleFull - entities: - - uid: 622 + - uid: 210 components: - type: Transform - pos: -9.481841,-18.214483 + pos: 6.5,11.5 parent: 31 - - uid: 2480 + - uid: 216 components: - type: Transform - parent: 2363 - - type: Physics - canCollide: False - - type: InsideEntityStorage - - uid: 2481 + pos: 24.5,8.5 + parent: 31 + - uid: 230 components: - type: Transform - parent: 2363 - - type: Physics - canCollide: False - - type: InsideEntityStorage - - uid: 3041 + pos: 34.5,-4.5 + parent: 31 + - uid: 242 components: - type: Transform - parent: 2363 - - type: Physics - canCollide: False - - type: InsideEntityStorage - - uid: 10794 + pos: 37.5,6.5 + parent: 31 + - uid: 332 components: - type: Transform - pos: 45.32292,-20.249031 + pos: 29.5,6.5 parent: 31 -- proto: DrinkWaterCup - entities: - - uid: 4089 + - uid: 366 components: - type: Transform - pos: -9.776992,-18.538967 + pos: -11.5,1.5 parent: 31 - - uid: 10795 + - uid: 376 components: - type: Transform - pos: 45.647587,-20.367025 + pos: -22.5,6.5 parent: 31 - - uid: 10796 + - uid: 1102 components: - type: Transform - pos: 45.529526,-20.544016 + pos: 14.5,-2.5 parent: 31 -- proto: DrinkWhiskeyBottleFull - entities: - - uid: 7459 + - uid: 2266 components: - type: Transform - pos: -23.675486,16.461733 + pos: -12.5,-19.5 parent: 31 -- proto: DrinkWhiskeyGlass - entities: - - uid: 7539 + - uid: 2520 components: - type: Transform - pos: -15.830059,-39.34384 + pos: 14.5,-8.5 parent: 31 -- proto: DrinkWineBottleFull - entities: - - uid: 12195 + - uid: 2851 components: - type: Transform - pos: -3.1815104,-6.3841724 + pos: -24.5,-3.5 parent: 31 -- proto: ElectricGuitarInstrument - entities: - - uid: 9275 + - uid: 3726 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -19.346447,-6.2505536 + pos: -25.5,-15.5 parent: 31 -- proto: EmergencyLight - entities: - - uid: 309 + - uid: 4368 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -40.5,5.5 + pos: -9.5,12.5 parent: 31 - - uid: 346 + - uid: 4673 components: + - type: MetaData + desc: Appear on the stage in style! + name: magic act chute - type: Transform - rot: 1.5707963267948966 rad - pos: 48.5,-4.5 + pos: -17.5,-10.5 parent: 31 - - uid: 585 + - uid: 4772 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -35.5,-3.5 + pos: 6.5,-30.5 parent: 31 - - type: PointLight - enabled: True - - type: ActiveEmergencyLight - - uid: 1187 + - uid: 5226 components: - type: Transform - pos: 39.5,6.5 + pos: 8.5,16.5 parent: 31 - - type: PointLight - enabled: True - - type: ActiveEmergencyLight - - uid: 1224 + - uid: 6978 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 10.5,9.5 + pos: 50.5,-11.5 parent: 31 - - type: PointLight - enabled: True - - type: ActiveEmergencyLight - - uid: 1226 + - uid: 7587 components: - type: Transform - pos: -4.5,14.5 + pos: -14.5,-20.5 parent: 31 - - type: PointLight - enabled: True - - type: ActiveEmergencyLight - - uid: 1248 + - uid: 8094 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 9.5,30.5 + pos: 60.5,0.5 parent: 31 - - type: PointLight - enabled: True - - type: ActiveEmergencyLight - - uid: 1293 + - uid: 8130 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -22.5,-3.5 + pos: -4.5,-17.5 parent: 31 - - type: PointLight - enabled: True - - type: ActiveEmergencyLight - - uid: 1299 + - uid: 8443 components: - type: Transform - pos: -39.5,10.5 + pos: -8.5,1.5 parent: 31 - - type: PointLight - enabled: True - - type: ActiveEmergencyLight - - uid: 1345 + - uid: 8511 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 12.5,-3.5 + pos: 4.5,28.5 parent: 31 - - type: PointLight - enabled: True - - type: ActiveEmergencyLight - - uid: 1512 + - uid: 9343 components: - type: Transform - pos: 23.5,13.5 + pos: -34.5,6.5 parent: 31 - - type: PointLight - enabled: True - - type: ActiveEmergencyLight - - uid: 2080 + - uid: 9417 components: - type: Transform - pos: -23.5,11.5 + pos: -8.5,-32.5 parent: 31 - - type: PointLight - enabled: True - - type: ActiveEmergencyLight - - uid: 5354 + - uid: 10296 components: - type: Transform - pos: 23.5,5.5 + pos: -34.5,15.5 parent: 31 - - uid: 7249 + - uid: 10475 components: - type: Transform - pos: -14.5,5.5 + pos: 12.5,-3.5 parent: 31 - - uid: 7254 + - uid: 10721 components: - type: Transform - pos: 3.5,32.5 + pos: -17.5,-0.5 parent: 31 - - uid: 8839 + - uid: 12140 components: - type: Transform - pos: -4.5,1.5 + pos: 49.5,-15.5 parent: 31 - - type: PointLight - enabled: True - - type: ActiveEmergencyLight - - uid: 10310 +- proto: DisposalYJunction + entities: + - uid: 5735 components: - type: Transform - pos: -9.5,-25.5 + rot: -1.5707963267948966 rad + pos: -28.5,-18.5 parent: 31 - - uid: 10311 + - uid: 6931 components: - type: Transform - pos: -6.5,-14.5 + pos: -32.5,3.5 parent: 31 -- proto: EmergencyMedipen + - uid: 7429 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,4.5 + parent: 31 + - uid: 9558 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,3.5 + parent: 31 +- proto: DogBed entities: - - uid: 7355 + - uid: 1244 components: - type: Transform - pos: -19.375961,-7.548489 + pos: 10.5,20.5 parent: 31 - - uid: 10988 + - uid: 8419 components: - type: Transform - pos: 12.5220375,-4.6149173 + pos: 8.5,26.5 parent: 31 -- proto: EmergencyRollerBed +- proto: DonkpocketBoxSpawner entities: - - uid: 1202 + - uid: 8044 components: - type: Transform - pos: 19.443876,-7.543538 + pos: 18.5,-24.5 parent: 31 -- proto: Emitter +- proto: DoorElectronics entities: - - uid: 4870 + - uid: 4269 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 60.5,2.5 + pos: 29.27434,-1.3043437 parent: 31 -- proto: EncryptionKeyCargo + - uid: 4284 + components: + - type: Transform + pos: 29.614664,-1.306627 + parent: 31 +- proto: DresserCaptainFilled entities: - - uid: 9154 + - uid: 11383 components: - type: Transform - parent: 9096 - - type: Physics - canCollide: False -- proto: EncryptionKeyCommand + pos: 11.5,23.5 + parent: 31 +- proto: DresserChiefEngineerFilled entities: - - uid: 3410 + - uid: 6968 components: - type: Transform - parent: 3371 - - type: Physics - canCollide: False -- proto: EncryptionKeyCommon + pos: 41.5,-0.5 + parent: 31 +- proto: DresserChiefMedicalOfficerFilled entities: - - uid: 9066 + - uid: 11386 components: - type: Transform - parent: 9065 - - type: Physics - canCollide: False - - uid: 10896 + pos: 24.5,-11.5 + parent: 31 +- proto: DresserHeadOfPersonnelFilled + entities: + - uid: 7085 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 48.434895,-3.386529 + pos: 7.5,16.5 parent: 31 - - uid: 10897 +- proto: DresserHeadOfSecurityFilled + entities: + - uid: 11382 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 48.611988,-3.445526 + pos: -8.5,22.5 parent: 31 -- proto: EncryptionKeyEngineering +- proto: DresserQuarterMasterFilled entities: - - uid: 10233 + - uid: 4909 components: - type: Transform - parent: 10232 - - type: Physics - canCollide: False - - uid: 10898 + pos: 26.5,10.5 + parent: 31 +- proto: DresserResearchDirectorFilled + entities: + - uid: 5153 components: - type: Transform - pos: 48.936653,-5.4514256 + pos: -5.5,-19.5 parent: 31 -- proto: EncryptionKeyMedical +- proto: DrinkBeerBottleFull entities: - - uid: 8122 + - uid: 8840 components: - type: Transform - parent: 8120 - - type: Physics - canCollide: False - - uid: 10894 + pos: -21.962059,17.224575 + parent: 31 +- proto: DrinkBottleBeer + entities: + - uid: 9557 components: - type: Transform rot: -1.5707963267948966 rad - pos: 55.474125,-11.511058 + pos: -21.320957,16.95895 parent: 31 -- proto: EncryptionKeyScience - entities: - - uid: 4604 + - uid: 13057 components: - type: Transform - parent: 4590 - - type: Physics - canCollide: False - - uid: 10895 + pos: -22.886969,16.397884 + parent: 31 + - uid: 13059 components: - type: Transform - pos: 56.448124,-11.363565 + rot: -1.5707963267948966 rad + pos: -23.027699,15.835385 parent: 31 -- proto: EncryptionKeySecurity - entities: - - uid: 8164 + - uid: 13060 components: - type: Transform - parent: 8163 - - type: Physics - canCollide: False -- proto: EncryptionKeyService - entities: - - uid: 9188 + rot: -1.5707963267948966 rad + pos: -24.262993,16.03851 + parent: 31 + - uid: 13061 components: - type: Transform - parent: 9179 - - type: Physics - canCollide: False -- proto: ExosuitFabricator + pos: -22.793148,17.13226 + parent: 31 +- proto: DrinkBottleOfNothingFull entities: - - uid: 9537 + - uid: 5727 components: - type: Transform - pos: -0.5,-24.5 + pos: -20.800508,-10.570335 parent: 31 -- proto: ExplosivesSignMed +- proto: DrinkBottleRum entities: - - uid: 8897 + - uid: 10630 components: - type: Transform - pos: -11.5,17.5 + pos: 42.56693,-8.254273 parent: 31 -- proto: ExtendedEmergencyOxygenTank +- proto: DrinkDeadRumGlass entities: - - uid: 3730 + - uid: 10660 components: - type: Transform - pos: -11.445563,-27.496508 + pos: 41.438732,-8.355759 parent: 31 -- proto: ExtinguisherCabinet +- proto: DrinkDoctorsDelightGlass entities: - - uid: 10537 + - uid: 1110 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 1.5,-31.5 + pos: 22.757565,-9.802636 parent: 31 -- proto: ExtinguisherCabinetFilled +- proto: DrinkGildlagerBottleFull entities: - - uid: 517 + - uid: 9626 components: - type: Transform - pos: -10.5,12.5 + pos: -3.238819,18.880247 parent: 31 - - uid: 1868 + - type: Physics + angularDamping: 0 + linearDamping: 0 +- proto: DrinkGlass + entities: + - uid: 10625 components: - type: Transform - pos: 5.5,23.5 + pos: 40.353294,-10.29438 parent: 31 - - uid: 4807 + - uid: 10626 components: - type: Transform - pos: 14.5,-3.5 + pos: 40.382812,-10.471372 parent: 31 - - uid: 4895 + - uid: 10627 components: - type: Transform - pos: -34.5,-10.5 + pos: 40.530388,-10.353377 parent: 31 - - uid: 4899 +- proto: DrinkGoldenCup + entities: + - uid: 535 components: - type: Transform - pos: -30.5,10.5 + pos: -3.053735,18.815365 parent: 31 - - uid: 4900 +- proto: DrinkGreenTeaGlass + entities: + - uid: 10662 components: - type: Transform - pos: -34.5,-2.5 + pos: 42.91449,-8.318105 parent: 31 - - uid: 4901 +- proto: DrinkHotCoco + entities: + - uid: 2173 components: - type: Transform - pos: -16.5,-8.5 + pos: 7.752981,-13.56489 parent: 31 - - uid: 4908 +- proto: DrinkHotCoffee + entities: + - uid: 6990 components: - type: Transform - pos: 32.5,-5.5 + pos: -2.6763601,14.690386 parent: 31 - - uid: 4913 + - uid: 6991 components: - type: Transform - pos: 17.5,8.5 + pos: -2.4750185,14.448774 parent: 31 - - uid: 4914 + - uid: 10538 components: - type: Transform - pos: 9.5,12.5 + pos: -17.21707,-26.040907 parent: 31 - - uid: 4916 + - uid: 10790 components: - type: Transform - pos: -6.5,18.5 + pos: 22.658688,13.036925 parent: 31 - - uid: 4917 +- proto: DrinkIcedTeaCan + entities: + - uid: 10759 components: - type: Transform - pos: 0.5,16.5 + pos: -48.660885,-9.377042 parent: 31 - - uid: 4918 +- proto: DrinkIcedTeaGlass + entities: + - uid: 9922 components: - type: Transform - pos: 11.5,17.5 + pos: -2.992663,-1.3206873 parent: 31 - - uid: 4923 + - type: Physics + angularDamping: 0 + linearDamping: 0 + - uid: 12169 components: - type: Transform - pos: 11.5,-28.5 + pos: -2.680163,-1.1956873 parent: 31 - - uid: 5305 +- proto: DrinkMeadGlass + entities: + - uid: 2952 components: - type: Transform - pos: 17.5,-29.5 + pos: -31.680155,17.680439 parent: 31 - - uid: 5306 +- proto: DrinkMilkCarton + entities: + - uid: 2283 components: - type: Transform - pos: -24.5,23.5 + pos: -11.776268,-3.7349403 parent: 31 - - uid: 7435 +- proto: DrinkMilkshake + entities: + - uid: 1589 components: - type: Transform - pos: -12.5,-26.5 + pos: 60.502117,-8.214837 parent: 31 - - uid: 8894 +- proto: DrinkMugBlue + entities: + - uid: 2844 components: - type: Transform - rot: 3.141592653589793 rad - pos: 51.5,4.5 + pos: -6.264754,27.451984 parent: 31 - - uid: 8905 +- proto: DrinkMugDog + entities: + - uid: 2749 components: - type: Transform - pos: 5.5,29.5 + pos: -5.212646,14.755907 parent: 31 - - uid: 10889 +- proto: DrinkMugMetal + entities: + - uid: 4205 components: - type: Transform - pos: 55.5,-5.5 + pos: -10.86558,-31.534925 parent: 31 - - uid: 11387 +- proto: DrinkMugRed + entities: + - uid: 4660 components: - type: Transform - pos: 42.5,-1.5 + pos: -2.0580988,14.730206 parent: 31 -- proto: FaxMachineBase +- proto: DrinkPoisonWinebottleFull entities: - - uid: 683 + - uid: 12194 components: - type: Transform - pos: 14.5,-4.5 + pos: -3.4315104,-6.2435474 parent: 31 - - type: FaxMachine - name: Medical - destinationAddress: Medical - - uid: 1264 +- proto: DrinkRamen + entities: + - uid: 7848 components: - type: Transform - pos: 40.5,4.5 + pos: -13.225656,24.798891 parent: 31 - - type: FaxMachine - name: engineering - - uid: 2045 - components: - - type: Transform - pos: -17.5,-25.5 - parent: 31 - - type: FaxMachine - name: Science - destinationAddress: Science - - uid: 8323 - components: - - type: Transform - pos: 9.5,-28.5 - parent: 31 - - type: FaxMachine - name: library - - uid: 8994 - components: - - type: Transform - pos: 13.5,12.5 - parent: 31 - - type: FaxMachine - name: Cargo - destinationAddress: Cargo - - uid: 9687 - components: - - type: Transform - pos: 8.5,18.5 - parent: 31 - - type: FaxMachine - name: hop's office - - uid: 10825 - components: - - type: Transform - pos: 1.5,32.5 - parent: 31 - - type: FaxMachine - name: bridge - destinationAddress: bridge -- proto: FaxMachineCaptain - entities: - - uid: 9686 - components: - - type: Transform - pos: 7.5,24.5 - parent: 31 - - type: FaxMachine - name: captain's office -- proto: filingCabinetDrawerRandom - entities: - - uid: 4637 - components: - - type: Transform - pos: -10.5,-30.5 - parent: 31 - - uid: 8890 - components: - - type: Transform - pos: 9.5,18.5 - parent: 31 -- proto: filingCabinetRandom - entities: - - uid: 4216 - components: - - type: Transform - pos: 6.5,26.5 - parent: 31 - - uid: 5628 - components: - - type: Transform - pos: 6.5,-5.5 - parent: 31 - - uid: 7542 - components: - - type: Transform - pos: -12.5,-39.5 - parent: 31 - - uid: 7710 - components: - - type: Transform - pos: 15.5,12.5 - parent: 31 - - uid: 8492 - components: - - type: Transform - pos: -2.5,14.5 - parent: 31 -- proto: filingCabinetTallRandom - entities: - - uid: 1424 - components: - - type: Transform - pos: -0.5,31.5 - parent: 31 -- proto: FireAlarm - entities: - - uid: 888 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 1.5,-24.5 - parent: 31 - - type: DeviceList - devices: - - 11750 - - 613 - - 669 - - 2872 - - 2891 - - 7379 - - 11751 - - 11752 - - 11753 - - 11754 - - 11755 - - 11756 - - uid: 9041 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -14.5,2.5 - parent: 31 - - type: DeviceList - devices: - - 9972 - - 9971 - - 9970 - - 995 - - 179 - - 337 - - uid: 9985 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 6.5,-14.5 - parent: 31 - - type: DeviceList - devices: - - 9988 - - 9989 - - 9990 - - uid: 9992 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 5.5,8.5 - parent: 31 - - type: DeviceList - devices: - - 8954 - - 8956 - - 852 - - 1027 - - 1028 - - 8885 - - 8884 - - 8883 - - 3959 - - 3944 - - 3943 - - 3989 - - 3987 - - 3988 - - 9988 - - 9989 - - 9990 - - 576 - - 1330 - - 1167 - - 7460 - - uid: 9993 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -25.5,1.5 - parent: 31 - - type: DeviceList - devices: - - 3928 - - 3934 - - 3935 - - 3969 - - 3970 - - 9972 - - 9971 - - 9970 - - 9994 - - 9995 - - uid: 9997 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -34.5,1.5 - parent: 31 - - type: DeviceList - devices: - - 3977 - - 3976 - - 3975 - - uid: 10002 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 5.5,27.5 - parent: 31 - - type: DeviceList - devices: - - 8816 - - 8813 - - 8810 - - 8814 - - 8815 - - 9969 - - uid: 10004 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 5.5,15.5 - parent: 31 - - type: DeviceList - devices: - - 8885 - - 8883 - - 8884 - - 5115 - - uid: 10006 - components: - - type: Transform - pos: 18.5,6.5 - parent: 31 - - type: DeviceList - devices: - - 4028 - - 4030 - - 4026 - - 8856 - - 8858 - - 8857 - - uid: 10023 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 1.5,-3.5 - parent: 31 - - type: DeviceList - devices: - - 3943 - - 3944 - - 3959 - - 1167 - - 1330 - - 576 - - 4525 - - 4528 - - 4529 - - uid: 10243 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -21.5,-13.5 - parent: 31 - - type: DeviceList - devices: - - 10313 - - 10314 - - 10315 - - 10240 - - 10241 - - 10242 - - uid: 10409 - components: - - type: Transform - pos: -17.5,-13.5 - parent: 31 - - type: DeviceList - devices: - - 10313 - - 10314 - - 10315 - - uid: 10410 - components: - - type: Transform - pos: -1.5,-13.5 - parent: 31 - - type: DeviceList - devices: - - 10316 - - 10317 - - 10318 - - uid: 10419 - components: - - type: Transform - pos: -11.5,-23.5 - parent: 31 - - type: DeviceList - devices: - - 3857 - - 3866 - - 3428 - - 3724 - - uid: 11003 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 5.5,-3.5 - parent: 31 - - type: DeviceList - devices: - - 3989 - - 3987 - - 3988 - - 8940 - - 673 -- proto: FireAxeCabinetFilled - entities: - - uid: 4031 - components: - - type: Transform - pos: -1.5,32.5 - parent: 31 - - uid: 11444 - components: - - type: Transform - pos: 52.5,18.5 - parent: 31 -- proto: Firelock - entities: - - uid: 45 - components: - - type: Transform - pos: -32.5,-12.5 - parent: 31 - - uid: 179 - components: - - type: Transform - pos: -10.5,4.5 - parent: 31 - - uid: 308 - components: - - type: Transform - pos: -29.5,-18.5 - parent: 31 - - uid: 328 - components: - - type: Transform - pos: -22.5,14.5 - parent: 31 - - uid: 337 - components: - - type: Transform - pos: -10.5,3.5 - parent: 31 - - uid: 409 - components: - - type: Transform - pos: -6.5,-8.5 - parent: 31 - - uid: 575 - components: - - type: Transform - pos: 15.5,-3.5 - parent: 31 - - uid: 576 - components: - - type: Transform - pos: -7.5,2.5 - parent: 31 - - uid: 684 - components: - - type: Transform - pos: 21.5,-22.5 - parent: 31 - - uid: 995 - components: - - type: Transform - pos: -10.5,5.5 - parent: 31 - - uid: 1015 - components: - - type: Transform - pos: -22.5,13.5 - parent: 31 - - uid: 1167 - components: - - type: Transform - pos: -5.5,2.5 - parent: 31 - - uid: 1330 - components: - - type: Transform - pos: -6.5,2.5 - parent: 31 - - uid: 2180 - components: - - type: Transform - pos: 22.5,-22.5 - parent: 31 - - uid: 3413 - components: - - type: Transform - pos: -20.5,-28.5 - parent: 31 - - uid: 3855 - components: - - type: Transform - pos: -19.5,17.5 - parent: 31 - - uid: 3962 - components: - - type: Transform - pos: -6.5,-9.5 - parent: 31 - - uid: 3968 - components: - - type: Transform - pos: -32.5,-9.5 - parent: 31 - - uid: 3971 - components: - - type: Transform - pos: -6.5,-10.5 - parent: 31 - - uid: 3982 - components: - - type: Transform - pos: 13.5,-19.5 - parent: 31 - - uid: 3984 - components: - - type: Transform - pos: 13.5,-20.5 - parent: 31 - - uid: 3992 - components: - - type: Transform - pos: 37.5,-5.5 - parent: 31 - - uid: 3996 - components: - - type: Transform - pos: -33.5,-9.5 - parent: 31 - - uid: 4002 - components: - - type: Transform - pos: 25.5,-1.5 - parent: 31 - - uid: 4003 - components: - - type: Transform - pos: 25.5,-2.5 - parent: 31 - - uid: 4010 - components: - - type: Transform - pos: -1.5,6.5 - parent: 31 - - uid: 4015 - components: - - type: Transform - pos: 38.5,-5.5 - parent: 31 - - uid: 4019 - components: - - type: Transform - pos: 11.5,14.5 - parent: 31 - - uid: 4041 - components: - - type: Transform - pos: -10.5,24.5 - parent: 31 - - uid: 4042 - components: - - type: Transform - pos: -10.5,25.5 - parent: 31 - - uid: 4044 - components: - - type: Transform - pos: -18.5,17.5 - parent: 31 - - uid: 4975 - components: - - type: Transform - pos: -22.5,21.5 - parent: 31 - - uid: 5034 - components: - - type: Transform - pos: 26.5,-19.5 - parent: 31 - - uid: 5035 - components: - - type: Transform - pos: 23.5,-24.5 - parent: 31 - - uid: 5104 - components: - - type: Transform - pos: 13.5,-0.5 - parent: 31 - - uid: 5115 - components: - - type: Transform - pos: 6.5,20.5 - parent: 31 - - uid: 5217 - components: - - type: Transform - pos: -27.5,16.5 - parent: 31 - - uid: 5312 - components: - - type: Transform - pos: 15.5,-26.5 - parent: 31 - - uid: 10302 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -28.5,-20.5 - parent: 31 - - uid: 11101 - components: - - type: Transform - pos: 27.5,-9.5 - parent: 31 - - uid: 11621 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -22.5,-24.5 - parent: 31 - - uid: 11622 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -20.5,-28.5 - parent: 31 - - uid: 11751 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 5.5,-32.5 - parent: 31 - - type: DeviceNetwork - deviceLists: - - 888 - - uid: 11752 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 8.5,-31.5 - parent: 31 - - type: DeviceNetwork - deviceLists: - - 888 - - uid: 11753 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 10.5,-30.5 - parent: 31 - - type: DeviceNetwork - deviceLists: - - 888 - - uid: 11754 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 13.5,-24.5 - parent: 31 - - type: DeviceNetwork - deviceLists: - - 888 -- proto: FirelockEdge - entities: - - uid: 693 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 53.5,3.5 - parent: 31 - - uid: 3737 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -15.5,-18.5 - parent: 31 - - uid: 3738 - components: - - type: Transform - pos: -15.5,-18.5 - parent: 31 - - uid: 3740 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -16.5,-18.5 - parent: 31 - - uid: 4378 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 42.5,-25.5 - parent: 31 - - uid: 7040 - components: - - type: Transform - pos: -18.5,3.5 - parent: 31 - - type: DeviceNetwork - deviceLists: - - 10021 - - uid: 7041 - components: - - type: Transform - pos: -19.5,3.5 - parent: 31 - - type: DeviceNetwork - deviceLists: - - 10021 - - uid: 7042 - components: - - type: Transform - pos: -16.5,3.5 - parent: 31 - - uid: 7051 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 42.5,-24.5 - parent: 31 - - uid: 7052 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 42.5,-23.5 - parent: 31 - - uid: 8482 - components: - - type: Transform - pos: -16.5,-18.5 - parent: 31 - - uid: 10307 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -33.5,-21.5 - parent: 31 - - uid: 11755 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 5.5,-28.5 - parent: 31 - - type: DeviceNetwork - deviceLists: - - 888 - - uid: 11756 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 5.5,-29.5 - parent: 31 - - type: DeviceNetwork - deviceLists: - - 888 -- proto: FirelockElectronics - entities: - - uid: 13 - components: - - type: Transform - pos: -29.687315,9.038336 - parent: 31 - - uid: 55 - components: - - type: Transform - pos: -29.711033,9.429151 - parent: 31 - - uid: 4298 - components: - - type: Transform - pos: 29.352465,-1.4202437 - parent: 31 - - uid: 4324 - components: - - type: Transform - pos: 29.633715,-1.4827437 - parent: 31 -- proto: FirelockGlass - entities: - - uid: 24 - components: - - type: Transform - pos: 20.5,18.5 - parent: 31 - - uid: 613 - components: - - type: Transform - pos: 4.5,-23.5 - parent: 31 - - type: DeviceNetwork - deviceLists: - - 888 - - uid: 669 - components: - - type: Transform - pos: 2.5,-23.5 - parent: 31 - - type: DeviceNetwork - deviceLists: - - 888 - - uid: 673 - components: - - type: Transform - pos: 10.5,-6.5 - parent: 31 - - uid: 852 - components: - - type: Transform - pos: 5.5,5.5 - parent: 31 - - uid: 1027 - components: - - type: Transform - pos: 5.5,4.5 - parent: 31 - - uid: 1028 - components: - - type: Transform - pos: 5.5,3.5 - parent: 31 - - uid: 1185 - components: - - type: Transform - pos: 21.5,18.5 - parent: 31 - - uid: 1505 - components: - - type: Transform - pos: 15.5,8.5 - parent: 31 - - uid: 2872 - components: - - type: Transform - pos: 1.5,-29.5 - parent: 31 - - type: DeviceNetwork - deviceLists: - - 888 - - uid: 2891 - components: - - type: Transform - pos: 1.5,-28.5 - parent: 31 - - type: DeviceNetwork - deviceLists: - - 888 - - uid: 3428 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -9.5,-33.5 - parent: 31 - - uid: 3724 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -4.5,-27.5 - parent: 31 - - uid: 3857 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -10.5,-23.5 - parent: 31 - - uid: 3866 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -12.5,-25.5 - parent: 31 - - uid: 3928 - components: - - type: Transform - pos: -26.5,3.5 - parent: 31 - - uid: 3934 - components: - - type: Transform - pos: -26.5,4.5 - parent: 31 - - uid: 3935 - components: - - type: Transform - pos: -26.5,5.5 - parent: 31 - - uid: 3943 - components: - - type: Transform - pos: 1.5,-2.5 - parent: 31 - - uid: 3944 - components: - - type: Transform - pos: 1.5,-1.5 - parent: 31 - - uid: 3959 - components: - - type: Transform - pos: 1.5,-0.5 - parent: 31 - - uid: 3969 - components: - - type: Transform - pos: -24.5,7.5 - parent: 31 - - uid: 3970 - components: - - type: Transform - pos: -23.5,7.5 - parent: 31 - - uid: 3975 - components: - - type: Transform - pos: -33.5,3.5 - parent: 31 - - uid: 3976 - components: - - type: Transform - pos: -33.5,4.5 - parent: 31 - - uid: 3977 - components: - - type: Transform - pos: -33.5,5.5 - parent: 31 - - uid: 3987 - components: - - type: Transform - pos: 5.5,-1.5 - parent: 31 - - uid: 3988 - components: - - type: Transform - pos: 5.5,-0.5 - parent: 31 - - uid: 3989 - components: - - type: Transform - pos: 5.5,-2.5 - parent: 31 - - uid: 4026 - components: - - type: Transform - pos: 11.5,3.5 - parent: 31 - - uid: 4028 - components: - - type: Transform - pos: 11.5,5.5 - parent: 31 - - uid: 4030 - components: - - type: Transform - pos: 11.5,4.5 - parent: 31 - - uid: 4210 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -13.5,-29.5 - parent: 31 - - uid: 4215 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -5.5,-38.5 - parent: 31 - - uid: 4334 - components: - - type: Transform - pos: 8.5,-8.5 - parent: 31 - - uid: 4345 - components: - - type: Transform - pos: 8.5,-10.5 - parent: 31 - - uid: 4525 - components: - - type: Transform - pos: -10.5,1.5 - parent: 31 - - uid: 4528 - components: - - type: Transform - pos: -10.5,0.5 - parent: 31 - - uid: 4529 - components: - - type: Transform - pos: -10.5,-0.5 - parent: 31 - - uid: 4613 - components: - - type: Transform - pos: 37.5,-8.5 - parent: 31 - - uid: 6957 - components: - - type: Transform - pos: 28.5,-17.5 - parent: 31 - - uid: 7178 - components: - - type: Transform - pos: 38.5,-8.5 - parent: 31 - - uid: 7325 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -37.5,-8.5 - parent: 31 - - uid: 7379 - components: - - type: Transform - pos: 1.5,-26.5 - parent: 31 - - type: DeviceNetwork - deviceLists: - - 888 - - uid: 7460 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 1.5,4.5 - parent: 31 - - uid: 8399 - components: - - type: Transform - pos: 45.5,-6.5 - parent: 31 - - uid: 8810 - components: - - type: Transform - pos: 2.5,29.5 - parent: 31 - - uid: 8813 - components: - - type: Transform - pos: 1.5,28.5 - parent: 31 - - uid: 8814 - components: - - type: Transform - pos: 3.5,29.5 - parent: 31 - - uid: 8815 - components: - - type: Transform - pos: 4.5,29.5 - parent: 31 - - uid: 8816 - components: - - type: Transform - pos: 5.5,28.5 - parent: 31 - - uid: 8856 - components: - - type: Transform - pos: 24.5,5.5 - parent: 31 - - uid: 8857 - components: - - type: Transform - pos: 24.5,3.5 - parent: 31 - - uid: 8858 - components: - - type: Transform - pos: 24.5,4.5 - parent: 31 - - uid: 8883 - components: - - type: Transform - pos: 2.5,15.5 - parent: 31 - - uid: 8884 - components: - - type: Transform - pos: 3.5,15.5 - parent: 31 - - uid: 8885 - components: - - type: Transform - pos: 4.5,15.5 - parent: 31 - - uid: 8940 - components: - - type: Transform - pos: 9.5,-6.5 - parent: 31 - - uid: 8954 - components: - - type: Transform - pos: 1.5,3.5 - parent: 31 - - uid: 8956 - components: - - type: Transform - pos: 1.5,5.5 - parent: 31 - - uid: 9782 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 8.5,-36.5 - parent: 31 - - uid: 9783 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 9.5,-36.5 - parent: 31 - - uid: 9958 - components: - - type: Transform - pos: 36.5,3.5 - parent: 31 - - uid: 9959 - components: - - type: Transform - pos: 36.5,4.5 - parent: 31 - - uid: 9960 - components: - - type: Transform - pos: 36.5,5.5 - parent: 31 - - uid: 9961 - components: - - type: Transform - pos: 33.5,7.5 - parent: 31 - - uid: 9962 - components: - - type: Transform - pos: 30.5,3.5 - parent: 31 - - uid: 9963 - components: - - type: Transform - pos: 30.5,5.5 - parent: 31 - - uid: 9964 - components: - - type: Transform - pos: 33.5,1.5 - parent: 31 - - uid: 9965 - components: - - type: Transform - pos: 25.5,17.5 - parent: 31 - - uid: 9966 - components: - - type: Transform - pos: 25.5,16.5 - parent: 31 - - uid: 9967 - components: - - type: Transform - pos: 21.5,14.5 - parent: 31 - - uid: 9968 - components: - - type: Transform - pos: 20.5,14.5 - parent: 31 - - uid: 9969 - components: - - type: Transform - pos: 3.5,26.5 - parent: 31 - - uid: 9970 - components: - - type: Transform - pos: -21.5,3.5 - parent: 31 - - uid: 9971 - components: - - type: Transform - pos: -21.5,4.5 - parent: 31 - - uid: 9972 - components: - - type: Transform - pos: -21.5,5.5 - parent: 31 - - uid: 9973 - components: - - type: Transform - pos: 54.5,2.5 - parent: 31 - - uid: 9981 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -27.5,-21.5 - parent: 31 - - uid: 9982 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -27.5,-22.5 - parent: 31 - - uid: 9988 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 2.5,-12.5 - parent: 31 - - uid: 9989 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 3.5,-12.5 - parent: 31 - - uid: 9990 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 4.5,-12.5 - parent: 31 - - uid: 9994 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -24.5,1.5 - parent: 31 - - uid: 9995 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -23.5,1.5 - parent: 31 - - uid: 9999 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -5.5,6.5 - parent: 31 - - uid: 10000 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -4.5,6.5 - parent: 31 - - uid: 10008 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 45.5,8.5 - parent: 31 - - uid: 10017 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 13.5,-9.5 - parent: 31 - - uid: 10099 - components: - - type: Transform - pos: 22.5,18.5 - parent: 31 - - uid: 10240 - components: - - type: Transform - pos: -22.5,-10.5 - parent: 31 - - uid: 10241 - components: - - type: Transform - pos: -23.5,-10.5 - parent: 31 - - uid: 10242 - components: - - type: Transform - pos: -24.5,-10.5 - parent: 31 - - uid: 10245 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -36.5,-8.5 - parent: 31 - - uid: 10246 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -35.5,-8.5 - parent: 31 - - uid: 10313 - components: - - type: Transform - pos: -19.5,-14.5 - parent: 31 - - uid: 10314 - components: - - type: Transform - pos: -19.5,-15.5 - parent: 31 - - uid: 10315 - components: - - type: Transform - pos: -19.5,-16.5 - parent: 31 - - uid: 10316 - components: - - type: Transform - pos: 0.5,-14.5 - parent: 31 - - uid: 10317 - components: - - type: Transform - pos: 0.5,-15.5 - parent: 31 - - uid: 10318 - components: - - type: Transform - pos: 0.5,-16.5 - parent: 31 - - uid: 10658 - components: - - type: Transform - pos: 40.5,-12.5 - parent: 31 - - uid: 10900 - components: - - type: Transform - pos: 49.5,-1.5 - parent: 31 - - uid: 11000 - components: - - type: Transform - pos: 9.5,-12.5 - parent: 31 - - uid: 11091 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 29.5,20.5 - parent: 31 - - uid: 11092 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 31.5,18.5 - parent: 31 - - uid: 11495 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -18.5,-22.5 - parent: 31 - - uid: 11498 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -23.5,-17.5 - parent: 31 - - uid: 11499 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -18.5,-21.5 - parent: 31 - - uid: 11501 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -27.5,-22.5 - parent: 31 - - uid: 11502 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -22.5,-17.5 - parent: 31 - - uid: 11503 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -25.5,-23.5 - parent: 31 - - uid: 11504 +- proto: DrinkRootBeerGlass + entities: + - uid: 7691 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -27.5,-21.5 + pos: 16.50716,16.62439 parent: 31 - - uid: 11750 +- proto: DrinkSakeBottleFull + entities: + - uid: 12193 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 3.5,-31.5 + pos: -3.6971354,-6.3372974 parent: 31 - - type: DeviceNetwork - deviceLists: - - 888 -- proto: Fireplace +- proto: DrinkSakeCup entities: - - uid: 3749 + - uid: 12177 components: - type: Transform - pos: 0.5,1.5 + pos: -2.4155946,-4.260042 parent: 31 - - uid: 8988 + - uid: 12178 components: - type: Transform - pos: 7.5,26.5 + pos: -2.3530946,-4.494417 parent: 31 -- proto: Flash +- proto: DrinkShaker entities: - - uid: 2092 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -3.5096004,12.452274 - parent: 31 - - uid: 2499 + - uid: 10628 components: - type: Transform - pos: 8.497082,31.408243 + pos: 42.86208,-10.353377 parent: 31 -- proto: FlashlightLantern +- proto: DrinkShotGlass entities: - - uid: 7122 + - uid: 12189 components: - type: Transform - pos: -2.4670525,30.482414 + pos: -5.952992,-4.4935474 parent: 31 - - uid: 9950 + - uid: 12190 components: - type: Transform - pos: 27.403997,15.554827 + pos: -5.218617,-4.3060474 parent: 31 - - uid: 10696 + - uid: 12191 components: - type: Transform - pos: -0.47756696,-12.240095 + pos: -2.6404922,-5.5560474 parent: 31 -- proto: FlashlightSeclite +- proto: DrinkTequilaSunriseGlass entities: - - uid: 9117 + - uid: 10649 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -14.223138,16.03936 + pos: 43.593338,-8.411646 parent: 31 -- proto: FloorDrain +- proto: DrinkTokkuri entities: - - uid: 262 + - uid: 12176 components: - type: Transform - pos: 15.5,-17.5 + pos: -2.6187196,-4.525667 parent: 31 - - type: Fixtures - fixtures: {} - - uid: 2300 +- proto: DrinkWaterBottleFull + entities: + - uid: 622 components: - type: Transform - pos: -18.5,-11.5 + pos: -9.481841,-18.214483 parent: 31 - - type: Fixtures - fixtures: {} - - uid: 4337 + - uid: 2480 components: - type: Transform - pos: 12.5,27.5 - parent: 31 - - type: Fixtures - fixtures: {} - - uid: 9108 + parent: 2363 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 2481 components: - type: Transform - pos: 17.5,-0.5 - parent: 31 - - type: Fixtures - fixtures: {} - - uid: 9109 + parent: 2363 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 3041 components: - type: Transform - rot: 3.141592653589793 rad - pos: -10.5,-4.5 - parent: 31 - - type: Fixtures - fixtures: {} -- proto: FloorTileItemArcadeBlue + parent: 2363 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: DrinkWaterCup entities: - - uid: 7988 - components: - - type: Transform - pos: 27.598589,-5.5317454 - parent: 31 - - uid: 7989 - components: - - type: Transform - pos: 27.598589,-5.5317454 - parent: 31 - - uid: 7990 + - uid: 1066 components: - type: Transform - pos: 27.598589,-5.5317454 + pos: -6.5799503,27.463812 parent: 31 - - uid: 7991 + - uid: 4089 components: - type: Transform - pos: 27.598589,-5.5317454 + pos: -9.776992,-18.538967 parent: 31 - - uid: 7992 + - uid: 4713 components: - type: Transform - pos: 27.598589,-5.5317454 + pos: -6.792557,27.438795 parent: 31 - - uid: 7993 + - uid: 7607 components: - type: Transform - pos: 27.598589,-5.5317454 + pos: -6.7050133,27.67646 parent: 31 - - uid: 7994 + - uid: 11632 components: - type: Transform - pos: 27.598589,-5.5317454 + pos: -6.7014008,10.701864 parent: 31 - - uid: 7995 + - uid: 11634 components: - type: Transform - pos: 27.598589,-5.5317454 + pos: -6.500059,10.520657 parent: 31 - - uid: 7996 + - uid: 11636 components: - type: Transform - pos: 27.598589,-5.5317454 + pos: -6.3591194,10.701864 parent: 31 - - uid: 7997 +- proto: DrinkWhiskeyGlass + entities: + - uid: 7539 components: - type: Transform - pos: 27.598589,-5.5317454 + pos: -15.830059,-39.34384 parent: 31 - - uid: 7998 +- proto: DrinkWineBottleFull + entities: + - uid: 3536 components: - type: Transform - pos: 27.598589,-5.5317454 + pos: -17.805563,-6.218925 parent: 31 - - uid: 7999 + - uid: 12195 components: - type: Transform - pos: 27.598589,-5.5317454 + pos: -3.1815104,-6.3841724 parent: 31 - - uid: 8000 +- proto: DrinkWineGlass + entities: + - uid: 1736 components: - type: Transform - pos: 27.598589,-5.5317454 + pos: -17.357647,-5.9791746 parent: 31 - - uid: 8001 +- proto: EmergencyLight + entities: + - uid: 309 components: - type: Transform - pos: 27.598589,-5.5317454 + rot: 1.5707963267948966 rad + pos: -40.5,5.5 parent: 31 - - uid: 8002 + - uid: 346 components: - type: Transform - pos: 27.598589,-5.5317454 + rot: 1.5707963267948966 rad + pos: 48.5,-4.5 parent: 31 - - uid: 8003 + - uid: 585 components: - type: Transform - pos: 27.598589,-5.5317454 + rot: -1.5707963267948966 rad + pos: -35.5,-3.5 parent: 31 - - uid: 8004 + - type: PointLight + enabled: True + - type: ActiveEmergencyLight + - uid: 1187 components: - type: Transform - pos: 27.598589,-5.5317454 + pos: 39.5,6.5 parent: 31 - - uid: 8005 + - type: PointLight + enabled: True + - type: ActiveEmergencyLight + - uid: 1224 components: - type: Transform - pos: 27.598589,-5.5317454 + rot: -1.5707963267948966 rad + pos: 10.5,9.5 parent: 31 - - uid: 8006 + - type: PointLight + enabled: True + - type: ActiveEmergencyLight + - uid: 1226 components: - type: Transform - pos: 27.598589,-5.5317454 + pos: -4.5,14.5 parent: 31 - - uid: 8007 + - type: PointLight + enabled: True + - type: ActiveEmergencyLight + - uid: 1299 components: - type: Transform - pos: 27.598589,-5.5317454 + pos: -39.5,10.5 parent: 31 - - uid: 8008 + - type: PointLight + enabled: True + - type: ActiveEmergencyLight + - uid: 1345 components: - type: Transform - pos: 27.598589,-5.5317454 + rot: -1.5707963267948966 rad + pos: 12.5,-3.5 parent: 31 - - uid: 8009 + - type: PointLight + enabled: True + - type: ActiveEmergencyLight + - uid: 1512 components: - type: Transform - pos: 27.598589,-5.5317454 + pos: 23.5,13.5 parent: 31 - - uid: 8010 + - type: PointLight + enabled: True + - type: ActiveEmergencyLight + - uid: 2080 components: - type: Transform - pos: 27.598589,-5.5317454 + pos: -23.5,11.5 parent: 31 - - uid: 8011 + - type: PointLight + enabled: True + - type: ActiveEmergencyLight + - uid: 5354 components: - type: Transform - pos: 27.598589,-5.5317454 + pos: 23.5,5.5 parent: 31 - - uid: 8012 + - uid: 5768 components: - type: Transform - pos: 27.598589,-5.5317454 + pos: -4.5,-14.5 parent: 31 - - uid: 8013 + - uid: 7249 components: - type: Transform - pos: 27.598589,-5.5317454 + pos: -14.5,5.5 parent: 31 - - uid: 8014 + - uid: 10310 components: - type: Transform - pos: 27.598589,-5.5317454 + pos: -9.5,-25.5 parent: 31 - - uid: 8015 + - uid: 13065 components: - type: Transform - pos: 27.598589,-5.5317454 + rot: -1.5707963267948966 rad + pos: 0.5,0.5 parent: 31 - - uid: 8016 +- proto: EmergencyMedipen + entities: + - uid: 10988 components: - type: Transform - pos: 27.598589,-5.5317454 + pos: 12.5220375,-4.6149173 parent: 31 - - uid: 8017 +- proto: EmergencyRollerBed + entities: + - uid: 1202 components: - type: Transform - pos: 27.598589,-5.5317454 + pos: 19.443876,-7.543538 parent: 31 -- proto: FloraTreeLarge05 +- proto: Emitter entities: - - uid: 7374 + - uid: 4870 components: - type: Transform - pos: 49.515545,-24.586845 + rot: 1.5707963267948966 rad + pos: 60.5,2.5 parent: 31 -- proto: FoamBlade +- proto: EncryptionKeyCargo entities: - - uid: 10498 + - uid: 9154 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -13.435028,-32.52688 - parent: 31 -- proto: FoodApple + parent: 9096 + - type: Physics + canCollide: False +- proto: EncryptionKeyCommand entities: - - uid: 10797 + - uid: 3410 components: - type: Transform - pos: 45.728592,-20.95496 - parent: 31 -- proto: FoodBanana + parent: 3371 + - type: Physics + canCollide: False +- proto: EncryptionKeyCommon entities: - - uid: 1218 + - uid: 9066 components: - type: Transform - pos: -19.287416,-7.253504 - parent: 31 - - uid: 1549 + parent: 9065 + - type: Physics + canCollide: False + - uid: 10896 components: - type: Transform - pos: -19.31693,-7.194507 + rot: 1.5707963267948966 rad + pos: 48.434895,-3.386529 parent: 31 -- proto: FoodBowlBig - entities: - - uid: 8950 + - uid: 10897 components: - type: Transform - pos: 10.876451,-23.826777 + rot: 1.5707963267948966 rad + pos: 48.611988,-3.445526 parent: 31 -- proto: FoodBoxDonut +- proto: EncryptionKeyEngineering entities: - - uid: 261 + - uid: 10233 components: - type: Transform - pos: -4.454084,13.160239 - parent: 31 - - uid: 8989 + parent: 10232 + - type: Physics + canCollide: False + - uid: 10898 components: - type: Transform - pos: -1.5376439,25.04381 + pos: 48.936653,-5.4514256 parent: 31 -- proto: FoodCakeSuppermatter +- proto: EncryptionKeyMedical entities: - - uid: 12060 + - uid: 8122 components: - type: Transform - pos: 57.510113,3.4794123 - parent: 31 -- proto: FoodCondimentBottleEnzyme - entities: - - uid: 8441 + parent: 8120 + - type: Physics + canCollide: False + - uid: 10894 components: - type: Transform - pos: -14.835613,-0.50339985 + rot: -1.5707963267948966 rad + pos: 55.474125,-11.511058 parent: 31 - - type: Tag - tags: [] -- proto: FoodCondimentPacketSalt +- proto: EncryptionKeyScience entities: - - uid: 9576 + - uid: 4604 components: - type: Transform - pos: 29.558077,-6.33541 - parent: 31 -- proto: FoodDonkpocketPizza - entities: - - uid: 418 + parent: 4590 + - type: Physics + canCollide: False + - uid: 10895 components: - type: Transform - pos: -8.183176,-18.420973 + pos: 56.448124,-11.363565 parent: 31 -- proto: FoodDonutChocolate +- proto: EncryptionKeySecurity entities: - - uid: 46 + - uid: 8164 components: - type: Transform - pos: -2.214967,7.851863 - parent: 31 -- proto: FoodFrozenSandwich + parent: 8163 + - type: Physics + canCollide: False +- proto: EncryptionKeyService entities: - - uid: 5708 + - uid: 9188 components: - type: Transform - pos: -7.48876,-35.481796 - parent: 31 - - uid: 5709 + parent: 9179 + - type: Physics + canCollide: False +- proto: ExosuitFabricator + entities: + - uid: 9537 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -7.630615,-35.540794 + pos: -0.5,-24.5 parent: 31 -- proto: FoodMealSashimi +- proto: ExplosivesSignMed entities: - - uid: 11300 + - uid: 8897 components: - type: Transform - pos: -6.490023,-1.3167214 + pos: -11.5,17.5 parent: 31 - - uid: 12245 +- proto: ExtendedEmergencyOxygenTank + entities: + - uid: 3730 components: - type: Transform - pos: -6.474398,-0.36359644 + pos: -11.445563,-27.496508 parent: 31 -- proto: FoodMeatCrab +- proto: ExtinguisherCabinet entities: - - uid: 12241 + - uid: 10537 components: - type: Transform - pos: -9.299337,-4.3948464 + rot: 1.5707963267948966 rad + pos: 1.5,-31.5 parent: 31 - - uid: 12242 +- proto: ExtinguisherCabinetFilled + entities: + - uid: 517 components: - type: Transform - pos: -9.299337,-4.5198464 + pos: -10.5,12.5 parent: 31 - - uid: 12243 + - uid: 1868 components: - type: Transform - pos: -9.299337,-4.7385964 + pos: 5.5,23.5 parent: 31 - - uid: 12244 + - uid: 4807 components: - type: Transform - pos: -9.299337,-4.8323464 + pos: 14.5,-3.5 parent: 31 -- proto: FoodMeatFish - entities: - - uid: 6886 + - uid: 4895 components: - type: Transform - pos: -9.564962,-4.4729714 + pos: -34.5,-10.5 parent: 31 - - uid: 6903 + - uid: 4899 components: - type: Transform - pos: -9.564962,-4.3479714 + pos: -30.5,10.5 parent: 31 - - uid: 11479 + - uid: 4900 components: - type: Transform - pos: -9.564962,-4.6448464 + pos: -34.5,-2.5 parent: 31 - - uid: 12240 + - uid: 4908 components: - type: Transform - pos: -9.564962,-4.7698464 + pos: 32.5,-5.5 parent: 31 -- proto: FoodPieBananaCream - entities: - - uid: 1314 + - uid: 4913 components: - type: Transform - pos: -19.730143,-7.194507 + pos: 17.5,8.5 parent: 31 -- proto: FoodPizzaArnoldSlice - entities: - - uid: 9053 + - uid: 4914 components: - type: Transform - pos: -29.477003,17.566315 + pos: 9.5,12.5 parent: 31 -- proto: FoodPizzaPineapple - entities: - - uid: 8745 + - uid: 4916 components: - type: Transform - pos: -35.517406,-25.152033 + pos: -6.5,18.5 parent: 31 -- proto: FoodPlateSmall - entities: - - uid: 6646 + - uid: 4917 components: - type: Transform - pos: -3.414538,-1.2894373 + pos: 0.5,16.5 parent: 31 - - uid: 11302 + - uid: 4918 components: - type: Transform - pos: -2.523913,-1.3363123 + pos: 11.5,17.5 parent: 31 - - uid: 12208 + - uid: 4923 components: - type: Transform - pos: -10.520765,0.62183887 + pos: 11.5,-28.5 parent: 31 - - uid: 12209 + - uid: 5305 components: - type: Transform - pos: -10.395765,-0.33128613 + pos: 17.5,-29.5 parent: 31 - - uid: 12210 + - uid: 5306 components: - type: Transform - pos: -10.489515,1.5437138 + pos: -24.5,23.5 parent: 31 - - uid: 12238 + - uid: 7435 components: - type: Transform - pos: -6.5043883,-0.35773182 + pos: -12.5,-26.5 parent: 31 - - uid: 12239 + - uid: 8894 components: - type: Transform - pos: -6.5668883,-1.2483568 + rot: 3.141592653589793 rad + pos: 51.5,4.5 parent: 31 - - type: Physics - angularDamping: 0 - linearDamping: 0 -- proto: FoodPoppy - entities: - - uid: 4196 + - uid: 8905 components: - type: Transform - pos: -2.270069,18.786497 + pos: 5.5,29.5 parent: 31 - - type: Physics - angularDamping: 0 - linearDamping: 0 - - uid: 9762 + - uid: 10311 components: - type: Transform - pos: -16.049828,-39.578854 + pos: -16.5,-9.5 parent: 31 -- proto: FoodShakerSalt - entities: - - uid: 9577 + - uid: 11387 components: - type: Transform - pos: 29.948702,-6.58541 + pos: 42.5,-1.5 parent: 31 - - uid: 9578 +- proto: EZNutrientChemistryBottle + entities: + - uid: 10445 components: - type: Transform - pos: 29.136202,-6.538535 + pos: -22.720448,-0.21116775 parent: 31 -- proto: FoodSnackChocolate +- proto: FaxMachineBase entities: - - uid: 1913 + - uid: 683 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 8.419368,-3.3883321 + pos: 14.5,-4.5 parent: 31 - - uid: 5636 + - type: FaxMachine + name: Medical + destinationAddress: Medical + - uid: 802 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 8.617393,-3.3883321 + pos: 4.5,31.5 parent: 31 -- proto: FoodTinBeans - entities: - - uid: 3485 + - uid: 1264 components: - type: Transform - parent: 2363 - - type: Physics - canCollide: False - - type: InsideEntityStorage - - uid: 3831 + pos: 40.5,4.5 + parent: 31 + - type: FaxMachine + name: engineering + - uid: 2045 components: - type: Transform - parent: 2363 - - type: Physics - canCollide: False - - type: InsideEntityStorage - - uid: 3832 + pos: -17.5,-25.5 + parent: 31 + - type: FaxMachine + name: Science + destinationAddress: Science + - uid: 8323 components: - type: Transform - parent: 2363 - - type: Physics - canCollide: False - - type: InsideEntityStorage -- proto: FoodTinMRE - entities: - - uid: 7837 + pos: 9.5,-28.5 + parent: 31 + - type: FaxMachine + name: library + - uid: 8994 components: - type: Transform - pos: -26.53067,19.803333 + pos: 13.5,12.5 parent: 31 -- proto: FoodWatermelonSlice - entities: - - uid: 10793 + - type: FaxMachine + name: Cargo + destinationAddress: Cargo + - uid: 9687 components: - type: Transform - pos: 45.529526,-21.25198 + pos: 8.5,18.5 parent: 31 -- proto: Fork + - type: FaxMachine + name: hop's office +- proto: FaxMachineCaptain entities: - - uid: 12172 + - uid: 7191 components: - type: Transform - pos: -3.758288,-1.4300623 + pos: 6.5,24.5 parent: 31 - - uid: 12173 +- proto: filingCabinet + entities: + - uid: 2708 components: - type: Transform - pos: -2.867663,-1.3988123 + pos: 0.5,13.5 parent: 31 -- proto: ForkPlastic +- proto: filingCabinetDrawerRandom entities: - - uid: 12212 + - uid: 1758 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -10.44264,0.24683887 + pos: -1.5,11.5 parent: 31 - - uid: 12213 + - uid: 4637 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -10.41139,1.1999638 + pos: -10.5,-30.5 parent: 31 - - uid: 12214 + - uid: 8890 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -10.44264,-0.58128613 + pos: 9.5,18.5 parent: 31 -- proto: FuelDispenser +- proto: filingCabinetRandom entities: - - uid: 5080 + - uid: 4216 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 20.5,0.5 + pos: 6.5,26.5 parent: 31 - - uid: 11338 + - uid: 5628 components: - type: Transform - rot: 3.141592653589793 rad - pos: 31.5,-5.5 + pos: 6.5,-5.5 parent: 31 -- proto: GasAnalyzer - entities: - - uid: 3985 + - uid: 7542 components: - type: Transform - pos: -11.359732,-27.422089 + pos: -12.5,-39.5 parent: 31 -- proto: GasFilter - entities: - - uid: 7125 + - uid: 7710 components: - - type: MetaData - name: waste filter - type: Transform - rot: -1.5707963267948966 rad - pos: 8.5,-16.5 + pos: 15.5,12.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' -- proto: GasFilterFlipped +- proto: FireAlarm entities: - - uid: 4431 + - uid: 888 components: - type: Transform - pos: 71.5,9.5 + rot: 1.5707963267948966 rad + pos: 1.5,-24.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 4432 + - type: DeviceList + devices: + - 11750 + - 613 + - 669 + - 2872 + - 2891 + - 7379 + - 11751 + - 11752 + - 11753 + - 11754 + - 11755 + - 11756 + - uid: 4101 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 68.5,6.5 + rot: 1.5707963267948966 rad + pos: 1.5,26.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 4556 + - type: DeviceList + devices: + - 7209 + - 7166 + - 4073 + - 7270 + - 7337 + - 7351 + - 7353 + - 7354 + - 7355 + - uid: 9041 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 69.5,6.5 + rot: 3.141592653589793 rad + pos: -14.5,2.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 4559 + - type: DeviceList + devices: + - 9972 + - 9970 + - 995 + - 179 + - 337 + - uid: 9985 components: - type: Transform rot: -1.5707963267948966 rad - pos: 67.5,6.5 - parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 6850 - components: - - type: Transform - pos: 71.5,7.5 + pos: 6.5,-14.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 7367 + - type: DeviceList + devices: + - 9988 + - 9990 + - uid: 9992 components: - type: Transform rot: -1.5707963267948966 rad - pos: 38.5,16.5 + pos: 5.5,8.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 8437 + - type: DeviceList + devices: + - 8954 + - 8956 + - 852 + - 1027 + - 1028 + - 8885 + - 8883 + - 3959 + - 3944 + - 3943 + - 3989 + - 3987 + - 3988 + - 9988 + - 9990 + - 576 + - 1330 + - 1167 + - uid: 9997 components: - type: Transform rot: -1.5707963267948966 rad - pos: 36.5,16.5 + pos: -34.5,1.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 9086 + - type: DeviceList + devices: + - 3977 + - 3976 + - 3975 + - uid: 10004 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 42.5,16.5 + rot: 3.141592653589793 rad + pos: 5.5,15.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 9099 + - type: DeviceList + devices: + - 8885 + - 8883 + - 5115 + - uid: 10006 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 40.5,16.5 + pos: 18.5,6.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 9190 + - type: DeviceList + devices: + - 4028 + - 4030 + - 4026 + - 8856 + - 8857 + - uid: 10023 components: - type: Transform rot: -1.5707963267948966 rad - pos: 34.5,16.5 + pos: 1.5,-3.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 9391 + - type: DeviceList + devices: + - 3943 + - 3944 + - 3959 + - 1167 + - 1330 + - 576 + - 4525 + - 4528 + - 4529 + - uid: 10243 components: - type: Transform rot: -1.5707963267948966 rad - pos: 44.5,16.5 + pos: -21.5,-13.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 10106 + - type: DeviceList + devices: + - 10313 + - 10314 + - 10315 + - uid: 10409 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 46.5,16.5 + pos: -17.5,-13.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 10108 + - type: DeviceList + devices: + - 10313 + - 10314 + - 10315 + - uid: 10410 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 33.5,16.5 + pos: -1.5,-13.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' -- proto: GasMinerAmmonia - entities: - - uid: 6657 + - type: DeviceList + devices: + - 10316 + - 10318 + - uid: 10419 components: - type: Transform - pos: 46.5,22.5 + pos: -11.5,-23.5 parent: 31 -- proto: GasMinerCarbonDioxide - entities: - - uid: 6655 + - type: DeviceList + devices: + - 3857 + - 3866 + - 3428 + - 3724 + - uid: 11003 components: - type: Transform - pos: 40.5,22.5 + rot: 1.5707963267948966 rad + pos: 5.5,-3.5 parent: 31 -- proto: GasMinerNitrogenStation + - type: DeviceList + devices: + - 3989 + - 3987 + - 3988 + - 8940 + - 673 +- proto: FireAxeCabinetFilled entities: - - uid: 6545 + - uid: 9896 components: - type: Transform - pos: 34.5,22.5 + pos: -0.5,30.5 parent: 31 -- proto: GasMinerNitrousOxide - entities: - - uid: 6654 + - uid: 11444 components: - type: Transform - pos: 38.5,22.5 + pos: 52.5,18.5 parent: 31 -- proto: GasMinerOxygenStation +- proto: Firelock entities: - - uid: 6538 + - uid: 45 components: - type: Transform - pos: 36.5,22.5 + pos: -32.5,-12.5 parent: 31 -- proto: GasMinerPlasma - entities: - - uid: 6656 + - uid: 179 components: - type: Transform - pos: 42.5,22.5 + pos: -10.5,4.5 parent: 31 -- proto: GasMixerFlipped - entities: - - uid: 7310 + - uid: 308 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 39.5,15.5 + pos: -29.5,-18.5 parent: 31 - - uid: 7477 + - uid: 337 components: - type: Transform - rot: 3.141592653589793 rad - pos: 34.5,14.5 + pos: -10.5,3.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8303 + - uid: 409 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 37.5,15.5 + pos: -6.5,-8.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8428 + - uid: 575 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 41.5,15.5 + pos: 15.5,-3.5 parent: 31 - - uid: 12140 + - uid: 576 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 43.5,15.5 + pos: -7.5,2.5 parent: 31 - - uid: 12141 + - uid: 684 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 45.5,15.5 + pos: 21.5,-22.5 parent: 31 - - uid: 12142 + - uid: 995 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 47.5,15.5 + pos: -10.5,5.5 parent: 31 -- proto: GasOutletInjector - entities: - - uid: 672 + - uid: 1167 components: - type: Transform - pos: 42.5,21.5 + pos: -5.5,2.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 2177 + - uid: 1330 components: - type: Transform - pos: 34.5,21.5 + pos: -6.5,2.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 2668 + - uid: 2180 components: - type: Transform - pos: 40.5,21.5 + pos: 22.5,-22.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 3461 + - uid: 3376 components: - type: Transform - pos: 38.5,21.5 + pos: -18.5,21.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 4034 + - uid: 3962 components: - type: Transform - pos: 36.5,21.5 + pos: -6.5,-9.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 11045 + - uid: 3968 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 48.5,12.5 + pos: -32.5,-9.5 parent: 31 - - uid: 11062 + - uid: 3982 components: - type: Transform - pos: 46.5,21.5 + pos: 13.5,-19.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 11069 + - uid: 3984 components: - type: Transform - pos: 44.5,21.5 + pos: 13.5,-20.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' -- proto: GasPassiveVent - entities: - - uid: 7 + - uid: 3992 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 40.5,23.5 + pos: 37.5,-5.5 parent: 31 - - uid: 49 + - uid: 3996 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 42.5,23.5 + pos: -33.5,-9.5 parent: 31 - - uid: 52 + - uid: 4002 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 38.5,23.5 + pos: 25.5,-1.5 parent: 31 - - uid: 127 + - uid: 4003 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 44.5,23.5 + pos: 25.5,-2.5 parent: 31 - - uid: 3124 + - uid: 4010 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 36.5,23.5 + pos: -1.5,6.5 parent: 31 - - uid: 3477 + - uid: 4015 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 34.5,23.5 + pos: 38.5,-5.5 parent: 31 - - uid: 4443 + - uid: 4019 components: - type: Transform - rot: 3.141592653589793 rad - pos: 66.5,3.5 + pos: 11.5,14.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 4477 + - uid: 4041 components: - type: Transform - rot: 3.141592653589793 rad - pos: 67.5,3.5 + pos: -10.5,24.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 4560 + - uid: 4042 components: - type: Transform - pos: 66.5,1.5 + pos: -10.5,25.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4641 + - uid: 4975 components: - type: Transform - pos: 67.5,1.5 + pos: -22.5,21.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5547 + - uid: 5034 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -12.5,-4.5 + pos: 26.5,-19.5 parent: 31 - - uid: 5752 + - uid: 5035 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -15.5,-29.5 + pos: 23.5,-24.5 parent: 31 - - uid: 6211 + - uid: 5104 components: - type: Transform - pos: 33.5,19.5 + pos: 13.5,-0.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 6856 + - uid: 5115 components: - type: Transform - rot: 3.141592653589793 rad - pos: 68.5,3.5 + pos: 6.5,20.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 6864 + - uid: 5217 components: - type: Transform - pos: 68.5,1.5 + pos: -27.5,16.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 9392 + - uid: 5312 components: - type: Transform - pos: 48.5,19.5 + pos: 15.5,-26.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 11025 + - uid: 10302 components: - type: Transform rot: 1.5707963267948966 rad - pos: 46.5,23.5 + pos: -28.5,-20.5 parent: 31 - - uid: 12128 + - uid: 11101 components: - type: Transform - pos: 66.5,13.5 + pos: 27.5,-9.5 parent: 31 -- proto: GasPipeBend - entities: - - uid: 1 + - uid: 11621 components: - type: Transform - pos: 39.5,23.5 + rot: -1.5707963267948966 rad + pos: -22.5,-24.5 parent: 31 - - uid: 21 + - uid: 11622 components: - type: Transform - pos: 41.5,23.5 + rot: -1.5707963267948966 rad + pos: -20.5,-28.5 parent: 31 - - uid: 129 + - uid: 11751 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 39.5,6.5 + rot: -1.5707963267948966 rad + pos: 5.5,-32.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 644 + - type: DeviceNetwork + deviceLists: + - 888 + - uid: 11752 components: - type: Transform rot: -1.5707963267948966 rad - pos: 50.5,11.5 + pos: 8.5,-31.5 parent: 31 - - uid: 667 + - type: DeviceNetwork + deviceLists: + - 888 + - uid: 11753 components: - type: Transform - pos: 45.5,23.5 + rot: -1.5707963267948966 rad + pos: 10.5,-30.5 parent: 31 - - uid: 898 + - type: DeviceNetwork + deviceLists: + - 888 + - uid: 11754 components: - type: Transform - pos: 43.5,23.5 + rot: -1.5707963267948966 rad + pos: 13.5,-24.5 parent: 31 - - uid: 954 + - type: DeviceNetwork + deviceLists: + - 888 + - uid: 12682 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 34.5,10.5 + pos: -28.5,-25.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 981 +- proto: FirelockEdge + entities: + - uid: 693 components: - type: Transform - pos: 10.5,24.5 + rot: 3.141592653589793 rad + pos: 53.5,3.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 1250 + - uid: 3737 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 12.5,25.5 + rot: 3.141592653589793 rad + pos: -15.5,-18.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 1634 + - uid: 3738 components: - type: Transform - pos: -4.5,25.5 + pos: -15.5,-18.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 1914 + - uid: 3740 components: - type: Transform - pos: 64.5,13.5 + rot: 3.141592653589793 rad + pos: -16.5,-18.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 2417 + - uid: 4073 components: - type: Transform - pos: 37.5,23.5 + rot: 1.5707963267948966 rad + pos: -0.5,29.5 parent: 31 - - uid: 3011 + - type: DeviceNetwork + deviceLists: + - 4101 + - uid: 7270 components: - type: Transform - pos: 35.5,23.5 + rot: 1.5707963267948966 rad + pos: -0.5,28.5 parent: 31 - - uid: 3206 + - type: DeviceNetwork + deviceLists: + - 4101 + - uid: 8482 components: - type: Transform - rot: 3.141592653589793 rad - pos: 24.5,10.5 + pos: -16.5,-18.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 3207 + - uid: 10307 components: - type: Transform - pos: 24.5,11.5 + rot: 1.5707963267948966 rad + pos: -33.5,-21.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 3841 + - uid: 11755 components: - type: Transform - pos: -23.5,9.5 + rot: -1.5707963267948966 rad + pos: 5.5,-28.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 3946 + - type: DeviceNetwork + deviceLists: + - 888 + - uid: 11756 components: - type: Transform - rot: 3.141592653589793 rad - pos: 55.5,13.5 + rot: -1.5707963267948966 rad + pos: 5.5,-29.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 4316 + - type: DeviceNetwork + deviceLists: + - 888 +- proto: FirelockElectronics + entities: + - uid: 13 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 22.5,16.5 + pos: -29.687315,9.038336 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4373 + - uid: 55 components: - type: Transform - rot: 3.141592653589793 rad - pos: 62.5,2.5 + pos: -29.711033,9.429151 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4400 + - uid: 4298 components: - type: Transform - pos: 54.5,25.5 + pos: 29.352465,-1.4202437 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 4430 + - uid: 4324 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 30.5,24.5 + pos: 29.633715,-1.4827437 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 4434 + - uid: 11189 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 65.5,7.5 + pos: -17.2592,20.436329 parent: 31 - - uid: 4435 +- proto: FirelockFrame + entities: + - uid: 3419 components: - type: Transform - pos: 68.5,4.5 + pos: -17.5,21.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 4482 +- proto: FirelockGlass + entities: + - uid: 24 components: - type: Transform - pos: 31.5,19.5 + pos: 20.5,18.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 4543 + - uid: 263 components: - type: Transform - pos: 63.5,12.5 + pos: -24.5,-8.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 4553 + - uid: 613 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 71.5,10.5 + pos: 4.5,-23.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 4601 + - type: DeviceNetwork + deviceLists: + - 888 + - uid: 669 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 71.5,6.5 + pos: 2.5,-23.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 4642 + - type: DeviceNetwork + deviceLists: + - 888 + - uid: 673 components: - type: Transform - rot: 3.141592653589793 rad - pos: -40.5,-4.5 + pos: 10.5,-6.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4649 + - uid: 852 components: - type: Transform - pos: 55.5,2.5 + pos: 5.5,5.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4773 + - uid: 1027 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 70.5,2.5 + pos: 5.5,4.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 4788 + - uid: 1028 components: - type: Transform - pos: 55.5,23.5 + pos: 5.5,3.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 4796 + - uid: 1185 components: - type: Transform - pos: 63.5,7.5 + pos: 21.5,18.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4846 + - uid: 1505 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 32.5,25.5 + pos: 15.5,8.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 4932 + - uid: 2148 components: - type: Transform - pos: 47.5,23.5 + pos: -26.5,-8.5 parent: 31 - - uid: 5456 + - uid: 2872 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 15.5,11.5 + pos: 1.5,-29.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 5457 + - type: DeviceNetwork + deviceLists: + - 888 + - uid: 2891 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 13.5,10.5 + pos: 1.5,-28.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5538 + - type: DeviceNetwork + deviceLists: + - 888 + - uid: 3305 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -16.5,-1.5 + pos: 1.5,4.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5551 + - type: DeviceNetwork + deviceLists: + - 9979 + - uid: 3428 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -16.5,-4.5 + rot: 3.141592653589793 rad + pos: -9.5,-33.5 parent: 31 - - uid: 5553 + - uid: 3724 components: - type: Transform - pos: 10.5,-1.5 + rot: 3.141592653589793 rad + pos: -4.5,-27.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5554 + - uid: 3857 components: - type: Transform - pos: 11.5,0.5 + rot: 3.141592653589793 rad + pos: -10.5,-23.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 5582 + - uid: 3866 components: - type: Transform - pos: 19.5,-8.5 + rot: 3.141592653589793 rad + pos: -12.5,-25.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5589 + - uid: 3943 components: - type: Transform - pos: 18.5,-10.5 + pos: 1.5,-2.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 5627 + - uid: 3944 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 14.5,-15.5 + pos: 1.5,-1.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5639 + - uid: 3959 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 9.5,-8.5 + pos: 1.5,-0.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5640 + - uid: 3969 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 8.5,-10.5 + pos: -24.5,7.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 5682 + - uid: 3970 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 15.5,-17.5 + pos: -23.5,7.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5683 + - uid: 3975 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 14.5,-17.5 + pos: -33.5,3.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5697 + - uid: 3976 components: - type: Transform - rot: 3.141592653589793 rad - pos: 8.5,-25.5 + pos: -33.5,4.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5702 + - uid: 3977 components: - type: Transform - pos: 7.5,-19.5 + pos: -33.5,5.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5703 + - uid: 3987 components: - type: Transform - rot: 3.141592653589793 rad - pos: 7.5,-20.5 + pos: 5.5,-1.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5722 + - uid: 3988 components: - type: Transform - rot: 3.141592653589793 rad - pos: -36.5,13.5 + pos: 5.5,-0.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5724 + - uid: 3989 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -11.5,-29.5 + pos: 5.5,-2.5 parent: 31 - - uid: 5778 + - uid: 4026 components: - type: Transform - rot: 3.141592653589793 rad - pos: 14.5,-25.5 + pos: 11.5,3.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5779 + - uid: 4028 components: - type: Transform - pos: 15.5,-25.5 + pos: 11.5,5.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5783 + - uid: 4030 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -22.5,23.5 + pos: 11.5,4.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5892 + - uid: 4210 components: - type: Transform rot: 3.141592653589793 rad - pos: -4.5,20.5 + pos: -13.5,-29.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5896 + - uid: 4215 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -18.5,25.5 + rot: 3.141592653589793 rad + pos: -5.5,-38.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5897 + - uid: 4334 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -18.5,19.5 + pos: 8.5,-8.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5944 + - uid: 4345 components: - type: Transform - pos: 8.5,9.5 + pos: 8.5,-10.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5971 + - uid: 4525 components: - type: Transform - pos: -5.5,10.5 + pos: -10.5,1.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 5991 + - uid: 4528 components: - type: Transform - pos: -4.5,10.5 + pos: -10.5,0.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6001 + - uid: 4529 + components: + - type: Transform + pos: -10.5,-0.5 + parent: 31 + - uid: 4613 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -8.5,21.5 + pos: 37.5,-8.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 6016 + - uid: 6002 components: - type: Transform - rot: 3.141592653589793 rad - pos: -5.5,10.5 + pos: 24.5,4.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6025 + - type: DeviceNetwork + deviceLists: + - 9978 + - uid: 6957 components: - type: Transform - pos: -11.5,16.5 + pos: 28.5,-17.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6026 + - uid: 7166 components: - type: Transform - rot: 3.141592653589793 rad - pos: -12.5,16.5 + rot: 1.5707963267948966 rad + pos: -3.5,28.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6096 + - type: DeviceNetwork + deviceLists: + - 4101 + - uid: 7178 components: - type: Transform - rot: 3.141592653589793 rad - pos: 7.5,-17.5 + pos: 38.5,-8.5 parent: 31 - - uid: 6106 + - uid: 7209 components: - type: Transform - rot: 3.141592653589793 rad - pos: -27.5,9.5 + rot: 1.5707963267948966 rad + pos: -3.5,30.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 6214 + - type: DeviceNetwork + deviceLists: + - 4101 + - uid: 7325 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 20.5,17.5 + rot: -1.5707963267948966 rad + pos: -37.5,-8.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 6228 + - uid: 7337 components: - type: Transform rot: 3.141592653589793 rad - pos: 44.5,2.5 + pos: 3.5,27.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6265 + - type: DeviceNetwork + deviceLists: + - 4101 + - uid: 7351 components: - type: Transform rot: 3.141592653589793 rad - pos: 38.5,0.5 + pos: 1.5,25.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 6266 + - type: DeviceNetwork + deviceLists: + - 4101 + - uid: 7353 components: - type: Transform - pos: 39.5,0.5 + rot: 3.141592653589793 rad + pos: 1.5,24.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 6274 + - type: DeviceNetwork + deviceLists: + - 4101 + - uid: 7354 components: - type: Transform rot: 3.141592653589793 rad - pos: 37.5,-0.5 + pos: 3.5,22.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6540 + - type: DeviceNetwork + deviceLists: + - 4101 + - uid: 7355 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 43.5,9.5 + rot: 3.141592653589793 rad + pos: 5.5,25.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 6578 + - type: DeviceNetwork + deviceLists: + - 4101 + - uid: 7379 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 44.5,8.5 + pos: 1.5,-26.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6632 + - type: DeviceNetwork + deviceLists: + - 888 + - uid: 8399 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -22.5,-16.5 + pos: 45.5,-6.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 6753 + - uid: 8856 components: - type: Transform - pos: 70.5,8.5 + pos: 24.5,5.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 6762 + - uid: 8857 components: - type: Transform - pos: 67.5,7.5 + pos: 24.5,3.5 parent: 31 - - uid: 6764 + - uid: 8883 components: - type: Transform - rot: 3.141592653589793 rad - pos: 30.5,19.5 + pos: 2.5,15.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 6846 + - uid: 8885 components: - type: Transform - rot: 3.141592653589793 rad - pos: 63.5,9.5 + pos: 4.5,15.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 6867 + - uid: 8940 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 32.5,24.5 + pos: 9.5,-6.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 6927 + - uid: 8954 components: - type: Transform - rot: 3.141592653589793 rad - pos: 54.5,23.5 + pos: 1.5,3.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 7091 + - uid: 8956 components: - type: Transform - rot: 3.141592653589793 rad - pos: 23.5,9.5 + pos: 1.5,5.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7092 + - uid: 9782 components: - type: Transform - pos: 23.5,10.5 + rot: 3.141592653589793 rad + pos: 8.5,-36.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7183 + - uid: 9783 components: - type: Transform rot: 3.141592653589793 rad - pos: 55.5,1.5 + pos: 9.5,-36.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7228 + - uid: 9958 components: - type: Transform - rot: 3.141592653589793 rad - pos: 62.5,-1.5 + pos: 36.5,3.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7426 + - uid: 9960 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -32.5,-8.5 + pos: 36.5,5.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 7638 + - uid: 9961 components: - type: Transform - rot: 3.141592653589793 rad - pos: 57.5,14.5 + pos: 33.5,7.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7726 + - uid: 9962 components: - type: Transform - rot: 3.141592653589793 rad - pos: -37.5,3.5 + pos: 30.5,3.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 8110 + - uid: 9963 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 9.5,-17.5 + pos: 30.5,5.5 parent: 31 - - uid: 8232 + - uid: 9964 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 37.5,14.5 + pos: 33.5,1.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8426 + - uid: 9965 components: - type: Transform - pos: 57.5,15.5 + pos: 25.5,17.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8427 + - uid: 9966 components: - type: Transform - rot: 3.141592653589793 rad - pos: 62.5,13.5 + pos: 25.5,16.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8430 + - uid: 9967 components: - type: Transform - pos: 62.5,14.5 + pos: 21.5,14.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8458 + - uid: 9968 components: - type: Transform - pos: 59.5,13.5 + pos: 20.5,14.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 8459 + - uid: 9970 components: - type: Transform - rot: 3.141592653589793 rad - pos: 59.5,12.5 + pos: -21.5,3.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 8990 + - uid: 9972 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 48.5,16.5 + pos: -21.5,5.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 9057 + - uid: 9973 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 64.5,-0.5 + pos: 54.5,2.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 9152 + - uid: 9981 components: - type: Transform rot: 1.5707963267948966 rad - pos: 62.5,-0.5 + pos: -27.5,-21.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 9200 + - uid: 9982 components: - type: Transform rot: 1.5707963267948966 rad - pos: -37.5,0.5 + pos: -27.5,-22.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 9224 + - uid: 9988 components: - type: Transform - rot: 3.141592653589793 rad - pos: -38.5,13.5 + rot: -1.5707963267948966 rad + pos: 2.5,-12.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 9263 + - uid: 9990 components: - type: Transform - pos: 33.5,12.5 + rot: -1.5707963267948966 rad + pos: 4.5,-12.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 9353 + - uid: 9999 components: - type: Transform - pos: -24.5,14.5 + rot: 1.5707963267948966 rad + pos: -5.5,6.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 9354 + - uid: 10000 components: - type: Transform - rot: 3.141592653589793 rad - pos: -25.5,14.5 + rot: 1.5707963267948966 rad + pos: -4.5,6.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 9355 + - uid: 10008 components: - type: Transform rot: 1.5707963267948966 rad - pos: -25.5,19.5 + pos: 45.5,8.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10103 + - uid: 10017 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 34.5,15.5 + rot: -1.5707963267948966 rad + pos: 13.5,-9.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10381 + - uid: 10099 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 0.5,-29.5 + pos: 22.5,18.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10913 + - uid: 10245 components: - type: Transform - pos: 56.5,-3.5 + rot: -1.5707963267948966 rad + pos: -36.5,-8.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 10955 + - uid: 10246 components: - type: Transform - pos: 55.5,-8.5 + rot: -1.5707963267948966 rad + pos: -35.5,-8.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10956 + - uid: 10313 components: - type: Transform - rot: 3.141592653589793 rad - pos: 55.5,-9.5 + pos: -19.5,-14.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10957 + - uid: 10314 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 47.5,-8.5 + pos: -19.5,-15.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11050 + - uid: 10315 components: - type: Transform - pos: 50.5,13.5 + pos: -19.5,-16.5 parent: 31 - - uid: 11567 + - uid: 10316 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -23.5,-14.5 + pos: 0.5,-14.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11573 + - uid: 10318 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -22.5,-22.5 + pos: 0.5,-16.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 11590 + - uid: 10658 components: - type: Transform - rot: 3.141592653589793 rad - pos: -23.5,-23.5 + pos: 40.5,-12.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11591 + - uid: 10900 components: - type: Transform - pos: -22.5,-23.5 + pos: 49.5,-1.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11595 + - uid: 11000 components: - type: Transform - rot: 3.141592653589793 rad - pos: -22.5,-27.5 + pos: 9.5,-12.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11603 + - uid: 11091 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -31.5,-21.5 + rot: -1.5707963267948966 rad + pos: 29.5,20.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11604 + - uid: 11092 components: - type: Transform rot: -1.5707963267948966 rad - pos: -31.5,-22.5 + pos: 31.5,18.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11605 + - uid: 11495 components: - type: Transform rot: 1.5707963267948966 rad - pos: -30.5,-22.5 + pos: -18.5,-22.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 11797 + - uid: 11498 components: - type: Transform - pos: 75.5,10.5 + rot: 1.5707963267948966 rad + pos: -23.5,-17.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 11799 + - uid: 11499 components: - type: Transform - pos: 76.5,8.5 + rot: 1.5707963267948966 rad + pos: -18.5,-21.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 11800 + - uid: 11501 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 76.5,3.5 + rot: 1.5707963267948966 rad + pos: -27.5,-22.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11806 + - uid: 11502 components: - type: Transform rot: 1.5707963267948966 rad - pos: 73.5,8.5 + pos: -22.5,-17.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 11810 + - uid: 11503 components: - type: Transform rot: 1.5707963267948966 rad - pos: 72.5,3.5 + pos: -25.5,-23.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11865 + - uid: 11504 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -27.5,-21.5 + parent: 31 + - uid: 11750 components: - type: Transform rot: -1.5707963267948966 rad - pos: 72.5,0.5 + pos: 3.5,-31.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11866 + - type: DeviceNetwork + deviceLists: + - 888 +- proto: Fireplace + entities: + - uid: 3749 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 71.5,0.5 + pos: 0.5,1.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11867 + - uid: 8988 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 71.5,-0.5 + pos: 7.5,26.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11868 +- proto: FlashlightLantern + entities: + - uid: 9950 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 70.5,-0.5 + pos: 27.403997,15.554827 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11869 + - uid: 10696 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 70.5,-1.5 + pos: -0.47756696,-12.240095 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11882 +- proto: FlashlightSeclite + entities: + - uid: 9117 components: - type: Transform rot: -1.5707963267948966 rad - pos: 68.5,0.5 + pos: -14.223138,16.03936 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 12152 +- proto: FloorDrain + entities: + - uid: 262 components: - type: Transform - rot: 3.141592653589793 rad - pos: 32.5,12.5 + pos: 15.5,-17.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 12154 + - type: Fixtures + fixtures: {} + - uid: 675 + components: + - type: Transform + pos: -6.5,-12.5 + parent: 31 + - type: Fixtures + fixtures: {} + - uid: 4337 components: - type: Transform - pos: 32.5,13.5 + pos: 12.5,27.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 12248 + - type: Fixtures + fixtures: {} + - uid: 9108 components: - type: Transform - rot: 3.141592653589793 rad - pos: 33.5,13.5 + pos: 17.5,-0.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 12250 + - type: Fixtures + fixtures: {} + - uid: 9109 components: - type: Transform rot: 3.141592653589793 rad - pos: 32.5,14.5 + pos: -10.5,-4.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 12580 + - type: Fixtures + fixtures: {} + - uid: 10391 components: - type: Transform - rot: 3.141592653589793 rad - pos: 31.5,13.5 + pos: -21.5,-6.5 parent: 31 -- proto: GasPipeBroken + - type: Fixtures + fixtures: {} +- proto: FloorTileItemArcadeBlue entities: - - uid: 1352 + - uid: 7988 components: - type: Transform - pos: 34.5,14.5 + pos: 27.598589,-5.5317454 parent: 31 -- proto: GasPipeFourway - entities: - - uid: 583 + - uid: 7989 components: - type: Transform - pos: -7.5,-19.5 + pos: 27.598589,-5.5317454 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 5321 + - uid: 7990 components: - type: Transform - pos: 2.5,3.5 + pos: 27.598589,-5.5317454 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 5322 + - uid: 7991 components: - type: Transform - pos: 4.5,5.5 + pos: 27.598589,-5.5317454 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5325 + - uid: 7992 components: - type: Transform - pos: 4.5,-1.5 + pos: 27.598589,-5.5317454 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5361 + - uid: 7993 components: - type: Transform - pos: 2.5,0.5 + pos: 27.598589,-5.5317454 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 5813 + - uid: 7994 components: - type: Transform - pos: 2.5,24.5 + pos: 27.598589,-5.5317454 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 5823 + - uid: 7995 components: - type: Transform - pos: 4.5,25.5 + pos: 27.598589,-5.5317454 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5828 + - uid: 7996 components: - type: Transform - pos: 4.5,20.5 + pos: 27.598589,-5.5317454 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5952 + - uid: 7997 components: - type: Transform - pos: 32.5,5.5 + pos: 27.598589,-5.5317454 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5953 + - uid: 7998 components: - type: Transform - pos: 33.5,3.5 + pos: 27.598589,-5.5317454 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 6082 + - uid: 7999 components: - type: Transform - pos: -23.5,3.5 + pos: 27.598589,-5.5317454 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 6083 + - uid: 8000 components: - type: Transform - pos: -24.5,5.5 + pos: 27.598589,-5.5317454 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6144 + - uid: 8001 components: - type: Transform - pos: -35.5,5.5 + pos: 27.598589,-5.5317454 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6150 + - uid: 8002 components: - type: Transform - pos: -36.5,3.5 + pos: 27.598589,-5.5317454 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 6444 + - uid: 8003 components: - type: Transform - pos: 33.5,9.5 + pos: 27.598589,-5.5317454 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 7414 + - uid: 8004 components: - type: Transform - pos: 2.5,-16.5 + pos: 27.598589,-5.5317454 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 11407 + - uid: 8005 components: - type: Transform - pos: -37.5,-5.5 + pos: 27.598589,-5.5317454 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 11798 + - uid: 8006 components: - type: Transform - pos: 75.5,8.5 + pos: 27.598589,-5.5317454 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' -- proto: GasPipeStraight - entities: - - uid: 57 + - uid: 8007 components: - type: Transform - pos: 8.5,18.5 + pos: 27.598589,-5.5317454 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 109 + - uid: 8008 components: - type: Transform - pos: 39.5,20.5 + pos: 27.598589,-5.5317454 parent: 31 - - uid: 110 + - uid: 8009 components: - type: Transform - pos: 39.5,19.5 + pos: 27.598589,-5.5317454 parent: 31 - - uid: 111 + - uid: 8010 components: - type: Transform - pos: 41.5,18.5 + pos: 27.598589,-5.5317454 parent: 31 - - uid: 115 + - uid: 8011 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 11.5,25.5 + pos: 27.598589,-5.5317454 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 132 + - uid: 8012 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 36.5,3.5 + pos: 27.598589,-5.5317454 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 159 + - uid: 8013 components: - type: Transform - pos: 39.5,21.5 + pos: 27.598589,-5.5317454 parent: 31 - - uid: 347 + - uid: 8014 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -29.5,-8.5 + pos: 27.598589,-5.5317454 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 354 + - uid: 8015 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -6.5,-21.5 + pos: 27.598589,-5.5317454 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 415 + - uid: 8016 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -14.5,-29.5 + pos: 27.598589,-5.5317454 parent: 31 - - uid: 467 + - uid: 8017 components: - type: Transform - pos: 45.5,22.5 + pos: 27.598589,-5.5317454 parent: 31 - - uid: 561 +- proto: FoodBanana + entities: + - uid: 5010 components: - type: Transform rot: 3.141592653589793 rad - pos: 35.5,20.5 + pos: -20.507698,-10.269954 parent: 31 - - uid: 602 + - uid: 12079 components: - type: Transform - rot: 3.141592653589793 rad - pos: 42.5,19.5 + rot: -1.5707963267948966 rad + pos: -20.640728,-11.195335 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 715 +- proto: FoodBowlBig + entities: + - uid: 8950 components: - type: Transform - pos: 37.5,19.5 + pos: 10.876451,-23.826777 parent: 31 - - uid: 750 +- proto: FoodBoxDonut + entities: + - uid: 2604 components: - type: Transform - pos: -24.5,12.5 + pos: -5.5081687,13.587074 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 773 + - uid: 8517 components: - type: Transform - rot: 3.141592653589793 rad - pos: 40.5,18.5 + pos: 4.6367803,35.863194 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 789 + - uid: 8989 components: - type: Transform - rot: 3.141592653589793 rad - pos: 38.5,20.5 + pos: -1.5376439,25.04381 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 800 +- proto: FoodCakeSuppermatter + entities: + - uid: 12060 components: - type: Transform - pos: -9.5,-20.5 + pos: 57.510113,3.4794123 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 813 +- proto: FoodCondimentBottleEnzyme + entities: + - uid: 8441 components: - type: Transform - pos: 39.5,22.5 + pos: -14.835613,-0.50339985 parent: 31 - - uid: 822 + - type: Tag + tags: [] +- proto: FoodCondimentPacketSalt + entities: + - uid: 9576 components: - type: Transform - rot: 3.141592653589793 rad - pos: 40.5,19.5 + pos: 29.558077,-6.33541 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 899 +- proto: FoodDonkpocketPizza + entities: + - uid: 418 components: - type: Transform - pos: -4.5,24.5 + pos: -8.183176,-18.420973 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 925 +- proto: FoodDonutChocolate + entities: + - uid: 46 components: - type: Transform - rot: 3.141592653589793 rad - pos: 44.5,20.5 + pos: -2.214967,7.851863 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 928 +- proto: FoodGalaxythistle + entities: + - uid: 10401 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -5.5,-16.5 + pos: -17.579866,1.4005744 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 978 +- proto: FoodMealSashimi + entities: + - uid: 11300 components: - type: Transform - rot: 3.141592653589793 rad - pos: 38.5,19.5 + pos: -6.490023,-1.3167214 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 980 + - uid: 12245 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 9.5,25.5 + pos: -6.474398,-0.36359644 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 991 +- proto: FoodMeatCrab + entities: + - uid: 12241 components: - type: Transform - rot: 3.141592653589793 rad - pos: 42.5,18.5 + pos: -9.299337,-4.3948464 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 1067 + - uid: 12242 components: - type: Transform - rot: 3.141592653589793 rad - pos: 44.5,19.5 + pos: -9.299337,-4.5198464 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 1086 + - uid: 12243 components: - type: Transform - pos: -9.5,-17.5 + pos: -9.299337,-4.7385964 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 1093 + - uid: 12244 components: - type: Transform - pos: -9.5,-18.5 + pos: -9.299337,-4.8323464 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 1165 +- proto: FoodMeatDragon + entities: + - uid: 4520 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 8.5,25.5 + pos: -14.773218,-3.3475776 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 1238 + - uid: 10553 components: - type: Transform - pos: -24.5,10.5 + pos: -14.762801,-3.576903 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 1289 + - uid: 11778 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 32.5,8.5 + pos: -14.762801,-3.8479247 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 1470 +- proto: FoodMeatFish + entities: + - uid: 6886 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -6.5,-16.5 + pos: -9.564962,-4.4729714 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 1473 + - uid: 6903 components: - type: Transform - pos: -9.5,-19.5 + pos: -9.564962,-4.3479714 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 1486 + - uid: 11479 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -6.5,-14.5 + pos: -9.564962,-4.6448464 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 1487 + - uid: 12240 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -21.5,-12.5 + pos: -9.564962,-4.7698464 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 1490 +- proto: FoodMeatXeno + entities: + - uid: 1809 components: - type: Transform - pos: -7.5,-17.5 + pos: -14.387801,-3.618599 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 1514 + - uid: 8203 components: - type: Transform - rot: 3.141592653589793 rad - pos: 35.5,21.5 + pos: -14.346134,-3.368425 parent: 31 - - uid: 1515 + - uid: 11385 components: - type: Transform - pos: 33.5,18.5 + pos: -14.377384,-3.8687725 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 1516 +- proto: FoodPieBananaCream + entities: + - uid: 473 components: - type: Transform - pos: 36.5,20.5 + pos: -19.338718,-10.382835 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 1533 + - uid: 2752 components: - type: Transform - pos: 39.5,18.5 + pos: -19.338718,-10.132835 parent: 31 - - uid: 1543 +- proto: FoodPizzaArnoldSlice + entities: + - uid: 9053 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 36.5,5.5 + pos: -29.477003,17.566315 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 1544 +- proto: FoodPlateSmall + entities: + - uid: 6646 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 38.5,5.5 + pos: -3.414538,-1.2894373 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 1590 + - uid: 11302 components: - type: Transform - rot: 3.141592653589793 rad - pos: 4.5,11.5 + pos: -2.523913,-1.3363123 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 1689 + - uid: 12208 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -4.5,-19.5 + pos: -10.520765,0.62183887 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 1714 + - uid: 12209 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -6.5,-19.5 + pos: -10.395765,-0.33128613 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 1716 + - uid: 12210 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 22.5,11.5 + pos: -10.489515,1.5437138 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 1724 + - uid: 12238 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 35.5,5.5 + pos: -6.5043883,-0.35773182 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 1725 + - uid: 12239 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 33.5,5.5 + pos: -6.5668883,-1.2483568 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 1739 + - type: Physics + angularDamping: 0 + linearDamping: 0 +- proto: FoodPoppy + entities: + - uid: 4196 components: - type: Transform - pos: -25.5,16.5 + pos: -2.270069,18.786497 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 1773 + - type: Physics + angularDamping: 0 + linearDamping: 0 + - uid: 9762 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -22.5,-11.5 + pos: -16.049828,-39.578854 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 1781 +- proto: FoodShakerSalt + entities: + - uid: 9577 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -21.5,-11.5 + pos: 29.948702,-6.58541 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 1804 + - uid: 9578 components: - type: Transform - rot: 3.141592653589793 rad - pos: 35.5,19.5 + pos: 29.136202,-6.538535 parent: 31 - - uid: 1810 +- proto: FoodSnackChocolate + entities: + - uid: 1913 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -19.5,-12.5 + rot: 1.5707963267948966 rad + pos: 8.419368,-3.3883321 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 2206 + - uid: 5636 components: - type: Transform - rot: 3.141592653589793 rad - pos: -36.5,16.5 + rot: 1.5707963267948966 rad + pos: 8.617393,-3.3883321 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 2207 +- proto: FoodTinBeans + entities: + - uid: 3485 components: - type: Transform - rot: 3.141592653589793 rad - pos: -36.5,15.5 - parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 2216 + parent: 2363 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 3831 components: - type: Transform - pos: -9.5,-16.5 - parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 2332 + parent: 2363 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 3832 components: - type: Transform - pos: 34.5,19.5 - parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 2333 + parent: 2363 + - type: Physics + canCollide: False + - type: InsideEntityStorage +- proto: FoodTinMRE + entities: + - uid: 7837 components: - type: Transform - pos: 34.5,18.5 + pos: -26.53067,19.803333 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 2401 +- proto: Fork + entities: + - uid: 12172 components: - type: Transform - rot: 3.141592653589793 rad - pos: 42.5,20.5 + pos: -3.758288,-1.4300623 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 2414 + - uid: 12173 components: - type: Transform - pos: 37.5,20.5 + pos: -2.867663,-1.3988123 parent: 31 - - uid: 2559 +- proto: ForkPlastic + entities: + - uid: 12212 components: - type: Transform - rot: 3.141592653589793 rad - pos: 44.5,18.5 + rot: 1.5707963267948966 rad + pos: -10.44264,0.24683887 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 2669 + - uid: 12213 components: - type: Transform - rot: 3.141592653589793 rad - pos: -36.5,17.5 + rot: 1.5707963267948966 rad + pos: -10.41139,1.1999638 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 2741 + - uid: 12214 components: - type: Transform rot: 1.5707963267948966 rad - pos: 5.5,-19.5 + pos: -10.44264,-0.58128613 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 2886 +- proto: FuelDispenser + entities: + - uid: 5080 components: - type: Transform rot: -1.5707963267948966 rad - pos: -13.5,-29.5 + pos: 20.5,0.5 parent: 31 - - uid: 2947 + - uid: 11338 components: - type: Transform rot: 3.141592653589793 rad - pos: -38.5,16.5 + pos: 31.5,-5.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 2948 +- proto: FurnitureWashingmachineIndustrial + entities: + - uid: 9917 components: - type: Transform - rot: 3.141592653589793 rad - pos: -38.5,17.5 + pos: -28.5,-7.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 2950 +- proto: GasAnalyzer + entities: + - uid: 3985 components: - type: Transform - rot: 3.141592653589793 rad - pos: -38.5,14.5 + pos: -11.359732,-27.422089 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 3042 +- proto: GasFilter + entities: + - uid: 7125 components: + - type: MetaData + name: waste filter - type: Transform - rot: 1.5707963267948966 rad - pos: 24.5,9.5 + rot: -1.5707963267948966 rad + pos: 8.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 3043 + color: '#A01E16FF' +- proto: GasFilterFlipped + entities: + - uid: 4431 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 25.5,9.5 + pos: 71.5,9.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 3044 + color: '#990000FF' + - uid: 4432 components: - type: Transform - pos: 20.5,13.5 + rot: -1.5707963267948966 rad + pos: 68.5,6.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 3045 + - uid: 4556 components: - type: Transform - pos: 22.5,11.5 + rot: -1.5707963267948966 rad + pos: 69.5,6.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 3046 + color: '#990000FF' + - uid: 4559 components: - type: Transform - pos: 20.5,12.5 + rot: -1.5707963267948966 rad + pos: 67.5,6.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 3047 + - uid: 6850 components: - type: Transform - pos: 22.5,12.5 + pos: 71.5,7.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 3048 + color: '#990000FF' + - uid: 7367 components: - type: Transform - pos: 20.5,14.5 + rot: -1.5707963267948966 rad + pos: 38.5,16.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 3049 + - uid: 8437 components: - type: Transform - pos: 22.5,13.5 + rot: -1.5707963267948966 rad + pos: 36.5,16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 3238 + color: '#990000FF' + - uid: 9086 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 9.5,24.5 + rot: -1.5707963267948966 rad + pos: 42.5,16.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 3411 + - uid: 9099 components: - type: Transform rot: -1.5707963267948966 rad - pos: -5.5,-14.5 + pos: 40.5,16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 3590 + color: '#990000FF' + - uid: 9190 components: - type: Transform rot: -1.5707963267948966 rad - pos: 20.5,-9.5 + pos: 34.5,16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 3709 + color: '#990000FF' + - uid: 9391 components: - type: Transform - pos: 4.5,-20.5 + rot: -1.5707963267948966 rad + pos: 44.5,16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 3753 + color: '#990000FF' + - uid: 10106 components: - type: Transform - rot: 3.141592653589793 rad - pos: 36.5,17.5 + rot: -1.5707963267948966 rad + pos: 46.5,16.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 3873 - components: - - type: Transform - pos: 35.5,18.5 - parent: 31 - - uid: 4024 + - uid: 10108 components: - type: Transform rot: -1.5707963267948966 rad - pos: -22.5,-12.5 + pos: 33.5,16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4033 + color: '#990000FF' +- proto: GasMinerAmmonia + entities: + - uid: 6657 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -23.5,-12.5 + pos: 46.5,22.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4060 +- proto: GasMinerCarbonDioxide + entities: + - uid: 6655 components: - type: Transform - rot: 3.141592653589793 rad - pos: 35.5,16.5 + pos: 40.5,22.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4096 +- proto: GasMinerNitrogenStation + entities: + - uid: 6545 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 47.5,16.5 + pos: 34.5,22.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 4135 +- proto: GasMinerNitrousOxide + entities: + - uid: 6654 components: - type: Transform - pos: -7.5,-18.5 + pos: 38.5,22.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 4136 +- proto: GasMinerOxygenStation + entities: + - uid: 6538 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -4.5,-16.5 + pos: 36.5,22.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 4137 +- proto: GasMinerPlasma + entities: + - uid: 6656 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -7.5,-14.5 + pos: 42.5,22.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4138 +- proto: GasMixer + entities: + - uid: 3963 components: - type: Transform - pos: -8.5,-22.5 + pos: 43.5,13.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4141 + - type: GasMixer + inletTwoConcentration: 0.98 + inletOneConcentration: 0.02 + targetPressure: 1000 +- proto: GasMixerFlipped + entities: + - uid: 3484 components: - type: Transform rot: -1.5707963267948966 rad - pos: -7.5,-21.5 + pos: 43.5,15.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4142 + - uid: 7310 components: - type: Transform rot: -1.5707963267948966 rad - pos: -5.5,-21.5 + pos: 39.5,15.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4152 + - uid: 7477 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 49.5,15.5 + rot: 3.141592653589793 rad + pos: 34.5,14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4174 + color: '#234FDEFF' + - uid: 8303 components: - type: Transform rot: -1.5707963267948966 rad - pos: 51.5,15.5 + pos: 37.5,15.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4176 + color: '#234FDEFF' + - uid: 8428 components: - type: Transform - rot: 3.141592653589793 rad - pos: 38.5,18.5 + rot: -1.5707963267948966 rad + pos: 41.5,15.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 4177 + - uid: 12141 components: - type: Transform rot: -1.5707963267948966 rad - pos: 50.5,15.5 + pos: 45.5,15.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4200 + - uid: 12142 components: - type: Transform rot: -1.5707963267948966 rad - pos: -8.5,-14.5 + pos: 47.5,15.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4236 +- proto: GasOutletInjector + entities: + - uid: 672 components: - type: Transform - rot: 3.141592653589793 rad - pos: -5.5,12.5 + pos: 42.5,21.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4319 + color: '#990000FF' + - uid: 2177 components: - type: Transform - pos: 20.5,16.5 + pos: 34.5,21.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 4320 + - uid: 2668 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 22.5,17.5 + pos: 40.5,21.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 4321 + - uid: 3461 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 23.5,17.5 + pos: 38.5,21.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 4322 + - uid: 4034 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 21.5,17.5 + pos: 36.5,21.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 4323 + - uid: 11045 components: - type: Transform rot: -1.5707963267948966 rad - pos: 24.5,17.5 + pos: 48.5,12.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 4332 + - uid: 11062 components: - type: Transform - rot: 3.141592653589793 rad - pos: 63.5,11.5 + pos: 46.5,21.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 4352 + - uid: 11069 components: - type: Transform - rot: 3.141592653589793 rad - pos: 63.5,10.5 + pos: 44.5,21.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 4359 +- proto: GasPassiveVent + entities: + - uid: 7 components: - type: Transform - rot: 3.141592653589793 rad - pos: 70.5,6.5 + rot: 1.5707963267948966 rad + pos: 40.5,23.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 4360 + - uid: 49 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 65.5,2.5 + rot: 1.5707963267948966 rad + pos: 42.5,23.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4371 + - uid: 52 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 69.5,2.5 + rot: 1.5707963267948966 rad + pos: 38.5,23.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 4387 + - uid: 127 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -3.5,-14.5 + rot: 1.5707963267948966 rad + pos: 44.5,23.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4414 + - uid: 3124 components: - type: Transform - rot: 3.141592653589793 rad - pos: 71.5,8.5 + rot: 1.5707963267948966 rad + pos: 36.5,23.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 4417 + - uid: 3477 components: - type: Transform rot: 1.5707963267948966 rad - pos: 65.5,9.5 + pos: 34.5,23.5 + parent: 31 + - uid: 4443 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 66.5,3.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 4429 + - uid: 4477 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 70.5,7.5 + rot: 3.141592653589793 rad + pos: 67.5,3.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 4439 + - uid: 4560 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -4.5,-14.5 + pos: 66.5,1.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 4463 + - uid: 4641 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -6.5,25.5 + pos: 67.5,1.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 4472 + - uid: 5752 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 69.5,8.5 + rot: 1.5707963267948966 rad + pos: -15.5,-29.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 4475 + - uid: 6211 components: - type: Transform - pos: 30.5,21.5 + pos: 33.5,19.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 4476 + - uid: 6856 components: - type: Transform - pos: 66.5,5.5 + rot: 3.141592653589793 rad + pos: 68.5,3.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 4481 + - uid: 6864 components: - type: Transform - pos: 69.5,8.5 + pos: 68.5,1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 4485 + color: '#0055CCFF' + - uid: 9392 components: - type: Transform - pos: -37.5,-8.5 + pos: 48.5,19.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 4535 + - uid: 11025 components: - type: Transform - pos: -37.5,-9.5 + rot: 1.5707963267948966 rad + pos: 46.5,23.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 4545 + - uid: 12128 components: - type: Transform - rot: 3.141592653589793 rad - pos: 70.5,3.5 + pos: 66.5,13.5 + parent: 31 +- proto: GasPipeBend + entities: + - uid: 1 + components: + - type: Transform + pos: 39.5,23.5 + parent: 31 + - uid: 21 + components: + - type: Transform + pos: 41.5,23.5 + parent: 31 + - uid: 129 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 39.5,6.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 4548 + color: '#1739A6FF' + - uid: 273 components: - type: Transform rot: 3.141592653589793 rad - pos: 70.5,7.5 + pos: -6.5,29.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 4551 + color: '#A01E16FF' + - uid: 644 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 67.5,9.5 + rot: -1.5707963267948966 rad + pos: 50.5,11.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 4554 + color: '#00FF00FF' + - uid: 667 + components: + - type: Transform + pos: 45.5,23.5 + parent: 31 + - uid: 898 components: - type: Transform - rot: 3.141592653589793 rad - pos: 8.5,-15.5 + pos: 43.5,23.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 4570 + - uid: 954 components: - type: Transform rot: -1.5707963267948966 rad - pos: 70.5,6.5 + pos: 34.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 4603 + color: '#1739A6FF' + - uid: 981 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 66.5,7.5 + pos: 10.5,24.5 parent: 31 - - uid: 4651 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 1057 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 64.5,9.5 + rot: -1.5707963267948966 rad + pos: -17.5,-2.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 4682 + color: '#1739A6FF' + - uid: 1250 components: - type: Transform - pos: -9.5,-15.5 + rot: -1.5707963267948966 rad + pos: 12.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4685 + color: '#1739A6FF' + - uid: 1313 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 25.5,10.5 + pos: -24.5,-3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 4687 + color: '#A01E16FF' + - uid: 1634 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 23.5,11.5 + pos: -4.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 4696 + color: '#1739A6FF' + - uid: 1914 components: - type: Transform - pos: -24.5,11.5 + pos: 64.5,13.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 4698 + - uid: 2417 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -7.5,25.5 + pos: 37.5,23.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4704 + - uid: 2448 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -4.5,-21.5 + rot: 3.141592653589793 rad + pos: -5.5,30.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4729 + color: '#1739A6FF' + - uid: 3011 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 40.5,3.5 + pos: 35.5,23.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 4730 + - uid: 3206 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 39.5,3.5 + rot: 3.141592653589793 rad + pos: 24.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 4732 + color: '#A01E16FF' + - uid: 3207 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 37.5,3.5 + pos: 24.5,11.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 4737 + color: '#A01E16FF' + - uid: 3841 components: - type: Transform - pos: -24.5,9.5 + pos: -23.5,9.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4828 + color: '#A01E16FF' + - uid: 3946 components: - type: Transform rot: 3.141592653589793 rad - pos: 70.5,4.5 + pos: 55.5,13.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 4833 + - uid: 4316 components: - type: Transform - pos: 62.5,5.5 + rot: 1.5707963267948966 rad + pos: 22.5,16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4845 + color: '#1739A6FF' + - uid: 4373 components: - type: Transform - pos: 30.5,23.5 + rot: 3.141592653589793 rad + pos: 62.5,2.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 4847 + color: '#0055CCFF' + - uid: 4400 components: - type: Transform - pos: 30.5,20.5 + pos: 54.5,25.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 4856 + - uid: 4430 components: - type: Transform - rot: 3.141592653589793 rad - pos: 40.5,20.5 + rot: 1.5707963267948966 rad + pos: 30.5,24.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 4949 + - uid: 4434 components: - type: Transform - pos: 47.5,22.5 + rot: 1.5707963267948966 rad + pos: 65.5,7.5 parent: 31 - - uid: 4976 + - uid: 4435 components: - type: Transform - pos: 41.5,22.5 + pos: 68.5,4.5 parent: 31 - - uid: 5012 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 4469 components: - type: Transform - pos: 45.5,18.5 + pos: 39.5,14.5 parent: 31 - - uid: 5013 + - type: AtmosPipeColor + color: '#234FDEFF' + - uid: 4482 components: - type: Transform - pos: 43.5,18.5 + pos: 31.5,19.5 parent: 31 - - uid: 5015 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 4518 components: - type: Transform - pos: 43.5,19.5 + pos: -23.5,-9.5 parent: 31 - - uid: 5016 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 4543 components: - type: Transform - pos: 45.5,20.5 + pos: 63.5,12.5 parent: 31 - - uid: 5030 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 4553 components: - type: Transform - pos: 36.5,19.5 + rot: 1.5707963267948966 rad + pos: 71.5,10.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5031 + - uid: 4601 components: - type: Transform - pos: 36.5,18.5 + rot: -1.5707963267948966 rad + pos: 71.5,6.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5044 + - uid: 4624 components: - type: Transform - pos: 43.5,21.5 + rot: -1.5707963267948966 rad + pos: -16.5,0.5 parent: 31 - - uid: 5045 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 4642 components: - type: Transform - pos: 45.5,21.5 + rot: 3.141592653589793 rad + pos: -40.5,-4.5 parent: 31 - - uid: 5046 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 4649 components: - type: Transform - pos: 43.5,20.5 + pos: 55.5,2.5 parent: 31 - - uid: 5047 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 4686 components: - type: Transform - pos: 45.5,19.5 + rot: -1.5707963267948966 rad + pos: 51.5,19.5 parent: 31 - - uid: 5048 + - type: AtmosPipeColor + color: '#ADD8E6FF' + - uid: 4711 components: - type: Transform - pos: 41.5,19.5 + rot: 1.5707963267948966 rad + pos: -32.5,-7.5 parent: 31 - - uid: 5049 + - uid: 4788 components: - type: Transform - pos: 41.5,20.5 + pos: 55.5,23.5 parent: 31 - - uid: 5050 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 4796 components: - type: Transform - pos: 41.5,21.5 + pos: 63.5,7.5 parent: 31 - - uid: 5056 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 4829 components: - type: Transform - pos: 43.5,22.5 + rot: 3.141592653589793 rad + pos: 48.5,20.5 parent: 31 - - uid: 5123 + - type: AtmosPipeColor + color: '#00FF00FF' + - uid: 4846 components: - type: Transform - pos: -37.5,-10.5 + rot: 1.5707963267948966 rad + pos: 32.5,25.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5126 + - uid: 4932 + components: + - type: Transform + pos: 47.5,23.5 + parent: 31 + - uid: 4985 components: - type: Transform rot: 3.141592653589793 rad - pos: 35.5,22.5 + pos: 39.5,13.5 parent: 31 - - uid: 5133 + - type: AtmosPipeColor + color: '#234FDEFF' + - uid: 5066 components: - type: Transform - pos: 37.5,18.5 + pos: -1.5,29.5 parent: 31 - - uid: 5155 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5067 components: - type: Transform rot: 1.5707963267948966 rad - pos: 32.5,9.5 + pos: 50.5,19.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5240 + color: '#ADD8E6FF' + - uid: 5456 components: - type: Transform rot: 1.5707963267948966 rad - pos: -20.5,19.5 + pos: 15.5,11.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5308 + color: '#A01E16FF' + - uid: 5457 components: - type: Transform - pos: 48.5,18.5 + rot: 1.5707963267948966 rad + pos: 13.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5323 + color: '#1739A6FF' + - uid: 5553 components: - type: Transform - pos: 2.5,2.5 + pos: 10.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5324 + color: '#1739A6FF' + - uid: 5554 components: - type: Transform - pos: 2.5,1.5 + pos: 11.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5326 + color: '#A01E16FF' + - uid: 5582 components: - type: Transform - pos: 2.5,-0.5 + pos: 19.5,-8.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5327 + color: '#1739A6FF' + - uid: 5589 components: - type: Transform - pos: 2.5,-1.5 + pos: 18.5,-10.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5328 + color: '#A01E16FF' + - uid: 5627 components: - type: Transform - pos: 2.5,-2.5 + rot: 1.5707963267948966 rad + pos: 14.5,-15.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5329 + color: '#1739A6FF' + - uid: 5639 components: - type: Transform - pos: 2.5,-3.5 + rot: 1.5707963267948966 rad + pos: 9.5,-8.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5330 + color: '#1739A6FF' + - uid: 5640 components: - type: Transform - pos: 2.5,-4.5 + rot: 1.5707963267948966 rad + pos: 8.5,-10.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5331 + color: '#A01E16FF' + - uid: 5682 components: - type: Transform - pos: 2.5,-5.5 + rot: -1.5707963267948966 rad + pos: 15.5,-17.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5333 + color: '#1739A6FF' + - uid: 5683 components: - type: Transform - pos: 2.5,-7.5 + rot: 1.5707963267948966 rad + pos: 14.5,-17.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5334 + color: '#1739A6FF' + - uid: 5697 components: - type: Transform - pos: 2.5,-8.5 + rot: 3.141592653589793 rad + pos: 8.5,-25.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5335 + color: '#1739A6FF' + - uid: 5702 components: - type: Transform - pos: 2.5,-9.5 + pos: 7.5,-19.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5336 + color: '#1739A6FF' + - uid: 5703 components: - type: Transform - pos: 2.5,-10.5 + rot: 3.141592653589793 rad + pos: 7.5,-20.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5337 + color: '#1739A6FF' + - uid: 5722 components: - type: Transform - pos: 2.5,-11.5 + rot: 3.141592653589793 rad + pos: -36.5,13.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5338 + color: '#1739A6FF' + - uid: 5724 components: - type: Transform - pos: 2.5,-12.5 + rot: -1.5707963267948966 rad + pos: -11.5,-29.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 5339 + - uid: 5778 components: - type: Transform - pos: 2.5,-13.5 + rot: 3.141592653589793 rad + pos: 14.5,-25.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5340 + color: '#1739A6FF' + - uid: 5779 components: - type: Transform - pos: 2.5,-14.5 + pos: 15.5,-25.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5341 + color: '#1739A6FF' + - uid: 5783 components: - type: Transform - pos: 2.5,-15.5 + rot: 1.5707963267948966 rad + pos: -22.5,23.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5343 + color: '#1739A6FF' + - uid: 5892 components: - type: Transform - pos: 2.5,-17.5 + rot: 3.141592653589793 rad + pos: -4.5,20.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5344 + color: '#1739A6FF' + - uid: 5896 components: - type: Transform - pos: 2.5,-18.5 + rot: 1.5707963267948966 rad + pos: -18.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5346 + color: '#1739A6FF' + - uid: 5897 components: - type: Transform - pos: 2.5,-20.5 + rot: -1.5707963267948966 rad + pos: -18.5,19.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5347 + color: '#1739A6FF' + - uid: 5944 components: - type: Transform - pos: 2.5,-21.5 + pos: 8.5,9.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5348 + color: '#1739A6FF' + - uid: 5971 components: - type: Transform - pos: 2.5,-22.5 + pos: -5.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5350 + color: '#A01E16FF' + - uid: 5991 components: - type: Transform - pos: 2.5,-24.5 + pos: -4.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5351 + color: '#1739A6FF' + - uid: 6001 components: - type: Transform - pos: 2.5,-25.5 + rot: 1.5707963267948966 rad + pos: -8.5,21.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5352 + color: '#A01E16FF' + - uid: 6016 components: - type: Transform - pos: 2.5,-26.5 + rot: 3.141592653589793 rad + pos: -5.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5353 + color: '#1739A6FF' + - uid: 6025 components: - type: Transform - pos: 2.5,-27.5 + pos: -11.5,16.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5355 + color: '#1739A6FF' + - uid: 6026 components: - type: Transform - pos: 4.5,4.5 + rot: 3.141592653589793 rad + pos: -12.5,16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5356 + color: '#1739A6FF' + - uid: 6096 components: - type: Transform - pos: 4.5,3.5 + rot: 3.141592653589793 rad + pos: 7.5,-17.5 + parent: 31 + - uid: 6106 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -27.5,9.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5357 + color: '#A01E16FF' + - uid: 6166 components: - type: Transform - pos: 4.5,2.5 + rot: 1.5707963267948966 rad + pos: 45.5,14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5358 + color: '#00FF00FF' + - uid: 6214 components: - type: Transform - pos: 4.5,1.5 + rot: 1.5707963267948966 rad + pos: 20.5,17.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5359 + color: '#A01E16FF' + - uid: 6228 components: - type: Transform - pos: 4.5,0.5 + rot: 3.141592653589793 rad + pos: 44.5,2.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5360 + color: '#1739A6FF' + - uid: 6265 components: - type: Transform - pos: 4.5,-0.5 + rot: 3.141592653589793 rad + pos: 38.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5362 + color: '#A01E16FF' + - uid: 6266 components: - type: Transform - pos: 4.5,-2.5 + pos: 39.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5363 + color: '#A01E16FF' + - uid: 6274 components: - type: Transform - pos: 4.5,-3.5 + rot: 3.141592653589793 rad + pos: 37.5,-0.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5364 + color: '#1739A6FF' + - uid: 6540 components: - type: Transform - pos: 4.5,-4.5 + rot: 1.5707963267948966 rad + pos: 43.5,9.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5366 + color: '#A01E16FF' + - uid: 6578 components: - type: Transform - pos: 4.5,-6.5 + rot: 1.5707963267948966 rad + pos: 44.5,8.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5367 + color: '#1739A6FF' + - uid: 6580 components: - type: Transform - pos: 4.5,-7.5 + rot: 1.5707963267948966 rad + pos: -17.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5368 + color: '#1739A6FF' + - uid: 6632 components: - type: Transform - pos: 4.5,-8.5 + rot: 1.5707963267948966 rad + pos: -22.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5369 + color: '#A01E16FF' + - uid: 6753 components: - type: Transform - pos: 4.5,-9.5 + pos: 70.5,8.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5370 + color: '#A01E16FF' + - uid: 6762 components: - type: Transform - pos: 4.5,-10.5 + pos: 67.5,7.5 + parent: 31 + - uid: 6764 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 30.5,19.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5371 + color: '#990000FF' + - uid: 6846 components: - type: Transform - pos: 4.5,-11.5 + rot: 3.141592653589793 rad + pos: 63.5,9.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5372 + color: '#990000FF' + - uid: 6867 components: - type: Transform - pos: 4.5,-12.5 + rot: -1.5707963267948966 rad + pos: 32.5,24.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5373 + color: '#990000FF' + - uid: 6927 components: - type: Transform - pos: 4.5,-13.5 + rot: 3.141592653589793 rad + pos: 54.5,23.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5375 + color: '#990000FF' + - uid: 6963 components: - type: Transform - pos: 4.5,-15.5 + rot: 3.141592653589793 rad + pos: -25.5,-3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5376 + color: '#A01E16FF' + - uid: 6983 components: - type: Transform - pos: 4.5,-16.5 + pos: -24.5,-10.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5378 + color: '#1739A6FF' + - uid: 7015 components: - type: Transform - pos: 4.5,-18.5 + rot: 1.5707963267948966 rad + pos: 51.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5381 + color: '#A01E16FF' + - uid: 7068 components: - type: Transform - pos: 4.5,-21.5 + rot: 3.141592653589793 rad + pos: 45.5,13.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5382 + color: '#00FF00FF' + - uid: 7091 components: - type: Transform - pos: 4.5,-22.5 + rot: 3.141592653589793 rad + pos: 23.5,9.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5383 + color: '#1739A6FF' + - uid: 7092 components: - type: Transform - pos: 4.5,-23.5 + pos: 23.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5384 + color: '#1739A6FF' + - uid: 7183 components: - type: Transform - pos: 4.5,-24.5 + rot: 3.141592653589793 rad + pos: 55.5,1.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5385 + color: '#1739A6FF' + - uid: 7228 components: - type: Transform - pos: 4.5,-25.5 + rot: 3.141592653589793 rad + pos: 62.5,-1.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 5386 + - uid: 7571 components: - type: Transform - pos: 4.5,-26.5 + rot: 1.5707963267948966 rad + pos: 2.5,32.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5387 + color: '#A01E16FF' + - uid: 7638 components: - type: Transform - pos: 4.5,-27.5 + rot: 3.141592653589793 rad + pos: 57.5,14.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 5388 + - uid: 7726 components: - type: Transform - pos: 4.5,-28.5 + rot: 3.141592653589793 rad + pos: -37.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5389 + color: '#A01E16FF' + - uid: 8110 components: - type: Transform rot: -1.5707963267948966 rad - pos: 7.5,5.5 + pos: 9.5,-17.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5390 + - uid: 8267 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 6.5,5.5 + rot: 1.5707963267948966 rad + pos: 69.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5391 + color: '#A01E16FF' + - uid: 8304 components: - type: Transform rot: -1.5707963267948966 rad - pos: 5.5,5.5 + pos: 70.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5393 + color: '#A01E16FF' + - uid: 8426 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 4.5,3.5 + pos: 57.5,15.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5394 + color: '#0055CCFF' + - uid: 8427 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 5.5,3.5 + rot: 3.141592653589793 rad + pos: 62.5,13.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5395 + color: '#0055CCFF' + - uid: 8430 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 6.5,3.5 + pos: 62.5,14.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5398 + color: '#0055CCFF' + - uid: 8458 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 8.5,3.5 + pos: 59.5,13.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5400 + - uid: 8459 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 10.5,3.5 + rot: 3.141592653589793 rad + pos: 59.5,12.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5401 + - uid: 8479 components: - type: Transform rot: -1.5707963267948966 rad - pos: 11.5,3.5 + pos: 51.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5402 + color: '#A01E16FF' + - uid: 8523 components: - type: Transform rot: -1.5707963267948966 rad - pos: 12.5,3.5 + pos: 53.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5403 + color: '#A01E16FF' + - uid: 8704 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 13.5,3.5 + rot: 3.141592653589793 rad + pos: 47.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5404 + color: '#1739A6FF' + - uid: 8990 components: - type: Transform rot: -1.5707963267948966 rad - pos: 14.5,3.5 + pos: 48.5,16.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5406 + - uid: 9057 components: - type: Transform rot: -1.5707963267948966 rad - pos: 16.5,3.5 + pos: 64.5,-0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5407 + color: '#0055CCFF' + - uid: 9152 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 17.5,3.5 + rot: 1.5707963267948966 rad + pos: 62.5,-0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5408 + color: '#0055CCFF' + - uid: 9200 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 18.5,3.5 + rot: 1.5707963267948966 rad + pos: -37.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5409 + color: '#A01E16FF' + - uid: 9224 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 19.5,3.5 + rot: 3.141592653589793 rad + pos: -38.5,13.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5410 + color: '#A01E16FF' + - uid: 9263 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 20.5,3.5 + pos: 33.5,12.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5411 + - uid: 9353 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 21.5,5.5 + pos: -24.5,14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5412 + color: '#1739A6FF' + - uid: 9354 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 20.5,5.5 + rot: 3.141592653589793 rad + pos: -25.5,14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5413 + color: '#1739A6FF' + - uid: 9355 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 19.5,5.5 + rot: 1.5707963267948966 rad + pos: -25.5,19.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5414 + color: '#1739A6FF' + - uid: 9919 components: - type: Transform rot: -1.5707963267948966 rad - pos: 18.5,5.5 + pos: 69.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5415 + color: '#A01E16FF' + - uid: 9937 components: - type: Transform rot: -1.5707963267948966 rad - pos: 17.5,5.5 + pos: 68.5,2.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5416 + color: '#A01E16FF' + - uid: 9939 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 16.5,5.5 + rot: 1.5707963267948966 rad + pos: 68.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5417 + color: '#A01E16FF' + - uid: 10103 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 15.5,5.5 + rot: 1.5707963267948966 rad + pos: 34.5,15.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 5418 + - uid: 10381 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 14.5,5.5 + rot: 1.5707963267948966 rad + pos: 0.5,-29.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5420 + color: '#1739A6FF' + - uid: 10913 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 12.5,5.5 + pos: 56.5,-3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5421 + color: '#A01E16FF' + - uid: 10955 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 11.5,5.5 + pos: 55.5,-8.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5423 + color: '#1739A6FF' + - uid: 10956 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 9.5,5.5 + rot: 3.141592653589793 rad + pos: 55.5,-9.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5426 + color: '#1739A6FF' + - uid: 10957 components: - type: Transform rot: 1.5707963267948966 rad - pos: 22.5,3.5 + pos: 47.5,-8.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5427 + color: '#1739A6FF' + - uid: 11047 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 23.5,3.5 + rot: 3.141592653589793 rad + pos: -1.5,28.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5428 + color: '#A01E16FF' + - uid: 11050 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 24.5,3.5 + pos: 50.5,13.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5429 + color: '#00FF00FF' + - uid: 11112 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 25.5,3.5 + rot: -1.5707963267948966 rad + pos: 50.5,20.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5431 + color: '#00FF00FF' + - uid: 11115 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 27.5,3.5 + rot: -1.5707963267948966 rad + pos: 49.5,14.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5432 + color: '#00FF00FF' + - uid: 11128 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 28.5,3.5 + pos: 51.5,26.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5433 + color: '#ADD8E6FF' + - uid: 11130 components: - type: Transform rot: 1.5707963267948966 rad - pos: 29.5,3.5 + pos: 48.5,26.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5434 + color: '#ADD8E6FF' + - uid: 11320 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 30.5,3.5 + pos: -25.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5435 + color: '#A01E16FF' + - uid: 11567 components: - type: Transform rot: 1.5707963267948966 rad - pos: 31.5,3.5 + pos: -23.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5436 + color: '#1739A6FF' + - uid: 11573 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 31.5,5.5 + rot: -1.5707963267948966 rad + pos: -22.5,-22.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5437 + color: '#A01E16FF' + - uid: 11590 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 30.5,5.5 + rot: 3.141592653589793 rad + pos: -23.5,-23.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5438 + color: '#1739A6FF' + - uid: 11591 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 29.5,5.5 + pos: -22.5,-23.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5440 + color: '#1739A6FF' + - uid: 11603 components: - type: Transform rot: 1.5707963267948966 rad - pos: 27.5,5.5 + pos: -31.5,-21.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5441 + color: '#1739A6FF' + - uid: 11604 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 26.5,5.5 + rot: -1.5707963267948966 rad + pos: -31.5,-22.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5442 + color: '#1739A6FF' + - uid: 11605 components: - type: Transform rot: 1.5707963267948966 rad - pos: 25.5,5.5 + pos: -30.5,-22.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5443 + color: '#A01E16FF' + - uid: 11633 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 24.5,5.5 + pos: -26.5,-4.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5444 + color: '#1739A6FF' + - uid: 11658 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 23.5,5.5 + rot: 3.141592653589793 rad + pos: -24.5,-9.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5445 + color: '#A01E16FF' + - uid: 11661 components: - type: Transform - pos: 13.5,6.5 + rot: 3.141592653589793 rad + pos: -26.5,-10.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5446 + color: '#1739A6FF' + - uid: 11797 components: - type: Transform - pos: 13.5,7.5 + pos: 75.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5447 + color: '#990000FF' + - uid: 11799 components: - type: Transform - pos: 13.5,8.5 + pos: 76.5,8.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5448 + color: '#990000FF' + - uid: 11800 components: - type: Transform - pos: 13.5,9.5 + rot: -1.5707963267948966 rad + pos: 76.5,3.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 5449 + - uid: 11806 components: - type: Transform - pos: 15.5,4.5 + rot: 1.5707963267948966 rad + pos: 73.5,8.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5450 + - uid: 11810 components: - type: Transform - pos: 15.5,5.5 + rot: 1.5707963267948966 rad + pos: 72.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5451 + color: '#0055CCFF' + - uid: 11861 components: - type: Transform - pos: 15.5,6.5 + rot: 3.141592653589793 rad + pos: 50.5,-22.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5452 + color: '#A01E16FF' + - uid: 11864 components: - type: Transform - pos: 15.5,7.5 + rot: -1.5707963267948966 rad + pos: 48.5,-22.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5453 + color: '#1739A6FF' + - uid: 11865 components: - type: Transform - pos: 15.5,8.5 + rot: -1.5707963267948966 rad + pos: 72.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5454 + color: '#0055CCFF' + - uid: 11866 components: - type: Transform - pos: 15.5,9.5 + rot: 1.5707963267948966 rad + pos: 71.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5455 + color: '#0055CCFF' + - uid: 11867 components: - type: Transform - pos: 15.5,10.5 + rot: -1.5707963267948966 rad + pos: 71.5,-0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5460 + color: '#0055CCFF' + - uid: 11868 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 15.5,10.5 + rot: 1.5707963267948966 rad + pos: 70.5,-0.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 5461 + - uid: 11869 components: - type: Transform rot: -1.5707963267948966 rad - pos: 16.5,10.5 + pos: 70.5,-1.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 5462 + - uid: 11882 components: - type: Transform rot: -1.5707963267948966 rad - pos: 17.5,10.5 + pos: 68.5,0.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 5463 + - uid: 11907 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 18.5,10.5 + pos: 51.5,-22.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5466 + color: '#A01E16FF' + - uid: 11908 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 19.5,10.5 + rot: 1.5707963267948966 rad + pos: 47.5,-22.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5467 + color: '#1739A6FF' + - uid: 12046 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 19.5,11.5 + rot: 3.141592653589793 rad + pos: 47.5,-26.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5468 + color: '#1739A6FF' + - uid: 12063 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 18.5,11.5 + pos: 48.5,-26.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5469 + color: '#1739A6FF' + - uid: 12064 components: - type: Transform rot: -1.5707963267948966 rad - pos: 17.5,11.5 + pos: 51.5,-26.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5475 + color: '#A01E16FF' + - uid: 12066 components: - type: Transform - rot: 3.141592653589793 rad - pos: 8.5,6.5 + rot: 1.5707963267948966 rad + pos: 50.5,-26.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5480 + color: '#A01E16FF' + - uid: 12152 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 21.5,10.5 + rot: 3.141592653589793 rad + pos: 32.5,12.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5482 + color: '#990000FF' + - uid: 12154 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 3.5,0.5 + pos: 32.5,13.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5483 + - uid: 12248 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 4.5,0.5 + rot: 3.141592653589793 rad + pos: 33.5,13.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5484 + color: '#0055CCFF' + - uid: 12250 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 5.5,0.5 + rot: 3.141592653589793 rad + pos: 32.5,14.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5485 + color: '#0055CCFF' + - uid: 12580 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,0.5 + rot: 3.141592653589793 rad + pos: 31.5,13.5 + parent: 31 +- proto: GasPipeBroken + entities: + - uid: 1352 + components: + - type: Transform + pos: 34.5,14.5 + parent: 31 +- proto: GasPipeFourway + entities: + - uid: 583 + components: + - type: Transform + pos: -7.5,-19.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5486 + color: '#A01E16FF' + - uid: 5321 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 7.5,0.5 + pos: 2.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5487 + color: '#A01E16FF' + - uid: 5322 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 8.5,0.5 + pos: 4.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5489 + color: '#1739A6FF' + - uid: 5325 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 10.5,0.5 + pos: 4.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5490 + color: '#1739A6FF' + - uid: 5361 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 9.5,-1.5 + pos: 2.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5492 + color: '#A01E16FF' + - uid: 5813 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 7.5,-1.5 + pos: 2.5,24.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5493 + color: '#A01E16FF' + - uid: 5823 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,-1.5 + pos: 4.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5494 + color: '#1739A6FF' + - uid: 5828 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 5.5,-1.5 + pos: 4.5,20.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5497 + color: '#1739A6FF' + - uid: 5952 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -11.5,0.5 + pos: 32.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5498 + color: '#1739A6FF' + - uid: 5953 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -10.5,0.5 + pos: 33.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5499 + color: '#A01E16FF' + - uid: 6144 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -9.5,0.5 + pos: -35.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5501 + color: '#1739A6FF' + - uid: 6150 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,0.5 + pos: -36.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5502 + color: '#A01E16FF' + - uid: 6444 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -6.5,0.5 + pos: 33.5,9.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5503 + color: '#A01E16FF' + - uid: 7414 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -5.5,0.5 + pos: 2.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5504 + color: '#A01E16FF' + - uid: 9083 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -4.5,0.5 + pos: 49.5,20.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5505 + color: '#00FF00FF' + - uid: 11407 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -3.5,0.5 + pos: -37.5,-5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5506 + color: '#A01E16FF' + - uid: 11798 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -2.5,0.5 + pos: 75.5,8.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5507 +- proto: GasPipeHalf + entities: + - uid: 3678 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -1.5,0.5 + rot: -1.5707963267948966 rad + pos: 69.5,2.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 5508 +- proto: GasPipeStraight + entities: + - uid: 57 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -0.5,0.5 + pos: 8.5,18.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5509 + color: '#1739A6FF' + - uid: 109 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 0.5,0.5 + pos: 39.5,20.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 5510 + - uid: 110 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 1.5,0.5 + pos: 39.5,19.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 5511 + - uid: 111 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 3.5,-1.5 + pos: 41.5,18.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5512 + - uid: 115 components: - type: Transform rot: 1.5707963267948966 rad - pos: 2.5,-1.5 + pos: 11.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5513 + color: '#1739A6FF' + - uid: 132 components: - type: Transform rot: 1.5707963267948966 rad - pos: 1.5,-1.5 + pos: 36.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5514 + color: '#A01E16FF' + - uid: 159 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 0.5,-1.5 + pos: 39.5,21.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5515 + - uid: 249 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -0.5,-1.5 + rot: -1.5707963267948966 rad + pos: -28.5,-4.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5517 + color: '#1739A6FF' + - uid: 328 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -2.5,-1.5 + rot: -1.5707963267948966 rad + pos: -3.5,30.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5518 + color: '#1739A6FF' + - uid: 354 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -3.5,-1.5 + rot: -1.5707963267948966 rad + pos: -6.5,-21.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5519 + color: '#1739A6FF' + - uid: 415 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -4.5,-1.5 + rot: -1.5707963267948966 rad + pos: -14.5,-29.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5520 + - uid: 462 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -5.5,-1.5 + rot: -1.5707963267948966 rad + pos: 3.5,30.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5521 + color: '#1739A6FF' + - uid: 467 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -6.5,-1.5 + pos: 45.5,22.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5522 + - uid: 561 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,-1.5 + rot: 3.141592653589793 rad + pos: 35.5,20.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5523 + - uid: 602 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -8.5,-1.5 + rot: 3.141592653589793 rad + pos: 42.5,19.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5524 + color: '#990000FF' + - uid: 660 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -9.5,-1.5 + rot: 3.141592653589793 rad + pos: 50.5,-20.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5525 + color: '#A01E16FF' + - uid: 715 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -10.5,-1.5 + pos: 37.5,19.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5526 + - uid: 750 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -11.5,-1.5 + pos: -24.5,12.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5529 + color: '#1739A6FF' + - uid: 773 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -12.5,0.5 + rot: 3.141592653589793 rad + pos: 40.5,18.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5530 + - uid: 784 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -14.5,0.5 + pos: 50.5,-18.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5531 + color: '#A01E16FF' + - uid: 789 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -15.5,0.5 + rot: 3.141592653589793 rad + pos: 38.5,20.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5532 + - uid: 800 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -16.5,0.5 + pos: -9.5,-20.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5533 + color: '#1739A6FF' + - uid: 813 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -17.5,0.5 + pos: 39.5,22.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 5534 + - uid: 822 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -18.5,0.5 + rot: 3.141592653589793 rad + pos: 40.5,19.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5535 + - uid: 840 components: - type: Transform rot: 3.141592653589793 rad - pos: -16.5,1.5 + pos: -26.5,2.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5536 + color: '#A01E16FF' + - uid: 844 components: - type: Transform rot: 3.141592653589793 rad - pos: -16.5,0.5 + pos: -27.5,4.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5537 + color: '#1739A6FF' + - uid: 899 components: - type: Transform - rot: 3.141592653589793 rad - pos: -16.5,-0.5 + pos: -4.5,24.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5539 + color: '#1739A6FF' + - uid: 925 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -27.5,5.5 + rot: 3.141592653589793 rad + pos: 44.5,20.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5540 + color: '#990000FF' + - uid: 928 components: - type: Transform rot: 1.5707963267948966 rad - pos: -26.5,5.5 + pos: -5.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5548 + color: '#A01E16FF' + - uid: 978 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -13.5,-4.5 + rot: 3.141592653589793 rad + pos: 38.5,19.5 parent: 31 - - uid: 5549 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 980 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -14.5,-4.5 + rot: 1.5707963267948966 rad + pos: 9.5,25.5 parent: 31 - - uid: 5550 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 991 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -15.5,-4.5 + rot: 3.141592653589793 rad + pos: 42.5,18.5 parent: 31 - - uid: 5555 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 1067 components: - type: Transform - pos: 10.5,-2.5 + rot: 3.141592653589793 rad + pos: 44.5,19.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5556 + color: '#990000FF' + - uid: 1086 components: - type: Transform - pos: 10.5,-3.5 + pos: -9.5,-17.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5557 + color: '#1739A6FF' + - uid: 1093 components: - type: Transform - pos: 10.5,-4.5 + pos: -9.5,-18.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5558 + color: '#1739A6FF' + - uid: 1165 components: - type: Transform - pos: 10.5,-5.5 + rot: 1.5707963267948966 rad + pos: 8.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5559 + color: '#1739A6FF' + - uid: 1188 components: - type: Transform - pos: 10.5,-6.5 + pos: 51.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5560 + color: '#ADD8E6FF' + - uid: 1210 components: - type: Transform - pos: 10.5,-7.5 + rot: 3.141592653589793 rad + pos: 47.5,-13.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5561 + color: '#1739A6FF' + - uid: 1238 components: - type: Transform - pos: 11.5,-0.5 + pos: -24.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5562 + color: '#1739A6FF' + - uid: 1289 components: - type: Transform - pos: 11.5,-1.5 + rot: -1.5707963267948966 rad + pos: 32.5,8.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5563 + color: '#A01E16FF' + - uid: 1320 components: - type: Transform - pos: 11.5,-2.5 + rot: 3.141592653589793 rad + pos: 53.5,-13.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5564 + color: '#A01E16FF' + - uid: 1470 components: - type: Transform - pos: 11.5,-3.5 + rot: 1.5707963267948966 rad + pos: -6.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5565 + color: '#A01E16FF' + - uid: 1473 components: - type: Transform - pos: 11.5,-4.5 + pos: -9.5,-19.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5566 + color: '#1739A6FF' + - uid: 1486 components: - type: Transform - pos: 11.5,-5.5 + rot: -1.5707963267948966 rad + pos: -6.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5567 + color: '#1739A6FF' + - uid: 1487 components: - type: Transform - pos: 11.5,-6.5 + rot: -1.5707963267948966 rad + pos: -21.5,-12.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5568 + color: '#1739A6FF' + - uid: 1490 components: - type: Transform - pos: 11.5,-7.5 + pos: -7.5,-17.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5569 + color: '#A01E16FF' + - uid: 1514 components: - type: Transform - pos: 11.5,-8.5 + rot: 3.141592653589793 rad + pos: 35.5,21.5 + parent: 31 + - uid: 1515 + components: + - type: Transform + pos: 33.5,18.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5570 + - uid: 1516 components: - type: Transform - pos: 11.5,-9.5 + pos: 36.5,20.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5573 + - uid: 1533 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 11.5,-8.5 + pos: 39.5,18.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5575 + - uid: 1543 components: - type: Transform rot: 1.5707963267948966 rad - pos: 13.5,-8.5 + pos: 36.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5576 + color: '#1739A6FF' + - uid: 1544 components: - type: Transform rot: 1.5707963267948966 rad - pos: 14.5,-8.5 + pos: 38.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5578 + color: '#1739A6FF' + - uid: 1590 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 14.5,-10.5 + rot: 3.141592653589793 rad + pos: 4.5,11.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5580 + color: '#1739A6FF' + - uid: 1689 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 16.5,-10.5 + rot: -1.5707963267948966 rad + pos: -4.5,-19.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5581 + color: '#A01E16FF' + - uid: 1714 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 18.5,-8.5 + rot: -1.5707963267948966 rad + pos: -6.5,-19.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5583 + color: '#A01E16FF' + - uid: 1716 components: - type: Transform - pos: 17.5,-9.5 + rot: 1.5707963267948966 rad + pos: 22.5,11.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5585 + color: '#A01E16FF' + - uid: 1724 components: - type: Transform rot: 1.5707963267948966 rad - pos: 13.5,-10.5 + pos: 35.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5588 + color: '#1739A6FF' + - uid: 1725 components: - type: Transform rot: 1.5707963267948966 rad - pos: 17.5,-8.5 + pos: 33.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5590 + color: '#1739A6FF' + - uid: 1739 components: - type: Transform - pos: 17.5,-8.5 + pos: -25.5,16.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5591 + color: '#1739A6FF' + - uid: 1773 components: - type: Transform - pos: 17.5,-7.5 + rot: -1.5707963267948966 rad + pos: -22.5,-11.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5593 + color: '#A01E16FF' + - uid: 1781 components: - type: Transform - pos: 17.5,-5.5 + rot: -1.5707963267948966 rad + pos: -21.5,-11.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5594 + color: '#A01E16FF' + - uid: 1804 components: - type: Transform - pos: 17.5,-4.5 + rot: 3.141592653589793 rad + pos: 35.5,19.5 + parent: 31 + - uid: 1810 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,-12.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5595 + color: '#1739A6FF' + - uid: 1885 components: - type: Transform - pos: 17.5,-3.5 + rot: -1.5707963267948966 rad + pos: -1.5,30.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5596 + color: '#1739A6FF' + - uid: 1957 components: - type: Transform - pos: 17.5,-2.5 + rot: -1.5707963267948966 rad + pos: 0.5,30.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5598 + color: '#1739A6FF' + - uid: 1959 components: - type: Transform - pos: 16.5,-7.5 + rot: -1.5707963267948966 rad + pos: -0.5,30.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5599 + color: '#1739A6FF' + - uid: 2003 components: - type: Transform - pos: 16.5,-6.5 + pos: -24.5,-4.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5601 + color: '#A01E16FF' + - uid: 2007 components: - type: Transform - pos: 16.5,-4.5 + rot: 1.5707963267948966 rad + pos: -23.5,-5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5602 + color: '#A01E16FF' + - uid: 2206 components: - type: Transform - pos: 16.5,-3.5 + rot: 3.141592653589793 rad + pos: -36.5,16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5603 + color: '#1739A6FF' + - uid: 2207 components: - type: Transform - pos: 16.5,-2.5 + rot: 3.141592653589793 rad + pos: -36.5,15.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5604 + color: '#1739A6FF' + - uid: 2216 components: - type: Transform - pos: 16.5,-1.5 + pos: -9.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5608 + color: '#1739A6FF' + - uid: 2332 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -28.5,3.5 + pos: 34.5,19.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5612 + - uid: 2333 components: - type: Transform - pos: 18.5,-12.5 + pos: 34.5,18.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5613 + - uid: 2401 components: - type: Transform - pos: 18.5,-13.5 + rot: 3.141592653589793 rad + pos: 42.5,20.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5615 + - uid: 2414 components: - type: Transform - pos: 19.5,-10.5 + pos: 37.5,20.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5616 + - uid: 2559 components: - type: Transform - pos: 19.5,-11.5 + rot: 3.141592653589793 rad + pos: 44.5,18.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5617 + color: '#990000FF' + - uid: 2669 components: - type: Transform - pos: 19.5,-12.5 + rot: 3.141592653589793 rad + pos: -36.5,17.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5618 + color: '#1739A6FF' + - uid: 2709 components: - type: Transform - pos: 19.5,-13.5 + rot: 3.141592653589793 rad + pos: 53.5,-12.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5619 + color: '#A01E16FF' + - uid: 2741 components: - type: Transform - pos: 19.5,-14.5 + rot: 1.5707963267948966 rad + pos: 5.5,-19.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5620 + color: '#1739A6FF' + - uid: 2753 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 17.5,-14.5 + rot: 3.141592653589793 rad + pos: 47.5,-12.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5621 + color: '#1739A6FF' + - uid: 2775 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 16.5,-14.5 + rot: 1.5707963267948966 rad + pos: -8.5,15.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5622 + color: '#1739A6FF' + - uid: 2886 components: - type: Transform rot: -1.5707963267948966 rad - pos: 15.5,-14.5 + pos: -13.5,-29.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 5623 + - uid: 2947 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 18.5,-15.5 + rot: 3.141592653589793 rad + pos: -38.5,16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5624 + color: '#A01E16FF' + - uid: 2948 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 17.5,-15.5 + rot: 3.141592653589793 rad + pos: -38.5,17.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5625 + color: '#A01E16FF' + - uid: 2950 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 16.5,-15.5 + rot: 3.141592653589793 rad + pos: -38.5,14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5641 + color: '#A01E16FF' + - uid: 3042 components: - type: Transform rot: 1.5707963267948966 rad - pos: 10.5,-10.5 + pos: 24.5,9.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5642 + color: '#1739A6FF' + - uid: 3043 components: - type: Transform rot: 1.5707963267948966 rad - pos: 9.5,-10.5 + pos: 25.5,9.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5643 + color: '#1739A6FF' + - uid: 3044 components: - type: Transform - pos: 9.5,-9.5 + pos: 20.5,13.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5644 + color: '#A01E16FF' + - uid: 3045 components: - type: Transform - pos: 9.5,-10.5 + pos: 22.5,11.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5645 + color: '#1739A6FF' + - uid: 3046 components: - type: Transform - pos: 9.5,-11.5 + pos: 20.5,12.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5646 + color: '#A01E16FF' + - uid: 3047 components: - type: Transform - pos: 9.5,-12.5 + pos: 22.5,12.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5647 + color: '#1739A6FF' + - uid: 3048 components: - type: Transform - pos: 9.5,-13.5 + pos: 20.5,14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5649 + color: '#A01E16FF' + - uid: 3049 components: - type: Transform - pos: 8.5,-14.5 + pos: 22.5,13.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5651 + color: '#1739A6FF' + - uid: 3238 components: - type: Transform - pos: 8.5,-12.5 + rot: 1.5707963267948966 rad + pos: 9.5,24.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5652 + color: '#A01E16FF' + - uid: 3374 components: - type: Transform - pos: 8.5,-11.5 + pos: -27.5,-2.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5654 + color: '#1739A6FF' + - uid: 3411 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -28.5,5.5 + rot: -1.5707963267948966 rad + pos: -5.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5655 + color: '#1739A6FF' + - uid: 3586 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 17.5,-5.5 + rot: 3.141592653589793 rad + pos: -22.5,-25.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5656 + color: '#1739A6FF' + - uid: 3590 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 18.5,-5.5 + rot: -1.5707963267948966 rad + pos: 20.5,-9.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5657 + color: '#1739A6FF' + - uid: 3709 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 19.5,-5.5 + pos: 4.5,-20.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5658 + color: '#1739A6FF' + - uid: 3727 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 20.5,-5.5 + rot: 3.141592653589793 rad + pos: 50.5,12.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5659 + color: '#00FF00FF' + - uid: 3736 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 21.5,-5.5 + rot: 3.141592653589793 rad + pos: 4.5,26.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5660 + color: '#1739A6FF' + - uid: 3753 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 22.5,-5.5 + rot: 3.141592653589793 rad + pos: 36.5,17.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5661 + color: '#990000FF' + - uid: 3780 components: - type: Transform rot: 1.5707963267948966 rad - pos: 18.5,-6.5 + pos: 48.5,11.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5662 + color: '#00FF00FF' + - uid: 3803 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 19.5,-6.5 + pos: -32.5,-8.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 5663 + - uid: 3827 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 20.5,-6.5 + pos: 51.5,22.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5664 + color: '#ADD8E6FF' + - uid: 3873 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 21.5,-6.5 + pos: 35.5,18.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 5667 + - uid: 3888 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -29.5,3.5 + pos: 51.5,23.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5668 + color: '#ADD8E6FF' + - uid: 3922 components: - type: Transform - rot: 3.141592653589793 rad - pos: 18.5,-15.5 + pos: 2.5,31.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5669 + color: '#A01E16FF' + - uid: 4024 components: - type: Transform - rot: 3.141592653589793 rad - pos: 18.5,-16.5 + rot: -1.5707963267948966 rad + pos: -22.5,-12.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5670 + color: '#1739A6FF' + - uid: 4033 components: - type: Transform - rot: 3.141592653589793 rad - pos: 18.5,-17.5 + rot: -1.5707963267948966 rad + pos: -23.5,-12.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5673 + color: '#1739A6FF' + - uid: 4060 components: - type: Transform rot: 3.141592653589793 rad - pos: 19.5,-16.5 + pos: 35.5,16.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 5676 + - uid: 4096 components: - type: Transform - pos: -12.5,-2.5 + rot: -1.5707963267948966 rad + pos: 47.5,16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5681 + color: '#990000FF' + - uid: 4135 components: - type: Transform - pos: 15.5,-16.5 + pos: -7.5,-18.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5684 + color: '#A01E16FF' + - uid: 4136 components: - type: Transform - pos: 14.5,-18.5 + rot: 1.5707963267948966 rad + pos: -4.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5685 + color: '#A01E16FF' + - uid: 4137 components: - type: Transform - pos: 14.5,-19.5 + rot: -1.5707963267948966 rad + pos: -7.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5687 + color: '#1739A6FF' + - uid: 4138 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 9.5,-20.5 + pos: -8.5,-22.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5688 + color: '#1739A6FF' + - uid: 4141 components: - type: Transform rot: -1.5707963267948966 rad - pos: 10.5,-20.5 + pos: -7.5,-21.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5689 + color: '#1739A6FF' + - uid: 4142 components: - type: Transform rot: -1.5707963267948966 rad - pos: 11.5,-20.5 + pos: -5.5,-21.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5690 + color: '#1739A6FF' + - uid: 4152 components: - type: Transform rot: -1.5707963267948966 rad - pos: 12.5,-20.5 + pos: 49.5,15.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 5691 + - uid: 4174 components: - type: Transform rot: -1.5707963267948966 rad - pos: 13.5,-20.5 + pos: 51.5,15.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 5693 + - uid: 4176 components: - type: Transform - pos: 8.5,-21.5 + rot: 3.141592653589793 rad + pos: 38.5,18.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5694 + color: '#990000FF' + - uid: 4177 components: - type: Transform - pos: 8.5,-22.5 + rot: -1.5707963267948966 rad + pos: 50.5,15.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 5695 + - uid: 4200 components: - type: Transform - pos: 8.5,-23.5 + rot: -1.5707963267948966 rad + pos: -8.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5696 + color: '#1739A6FF' + - uid: 4236 components: - type: Transform - pos: 8.5,-24.5 + rot: 3.141592653589793 rad + pos: -5.5,12.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5699 + color: '#1739A6FF' + - uid: 4319 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 6.5,-19.5 + pos: 20.5,16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5716 + color: '#A01E16FF' + - uid: 4320 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 3.5,-14.5 + rot: -1.5707963267948966 rad + pos: 22.5,17.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5717 + color: '#A01E16FF' + - uid: 4321 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 2.5,-14.5 + rot: -1.5707963267948966 rad + pos: 23.5,17.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5718 + color: '#A01E16FF' + - uid: 4322 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 1.5,-14.5 + rot: -1.5707963267948966 rad + pos: 21.5,17.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5723 + color: '#A01E16FF' + - uid: 4323 components: - type: Transform rot: -1.5707963267948966 rad - pos: 1.5,-16.5 + pos: 24.5,17.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5762 + color: '#A01E16FF' + - uid: 4332 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -5.5,25.5 + rot: 3.141592653589793 rad + pos: 63.5,11.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5768 + color: '#990000FF' + - uid: 4336 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -6.5,11.5 + pos: 2.5,30.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5774 + color: '#A01E16FF' + - uid: 4352 components: - type: Transform rot: 3.141592653589793 rad - pos: 14.5,-21.5 + pos: 63.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5775 + color: '#990000FF' + - uid: 4359 components: - type: Transform rot: 3.141592653589793 rad - pos: 14.5,-22.5 + pos: 70.5,6.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5776 + color: '#A01E16FF' + - uid: 4360 components: - type: Transform - rot: 3.141592653589793 rad - pos: 14.5,-23.5 + rot: -1.5707963267948966 rad + pos: 65.5,2.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 5777 + - uid: 4378 components: - type: Transform - rot: 3.141592653589793 rad - pos: 14.5,-24.5 + pos: -27.5,-0.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5780 + color: '#1739A6FF' + - uid: 4387 components: - type: Transform - rot: 3.141592653589793 rad - pos: 15.5,-26.5 + rot: -1.5707963267948966 rad + pos: -3.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5781 + color: '#1739A6FF' + - uid: 4414 components: - type: Transform rot: 3.141592653589793 rad - pos: 15.5,-27.5 + pos: 71.5,8.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5786 + color: '#990000FF' + - uid: 4417 components: - type: Transform rot: 1.5707963267948966 rad - pos: 3.5,-23.5 + pos: 65.5,9.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5787 + - uid: 4429 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 4.5,-23.5 + rot: -1.5707963267948966 rad + pos: 70.5,7.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5788 + - uid: 4439 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 5.5,-23.5 + rot: -1.5707963267948966 rad + pos: -4.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5789 + color: '#1739A6FF' + - uid: 4463 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,-23.5 + rot: -1.5707963267948966 rad + pos: -6.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5790 + color: '#1739A6FF' + - uid: 4472 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 7.5,-23.5 + rot: -1.5707963267948966 rad + pos: 69.5,8.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5791 + color: '#A01E16FF' + - uid: 4475 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 8.5,-23.5 + pos: 30.5,21.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5793 + - uid: 4476 components: - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,4.5 + pos: 66.5,5.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5794 + - uid: 4481 components: - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,5.5 + pos: 69.5,8.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5795 + - uid: 4485 components: - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,6.5 + pos: -37.5,-8.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5796 + color: '#A01E16FF' + - uid: 4535 components: - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,7.5 + pos: -37.5,-9.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5797 + color: '#A01E16FF' + - uid: 4548 components: - type: Transform rot: 3.141592653589793 rad - pos: 2.5,8.5 + pos: 70.5,7.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5798 + color: '#A01E16FF' + - uid: 4551 components: - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,9.5 + rot: 1.5707963267948966 rad + pos: 67.5,9.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5799 + - uid: 4554 components: - type: Transform rot: 3.141592653589793 rad - pos: 2.5,10.5 + pos: 8.5,-15.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5800 + color: '#A01E16FF' + - uid: 4570 components: - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,11.5 + rot: -1.5707963267948966 rad + pos: 70.5,6.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5802 + - uid: 4595 components: - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,13.5 + pos: 50.5,-17.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5803 + color: '#A01E16FF' + - uid: 4603 components: - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,14.5 + rot: 1.5707963267948966 rad + pos: 66.5,7.5 + parent: 31 + - uid: 4625 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,11.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5804 + color: '#1739A6FF' + - uid: 4651 components: - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,15.5 + rot: 1.5707963267948966 rad + pos: 64.5,9.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5805 + - uid: 4682 components: - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,16.5 + pos: -9.5,-15.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5808 + color: '#1739A6FF' + - uid: 4684 components: - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,19.5 + rot: 1.5707963267948966 rad + pos: 38.5,14.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5809 + color: '#234FDEFF' + - uid: 4685 components: - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,20.5 + rot: 1.5707963267948966 rad + pos: 25.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5810 + color: '#A01E16FF' + - uid: 4687 components: - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,21.5 + rot: -1.5707963267948966 rad + pos: 23.5,11.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5811 + color: '#A01E16FF' + - uid: 4696 components: - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,22.5 + pos: -24.5,11.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5814 + color: '#1739A6FF' + - uid: 4698 components: - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,25.5 + rot: -1.5707963267948966 rad + pos: -7.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5815 + color: '#1739A6FF' + - uid: 4704 components: - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,26.5 + rot: -1.5707963267948966 rad + pos: -4.5,-21.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5816 + color: '#1739A6FF' + - uid: 4729 components: - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,27.5 + rot: 1.5707963267948966 rad + pos: 40.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5817 + color: '#A01E16FF' + - uid: 4730 components: - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,28.5 + rot: 1.5707963267948966 rad + pos: 39.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5818 + color: '#A01E16FF' + - uid: 4732 components: - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,29.5 + rot: 1.5707963267948966 rad + pos: 37.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5819 + color: '#A01E16FF' + - uid: 4737 components: - type: Transform - rot: 3.141592653589793 rad - pos: 4.5,29.5 + pos: -24.5,9.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5820 + color: '#1739A6FF' + - uid: 4833 components: - type: Transform - rot: 3.141592653589793 rad - pos: 4.5,28.5 + pos: 62.5,5.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 5821 + - uid: 4845 components: - type: Transform - rot: 3.141592653589793 rad - pos: 4.5,27.5 + pos: 30.5,23.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5824 + color: '#990000FF' + - uid: 4847 components: - type: Transform - rot: 3.141592653589793 rad - pos: 4.5,24.5 + pos: 30.5,20.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5825 + color: '#990000FF' + - uid: 4856 components: - type: Transform rot: 3.141592653589793 rad - pos: 4.5,23.5 + pos: 40.5,20.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5826 + color: '#990000FF' + - uid: 4858 components: - type: Transform - rot: 3.141592653589793 rad - pos: 4.5,22.5 + rot: -1.5707963267948966 rad + pos: -6.5,11.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5827 + color: '#1739A6FF' + - uid: 4949 components: - type: Transform - rot: 3.141592653589793 rad - pos: 4.5,21.5 + pos: 47.5,22.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5830 + - uid: 4976 components: - type: Transform - pos: 4.5,18.5 + pos: 41.5,22.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5831 + - uid: 4977 components: - type: Transform - rot: 3.141592653589793 rad - pos: 4.5,17.5 + rot: 1.5707963267948966 rad + pos: 47.5,14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5832 + color: '#00FF00FF' + - uid: 4981 components: - type: Transform - rot: 3.141592653589793 rad - pos: 4.5,16.5 + rot: 1.5707963267948966 rad + pos: 46.5,14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5833 + color: '#00FF00FF' + - uid: 4984 components: - type: Transform - rot: 3.141592653589793 rad - pos: 4.5,15.5 + rot: 1.5707963267948966 rad + pos: 48.5,14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5836 + color: '#00FF00FF' + - uid: 4986 components: - type: Transform rot: 3.141592653589793 rad - pos: 4.5,12.5 + pos: 69.5,4.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5838 + color: '#A01E16FF' + - uid: 4987 components: - type: Transform - rot: 3.141592653589793 rad - pos: 4.5,10.5 + rot: -1.5707963267948966 rad + pos: -4.5,29.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5839 + color: '#A01E16FF' + - uid: 5012 components: - type: Transform - rot: 3.141592653589793 rad - pos: 4.5,9.5 + pos: 45.5,18.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5840 + - uid: 5013 components: - type: Transform - rot: 3.141592653589793 rad - pos: 4.5,8.5 + pos: 43.5,18.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5841 + - uid: 5015 components: - type: Transform - rot: 3.141592653589793 rad - pos: 4.5,7.5 + pos: 43.5,19.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5842 + - uid: 5016 components: - type: Transform - rot: 3.141592653589793 rad - pos: 4.5,6.5 + pos: 45.5,20.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5843 + - uid: 5030 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 2.5,5.5 + pos: 36.5,19.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5844 + color: '#990000FF' + - uid: 5031 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 1.5,5.5 + pos: 36.5,18.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5845 + color: '#990000FF' + - uid: 5044 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 0.5,5.5 + pos: 43.5,21.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5846 + - uid: 5045 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 0.5,3.5 + pos: 45.5,21.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 5847 + - uid: 5046 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 1.5,3.5 + pos: 43.5,20.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 5850 + - uid: 5047 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 3.5,24.5 + pos: 45.5,19.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 5851 + - uid: 5048 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 4.5,24.5 + pos: 41.5,19.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 5852 + - uid: 5049 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 5.5,24.5 + pos: 41.5,20.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 5853 + - uid: 5050 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 6.5,24.5 + pos: 41.5,21.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 5854 + - uid: 5056 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 5.5,25.5 + pos: 43.5,22.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5855 + - uid: 5061 components: - type: Transform rot: -1.5707963267948966 rad - pos: 6.5,25.5 + pos: 1.5,28.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5857 + color: '#A01E16FF' + - uid: 5123 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 2.5,25.5 + pos: -37.5,-10.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5858 + color: '#A01E16FF' + - uid: 5126 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 1.5,25.5 + rot: 3.141592653589793 rad + pos: 35.5,22.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5859 + - uid: 5133 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 0.5,25.5 + pos: 37.5,18.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5860 + - uid: 5155 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -0.5,25.5 + rot: 1.5707963267948966 rad + pos: 32.5,9.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5861 + color: '#A01E16FF' + - uid: 5240 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 1.5,24.5 + rot: 1.5707963267948966 rad + pos: -20.5,19.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5862 + color: '#1739A6FF' + - uid: 5308 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 0.5,24.5 + pos: 48.5,18.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5863 + - uid: 5323 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -0.5,24.5 + pos: 2.5,2.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5866 + color: '#A01E16FF' + - uid: 5324 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 8.5,24.5 + pos: 2.5,1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5872 + color: '#A01E16FF' + - uid: 5326 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 3.5,17.5 + pos: 2.5,-0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5873 + color: '#A01E16FF' + - uid: 5327 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 4.5,17.5 + pos: 2.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5874 + color: '#A01E16FF' + - uid: 5328 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 5.5,17.5 + pos: 2.5,-2.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5875 + color: '#A01E16FF' + - uid: 5329 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,17.5 + pos: 2.5,-3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5876 + color: '#A01E16FF' + - uid: 5330 components: - type: Transform - pos: 8.5,19.5 + pos: 2.5,-4.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5877 + color: '#A01E16FF' + - uid: 5331 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 8.5,17.5 + pos: 2.5,-5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5878 + color: '#A01E16FF' + - uid: 5333 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 5.5,20.5 + pos: 2.5,-7.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5879 + color: '#A01E16FF' + - uid: 5334 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,20.5 + pos: 2.5,-8.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5880 + color: '#A01E16FF' + - uid: 5335 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 7.5,20.5 + pos: 2.5,-9.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5884 + color: '#A01E16FF' + - uid: 5336 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 3.5,20.5 + pos: 2.5,-10.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5885 + color: '#A01E16FF' + - uid: 5337 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 2.5,20.5 + pos: 2.5,-11.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5886 + color: '#A01E16FF' + - uid: 5338 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 1.5,20.5 + pos: 2.5,-12.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5887 + color: '#A01E16FF' + - uid: 5339 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 0.5,20.5 + pos: 2.5,-13.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5888 + color: '#A01E16FF' + - uid: 5340 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -0.5,20.5 + pos: 2.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5889 + color: '#A01E16FF' + - uid: 5341 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -1.5,20.5 + pos: 2.5,-15.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5890 + color: '#A01E16FF' + - uid: 5343 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -2.5,20.5 + pos: 2.5,-17.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5891 + color: '#A01E16FF' + - uid: 5344 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -3.5,20.5 + pos: 2.5,-18.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5899 + color: '#A01E16FF' + - uid: 5346 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -21.5,19.5 + pos: 2.5,-20.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5900 + color: '#A01E16FF' + - uid: 5347 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -19.5,19.5 + pos: 2.5,-21.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5901 + color: '#A01E16FF' + - uid: 5348 components: - type: Transform - pos: -18.5,20.5 + pos: 2.5,-22.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5902 + color: '#A01E16FF' + - uid: 5350 components: - type: Transform - pos: -18.5,21.5 + pos: 2.5,-24.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5903 + color: '#A01E16FF' + - uid: 5351 components: - type: Transform - pos: -18.5,22.5 + pos: 2.5,-25.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5904 + color: '#A01E16FF' + - uid: 5352 components: - type: Transform - pos: -18.5,23.5 + pos: 2.5,-26.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5905 + color: '#A01E16FF' + - uid: 5353 components: - type: Transform - pos: -18.5,24.5 + pos: 2.5,-27.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5906 + color: '#A01E16FF' + - uid: 5355 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -17.5,25.5 + pos: 4.5,4.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5907 + color: '#1739A6FF' + - uid: 5356 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -16.5,25.5 + pos: 4.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5908 + color: '#1739A6FF' + - uid: 5357 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -15.5,25.5 + pos: 4.5,2.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5909 + color: '#1739A6FF' + - uid: 5358 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -14.5,25.5 + pos: 4.5,1.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5910 + color: '#1739A6FF' + - uid: 5359 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -13.5,25.5 + pos: 4.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5911 + color: '#1739A6FF' + - uid: 5360 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -12.5,25.5 + pos: 4.5,-0.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5912 + color: '#1739A6FF' + - uid: 5362 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -11.5,25.5 + pos: 4.5,-2.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5913 + color: '#1739A6FF' + - uid: 5363 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -10.5,25.5 + pos: 4.5,-3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5914 + color: '#1739A6FF' + - uid: 5364 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -9.5,25.5 + pos: 4.5,-4.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5915 + color: '#1739A6FF' + - uid: 5366 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -8.5,25.5 + pos: 4.5,-6.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5918 + color: '#1739A6FF' + - uid: 5367 components: - type: Transform - rot: 3.141592653589793 rad - pos: -4.5,23.5 + pos: 4.5,-7.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5919 + color: '#1739A6FF' + - uid: 5368 components: - type: Transform - rot: 3.141592653589793 rad - pos: -4.5,22.5 + pos: 4.5,-8.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5920 + color: '#1739A6FF' + - uid: 5369 components: - type: Transform - rot: 3.141592653589793 rad - pos: -22.5,20.5 + pos: 4.5,-9.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5921 + color: '#1739A6FF' + - uid: 5370 components: - type: Transform - rot: 3.141592653589793 rad - pos: -4.5,21.5 + pos: 4.5,-10.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5922 + color: '#1739A6FF' + - uid: 5371 components: - type: Transform - rot: 3.141592653589793 rad - pos: -22.5,21.5 + pos: 4.5,-11.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5923 + color: '#1739A6FF' + - uid: 5372 components: - type: Transform - rot: 3.141592653589793 rad - pos: -22.5,22.5 + pos: 4.5,-12.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5930 + color: '#1739A6FF' + - uid: 5373 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 5.5,14.5 + pos: 4.5,-13.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5931 + color: '#1739A6FF' + - uid: 5375 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 7.5,14.5 + pos: 4.5,-15.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5932 + color: '#1739A6FF' + - uid: 5376 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,14.5 + pos: 4.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5933 + color: '#1739A6FF' + - uid: 5378 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 8.5,14.5 + pos: 4.5,-18.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5934 + color: '#1739A6FF' + - uid: 5381 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 9.5,14.5 + pos: 4.5,-21.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5935 + color: '#1739A6FF' + - uid: 5382 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 10.5,14.5 + pos: 4.5,-22.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5936 + color: '#1739A6FF' + - uid: 5383 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 11.5,14.5 + pos: 4.5,-23.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5937 + color: '#1739A6FF' + - uid: 5384 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 12.5,14.5 + pos: 4.5,-24.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5942 + color: '#1739A6FF' + - uid: 5385 components: - type: Transform - rot: 3.141592653589793 rad - pos: 8.5,7.5 + pos: 4.5,-25.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5943 + color: '#1739A6FF' + - uid: 5386 components: - type: Transform - rot: 3.141592653589793 rad - pos: 8.5,8.5 + pos: 4.5,-26.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5945 + color: '#1739A6FF' + - uid: 5387 components: - type: Transform - pos: 9.5,4.5 + pos: 4.5,-27.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5946 + color: '#1739A6FF' + - uid: 5388 components: - type: Transform - pos: 9.5,5.5 + pos: 4.5,-28.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5947 + color: '#1739A6FF' + - uid: 5389 components: - type: Transform - pos: 9.5,6.5 + rot: -1.5707963267948966 rad + pos: 7.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5948 + color: '#1739A6FF' + - uid: 5390 components: - type: Transform - pos: 9.5,7.5 + rot: -1.5707963267948966 rad + pos: 6.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5949 + color: '#1739A6FF' + - uid: 5391 components: - type: Transform - pos: 9.5,8.5 + rot: -1.5707963267948966 rad + pos: 5.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5954 + color: '#1739A6FF' + - uid: 5393 components: - type: Transform rot: -1.5707963267948966 rad - pos: -0.5,3.5 + pos: 4.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5956 + color: '#A01E16FF' + - uid: 5394 components: - type: Transform rot: -1.5707963267948966 rad - pos: -2.5,3.5 + pos: 5.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5957 + color: '#A01E16FF' + - uid: 5395 components: - type: Transform rot: -1.5707963267948966 rad - pos: -3.5,3.5 + pos: 6.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5958 + color: '#A01E16FF' + - uid: 5398 components: - type: Transform rot: -1.5707963267948966 rad - pos: -4.5,3.5 + pos: 8.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5959 + color: '#A01E16FF' + - uid: 5400 components: - type: Transform rot: -1.5707963267948966 rad - pos: -0.5,5.5 + pos: 10.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5961 + color: '#A01E16FF' + - uid: 5401 components: - type: Transform rot: -1.5707963267948966 rad - pos: -3.5,5.5 + pos: 11.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5962 + color: '#A01E16FF' + - uid: 5402 components: - type: Transform rot: -1.5707963267948966 rad - pos: -1.5,5.5 + pos: 12.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5965 + color: '#A01E16FF' + - uid: 5403 components: - type: Transform - rot: 3.141592653589793 rad - pos: -5.5,4.5 + rot: -1.5707963267948966 rad + pos: 13.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5966 + color: '#A01E16FF' + - uid: 5404 components: - type: Transform - rot: 3.141592653589793 rad - pos: -5.5,5.5 + rot: -1.5707963267948966 rad + pos: 14.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5967 + color: '#A01E16FF' + - uid: 5406 components: - type: Transform - rot: 3.141592653589793 rad - pos: -5.5,6.5 + rot: -1.5707963267948966 rad + pos: 16.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5968 + color: '#A01E16FF' + - uid: 5407 components: - type: Transform - rot: 3.141592653589793 rad - pos: -5.5,7.5 + rot: -1.5707963267948966 rad + pos: 17.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5970 + color: '#A01E16FF' + - uid: 5408 components: - type: Transform - rot: 3.141592653589793 rad - pos: -5.5,9.5 + rot: -1.5707963267948966 rad + pos: 18.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5972 + color: '#A01E16FF' + - uid: 5409 components: - type: Transform - rot: 3.141592653589793 rad - pos: -4.5,6.5 + rot: -1.5707963267948966 rad + pos: 19.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5974 + color: '#A01E16FF' + - uid: 5410 components: - type: Transform - rot: 3.141592653589793 rad - pos: -4.5,8.5 + rot: -1.5707963267948966 rad + pos: 20.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5975 + color: '#A01E16FF' + - uid: 5411 components: - type: Transform - rot: 3.141592653589793 rad - pos: -4.5,9.5 + rot: -1.5707963267948966 rad + pos: 21.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5984 + color: '#1739A6FF' + - uid: 5412 components: - type: Transform rot: -1.5707963267948966 rad - pos: -6.5,10.5 + pos: 20.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5985 + color: '#1739A6FF' + - uid: 5413 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -9.5,10.5 + rot: -1.5707963267948966 rad + pos: 19.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5986 + color: '#1739A6FF' + - uid: 5414 components: - type: Transform - rot: 3.141592653589793 rad - pos: -8.5,11.5 + rot: -1.5707963267948966 rad + pos: 18.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5987 + color: '#1739A6FF' + - uid: 5415 components: - type: Transform - rot: 3.141592653589793 rad - pos: -8.5,12.5 + rot: -1.5707963267948966 rad + pos: 17.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5990 + color: '#1739A6FF' + - uid: 5416 components: - type: Transform - rot: 3.141592653589793 rad - pos: -5.5,13.5 + rot: -1.5707963267948966 rad + pos: 16.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5995 + color: '#1739A6FF' + - uid: 5417 components: - type: Transform - rot: 3.141592653589793 rad - pos: -8.5,15.5 + rot: -1.5707963267948966 rad + pos: 15.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5996 + color: '#1739A6FF' + - uid: 5418 components: - type: Transform - rot: 3.141592653589793 rad - pos: -8.5,16.5 + rot: -1.5707963267948966 rad + pos: 14.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5997 + color: '#1739A6FF' + - uid: 5420 components: - type: Transform - rot: 3.141592653589793 rad - pos: -8.5,17.5 + rot: -1.5707963267948966 rad + pos: 12.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5998 + color: '#1739A6FF' + - uid: 5421 components: - type: Transform - rot: 3.141592653589793 rad - pos: -8.5,18.5 + rot: -1.5707963267948966 rad + pos: 11.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5999 + color: '#1739A6FF' + - uid: 5423 components: - type: Transform - rot: 3.141592653589793 rad - pos: -8.5,19.5 + rot: -1.5707963267948966 rad + pos: 9.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6002 + color: '#1739A6FF' + - uid: 5426 components: - type: Transform - rot: 3.141592653589793 rad - pos: -7.5,16.5 + rot: 1.5707963267948966 rad + pos: 22.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6003 + color: '#A01E16FF' + - uid: 5427 components: - type: Transform - rot: 3.141592653589793 rad - pos: -7.5,17.5 + rot: 1.5707963267948966 rad + pos: 23.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6004 + color: '#A01E16FF' + - uid: 5428 components: - type: Transform - rot: 3.141592653589793 rad - pos: -7.5,18.5 + rot: 1.5707963267948966 rad + pos: 24.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6005 + color: '#A01E16FF' + - uid: 5429 components: - type: Transform - rot: 3.141592653589793 rad - pos: -7.5,19.5 + rot: 1.5707963267948966 rad + pos: 25.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6006 + color: '#A01E16FF' + - uid: 5431 components: - type: Transform rot: 1.5707963267948966 rad - pos: -6.5,15.5 + pos: 27.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6007 + color: '#A01E16FF' + - uid: 5432 components: - type: Transform rot: 1.5707963267948966 rad - pos: -8.5,15.5 + pos: 28.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6008 + color: '#A01E16FF' + - uid: 5433 components: - type: Transform rot: 1.5707963267948966 rad - pos: -9.5,15.5 + pos: 29.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6009 + color: '#A01E16FF' + - uid: 5434 components: - type: Transform rot: 1.5707963267948966 rad - pos: -10.5,15.5 + pos: 30.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6011 + color: '#A01E16FF' + - uid: 5435 components: - type: Transform rot: 1.5707963267948966 rad - pos: -9.5,14.5 + pos: 31.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6012 + color: '#A01E16FF' + - uid: 5436 components: - type: Transform rot: 1.5707963267948966 rad - pos: -11.5,14.5 + pos: 31.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6013 + color: '#1739A6FF' + - uid: 5437 components: - type: Transform rot: 1.5707963267948966 rad - pos: -10.5,14.5 + pos: 30.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6014 + color: '#1739A6FF' + - uid: 5438 components: - type: Transform - rot: 3.141592653589793 rad - pos: -5.5,14.5 + rot: 1.5707963267948966 rad + pos: 29.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6027 + color: '#1739A6FF' + - uid: 5440 components: - type: Transform - rot: 3.141592653589793 rad - pos: -12.5,17.5 + rot: 1.5707963267948966 rad + pos: 27.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6028 + color: '#1739A6FF' + - uid: 5441 components: - type: Transform - rot: 3.141592653589793 rad - pos: -12.5,18.5 + rot: 1.5707963267948966 rad + pos: 26.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6029 + color: '#1739A6FF' + - uid: 5442 components: - type: Transform rot: 1.5707963267948966 rad - pos: -9.5,20.5 + pos: 25.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6030 + color: '#1739A6FF' + - uid: 5443 components: - type: Transform rot: 1.5707963267948966 rad - pos: -11.5,20.5 + pos: 24.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6031 + color: '#1739A6FF' + - uid: 5444 components: - type: Transform rot: 1.5707963267948966 rad - pos: -10.5,20.5 + pos: 23.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6034 + color: '#1739A6FF' + - uid: 5445 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -4.5,8.5 + pos: 13.5,6.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6035 + color: '#1739A6FF' + - uid: 5446 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -3.5,8.5 + pos: 13.5,7.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6036 + color: '#1739A6FF' + - uid: 5447 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -2.5,8.5 + pos: 13.5,8.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6037 + color: '#1739A6FF' + - uid: 5448 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -1.5,8.5 + pos: 13.5,9.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6038 + color: '#1739A6FF' + - uid: 5449 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -3.5,7.5 + pos: 15.5,4.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6039 + color: '#A01E16FF' + - uid: 5450 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -2.5,7.5 + pos: 15.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6040 + color: '#A01E16FF' + - uid: 5451 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -1.5,7.5 + pos: 15.5,6.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6045 + color: '#A01E16FF' + - uid: 5452 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -5.5,5.5 + pos: 15.5,7.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6046 + color: '#A01E16FF' + - uid: 5453 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -6.5,5.5 + pos: 15.5,8.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6047 + color: '#A01E16FF' + - uid: 5454 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -7.5,5.5 + pos: 15.5,9.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6048 + color: '#A01E16FF' + - uid: 5455 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -8.5,5.5 + pos: 15.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6049 + color: '#A01E16FF' + - uid: 5460 components: - type: Transform rot: -1.5707963267948966 rad - pos: -9.5,5.5 + pos: 15.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6052 + color: '#1739A6FF' + - uid: 5461 components: - type: Transform rot: -1.5707963267948966 rad - pos: -12.5,5.5 + pos: 16.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6053 + color: '#1739A6FF' + - uid: 5462 components: - type: Transform rot: -1.5707963267948966 rad - pos: -13.5,5.5 + pos: 17.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6054 + color: '#1739A6FF' + - uid: 5463 components: - type: Transform rot: -1.5707963267948966 rad - pos: -14.5,5.5 + pos: 18.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6055 + color: '#1739A6FF' + - uid: 5466 components: - type: Transform rot: -1.5707963267948966 rad - pos: -15.5,5.5 + pos: 19.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6056 + color: '#1739A6FF' + - uid: 5467 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -23.5,5.5 + rot: -1.5707963267948966 rad + pos: 19.5,11.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6057 + color: '#A01E16FF' + - uid: 5468 components: - type: Transform rot: -1.5707963267948966 rad - pos: -17.5,5.5 + pos: 18.5,11.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6058 + color: '#A01E16FF' + - uid: 5469 components: - type: Transform rot: -1.5707963267948966 rad - pos: -18.5,5.5 + pos: 17.5,11.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6059 + color: '#A01E16FF' + - uid: 5475 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -19.5,5.5 + rot: 3.141592653589793 rad + pos: 8.5,6.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6060 + color: '#1739A6FF' + - uid: 5480 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -20.5,5.5 + rot: 1.5707963267948966 rad + pos: 21.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6061 + color: '#1739A6FF' + - uid: 5482 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -21.5,5.5 + rot: 1.5707963267948966 rad + pos: 3.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6062 + color: '#A01E16FF' + - uid: 5483 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -22.5,5.5 + rot: 1.5707963267948966 rad + pos: 4.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6063 + color: '#A01E16FF' + - uid: 5484 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -6.5,3.5 + rot: 1.5707963267948966 rad + pos: 5.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6064 + color: '#A01E16FF' + - uid: 5485 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -7.5,3.5 + rot: 1.5707963267948966 rad + pos: 6.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6065 + color: '#A01E16FF' + - uid: 5486 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -8.5,3.5 + rot: 1.5707963267948966 rad + pos: 7.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6066 + color: '#A01E16FF' + - uid: 5487 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -9.5,3.5 + rot: 1.5707963267948966 rad + pos: 8.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6067 + color: '#A01E16FF' + - uid: 5489 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -10.5,3.5 + rot: 1.5707963267948966 rad + pos: 10.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6068 + color: '#A01E16FF' + - uid: 5490 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -11.5,3.5 + rot: 1.5707963267948966 rad + pos: 9.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6069 + color: '#1739A6FF' + - uid: 5492 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -12.5,3.5 + rot: 1.5707963267948966 rad + pos: 7.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6070 + color: '#1739A6FF' + - uid: 5493 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -13.5,3.5 + rot: 1.5707963267948966 rad + pos: 6.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6072 + color: '#1739A6FF' + - uid: 5494 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -15.5,3.5 + rot: 1.5707963267948966 rad + pos: 5.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6073 + color: '#1739A6FF' + - uid: 5497 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -16.5,3.5 + rot: 1.5707963267948966 rad + pos: -11.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6074 + color: '#A01E16FF' + - uid: 5498 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -17.5,3.5 + rot: 1.5707963267948966 rad + pos: -10.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6075 + color: '#A01E16FF' + - uid: 5499 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -18.5,3.5 + rot: 1.5707963267948966 rad + pos: -9.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6076 + color: '#A01E16FF' + - uid: 5501 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -19.5,3.5 + rot: 1.5707963267948966 rad + pos: -7.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6077 + color: '#A01E16FF' + - uid: 5502 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -20.5,3.5 + rot: 1.5707963267948966 rad + pos: -6.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6078 + color: '#A01E16FF' + - uid: 5503 components: - type: Transform rot: -1.5707963267948966 rad - pos: -21.5,3.5 + pos: -5.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6081 + color: '#A01E16FF' + - uid: 5504 components: - type: Transform rot: 1.5707963267948966 rad - pos: -10.5,5.5 + pos: -4.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6085 + color: '#A01E16FF' + - uid: 5505 components: - type: Transform - pos: -24.5,4.5 + rot: 1.5707963267948966 rad + pos: -3.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6086 + color: '#A01E16FF' + - uid: 5506 components: - type: Transform - pos: -24.5,3.5 + rot: 1.5707963267948966 rad + pos: -2.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6087 + color: '#A01E16FF' + - uid: 5507 components: - type: Transform - pos: -24.5,2.5 + rot: 1.5707963267948966 rad + pos: -1.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6088 + color: '#A01E16FF' + - uid: 5508 components: - type: Transform - pos: -24.5,1.5 + rot: 1.5707963267948966 rad + pos: -0.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6089 + color: '#A01E16FF' + - uid: 5509 components: - type: Transform - pos: -24.5,0.5 + rot: 1.5707963267948966 rad + pos: 0.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6090 + color: '#A01E16FF' + - uid: 5510 components: - type: Transform - pos: -24.5,-0.5 + rot: 1.5707963267948966 rad + pos: 1.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6091 + color: '#A01E16FF' + - uid: 5511 components: - type: Transform - pos: -24.5,-1.5 + rot: 1.5707963267948966 rad + pos: 3.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6092 + color: '#1739A6FF' + - uid: 5512 components: - type: Transform - pos: -16.5,4.5 + rot: 1.5707963267948966 rad + pos: 2.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6093 + color: '#1739A6FF' + - uid: 5513 components: - type: Transform - rot: 3.141592653589793 rad - pos: -24.5,6.5 + rot: 1.5707963267948966 rad + pos: 1.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6094 + color: '#1739A6FF' + - uid: 5514 components: - type: Transform - rot: 3.141592653589793 rad - pos: -24.5,7.5 + rot: 1.5707963267948966 rad + pos: 0.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6097 + color: '#1739A6FF' + - uid: 5515 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -24.5,9.5 + rot: 1.5707963267948966 rad + pos: -0.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6102 + color: '#1739A6FF' + - uid: 5517 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -25.5,9.5 + rot: 1.5707963267948966 rad + pos: -2.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6103 + color: '#1739A6FF' + - uid: 5518 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -26.5,9.5 + rot: 1.5707963267948966 rad + pos: -3.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6104 + color: '#1739A6FF' + - uid: 5519 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -25.5,8.5 + rot: 1.5707963267948966 rad + pos: -4.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6105 + color: '#1739A6FF' + - uid: 5520 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -26.5,8.5 + rot: 1.5707963267948966 rad + pos: -5.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6107 + color: '#1739A6FF' + - uid: 5521 components: - type: Transform - rot: 3.141592653589793 rad - pos: -23.5,8.5 + rot: 1.5707963267948966 rad + pos: -6.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6108 + color: '#1739A6FF' + - uid: 5522 components: - type: Transform - rot: 3.141592653589793 rad - pos: -23.5,7.5 + rot: 1.5707963267948966 rad + pos: -7.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6109 + color: '#1739A6FF' + - uid: 5523 components: - type: Transform - rot: 3.141592653589793 rad - pos: -23.5,6.5 + rot: 1.5707963267948966 rad + pos: -8.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6110 + color: '#1739A6FF' + - uid: 5524 components: - type: Transform - rot: 3.141592653589793 rad - pos: -23.5,5.5 + rot: 1.5707963267948966 rad + pos: -9.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6111 + color: '#1739A6FF' + - uid: 5525 components: - type: Transform - rot: 3.141592653589793 rad - pos: -23.5,4.5 + rot: 1.5707963267948966 rad + pos: -10.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6113 + color: '#1739A6FF' + - uid: 5526 components: - type: Transform - pos: -16.5,3.5 + rot: 1.5707963267948966 rad + pos: -11.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6121 + color: '#1739A6FF' + - uid: 5529 components: - type: Transform - pos: -23.5,2.5 + rot: -1.5707963267948966 rad + pos: -12.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6122 + color: '#A01E16FF' + - uid: 5530 components: - type: Transform - pos: -23.5,1.5 + rot: -1.5707963267948966 rad + pos: -14.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6123 + color: '#A01E16FF' + - uid: 5531 components: - type: Transform - pos: -23.5,0.5 + rot: -1.5707963267948966 rad + pos: -15.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6124 + color: '#A01E16FF' + - uid: 5540 components: - type: Transform - pos: -23.5,-0.5 + rot: 1.5707963267948966 rad + pos: -26.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6125 + color: '#1739A6FF' + - uid: 5555 components: - type: Transform - pos: -23.5,-1.5 + pos: 10.5,-2.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6126 + color: '#1739A6FF' + - uid: 5556 components: - type: Transform - pos: -23.5,-2.5 + pos: 10.5,-3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6128 + color: '#1739A6FF' + - uid: 5557 components: - type: Transform - rot: 3.141592653589793 rad - pos: -16.5,2.5 + pos: 10.5,-4.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6131 + color: '#1739A6FF' + - uid: 5558 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -27.5,3.5 + pos: 10.5,-5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6132 + color: '#1739A6FF' + - uid: 5559 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -26.5,3.5 + pos: 10.5,-6.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6133 + color: '#1739A6FF' + - uid: 5560 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -25.5,3.5 + pos: 10.5,-7.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6134 + color: '#1739A6FF' + - uid: 5561 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -24.5,3.5 + pos: 11.5,-0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6139 + color: '#A01E16FF' + - uid: 5562 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -30.5,5.5 + pos: 11.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6140 + color: '#A01E16FF' + - uid: 5563 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -31.5,5.5 + pos: 11.5,-2.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6142 + color: '#A01E16FF' + - uid: 5564 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -33.5,5.5 + pos: 11.5,-3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6143 + color: '#A01E16FF' + - uid: 5565 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -34.5,5.5 + pos: 11.5,-4.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6145 + color: '#A01E16FF' + - uid: 5566 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -31.5,3.5 + pos: 11.5,-5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6146 + color: '#A01E16FF' + - uid: 5567 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -32.5,3.5 + pos: 11.5,-6.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6147 + color: '#A01E16FF' + - uid: 5568 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -33.5,3.5 + pos: 11.5,-7.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6148 + color: '#A01E16FF' + - uid: 5569 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -34.5,3.5 + pos: 11.5,-8.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6149 + color: '#A01E16FF' + - uid: 5570 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -35.5,3.5 + pos: 11.5,-9.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6153 + color: '#A01E16FF' + - uid: 5573 components: - type: Transform - pos: -35.5,4.5 + rot: 1.5707963267948966 rad + pos: 11.5,-8.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6154 + color: '#1739A6FF' + - uid: 5575 components: - type: Transform - pos: -35.5,3.5 + rot: 1.5707963267948966 rad + pos: 13.5,-8.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6155 + color: '#1739A6FF' + - uid: 5576 components: - type: Transform - pos: -35.5,2.5 + rot: 1.5707963267948966 rad + pos: 14.5,-8.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6156 + color: '#1739A6FF' + - uid: 5578 components: - type: Transform - pos: -35.5,1.5 + rot: 1.5707963267948966 rad + pos: 14.5,-10.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6157 + color: '#A01E16FF' + - uid: 5580 components: - type: Transform - pos: -35.5,0.5 + rot: 1.5707963267948966 rad + pos: 16.5,-10.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6158 + color: '#A01E16FF' + - uid: 5581 components: - type: Transform - pos: -35.5,-0.5 + rot: 1.5707963267948966 rad + pos: 18.5,-8.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6159 + color: '#1739A6FF' + - uid: 5583 components: - type: Transform - pos: -35.5,-1.5 + pos: 17.5,-9.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6160 + color: '#A01E16FF' + - uid: 5585 components: - type: Transform - pos: -35.5,-2.5 + rot: 1.5707963267948966 rad + pos: 13.5,-10.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6161 + color: '#A01E16FF' + - uid: 5588 components: - type: Transform - pos: -35.5,-3.5 + rot: 1.5707963267948966 rad + pos: 17.5,-8.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6162 + color: '#1739A6FF' + - uid: 5590 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -39.5,-5.5 + pos: 17.5,-8.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6163 + color: '#A01E16FF' + - uid: 5591 components: - type: Transform - pos: -35.5,-5.5 + pos: 17.5,-7.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6164 + color: '#A01E16FF' + - uid: 5593 components: - type: Transform - pos: -36.5,2.5 + pos: 17.5,-5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6165 + color: '#A01E16FF' + - uid: 5594 components: - type: Transform - pos: -36.5,1.5 + pos: 17.5,-4.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6167 + color: '#A01E16FF' + - uid: 5595 components: - type: Transform - pos: -25.5,15.5 + pos: 17.5,-3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6170 + color: '#A01E16FF' + - uid: 5596 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 32.5,3.5 + pos: 17.5,-2.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6171 + color: '#A01E16FF' + - uid: 5598 components: - type: Transform - pos: 32.5,6.5 + pos: 16.5,-7.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6172 + color: '#1739A6FF' + - uid: 5599 components: - type: Transform - pos: 32.5,7.5 + pos: 16.5,-6.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6173 + color: '#1739A6FF' + - uid: 5601 components: - type: Transform - pos: 32.5,8.5 + pos: 16.5,-4.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6176 + color: '#1739A6FF' + - uid: 5602 components: - type: Transform - pos: 33.5,5.5 + pos: 16.5,-3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6177 + color: '#1739A6FF' + - uid: 5603 components: - type: Transform - pos: 33.5,4.5 + pos: 16.5,-2.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6178 + color: '#1739A6FF' + - uid: 5604 components: - type: Transform - pos: 33.5,6.5 + pos: 16.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6179 + color: '#1739A6FF' + - uid: 5608 components: - type: Transform - pos: 33.5,7.5 + rot: 1.5707963267948966 rad + pos: -28.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6185 + color: '#A01E16FF' + - uid: 5612 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 34.5,3.5 + pos: 18.5,-12.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6186 + color: '#A01E16FF' + - uid: 5613 components: - type: Transform - pos: 32.5,4.5 + pos: 18.5,-13.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6187 + color: '#A01E16FF' + - uid: 5615 components: - type: Transform - pos: 32.5,3.5 + pos: 19.5,-10.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6188 + color: '#1739A6FF' + - uid: 5616 components: - type: Transform - pos: 32.5,2.5 + pos: 19.5,-11.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6189 + color: '#1739A6FF' + - uid: 5617 components: - type: Transform - pos: 32.5,1.5 + pos: 19.5,-12.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6190 + color: '#1739A6FF' + - uid: 5618 components: - type: Transform - pos: 32.5,0.5 + pos: 19.5,-13.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6191 + color: '#1739A6FF' + - uid: 5619 components: - type: Transform - pos: 32.5,-0.5 + pos: 19.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6192 + color: '#1739A6FF' + - uid: 5620 components: - type: Transform - pos: 32.5,-1.5 + rot: -1.5707963267948966 rad + pos: 17.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6193 + color: '#A01E16FF' + - uid: 5621 components: - type: Transform - pos: 33.5,2.5 + rot: -1.5707963267948966 rad + pos: 16.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6194 + color: '#A01E16FF' + - uid: 5622 components: - type: Transform - pos: 33.5,1.5 + rot: -1.5707963267948966 rad + pos: 15.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6195 + color: '#A01E16FF' + - uid: 5623 components: - type: Transform - pos: 33.5,0.5 + rot: -1.5707963267948966 rad + pos: 18.5,-15.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6196 + color: '#1739A6FF' + - uid: 5624 components: - type: Transform - pos: 33.5,-0.5 + rot: -1.5707963267948966 rad + pos: 17.5,-15.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6200 + color: '#1739A6FF' + - uid: 5625 components: - type: Transform rot: -1.5707963267948966 rad - pos: 40.5,6.5 + pos: 16.5,-15.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6201 + color: '#1739A6FF' + - uid: 5641 components: - type: Transform rot: 1.5707963267948966 rad - pos: 41.5,6.5 + pos: 10.5,-10.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6202 + color: '#A01E16FF' + - uid: 5642 components: - type: Transform rot: 1.5707963267948966 rad - pos: 42.5,6.5 + pos: 9.5,-10.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6203 + color: '#A01E16FF' + - uid: 5643 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 43.5,6.5 + pos: 9.5,-9.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6206 + color: '#1739A6FF' + - uid: 5644 components: - type: Transform - pos: 43.5,4.5 + pos: 9.5,-10.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6207 + color: '#1739A6FF' + - uid: 5645 components: - type: Transform - pos: 43.5,5.5 + pos: 9.5,-11.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6208 + color: '#1739A6FF' + - uid: 5646 components: - type: Transform - pos: 43.5,6.5 + pos: 9.5,-12.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6209 + color: '#1739A6FF' + - uid: 5647 components: - type: Transform - rot: 3.141592653589793 rad - pos: 43.5,7.5 + pos: 9.5,-13.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6217 + color: '#1739A6FF' + - uid: 5649 components: - type: Transform - rot: 3.141592653589793 rad - pos: 44.5,5.5 + pos: 8.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6218 + color: '#A01E16FF' + - uid: 5651 components: - type: Transform - rot: 3.141592653589793 rad - pos: 44.5,4.5 + pos: 8.5,-12.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6219 + color: '#A01E16FF' + - uid: 5652 components: - type: Transform - rot: 3.141592653589793 rad - pos: 44.5,3.5 + pos: 8.5,-11.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6220 + color: '#A01E16FF' + - uid: 5654 components: - type: Transform rot: 1.5707963267948966 rad - pos: 44.5,3.5 + pos: -28.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6221 + color: '#1739A6FF' + - uid: 5655 components: - type: Transform rot: 1.5707963267948966 rad - pos: 45.5,3.5 + pos: 17.5,-5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6222 + color: '#1739A6FF' + - uid: 5656 components: - type: Transform rot: 1.5707963267948966 rad - pos: 46.5,3.5 + pos: 18.5,-5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6224 + color: '#1739A6FF' + - uid: 5657 components: - type: Transform rot: 1.5707963267948966 rad - pos: 48.5,3.5 + pos: 19.5,-5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6225 + color: '#1739A6FF' + - uid: 5658 components: - type: Transform rot: 1.5707963267948966 rad - pos: 45.5,2.5 + pos: 20.5,-5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6227 + color: '#1739A6FF' + - uid: 5659 components: - type: Transform rot: 1.5707963267948966 rad - pos: 47.5,2.5 + pos: 21.5,-5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6229 + color: '#1739A6FF' + - uid: 5660 components: - type: Transform - pos: 48.5,-0.5 + rot: 1.5707963267948966 rad + pos: 22.5,-5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6233 + color: '#1739A6FF' + - uid: 5661 components: - type: Transform - pos: 48.5,-1.5 + rot: 1.5707963267948966 rad + pos: 18.5,-6.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6234 + color: '#A01E16FF' + - uid: 5662 components: - type: Transform - pos: 49.5,2.5 + rot: 1.5707963267948966 rad + pos: 19.5,-6.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6235 + color: '#A01E16FF' + - uid: 5663 components: - type: Transform - pos: 49.5,1.5 + rot: 1.5707963267948966 rad + pos: 20.5,-6.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6236 + color: '#A01E16FF' + - uid: 5664 components: - type: Transform - pos: 49.5,0.5 + rot: 1.5707963267948966 rad + pos: 21.5,-6.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6237 + color: '#A01E16FF' + - uid: 5667 components: - type: Transform - pos: 49.5,-0.5 + rot: 1.5707963267948966 rad + pos: -29.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6238 + color: '#A01E16FF' + - uid: 5668 components: - type: Transform - pos: 49.5,-1.5 + rot: 3.141592653589793 rad + pos: 18.5,-15.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6239 + color: '#A01E16FF' + - uid: 5669 components: - type: Transform - pos: 48.5,0.5 + rot: 3.141592653589793 rad + pos: 18.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6240 + color: '#A01E16FF' + - uid: 5670 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 42.5,3.5 + rot: 3.141592653589793 rad + pos: 18.5,-17.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6247 + color: '#A01E16FF' + - uid: 5673 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 47.5,12.5 + rot: 3.141592653589793 rad + pos: 19.5,-16.5 parent: 31 - - uid: 6254 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5676 components: - type: Transform - rot: 3.141592653589793 rad - pos: 32.5,9.5 + pos: -12.5,-2.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6260 + color: '#1739A6FF' + - uid: 5681 components: - type: Transform - pos: 22.5,14.5 + pos: 15.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6263 + color: '#1739A6FF' + - uid: 5684 components: - type: Transform - pos: 38.5,2.5 + pos: 14.5,-18.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6264 + color: '#1739A6FF' + - uid: 5685 components: - type: Transform - pos: 38.5,1.5 + pos: 14.5,-19.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6269 + color: '#1739A6FF' + - uid: 5687 components: - type: Transform - rot: 3.141592653589793 rad - pos: 37.5,4.5 + rot: -1.5707963267948966 rad + pos: 9.5,-20.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6270 + color: '#1739A6FF' + - uid: 5688 components: - type: Transform - rot: 3.141592653589793 rad - pos: 37.5,3.5 + rot: -1.5707963267948966 rad + pos: 10.5,-20.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6271 + color: '#1739A6FF' + - uid: 5689 components: - type: Transform - rot: 3.141592653589793 rad - pos: 37.5,2.5 + rot: -1.5707963267948966 rad + pos: 11.5,-20.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6272 + color: '#1739A6FF' + - uid: 5690 components: - type: Transform - rot: 3.141592653589793 rad - pos: 37.5,1.5 + rot: -1.5707963267948966 rad + pos: 12.5,-20.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6273 + color: '#1739A6FF' + - uid: 5691 components: - type: Transform - rot: 3.141592653589793 rad - pos: 37.5,0.5 + rot: -1.5707963267948966 rad + pos: 13.5,-20.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6315 + color: '#1739A6FF' + - uid: 5693 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,10.5 + pos: 8.5,-21.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6349 + color: '#1739A6FF' + - uid: 5694 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 44.5,9.5 + pos: 8.5,-22.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6363 + color: '#1739A6FF' + - uid: 5695 components: - type: Transform - pos: 37.5,21.5 + pos: 8.5,-23.5 parent: 31 - - uid: 6392 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5696 components: - type: Transform - pos: 43.5,8.5 + pos: 8.5,-24.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6409 + color: '#1739A6FF' + - uid: 5699 components: - type: Transform - rot: 3.141592653589793 rad - pos: -22.5,-17.5 + rot: -1.5707963267948966 rad + pos: 6.5,-19.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6411 + color: '#1739A6FF' + - uid: 5706 components: - type: Transform rot: 1.5707963267948966 rad - pos: 45.5,9.5 + pos: -28.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6439 + color: '#1739A6FF' + - uid: 5716 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -11.5,-16.5 + rot: 1.5707963267948966 rad + pos: 3.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6465 + color: '#1739A6FF' + - uid: 5717 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -14.5,-16.5 + rot: 1.5707963267948966 rad + pos: 2.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6480 + color: '#1739A6FF' + - uid: 5718 components: - type: Transform rot: 1.5707963267948966 rad - pos: -21.5,-18.5 + pos: 1.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6490 + color: '#1739A6FF' + - uid: 5723 components: - type: Transform rot: -1.5707963267948966 rad - pos: -9.5,-16.5 + pos: 1.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6534 + color: '#A01E16FF' + - uid: 5762 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 46.5,9.5 + rot: -1.5707963267948966 rad + pos: -5.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6549 + color: '#1739A6FF' + - uid: 5774 components: - type: Transform - pos: 46.5,18.5 + rot: 3.141592653589793 rad + pos: 14.5,-21.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6558 + color: '#1739A6FF' + - uid: 5775 components: - type: Transform rot: 3.141592653589793 rad - pos: 37.5,16.5 + pos: 14.5,-22.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6559 + color: '#1739A6FF' + - uid: 5776 components: - type: Transform - pos: 44.5,7.5 + rot: 3.141592653589793 rad + pos: 14.5,-23.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6562 + color: '#1739A6FF' + - uid: 5777 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 46.5,8.5 + rot: 3.141592653589793 rad + pos: 14.5,-24.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6569 + color: '#1739A6FF' + - uid: 5780 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 45.5,8.5 + rot: 3.141592653589793 rad + pos: 15.5,-26.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6572 + color: '#1739A6FF' + - uid: 5781 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 24.5,16.5 + rot: 3.141592653589793 rad + pos: 15.5,-27.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6573 + color: '#1739A6FF' + - uid: 5786 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 25.5,16.5 + rot: 1.5707963267948966 rad + pos: 3.5,-23.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6577 - components: - - type: Transform - pos: 37.5,22.5 - parent: 31 - - uid: 6579 + color: '#A01E16FF' + - uid: 5787 components: - type: Transform - pos: 34.5,21.5 + rot: 1.5707963267948966 rad + pos: 4.5,-23.5 parent: 31 - - uid: 6604 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5788 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -8.5,-16.5 + rot: 1.5707963267948966 rad + pos: 5.5,-23.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6619 + color: '#A01E16FF' + - uid: 5789 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -10.5,-16.5 + rot: 1.5707963267948966 rad + pos: 6.5,-23.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6634 + color: '#A01E16FF' + - uid: 5790 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -13.5,-16.5 + rot: 1.5707963267948966 rad + pos: 7.5,-23.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6642 + color: '#A01E16FF' + - uid: 5791 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -12.5,-16.5 + rot: 1.5707963267948966 rad + pos: 8.5,-23.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6693 + color: '#A01E16FF' + - uid: 5793 components: - type: Transform rot: 3.141592653589793 rad - pos: -23.5,-17.5 + pos: 2.5,4.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6696 + color: '#A01E16FF' + - uid: 5794 components: - type: Transform rot: 3.141592653589793 rad - pos: -23.5,-16.5 + pos: 2.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6704 - components: - - type: Transform - pos: 34.5,22.5 - parent: 31 - - uid: 6712 + color: '#A01E16FF' + - uid: 5795 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -18.5,-16.5 + rot: 3.141592653589793 rad + pos: 2.5,6.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6713 + color: '#A01E16FF' + - uid: 5796 components: - type: Transform rot: 3.141592653589793 rad - pos: -23.5,-15.5 + pos: 2.5,7.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6714 + color: '#A01E16FF' + - uid: 5797 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -21.5,-16.5 + rot: 3.141592653589793 rad + pos: 2.5,8.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6715 + color: '#A01E16FF' + - uid: 5798 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -20.5,-16.5 + rot: 3.141592653589793 rad + pos: 2.5,9.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6716 + color: '#A01E16FF' + - uid: 5799 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -19.5,-16.5 + rot: 3.141592653589793 rad + pos: 2.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6717 + color: '#A01E16FF' + - uid: 5800 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -17.5,-16.5 + rot: 3.141592653589793 rad + pos: 2.5,11.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6718 + color: '#A01E16FF' + - uid: 5802 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -15.5,-16.5 + rot: 3.141592653589793 rad + pos: 2.5,13.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6719 + color: '#A01E16FF' + - uid: 5803 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -16.5,-16.5 + rot: 3.141592653589793 rad + pos: 2.5,14.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6727 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 45.5,12.5 - parent: 31 - - uid: 6734 + color: '#A01E16FF' + - uid: 5804 components: - type: Transform - pos: 30.5,22.5 + rot: 3.141592653589793 rad + pos: 2.5,15.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6741 + color: '#A01E16FF' + - uid: 5805 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 64.5,2.5 + rot: 3.141592653589793 rad + pos: 2.5,16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6749 + color: '#A01E16FF' + - uid: 5808 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 37.5,25.5 + rot: 3.141592653589793 rad + pos: 2.5,19.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6755 + color: '#A01E16FF' + - uid: 5809 components: - type: Transform rot: 3.141592653589793 rad - pos: 70.5,5.5 + pos: 2.5,20.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6765 + color: '#A01E16FF' + - uid: 5810 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 70.5,9.5 + rot: 3.141592653589793 rad + pos: 2.5,21.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6766 + color: '#A01E16FF' + - uid: 5811 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 66.5,9.5 + rot: 3.141592653589793 rad + pos: 2.5,22.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6830 + color: '#A01E16FF' + - uid: 5814 components: - type: Transform - pos: 68.5,8.5 + rot: 3.141592653589793 rad + pos: 2.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6842 + color: '#A01E16FF' + - uid: 5815 components: - type: Transform - pos: 68.5,7.5 + rot: 3.141592653589793 rad + pos: 2.5,26.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6895 + color: '#A01E16FF' + - uid: 5816 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 23.5,16.5 + rot: 3.141592653589793 rad + pos: 2.5,27.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6896 + color: '#A01E16FF' + - uid: 5818 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 25.5,17.5 + rot: 3.141592653589793 rad + pos: 2.5,29.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 6925 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5819 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 62.5,12.5 + rot: 3.141592653589793 rad + pos: 4.5,29.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6926 + color: '#1739A6FF' + - uid: 5820 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 61.5,12.5 + rot: 3.141592653589793 rad + pos: 4.5,28.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6945 + color: '#1739A6FF' + - uid: 5821 components: - type: Transform - pos: 48.5,1.5 + rot: 3.141592653589793 rad + pos: 4.5,27.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7072 + color: '#1739A6FF' + - uid: 5824 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 49.5,2.5 + rot: 3.141592653589793 rad + pos: 4.5,24.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7073 + color: '#1739A6FF' + - uid: 5825 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 50.5,2.5 + rot: 3.141592653589793 rad + pos: 4.5,23.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7075 + color: '#1739A6FF' + - uid: 5826 components: - type: Transform rot: 3.141592653589793 rad - pos: 33.5,10.5 + pos: 4.5,22.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7076 + color: '#1739A6FF' + - uid: 5827 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 33.5,10.5 + rot: 3.141592653589793 rad + pos: 4.5,21.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7129 + color: '#1739A6FF' + - uid: 5830 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -26.5,-8.5 + pos: 4.5,18.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7131 + color: '#1739A6FF' + - uid: 5831 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -27.5,-8.5 + rot: 3.141592653589793 rad + pos: 4.5,17.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7132 + color: '#1739A6FF' + - uid: 5832 components: - type: Transform - pos: 34.5,20.5 + rot: 3.141592653589793 rad + pos: 4.5,16.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7143 + color: '#1739A6FF' + - uid: 5833 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -28.5,-8.5 + rot: 3.141592653589793 rad + pos: 4.5,15.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7152 + color: '#1739A6FF' + - uid: 5836 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -30.5,-8.5 + rot: 3.141592653589793 rad + pos: 4.5,12.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7156 + color: '#1739A6FF' + - uid: 5838 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -31.5,-8.5 + rot: 3.141592653589793 rad + pos: 4.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7175 + color: '#1739A6FF' + - uid: 5839 components: - type: Transform rot: 3.141592653589793 rad - pos: -32.5,-9.5 + pos: 4.5,9.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7179 + color: '#1739A6FF' + - uid: 5840 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 52.5,2.5 + rot: 3.141592653589793 rad + pos: 4.5,8.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7180 + color: '#1739A6FF' + - uid: 5841 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 51.5,2.5 + rot: 3.141592653589793 rad + pos: 4.5,7.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7182 + color: '#1739A6FF' + - uid: 5842 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 54.5,2.5 + rot: 3.141592653589793 rad + pos: 4.5,6.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7197 + color: '#1739A6FF' + - uid: 5843 components: - type: Transform - pos: 36.5,21.5 + rot: 1.5707963267948966 rad + pos: 2.5,5.5 parent: 31 - - uid: 7205 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5844 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 55.5,3.5 + rot: 1.5707963267948966 rad + pos: 1.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7206 + color: '#1739A6FF' + - uid: 5845 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 54.5,3.5 + rot: 1.5707963267948966 rad + pos: 0.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7207 + color: '#1739A6FF' + - uid: 5846 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 52.5,3.5 + rot: 1.5707963267948966 rad + pos: 0.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7208 + color: '#A01E16FF' + - uid: 5847 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 50.5,3.5 + rot: 1.5707963267948966 rad + pos: 1.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7210 + color: '#A01E16FF' + - uid: 5850 components: - type: Transform rot: -1.5707963267948966 rad - pos: 51.5,3.5 + pos: 3.5,24.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7212 + color: '#A01E16FF' + - uid: 5851 components: - type: Transform rot: -1.5707963267948966 rad - pos: 53.5,2.5 + pos: 4.5,24.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7218 + color: '#A01E16FF' + - uid: 5852 components: - type: Transform rot: -1.5707963267948966 rad - pos: 53.5,3.5 + pos: 5.5,24.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7227 + color: '#A01E16FF' + - uid: 5853 components: - type: Transform - pos: 64.5,4.5 + rot: -1.5707963267948966 rad + pos: 6.5,24.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7257 + color: '#A01E16FF' + - uid: 5854 components: - type: Transform - rot: 3.141592653589793 rad - pos: -32.5,-10.5 + rot: -1.5707963267948966 rad + pos: 5.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7266 + color: '#1739A6FF' + - uid: 5855 components: - type: Transform - rot: 3.141592653589793 rad - pos: -32.5,-11.5 + rot: -1.5707963267948966 rad + pos: 6.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7267 + color: '#1739A6FF' + - uid: 5857 components: - type: Transform - rot: 3.141592653589793 rad - pos: -32.5,-12.5 + rot: -1.5707963267948966 rad + pos: 2.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7268 + color: '#1739A6FF' + - uid: 5858 components: - type: Transform - rot: 3.141592653589793 rad - pos: -32.5,-13.5 + rot: -1.5707963267948966 rad + pos: 1.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7270 + color: '#1739A6FF' + - uid: 5859 components: - type: Transform rot: -1.5707963267948966 rad - pos: -24.5,-8.5 + pos: 0.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7271 + color: '#1739A6FF' + - uid: 5860 components: - type: Transform rot: -1.5707963267948966 rad - pos: -25.5,-8.5 + pos: -0.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7309 + color: '#1739A6FF' + - uid: 5861 components: - type: Transform rot: -1.5707963267948966 rad - pos: 31.5,24.5 + pos: 1.5,24.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7311 + color: '#A01E16FF' + - uid: 5862 components: - type: Transform rot: -1.5707963267948966 rad - pos: 44.5,25.5 + pos: 0.5,24.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7312 + color: '#A01E16FF' + - uid: 5863 components: - type: Transform rot: -1.5707963267948966 rad - pos: 42.5,25.5 + pos: -0.5,24.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7346 + color: '#A01E16FF' + - uid: 5866 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 63.5,-0.5 + rot: 1.5707963267948966 rad + pos: 8.5,24.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7382 + color: '#A01E16FF' + - uid: 5872 components: - type: Transform - rot: 3.141592653589793 rad - pos: 40.5,17.5 + rot: 1.5707963267948966 rad + pos: 3.5,17.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7413 + color: '#A01E16FF' + - uid: 5873 components: - type: Transform - pos: 2.5,-19.5 + rot: 1.5707963267948966 rad + pos: 4.5,17.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7419 + color: '#A01E16FF' + - uid: 5874 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -32.5,5.5 + rot: 1.5707963267948966 rad + pos: 5.5,17.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7458 + color: '#A01E16FF' + - uid: 5875 components: - type: Transform - rot: 3.141592653589793 rad - pos: 45.5,16.5 + rot: 1.5707963267948966 rad + pos: 6.5,17.5 parent: 31 - - uid: 7464 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5876 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 32.5,16.5 + pos: 8.5,19.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7470 + color: '#1739A6FF' + - uid: 5877 components: - type: Transform - rot: 3.141592653589793 rad - pos: -24.5,-2.5 + rot: 1.5707963267948966 rad + pos: 8.5,17.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7557 + color: '#A01E16FF' + - uid: 5878 components: - type: Transform - pos: -24.5,13.5 + rot: 1.5707963267948966 rad + pos: 5.5,20.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7693 + color: '#1739A6FF' + - uid: 5879 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 41.5,25.5 + rot: 1.5707963267948966 rad + pos: 6.5,20.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7727 + color: '#1739A6FF' + - uid: 5880 components: - type: Transform - rot: 3.141592653589793 rad - pos: -37.5,4.5 + rot: 1.5707963267948966 rad + pos: 7.5,20.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7728 + color: '#1739A6FF' + - uid: 5884 components: - type: Transform - rot: 3.141592653589793 rad - pos: -37.5,5.5 + rot: -1.5707963267948966 rad + pos: 3.5,20.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7729 + color: '#1739A6FF' + - uid: 5885 components: - type: Transform - rot: 3.141592653589793 rad - pos: -37.5,6.5 + rot: -1.5707963267948966 rad + pos: 2.5,20.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7730 + color: '#1739A6FF' + - uid: 5886 components: - type: Transform - rot: 3.141592653589793 rad - pos: -35.5,6.5 + rot: -1.5707963267948966 rad + pos: 1.5,20.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7731 + color: '#1739A6FF' + - uid: 5887 components: - type: Transform - rot: 3.141592653589793 rad - pos: -35.5,7.5 + rot: -1.5707963267948966 rad + pos: 0.5,20.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7732 + color: '#1739A6FF' + - uid: 5888 components: - type: Transform - rot: 3.141592653589793 rad - pos: -35.5,8.5 + rot: -1.5707963267948966 rad + pos: -0.5,20.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7733 + color: '#1739A6FF' + - uid: 5889 components: - type: Transform - rot: 3.141592653589793 rad - pos: -35.5,9.5 + rot: -1.5707963267948966 rad + pos: -1.5,20.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7734 + color: '#1739A6FF' + - uid: 5890 components: - type: Transform - rot: 3.141592653589793 rad - pos: -35.5,10.5 + rot: -1.5707963267948966 rad + pos: -2.5,20.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7735 + color: '#1739A6FF' + - uid: 5891 components: - type: Transform - rot: 3.141592653589793 rad - pos: -35.5,11.5 + rot: -1.5707963267948966 rad + pos: -3.5,20.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7736 + color: '#1739A6FF' + - uid: 5899 components: - type: Transform - rot: 3.141592653589793 rad - pos: -35.5,12.5 + rot: 1.5707963267948966 rad + pos: -21.5,19.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7738 + color: '#1739A6FF' + - uid: 5900 components: - type: Transform - rot: 3.141592653589793 rad - pos: -37.5,7.5 + rot: 1.5707963267948966 rad + pos: -19.5,19.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7739 + color: '#1739A6FF' + - uid: 5901 components: - type: Transform - rot: 3.141592653589793 rad - pos: -37.5,8.5 + pos: -18.5,20.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7740 + color: '#1739A6FF' + - uid: 5902 components: - type: Transform - rot: 3.141592653589793 rad - pos: -37.5,9.5 + pos: -18.5,21.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7741 + color: '#1739A6FF' + - uid: 5903 components: - type: Transform - rot: 3.141592653589793 rad - pos: -37.5,10.5 + pos: -18.5,22.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7742 + color: '#1739A6FF' + - uid: 5904 components: - type: Transform - rot: 3.141592653589793 rad - pos: -37.5,11.5 + pos: -18.5,23.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7743 + color: '#1739A6FF' + - uid: 5905 components: - type: Transform - rot: 3.141592653589793 rad - pos: -37.5,12.5 + pos: -18.5,24.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7801 + color: '#1739A6FF' + - uid: 5906 components: - type: Transform rot: -1.5707963267948966 rad - pos: -5.5,-19.5 + pos: -17.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7817 + color: '#1739A6FF' + - uid: 5907 components: - type: Transform rot: -1.5707963267948966 rad - pos: 51.5,25.5 + pos: -16.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7825 + color: '#1739A6FF' + - uid: 5908 components: - type: Transform rot: -1.5707963267948966 rad - pos: 33.5,25.5 + pos: -15.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7828 + color: '#1739A6FF' + - uid: 5909 components: - type: Transform rot: -1.5707963267948966 rad - pos: 47.5,25.5 + pos: -14.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7829 + color: '#1739A6FF' + - uid: 5910 components: - type: Transform rot: -1.5707963267948966 rad - pos: 45.5,25.5 + pos: -13.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7834 + color: '#1739A6FF' + - uid: 5911 components: - type: Transform - rot: 3.141592653589793 rad - pos: 64.5,11.5 + rot: -1.5707963267948966 rad + pos: -12.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8049 + color: '#1739A6FF' + - uid: 5912 components: - type: Transform rot: -1.5707963267948966 rad - pos: 43.5,25.5 + pos: -11.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 8089 + color: '#1739A6FF' + - uid: 5913 components: - type: Transform - pos: 62.5,4.5 + rot: -1.5707963267948966 rad + pos: -10.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8210 + color: '#1739A6FF' + - uid: 5914 components: - type: Transform - rot: 3.141592653589793 rad - pos: 64.5,12.5 + rot: -1.5707963267948966 rad + pos: -9.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8214 + color: '#1739A6FF' + - uid: 5915 components: - type: Transform - pos: 31.5,18.5 + rot: -1.5707963267948966 rad + pos: -8.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 8415 + color: '#1739A6FF' + - uid: 5918 components: - type: Transform - pos: 7.5,18.5 + rot: 3.141592653589793 rad + pos: -4.5,23.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 8429 + color: '#1739A6FF' + - uid: 5919 components: - type: Transform rot: 3.141592653589793 rad - pos: 37.5,15.5 + pos: -4.5,22.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8431 + color: '#1739A6FF' + - uid: 5920 components: - type: Transform - pos: 64.5,5.5 + rot: 3.141592653589793 rad + pos: -22.5,20.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8433 + color: '#1739A6FF' + - uid: 5921 components: - type: Transform - pos: 64.5,9.5 + rot: 3.141592653589793 rad + pos: -4.5,21.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8470 + color: '#1739A6FF' + - uid: 5922 components: - type: Transform rot: 3.141592653589793 rad - pos: 54.5,24.5 + pos: -22.5,21.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 8494 + color: '#1739A6FF' + - uid: 5923 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 50.5,25.5 + rot: 3.141592653589793 rad + pos: -22.5,22.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 8505 + color: '#1739A6FF' + - uid: 5930 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 38.5,25.5 + rot: 1.5707963267948966 rad + pos: 5.5,14.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 8516 + color: '#1739A6FF' + - uid: 5931 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 39.5,25.5 + rot: 1.5707963267948966 rad + pos: 7.5,14.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 8521 + color: '#1739A6FF' + - uid: 5932 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 53.5,25.5 + rot: 1.5707963267948966 rad + pos: 6.5,14.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 8564 + color: '#1739A6FF' + - uid: 5933 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 52.5,25.5 + rot: 1.5707963267948966 rad + pos: 8.5,14.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 8569 + color: '#1739A6FF' + - uid: 5934 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 34.5,25.5 + rot: 1.5707963267948966 rad + pos: 9.5,14.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 8755 + color: '#1739A6FF' + - uid: 5935 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 35.5,25.5 + rot: 1.5707963267948966 rad + pos: 10.5,14.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 8776 + color: '#1739A6FF' + - uid: 5936 components: - type: Transform rot: 1.5707963267948966 rad - pos: -10.5,10.5 + pos: 11.5,14.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 8777 + color: '#1739A6FF' + - uid: 5937 components: - type: Transform rot: 1.5707963267948966 rad - pos: -11.5,10.5 + pos: 12.5,14.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 8778 + color: '#1739A6FF' + - uid: 5942 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -12.5,10.5 + rot: 3.141592653589793 rad + pos: 8.5,7.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 8779 + color: '#1739A6FF' + - uid: 5943 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -13.5,10.5 + rot: 3.141592653589793 rad + pos: 8.5,8.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 8780 + color: '#1739A6FF' + - uid: 5945 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -14.5,10.5 + pos: 9.5,4.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 8781 + color: '#A01E16FF' + - uid: 5946 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -15.5,10.5 + pos: 9.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 8785 + color: '#A01E16FF' + - uid: 5947 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -7.5,11.5 + pos: 9.5,6.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8786 + color: '#A01E16FF' + - uid: 5948 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -8.5,11.5 + pos: 9.5,7.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8787 + color: '#A01E16FF' + - uid: 5949 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -9.5,11.5 + pos: 9.5,8.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8788 + color: '#A01E16FF' + - uid: 5954 components: - type: Transform rot: -1.5707963267948966 rad - pos: -10.5,11.5 + pos: -0.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8789 + color: '#A01E16FF' + - uid: 5956 components: - type: Transform rot: -1.5707963267948966 rad - pos: -11.5,11.5 + pos: -2.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8790 + color: '#A01E16FF' + - uid: 5957 components: - type: Transform rot: -1.5707963267948966 rad - pos: -12.5,11.5 + pos: -3.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8791 + color: '#A01E16FF' + - uid: 5958 components: - type: Transform rot: -1.5707963267948966 rad - pos: -13.5,11.5 + pos: -4.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8792 + color: '#A01E16FF' + - uid: 5959 components: - type: Transform rot: -1.5707963267948966 rad - pos: -14.5,11.5 + pos: -0.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8793 + color: '#1739A6FF' + - uid: 5961 components: - type: Transform rot: -1.5707963267948966 rad - pos: -15.5,11.5 + pos: -3.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8991 + color: '#1739A6FF' + - uid: 5962 components: - type: Transform - pos: 64.5,3.5 + rot: -1.5707963267948966 rad + pos: -1.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8992 + color: '#1739A6FF' + - uid: 5965 components: - type: Transform - pos: 64.5,1.5 + rot: 3.141592653589793 rad + pos: -5.5,4.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 9014 + color: '#A01E16FF' + - uid: 5966 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 40.5,25.5 + rot: 3.141592653589793 rad + pos: -5.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 9015 + color: '#A01E16FF' + - uid: 5967 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 49.5,25.5 + rot: 3.141592653589793 rad + pos: -5.5,6.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 9016 + color: '#A01E16FF' + - uid: 5968 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 48.5,25.5 + rot: 3.141592653589793 rad + pos: -5.5,7.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 9017 + color: '#A01E16FF' + - uid: 5970 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 46.5,25.5 + rot: 3.141592653589793 rad + pos: -5.5,9.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 9018 + color: '#A01E16FF' + - uid: 5972 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 36.5,25.5 + rot: 3.141592653589793 rad + pos: -4.5,6.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 9054 + color: '#1739A6FF' + - uid: 5974 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 61.5,14.5 + rot: 3.141592653589793 rad + pos: -4.5,8.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 9059 + color: '#1739A6FF' + - uid: 5975 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 52.5,15.5 + rot: 3.141592653589793 rad + pos: -4.5,9.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 9075 + color: '#1739A6FF' + - uid: 5984 components: - type: Transform rot: -1.5707963267948966 rad - pos: 58.5,14.5 + pos: -6.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 9176 + color: '#A01E16FF' + - uid: 5985 components: - type: Transform - pos: -37.5,-0.5 + rot: 1.5707963267948966 rad + pos: -9.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 9177 + color: '#A01E16FF' + - uid: 5990 components: - type: Transform - pos: -37.5,-2.5 + rot: 3.141592653589793 rad + pos: -5.5,13.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 9178 + color: '#1739A6FF' + - uid: 5997 components: - type: Transform - pos: -37.5,-3.5 + rot: 3.141592653589793 rad + pos: -8.5,17.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 9199 + color: '#A01E16FF' + - uid: 5998 components: - type: Transform - pos: -37.5,-1.5 + rot: 3.141592653589793 rad + pos: -8.5,18.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 9201 + color: '#A01E16FF' + - uid: 5999 components: - type: Transform - pos: -37.5,-4.5 + rot: 3.141592653589793 rad + pos: -8.5,19.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 9206 + color: '#A01E16FF' + - uid: 6003 components: - type: Transform - pos: 64.5,6.5 + rot: 3.141592653589793 rad + pos: -7.5,17.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 9222 + color: '#1739A6FF' + - uid: 6004 components: - type: Transform rot: 3.141592653589793 rad - pos: -36.5,14.5 + pos: -7.5,18.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 9223 + color: '#1739A6FF' + - uid: 6005 components: - type: Transform rot: 3.141592653589793 rad - pos: -38.5,15.5 + pos: -7.5,19.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 9349 + color: '#1739A6FF' + - uid: 6008 components: - type: Transform - pos: -25.5,17.5 + rot: 1.5707963267948966 rad + pos: -9.5,15.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 9350 + color: '#1739A6FF' + - uid: 6009 components: - type: Transform - pos: -25.5,18.5 + rot: 1.5707963267948966 rad + pos: -10.5,15.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 9351 + color: '#1739A6FF' + - uid: 6011 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -24.5,19.5 + rot: 1.5707963267948966 rad + pos: -9.5,14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 9352 + color: '#A01E16FF' + - uid: 6012 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -23.5,19.5 + rot: 1.5707963267948966 rad + pos: -11.5,14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 9377 + color: '#A01E16FF' + - uid: 6013 components: - type: Transform - pos: 64.5,7.5 + rot: 1.5707963267948966 rad + pos: -10.5,14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 9388 + color: '#A01E16FF' + - uid: 6014 components: - type: Transform - pos: 64.5,8.5 + rot: 3.141592653589793 rad + pos: -5.5,14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 9731 + color: '#1739A6FF' + - uid: 6027 components: - type: Transform rot: 3.141592653589793 rad - pos: 47.5,16.5 + pos: -12.5,17.5 parent: 31 - - uid: 9816 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6028 components: - type: Transform rot: 3.141592653589793 rad - pos: -4.5,-29.5 + pos: -12.5,18.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 9938 + color: '#1739A6FF' + - uid: 6029 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 55.5,15.5 + rot: 1.5707963267948966 rad + pos: -9.5,20.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 9941 + color: '#A01E16FF' + - uid: 6030 components: - type: Transform - pos: 64.5,2.5 + rot: 1.5707963267948966 rad + pos: -11.5,20.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 9945 + color: '#A01E16FF' + - uid: 6031 components: - type: Transform - rot: 3.141592653589793 rad - pos: 46.5,17.5 + rot: 1.5707963267948966 rad + pos: -10.5,20.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 9955 + color: '#A01E16FF' + - uid: 6034 components: - type: Transform - rot: 3.141592653589793 rad - pos: 38.5,17.5 + rot: 1.5707963267948966 rad + pos: -4.5,8.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 9956 + color: '#A01E16FF' + - uid: 6035 components: - type: Transform - rot: 3.141592653589793 rad - pos: 39.5,16.5 + rot: 1.5707963267948966 rad + pos: -3.5,8.5 parent: 31 - - uid: 10024 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6036 components: - type: Transform rot: 1.5707963267948966 rad - pos: 21.5,-11.5 + pos: -2.5,8.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10026 + color: '#A01E16FF' + - uid: 6037 components: - type: Transform rot: 1.5707963267948966 rad - pos: 20.5,-11.5 + pos: -1.5,8.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10031 + color: '#A01E16FF' + - uid: 6038 components: - type: Transform - pos: 62.5,6.5 + rot: 1.5707963267948966 rad + pos: -3.5,7.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10039 + color: '#1739A6FF' + - uid: 6039 components: - type: Transform rot: 1.5707963267948966 rad - pos: 19.5,-11.5 + pos: -2.5,7.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10102 + color: '#1739A6FF' + - uid: 6040 components: - type: Transform - rot: 3.141592653589793 rad - pos: 34.5,17.5 + rot: 1.5707963267948966 rad + pos: -1.5,7.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10105 + color: '#1739A6FF' + - uid: 6045 components: - type: Transform rot: -1.5707963267948966 rad - pos: 54.5,15.5 + pos: -5.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10107 + color: '#1739A6FF' + - uid: 6046 components: - type: Transform rot: -1.5707963267948966 rad - pos: 35.5,16.5 + pos: -6.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10120 + color: '#1739A6FF' + - uid: 6047 components: - type: Transform - rot: 3.141592653589793 rad - pos: 55.5,22.5 + rot: -1.5707963267948966 rad + pos: -7.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10122 + color: '#1739A6FF' + - uid: 6048 components: - type: Transform - rot: 3.141592653589793 rad - pos: 43.5,16.5 + rot: -1.5707963267948966 rad + pos: -8.5,5.5 parent: 31 - - uid: 10247 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6049 components: - type: Transform - pos: -37.5,-7.5 + rot: -1.5707963267948966 rad + pos: -9.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10248 + color: '#1739A6FF' + - uid: 6052 components: - type: Transform - pos: -37.5,-6.5 + rot: -1.5707963267948966 rad + pos: -12.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10249 + color: '#1739A6FF' + - uid: 6053 components: - type: Transform - pos: -35.5,-7.5 + rot: -1.5707963267948966 rad + pos: -13.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10250 + color: '#1739A6FF' + - uid: 6054 components: - type: Transform - pos: -35.5,-8.5 + rot: -1.5707963267948966 rad + pos: -14.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10378 + color: '#1739A6FF' + - uid: 6055 components: - type: Transform rot: -1.5707963267948966 rad - pos: 3.5,-29.5 + pos: -15.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10379 + color: '#1739A6FF' + - uid: 6056 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -23.5,5.5 + parent: 31 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6057 components: - type: Transform rot: -1.5707963267948966 rad - pos: 2.5,-29.5 + pos: -17.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10380 + color: '#1739A6FF' + - uid: 6058 components: - type: Transform rot: -1.5707963267948966 rad - pos: 1.5,-29.5 + pos: -18.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10382 + color: '#1739A6FF' + - uid: 6059 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 1.5,-28.5 + rot: -1.5707963267948966 rad + pos: -19.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10383 + color: '#1739A6FF' + - uid: 6060 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 0.5,-28.5 + rot: -1.5707963267948966 rad + pos: -20.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10384 + color: '#1739A6FF' + - uid: 6061 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -0.5,-28.5 + rot: -1.5707963267948966 rad + pos: -21.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10387 + color: '#1739A6FF' + - uid: 6062 components: - type: Transform - rot: 3.141592653589793 rad - pos: -24.5,-4.5 + rot: -1.5707963267948966 rad + pos: -22.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10388 + color: '#1739A6FF' + - uid: 6063 components: - type: Transform - rot: 3.141592653589793 rad - pos: -24.5,-5.5 + rot: -1.5707963267948966 rad + pos: -6.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10389 + color: '#A01E16FF' + - uid: 6064 components: - type: Transform - rot: 3.141592653589793 rad - pos: -24.5,-6.5 + rot: -1.5707963267948966 rad + pos: -7.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10390 + color: '#A01E16FF' + - uid: 6065 components: - type: Transform - rot: 3.141592653589793 rad - pos: -24.5,-7.5 + rot: -1.5707963267948966 rad + pos: -8.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10391 + color: '#A01E16FF' + - uid: 6066 components: - type: Transform - rot: 3.141592653589793 rad - pos: -24.5,-8.5 + rot: -1.5707963267948966 rad + pos: -9.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10392 + color: '#A01E16FF' + - uid: 6067 components: - type: Transform - rot: 3.141592653589793 rad - pos: -24.5,-9.5 + rot: -1.5707963267948966 rad + pos: -10.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10393 + color: '#A01E16FF' + - uid: 6068 components: - type: Transform - rot: 3.141592653589793 rad - pos: -24.5,-10.5 + rot: -1.5707963267948966 rad + pos: -11.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10394 + color: '#A01E16FF' + - uid: 6069 components: - type: Transform - rot: 3.141592653589793 rad - pos: -24.5,-11.5 + rot: -1.5707963267948966 rad + pos: -12.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10396 + color: '#A01E16FF' + - uid: 6070 components: - type: Transform - rot: 3.141592653589793 rad - pos: -24.5,-13.5 + rot: -1.5707963267948966 rad + pos: -13.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10397 + color: '#A01E16FF' + - uid: 6072 components: - type: Transform - rot: 3.141592653589793 rad - pos: -23.5,-4.5 + rot: -1.5707963267948966 rad + pos: -15.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10398 + color: '#A01E16FF' + - uid: 6073 components: - type: Transform - rot: 3.141592653589793 rad - pos: -23.5,-5.5 + rot: -1.5707963267948966 rad + pos: -16.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10399 + color: '#A01E16FF' + - uid: 6074 components: - type: Transform - rot: 3.141592653589793 rad - pos: -23.5,-6.5 + rot: -1.5707963267948966 rad + pos: -17.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10400 + color: '#A01E16FF' + - uid: 6075 components: - type: Transform - rot: 3.141592653589793 rad - pos: -23.5,-7.5 + rot: -1.5707963267948966 rad + pos: -18.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10402 + color: '#A01E16FF' + - uid: 6077 components: - type: Transform - rot: 3.141592653589793 rad - pos: -23.5,-9.5 + rot: -1.5707963267948966 rad + pos: -20.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10403 + color: '#A01E16FF' + - uid: 6078 components: - type: Transform - rot: 3.141592653589793 rad - pos: -23.5,-10.5 + rot: -1.5707963267948966 rad + pos: -21.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10405 + color: '#A01E16FF' + - uid: 6081 components: - type: Transform - rot: 3.141592653589793 rad - pos: -23.5,-12.5 + rot: 1.5707963267948966 rad + pos: -10.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10412 + color: '#1739A6FF' + - uid: 6092 components: - type: Transform - rot: 3.141592653589793 rad - pos: 44.5,17.5 + pos: -16.5,4.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10423 + color: '#1739A6FF' + - uid: 6093 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 63.5,13.5 + rot: 3.141592653589793 rad + pos: -24.5,6.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10432 + color: '#1739A6FF' + - uid: 6094 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 0.5,-14.5 + rot: 3.141592653589793 rad + pos: -24.5,7.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10433 + color: '#1739A6FF' + - uid: 6097 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -0.5,-14.5 + rot: -1.5707963267948966 rad + pos: -24.5,9.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10434 + color: '#A01E16FF' + - uid: 6102 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -1.5,-14.5 + rot: -1.5707963267948966 rad + pos: -25.5,9.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10443 + color: '#A01E16FF' + - uid: 6103 components: - type: Transform rot: -1.5707963267948966 rad - pos: -20.5,-12.5 + pos: -26.5,9.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10449 + color: '#A01E16FF' + - uid: 6104 components: - type: Transform rot: -1.5707963267948966 rad - pos: 59.5,14.5 + pos: -25.5,8.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10450 + color: '#1739A6FF' + - uid: 6105 components: - type: Transform - pos: -8.5,-23.5 + rot: -1.5707963267948966 rad + pos: -26.5,8.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10451 + color: '#1739A6FF' + - uid: 6107 components: - type: Transform - pos: -8.5,-24.5 + rot: 3.141592653589793 rad + pos: -23.5,8.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10452 + color: '#A01E16FF' + - uid: 6108 components: - type: Transform - pos: -8.5,-25.5 + rot: 3.141592653589793 rad + pos: -23.5,7.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10453 + color: '#A01E16FF' + - uid: 6109 components: - type: Transform - pos: -8.5,-26.5 + rot: 3.141592653589793 rad + pos: -23.5,6.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10454 + color: '#A01E16FF' + - uid: 6110 components: - type: Transform - pos: -8.5,-28.5 + rot: 3.141592653589793 rad + pos: -23.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10455 + color: '#A01E16FF' + - uid: 6111 components: - type: Transform - pos: -8.5,-29.5 + rot: 3.141592653589793 rad + pos: -23.5,4.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10456 + color: '#A01E16FF' + - uid: 6113 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -9.5,-27.5 + pos: -16.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10457 + color: '#1739A6FF' + - uid: 6128 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -10.5,-27.5 + rot: 3.141592653589793 rad + pos: -16.5,2.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10458 + color: '#1739A6FF' + - uid: 6131 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -11.5,-27.5 + rot: 1.5707963267948966 rad + pos: -27.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10459 + color: '#A01E16FF' + - uid: 6133 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -12.5,-27.5 + rot: 1.5707963267948966 rad + pos: -25.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10460 + color: '#A01E16FF' + - uid: 6134 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -13.5,-27.5 + rot: 1.5707963267948966 rad + pos: -24.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10461 + color: '#A01E16FF' + - uid: 6139 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -14.5,-27.5 + rot: 1.5707963267948966 rad + pos: -30.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10462 + color: '#1739A6FF' + - uid: 6140 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -15.5,-27.5 + rot: 1.5707963267948966 rad + pos: -31.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10469 + color: '#1739A6FF' + - uid: 6142 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 0.5,-16.5 + rot: 1.5707963267948966 rad + pos: -33.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10470 + color: '#1739A6FF' + - uid: 6143 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -0.5,-16.5 + rot: 1.5707963267948966 rad + pos: -34.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10471 + color: '#1739A6FF' + - uid: 6145 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -1.5,-16.5 + rot: 1.5707963267948966 rad + pos: -31.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10472 + color: '#A01E16FF' + - uid: 6146 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -2.5,-16.5 + rot: 1.5707963267948966 rad + pos: -32.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10479 + color: '#A01E16FF' + - uid: 6147 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 8.5,-17.5 + rot: 1.5707963267948966 rad + pos: -33.5,3.5 parent: 31 - - uid: 10483 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6148 components: - type: Transform - pos: -7.5,-20.5 + rot: 1.5707963267948966 rad + pos: -34.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10484 + color: '#A01E16FF' + - uid: 6149 components: - type: Transform - pos: -7.5,-21.5 + rot: 1.5707963267948966 rad + pos: -35.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10485 + color: '#A01E16FF' + - uid: 6153 components: - type: Transform - pos: -7.5,-22.5 + pos: -35.5,4.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10486 + color: '#1739A6FF' + - uid: 6154 components: - type: Transform - pos: -7.5,-23.5 + pos: -35.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10487 + color: '#1739A6FF' + - uid: 6155 components: - type: Transform - pos: -7.5,-24.5 + pos: -35.5,2.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10488 + color: '#1739A6FF' + - uid: 6156 components: - type: Transform - pos: -7.5,-25.5 + pos: -35.5,1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10489 + color: '#1739A6FF' + - uid: 6157 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -8.5,-26.5 + pos: -35.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10490 + color: '#1739A6FF' + - uid: 6158 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -9.5,-26.5 + pos: -35.5,-0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10491 + color: '#1739A6FF' + - uid: 6159 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -10.5,-26.5 + pos: -35.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10492 + color: '#1739A6FF' + - uid: 6160 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -11.5,-26.5 + pos: -35.5,-2.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10493 + color: '#1739A6FF' + - uid: 6161 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -12.5,-26.5 + pos: -35.5,-3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10494 + color: '#1739A6FF' + - uid: 6162 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -13.5,-26.5 + rot: 1.5707963267948966 rad + pos: -39.5,-5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10507 + color: '#A01E16FF' + - uid: 6163 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 45.5,16.5 + pos: -35.5,-5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10508 + color: '#1739A6FF' + - uid: 6164 components: - type: Transform - pos: 64.5,0.5 + pos: -36.5,2.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10509 + color: '#A01E16FF' + - uid: 6165 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 43.5,16.5 + pos: -36.5,1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10510 + color: '#A01E16FF' + - uid: 6167 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 41.5,16.5 + pos: -25.5,15.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10511 + color: '#1739A6FF' + - uid: 6170 components: - type: Transform - rot: 3.141592653589793 rad - pos: 41.5,16.5 + rot: 1.5707963267948966 rad + pos: 32.5,3.5 parent: 31 - - uid: 10514 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6171 components: - type: Transform - rot: 3.141592653589793 rad - pos: 42.5,17.5 + pos: 32.5,6.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10516 + color: '#1739A6FF' + - uid: 6172 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 37.5,16.5 + pos: 32.5,7.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10517 + color: '#1739A6FF' + - uid: 6173 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 39.5,16.5 + pos: 32.5,8.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10914 + color: '#1739A6FF' + - uid: 6176 components: - type: Transform - pos: 49.5,-2.5 + pos: 33.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10915 + color: '#A01E16FF' + - uid: 6177 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 50.5,-3.5 + pos: 33.5,4.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10916 + color: '#A01E16FF' + - uid: 6178 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 51.5,-3.5 + pos: 33.5,6.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10917 + color: '#A01E16FF' + - uid: 6179 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 52.5,-3.5 + pos: 33.5,7.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10918 + color: '#A01E16FF' + - uid: 6185 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 54.5,-3.5 + rot: 1.5707963267948966 rad + pos: 34.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10919 + color: '#A01E16FF' + - uid: 6186 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 55.5,-3.5 + pos: 32.5,4.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10920 + color: '#1739A6FF' + - uid: 6187 components: - type: Transform - rot: 3.141592653589793 rad - pos: 53.5,-4.5 + pos: 32.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10921 + color: '#1739A6FF' + - uid: 6188 components: - type: Transform - rot: 3.141592653589793 rad - pos: 53.5,-5.5 + pos: 32.5,2.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10922 + color: '#1739A6FF' + - uid: 6189 components: - type: Transform - rot: 3.141592653589793 rad - pos: 53.5,-6.5 + pos: 32.5,1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10923 + color: '#1739A6FF' + - uid: 6190 components: - type: Transform - rot: 3.141592653589793 rad - pos: 53.5,-7.5 + pos: 32.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10924 + color: '#1739A6FF' + - uid: 6191 components: - type: Transform - rot: 3.141592653589793 rad - pos: 53.5,-8.5 + pos: 32.5,-0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10925 + color: '#1739A6FF' + - uid: 6192 components: - type: Transform - rot: 3.141592653589793 rad - pos: 53.5,-9.5 + pos: 32.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10926 + color: '#1739A6FF' + - uid: 6193 components: - type: Transform - rot: 3.141592653589793 rad - pos: 53.5,-10.5 + pos: 33.5,2.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10927 + color: '#A01E16FF' + - uid: 6194 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 54.5,-7.5 + pos: 33.5,1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10928 + color: '#A01E16FF' + - uid: 6195 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 55.5,-7.5 + pos: 33.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10932 + color: '#A01E16FF' + - uid: 6196 components: - type: Transform - pos: 48.5,-2.5 + pos: 33.5,-0.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10933 + color: '#A01E16FF' + - uid: 6200 components: - type: Transform - pos: 48.5,-3.5 + rot: -1.5707963267948966 rad + pos: 40.5,6.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10934 + color: '#1739A6FF' + - uid: 6201 components: - type: Transform - pos: 48.5,-4.5 + rot: 1.5707963267948966 rad + pos: 41.5,6.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10935 + color: '#1739A6FF' + - uid: 6202 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 49.5,-5.5 + rot: 1.5707963267948966 rad + pos: 42.5,6.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10936 + color: '#1739A6FF' + - uid: 6203 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 50.5,-5.5 + rot: 1.5707963267948966 rad + pos: 43.5,6.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10937 + color: '#1739A6FF' + - uid: 6206 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 52.5,-5.5 + pos: 43.5,4.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10938 + color: '#A01E16FF' + - uid: 6207 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 53.5,-5.5 + pos: 43.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10939 + color: '#A01E16FF' + - uid: 6208 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 54.5,-5.5 + pos: 43.5,6.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10940 + color: '#A01E16FF' + - uid: 6209 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 55.5,-5.5 + rot: 3.141592653589793 rad + pos: 43.5,7.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10941 + color: '#A01E16FF' + - uid: 6217 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 56.5,-5.5 + rot: 3.141592653589793 rad + pos: 44.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10942 + color: '#1739A6FF' + - uid: 6218 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 57.5,-5.5 + rot: 3.141592653589793 rad + pos: 44.5,4.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10944 + color: '#1739A6FF' + - uid: 6219 components: - type: Transform - pos: 48.5,-6.5 + rot: 3.141592653589793 rad + pos: 44.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10945 + color: '#1739A6FF' + - uid: 6220 components: - type: Transform - pos: 48.5,-7.5 + rot: 1.5707963267948966 rad + pos: 44.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10946 + color: '#A01E16FF' + - uid: 6221 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 49.5,-8.5 + rot: 1.5707963267948966 rad + pos: 45.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10947 + color: '#A01E16FF' + - uid: 6222 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 50.5,-8.5 + rot: 1.5707963267948966 rad + pos: 46.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10948 + color: '#A01E16FF' + - uid: 6224 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 51.5,-8.5 + rot: 1.5707963267948966 rad + pos: 48.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10949 + color: '#A01E16FF' + - uid: 6225 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 52.5,-8.5 + rot: 1.5707963267948966 rad + pos: 45.5,2.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10950 + color: '#1739A6FF' + - uid: 6227 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 53.5,-8.5 + rot: 1.5707963267948966 rad + pos: 47.5,2.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10951 + color: '#1739A6FF' + - uid: 6229 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 54.5,-8.5 + pos: 48.5,-0.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10952 + color: '#1739A6FF' + - uid: 6233 components: - type: Transform - rot: 3.141592653589793 rad - pos: 47.5,-9.5 + pos: 48.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10953 + color: '#1739A6FF' + - uid: 6234 components: - type: Transform - rot: 3.141592653589793 rad - pos: 47.5,-10.5 + pos: 49.5,2.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11063 + color: '#A01E16FF' + - uid: 6235 components: - type: Transform - pos: 46.5,20.5 + pos: 49.5,1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11064 + color: '#A01E16FF' + - uid: 6236 components: - type: Transform - pos: 47.5,21.5 + pos: 49.5,0.5 parent: 31 - - uid: 11065 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6237 components: - type: Transform - pos: 47.5,20.5 + pos: 49.5,-0.5 parent: 31 - - uid: 11066 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6238 components: - type: Transform - pos: 47.5,19.5 + pos: 49.5,-1.5 parent: 31 - - uid: 11067 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6239 components: - type: Transform - pos: 47.5,18.5 + pos: 48.5,0.5 parent: 31 - - uid: 11068 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6240 components: - type: Transform - pos: 46.5,19.5 + rot: -1.5707963267948966 rad + pos: 42.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11082 + color: '#A01E16FF' + - uid: 6247 components: - type: Transform rot: -1.5707963267948966 rad - pos: 45.5,13.5 + pos: 47.5,12.5 parent: 31 - - uid: 11171 + - uid: 6254 components: - type: Transform rot: 3.141592653589793 rad - pos: 62.5,3.5 + pos: 32.5,9.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11292 + color: '#1739A6FF' + - uid: 6260 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 46.5,12.5 + pos: 22.5,14.5 parent: 31 - - uid: 11293 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6263 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 45.5,11.5 + pos: 38.5,2.5 parent: 31 - - uid: 11303 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6264 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 36.5,14.5 + pos: 38.5,1.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11304 + color: '#A01E16FF' + - uid: 6269 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 35.5,14.5 + rot: 3.141592653589793 rad + pos: 37.5,4.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11401 + color: '#1739A6FF' + - uid: 6270 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -38.5,-5.5 + rot: 3.141592653589793 rad + pos: 37.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11402 + color: '#1739A6FF' + - uid: 6271 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -36.5,-4.5 + rot: 3.141592653589793 rad + pos: 37.5,2.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11403 + color: '#1739A6FF' + - uid: 6272 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -37.5,-4.5 + rot: 3.141592653589793 rad + pos: 37.5,1.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11404 + color: '#1739A6FF' + - uid: 6273 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -38.5,-4.5 + rot: 3.141592653589793 rad + pos: 37.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11405 + color: '#1739A6FF' + - uid: 6277 components: - type: Transform rot: 1.5707963267948966 rad - pos: -39.5,-4.5 + pos: 47.5,13.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11437 + color: '#00FF00FF' + - uid: 6280 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 36.5,15.5 + rot: 1.5707963267948966 rad + pos: 49.5,13.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11469 + color: '#00FF00FF' + - uid: 6281 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 60.5,12.5 + rot: 1.5707963267948966 rad + pos: 46.5,13.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11474 + color: '#00FF00FF' + - uid: 6288 components: - type: Transform rot: -1.5707963267948966 rad - pos: 56.5,15.5 + pos: 40.5,13.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11476 + color: '#234FDEFF' + - uid: 6315 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 53.5,15.5 + rot: 1.5707963267948966 rad + pos: -7.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11478 + color: '#A01E16FF' + - uid: 6349 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 60.5,14.5 + rot: 1.5707963267948966 rad + pos: 44.5,9.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11554 + color: '#A01E16FF' + - uid: 6363 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -10.5,-14.5 + pos: 37.5,21.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11555 + - uid: 6384 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -11.5,-14.5 + rot: 1.5707963267948966 rad + pos: 47.5,11.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11556 + color: '#00FF00FF' + - uid: 6392 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -12.5,-14.5 + pos: 43.5,8.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11557 + color: '#A01E16FF' + - uid: 6409 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -13.5,-14.5 + rot: 3.141592653589793 rad + pos: -22.5,-17.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11558 + color: '#A01E16FF' + - uid: 6411 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -14.5,-14.5 + rot: 1.5707963267948966 rad + pos: 45.5,9.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11559 + color: '#A01E16FF' + - uid: 6435 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -15.5,-14.5 + rot: 1.5707963267948966 rad + pos: 49.5,11.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11560 + color: '#00FF00FF' + - uid: 6439 components: - type: Transform rot: -1.5707963267948966 rad - pos: -16.5,-14.5 + pos: -11.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11561 + color: '#A01E16FF' + - uid: 6465 components: - type: Transform rot: -1.5707963267948966 rad - pos: -17.5,-14.5 + pos: -14.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11562 + color: '#A01E16FF' + - uid: 6480 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -18.5,-14.5 + rot: 1.5707963267948966 rad + pos: -21.5,-18.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11563 + color: '#A01E16FF' + - uid: 6481 components: - type: Transform rot: -1.5707963267948966 rad - pos: -19.5,-14.5 + pos: 2.5,30.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11564 + color: '#1739A6FF' + - uid: 6490 components: - type: Transform rot: -1.5707963267948966 rad - pos: -20.5,-14.5 + pos: -9.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11565 + color: '#A01E16FF' + - uid: 6534 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -21.5,-14.5 + rot: 1.5707963267948966 rad + pos: 46.5,9.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11566 + color: '#A01E16FF' + - uid: 6549 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -22.5,-14.5 + pos: 46.5,18.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11568 + color: '#990000FF' + - uid: 6558 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -24.5,-18.5 + rot: 3.141592653589793 rad + pos: 37.5,16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11575 + color: '#234FDEFF' + - uid: 6559 components: - type: Transform - rot: 3.141592653589793 rad - pos: -23.5,-19.5 + pos: 44.5,7.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11576 + color: '#1739A6FF' + - uid: 6562 components: - type: Transform - rot: 3.141592653589793 rad - pos: -23.5,-20.5 + rot: -1.5707963267948966 rad + pos: 46.5,8.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11577 + color: '#1739A6FF' + - uid: 6569 components: - type: Transform - rot: 3.141592653589793 rad - pos: -22.5,-19.5 + rot: -1.5707963267948966 rad + pos: 45.5,8.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11578 + color: '#1739A6FF' + - uid: 6572 components: - type: Transform - rot: 3.141592653589793 rad - pos: -22.5,-20.5 + rot: -1.5707963267948966 rad + pos: 24.5,16.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11579 + color: '#1739A6FF' + - uid: 6573 components: - type: Transform - rot: 3.141592653589793 rad - pos: -22.5,-21.5 + rot: -1.5707963267948966 rad + pos: 25.5,16.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11580 + color: '#1739A6FF' + - uid: 6577 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -24.5,-21.5 + pos: 37.5,22.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11581 + - uid: 6579 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -25.5,-21.5 + pos: 34.5,21.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11584 + - uid: 6604 components: - type: Transform - pos: -25.5,-23.5 + rot: -1.5707963267948966 rad + pos: -8.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11585 + color: '#A01E16FF' + - uid: 6619 components: - type: Transform - pos: -26.5,-23.5 + rot: -1.5707963267948966 rad + pos: -10.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11586 + color: '#A01E16FF' + - uid: 6634 components: - type: Transform - pos: -26.5,-22.5 + rot: -1.5707963267948966 rad + pos: -13.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11587 + color: '#A01E16FF' + - uid: 6636 components: - type: Transform rot: -1.5707963267948966 rad - pos: -24.5,-22.5 + pos: 41.5,13.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11588 + color: '#234FDEFF' + - uid: 6642 components: - type: Transform rot: -1.5707963267948966 rad - pos: -23.5,-22.5 + pos: -12.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11589 + color: '#A01E16FF' + - uid: 6693 components: - type: Transform rot: 3.141592653589793 rad - pos: -23.5,-22.5 + pos: -23.5,-17.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11593 + color: '#1739A6FF' + - uid: 6696 components: - type: Transform - pos: -22.5,-26.5 + rot: 3.141592653589793 rad + pos: -23.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11594 + color: '#1739A6FF' + - uid: 6704 components: - type: Transform - pos: -22.5,-24.5 + pos: 34.5,22.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11598 + - uid: 6712 components: - type: Transform rot: -1.5707963267948966 rad - pos: -28.5,-21.5 + pos: -18.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11599 + color: '#A01E16FF' + - uid: 6713 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -28.5,-22.5 + rot: 3.141592653589793 rad + pos: -23.5,-15.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11600 + color: '#1739A6FF' + - uid: 6714 components: - type: Transform rot: -1.5707963267948966 rad - pos: -29.5,-22.5 + pos: -21.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11601 + color: '#A01E16FF' + - uid: 6715 components: - type: Transform rot: -1.5707963267948966 rad - pos: -29.5,-21.5 + pos: -20.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11602 + color: '#A01E16FF' + - uid: 6716 components: - type: Transform rot: -1.5707963267948966 rad - pos: -30.5,-21.5 - parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11606 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -27.5,-21.5 + pos: -19.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11607 + color: '#A01E16FF' + - uid: 6717 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -27.5,-22.5 + rot: -1.5707963267948966 rad + pos: -17.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11610 + color: '#A01E16FF' + - uid: 6718 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -26.5,-22.5 + rot: -1.5707963267948966 rad + pos: -15.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11759 + color: '#A01E16FF' + - uid: 6719 components: - type: Transform - rot: 3.141592653589793 rad - pos: 55.5,21.5 + rot: -1.5707963267948966 rad + pos: -16.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11760 + color: '#A01E16FF' + - uid: 6727 components: - type: Transform - rot: 3.141592653589793 rad - pos: 55.5,20.5 + rot: -1.5707963267948966 rad + pos: 45.5,12.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 11761 + - uid: 6734 components: - type: Transform - rot: 3.141592653589793 rad - pos: 55.5,19.5 + pos: 30.5,22.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 11762 + - uid: 6741 components: - type: Transform - rot: 3.141592653589793 rad - pos: 55.5,18.5 + rot: -1.5707963267948966 rad + pos: 64.5,2.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11763 + color: '#0055CCFF' + - uid: 6749 components: - type: Transform - rot: 3.141592653589793 rad - pos: 55.5,17.5 + rot: -1.5707963267948966 rad + pos: 37.5,25.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 11764 + - uid: 6765 components: - type: Transform - rot: 3.141592653589793 rad - pos: 55.5,16.5 + rot: 1.5707963267948966 rad + pos: 70.5,9.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 11765 + - uid: 6766 components: - type: Transform - rot: 3.141592653589793 rad - pos: 55.5,15.5 + rot: 1.5707963267948966 rad + pos: 66.5,9.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 11766 + - uid: 6830 components: - type: Transform - rot: 3.141592653589793 rad - pos: 55.5,14.5 + pos: 68.5,8.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 11767 + - uid: 6842 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 56.5,13.5 + pos: 68.5,7.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 11768 + - uid: 6895 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 57.5,13.5 + rot: -1.5707963267948966 rad + pos: 23.5,16.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11769 + color: '#1739A6FF' + - uid: 6896 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 58.5,13.5 + rot: -1.5707963267948966 rad + pos: 25.5,17.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11802 + color: '#A01E16FF' + - uid: 6925 components: - type: Transform rot: -1.5707963267948966 rad - pos: 72.5,10.5 + pos: 62.5,12.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 11803 + - uid: 6926 components: - type: Transform rot: -1.5707963267948966 rad - pos: 73.5,10.5 + pos: 61.5,12.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 11804 + - uid: 6945 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 74.5,10.5 + pos: 48.5,1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11805 + color: '#1739A6FF' + - uid: 6973 components: - type: Transform rot: 3.141592653589793 rad - pos: 75.5,9.5 + pos: 48.5,-21.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11870 + color: '#1739A6FF' + - uid: 6976 components: - type: Transform - rot: 3.141592653589793 rad - pos: 72.5,2.5 + pos: -8.5,16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11871 + color: '#A01E16FF' + - uid: 6989 components: - type: Transform rot: 3.141592653589793 rad - pos: 72.5,1.5 + pos: 53.5,-11.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11872 + color: '#A01E16FF' + - uid: 7029 components: - type: Transform rot: 1.5707963267948966 rad - pos: 69.5,-1.5 + pos: 52.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11883 + color: '#A01E16FF' + - uid: 7036 components: - type: Transform - pos: 66.5,-0.5 + rot: 3.141592653589793 rad + pos: 48.5,-17.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 12119 + color: '#1739A6FF' + - uid: 7072 components: - type: Transform - pos: 66.5,7.5 + rot: -1.5707963267948966 rad + pos: 49.5,2.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 12120 + color: '#1739A6FF' + - uid: 7073 components: - type: Transform - pos: 66.5,8.5 + rot: -1.5707963267948966 rad + pos: 50.5,2.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 12126 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 66.5,11.5 - parent: 31 - - uid: 12127 + color: '#1739A6FF' + - uid: 7075 components: - type: Transform rot: 3.141592653589793 rad - pos: 66.5,12.5 - parent: 31 - - uid: 12143 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 46.5,15.5 + pos: 33.5,10.5 parent: 31 - - uid: 12144 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 7076 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 44.5,15.5 + rot: 1.5707963267948966 rad + pos: 33.5,10.5 parent: 31 - - uid: 12145 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 7098 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 42.5,15.5 + rot: 3.141592653589793 rad + pos: 43.5,15.5 parent: 31 - - uid: 12146 + - type: AtmosPipeColor + color: '#F88379FF' + - uid: 7132 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 40.5,15.5 + pos: 34.5,20.5 parent: 31 - - uid: 12147 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7175 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 38.5,15.5 + rot: 3.141592653589793 rad + pos: -32.5,-9.5 parent: 31 - - uid: 12149 + - type: AtmosPipeColor + color: '#DE2D23FF' + - uid: 7179 components: - type: Transform - rot: 3.141592653589793 rad - pos: 34.5,12.5 + rot: -1.5707963267948966 rad + pos: 52.5,2.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 12150 + color: '#1739A6FF' + - uid: 7180 components: - type: Transform - rot: 3.141592653589793 rad - pos: 31.5,15.5 + rot: -1.5707963267948966 rad + pos: 51.5,2.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 12151 + color: '#1739A6FF' + - uid: 7182 components: - type: Transform - rot: 3.141592653589793 rad - pos: 31.5,14.5 + rot: -1.5707963267948966 rad + pos: 54.5,2.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 12541 + color: '#1739A6FF' + - uid: 7197 components: - type: Transform - pos: 38.5,21.5 + pos: 36.5,21.5 parent: 31 - - uid: 12542 + - uid: 7205 components: - type: Transform - pos: 40.5,21.5 + rot: -1.5707963267948966 rad + pos: 55.5,3.5 parent: 31 - - uid: 12543 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 7206 components: - type: Transform - pos: 42.5,21.5 + rot: -1.5707963267948966 rad + pos: 54.5,3.5 parent: 31 - - uid: 12544 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 7207 components: - type: Transform - pos: 44.5,21.5 + rot: -1.5707963267948966 rad + pos: 52.5,3.5 parent: 31 - - uid: 12545 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 7208 components: - type: Transform - pos: 46.5,21.5 + rot: -1.5707963267948966 rad + pos: 50.5,3.5 parent: 31 - - uid: 12546 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 7210 components: - type: Transform - pos: 46.5,22.5 + rot: -1.5707963267948966 rad + pos: 51.5,3.5 parent: 31 - - uid: 12547 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 7212 components: - type: Transform - pos: 44.5,22.5 + rot: -1.5707963267948966 rad + pos: 53.5,2.5 parent: 31 - - uid: 12548 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 7218 components: - type: Transform - pos: 42.5,22.5 + rot: -1.5707963267948966 rad + pos: 53.5,3.5 parent: 31 - - uid: 12549 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 7227 components: - type: Transform - pos: 40.5,22.5 + pos: 64.5,4.5 parent: 31 - - uid: 12550 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 7257 components: - type: Transform - pos: 38.5,22.5 + rot: 3.141592653589793 rad + pos: -32.5,-10.5 parent: 31 - - uid: 12551 + - type: AtmosPipeColor + color: '#DE2D23FF' + - uid: 7266 components: - type: Transform - pos: 36.5,22.5 + rot: 3.141592653589793 rad + pos: -32.5,-11.5 parent: 31 -- proto: GasPipeTJunction - entities: - - uid: 53 + - type: AtmosPipeColor + color: '#DE2D23FF' + - uid: 7267 components: - type: Transform rot: 3.141592653589793 rad - pos: 10.5,25.5 + pos: -32.5,-12.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 97 + color: '#DE2D23FF' + - uid: 7268 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 4.5,-5.5 + rot: 3.141592653589793 rad + pos: -32.5,-13.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 351 + color: '#DE2D23FF' + - uid: 7309 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -23.5,-11.5 + rot: -1.5707963267948966 rad + pos: 31.5,24.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 536 + - uid: 7311 components: - type: Transform - pos: -3.5,-16.5 + rot: -1.5707963267948966 rad + pos: 44.5,25.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 926 + - uid: 7312 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -9.5,-21.5 + rot: -1.5707963267948966 rad + pos: 42.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 1231 + color: '#990000FF' + - uid: 7346 components: - type: Transform rot: -1.5707963267948966 rad - pos: 39.5,5.5 + pos: 63.5,-0.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 1723 + - uid: 7382 components: - type: Transform - pos: 37.5,5.5 + rot: 3.141592653589793 rad + pos: 40.5,17.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 1796 + color: '#990000FF' + - uid: 7413 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -24.5,-12.5 + pos: 2.5,-19.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 2282 + color: '#A01E16FF' + - uid: 7419 components: - type: Transform rot: -1.5707963267948966 rad - pos: -5.5,15.5 + pos: -32.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 2868 + color: '#1739A6FF' + - uid: 7458 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,16.5 + parent: 31 + - uid: 7464 components: - type: Transform rot: 1.5707963267948966 rad - pos: 4.5,-19.5 + pos: 32.5,16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 3386 + color: '#990000FF' + - uid: 7557 + components: + - type: Transform + pos: -24.5,13.5 + parent: 31 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 7693 components: - type: Transform rot: -1.5707963267948966 rad - pos: 18.5,-14.5 + pos: 41.5,25.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 3389 + - uid: 7727 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 19.5,-15.5 + rot: 3.141592653589793 rad + pos: -37.5,4.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 3390 + color: '#A01E16FF' + - uid: 7728 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -24.5,8.5 + rot: 3.141592653589793 rad + pos: -37.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 3420 + color: '#A01E16FF' + - uid: 7729 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 18.5,-11.5 + rot: 3.141592653589793 rad + pos: -37.5,6.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 3707 + color: '#A01E16FF' + - uid: 7730 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -12.5,-1.5 + rot: 3.141592653589793 rad + pos: -35.5,6.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 3834 + color: '#1739A6FF' + - uid: 7731 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 8.5,-13.5 + rot: 3.141592653589793 rad + pos: -35.5,7.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 3860 + color: '#1739A6FF' + - uid: 7732 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -37.5,13.5 + rot: 3.141592653589793 rad + pos: -35.5,8.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 3940 + color: '#1739A6FF' + - uid: 7733 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -35.5,13.5 + rot: 3.141592653589793 rad + pos: -35.5,9.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4181 + color: '#1739A6FF' + - uid: 7734 components: - type: Transform - pos: -8.5,-21.5 + rot: 3.141592653589793 rad + pos: -35.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4347 + color: '#1739A6FF' + - uid: 7735 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 9.5,-14.5 + rot: 3.141592653589793 rad + pos: -35.5,11.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4372 + color: '#1739A6FF' + - uid: 7736 components: - type: Transform rot: 3.141592653589793 rad - pos: 63.5,2.5 + pos: -35.5,12.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4552 + color: '#1739A6FF' + - uid: 7738 components: - type: Transform - pos: 68.5,9.5 + rot: 3.141592653589793 rad + pos: -37.5,7.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 4571 + color: '#A01E16FF' + - uid: 7739 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 69.5,7.5 + rot: 3.141592653589793 rad + pos: -37.5,8.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 4650 + color: '#A01E16FF' + - uid: 7740 components: - type: Transform - pos: 67.5,4.5 + rot: 3.141592653589793 rad + pos: -37.5,9.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 4708 + color: '#A01E16FF' + - uid: 7741 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 33.5,8.5 + rot: 3.141592653589793 rad + pos: -37.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 4731 + color: '#A01E16FF' + - uid: 7742 components: - type: Transform - pos: 38.5,3.5 + rot: 3.141592653589793 rad + pos: -37.5,11.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5064 + color: '#A01E16FF' + - uid: 7743 components: - type: Transform rot: 3.141592653589793 rad - pos: 7.5,25.5 + pos: -37.5,12.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5342 + color: '#A01E16FF' + - uid: 7789 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 4.5,-17.5 + pos: 50.5,18.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5374 + color: '#ADD8E6FF' + - uid: 7801 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 2.5,-23.5 + rot: -1.5707963267948966 rad + pos: -5.5,-19.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5380 + color: '#A01E16FF' + - uid: 7817 components: - type: Transform - pos: 8.5,-20.5 + rot: -1.5707963267948966 rad + pos: 51.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5392 + color: '#990000FF' + - uid: 7825 components: - type: Transform - pos: 3.5,3.5 + rot: -1.5707963267948966 rad + pos: 33.5,25.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5396 + - uid: 7828 components: - type: Transform - rot: 3.141592653589793 rad - pos: 7.5,3.5 + rot: -1.5707963267948966 rad + pos: 47.5,25.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5397 + - uid: 7829 components: - type: Transform - rot: 3.141592653589793 rad - pos: 9.5,3.5 + rot: -1.5707963267948966 rad + pos: 45.5,25.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5399 + - uid: 7834 components: - type: Transform rot: 3.141592653589793 rad - pos: 8.5,5.5 + pos: 64.5,11.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 5405 + - uid: 7895 components: - type: Transform - rot: 3.141592653589793 rad - pos: 13.5,5.5 + pos: -7.5,16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5419 + color: '#1739A6FF' + - uid: 8022 components: - type: Transform - rot: 3.141592653589793 rad - pos: 15.5,3.5 + rot: -1.5707963267948966 rad + pos: -3.5,29.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5422 + color: '#A01E16FF' + - uid: 8023 components: - type: Transform - pos: 10.5,5.5 + rot: -1.5707963267948966 rad + pos: 0.5,28.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5424 + color: '#A01E16FF' + - uid: 8049 components: - type: Transform - rot: 3.141592653589793 rad - pos: 21.5,3.5 + rot: -1.5707963267948966 rad + pos: 43.5,25.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5425 + - uid: 8089 components: - type: Transform - pos: 22.5,5.5 + pos: 62.5,4.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 5430 + - uid: 8210 components: - type: Transform - pos: 28.5,5.5 + rot: 3.141592653589793 rad + pos: 64.5,12.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 5439 + - uid: 8214 components: - type: Transform - rot: 3.141592653589793 rad - pos: 26.5,3.5 + pos: 31.5,18.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5458 + - uid: 8253 components: - type: Transform - rot: 3.141592653589793 rad - pos: 14.5,10.5 + pos: -8.5,15.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5459 + color: '#A01E16FF' + - uid: 8254 components: - type: Transform - pos: 16.5,11.5 + pos: -8.5,12.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5464 + color: '#A01E16FF' + - uid: 8386 components: - type: Transform rot: 3.141592653589793 rad - pos: 21.5,11.5 + pos: 49.5,19.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5465 + color: '#00FF00FF' + - uid: 8415 components: - type: Transform - rot: 3.141592653589793 rad - pos: 22.5,10.5 + pos: 7.5,18.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5470 + color: '#A01E16FF' + - uid: 8429 components: - type: Transform rot: 3.141592653589793 rad - pos: 3.5,5.5 + pos: 37.5,15.5 + parent: 31 + - type: AtmosPipeColor + color: '#234FDEFF' + - uid: 8431 + components: + - type: Transform + pos: 64.5,5.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 5471 + - uid: 8433 components: - type: Transform - pos: 20.5,10.5 + pos: 64.5,9.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 5481 + - uid: 8470 components: - type: Transform rot: 3.141592653589793 rad - pos: 20.5,11.5 + pos: 54.5,24.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5488 + - uid: 8494 components: - type: Transform - pos: 9.5,0.5 + rot: -1.5707963267948966 rad + pos: 50.5,25.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5491 + - uid: 8505 components: - type: Transform - rot: 3.141592653589793 rad - pos: 8.5,-1.5 + rot: -1.5707963267948966 rad + pos: 38.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5500 + color: '#990000FF' + - uid: 8516 components: - type: Transform - pos: -8.5,0.5 + rot: -1.5707963267948966 rad + pos: 39.5,25.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5516 + - uid: 8521 components: - type: Transform - rot: 3.141592653589793 rad - pos: -1.5,-1.5 + rot: -1.5707963267948966 rad + pos: 53.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5528 + color: '#990000FF' + - uid: 8564 components: - type: Transform - pos: -13.5,0.5 + rot: -1.5707963267948966 rad + pos: 52.5,25.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5571 + - uid: 8569 components: - type: Transform - rot: 3.141592653589793 rad - pos: 11.5,-10.5 + rot: -1.5707963267948966 rad + pos: 34.5,25.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5572 + - uid: 8631 components: - type: Transform rot: 3.141592653589793 rad - pos: 10.5,-8.5 + pos: 47.5,-15.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5574 + color: '#1739A6FF' + - uid: 8703 + components: + - type: Transform + pos: 51.5,-15.5 + parent: 31 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 8712 components: - type: Transform rot: 3.141592653589793 rad - pos: 15.5,-8.5 + pos: -16.5,1.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5577 + color: '#1739A6FF' + - uid: 8720 components: - type: Transform - pos: 15.5,-10.5 + pos: -17.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5579 + color: '#1739A6FF' + - uid: 8723 components: - type: Transform - pos: 12.5,-10.5 + rot: -1.5707963267948966 rad + pos: -18.5,-2.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5584 + color: '#1739A6FF' + - uid: 8726 components: - type: Transform - pos: 12.5,-8.5 + pos: -17.5,-0.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5586 + color: '#1739A6FF' + - uid: 8734 components: - type: Transform rot: 3.141592653589793 rad - pos: 16.5,-8.5 + pos: -27.5,2.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5587 + color: '#1739A6FF' + - uid: 8736 components: - type: Transform rot: 3.141592653589793 rad - pos: 17.5,-10.5 + pos: -27.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5592 + color: '#1739A6FF' + - uid: 8746 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 17.5,-6.5 + rot: -1.5707963267948966 rad + pos: -7.5,11.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5600 + color: '#1739A6FF' + - uid: 8755 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 16.5,-5.5 + rot: -1.5707963267948966 rad + pos: 35.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5626 + color: '#990000FF' + - uid: 8769 components: - type: Transform - pos: 15.5,-15.5 + rot: 1.5707963267948966 rad + pos: -6.5,15.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5686 + color: '#1739A6FF' + - uid: 8776 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 14.5,-20.5 + rot: 1.5707963267948966 rad + pos: -10.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5715 + color: '#A01E16FF' + - uid: 8777 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 4.5,-14.5 + rot: 1.5707963267948966 rad + pos: -11.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5769 + color: '#A01E16FF' + - uid: 8778 components: - type: Transform rot: 1.5707963267948966 rad - pos: -8.5,13.5 + pos: -12.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5772 + color: '#A01E16FF' + - uid: 8779 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -24.5,-3.5 + rot: 1.5707963267948966 rad + pos: -13.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5801 + color: '#A01E16FF' + - uid: 8780 components: - type: Transform rot: 1.5707963267948966 rad - pos: 2.5,12.5 + pos: -14.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5806 + color: '#A01E16FF' + - uid: 8781 components: - type: Transform rot: 1.5707963267948966 rad - pos: 2.5,17.5 + pos: -15.5,10.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5807 + color: '#A01E16FF' + - uid: 8787 components: - type: Transform rot: -1.5707963267948966 rad - pos: 4.5,19.5 + pos: -9.5,11.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5812 + color: '#1739A6FF' + - uid: 8788 components: - type: Transform rot: -1.5707963267948966 rad - pos: 4.5,26.5 + pos: -10.5,11.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5822 + color: '#1739A6FF' + - uid: 8789 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 2.5,23.5 + rot: -1.5707963267948966 rad + pos: -11.5,11.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5829 + color: '#1739A6FF' + - uid: 8790 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 2.5,18.5 + rot: -1.5707963267948966 rad + pos: -12.5,11.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5834 + color: '#1739A6FF' + - uid: 8791 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 4.5,14.5 + rot: -1.5707963267948966 rad + pos: -13.5,11.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5835 + color: '#1739A6FF' + - uid: 8792 components: - type: Transform rot: -1.5707963267948966 rad - pos: 4.5,13.5 + pos: -14.5,11.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5856 + color: '#1739A6FF' + - uid: 8793 components: - type: Transform - pos: 3.5,25.5 + rot: -1.5707963267948966 rad + pos: -15.5,11.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5867 + color: '#1739A6FF' + - uid: 8809 components: - type: Transform - pos: 7.5,24.5 + rot: -1.5707963267948966 rad + pos: -2.5,30.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5881 + color: '#1739A6FF' + - uid: 8871 components: - type: Transform rot: 3.141592653589793 rad - pos: 7.5,17.5 + pos: 47.5,-11.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5955 + color: '#1739A6FF' + - uid: 8884 components: - type: Transform rot: 3.141592653589793 rad - pos: -1.5,3.5 + pos: 47.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5960 + color: '#1739A6FF' + - uid: 8924 components: - type: Transform - pos: -2.5,5.5 + rot: -1.5707963267948966 rad + pos: -25.5,-7.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5963 + color: '#A01E16FF' + - uid: 8991 components: - type: Transform - rot: 3.141592653589793 rad - pos: -4.5,5.5 + pos: 64.5,3.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 5964 + - uid: 8992 components: - type: Transform - rot: 3.141592653589793 rad - pos: -5.5,3.5 + pos: 64.5,1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5969 + color: '#0055CCFF' + - uid: 9002 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -5.5,8.5 + rot: -1.5707963267948966 rad + pos: -26.5,-7.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5973 + color: '#A01E16FF' + - uid: 9014 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -4.5,7.5 + rot: -1.5707963267948966 rad + pos: 40.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5980 + color: '#990000FF' + - uid: 9015 components: - type: Transform - rot: 3.141592653589793 rad - pos: -8.5,10.5 + rot: -1.5707963267948966 rad + pos: 49.5,25.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5989 + - uid: 9016 components: - type: Transform rot: -1.5707963267948966 rad - pos: -8.5,14.5 + pos: 48.5,25.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5994 + - uid: 9017 components: - type: Transform - rot: 3.141592653589793 rad - pos: -7.5,15.5 + rot: -1.5707963267948966 rad + pos: 46.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6000 + color: '#990000FF' + - uid: 9018 components: - type: Transform rot: -1.5707963267948966 rad - pos: -8.5,20.5 + pos: 36.5,25.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 6010 + - uid: 9028 components: - type: Transform - rot: 3.141592653589793 rad - pos: -11.5,15.5 + pos: -27.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6050 + color: '#1739A6FF' + - uid: 9033 components: - type: Transform rot: 3.141592653589793 rad - pos: -14.5,3.5 + pos: 48.5,-18.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6051 + color: '#1739A6FF' + - uid: 9054 components: - type: Transform - pos: -11.5,5.5 + rot: -1.5707963267948966 rad + pos: 61.5,14.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 6079 + - uid: 9059 components: - type: Transform - rot: 3.141592653589793 rad - pos: -22.5,3.5 + rot: -1.5707963267948966 rad + pos: 52.5,15.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6084 + color: '#0055CCFF' + - uid: 9075 components: - type: Transform - pos: -25.5,5.5 + rot: -1.5707963267948966 rad + pos: 58.5,14.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 6112 + - uid: 9176 components: - type: Transform - pos: -16.5,5.5 + pos: -37.5,-0.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6114 + color: '#A01E16FF' + - uid: 9177 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 7.5,-16.5 + pos: -37.5,-2.5 parent: 31 - - uid: 6135 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 9178 components: - type: Transform - rot: 3.141592653589793 rad - pos: -30.5,3.5 + pos: -37.5,-3.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6136 + color: '#A01E16FF' + - uid: 9199 components: - type: Transform - pos: -29.5,5.5 + pos: -37.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6199 + color: '#A01E16FF' + - uid: 9201 components: - type: Transform - rot: 3.141592653589793 rad - pos: 41.5,3.5 + pos: -37.5,-4.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6204 + color: '#A01E16FF' + - uid: 9206 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 44.5,6.5 + pos: 64.5,6.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 6213 + - uid: 9222 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 20.5,15.5 + rot: 3.141592653589793 rad + pos: -36.5,14.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6216 + color: '#1739A6FF' + - uid: 9223 components: - type: Transform rot: 3.141592653589793 rad - pos: 43.5,3.5 + pos: -38.5,15.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6223 + color: '#A01E16FF' + - uid: 9278 components: - type: Transform rot: 3.141592653589793 rad - pos: 46.5,2.5 + pos: -24.5,-8.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6226 + color: '#A01E16FF' + - uid: 9349 components: - type: Transform - pos: 47.5,3.5 + pos: -25.5,17.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6249 + color: '#1739A6FF' + - uid: 9350 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 22.5,15.5 + pos: -25.5,18.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6334 + color: '#1739A6FF' + - uid: 9351 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 32.5,10.5 + rot: -1.5707963267948966 rad + pos: -24.5,19.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6532 + color: '#1739A6FF' + - uid: 9352 components: - type: Transform rot: -1.5707963267948966 rad - pos: -23.5,-18.5 + pos: -23.5,19.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6571 + color: '#1739A6FF' + - uid: 9372 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -22.5,-18.5 + pos: -8.5,11.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6748 + color: '#A01E16FF' + - uid: 9377 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 62.5,8.5 + pos: 64.5,7.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 6756 + - uid: 9388 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 62.5,7.5 + pos: 64.5,8.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 6763 + - uid: 9621 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 66.5,4.5 + rot: -1.5707963267948966 rad + pos: 1.5,30.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6828 + color: '#1739A6FF' + - uid: 9731 components: - type: Transform - pos: 69.5,9.5 + rot: 3.141592653589793 rad + pos: 47.5,16.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 6943 + - uid: 9816 components: - type: Transform - pos: 49.5,3.5 + rot: 3.141592653589793 rad + pos: -4.5,-29.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 6944 + - uid: 9938 components: - type: Transform - pos: 48.5,2.5 + rot: -1.5707963267948966 rad + pos: 55.5,15.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 7095 + - uid: 9941 components: - type: Transform - rot: 3.141592653589793 rad - pos: -22.5,19.5 + pos: 64.5,2.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 7159 + - uid: 9945 components: - type: Transform - pos: 8.5,20.5 + rot: 3.141592653589793 rad + pos: 46.5,17.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7352 + color: '#990000FF' + - uid: 9955 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 66.5,6.5 + rot: 3.141592653589793 rad + pos: 38.5,17.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 7369 + - uid: 9956 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 9.5,-16.5 + rot: 3.141592653589793 rad + pos: 39.5,16.5 parent: 31 - - uid: 7412 + - uid: 10024 components: - type: Transform - rot: 3.141592653589793 rad - pos: 2.5,-28.5 + rot: 1.5707963267948966 rad + pos: 21.5,-11.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7457 + color: '#A01E16FF' + - uid: 10026 components: - type: Transform rot: 1.5707963267948966 rad - pos: -23.5,-3.5 + pos: 20.5,-11.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7465 + color: '#A01E16FF' + - uid: 10031 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 4.5,-29.5 + pos: 62.5,6.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 7504 + - uid: 10039 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 19.5,-11.5 + parent: 31 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10101 components: - type: Transform rot: -1.5707963267948966 rad - pos: -36.5,0.5 + pos: 42.5,13.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 7547 + color: '#234FDEFF' + - uid: 10102 components: - type: Transform - pos: 64.5,-1.5 + rot: 3.141592653589793 rad + pos: 34.5,17.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8105 + color: '#990000FF' + - uid: 10105 components: - type: Transform - pos: -9.5,-14.5 + rot: -1.5707963267948966 rad + pos: 54.5,15.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 8106 + - uid: 10107 components: - type: Transform - pos: -7.5,-16.5 + rot: -1.5707963267948966 rad + pos: 35.5,16.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 8783 + - uid: 10113 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -5.5,11.5 + rot: 3.141592653589793 rad + pos: 49.5,17.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8872 + color: '#00FF00FF' + - uid: 10114 components: - type: Transform rot: 1.5707963267948966 rad - pos: 2.5,-6.5 + pos: 48.5,13.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 8877 + color: '#00FF00FF' + - uid: 10120 components: - type: Transform - pos: 34.5,5.5 + rot: 3.141592653589793 rad + pos: 55.5,22.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8878 + color: '#990000FF' + - uid: 10122 components: - type: Transform rot: 3.141592653589793 rad - pos: 35.5,3.5 + pos: 43.5,16.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10041 + color: '#F88379FF' + - uid: 10166 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 19.5,-9.5 + rot: 3.141592653589793 rad + pos: -27.5,1.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10251 + color: '#1739A6FF' + - uid: 10167 components: - type: Transform rot: -1.5707963267948966 rad - pos: -35.5,-6.5 + pos: -28.5,1.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10401 + color: '#A01E16FF' + - uid: 10247 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -23.5,-8.5 + pos: -37.5,-7.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10414 + color: '#A01E16FF' + - uid: 10248 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 31.5,16.5 + pos: -37.5,-6.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10415 + color: '#A01E16FF' + - uid: 10249 components: - type: Transform - pos: -2.5,-14.5 + pos: -35.5,-7.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10429 + color: '#1739A6FF' + - uid: 10250 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -7.5,-26.5 + pos: -35.5,-8.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10430 + color: '#1739A6FF' + - uid: 10378 components: - type: Transform rot: -1.5707963267948966 rad - pos: -8.5,-27.5 + pos: 3.5,-29.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10515 + color: '#1739A6FF' + - uid: 10379 components: - type: Transform - rot: 3.141592653589793 rad - pos: 35.5,15.5 + rot: -1.5707963267948966 rad + pos: 2.5,-29.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10910 + color: '#1739A6FF' + - uid: 10380 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 49.5,-3.5 + rot: -1.5707963267948966 rad + pos: 1.5,-29.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10911 + color: '#1739A6FF' + - uid: 10382 components: - type: Transform - pos: 53.5,-3.5 + rot: 1.5707963267948966 rad + pos: 1.5,-28.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10912 + color: '#A01E16FF' + - uid: 10383 components: - type: Transform - anchored: False rot: 1.5707963267948966 rad - pos: 53.5,-7.5 + pos: 0.5,-28.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - type: Physics - canCollide: True - bodyType: Dynamic - - uid: 10931 + color: '#A01E16FF' + - uid: 10384 components: - type: Transform rot: 1.5707963267948966 rad - pos: 48.5,-5.5 + pos: -0.5,-28.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10943 + color: '#A01E16FF' + - uid: 10394 components: - type: Transform rot: 3.141592653589793 rad - pos: 51.5,-5.5 + pos: -24.5,-11.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10954 + color: '#1739A6FF' + - uid: 10396 components: - type: Transform rot: 3.141592653589793 rad - pos: 48.5,-8.5 + pos: -24.5,-13.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11406 + color: '#1739A6FF' + - uid: 10403 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -35.5,-4.5 + rot: 3.141592653589793 rad + pos: -23.5,-10.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11574 + color: '#A01E16FF' + - uid: 10405 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -23.5,-21.5 + rot: 3.141592653589793 rad + pos: -23.5,-12.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11582 + color: '#A01E16FF' + - uid: 10412 components: - type: Transform - pos: -26.5,-21.5 + rot: 3.141592653589793 rad + pos: 44.5,17.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11583 + color: '#990000FF' + - uid: 10423 components: - type: Transform - pos: -25.5,-22.5 + rot: -1.5707963267948966 rad + pos: 63.5,13.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11592 + color: '#0055CCFF' + - uid: 10432 components: - type: Transform rot: 1.5707963267948966 rad - pos: -22.5,-25.5 + pos: 0.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11801 + color: '#1739A6FF' + - uid: 10433 components: - type: Transform - pos: 74.5,8.5 + rot: 1.5707963267948966 rad + pos: -0.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11807 + color: '#1739A6FF' + - uid: 10434 components: - type: Transform - rot: 3.141592653589793 rad - pos: 75.5,3.5 + rot: 1.5707963267948966 rad + pos: -1.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11808 + color: '#1739A6FF' + - uid: 10443 components: - type: Transform - rot: 3.141592653589793 rad - pos: 74.5,3.5 + rot: -1.5707963267948966 rad + pos: -20.5,-12.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11809 + color: '#1739A6FF' + - uid: 10449 components: - type: Transform - rot: 3.141592653589793 rad - pos: 73.5,3.5 + rot: -1.5707963267948966 rad + pos: 59.5,14.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 11873 + - uid: 10450 components: - type: Transform - pos: 67.5,-1.5 + pos: -8.5,-23.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11874 + color: '#1739A6FF' + - uid: 10451 components: - type: Transform - pos: 68.5,-1.5 + pos: -8.5,-24.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11875 + color: '#1739A6FF' + - uid: 10452 components: - type: Transform - rot: 3.141592653589793 rad - pos: 66.5,-1.5 + pos: -8.5,-25.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11876 + color: '#1739A6FF' + - uid: 10453 components: - type: Transform - pos: 65.5,-1.5 + pos: -8.5,-26.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11880 + color: '#1739A6FF' + - uid: 10454 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 66.5,0.5 + pos: -8.5,-28.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11881 + color: '#1739A6FF' + - uid: 10455 components: - type: Transform - rot: 3.141592653589793 rad - pos: 67.5,0.5 + pos: -8.5,-29.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 12148 + color: '#1739A6FF' + - uid: 10456 components: - type: Transform rot: -1.5707963267948966 rad - pos: 34.5,13.5 + pos: -9.5,-27.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 12249 + color: '#1739A6FF' + - uid: 10457 components: - type: Transform rot: -1.5707963267948966 rad - pos: 33.5,14.5 + pos: -10.5,-27.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' -- proto: GasPort - entities: - - uid: 188 + color: '#1739A6FF' + - uid: 10458 components: - type: Transform - pos: -11.5,-28.5 + rot: -1.5707963267948966 rad + pos: -11.5,-27.5 parent: 31 - - uid: 1329 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 10459 components: - type: Transform - rot: 3.141592653589793 rad - pos: 32.5,16.5 + rot: -1.5707963267948966 rad + pos: -12.5,-27.5 parent: 31 - - uid: 6502 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 10460 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 31.5,9.5 + rot: -1.5707963267948966 rad + pos: -13.5,-27.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6854 + color: '#1739A6FF' + - uid: 10461 components: - type: Transform - rot: 3.141592653589793 rad - pos: 65.5,6.5 + rot: -1.5707963267948966 rad + pos: -14.5,-27.5 parent: 31 - - uid: 6893 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 10462 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 31.5,8.5 + rot: -1.5707963267948966 rad + pos: -15.5,-27.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11147 + color: '#1739A6FF' + - uid: 10469 components: - type: Transform - pos: 63.5,4.5 + rot: -1.5707963267948966 rad + pos: 0.5,-16.5 parent: 31 - - uid: 11886 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10470 components: - type: Transform - rot: 3.141592653589793 rad - pos: 68.5,-3.5 + rot: -1.5707963267948966 rad + pos: -0.5,-16.5 parent: 31 - - uid: 11887 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10471 components: - type: Transform - rot: 3.141592653589793 rad - pos: 67.5,-3.5 + rot: -1.5707963267948966 rad + pos: -1.5,-16.5 parent: 31 - - uid: 12045 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10472 components: - type: Transform - rot: 3.141592653589793 rad - pos: 63.5,5.5 + rot: -1.5707963267948966 rad + pos: -2.5,-16.5 parent: 31 - - uid: 12153 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10479 components: - - type: MetaData - desc: A note attached reads, "Your gas supply is large, but finite. Buy more gas from Logistics if you run out." - name: gas input - type: Transform - rot: 3.141592653589793 rad - pos: 31.5,13.5 + rot: -1.5707963267948966 rad + pos: 8.5,-17.5 parent: 31 - - uid: 12553 + - uid: 10483 components: - type: Transform - pos: 34.5,23.5 + pos: -7.5,-20.5 parent: 31 - - uid: 12554 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10484 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 68.5,10.5 + pos: -7.5,-21.5 parent: 31 - - uid: 12555 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10485 components: - type: Transform - pos: 36.5,23.5 + pos: -7.5,-22.5 parent: 31 - - uid: 12557 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10486 components: - type: Transform - pos: 38.5,23.5 + pos: -7.5,-23.5 parent: 31 - - uid: 12559 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10487 components: - type: Transform - pos: 40.5,23.5 + pos: -7.5,-24.5 parent: 31 - - uid: 12561 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10488 components: - type: Transform - pos: 42.5,23.5 + pos: -7.5,-25.5 parent: 31 - - uid: 12563 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10489 components: - type: Transform - pos: 44.5,23.5 + rot: -1.5707963267948966 rad + pos: -8.5,-26.5 parent: 31 - - uid: 12564 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10490 components: - type: Transform - pos: 44.5,22.5 + rot: -1.5707963267948966 rad + pos: -9.5,-26.5 parent: 31 - - uid: 12565 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10491 components: - type: Transform - pos: 46.5,23.5 + rot: -1.5707963267948966 rad + pos: -10.5,-26.5 parent: 31 -- proto: GasPressurePump - entities: - - uid: 555 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10492 components: - - type: MetaData - desc: A pump that moves tritium by pressure. - name: tritium pump - type: Transform - pos: 45.5,17.5 + rot: -1.5707963267948966 rad + pos: -11.5,-26.5 parent: 31 - - type: GasPressurePump - targetPressure: 1 - - uid: 842 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10493 components: - type: Transform rot: -1.5707963267948966 rad - pos: -12.5,-29.5 + pos: -12.5,-26.5 parent: 31 - - uid: 905 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10494 components: - - type: MetaData - desc: A pump that moves O2 by pressure. - name: O2 pump - type: Transform - pos: 37.5,17.5 + rot: -1.5707963267948966 rad + pos: -13.5,-26.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 1513 + color: '#A01E16FF' + - uid: 10507 components: - - type: MetaData - desc: A pump that moves N2O by pressure. - name: N2O pump - type: Transform - pos: 39.5,17.5 + rot: -1.5707963267948966 rad + pos: 45.5,16.5 parent: 31 - - type: GasPressurePump - targetPressure: 1 - - uid: 1517 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 10508 components: - - type: MetaData - desc: A pump that moves N2 by pressure. - name: N2 pump - type: Transform - pos: 35.5,17.5 + pos: 64.5,0.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 1570 - components: - - type: MetaData - desc: A pump that moves plasma by pressure. - name: plasma pump - - type: Transform - pos: 43.5,17.5 - parent: 31 - - type: GasPressurePump - targetPressure: 1 - - uid: 1573 + - uid: 10509 components: - - type: MetaData - desc: A pump that moves CO2 by pressure. - name: CO2 pump - type: Transform - pos: 41.5,17.5 + rot: -1.5707963267948966 rad + pos: 43.5,16.5 parent: 31 - - type: GasPressurePump - targetPressure: 1 - - uid: 3765 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 10510 components: - type: Transform - rot: 3.141592653589793 rad - pos: 33.5,17.5 + rot: -1.5707963267948966 rad + pos: 41.5,16.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 4124 + - uid: 10511 components: - - type: MetaData - name: atmos to active coolant - type: Transform - rot: 1.5707963267948966 rad - pos: 63.5,-1.5 + rot: 3.141592653589793 rad + pos: 41.5,16.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4363 + - uid: 10514 components: - - type: MetaData - name: passive coolant removal - type: Transform - pos: 63.5,6.5 + rot: 3.141592653589793 rad + pos: 42.5,17.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4388 + color: '#990000FF' + - uid: 10516 components: - - type: MetaData - name: waste to filters - type: Transform - rot: 3.141592653589793 rad - pos: 33.5,11.5 + rot: -1.5707963267948966 rad + pos: 37.5,16.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 4389 + - uid: 10517 components: - - type: MetaData - name: atmos to distro - type: Transform - pos: 34.5,11.5 + rot: -1.5707963267948966 rad + pos: 39.5,16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6351 + color: '#990000FF' + - uid: 10706 components: - - type: MetaData - desc: A pump that moves H2O by pressure. - name: H2O pump - type: Transform - pos: 47.5,17.5 + pos: 43.5,14.5 parent: 31 - - uid: 7663 + - type: AtmosPipeColor + color: '#F88379FF' + - uid: 10708 components: - type: Transform - pos: 9.5,-15.5 + rot: 3.141592653589793 rad + pos: -6.5,32.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 9058 + color: '#A01E16FF' + - uid: 10741 components: - - type: MetaData - name: gas mix to Supermatter coolant - type: Transform - rot: 1.5707963267948966 rad - pos: 48.5,15.5 + rot: -1.5707963267948966 rad + pos: -0.5,28.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 9079 + color: '#A01E16FF' + - uid: 10810 components: - - type: MetaData - name: supermatter waste gas - type: Transform - pos: 31.5,17.5 + rot: 3.141592653589793 rad + pos: -6.5,31.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11026 + color: '#A01E16FF' + - uid: 10821 components: - type: Transform rot: -1.5707963267948966 rad - pos: 44.5,13.5 + pos: -2.5,29.5 parent: 31 - - type: GasPressurePump - targetPressure: 4500 - - uid: 11080 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10889 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 44.5,11.5 + rot: 3.141592653589793 rad + pos: -5.5,31.5 parent: 31 - - type: GasPressurePump - targetPressure: 4500 - - uid: 11149 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 10914 components: - - type: MetaData - name: passive coolant input - type: Transform - pos: 63.5,3.5 + pos: 49.5,-2.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11294 + color: '#A01E16FF' + - uid: 10915 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 44.5,12.5 + rot: -1.5707963267948966 rad + pos: 50.5,-3.5 parent: 31 - - type: GasPressurePump - targetPressure: 4500 - - uid: 11884 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10916 components: - - type: MetaData - name: active coolant removal - type: Transform - pos: 67.5,-2.5 + rot: -1.5707963267948966 rad + pos: 51.5,-3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11885 + color: '#A01E16FF' + - uid: 10917 components: - type: Transform - rot: 3.141592653589793 rad - pos: 68.5,-2.5 + rot: -1.5707963267948966 rad + pos: 52.5,-3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 12556 + color: '#A01E16FF' + - uid: 10918 components: - type: Transform rot: -1.5707963267948966 rad - pos: 67.5,10.5 + pos: 54.5,-3.5 parent: 31 -- proto: GasThermoMachineFreezer - entities: - - uid: 5552 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10919 components: - type: Transform - rot: 3.141592653589793 rad - pos: -16.5,-5.5 + rot: -1.5707963267948966 rad + pos: 55.5,-3.5 parent: 31 - - uid: 6720 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10920 components: - type: Transform - pos: 62.5,9.5 + rot: 3.141592653589793 rad + pos: 53.5,-4.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8125 + color: '#A01E16FF' + - uid: 10921 components: - type: Transform rot: 3.141592653589793 rad - pos: 7.5,-17.5 + pos: 53.5,-5.5 parent: 31 - - uid: 8860 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10922 components: - type: Transform - pos: 38.5,11.5 + rot: 3.141592653589793 rad + pos: 53.5,-6.5 parent: 31 - - uid: 11878 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10923 components: - type: Transform rot: 3.141592653589793 rad - pos: 64.5,-2.5 + pos: 53.5,-7.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11879 + color: '#A01E16FF' + - uid: 10924 components: - type: Transform rot: 3.141592653589793 rad - pos: 65.5,-2.5 + pos: 53.5,-8.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 12251 + color: '#A01E16FF' + - uid: 10925 components: - type: Transform - pos: 32.5,15.5 + rot: 3.141592653589793 rad + pos: 53.5,-9.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' -- proto: GasThermoMachineHeater - entities: - - uid: 8861 + color: '#A01E16FF' + - uid: 10926 components: - type: Transform - pos: 39.5,11.5 + rot: 3.141592653589793 rad + pos: 53.5,-10.5 parent: 31 - - uid: 12252 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10927 components: - type: Transform - pos: 33.5,15.5 + rot: 1.5707963267948966 rad + pos: 54.5,-7.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' -- proto: GasValve - entities: - - uid: 8455 + color: '#990000FF' + - uid: 10928 components: - type: Transform - rot: 3.141592653589793 rad - pos: 66.5,9.5 + rot: 1.5707963267948966 rad + pos: 55.5,-7.5 parent: 31 - - uid: 9077 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 10932 components: - - type: MetaData - name: atmos to core coolant - type: Transform - pos: 64.5,10.5 + pos: 48.5,-2.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 9508 + color: '#1739A6FF' + - uid: 10933 components: - type: Transform - rot: 3.141592653589793 rad - pos: 48.5,17.5 + pos: 48.5,-3.5 parent: 31 - - type: GasValve - open: False - type: AtmosPipeColor - color: '#990000FF' -- proto: GasVentPump - entities: - - uid: 65 + color: '#1739A6FF' + - uid: 10934 components: - type: Transform - pos: 15.5,-7.5 + pos: 48.5,-4.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 100 + color: '#1739A6FF' + - uid: 10935 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 3.5,-17.5 + rot: -1.5707963267948966 rad + pos: 49.5,-5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 716 + color: '#1739A6FF' + - uid: 10936 components: - type: Transform - pos: 7.5,26.5 + rot: -1.5707963267948966 rad + pos: 50.5,-5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 977 + color: '#1739A6FF' + - uid: 10937 components: - type: Transform - pos: 10.5,26.5 + rot: -1.5707963267948966 rad + pos: 52.5,-5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 1094 + color: '#1739A6FF' + - uid: 10938 components: - type: Transform rot: -1.5707963267948966 rad - pos: 21.5,-9.5 + pos: 53.5,-5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 1230 + color: '#1739A6FF' + - uid: 10939 components: - type: Transform rot: -1.5707963267948966 rad - pos: 9.5,20.5 + pos: 54.5,-5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 1305 + color: '#1739A6FF' + - uid: 10940 components: - type: Transform rot: -1.5707963267948966 rad - pos: -18.5,-12.5 + pos: 55.5,-5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 1688 + color: '#1739A6FF' + - uid: 10941 components: - type: Transform - pos: -36.5,18.5 + rot: -1.5707963267948966 rad + pos: 56.5,-5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 2213 + color: '#1739A6FF' + - uid: 10942 components: - type: Transform rot: -1.5707963267948966 rad - pos: 10.5,-14.5 + pos: 57.5,-5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 3116 + color: '#1739A6FF' + - uid: 10944 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 26.5,9.5 + pos: 48.5,-6.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 3368 + color: '#1739A6FF' + - uid: 10945 components: - type: Transform - pos: -5.5,16.5 + pos: 48.5,-7.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 3419 + color: '#1739A6FF' + - uid: 10946 components: - type: Transform - pos: 12.5,26.5 + rot: -1.5707963267948966 rad + pos: 49.5,-8.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 3835 + color: '#1739A6FF' + - uid: 10947 components: - type: Transform - rot: 3.141592653589793 rad - pos: 19.5,-17.5 + rot: -1.5707963267948966 rad + pos: 50.5,-8.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4013 + color: '#1739A6FF' + - uid: 10948 components: - type: Transform - rot: 3.141592653589793 rad - pos: -9.5,-22.5 + rot: -1.5707963267948966 rad + pos: 51.5,-8.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4185 + color: '#1739A6FF' + - uid: 10949 components: - type: Transform - pos: -7.5,20.5 + rot: -1.5707963267948966 rad + pos: 52.5,-8.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4266 + color: '#1739A6FF' + - uid: 10950 components: - type: Transform rot: -1.5707963267948966 rad - pos: 23.5,15.5 + pos: 53.5,-8.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4267 + color: '#1739A6FF' + - uid: 10951 components: - type: Transform rot: -1.5707963267948966 rad - pos: 26.5,16.5 + pos: 54.5,-8.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4303 + color: '#1739A6FF' + - uid: 10952 components: - type: Transform rot: 3.141592653589793 rad - pos: -2.5,-15.5 + pos: 47.5,-9.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4468 + color: '#1739A6FF' + - uid: 10953 components: - type: Transform rot: 3.141592653589793 rad - pos: 15.5,-28.5 + pos: 47.5,-10.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 4484 + color: '#1739A6FF' + - uid: 11026 components: - type: Transform rot: 3.141592653589793 rad - pos: -35.5,-9.5 + pos: -6.5,33.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5365 + color: '#A01E16FF' + - uid: 11027 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 3.5,-5.5 + rot: 3.141592653589793 rad + pos: -5.5,32.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5472 + color: '#1739A6FF' + - uid: 11057 components: - type: Transform - pos: 3.5,6.5 + rot: 3.141592653589793 rad + pos: 49.5,16.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5476 + color: '#00FF00FF' + - uid: 11058 components: - type: Transform rot: 3.141592653589793 rad - pos: 22.5,4.5 + pos: -5.5,34.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5479 + color: '#1739A6FF' + - uid: 11063 components: - type: Transform - pos: 14.5,11.5 + pos: 46.5,20.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5495 + color: '#990000FF' + - uid: 11064 components: - type: Transform - pos: 8.5,-0.5 + pos: 47.5,21.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5542 + - uid: 11065 components: - type: Transform - pos: -12.5,-0.5 + pos: 47.5,20.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5543 + - uid: 11066 components: - type: Transform - pos: -1.5,-0.5 + pos: 47.5,19.5 parent: 31 - - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5546 + - uid: 11067 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -17.5,-1.5 + pos: 47.5,18.5 + parent: 31 + - uid: 11068 + components: + - type: Transform + pos: 46.5,19.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5605 + color: '#990000FF' + - uid: 11080 components: - type: Transform - pos: 16.5,-0.5 + rot: 3.141592653589793 rad + pos: -5.5,33.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5606 + color: '#1739A6FF' + - uid: 11110 components: - type: Transform rot: 3.141592653589793 rad - pos: 12.5,-9.5 + pos: -6.5,30.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5638 + color: '#A01E16FF' + - uid: 11113 components: - type: Transform rot: 3.141592653589793 rad - pos: 14.5,-16.5 + pos: 49.5,18.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5666 + color: '#00FF00FF' + - uid: 11118 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 23.5,-5.5 + pos: 51.5,24.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5698 + color: '#ADD8E6FF' + - uid: 11121 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 9.5,-25.5 + pos: 51.5,21.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5700 + color: '#ADD8E6FF' + - uid: 11171 components: - type: Transform rot: 3.141592653589793 rad - pos: -12.5,-3.5 + pos: 62.5,3.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 5848 + - uid: 11289 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 3.5,19.5 + pos: -19.5,2.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5868 + color: '#A01E16FF' + - uid: 11292 components: - type: Transform - rot: 3.141592653589793 rad - pos: 3.5,24.5 + rot: -1.5707963267948966 rad + pos: 46.5,12.5 + parent: 31 + - uid: 11293 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 45.5,11.5 + parent: 31 + - uid: 11303 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5869 + color: '#234FDEFF' + - uid: 11304 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -1.5,25.5 + rot: -1.5707963267948966 rad + pos: 35.5,14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5870 + color: '#234FDEFF' + - uid: 11401 components: - type: Transform - pos: 4.5,30.5 + rot: 1.5707963267948966 rad + pos: -38.5,-5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5929 + color: '#A01E16FF' + - uid: 11402 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -21.5,23.5 + rot: 1.5707963267948966 rad + pos: -36.5,-4.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5941 + color: '#1739A6FF' + - uid: 11403 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 13.5,14.5 + rot: 1.5707963267948966 rad + pos: -37.5,-4.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 5950 + color: '#1739A6FF' + - uid: 11404 components: - type: Transform rot: 1.5707963267948966 rad - pos: 7.5,9.5 + pos: -38.5,-4.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6018 + color: '#1739A6FF' + - uid: 11405 components: - type: Transform rot: 1.5707963267948966 rad - pos: -12.5,15.5 + pos: -39.5,-4.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6033 + color: '#1739A6FF' + - uid: 11418 components: - type: Transform - pos: -12.5,19.5 + rot: 3.141592653589793 rad + pos: -25.5,-0.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6041 + color: '#A01E16FF' + - uid: 11437 components: - type: Transform rot: -1.5707963267948966 rad - pos: -0.5,7.5 + pos: 36.5,15.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 6043 + - uid: 11438 components: - type: Transform rot: 3.141592653589793 rad - pos: -2.5,4.5 + pos: -25.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6071 + color: '#A01E16FF' + - uid: 11445 components: - type: Transform rot: 3.141592653589793 rad - pos: -11.5,4.5 + pos: -25.5,-2.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6118 + color: '#A01E16FF' + - uid: 11449 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -27.5,8.5 + rot: -1.5707963267948966 rad + pos: -27.5,1.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6119 + color: '#A01E16FF' + - uid: 11469 components: - type: Transform - rot: 3.141592653589793 rad - pos: -25.5,4.5 + rot: -1.5707963267948966 rad + pos: 60.5,12.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6138 + color: '#990000FF' + - uid: 11474 components: - type: Transform - rot: 3.141592653589793 rad - pos: -29.5,4.5 + rot: -1.5707963267948966 rad + pos: 56.5,15.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 6151 + - uid: 11476 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -36.5,5.5 + rot: -1.5707963267948966 rad + pos: 53.5,15.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 6169 + - uid: 11478 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -36.5,-6.5 + rot: -1.5707963267948966 rad + pos: 60.5,14.5 parent: 31 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 6184 + - uid: 11554 components: - type: Transform - rot: 3.141592653589793 rad - pos: 34.5,4.5 + rot: -1.5707963267948966 rad + pos: -10.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6197 + color: '#1739A6FF' + - uid: 11555 components: - type: Transform - rot: 3.141592653589793 rad - pos: 39.5,4.5 + rot: -1.5707963267948966 rad + pos: -11.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6262 + color: '#1739A6FF' + - uid: 11556 components: - type: Transform - rot: 3.141592653589793 rad - pos: 20.5,9.5 + rot: -1.5707963267948966 rad + pos: -12.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6268 + color: '#1739A6FF' + - uid: 11557 components: - type: Transform rot: -1.5707963267948966 rad - pos: 38.5,-0.5 + pos: -13.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6275 + color: '#1739A6FF' + - uid: 11558 components: - type: Transform - rot: 3.141592653589793 rad - pos: 32.5,-2.5 + rot: -1.5707963267948966 rad + pos: -14.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6294 + color: '#1739A6FF' + - uid: 11559 components: - type: Transform - pos: 51.5,-4.5 + rot: -1.5707963267948966 rad + pos: -15.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 6478 + color: '#1739A6FF' + - uid: 11560 components: - type: Transform rot: -1.5707963267948966 rad - pos: 47.5,8.5 + pos: -16.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7099 + color: '#1739A6FF' + - uid: 11561 components: - type: Transform - pos: 32.5,11.5 + rot: -1.5707963267948966 rad + pos: -17.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7185 + color: '#1739A6FF' + - uid: 11562 components: - type: Transform rot: -1.5707963267948966 rad - pos: 56.5,1.5 + pos: -18.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7335 + color: '#1739A6FF' + - uid: 11563 components: - type: Transform rot: -1.5707963267948966 rad - pos: -3.5,-21.5 + pos: -19.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 7746 + color: '#1739A6FF' + - uid: 11564 components: - type: Transform - pos: -35.5,14.5 + rot: -1.5707963267948966 rad + pos: -20.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8384 + color: '#1739A6FF' + - uid: 11565 components: - type: Transform - rot: 3.141592653589793 rad - pos: 47.5,-11.5 + rot: -1.5707963267948966 rad + pos: -21.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8417 + color: '#1739A6FF' + - uid: 11566 components: - type: Transform - rot: 3.141592653589793 rad - pos: 8.5,17.5 + rot: -1.5707963267948966 rad + pos: -22.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8794 + color: '#1739A6FF' + - uid: 11568 components: - type: Transform rot: 1.5707963267948966 rad - pos: -16.5,11.5 + pos: -24.5,-18.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8873 + color: '#1739A6FF' + - uid: 11575 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 3.5,13.5 + rot: 3.141592653589793 rad + pos: -23.5,-19.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8875 + color: '#1739A6FF' + - uid: 11576 components: - type: Transform rot: 3.141592653589793 rad - pos: 28.5,4.5 + pos: -23.5,-20.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8880 + color: '#1739A6FF' + - uid: 11577 components: - type: Transform - pos: 46.5,3.5 + rot: 3.141592653589793 rad + pos: -22.5,-19.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 8944 + color: '#A01E16FF' + - uid: 11578 components: - type: Transform rot: 3.141592653589793 rad - pos: 10.5,4.5 + pos: -22.5,-20.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10376 + color: '#A01E16FF' + - uid: 11579 components: - type: Transform rot: 3.141592653589793 rad - pos: 4.5,-30.5 + pos: -22.5,-21.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10377 + color: '#A01E16FF' + - uid: 11580 components: - type: Transform - rot: 3.141592653589793 rad - pos: 0.5,-30.5 + rot: 1.5707963267948966 rad + pos: -24.5,-21.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10386 + color: '#1739A6FF' + - uid: 11581 components: - type: Transform rot: 1.5707963267948966 rad - pos: -25.5,-3.5 + pos: -25.5,-21.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10407 + color: '#1739A6FF' + - uid: 11584 components: - type: Transform - rot: 3.141592653589793 rad - pos: -24.5,-14.5 + pos: -25.5,-23.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10424 + color: '#A01E16FF' + - uid: 11585 components: - type: Transform - rot: 3.141592653589793 rad - pos: -8.5,-30.5 + pos: -26.5,-23.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10427 + color: '#1739A6FF' + - uid: 11586 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -16.5,-27.5 + pos: -26.5,-22.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10929 + color: '#1739A6FF' + - uid: 11587 components: - type: Transform rot: -1.5707963267948966 rad - pos: 56.5,-9.5 + pos: -24.5,-22.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10930 + color: '#A01E16FF' + - uid: 11588 components: - type: Transform rot: -1.5707963267948966 rad - pos: 58.5,-5.5 + pos: -23.5,-22.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11399 + color: '#A01E16FF' + - uid: 11589 components: - type: Transform - pos: -40.5,-3.5 + rot: 3.141592653589793 rad + pos: -23.5,-22.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11570 + color: '#1739A6FF' + - uid: 11593 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -25.5,-18.5 + pos: -22.5,-26.5 parent: 31 - - type: DeviceNetwork - deviceLists: - - 11611 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11571 + color: '#1739A6FF' + - uid: 11594 + components: + - type: Transform + pos: -22.5,-24.5 + parent: 31 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 11596 components: - type: Transform rot: 3.141592653589793 rad - pos: -26.5,-24.5 + pos: 48.5,-20.5 parent: 31 - - type: DeviceNetwork - deviceLists: - - 11611 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11608 + color: '#1739A6FF' + - uid: 11598 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -32.5,-22.5 + rot: -1.5707963267948966 rad + pos: -28.5,-21.5 parent: 31 - - type: DeviceNetwork - deviceLists: - - 11611 - type: AtmosPipeColor - color: '#0055CCFF' -- proto: GasVentScrubber - entities: - - uid: 95 + color: '#1739A6FF' + - uid: 11599 components: - type: Transform - rot: 3.141592653589793 rad - pos: 15.5,-11.5 + rot: -1.5707963267948966 rad + pos: -28.5,-22.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 753 + color: '#A01E16FF' + - uid: 11600 components: - type: Transform rot: -1.5707963267948966 rad - pos: 22.5,-11.5 + pos: -29.5,-22.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 867 + color: '#A01E16FF' + - uid: 11601 components: - type: Transform - rot: 3.141592653589793 rad - pos: 7.5,23.5 + rot: -1.5707963267948966 rad + pos: -29.5,-21.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 1029 + color: '#1739A6FF' + - uid: 11602 components: - type: Transform rot: -1.5707963267948966 rad - pos: 3.5,-16.5 + pos: -30.5,-21.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 1032 + color: '#1739A6FF' + - uid: 11606 components: - type: Transform - rot: 3.141592653589793 rad - pos: 10.5,23.5 + rot: 1.5707963267948966 rad + pos: -27.5,-21.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 1140 + color: '#1739A6FF' + - uid: 11607 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -20.5,-11.5 + rot: 1.5707963267948966 rad + pos: -27.5,-22.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 1542 + color: '#A01E16FF' + - uid: 11610 components: - type: Transform - pos: 35.5,4.5 + rot: 1.5707963267948966 rad + pos: -26.5,-22.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 2208 + color: '#A01E16FF' + - uid: 11635 components: - type: Transform - pos: -38.5,18.5 + pos: -26.5,-5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 3117 + color: '#1739A6FF' + - uid: 11637 components: - type: Transform - pos: 21.5,12.5 + rot: 1.5707963267948966 rad + pos: -25.5,-6.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 3118 + color: '#1739A6FF' + - uid: 11639 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 26.5,10.5 + rot: 1.5707963267948966 rad + pos: -24.5,-6.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 3274 + color: '#1739A6FF' + - uid: 11641 components: - type: Transform - pos: 41.5,4.5 + rot: 1.5707963267948966 rad + pos: -23.5,-6.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 3840 + color: '#1739A6FF' + - uid: 11654 components: - type: Transform rot: 3.141592653589793 rad - pos: 18.5,-18.5 + pos: -24.5,-6.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 4279 + color: '#A01E16FF' + - uid: 11660 components: - type: Transform rot: -1.5707963267948966 rad - pos: 26.5,17.5 + pos: -25.5,-10.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 4436 + color: '#1739A6FF' + - uid: 11662 components: - type: Transform rot: 3.141592653589793 rad - pos: -3.5,-17.5 + pos: -26.5,-7.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 4486 + color: '#1739A6FF' + - uid: 11669 components: - type: Transform rot: 3.141592653589793 rad - pos: -37.5,-11.5 + pos: -26.5,-8.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 4701 + color: '#1739A6FF' + - uid: 11670 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -7.5,21.5 + rot: 3.141592653589793 rad + pos: -26.5,-9.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 4783 + color: '#1739A6FF' + - uid: 11712 components: - type: Transform rot: -1.5707963267948966 rad - pos: 9.5,-23.5 + pos: -27.5,-7.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5332 + color: '#A01E16FF' + - uid: 11713 components: - type: Transform rot: -1.5707963267948966 rad - pos: 3.5,-6.5 + pos: -28.5,-7.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5473 + color: '#A01E16FF' + - uid: 11759 components: - type: Transform rot: 3.141592653589793 rad - pos: 3.5,2.5 + pos: 55.5,21.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5474 + - uid: 11760 components: - type: Transform - pos: 7.5,4.5 + rot: 3.141592653589793 rad + pos: 55.5,20.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5477 + - uid: 11761 components: - type: Transform - pos: 21.5,4.5 + rot: 3.141592653589793 rad + pos: 55.5,19.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5478 + - uid: 11762 components: - type: Transform rot: 3.141592653589793 rad - pos: 16.5,10.5 + pos: 55.5,18.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5496 + - uid: 11763 components: - type: Transform rot: 3.141592653589793 rad - pos: 9.5,-0.5 + pos: 55.5,17.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5541 + - uid: 11764 components: - type: Transform rot: 3.141592653589793 rad - pos: -13.5,-0.5 + pos: 55.5,16.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5544 + - uid: 11765 components: - type: Transform rot: 3.141592653589793 rad - pos: -8.5,-0.5 + pos: 55.5,15.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5545 + - uid: 11766 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -19.5,0.5 + rot: 3.141592653589793 rad + pos: 55.5,14.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5597 + - uid: 11767 components: - type: Transform - pos: 17.5,-1.5 + rot: 1.5707963267948966 rad + pos: 56.5,13.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5607 + - uid: 11768 components: - type: Transform - rot: 3.141592653589793 rad - pos: 12.5,-11.5 + rot: 1.5707963267948966 rad + pos: 57.5,13.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5637 + - uid: 11769 components: - type: Transform rot: 1.5707963267948966 rad - pos: 14.5,-14.5 + pos: 58.5,13.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5665 + - uid: 11802 components: - type: Transform rot: -1.5707963267948966 rad - pos: 22.5,-6.5 + pos: 72.5,10.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5704 + - uid: 11803 components: - type: Transform rot: -1.5707963267948966 rad - pos: 3.5,-28.5 + pos: 73.5,10.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5765 + - uid: 11804 components: - type: Transform rot: -1.5707963267948966 rad - pos: -7.5,13.5 + pos: 74.5,10.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5849 + - uid: 11805 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 3.5,18.5 + rot: 3.141592653589793 rad + pos: 75.5,9.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 5864 + - uid: 11860 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -1.5,24.5 + rot: 3.141592653589793 rad + pos: 50.5,-21.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5865 + color: '#A01E16FF' + - uid: 11870 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 3.5,23.5 + rot: 3.141592653589793 rad + pos: 72.5,2.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5871 + color: '#0055CCFF' + - uid: 11871 components: - type: Transform - pos: 2.5,30.5 + rot: 3.141592653589793 rad + pos: 72.5,1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5883 + color: '#0055CCFF' + - uid: 11872 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 9.5,17.5 + rot: 1.5707963267948966 rad + pos: 69.5,-1.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 5951 + color: '#0055CCFF' + - uid: 11883 components: - type: Transform - pos: 9.5,9.5 + pos: 66.5,-0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6024 + color: '#0055CCFF' + - uid: 11935 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -12.5,14.5 + pos: 51.5,-23.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6032 + color: '#A01E16FF' + - uid: 11936 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -12.5,20.5 + pos: 47.5,-23.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6042 + color: '#1739A6FF' + - uid: 11939 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -0.5,8.5 + pos: 47.5,-25.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6044 + color: '#1739A6FF' + - uid: 12016 components: - type: Transform - pos: -1.5,4.5 + pos: 51.5,-25.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6080 + color: '#A01E16FF' + - uid: 12067 components: - type: Transform - pos: -14.5,4.5 + pos: 48.5,-27.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6117 + color: '#1739A6FF' + - uid: 12068 components: - type: Transform - pos: -27.5,10.5 + pos: 48.5,-28.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6120 + color: '#1739A6FF' + - uid: 12069 components: - type: Transform - pos: -22.5,4.5 + pos: 50.5,-27.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6137 + color: '#A01E16FF' + - uid: 12071 components: - type: Transform - pos: -30.5,4.5 + pos: 50.5,-28.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 6152 + color: '#A01E16FF' + - uid: 12119 components: - type: Transform - pos: -36.5,4.5 + pos: 66.5,7.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 6168 + - uid: 12120 components: - type: Transform - rot: 3.141592653589793 rad - pos: -36.5,-0.5 + pos: 66.5,8.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 6267 + - uid: 12126 components: - type: Transform rot: 3.141592653589793 rad - pos: 39.5,-0.5 + pos: 66.5,11.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 6276 + - uid: 12127 components: - type: Transform rot: 3.141592653589793 rad - pos: 33.5,-1.5 + pos: 66.5,12.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 6413 + - uid: 12143 components: - type: Transform rot: -1.5707963267948966 rad - pos: 47.5,9.5 + pos: 46.5,15.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 6552 + - uid: 12144 components: - type: Transform rot: -1.5707963267948966 rad - pos: 34.5,9.5 + pos: 44.5,15.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 6581 + - uid: 12145 components: - type: Transform rot: -1.5707963267948966 rad - pos: 21.5,15.5 + pos: 42.5,15.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 7211 + - uid: 12146 components: - type: Transform rot: -1.5707963267948966 rad - pos: 56.5,3.5 + pos: 40.5,15.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 7673 + - uid: 12147 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 7.5,-13.5 + rot: -1.5707963267948966 rad + pos: 38.5,15.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 7745 + - uid: 12149 components: - type: Transform - pos: -37.5,14.5 + rot: 3.141592653589793 rad + pos: 34.5,12.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 8416 + color: '#0055CCFF' + - uid: 12150 components: - type: Transform - pos: 7.5,19.5 + rot: 3.141592653589793 rad + pos: 31.5,15.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 8438 + - uid: 12151 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -3.5,-19.5 + rot: 3.141592653589793 rad + pos: 31.5,14.5 parent: 31 - type: AtmosPipeColor color: '#990000FF' - - uid: 8795 + - uid: 12541 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -16.5,10.5 + pos: 38.5,21.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 8874 + - uid: 12542 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 3.5,12.5 + pos: 40.5,21.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 8876 + - uid: 12543 components: - type: Transform - pos: 26.5,4.5 + pos: 42.5,21.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 8879 + - uid: 12544 components: - type: Transform - rot: 3.141592653589793 rad - pos: 47.5,2.5 + pos: 44.5,21.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 10252 + - uid: 12545 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -36.5,-5.5 + pos: 46.5,21.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 10375 + - uid: 12546 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -1.5,-28.5 + pos: 46.5,22.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 10385 + - uid: 12547 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -22.5,-3.5 + pos: 44.5,22.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 10406 + - uid: 12548 components: - type: Transform - rot: 3.141592653589793 rad - pos: -23.5,-13.5 + pos: 42.5,22.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 10420 + - uid: 12549 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -8.5,-19.5 + pos: 40.5,22.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 10425 + - uid: 12550 components: - type: Transform - rot: 3.141592653589793 rad - pos: -7.5,-27.5 + pos: 38.5,22.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 10426 + - uid: 12551 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -14.5,-26.5 + pos: 36.5,22.5 parent: 31 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 10495 +- proto: GasPipeTJunction + entities: + - uid: 53 components: - type: Transform rot: 3.141592653589793 rad - pos: -32.5,-14.5 + pos: 10.5,25.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10906 + color: '#1739A6FF' + - uid: 97 components: - type: Transform - rot: 3.141592653589793 rad - pos: 49.5,-4.5 + rot: -1.5707963267948966 rad + pos: 4.5,-5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10907 + color: '#1739A6FF' + - uid: 351 components: - type: Transform - rot: 3.141592653589793 rad - pos: 56.5,-4.5 + rot: 1.5707963267948966 rad + pos: -23.5,-11.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10908 + color: '#A01E16FF' + - uid: 536 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 56.5,-7.5 + pos: -3.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10909 + color: '#A01E16FF' + - uid: 599 components: - type: Transform - rot: 3.141592653589793 rad - pos: 53.5,-11.5 + rot: 1.5707963267948966 rad + pos: -26.5,0.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11400 + color: '#A01E16FF' + - uid: 799 components: - type: Transform rot: 1.5707963267948966 rad - pos: -40.5,-5.5 + pos: 50.5,-16.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11569 + color: '#A01E16FF' + - uid: 926 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -20.5,-18.5 + rot: 1.5707963267948966 rad + pos: -9.5,-21.5 parent: 31 - - type: DeviceNetwork - deviceLists: - - 11611 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11572 + color: '#1739A6FF' + - uid: 1200 components: - type: Transform - rot: 3.141592653589793 rad - pos: -25.5,-24.5 + pos: 49.5,26.5 parent: 31 - - type: DeviceNetwork - deviceLists: - - 11611 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11596 + color: '#ADD8E6FF' + - uid: 1231 components: - type: Transform rot: -1.5707963267948966 rad - pos: -21.5,-25.5 + pos: 39.5,5.5 parent: 31 - - type: DeviceNetwork - deviceLists: - - 11611 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11597 + color: '#1739A6FF' + - uid: 1723 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -21.5,-27.5 + pos: 37.5,5.5 parent: 31 - - type: DeviceNetwork - deviceLists: - - 11611 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11609 + color: '#1739A6FF' + - uid: 1796 components: - type: Transform - rot: 3.141592653589793 rad - pos: -30.5,-23.5 + rot: 1.5707963267948966 rad + pos: -24.5,-12.5 parent: 31 - - type: DeviceNetwork - deviceLists: - - 11611 - type: AtmosPipeColor - color: '#990000FF' -- proto: GasVolumePump - entities: - - uid: 4547 + color: '#1739A6FF' + - uid: 2002 components: - - type: MetaData - name: passive coolant volumetric pump - type: Transform - rot: -1.5707963267948966 rad - pos: 68.5,8.5 + rot: 1.5707963267948966 rad + pos: -24.5,-5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 10104 + color: '#A01E16FF' + - uid: 2282 components: - - type: MetaData - name: passive coolant volumetric pump - type: Transform rot: -1.5707963267948966 rad - pos: 63.5,8.5 - parent: 31 - - uid: 10503 - components: - - type: Transform - pos: 76.5,4.5 + pos: -5.5,15.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10504 + color: '#1739A6FF' + - uid: 2482 components: - type: Transform - pos: 75.5,4.5 + pos: -5.5,29.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10505 + color: '#A01E16FF' + - uid: 2694 components: - type: Transform - pos: 74.5,4.5 + pos: -27.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 10506 + color: '#1739A6FF' + - uid: 2736 components: - type: Transform - pos: 73.5,4.5 + rot: 3.141592653589793 rad + pos: -23.5,3.5 parent: 31 - type: AtmosPipeColor - color: '#0055CCFF' - - uid: 11781 + color: '#A01E16FF' + - uid: 2737 components: - type: Transform - pos: 73.5,7.5 + rot: 3.141592653589793 rad + pos: -24.5,5.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11782 + color: '#1739A6FF' + - uid: 2868 components: - type: Transform - pos: 74.5,7.5 + rot: 1.5707963267948966 rad + pos: 4.5,-19.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11783 + color: '#1739A6FF' + - uid: 3386 components: - type: Transform - pos: 75.5,7.5 + rot: -1.5707963267948966 rad + pos: 18.5,-14.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' - - uid: 11784 + color: '#A01E16FF' + - uid: 3389 components: - type: Transform - pos: 76.5,7.5 + rot: -1.5707963267948966 rad + pos: 19.5,-15.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' -- proto: Gauze - entities: - - uid: 1407 - components: - - type: Transform - pos: 26.671059,21.801102 - parent: 31 - - uid: 10830 - components: - - type: Transform - pos: 12.447606,-4.278471 - parent: 31 -- proto: GeigerCounterWallMount - entities: - - uid: 4350 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 65.5,3.5 - parent: 31 - - uid: 6954 + color: '#1739A6FF' + - uid: 3390 components: - type: Transform rot: -1.5707963267948966 rad - pos: 54.5,3.5 + pos: -24.5,8.5 parent: 31 - - uid: 6956 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 3420 components: - type: Transform rot: 1.5707963267948966 rad - pos: 58.5,4.5 + pos: 18.5,-11.5 parent: 31 - - uid: 9461 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 3508 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -13.5,-30.5 + rot: 3.141592653589793 rad + pos: 37.5,14.5 parent: 31 -- proto: GlimmerProber - entities: - - uid: 11651 + - type: AtmosPipeColor + color: '#234FDEFF' + - uid: 3675 components: - type: Transform - pos: -13.5,-24.5 + rot: -1.5707963267948966 rad + pos: 2.5,28.5 parent: 31 -- proto: GlowstickBase - entities: - - uid: 8848 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 3707 components: - type: Transform rot: 1.5707963267948966 rad - pos: 27.737583,15.662895 + pos: -12.5,-1.5 parent: 31 - - uid: 8999 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 3828 components: - type: Transform rot: 1.5707963267948966 rad - pos: 27.649036,15.662895 + pos: 51.5,20.5 parent: 31 - - uid: 9037 + - type: AtmosPipeColor + color: '#ADD8E6FF' + - uid: 3834 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 27.826128,15.662895 + rot: -1.5707963267948966 rad + pos: 8.5,-13.5 parent: 31 -- proto: GlowstickBlue - entities: - - uid: 10987 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 3860 components: - type: Transform - pos: 52.729786,-1.2094907 + rot: -1.5707963267948966 rad + pos: -37.5,13.5 parent: 31 -- proto: GravityGenerator - entities: - - uid: 7696 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 3883 components: - type: Transform - pos: 58.5,-2.5 + pos: 50.5,26.5 parent: 31 -- proto: Grille - entities: - - uid: 47 + - type: AtmosPipeColor + color: '#ADD8E6FF' + - uid: 3940 components: - type: Transform - pos: 19.5,20.5 + rot: -1.5707963267948966 rad + pos: -35.5,13.5 parent: 31 - - uid: 64 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 3974 components: - type: Transform - pos: 5.5,-4.5 + pos: -26.5,3.5 parent: 31 - - uid: 77 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 4084 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 44.5,-14.5 + rot: 3.141592653589793 rad + pos: -27.5,-4.5 parent: 31 - - uid: 78 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 4166 components: - type: Transform - pos: 5.5,-5.5 + rot: -1.5707963267948966 rad + pos: 4.5,30.5 parent: 31 - - uid: 101 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 4181 components: - type: Transform - pos: -48.5,-12.5 + pos: -8.5,-21.5 parent: 31 - - uid: 138 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 4347 components: - type: Transform - pos: -49.5,-12.5 + rot: 1.5707963267948966 rad + pos: 9.5,-14.5 parent: 31 - - uid: 155 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 4372 components: - type: Transform - pos: 44.5,-20.5 + rot: 3.141592653589793 rad + pos: 63.5,2.5 parent: 31 - - uid: 156 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 4552 components: - type: Transform - pos: 45.5,-19.5 + pos: 68.5,9.5 parent: 31 - - uid: 249 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 4571 components: - type: Transform - pos: 11.5,-16.5 + rot: 1.5707963267948966 rad + pos: 69.5,7.5 parent: 31 - - uid: 255 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 4596 components: - type: Transform - pos: 11.5,-6.5 + rot: 1.5707963267948966 rad + pos: 50.5,-19.5 parent: 31 - - uid: 267 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 4650 components: - type: Transform - pos: -50.5,-8.5 + pos: 67.5,4.5 parent: 31 - - uid: 338 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 4708 components: - type: Transform - pos: -8.5,6.5 + rot: -1.5707963267948966 rad + pos: 33.5,8.5 parent: 31 - - uid: 360 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 4731 components: - type: Transform - pos: -13.5,6.5 + pos: 38.5,3.5 parent: 31 - - uid: 450 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5064 components: - type: Transform - pos: -23.5,26.5 + rot: 3.141592653589793 rad + pos: 7.5,25.5 parent: 31 - - uid: 469 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5342 components: - type: Transform - pos: -35.5,11.5 + rot: -1.5707963267948966 rad + pos: 4.5,-17.5 parent: 31 - - uid: 526 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5374 components: - type: Transform rot: 1.5707963267948966 rad - pos: -15.5,-0.5 + pos: 2.5,-23.5 parent: 31 - - uid: 571 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5380 components: - type: Transform - pos: 2.5,22.5 + pos: 8.5,-20.5 parent: 31 - - uid: 608 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5392 components: - type: Transform - pos: -14.5,-18.5 + pos: 3.5,3.5 parent: 31 - - uid: 653 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5396 components: - type: Transform - pos: 39.5,26.5 + rot: 3.141592653589793 rad + pos: 7.5,3.5 parent: 31 - - uid: 655 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5397 components: - type: Transform - pos: 35.5,26.5 + rot: 3.141592653589793 rad + pos: 9.5,3.5 parent: 31 - - uid: 657 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5399 components: - type: Transform - pos: -37.5,11.5 + rot: 3.141592653589793 rad + pos: 8.5,5.5 parent: 31 - - uid: 665 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5405 components: - type: Transform - pos: -41.5,5.5 + rot: 3.141592653589793 rad + pos: 13.5,5.5 parent: 31 - - uid: 711 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5419 components: - type: Transform - pos: 17.5,20.5 + rot: 3.141592653589793 rad + pos: 15.5,3.5 parent: 31 - - uid: 749 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5422 components: - type: Transform - pos: -44.5,1.5 + pos: 10.5,5.5 parent: 31 - - uid: 751 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5424 components: - type: Transform - pos: -42.5,1.5 + rot: 3.141592653589793 rad + pos: 21.5,3.5 parent: 31 - - uid: 754 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5425 components: - type: Transform - pos: 36.5,26.5 + pos: 22.5,5.5 parent: 31 - - uid: 757 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5430 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 42.5,-14.5 + pos: 28.5,5.5 parent: 31 - - uid: 772 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5439 components: - type: Transform - pos: -42.5,7.5 + rot: 3.141592653589793 rad + pos: 26.5,3.5 parent: 31 - - uid: 801 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5458 components: - type: Transform - pos: -6.5,-22.5 + rot: 3.141592653589793 rad + pos: 14.5,10.5 parent: 31 - - uid: 811 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5459 components: - type: Transform - pos: -40.5,3.5 + pos: 16.5,11.5 parent: 31 - - uid: 835 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5464 components: - type: Transform - pos: 52.5,-2.5 + rot: 3.141592653589793 rad + pos: 21.5,11.5 parent: 31 - - uid: 855 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5465 components: - type: Transform - pos: 52.5,-6.5 + rot: 3.141592653589793 rad + pos: 22.5,10.5 parent: 31 - - uid: 856 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5470 components: - type: Transform - pos: -42.5,3.5 + rot: 3.141592653589793 rad + pos: 3.5,5.5 parent: 31 - - uid: 858 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5471 components: - type: Transform - pos: -44.5,9.5 + pos: 20.5,10.5 parent: 31 - - uid: 877 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5481 components: - type: Transform - pos: -4.5,32.5 + rot: 3.141592653589793 rad + pos: 20.5,11.5 parent: 31 - - uid: 904 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5488 components: - type: Transform - pos: 40.5,20.5 + pos: 9.5,0.5 parent: 31 - - uid: 937 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5491 components: - type: Transform - pos: 19.5,21.5 + rot: 3.141592653589793 rad + pos: 8.5,-1.5 parent: 31 - - uid: 1016 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5500 components: - type: Transform - pos: 4.5,22.5 + pos: -8.5,0.5 parent: 31 - - uid: 1022 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5516 components: - type: Transform - pos: -40.5,1.5 + rot: 3.141592653589793 rad + pos: -1.5,-1.5 parent: 31 - - uid: 1106 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5528 components: - type: Transform - pos: 44.5,20.5 + pos: -13.5,0.5 parent: 31 - - uid: 1131 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5571 components: - type: Transform - pos: -41.5,4.5 + rot: 3.141592653589793 rad + pos: 11.5,-10.5 parent: 31 - - uid: 1133 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5572 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 18.5,18.5 + rot: 3.141592653589793 rad + pos: 10.5,-8.5 parent: 31 - - uid: 1180 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5574 components: - type: Transform - pos: -41.5,9.5 + rot: 3.141592653589793 rad + pos: 15.5,-8.5 parent: 31 - - uid: 1192 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5577 components: - type: Transform - pos: -19.5,2.5 + pos: 15.5,-10.5 parent: 31 - - uid: 1193 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5579 components: - type: Transform - pos: -18.5,2.5 + pos: 12.5,-10.5 parent: 31 - - uid: 1225 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5584 components: - type: Transform - pos: 25.5,10.5 + pos: 12.5,-8.5 parent: 31 - - uid: 1237 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5586 components: - type: Transform - pos: -42.5,9.5 + rot: 3.141592653589793 rad + pos: 16.5,-8.5 parent: 31 - - uid: 1278 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5587 components: - type: Transform - pos: -10.5,19.5 + rot: 3.141592653589793 rad + pos: 17.5,-10.5 parent: 31 - - uid: 1396 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5592 components: - type: Transform - pos: 10.5,31.5 + rot: 1.5707963267948966 rad + pos: 17.5,-6.5 parent: 31 - - uid: 1414 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5600 components: - type: Transform - pos: -9.5,7.5 + rot: 1.5707963267948966 rad + pos: 16.5,-5.5 parent: 31 - - uid: 1416 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5626 components: - type: Transform - pos: -13.5,9.5 + pos: 15.5,-15.5 parent: 31 - - uid: 1430 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5686 components: - type: Transform - pos: -43.5,3.5 + rot: -1.5707963267948966 rad + pos: 14.5,-20.5 parent: 31 - - uid: 1434 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5714 components: - type: Transform rot: -1.5707963267948966 rad - pos: -24.5,-17.5 + pos: 48.5,-19.5 parent: 31 - - uid: 1435 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5715 components: - type: Transform rot: -1.5707963267948966 rad - pos: -21.5,-17.5 + pos: 4.5,-14.5 parent: 31 - - uid: 1436 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5801 components: - type: Transform - rot: 3.141592653589793 rad - pos: 23.5,-8.5 + rot: 1.5707963267948966 rad + pos: 2.5,12.5 parent: 31 - - uid: 1443 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5806 components: - type: Transform - pos: 37.5,26.5 + rot: 1.5707963267948966 rad + pos: 2.5,17.5 parent: 31 - - uid: 1447 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5807 components: - type: Transform - pos: 20.5,-10.5 + rot: -1.5707963267948966 rad + pos: 4.5,19.5 parent: 31 - - uid: 1451 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5822 components: - type: Transform - pos: -44.5,3.5 + rot: 1.5707963267948966 rad + pos: 2.5,23.5 parent: 31 - - uid: 1452 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5829 components: - type: Transform - pos: -41.5,1.5 + rot: 1.5707963267948966 rad + pos: 2.5,18.5 parent: 31 - - uid: 1453 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5834 components: - type: Transform - pos: -40.5,7.5 + rot: 1.5707963267948966 rad + pos: 4.5,14.5 parent: 31 - - uid: 1454 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5835 components: - type: Transform - pos: -43.5,7.5 + rot: -1.5707963267948966 rad + pos: 4.5,13.5 parent: 31 - - uid: 1455 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5856 components: - type: Transform - pos: -40.5,9.5 + pos: 3.5,25.5 parent: 31 - - uid: 1456 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5867 components: - type: Transform - pos: -41.5,3.5 + pos: 7.5,24.5 parent: 31 - - uid: 1460 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5881 components: - type: Transform - pos: -27.5,6.5 + rot: 3.141592653589793 rad + pos: 7.5,17.5 parent: 31 - - uid: 1462 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5955 components: - type: Transform - pos: -29.5,6.5 + rot: 3.141592653589793 rad + pos: -1.5,3.5 parent: 31 - - uid: 1468 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5960 components: - type: Transform - pos: 20.5,-9.5 + pos: -2.5,5.5 parent: 31 - - uid: 1489 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5963 components: - type: Transform - pos: -11.5,8.5 + rot: 3.141592653589793 rad + pos: -4.5,5.5 parent: 31 - - uid: 1491 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5964 components: - type: Transform - pos: 13.5,-4.5 + rot: 3.141592653589793 rad + pos: -5.5,3.5 parent: 31 - - uid: 1522 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5969 components: - type: Transform - pos: 46.5,-19.5 + rot: 1.5707963267948966 rad + pos: -5.5,8.5 parent: 31 - - uid: 1526 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5973 components: - type: Transform - pos: 23.5,21.5 + rot: 1.5707963267948966 rad + pos: -4.5,7.5 parent: 31 - - uid: 1529 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5980 components: - type: Transform - pos: 44.5,-21.5 + rot: 3.141592653589793 rad + pos: -8.5,10.5 parent: 31 - - uid: 1547 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5989 components: - type: Transform - pos: 42.5,20.5 + rot: 3.141592653589793 rad + pos: -7.5,15.5 parent: 31 - - uid: 1548 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6000 components: - type: Transform - pos: 38.5,20.5 + rot: -1.5707963267948966 rad + pos: -8.5,20.5 parent: 31 - - uid: 1592 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6010 components: - type: Transform - pos: 19.5,14.5 + rot: 3.141592653589793 rad + pos: -11.5,15.5 parent: 31 - - uid: 1602 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6050 components: - type: Transform - pos: 36.5,-0.5 + rot: 3.141592653589793 rad + pos: -14.5,3.5 parent: 31 - - uid: 1604 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6051 components: - type: Transform - rot: 3.141592653589793 rad - pos: 24.5,-8.5 + pos: -11.5,5.5 parent: 31 - - uid: 1614 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6079 components: - type: Transform - pos: 2.5,-35.5 + rot: 3.141592653589793 rad + pos: -22.5,3.5 parent: 31 - - uid: 1629 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6084 components: - type: Transform - pos: 37.5,1.5 + pos: -25.5,5.5 parent: 31 - - uid: 1663 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6112 components: - type: Transform - pos: 17.5,-14.5 + pos: -16.5,5.5 parent: 31 - - uid: 1666 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6114 components: - type: Transform - pos: 49.5,-6.5 + rot: 1.5707963267948966 rad + pos: 7.5,-16.5 parent: 31 - - uid: 1692 + - uid: 6135 components: - type: Transform - pos: -43.5,1.5 + rot: 3.141592653589793 rad + pos: -30.5,3.5 parent: 31 - - uid: 1706 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6136 components: - type: Transform - pos: 41.5,26.5 + pos: -29.5,5.5 parent: 31 - - uid: 1708 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6199 components: - type: Transform - pos: 17.5,21.5 + rot: 3.141592653589793 rad + pos: 41.5,3.5 parent: 31 - - uid: 1709 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6204 components: - type: Transform - pos: 34.5,7.5 + rot: -1.5707963267948966 rad + pos: 44.5,6.5 parent: 31 - - uid: 1710 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6213 components: - type: Transform - pos: 32.5,7.5 + rot: 1.5707963267948966 rad + pos: 20.5,15.5 parent: 31 - - uid: 1720 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6216 components: - type: Transform - pos: 32.5,1.5 + rot: 3.141592653589793 rad + pos: 43.5,3.5 parent: 31 - - uid: 1721 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6223 components: - type: Transform - pos: 34.5,1.5 + rot: 3.141592653589793 rad + pos: 46.5,2.5 parent: 31 - - uid: 1722 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6226 components: - type: Transform - pos: 30.5,4.5 + pos: 47.5,3.5 parent: 31 - - uid: 1728 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6249 components: - type: Transform - pos: 1.5,-33.5 + rot: 1.5707963267948966 rad + pos: 22.5,15.5 parent: 31 - - uid: 1741 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6334 components: - type: Transform - pos: 44.5,-19.5 + rot: 1.5707963267948966 rad + pos: 32.5,10.5 parent: 31 - - uid: 1757 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6532 components: - type: Transform - pos: -49.5,-8.5 + rot: -1.5707963267948966 rad + pos: -23.5,-18.5 parent: 31 - - uid: 1759 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6571 components: - type: Transform - pos: 19.5,6.5 + rot: 1.5707963267948966 rad + pos: -22.5,-18.5 parent: 31 - - uid: 1760 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6748 components: - type: Transform - pos: 20.5,6.5 + rot: 1.5707963267948966 rad + pos: 62.5,8.5 parent: 31 - - uid: 1761 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6756 components: - type: Transform - pos: 21.5,6.5 + rot: 1.5707963267948966 rad + pos: 62.5,7.5 parent: 31 - - uid: 1762 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 6763 components: - type: Transform - pos: 22.5,6.5 + rot: 1.5707963267948966 rad + pos: 66.5,4.5 parent: 31 - - uid: 1777 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6828 components: - type: Transform - pos: 17.5,9.5 + pos: 69.5,9.5 parent: 31 - - uid: 1803 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 6943 components: - type: Transform - pos: 8.5,6.5 + pos: 49.5,3.5 parent: 31 - - uid: 1871 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6944 components: - type: Transform - pos: -1.5,27.5 + pos: 48.5,2.5 parent: 31 - - uid: 1872 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6980 components: - type: Transform - pos: -0.5,27.5 + pos: -19.5,3.5 parent: 31 - - uid: 1874 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6985 components: - type: Transform - pos: 10.5,29.5 + rot: 1.5707963267948966 rad + pos: -8.5,13.5 parent: 31 - - uid: 1875 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 7095 components: - type: Transform - pos: 9.5,31.5 + rot: 3.141592653589793 rad + pos: -22.5,19.5 parent: 31 - - uid: 1879 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 7159 components: - type: Transform - pos: 7.5,33.5 + pos: 8.5,20.5 parent: 31 - - uid: 1880 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 7352 components: - type: Transform - pos: 6.5,33.5 + rot: 1.5707963267948966 rad + pos: 66.5,6.5 parent: 31 - - uid: 1881 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 7369 components: - type: Transform - pos: 5.5,33.5 + rot: -1.5707963267948966 rad + pos: 9.5,-16.5 parent: 31 - - uid: 1882 + - uid: 7412 components: - type: Transform - pos: 4.5,33.5 + rot: 3.141592653589793 rad + pos: 2.5,-28.5 parent: 31 - - uid: 1883 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 7465 components: - type: Transform - pos: 3.5,33.5 + rot: -1.5707963267948966 rad + pos: 4.5,-29.5 parent: 31 - - uid: 1884 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 7504 components: - type: Transform - pos: 2.5,33.5 + rot: -1.5707963267948966 rad + pos: -36.5,0.5 parent: 31 - - uid: 1885 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 7547 components: - type: Transform - pos: 1.5,33.5 + pos: 64.5,-1.5 parent: 31 - - uid: 1886 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 7685 components: - type: Transform - pos: 0.5,33.5 + rot: 3.141592653589793 rad + pos: -4.5,30.5 parent: 31 - - uid: 1887 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 8105 components: - type: Transform - pos: -0.5,33.5 + pos: -9.5,-14.5 parent: 31 - - uid: 1891 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 8106 components: - type: Transform - pos: 6.5,19.5 + pos: -7.5,-16.5 parent: 31 - - uid: 1904 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 8202 components: - type: Transform - pos: -7.5,18.5 + rot: -1.5707963267948966 rad + pos: -8.5,14.5 parent: 31 - - uid: 1949 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 8702 components: - type: Transform - pos: -10.5,21.5 + rot: -1.5707963267948966 rad + pos: 48.5,-16.5 parent: 31 - - uid: 1959 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 8783 components: - type: Transform - pos: -11.5,7.5 + rot: -1.5707963267948966 rad + pos: -5.5,11.5 parent: 31 - - uid: 1969 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 8872 components: - type: Transform - pos: -10.5,14.5 + rot: 1.5707963267948966 rad + pos: 2.5,-6.5 parent: 31 - - uid: 1996 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 8877 components: - type: Transform - pos: -7.5,9.5 + pos: 34.5,5.5 parent: 31 - - uid: 2064 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 8878 components: - type: Transform - pos: -28.5,6.5 + rot: 3.141592653589793 rad + pos: 35.5,3.5 parent: 31 - - uid: 2095 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10041 components: - type: Transform - pos: -25.5,9.5 + rot: 1.5707963267948966 rad + pos: 19.5,-9.5 parent: 31 - - uid: 2099 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 10163 components: - type: Transform - pos: -9.5,8.5 + rot: -1.5707963267948966 rad + pos: -27.5,0.5 parent: 31 - - uid: 2115 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 10164 components: - type: Transform - pos: 13.5,-1.5 + rot: -1.5707963267948966 rad + pos: -26.5,1.5 parent: 31 - - uid: 2136 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10251 components: - type: Transform - pos: 8.5,-7.5 + rot: -1.5707963267948966 rad + pos: -35.5,-6.5 parent: 31 - - uid: 2149 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 10414 components: - type: Transform - pos: 11.5,2.5 + rot: 1.5707963267948966 rad + pos: 31.5,16.5 parent: 31 - - uid: 2150 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 10415 components: - type: Transform - pos: 10.5,2.5 + pos: -2.5,-14.5 parent: 31 - - uid: 2151 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 10429 components: - type: Transform - pos: 9.5,2.5 + rot: -1.5707963267948966 rad + pos: -7.5,-26.5 parent: 31 - - uid: 2152 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10430 components: - type: Transform - pos: 8.5,2.5 + rot: -1.5707963267948966 rad + pos: -8.5,-27.5 parent: 31 - - uid: 2153 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 10515 components: - type: Transform - pos: 7.5,2.5 + rot: 3.141592653589793 rad + pos: 35.5,15.5 parent: 31 - - uid: 2205 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 10910 components: - type: Transform - pos: 20.5,-5.5 + rot: 1.5707963267948966 rad + pos: 49.5,-3.5 parent: 31 - - uid: 2209 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10911 components: - type: Transform - pos: -6.5,-20.5 + pos: 53.5,-3.5 parent: 31 - - uid: 2245 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10912 components: - type: Transform - pos: -7.5,6.5 + anchored: False + rot: 1.5707963267948966 rad + pos: 53.5,-7.5 parent: 31 - - uid: 2277 + - type: AtmosPipeColor + color: '#990000FF' + - type: Physics + canCollide: True + bodyType: Dynamic + - uid: 10931 components: - type: Transform - rot: 3.141592653589793 rad - pos: -16.5,-24.5 + rot: 1.5707963267948966 rad + pos: 48.5,-5.5 parent: 31 - - uid: 2307 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 10943 components: - type: Transform - pos: -35.5,-22.5 + rot: 3.141592653589793 rad + pos: 51.5,-5.5 parent: 31 - - uid: 2423 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 10954 components: - type: Transform - pos: 28.5,-14.5 + rot: 3.141592653589793 rad + pos: 48.5,-8.5 parent: 31 - - uid: 2848 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 11114 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -25.5,-17.5 + rot: 1.5707963267948966 rad + pos: 43.5,12.5 parent: 31 - - uid: 2849 + - uid: 11336 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -20.5,-17.5 + rot: 1.5707963267948966 rad + pos: -27.5,-3.5 parent: 31 - - uid: 3109 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 11406 components: - type: Transform - pos: 60.5,11.5 + rot: -1.5707963267948966 rad + pos: -35.5,-4.5 parent: 31 - - uid: 3152 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 11574 components: - type: Transform - pos: 47.5,-18.5 + rot: -1.5707963267948966 rad + pos: -23.5,-21.5 parent: 31 - - uid: 3157 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 11582 components: - type: Transform - pos: 56.5,-25.5 + pos: -26.5,-21.5 parent: 31 - - uid: 3158 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 11583 components: - type: Transform - pos: 56.5,-24.5 + pos: -25.5,-22.5 parent: 31 - - uid: 3415 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 11638 components: - type: Transform - pos: -16.5,-40.5 + rot: 1.5707963267948966 rad + pos: -26.5,-6.5 parent: 31 - - uid: 3826 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 11689 components: - type: Transform - pos: -14.5,29.5 + rot: -1.5707963267948966 rad + pos: -24.5,-7.5 parent: 31 - - uid: 3827 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 11801 components: - type: Transform - pos: -15.5,28.5 + pos: 74.5,8.5 parent: 31 - - uid: 3828 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 11807 components: - type: Transform - pos: -18.5,29.5 + rot: 3.141592653589793 rad + pos: 75.5,3.5 parent: 31 - - uid: 3842 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 11808 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -1.5,13.5 + rot: 3.141592653589793 rad + pos: 74.5,3.5 parent: 31 - - uid: 4032 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 11809 components: - type: Transform - pos: 28.5,-13.5 + rot: 3.141592653589793 rad + pos: 73.5,3.5 parent: 31 - - uid: 4114 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 11873 components: - type: Transform - pos: -12.5,6.5 + pos: 67.5,-1.5 parent: 31 - - uid: 4115 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 11874 components: - type: Transform - pos: -3.5,6.5 + pos: 68.5,-1.5 parent: 31 - - uid: 4117 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 11875 components: - type: Transform - pos: -3.5,8.5 + rot: 3.141592653589793 rad + pos: 66.5,-1.5 parent: 31 - - uid: 4223 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 11876 components: - type: Transform - pos: -2.5,9.5 + pos: 65.5,-1.5 parent: 31 - - uid: 4241 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 11880 components: - type: Transform - pos: 7.5,36.5 + rot: 1.5707963267948966 rad + pos: 66.5,0.5 parent: 31 - - uid: 4308 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 11881 components: - type: Transform - pos: 5.5,36.5 + rot: 3.141592653589793 rad + pos: 67.5,0.5 parent: 31 - - uid: 4376 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 12043 components: - type: Transform - pos: 41.5,-26.5 + rot: 1.5707963267948966 rad + pos: 51.5,-24.5 parent: 31 - - uid: 4377 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 12044 components: - type: Transform - pos: 45.5,-29.5 + rot: -1.5707963267948966 rad + pos: 47.5,-24.5 parent: 31 - - uid: 4386 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 12148 components: - type: Transform rot: -1.5707963267948966 rad - pos: 37.5,-26.5 + pos: 34.5,13.5 parent: 31 - - uid: 4393 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 12249 components: - type: Transform - pos: 58.5,6.5 + rot: -1.5707963267948966 rad + pos: 33.5,14.5 parent: 31 - - uid: 4394 + - type: AtmosPipeColor + color: '#0055CCFF' +- proto: GasPort + entities: + - uid: 188 components: - type: Transform - pos: 61.5,6.5 + pos: -11.5,-28.5 parent: 31 - - uid: 4399 + - uid: 1272 components: - type: Transform rot: 3.141592653589793 rad - pos: 54.5,1.5 + pos: 50.5,16.5 parent: 31 - - uid: 4403 + - uid: 1329 components: - type: Transform rot: 3.141592653589793 rad - pos: 54.5,3.5 + pos: 32.5,16.5 parent: 31 - - uid: 4445 + - uid: 6502 components: - type: Transform - pos: 59.5,-10.5 + rot: 1.5707963267948966 rad + pos: 31.5,9.5 parent: 31 - - uid: 4460 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6854 components: - type: Transform rot: 3.141592653589793 rad - pos: -17.5,-24.5 - parent: 31 - - uid: 4487 - components: - - type: Transform - pos: 34.5,-13.5 + pos: 65.5,6.5 parent: 31 - - uid: 4500 + - uid: 6893 components: - type: Transform - pos: 54.5,-7.5 + rot: 1.5707963267948966 rad + pos: 31.5,8.5 parent: 31 - - uid: 4510 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 8832 components: - type: Transform - pos: 31.5,-23.5 + rot: 3.141592653589793 rad + pos: 43.5,11.5 parent: 31 - - uid: 4532 + - uid: 11147 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 36.5,-22.5 + pos: 63.5,4.5 parent: 31 - - uid: 4595 + - uid: 11886 components: - type: Transform - pos: 41.5,-22.5 + rot: 3.141592653589793 rad + pos: 68.5,-3.5 parent: 31 - - uid: 4596 + - uid: 11887 components: - type: Transform - pos: 40.5,-22.5 + rot: 3.141592653589793 rad + pos: 67.5,-3.5 parent: 31 - - uid: 4597 + - uid: 12045 components: - type: Transform - pos: 42.5,-26.5 + rot: 3.141592653589793 rad + pos: 63.5,5.5 parent: 31 - - uid: 4598 + - uid: 12153 components: + - type: MetaData + desc: A note attached reads, "Your gas supply is large, but finite. Buy more gas from Logistics if you run out." + name: gas input - type: Transform - pos: 44.5,-27.5 + rot: 3.141592653589793 rad + pos: 31.5,13.5 parent: 31 - - uid: 4599 + - uid: 12553 components: - type: Transform - pos: 44.5,-28.5 + pos: 34.5,23.5 parent: 31 - - uid: 4600 + - uid: 12554 components: - type: Transform - pos: 44.5,-29.5 + rot: -1.5707963267948966 rad + pos: 68.5,10.5 parent: 31 - - uid: 4612 + - uid: 12555 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 36.5,-26.5 + pos: 36.5,23.5 parent: 31 - - uid: 4614 + - uid: 12557 components: - type: Transform - pos: 34.5,-12.5 + pos: 38.5,23.5 parent: 31 - - uid: 4618 + - uid: 12559 components: - type: Transform - pos: 51.5,-30.5 + pos: 40.5,23.5 parent: 31 - - uid: 4619 + - uid: 12561 components: - type: Transform - pos: 53.5,-29.5 + pos: 42.5,23.5 parent: 31 - - uid: 4620 + - uid: 12563 components: - type: Transform - pos: 54.5,-28.5 + pos: 44.5,23.5 parent: 31 - - uid: 4621 + - uid: 12564 components: - type: Transform - pos: 56.5,-26.5 + pos: 44.5,22.5 parent: 31 - - uid: 4622 + - uid: 12565 components: - type: Transform - pos: 55.5,-22.5 + pos: 46.5,23.5 parent: 31 - - uid: 4624 +- proto: GasPressurePump + entities: + - uid: 555 components: + - type: MetaData + desc: A pump that moves tritium by pressure. + name: tritium pump - type: Transform - pos: 56.5,-23.5 + pos: 45.5,17.5 parent: 31 - - uid: 4625 + - type: GasPressurePump + targetPressure: 1 + - uid: 842 components: - type: Transform - pos: 56.5,-22.5 + rot: -1.5707963267948966 rad + pos: -12.5,-29.5 parent: 31 - - uid: 4660 + - uid: 905 components: + - type: MetaData + desc: A pump that moves O2 by pressure. + name: O2 pump - type: Transform - pos: 31.5,-25.5 + pos: 37.5,17.5 parent: 31 - - uid: 4686 + - type: AtmosPipeColor + color: '#234FDEFF' + - uid: 1513 components: + - type: MetaData + desc: A pump that moves N2O by pressure. + name: N2O pump - type: Transform - pos: 4.5,36.5 + pos: 39.5,17.5 parent: 31 - - uid: 4702 + - type: GasPressurePump + targetPressure: 1 + - uid: 1517 components: + - type: MetaData + desc: A pump that moves N2 by pressure. + name: N2 pump - type: Transform - rot: -1.5707963267948966 rad - pos: -9.5,18.5 + pos: 35.5,17.5 parent: 31 - - uid: 4844 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 1570 components: + - type: MetaData + desc: A pump that moves plasma by pressure. + name: plasma pump - type: Transform - pos: 12.5,-32.5 + pos: 43.5,17.5 parent: 31 - - uid: 4853 + - type: GasPressurePump + targetPressure: 1000 + - type: AtmosPipeColor + color: '#F88379FF' + - uid: 1573 components: + - type: MetaData + desc: A pump that moves CO2 by pressure. + name: CO2 pump - type: Transform - pos: 58.5,3.5 + pos: 41.5,17.5 parent: 31 - - uid: 4879 + - type: GasPressurePump + targetPressure: 1 + - uid: 3507 components: + - type: MetaData + name: gas chamber output - type: Transform - pos: -2.5,6.5 + rot: 3.141592653589793 rad + pos: 49.5,15.5 parent: 31 - - uid: 4881 + - type: AtmosPipeColor + color: '#00FF00FF' + - uid: 3765 components: - type: Transform - pos: -0.5,6.5 + rot: 3.141592653589793 rad + pos: 33.5,17.5 parent: 31 - - uid: 4926 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 3826 components: + - type: MetaData + name: gas cooling output - type: Transform - pos: 15.5,20.5 + pos: 50.5,17.5 parent: 31 - - uid: 4928 + - type: AtmosPipeColor + color: '#ADD8E6FF' + - uid: 4124 components: + - type: MetaData + name: atmos to active coolant - type: Transform - pos: 15.5,21.5 + rot: 1.5707963267948966 rad + pos: 63.5,-1.5 parent: 31 - - uid: 5066 + - type: GasPressurePump + targetPressure: 1000 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 4363 components: + - type: MetaData + name: passive coolant removal - type: Transform - pos: -1.5,9.5 + pos: 63.5,6.5 parent: 31 - - uid: 5067 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 4388 components: + - type: MetaData + name: waste to filters - type: Transform - pos: -3.5,9.5 + rot: 3.141592653589793 rad + pos: 33.5,11.5 parent: 31 - - uid: 5071 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 4389 components: + - type: MetaData + name: atmos to distro - type: Transform - pos: 13.5,1.5 + pos: 34.5,11.5 parent: 31 - - uid: 5072 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6351 components: + - type: MetaData + desc: A pump that moves H2O by pressure. + name: H2O pump - type: Transform - pos: 13.5,-2.5 + pos: 47.5,17.5 parent: 31 - - uid: 5082 + - uid: 7663 components: - type: Transform - pos: 13.5,0.5 + pos: 9.5,-15.5 parent: 31 - - uid: 5102 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 9058 components: + - type: MetaData + name: gas mix to Supermatter coolant - type: Transform - pos: 51.5,-6.5 + rot: 1.5707963267948966 rad + pos: 48.5,15.5 parent: 31 - - uid: 5111 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 9079 components: + - type: MetaData + name: supermatter waste gas - type: Transform - pos: -0.5,36.5 + pos: 31.5,17.5 parent: 31 - - uid: 5117 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 11149 components: + - type: MetaData + name: passive coolant input - type: Transform - pos: -3.5,7.5 + pos: 63.5,3.5 parent: 31 - - uid: 5139 + - type: GasPressurePump + targetPressure: 1000 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 11294 components: + - type: MetaData + name: gas chamber imput - type: Transform - pos: 8.5,-11.5 + rot: 1.5707963267948966 rad + pos: 44.5,12.5 parent: 31 - - uid: 5198 + - type: GasPressurePump + targetPressure: 4500 + - uid: 11884 components: + - type: MetaData + name: active coolant removal - type: Transform - pos: -28.5,18.5 + pos: 67.5,-2.5 parent: 31 - - uid: 5199 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 11885 components: - type: Transform - pos: -29.5,18.5 + rot: 3.141592653589793 rad + pos: 68.5,-2.5 parent: 31 - - uid: 5215 + - type: GasPressurePump + targetPressure: 1000 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 12556 components: - type: Transform - pos: -10.5,13.5 + rot: -1.5707963267948966 rad + pos: 67.5,10.5 parent: 31 - - uid: 5227 + - type: GasPressurePump + targetPressure: 1500 +- proto: GasThermoMachineFreezer + entities: + - uid: 6720 components: - type: Transform - pos: 11.5,-15.5 + pos: 62.5,9.5 parent: 31 - - uid: 5244 + - type: GasThermoMachine + targetTemperature: 73.15 + - type: ApcPowerReceiver + powerDisabled: False + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 8125 components: - type: Transform - pos: -39.5,21.5 + rot: 3.141592653589793 rad + pos: 7.5,-17.5 parent: 31 - - uid: 5251 + - uid: 8860 components: - type: Transform - pos: -39.5,27.5 + pos: 38.5,11.5 parent: 31 - - uid: 5313 + - uid: 11878 components: - type: Transform - pos: -43.5,9.5 + rot: 3.141592653589793 rad + pos: 64.5,-2.5 parent: 31 - - uid: 5898 + - type: GasThermoMachine + targetTemperature: 73.15 + - type: ApcPowerReceiver + powerDisabled: False + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 11879 components: - type: Transform - pos: -41.5,7.5 + rot: 3.141592653589793 rad + pos: 65.5,-2.5 parent: 31 - - uid: 5978 + - type: GasThermoMachine + targetTemperature: 73.15 + - type: ApcPowerReceiver + powerDisabled: False + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 12251 components: - type: Transform - pos: -54.5,-9.5 + pos: 32.5,15.5 parent: 31 - - uid: 6277 + - type: AtmosPipeColor + color: '#0055CCFF' +- proto: GasThermoMachineFreezerEnabled + entities: + - uid: 3850 components: - type: Transform - pos: -9.5,32.5 + rot: -1.5707963267948966 rad + pos: 52.5,20.5 parent: 31 - - uid: 6280 + - type: AtmosPipeColor + color: '#ADD8E6FF' +- proto: GasThermoMachineHeater + entities: + - uid: 8861 components: - type: Transform - pos: -10.5,32.5 + pos: 39.5,11.5 parent: 31 - - uid: 6287 + - uid: 12252 components: - type: Transform - pos: 54.5,-8.5 + pos: 33.5,15.5 parent: 31 - - uid: 6288 + - type: AtmosPipeColor + color: '#0055CCFF' +- proto: GasValve + entities: + - uid: 8455 components: - type: Transform - pos: -6.5,34.5 + rot: 3.141592653589793 rad + pos: 66.5,9.5 parent: 31 - - uid: 6366 + - uid: 9077 components: + - type: MetaData + name: atmos to core coolant - type: Transform - pos: 22.5,14.5 + pos: 64.5,10.5 parent: 31 - - uid: 6367 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 9508 components: - type: Transform - pos: 40.5,18.5 + rot: 3.141592653589793 rad + pos: 48.5,17.5 parent: 31 - - uid: 6369 + - type: GasValve + open: False + - type: AtmosPipeColor + color: '#990000FF' +- proto: GasVentPump + entities: + - uid: 65 components: - type: Transform - pos: 42.5,18.5 + pos: 15.5,-7.5 parent: 31 - - uid: 6380 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 100 components: - type: Transform - pos: 39.5,18.5 + rot: 1.5707963267948966 rad + pos: 3.5,-17.5 parent: 31 - - uid: 6381 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 1094 components: - type: Transform - pos: 38.5,18.5 + rot: -1.5707963267948966 rad + pos: 21.5,-9.5 parent: 31 - - uid: 6383 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 1230 components: - type: Transform - pos: 37.5,18.5 + rot: -1.5707963267948966 rad + pos: 9.5,20.5 parent: 31 - - uid: 6390 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 1305 components: - type: Transform - pos: 50.5,10.5 + rot: -1.5707963267948966 rad + pos: -18.5,-12.5 parent: 31 - - uid: 6391 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 1688 components: - type: Transform - pos: 35.5,18.5 + pos: -36.5,18.5 parent: 31 - - uid: 6393 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 2213 components: - type: Transform - pos: 49.5,10.5 + rot: -1.5707963267948966 rad + pos: 10.5,-14.5 parent: 31 - - uid: 6394 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 3116 components: - type: Transform - pos: 48.5,10.5 + rot: -1.5707963267948966 rad + pos: 26.5,9.5 parent: 31 - - uid: 6401 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 3368 components: - type: Transform - pos: 34.5,18.5 + pos: -5.5,16.5 parent: 31 - - uid: 6405 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 3835 components: - type: Transform - pos: 23.5,20.5 + rot: 3.141592653589793 rad + pos: 19.5,-17.5 parent: 31 - - uid: 6415 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 4013 components: - type: Transform rot: 3.141592653589793 rad - pos: 54.5,17.5 + pos: -9.5,-22.5 parent: 31 - - uid: 6440 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 4185 components: - type: Transform - pos: 43.5,18.5 + pos: -7.5,20.5 parent: 31 - - uid: 6445 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 4266 components: - type: Transform - pos: 45.5,18.5 + rot: -1.5707963267948966 rad + pos: 23.5,15.5 parent: 31 - - uid: 6453 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 4267 components: - type: Transform - rot: 3.141592653589793 rad - pos: 54.5,15.5 + rot: -1.5707963267948966 rad + pos: 26.5,16.5 parent: 31 - - uid: 6455 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 4303 components: - type: Transform - pos: 33.5,18.5 + rot: 3.141592653589793 rad + pos: -2.5,-15.5 parent: 31 - - uid: 6456 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 4468 components: - type: Transform rot: 3.141592653589793 rad - pos: 54.5,16.5 + pos: 15.5,-28.5 parent: 31 - - uid: 6458 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 4484 components: - type: Transform - pos: 45.5,7.5 + rot: 3.141592653589793 rad + pos: -35.5,-9.5 parent: 31 - - uid: 6464 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 4584 components: - type: Transform - pos: 45.5,9.5 + pos: 48.5,-15.5 parent: 31 - - uid: 6472 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 4586 components: - type: Transform - pos: 47.5,18.5 + rot: 1.5707963267948966 rad + pos: 47.5,-19.5 parent: 31 - - uid: 6481 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 4666 components: - type: Transform - rot: 3.141592653589793 rad - pos: 48.5,24.5 + rot: 1.5707963267948966 rad + pos: -29.5,0.5 parent: 31 - - uid: 6503 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5365 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 55.5,24.5 + rot: 1.5707963267948966 rad + pos: 3.5,-5.5 parent: 31 - - uid: 6504 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5472 components: - type: Transform - pos: 44.5,18.5 + pos: 3.5,6.5 parent: 31 - - uid: 6505 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5476 components: - type: Transform rot: 3.141592653589793 rad - pos: 49.5,24.5 + pos: 22.5,4.5 parent: 31 - - uid: 6508 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5479 components: - type: Transform - pos: 46.5,18.5 + pos: 14.5,11.5 parent: 31 - - uid: 6539 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5495 components: - type: Transform - pos: 47.5,10.5 + pos: 8.5,-0.5 parent: 31 - - uid: 6551 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5542 components: - type: Transform - pos: 48.5,18.5 + pos: -12.5,-0.5 parent: 31 - - uid: 6565 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5543 components: - type: Transform - pos: 46.5,14.5 + pos: -1.5,-0.5 parent: 31 - - uid: 6605 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5605 components: - type: Transform - pos: 47.5,14.5 + pos: 16.5,-0.5 parent: 31 - - uid: 6606 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5606 components: - type: Transform - pos: 48.5,14.5 + rot: 3.141592653589793 rad + pos: 12.5,-9.5 parent: 31 - - uid: 6613 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5638 components: - type: Transform - pos: 36.5,18.5 + rot: 3.141592653589793 rad + pos: 14.5,-16.5 parent: 31 - - uid: 6641 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5666 components: - type: Transform - pos: -41.5,-8.5 + rot: -1.5707963267948966 rad + pos: 23.5,-5.5 parent: 31 - - uid: 6645 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5698 components: - type: Transform rot: -1.5707963267948966 rad - pos: 58.5,23.5 + pos: 9.5,-25.5 parent: 31 - - uid: 6721 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5700 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 65.5,14.5 + rot: 3.141592653589793 rad + pos: -12.5,-3.5 parent: 31 - - uid: 6725 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5848 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 58.5,22.5 + rot: 1.5707963267948966 rad + pos: 3.5,19.5 parent: 31 - - uid: 6726 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5929 components: - type: Transform rot: -1.5707963267948966 rad - pos: 53.5,24.5 + pos: -21.5,23.5 parent: 31 - - uid: 6728 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5941 components: - type: Transform rot: -1.5707963267948966 rad - pos: 58.5,24.5 + pos: 13.5,14.5 parent: 31 - - uid: 6729 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 5950 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 56.5,24.5 + rot: 1.5707963267948966 rad + pos: 7.5,9.5 parent: 31 - - uid: 6730 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6018 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 57.5,24.5 + rot: 1.5707963267948966 rad + pos: -12.5,15.5 parent: 31 - - uid: 6731 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6033 + components: + - type: Transform + pos: -12.5,19.5 + parent: 31 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6041 components: - type: Transform rot: -1.5707963267948966 rad - pos: 52.5,24.5 + pos: -0.5,7.5 parent: 31 - - uid: 6733 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6043 components: - type: Transform - pos: 58.5,0.5 + rot: 3.141592653589793 rad + pos: -2.5,4.5 parent: 31 - - uid: 6742 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6071 components: - type: Transform - pos: 46.5,10.5 + rot: 3.141592653589793 rad + pos: -11.5,4.5 parent: 31 - - uid: 6812 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6118 components: - type: Transform rot: 1.5707963267948966 rad - pos: -10.5,-42.5 + pos: -27.5,8.5 parent: 31 - - uid: 6815 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6119 components: - type: Transform - pos: 41.5,18.5 + rot: 3.141592653589793 rad + pos: -25.5,4.5 parent: 31 - - uid: 6841 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6138 components: - type: Transform - pos: 50.5,14.5 + rot: 3.141592653589793 rad + pos: -29.5,4.5 parent: 31 - - uid: 6844 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6151 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,5.5 + parent: 31 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6169 components: - type: Transform - pos: 49.5,14.5 + rot: 1.5707963267948966 rad + pos: -36.5,-6.5 parent: 31 - - uid: 6847 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6184 components: - type: Transform rot: 3.141592653589793 rad - pos: 51.5,24.5 + pos: 34.5,4.5 parent: 31 - - uid: 6863 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6197 components: - type: Transform - pos: 27.5,22.5 + rot: 3.141592653589793 rad + pos: 39.5,4.5 parent: 31 - - uid: 6868 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6262 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 79.5,13.5 + rot: 3.141592653589793 rad + pos: 20.5,9.5 parent: 31 - - uid: 6873 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6268 components: - type: Transform - pos: 59.5,11.5 + rot: -1.5707963267948966 rad + pos: 38.5,-0.5 parent: 31 - - uid: 6874 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6275 components: - type: Transform rot: 3.141592653589793 rad - pos: 50.5,24.5 + pos: 32.5,-2.5 parent: 31 - - uid: 6933 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6294 components: - type: Transform - pos: 49.5,18.5 + pos: 51.5,-4.5 parent: 31 - - uid: 6950 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6318 components: - type: Transform - pos: -7.5,34.5 + pos: -4.5,31.5 parent: 31 - - uid: 6951 + - type: DeviceNetwork + deviceLists: + - 7152 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6321 components: - type: Transform - pos: -5.5,32.5 + pos: -5.5,35.5 parent: 31 - - uid: 6952 + - type: DeviceNetwork + deviceLists: + - 7152 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6478 components: - type: Transform - pos: -10.5,31.5 + rot: -1.5707963267948966 rad + pos: 47.5,8.5 parent: 31 - - uid: 6958 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6697 components: - type: Transform - pos: 51.5,-31.5 + pos: 4.5,31.5 parent: 31 - - uid: 6961 + - type: DeviceNetwork + deviceLists: + - 7152 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 6874 components: - type: Transform - pos: 47.5,-31.5 + rot: 1.5707963267948966 rad + pos: -1.5,25.5 parent: 31 - - uid: 6962 + - type: DeviceNetwork + deviceLists: + - 7152 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 7099 components: - type: Transform - pos: 47.5,-30.5 + pos: 32.5,11.5 parent: 31 - - uid: 6963 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 7121 components: - type: Transform - pos: 46.5,-29.5 + pos: 7.5,26.5 parent: 31 - - uid: 6964 + - type: DeviceNetwork + deviceLists: + - 7152 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 7129 components: - type: Transform - pos: 34.5,-14.5 + rot: 3.141592653589793 rad + pos: 3.5,24.5 parent: 31 - - uid: 6967 + - type: DeviceNetwork + deviceLists: + - 7152 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 7131 components: - type: Transform - pos: 40.5,-26.5 + pos: 10.5,26.5 parent: 31 - - uid: 6971 + - type: DeviceNetwork + deviceLists: + - 7152 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 7143 components: - type: Transform - pos: 42.5,-22.5 + pos: 12.5,26.5 parent: 31 - - uid: 7011 + - type: DeviceNetwork + deviceLists: + - 7152 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 7185 components: - type: Transform - pos: 51.5,-18.5 + rot: -1.5707963267948966 rad + pos: 56.5,1.5 parent: 31 - - uid: 7012 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 7335 components: - type: Transform - pos: 51.5,-17.5 + rot: -1.5707963267948966 rad + pos: -3.5,-21.5 parent: 31 - - uid: 7013 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 7746 components: - type: Transform - pos: 50.5,-17.5 + pos: -35.5,14.5 parent: 31 - - uid: 7014 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 8417 components: - type: Transform - pos: 49.5,-17.5 + rot: 3.141592653589793 rad + pos: 8.5,17.5 parent: 31 - - uid: 7015 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 8721 components: - type: Transform - pos: 48.5,-17.5 + rot: 1.5707963267948966 rad + pos: -19.5,-2.5 parent: 31 - - uid: 7016 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 8725 components: - type: Transform - pos: 47.5,-17.5 + rot: 1.5707963267948966 rad + pos: -29.5,-4.5 parent: 31 - - uid: 7017 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 8794 components: - type: Transform - pos: 52.5,-19.5 + rot: 1.5707963267948966 rad + pos: -16.5,11.5 parent: 31 - - uid: 7018 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 8873 components: - type: Transform - pos: 53.5,-19.5 + rot: 1.5707963267948966 rad + pos: 3.5,13.5 parent: 31 - - uid: 7019 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 8875 components: - type: Transform - pos: 54.5,-19.5 + rot: 3.141592653589793 rad + pos: 28.5,4.5 parent: 31 - - uid: 7020 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 8880 components: - type: Transform - pos: 54.5,-20.5 + pos: 46.5,3.5 parent: 31 - - uid: 7021 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 8944 components: - type: Transform - pos: 54.5,-21.5 + rot: 3.141592653589793 rad + pos: 10.5,4.5 parent: 31 - - uid: 7022 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 10376 components: - type: Transform - pos: 55.5,-26.5 + rot: 3.141592653589793 rad + pos: 4.5,-30.5 parent: 31 - - uid: 7023 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 10377 components: - type: Transform - pos: 54.5,-27.5 + rot: 3.141592653589793 rad + pos: 0.5,-30.5 parent: 31 - - uid: 7024 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 10407 components: - type: Transform - pos: 54.5,-29.5 + rot: 3.141592653589793 rad + pos: -24.5,-14.5 parent: 31 - - uid: 7025 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 10424 components: - type: Transform - pos: 52.5,-29.5 + rot: 3.141592653589793 rad + pos: -8.5,-30.5 parent: 31 - - uid: 7028 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 10427 components: - type: Transform - pos: -7.5,35.5 + rot: 1.5707963267948966 rad + pos: -16.5,-27.5 parent: 31 - - uid: 7038 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 10929 components: - type: Transform rot: -1.5707963267948966 rad - pos: 37.5,-22.5 + pos: 56.5,-9.5 parent: 31 - - uid: 7039 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 10930 components: - type: Transform rot: -1.5707963267948966 rad - pos: 35.5,-22.5 - parent: 31 - - uid: 7044 - components: - - type: Transform - pos: 28.5,-12.5 + pos: 58.5,-5.5 parent: 31 - - uid: 7070 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 11399 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 61.5,20.5 + pos: -40.5,-3.5 parent: 31 - - uid: 7112 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 11448 components: - type: Transform rot: -1.5707963267948966 rad - pos: 73.5,14.5 + pos: -26.5,-3.5 parent: 31 - - uid: 7150 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 11570 components: - type: Transform - pos: -5.5,34.5 + rot: 1.5707963267948966 rad + pos: -25.5,-18.5 parent: 31 - - uid: 7186 + - type: DeviceNetwork + deviceLists: + - 11611 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 11571 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 66.5,11.5 + rot: 3.141592653589793 rad + pos: -26.5,-24.5 parent: 31 - - uid: 7187 + - type: DeviceNetwork + deviceLists: + - 11611 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 11608 components: - type: Transform rot: 1.5707963267948966 rad - pos: 66.5,12.5 + pos: -32.5,-22.5 parent: 31 - - uid: 7188 + - type: DeviceNetwork + deviceLists: + - 11611 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 11644 components: - type: Transform rot: -1.5707963267948966 rad - pos: 64.5,14.5 + pos: -22.5,-6.5 parent: 31 - - uid: 7192 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 11862 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 66.5,14.5 + rot: 1.5707963267948966 rad + pos: 46.5,-24.5 parent: 31 - - uid: 7193 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 12078 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 61.5,15.5 + rot: 3.141592653589793 rad + pos: 48.5,-29.5 parent: 31 - - uid: 7194 + - type: AtmosPipeColor + color: '#1739A6FF' +- proto: GasVentScrubber + entities: + - uid: 95 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 62.5,15.5 + rot: 3.141592653589793 rad + pos: 15.5,-11.5 parent: 31 - - uid: 7195 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 475 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 61.5,18.5 + rot: 1.5707963267948966 rad + pos: 47.5,11.5 parent: 31 - - uid: 7196 + - type: DeviceNetwork + deviceLists: + - 3855 + - type: AtmosPipeColor + color: '#00FF00FF' + - uid: 494 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 60.5,20.5 + rot: 1.5707963267948966 rad + pos: 46.5,11.5 parent: 31 - - uid: 7198 + - type: DeviceNetwork + deviceLists: + - 3855 + - type: AtmosPipeColor + color: '#00FF00FF' + - uid: 526 components: - type: Transform rot: -1.5707963267948966 rad - pos: 59.5,20.5 + pos: 46.5,13.5 parent: 31 - - uid: 7199 + - type: DeviceNetwork + deviceLists: + - 3855 + - type: AtmosPipeColor + color: '#00FF00FF' + - uid: 533 components: - type: Transform rot: -1.5707963267948966 rad - pos: 71.5,14.5 + pos: 50.5,13.5 parent: 31 - - uid: 7200 + - type: DeviceNetwork + deviceLists: + - 3855 + - type: AtmosPipeColor + color: '#00FF00FF' + - uid: 753 components: - type: Transform rot: -1.5707963267948966 rad - pos: 72.5,14.5 + pos: 22.5,-11.5 parent: 31 - - uid: 7201 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 1029 components: - type: Transform rot: -1.5707963267948966 rad - pos: 76.5,14.5 + pos: 3.5,-16.5 parent: 31 - - uid: 7202 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 1140 components: - type: Transform rot: -1.5707963267948966 rad - pos: 75.5,14.5 + pos: -20.5,-11.5 parent: 31 - - uid: 7203 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 1542 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 77.5,14.5 + pos: 35.5,4.5 parent: 31 - - uid: 7204 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 2058 components: - type: Transform rot: -1.5707963267948966 rad - pos: 80.5,11.5 + pos: 52.5,-24.5 parent: 31 - - uid: 7213 + - type: DeviceNetwork + deviceLists: + - 11863 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 2208 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 78.5,13.5 + pos: -38.5,18.5 parent: 31 - - uid: 7215 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 2268 components: - type: Transform rot: -1.5707963267948966 rad - pos: 80.5,9.5 + pos: 3.5,32.5 parent: 31 - - uid: 7216 + - type: DeviceNetwork + deviceLists: + - 7152 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 3117 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 80.5,7.5 + pos: 21.5,12.5 parent: 31 - - uid: 7217 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 3118 components: - type: Transform rot: -1.5707963267948966 rad - pos: 80.5,6.5 - parent: 31 - - uid: 7221 - components: - - type: Transform - pos: 34.5,20.5 + pos: 26.5,10.5 parent: 31 - - uid: 7226 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 3274 components: - type: Transform - pos: 36.5,20.5 + pos: 41.5,4.5 parent: 31 - - uid: 7231 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 3840 components: - type: Transform - pos: 0.5,36.5 + rot: 3.141592653589793 rad + pos: 18.5,-18.5 parent: 31 - - uid: 7233 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 3939 components: - type: Transform - pos: 13.5,-5.5 + rot: 3.141592653589793 rad + pos: -22.5,-27.5 parent: 31 - - uid: 7274 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 3947 components: - type: Transform - pos: 12.5,-6.5 + rot: 3.141592653589793 rad + pos: -22.5,-25.5 parent: 31 - - uid: 7304 + - type: AtmosPipeColor + color: '#1739A6FF' + - uid: 4006 components: - type: Transform rot: -1.5707963267948966 rad - pos: 61.5,19.5 + pos: -22.5,-5.5 parent: 31 - - uid: 7305 + - type: DeviceNetwork + deviceLists: + - 10238 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 4279 components: - type: Transform rot: -1.5707963267948966 rad - pos: 78.5,14.5 + pos: 26.5,17.5 parent: 31 - - uid: 7307 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 4436 components: - type: Transform - pos: 1.5,-34.5 + rot: 3.141592653589793 rad + pos: -3.5,-17.5 parent: 31 - - uid: 7358 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 4486 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -42.5,15.5 + rot: 3.141592653589793 rad + pos: -37.5,-11.5 parent: 31 - - uid: 7375 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 4701 components: - type: Transform - pos: 61.5,-10.5 + rot: -1.5707963267948966 rad + pos: -7.5,21.5 parent: 31 - - uid: 7376 + - type: DeviceNetwork + deviceLists: + - 9998 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 4783 components: - type: Transform - pos: 4.5,35.5 + rot: -1.5707963267948966 rad + pos: 9.5,-23.5 parent: 31 - - uid: 7425 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 4828 components: - type: Transform - pos: 61.5,-11.5 + rot: -1.5707963267948966 rad + pos: 49.5,13.5 parent: 31 - - uid: 7447 + - type: DeviceNetwork + deviceLists: + - 3855 + - type: AtmosPipeColor + color: '#00FF00FF' + - uid: 4860 components: - type: Transform - rot: 3.141592653589793 rad - pos: 0.5,-32.5 + rot: -1.5707963267948966 rad + pos: -7.5,13.5 parent: 31 - - uid: 7448 + - type: DeviceNetwork + deviceLists: + - 9998 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5332 components: - type: Transform - rot: 3.141592653589793 rad - pos: -0.5,-32.5 + rot: -1.5707963267948966 rad + pos: 3.5,-6.5 parent: 31 - - uid: 7449 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5473 components: - type: Transform rot: 3.141592653589793 rad - pos: -1.5,-32.5 + pos: 3.5,2.5 parent: 31 - - uid: 7450 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5474 components: - type: Transform - rot: 3.141592653589793 rad - pos: -2.5,-32.5 + pos: 7.5,4.5 parent: 31 - - uid: 7471 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5477 components: - type: Transform - pos: 11.5,-17.5 + pos: 21.5,4.5 parent: 31 - - uid: 7472 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5478 components: - type: Transform - pos: -31.5,19.5 + rot: 3.141592653589793 rad + pos: 16.5,10.5 parent: 31 - - uid: 7485 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5496 components: - type: Transform - pos: 1.5,-27.5 + rot: 3.141592653589793 rad + pos: 9.5,-0.5 parent: 31 - - uid: 7487 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5541 components: - type: Transform - pos: 1.5,36.5 + rot: 3.141592653589793 rad + pos: -13.5,-0.5 parent: 31 - - uid: 7488 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5544 components: - type: Transform - pos: 61.5,-7.5 + rot: 3.141592653589793 rad + pos: -8.5,-0.5 parent: 31 - - uid: 7632 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5597 components: - type: Transform - pos: -39.5,19.5 + pos: 17.5,-1.5 parent: 31 - - uid: 7636 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5607 components: - type: Transform - pos: -47.5,-12.5 + rot: 3.141592653589793 rad + pos: 12.5,-11.5 parent: 31 - - uid: 7672 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5637 components: - type: Transform - pos: -16.5,7.5 + rot: 1.5707963267948966 rad + pos: 14.5,-14.5 parent: 31 - - uid: 7677 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5665 components: - type: Transform - pos: 62.5,-10.5 + rot: -1.5707963267948966 rad + pos: 22.5,-6.5 parent: 31 - - uid: 7678 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5704 components: - type: Transform - pos: 61.5,-16.5 + rot: -1.5707963267948966 rad + pos: 3.5,-28.5 parent: 31 - - uid: 7679 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5849 components: - type: Transform - pos: 61.5,-14.5 + rot: -1.5707963267948966 rad + pos: 3.5,18.5 parent: 31 - - uid: 7688 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5883 components: - type: Transform - pos: 23.5,19.5 + rot: -1.5707963267948966 rad + pos: 9.5,17.5 parent: 31 - - uid: 7692 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 5951 components: - type: Transform - pos: -39.5,12.5 + pos: 9.5,9.5 parent: 31 - - uid: 7697 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6024 components: - type: Transform - pos: -46.5,-12.5 + anchored: False + rot: 1.5707963267948966 rad + pos: -12.5,14.5 parent: 31 - - uid: 7713 + - type: DeviceNetwork + deviceLists: + - 9998 + - type: AtmosPipeColor + color: '#990000FF' + - type: Physics + canCollide: True + bodyType: Dynamic + - uid: 6032 components: - type: Transform - pos: -54.5,-10.5 + rot: 1.5707963267948966 rad + pos: -12.5,20.5 parent: 31 - - uid: 7748 + - type: DeviceNetwork + deviceLists: + - 9998 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6042 components: - type: Transform - pos: 49.5,-31.5 + rot: -1.5707963267948966 rad + pos: -0.5,8.5 parent: 31 - - uid: 7777 + - type: DeviceNetwork + deviceLists: + - 9998 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6044 components: - type: Transform - pos: 45.5,12.5 + pos: -1.5,4.5 parent: 31 - - uid: 7798 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6080 components: - type: Transform - pos: 13.5,-10.5 + pos: -14.5,4.5 parent: 31 - - uid: 7800 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6117 components: - type: Transform - pos: 13.5,-11.5 + pos: -27.5,10.5 parent: 31 - - uid: 7824 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6120 components: - type: Transform - pos: -5.5,-33.5 + pos: -22.5,4.5 parent: 31 - - uid: 7830 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6125 components: - type: Transform - pos: -42.5,-8.5 + pos: -6.5,34.5 parent: 31 - - uid: 7838 + - type: DeviceNetwork + deviceLists: + - 7152 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6126 components: - type: Transform - pos: -18.5,26.5 + rot: 3.141592653589793 rad + pos: -5.5,28.5 parent: 31 - - uid: 7839 + - type: DeviceNetwork + deviceLists: + - 7152 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6137 components: - type: Transform - pos: -15.5,26.5 + pos: -30.5,4.5 parent: 31 - - uid: 7840 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6152 components: - type: Transform - pos: -12.5,26.5 + pos: -36.5,4.5 parent: 31 - - uid: 7864 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6168 components: - type: Transform - pos: -11.5,29.5 + rot: 3.141592653589793 rad + pos: -36.5,-0.5 parent: 31 - - uid: 7867 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6232 components: - type: Transform - pos: 28.5,-25.5 + rot: 1.5707963267948966 rad + pos: -1.5,24.5 parent: 31 - - uid: 7868 + - type: DeviceNetwork + deviceLists: + - 7152 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6267 components: - type: Transform - pos: 28.5,-23.5 + rot: 3.141592653589793 rad + pos: 39.5,-0.5 parent: 31 - - uid: 7947 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6276 components: - type: Transform - pos: -40.5,-8.5 + rot: 3.141592653589793 rad + pos: 33.5,-1.5 parent: 31 - - uid: 8021 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6299 components: - type: Transform - pos: -15.5,29.5 + rot: 3.141592653589793 rad + pos: 7.5,23.5 parent: 31 - - uid: 8022 + - type: DeviceNetwork + deviceLists: + - 7152 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6300 components: - type: Transform - pos: -16.5,29.5 + rot: 3.141592653589793 rad + pos: 10.5,23.5 parent: 31 - - uid: 8023 + - type: DeviceNetwork + deviceLists: + - 7152 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6413 components: - type: Transform - pos: -17.5,29.5 + rot: -1.5707963267948966 rad + pos: 47.5,9.5 parent: 31 - - uid: 8024 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6463 components: - type: Transform - pos: -22.5,29.5 + rot: 1.5707963267948966 rad + pos: 48.5,11.5 parent: 31 - - uid: 8027 + - type: DeviceNetwork + deviceLists: + - 3855 + - type: AtmosPipeColor + color: '#00FF00FF' + - uid: 6552 components: - type: Transform - pos: -10.5,29.5 + rot: -1.5707963267948966 rad + pos: 34.5,9.5 parent: 31 - - uid: 8032 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6581 components: - type: Transform - pos: -20.5,29.5 + rot: -1.5707963267948966 rad + pos: 21.5,15.5 parent: 31 - - uid: 8036 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 6961 components: - type: Transform - pos: -19.5,29.5 + rot: -1.5707963267948966 rad + pos: 51.5,-19.5 parent: 31 - - uid: 8037 + - type: DeviceNetwork + deviceLists: + - 11863 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 7041 components: - type: Transform - pos: -12.5,29.5 + rot: 3.141592653589793 rad + pos: 50.5,12.5 parent: 31 - - uid: 8038 + - type: DeviceNetwork + deviceLists: + - 3855 + - type: AtmosPipeColor + color: '#00FF00FF' + - uid: 7211 components: - type: Transform - pos: -13.5,29.5 + rot: -1.5707963267948966 rad + pos: 56.5,3.5 parent: 31 - - uid: 8048 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 7673 components: - type: Transform - pos: 29.5,21.5 + rot: 1.5707963267948966 rad + pos: 7.5,-13.5 parent: 31 - - uid: 8052 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 7745 components: - type: Transform - pos: -41.5,6.5 + pos: -37.5,14.5 parent: 31 - - uid: 8056 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 7853 components: - type: Transform - pos: 33.5,26.5 + rot: -1.5707963267948966 rad + pos: 47.5,13.5 parent: 31 - - uid: 8074 + - type: DeviceNetwork + deviceLists: + - 3855 + - type: AtmosPipeColor + color: '#00FF00FF' + - uid: 7855 components: - type: Transform - pos: 45.5,11.5 + rot: -1.5707963267948966 rad + pos: 48.5,13.5 parent: 31 - - uid: 8084 + - type: DeviceNetwork + deviceLists: + - 3855 + - type: AtmosPipeColor + color: '#00FF00FF' + - uid: 8248 components: - type: Transform - pos: -16.5,6.5 + pos: 50.5,-15.5 parent: 31 - - uid: 8097 + - type: DeviceNetwork + deviceLists: + - 11863 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 8416 components: - type: Transform - pos: 3.5,-23.5 + pos: 7.5,19.5 parent: 31 - - uid: 8103 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 8438 components: - type: Transform rot: -1.5707963267948966 rad - pos: 61.5,17.5 + pos: -3.5,-19.5 parent: 31 - - uid: 8108 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 8795 components: - type: Transform rot: 1.5707963267948966 rad - pos: 61.5,0.5 + pos: -16.5,10.5 parent: 31 - - uid: 8109 + - type: DeviceNetwork + deviceLists: + - 9998 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 8817 components: - type: Transform rot: 1.5707963267948966 rad - pos: 61.5,1.5 + pos: 49.5,11.5 parent: 31 - - uid: 8111 + - type: DeviceNetwork + deviceLists: + - 3855 + - type: AtmosPipeColor + color: '#00FF00FF' + - uid: 8874 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 61.5,3.5 + rot: -1.5707963267948966 rad + pos: 3.5,12.5 parent: 31 - - uid: 8112 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 8876 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 61.5,4.5 + pos: 26.5,4.5 parent: 31 - - uid: 8145 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 8879 components: - type: Transform - pos: 52.5,8.5 + rot: 3.141592653589793 rad + pos: 47.5,2.5 parent: 31 - - uid: 8156 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 9570 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 4.5,-31.5 + rot: 3.141592653589793 rad + pos: 50.5,11.5 parent: 31 - - uid: 8157 + - type: DeviceNetwork + deviceLists: + - 3855 + - type: AtmosPipeColor + color: '#00FF00FF' + - uid: 10159 components: - type: Transform rot: 1.5707963267948966 rad - pos: 2.5,-31.5 + pos: -29.5,1.5 parent: 31 - - uid: 8216 + - type: DeviceNetwork + deviceLists: + - 9042 + - 10238 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10252 components: - type: Transform rot: -1.5707963267948966 rad - pos: 35.5,-26.5 + pos: -36.5,-5.5 parent: 31 - - uid: 8217 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10375 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 31.5,-24.5 + rot: 1.5707963267948966 rad + pos: -1.5,-28.5 parent: 31 - - uid: 8222 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10406 components: - type: Transform - pos: -32.5,19.5 + rot: 3.141592653589793 rad + pos: -23.5,-13.5 parent: 31 - - uid: 8293 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10420 components: - type: Transform - pos: 50.5,-31.5 + rot: 1.5707963267948966 rad + pos: -8.5,-19.5 parent: 31 - - uid: 8294 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10425 components: - type: Transform - pos: 48.5,-31.5 + rot: 3.141592653589793 rad + pos: -7.5,-27.5 parent: 31 - - uid: 8305 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10426 components: - type: Transform rot: 1.5707963267948966 rad - pos: 58.5,-29.5 + pos: -14.5,-26.5 parent: 31 - - uid: 8306 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10495 components: - type: Transform - pos: 50.5,18.5 + rot: 3.141592653589793 rad + pos: -32.5,-14.5 parent: 31 - - uid: 8309 + - type: AtmosPipeColor + color: '#DE2D23FF' + - uid: 10906 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 58.5,-32.5 + rot: 3.141592653589793 rad + pos: 49.5,-4.5 parent: 31 - - uid: 8310 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10907 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 58.5,-33.5 + rot: 3.141592653589793 rad + pos: 56.5,-4.5 parent: 31 - - uid: 8313 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 10908 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -1.5,14.5 + rot: -1.5707963267948966 rad + pos: 56.5,-7.5 parent: 31 - - uid: 8329 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 11297 components: - type: Transform - pos: 48.5,-6.5 + rot: 3.141592653589793 rad + pos: -19.5,1.5 parent: 31 - - uid: 8330 + - type: DeviceNetwork + deviceLists: + - 9042 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 11323 components: - type: Transform - pos: 54.5,-2.5 + rot: 3.141592653589793 rad + pos: -26.5,-0.5 parent: 31 - - uid: 8331 + - type: DeviceNetwork + deviceLists: + - 9042 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 11400 components: - type: Transform - pos: 58.5,-16.5 + rot: 1.5707963267948966 rad + pos: -40.5,-5.5 parent: 31 - - uid: 8332 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 11569 components: - type: Transform - pos: 58.5,-18.5 + rot: -1.5707963267948966 rad + pos: -20.5,-18.5 parent: 31 - - uid: 8333 + - type: DeviceNetwork + deviceLists: + - 11611 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 11572 components: - type: Transform - pos: 58.5,-19.5 + rot: 3.141592653589793 rad + pos: -25.5,-24.5 parent: 31 - - uid: 8334 + - type: DeviceNetwork + deviceLists: + - 11611 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 11609 components: - type: Transform - pos: 58.5,-21.5 + rot: 3.141592653589793 rad + pos: -30.5,-23.5 parent: 31 - - uid: 8335 + - type: DeviceNetwork + deviceLists: + - 11611 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 11719 components: - type: Transform - pos: 58.5,-22.5 + rot: 1.5707963267948966 rad + pos: -29.5,-7.5 parent: 31 - - uid: 8336 + - type: DeviceNetwork + deviceLists: + - 10238 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 12076 components: - type: Transform - pos: 58.5,-23.5 + rot: 3.141592653589793 rad + pos: 50.5,-29.5 parent: 31 - - uid: 8337 + - type: DeviceNetwork + deviceLists: + - 11863 + - type: AtmosPipeColor + color: '#A01E16FF' +- proto: GasVolumePump + entities: + - uid: 133 components: - type: Transform - pos: 58.5,-24.5 + rot: 3.141592653589793 rad + pos: 49.5,25.5 parent: 31 - - uid: 8338 + - type: AtmosPipeColor + color: '#ADD8E6FF' + - uid: 611 components: - type: Transform - pos: 58.5,-25.5 + rot: 3.141592653589793 rad + pos: 50.5,21.5 parent: 31 - - uid: 8339 + - type: AtmosPipeColor + color: '#00FF00FF' + - uid: 655 components: - type: Transform - pos: 58.5,-27.5 + rot: 3.141592653589793 rad + pos: 49.5,21.5 parent: 31 - - uid: 8340 + - type: AtmosPipeColor + color: '#00FF00FF' + - uid: 959 components: - type: Transform - pos: 58.5,-34.5 + rot: 3.141592653589793 rad + pos: 48.5,21.5 parent: 31 - - uid: 8341 + - type: AtmosPipeColor + color: '#00FF00FF' + - uid: 4547 components: + - type: MetaData + name: passive coolant volumetric pump - type: Transform - pos: 58.5,-37.5 + rot: -1.5707963267948966 rad + pos: 68.5,8.5 parent: 31 - - uid: 8342 + - type: AtmosPipeColor + color: '#A01E16FF' + - uid: 9735 components: - type: Transform - pos: 58.5,-38.5 + rot: 3.141592653589793 rad + pos: 50.5,25.5 parent: 31 - - uid: 8343 + - type: AtmosPipeColor + color: '#ADD8E6FF' + - uid: 10104 components: + - type: MetaData + name: passive coolant volumetric pump - type: Transform - pos: 57.5,-38.5 + rot: -1.5707963267948966 rad + pos: 63.5,8.5 parent: 31 - - uid: 8349 + - uid: 10503 components: - type: Transform - pos: 32.5,26.5 + pos: 76.5,4.5 parent: 31 - - uid: 8362 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 10504 components: - type: Transform - pos: 42.5,26.5 + pos: 75.5,4.5 parent: 31 - - uid: 8363 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 10505 components: - type: Transform - pos: 44.5,26.5 + pos: 74.5,4.5 parent: 31 - - uid: 8364 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 10506 components: - type: Transform - pos: 45.5,26.5 + pos: 73.5,4.5 parent: 31 - - uid: 8367 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 11129 components: - type: Transform - pos: -33.5,-15.5 + rot: 3.141592653589793 rad + pos: 48.5,25.5 parent: 31 - - uid: 8371 + - type: AtmosPipeColor + color: '#ADD8E6FF' + - uid: 11781 components: - type: Transform - pos: 43.5,26.5 + pos: 73.5,7.5 parent: 31 - - uid: 8390 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 11782 components: - type: Transform - pos: 6.5,36.5 + pos: 74.5,7.5 parent: 31 - - uid: 8484 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 11783 components: - type: Transform - pos: -13.5,-19.5 + pos: 75.5,7.5 parent: 31 - - uid: 8566 + - type: AtmosPipeColor + color: '#990000FF' + - uid: 11784 components: - type: Transform - pos: -37.5,-24.5 + pos: 76.5,7.5 parent: 31 - - uid: 8567 + - type: AtmosPipeColor + color: '#990000FF' +- proto: Gauze + entities: + - uid: 1407 components: - type: Transform - pos: -37.5,-23.5 + pos: 26.671059,21.801102 parent: 31 - - uid: 8568 + - uid: 10830 components: - type: Transform - pos: -36.5,-22.5 + pos: 12.447606,-4.278471 parent: 31 - - uid: 8570 +- proto: GeigerCounterWallMount + entities: + - uid: 4350 components: - type: Transform - pos: -34.5,-22.5 + rot: 3.141592653589793 rad + pos: 65.5,3.5 parent: 31 - - uid: 8571 + - type: Geiger + isEnabled: True + - type: RadiationReceiver + - uid: 6954 components: - type: Transform - pos: -33.5,-23.5 + rot: -1.5707963267948966 rad + pos: 54.5,3.5 parent: 31 - - uid: 8572 + - type: Geiger + isEnabled: True + - type: RadiationReceiver + - uid: 6956 components: - type: Transform - pos: -33.5,-24.5 + rot: 1.5707963267948966 rad + pos: 58.5,4.5 parent: 31 - - uid: 8575 + - type: Geiger + isEnabled: True + - type: RadiationReceiver + - uid: 9461 components: - type: Transform - pos: -37.5,-28.5 + rot: 1.5707963267948966 rad + pos: -13.5,-30.5 parent: 31 - - uid: 8576 + - type: Geiger + isEnabled: True + - type: RadiationReceiver +- proto: GeneratorBasic15kW + entities: + - uid: 8506 components: - type: Transform - pos: -32.5,-33.5 + pos: 44.5,-22.5 parent: 31 - - uid: 8601 + - uid: 8616 + components: + - type: Transform + pos: 43.5,-23.5 + parent: 31 +- proto: GlimmerProber + entities: + - uid: 11651 components: - type: Transform - rot: 3.141592653589793 rad - pos: -29.5,-32.5 + pos: -13.5,-24.5 parent: 31 - - uid: 8819 +- proto: GlowstickBase + entities: + - uid: 8848 components: - type: Transform - pos: 4.5,26.5 + rot: 1.5707963267948966 rad + pos: 27.737583,15.662895 parent: 31 - - uid: 8820 + - uid: 8999 components: - type: Transform - pos: 2.5,26.5 + rot: 1.5707963267948966 rad + pos: 27.649036,15.662895 parent: 31 - - uid: 8946 + - uid: 9037 components: - type: Transform - rot: 3.141592653589793 rad - pos: -1.5,2.5 + rot: 1.5707963267948966 rad + pos: 27.826128,15.662895 parent: 31 - - uid: 8947 +- proto: GlowstickBlue + entities: + - uid: 10987 components: - type: Transform - rot: 3.141592653589793 rad - pos: -2.5,2.5 + pos: 52.729786,-1.2094907 parent: 31 - - uid: 8948 +- proto: GravityGenerator + entities: + - uid: 7696 components: - type: Transform - rot: 3.141592653589793 rad - pos: -3.5,2.5 + pos: 58.5,-2.5 parent: 31 - - uid: 9012 +- proto: Grille + entities: + - uid: 12 components: - type: Transform - pos: -4.5,-33.5 + pos: 4.5,27.5 parent: 31 - - uid: 9019 + - uid: 14 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 79.5,12.5 + pos: -9.5,26.5 parent: 31 - - uid: 9027 + - uid: 47 components: - type: Transform - pos: -8.5,-24.5 + pos: 19.5,20.5 parent: 31 - - uid: 9030 + - uid: 64 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 80.5,10.5 + pos: 5.5,-4.5 parent: 31 - - uid: 9063 + - uid: 77 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 80.5,8.5 + rot: 1.5707963267948966 rad + pos: 44.5,-14.5 parent: 31 - - uid: 9064 + - uid: 78 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 80.5,12.5 + pos: 5.5,-5.5 parent: 31 - - uid: 9124 + - uid: 101 components: - type: Transform - pos: 5.5,-11.5 + pos: -48.5,-12.5 parent: 31 - - uid: 9125 + - uid: 138 components: - type: Transform - pos: 5.5,-10.5 + pos: -49.5,-12.5 parent: 31 - - uid: 9126 + - uid: 255 components: - type: Transform - pos: 5.5,-8.5 + pos: 11.5,-6.5 parent: 31 - - uid: 9127 + - uid: 267 components: - type: Transform - pos: 5.5,-7.5 + pos: -50.5,-8.5 parent: 31 - - uid: 9136 + - uid: 338 components: - type: Transform - pos: 26.5,22.5 + pos: -8.5,6.5 parent: 31 - - uid: 9145 + - uid: 360 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 63.5,14.5 + pos: -13.5,6.5 parent: 31 - - uid: 9163 + - uid: 450 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 74.5,14.5 + pos: -23.5,26.5 parent: 31 - - uid: 9174 + - uid: 469 components: - type: Transform - pos: -37.5,-12.5 + pos: -35.5,11.5 parent: 31 - - uid: 9175 + - uid: 532 components: - type: Transform - pos: -39.5,-1.5 + rot: -1.5707963267948966 rad + pos: 51.5,28.5 parent: 31 - - uid: 9208 + - uid: 571 components: - type: Transform - pos: -36.5,-12.5 + pos: 2.5,22.5 parent: 31 - - uid: 9209 + - uid: 608 components: - type: Transform - pos: -35.5,-12.5 + pos: -14.5,-18.5 parent: 31 - - uid: 9219 + - uid: 653 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -1.5,12.5 + pos: 39.5,26.5 parent: 31 - - uid: 9231 + - uid: 657 components: - type: Transform - pos: -41.5,-0.5 + pos: -37.5,11.5 parent: 31 - - uid: 9232 + - uid: 665 components: - type: Transform - pos: -42.5,-0.5 + pos: -41.5,5.5 parent: 31 - - uid: 9233 + - uid: 711 components: - type: Transform - pos: -43.5,-0.5 + pos: 17.5,20.5 parent: 31 - - uid: 9234 + - uid: 749 components: - type: Transform - pos: -43.5,11.5 + pos: -44.5,1.5 parent: 31 - - uid: 9235 + - uid: 751 components: - type: Transform - pos: -42.5,11.5 + pos: -42.5,1.5 parent: 31 - - uid: 9236 + - uid: 757 components: - type: Transform - pos: -41.5,11.5 + rot: 1.5707963267948966 rad + pos: 42.5,-14.5 parent: 31 - - uid: 9257 + - uid: 772 components: - type: Transform - pos: -7.5,-24.5 + pos: -42.5,7.5 parent: 31 - - uid: 9260 + - uid: 801 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 68.5,14.5 + pos: -6.5,-22.5 parent: 31 - - uid: 9291 + - uid: 811 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -13.5,-30.5 + pos: -40.5,3.5 parent: 31 - - uid: 9331 + - uid: 835 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -28.5,2.5 + pos: 52.5,-2.5 parent: 31 - - uid: 9332 + - uid: 855 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -29.5,2.5 + pos: 52.5,-6.5 parent: 31 - - uid: 9344 + - uid: 856 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 60.5,17.5 + pos: -42.5,3.5 parent: 31 - - uid: 9362 + - uid: 858 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -26.5,-30.5 + pos: -44.5,9.5 parent: 31 - - uid: 9364 + - uid: 904 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -30.5,-25.5 + pos: 40.5,20.5 parent: 31 - - uid: 9368 + - uid: 937 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -27.5,-30.5 + pos: 19.5,21.5 parent: 31 - - uid: 9370 + - uid: 1016 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 70.5,14.5 + pos: 4.5,22.5 parent: 31 - - uid: 9372 + - uid: 1022 components: - type: Transform - pos: -17.5,-18.5 + pos: -40.5,1.5 parent: 31 - - uid: 9405 + - uid: 1039 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 69.5,14.5 + rot: 3.141592653589793 rad + pos: -10.5,7.5 parent: 31 - - uid: 9408 + - uid: 1106 components: - type: Transform - pos: -4.5,-37.5 + pos: 44.5,20.5 parent: 31 - - uid: 9409 + - uid: 1131 components: - type: Transform - pos: -3.5,-37.5 + pos: -41.5,4.5 parent: 31 - - uid: 9410 + - uid: 1133 components: - type: Transform - pos: -2.5,-37.5 + rot: -1.5707963267948966 rad + pos: 18.5,18.5 parent: 31 - - uid: 9413 + - uid: 1180 components: - type: Transform - pos: -1.5,-37.5 + pos: -41.5,9.5 parent: 31 - - uid: 9419 + - uid: 1192 components: - type: Transform - pos: -14.5,-33.5 + pos: -19.5,2.5 parent: 31 - - uid: 9420 + - uid: 1193 components: - type: Transform - pos: -15.5,-33.5 + pos: -18.5,2.5 parent: 31 - - uid: 9421 + - uid: 1225 components: - type: Transform - pos: -16.5,-33.5 + pos: 25.5,10.5 parent: 31 - - uid: 9422 + - uid: 1237 components: - type: Transform - pos: -15.5,-40.5 + pos: -42.5,9.5 parent: 31 - - uid: 9423 + - uid: 1261 components: - type: Transform - pos: -14.5,-40.5 + rot: 3.141592653589793 rad + pos: -8.5,33.5 parent: 31 - - uid: 9424 + - uid: 1262 components: - type: Transform - pos: -13.5,-40.5 + rot: 3.141592653589793 rad + pos: -9.5,33.5 parent: 31 - - uid: 9460 + - uid: 1278 components: - type: Transform - rot: 3.141592653589793 rad - pos: -22.5,-26.5 + pos: -10.5,19.5 parent: 31 - - uid: 9515 + - uid: 1416 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 49.5,-12.5 + pos: -13.5,9.5 parent: 31 - - uid: 9525 + - uid: 1430 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 12.5,-41.5 + pos: -43.5,3.5 parent: 31 - - uid: 9535 + - uid: 1434 components: - type: Transform rot: -1.5707963267948966 rad - pos: 50.5,-12.5 + pos: -24.5,-17.5 parent: 31 - - uid: 9536 + - uid: 1435 components: - type: Transform rot: -1.5707963267948966 rad - pos: 51.5,-12.5 + pos: -21.5,-17.5 parent: 31 - - uid: 9553 + - uid: 1436 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 67.5,14.5 + rot: 3.141592653589793 rad + pos: 23.5,-8.5 parent: 31 - - uid: 9561 + - uid: 1447 components: - type: Transform - pos: 3.5,-35.5 + pos: 20.5,-10.5 parent: 31 - - uid: 9598 + - uid: 1451 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 19.5,-14.5 + pos: -44.5,3.5 parent: 31 - - uid: 9658 + - uid: 1452 components: - type: Transform - pos: -3.5,-44.5 + pos: -41.5,1.5 parent: 31 - - uid: 9659 + - uid: 1453 components: - type: Transform - pos: -2.5,-44.5 + pos: -40.5,7.5 parent: 31 - - uid: 9660 + - uid: 1454 components: - type: Transform - pos: -0.5,-45.5 + pos: -43.5,7.5 parent: 31 - - uid: 9661 + - uid: 1455 components: - type: Transform - pos: 0.5,-45.5 + pos: -40.5,9.5 parent: 31 - - uid: 9662 + - uid: 1456 components: - type: Transform - pos: 1.5,-45.5 + pos: -41.5,3.5 parent: 31 - - uid: 9692 + - uid: 1460 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 12.5,-40.5 + pos: -27.5,6.5 parent: 31 - - uid: 9693 + - uid: 1462 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 12.5,-42.5 + pos: -29.5,6.5 parent: 31 - - uid: 9700 + - uid: 1468 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 58.5,-30.5 + pos: 20.5,-9.5 parent: 31 - - uid: 9723 + - uid: 1491 components: - type: Transform - pos: 54.5,7.5 + pos: 13.5,-4.5 parent: 31 - - uid: 9745 + - uid: 1526 components: - type: Transform - pos: 58.5,4.5 + pos: 23.5,21.5 parent: 31 - - uid: 9765 + - uid: 1547 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 58.5,2.5 + pos: 42.5,20.5 parent: 31 - - uid: 9769 + - uid: 1548 components: - type: Transform - pos: -6.5,-33.5 + pos: 38.5,20.5 parent: 31 - - uid: 9805 + - uid: 1592 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 14.5,-34.5 + pos: 19.5,14.5 parent: 31 - - uid: 9806 + - uid: 1602 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 14.5,-35.5 + pos: 36.5,-0.5 parent: 31 - - uid: 9807 + - uid: 1604 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 14.5,-36.5 + rot: 3.141592653589793 rad + pos: 24.5,-8.5 parent: 31 - - uid: 9808 + - uid: 1614 components: - type: Transform - pos: 12.5,-45.5 + pos: 2.5,-35.5 parent: 31 - - uid: 9809 + - uid: 1629 components: - type: Transform - pos: 11.5,-45.5 + pos: 37.5,1.5 parent: 31 - - uid: 9810 + - uid: 1663 components: - type: Transform - pos: 8.5,-45.5 + pos: 17.5,-14.5 parent: 31 - - uid: 9811 + - uid: 1666 components: - type: Transform - pos: 5.5,-47.5 + pos: 49.5,-6.5 parent: 31 - - uid: 9812 + - uid: 1692 components: - type: Transform - pos: 4.5,-47.5 + pos: -43.5,1.5 parent: 31 - - uid: 9813 + - uid: 1706 components: - type: Transform - pos: 3.5,-47.5 + pos: 41.5,26.5 parent: 31 - - uid: 9814 + - uid: 1708 components: - type: Transform - pos: 4.5,-45.5 + pos: 17.5,21.5 parent: 31 - - uid: 9815 + - uid: 1709 components: - type: Transform - pos: -0.5,-47.5 + pos: 34.5,7.5 parent: 31 - - uid: 9817 + - uid: 1710 components: - type: Transform - pos: 0.5,-47.5 + pos: 32.5,7.5 parent: 31 - - uid: 9823 + - uid: 1720 components: - type: Transform - pos: -22.5,-39.5 + pos: 32.5,1.5 parent: 31 - - uid: 9824 + - uid: 1721 components: - type: Transform - pos: -22.5,-38.5 + pos: 34.5,1.5 parent: 31 - - uid: 9826 + - uid: 1722 components: - type: Transform - pos: -22.5,-37.5 + pos: 30.5,4.5 parent: 31 - - uid: 9827 + - uid: 1728 components: - type: Transform - pos: -21.5,-39.5 + pos: 1.5,-33.5 parent: 31 - - uid: 9832 + - uid: 1757 components: - type: Transform - pos: -22.5,-34.5 + pos: -49.5,-8.5 parent: 31 - - uid: 9837 + - uid: 1759 components: - type: Transform - pos: -22.5,-35.5 + pos: 19.5,6.5 parent: 31 - - uid: 9838 + - uid: 1760 components: - type: Transform - pos: -39.5,14.5 + pos: 20.5,6.5 parent: 31 - - uid: 9889 + - uid: 1761 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -42.5,13.5 + pos: 21.5,6.5 parent: 31 - - uid: 9896 + - uid: 1762 components: - type: Transform - pos: -9.5,26.5 + pos: 22.5,6.5 parent: 31 - - uid: 9949 + - uid: 1777 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 43.5,-14.5 + pos: 17.5,9.5 parent: 31 - - uid: 10061 + - uid: 1803 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 18.5,27.5 + pos: 8.5,6.5 parent: 31 - - uid: 10064 + - uid: 1871 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 18.5,26.5 + pos: -1.5,27.5 parent: 31 - - uid: 10065 + - uid: 1872 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 24.5,26.5 + pos: -0.5,27.5 parent: 31 - - uid: 10066 + - uid: 1891 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 24.5,27.5 + pos: 6.5,19.5 parent: 31 - - uid: 10067 + - uid: 1904 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 19.5,23.5 + pos: -7.5,18.5 parent: 31 - - uid: 10068 + - uid: 1949 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 19.5,24.5 + pos: -10.5,21.5 parent: 31 - - uid: 10069 + - uid: 1969 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 23.5,24.5 + pos: -10.5,14.5 parent: 31 - - uid: 10070 + - uid: 1996 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 23.5,23.5 + pos: -7.5,9.5 parent: 31 - - uid: 10080 + - uid: 2028 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 21.5,28.5 + pos: -37.5,-28.5 parent: 31 - - uid: 10113 + - uid: 2063 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 78.5,7.5 + pos: -37.5,-32.5 parent: 31 - - uid: 10114 + - uid: 2064 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 63.5,12.5 + pos: -28.5,6.5 parent: 31 - - uid: 10126 + - uid: 2095 components: - type: Transform - pos: -1.5,36.5 + pos: -25.5,9.5 parent: 31 - - uid: 10196 + - uid: 2115 components: - type: Transform - pos: -33.5,-14.5 + pos: 13.5,-1.5 parent: 31 - - uid: 10197 + - uid: 2117 components: - type: Transform - pos: -34.5,-15.5 + rot: -1.5707963267948966 rad + pos: 5.5,35.5 parent: 31 - - uid: 10198 + - uid: 2136 components: - type: Transform - pos: -35.5,-15.5 + pos: 8.5,-7.5 parent: 31 - - uid: 10226 + - uid: 2149 components: - type: Transform - pos: 61.5,-15.5 + pos: 11.5,2.5 parent: 31 - - uid: 10372 + - uid: 2150 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -42.5,14.5 + pos: 10.5,2.5 parent: 31 - - uid: 10438 + - uid: 2151 components: - type: Transform - pos: -39.5,18.5 + pos: 9.5,2.5 parent: 31 - - uid: 10520 + - uid: 2152 components: - type: Transform - pos: 25.5,22.5 + pos: 8.5,2.5 parent: 31 - - uid: 10604 + - uid: 2153 components: - type: Transform - pos: 44.5,-8.5 + pos: 7.5,2.5 parent: 31 - - uid: 10712 + - uid: 2205 components: - type: Transform - pos: -44.5,7.5 + pos: 20.5,-5.5 parent: 31 - - uid: 10747 + - uid: 2209 components: - type: Transform - pos: -46.5,-8.5 + pos: -6.5,-20.5 parent: 31 - - uid: 10748 + - uid: 2245 components: - type: Transform - pos: -47.5,-8.5 + pos: -7.5,6.5 parent: 31 - - uid: 10749 + - uid: 2277 components: - type: Transform - pos: -48.5,-8.5 + rot: 3.141592653589793 rad + pos: -16.5,-24.5 parent: 31 - - uid: 10751 + - uid: 2307 components: - type: Transform - pos: -45.5,-8.5 + pos: -35.5,-22.5 parent: 31 - - uid: 11071 + - uid: 2423 components: - type: Transform - pos: 46.5,20.5 + pos: 28.5,-14.5 parent: 31 - - uid: 11077 + - uid: 2595 components: - type: Transform - pos: 45.5,13.5 + pos: 50.5,-25.5 parent: 31 - - uid: 11090 + - uid: 2605 components: - type: Transform - pos: 30.5,23.5 + pos: 48.5,-25.5 parent: 31 - - uid: 11110 + - uid: 2689 components: - type: Transform - pos: -6.5,30.5 + rot: 1.5707963267948966 rad + pos: -7.5,29.5 parent: 31 - - uid: 11112 + - uid: 2721 components: - type: Transform - pos: -7.5,30.5 + rot: -1.5707963267948966 rad + pos: 48.5,28.5 parent: 31 - - uid: 11113 + - uid: 2848 components: - type: Transform - pos: -5.5,30.5 + rot: -1.5707963267948966 rad + pos: -25.5,-17.5 parent: 31 - - uid: 11145 + - uid: 2849 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 69.5,11.5 + rot: -1.5707963267948966 rad + pos: -20.5,-17.5 parent: 31 - - uid: 11156 + - uid: 3109 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 69.5,-1.5 + pos: 60.5,11.5 parent: 31 - - uid: 11159 + - uid: 3242 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 67.5,-4.5 + rot: -1.5707963267948966 rad + pos: 46.5,28.5 parent: 31 - - uid: 11161 + - uid: 3415 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 77.5,6.5 + pos: -16.5,-40.5 parent: 31 - - uid: 11162 + - uid: 3593 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 78.5,6.5 + pos: -37.5,-29.5 parent: 31 - - uid: 11163 + - uid: 3825 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 78.5,8.5 + rot: -1.5707963267948966 rad + pos: 48.5,28.5 parent: 31 - - uid: 11164 + - uid: 4020 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 78.5,5.5 + rot: -1.5707963267948966 rad + pos: 3.5,36.5 parent: 31 - - uid: 11166 + - uid: 4032 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 64.5,-4.5 + pos: 28.5,-13.5 parent: 31 - - uid: 11167 + - uid: 4044 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 63.5,-4.5 + rot: -1.5707963267948966 rad + pos: 5.5,34.5 parent: 31 - - uid: 11168 + - uid: 4081 components: - type: Transform rot: 1.5707963267948966 rad - pos: 69.5,12.5 + pos: -7.5,30.5 parent: 31 - - uid: 11172 + - uid: 4085 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 77.5,5.5 + rot: -1.5707963267948966 rad + pos: -1.5,34.5 parent: 31 - - uid: 11176 + - uid: 4086 components: - type: Transform rot: 1.5707963267948966 rad - pos: 68.5,-4.5 + pos: -7.5,28.5 parent: 31 - - uid: 11179 + - uid: 4114 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 78.5,4.5 + pos: -12.5,6.5 parent: 31 - - uid: 11190 + - uid: 4115 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 70.5,11.5 + rot: -1.5707963267948966 rad + pos: 4.5,36.5 parent: 31 - - uid: 11192 + - uid: 4117 components: - type: Transform - pos: 63.5,11.5 + pos: -3.5,8.5 parent: 31 - - uid: 11193 + - uid: 4223 components: - type: Transform - pos: 64.5,11.5 + pos: -2.5,9.5 parent: 31 - - uid: 11324 + - uid: 4231 components: - type: Transform - rot: 3.141592653589793 rad - pos: -18.5,-23.5 + rot: -1.5707963267948966 rad + pos: -1.5,35.5 parent: 31 - - uid: 11326 + - uid: 4393 components: - type: Transform - rot: 3.141592653589793 rad - pos: -18.5,-20.5 + pos: 58.5,6.5 parent: 31 - - uid: 11367 + - uid: 4394 components: - type: Transform - rot: 3.141592653589793 rad - pos: -18.5,-19.5 + pos: 61.5,6.5 parent: 31 - - uid: 11408 + - uid: 4399 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -43.5,-4.5 + rot: 3.141592653589793 rad + pos: 54.5,1.5 parent: 31 - - uid: 11409 + - uid: 4403 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -41.5,-2.5 + rot: 3.141592653589793 rad + pos: 54.5,3.5 parent: 31 - - uid: 11410 + - uid: 4445 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -41.5,-6.5 + pos: 59.5,-10.5 parent: 31 - - uid: 11480 + - uid: 4460 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 61.5,16.5 + rot: 3.141592653589793 rad + pos: -17.5,-24.5 parent: 31 - - uid: 11770 + - uid: 4487 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 72.5,6.5 + pos: 34.5,-13.5 parent: 31 - - uid: 11771 + - uid: 4500 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 72.5,7.5 + pos: 54.5,-7.5 parent: 31 - - uid: 11772 + - uid: 4517 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 72.5,8.5 + rot: 3.141592653589793 rad + pos: -27.5,-6.5 parent: 31 - - uid: 11811 + - uid: 4614 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 71.5,3.5 + pos: 34.5,-12.5 parent: 31 - - uid: 11831 + - uid: 4702 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 64.5,12.5 + rot: -1.5707963267948966 rad + pos: -9.5,18.5 parent: 31 - - uid: 11832 + - uid: 4773 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 67.5,12.5 + pos: 2.5,27.5 parent: 31 - - uid: 11833 + - uid: 4844 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 70.5,12.5 + pos: 12.5,-32.5 parent: 31 - - uid: 11841 + - uid: 4853 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 67.5,11.5 + pos: 58.5,3.5 parent: 31 - - uid: 11845 + - uid: 4879 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 77.5,7.5 + pos: -2.5,6.5 parent: 31 - - uid: 11906 + - uid: 4881 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 64.5,-5.5 + pos: -0.5,6.5 parent: 31 - - uid: 11907 + - uid: 5071 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 63.5,-5.5 + pos: 13.5,1.5 parent: 31 - - uid: 11908 + - uid: 5072 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 67.5,-5.5 + pos: 13.5,-2.5 parent: 31 - - uid: 11909 + - uid: 5082 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 68.5,-5.5 + pos: 13.5,0.5 parent: 31 - - uid: 11910 + - uid: 5102 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 80.5,5.5 + pos: 51.5,-6.5 parent: 31 - - uid: 11911 + - uid: 5117 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 80.5,3.5 + pos: -3.5,7.5 parent: 31 - - uid: 11912 + - uid: 5139 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 80.5,4.5 + pos: 8.5,-11.5 parent: 31 - - uid: 11913 + - uid: 5198 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 80.5,2.5 + pos: -28.5,18.5 parent: 31 - - uid: 11914 + - uid: 5199 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 80.5,1.5 + pos: -29.5,18.5 parent: 31 - - uid: 11915 + - uid: 5215 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 80.5,0.5 + pos: -10.5,13.5 parent: 31 - - uid: 11916 + - uid: 5222 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 79.5,0.5 + rot: 3.141592653589793 rad + pos: -13.5,-13.5 parent: 31 - - uid: 11917 + - uid: 5244 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 79.5,-0.5 + pos: -39.5,21.5 parent: 31 - - uid: 11918 + - uid: 5251 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 78.5,-0.5 + pos: -39.5,27.5 parent: 31 - - uid: 11919 + - uid: 5313 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 78.5,-1.5 + pos: -43.5,9.5 parent: 31 - - uid: 11920 + - uid: 5898 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 77.5,-1.5 + pos: -41.5,7.5 parent: 31 - - uid: 11921 + - uid: 5978 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 77.5,-2.5 + pos: -54.5,-9.5 parent: 31 - - uid: 11922 + - uid: 6287 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 76.5,-2.5 + pos: 54.5,-8.5 parent: 31 - - uid: 11923 + - uid: 6366 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 76.5,-3.5 + pos: 22.5,14.5 parent: 31 - - uid: 11924 + - uid: 6367 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 75.5,-3.5 + pos: 40.5,18.5 parent: 31 - - uid: 11925 + - uid: 6369 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 75.5,-4.5 + pos: 42.5,18.5 parent: 31 - - uid: 11926 + - uid: 6380 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 74.5,-4.5 + pos: 39.5,18.5 parent: 31 - - uid: 11927 + - uid: 6381 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 74.5,-5.5 + pos: 38.5,18.5 parent: 31 - - uid: 11928 + - uid: 6383 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 73.5,-5.5 + pos: 37.5,18.5 parent: 31 - - uid: 11929 + - uid: 6385 components: - type: Transform rot: -1.5707963267948966 rad - pos: 73.5,-6.5 + pos: 46.5,27.5 parent: 31 - - uid: 11930 + - uid: 6387 components: - type: Transform rot: -1.5707963267948966 rad - pos: 72.5,-6.5 + pos: 50.5,28.5 parent: 31 - - uid: 11931 + - uid: 6390 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 72.5,-7.5 + pos: 50.5,10.5 parent: 31 - - uid: 11932 + - uid: 6391 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 71.5,-7.5 + pos: 35.5,18.5 parent: 31 - - uid: 11933 + - uid: 6393 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 70.5,-7.5 + pos: 49.5,10.5 parent: 31 - - uid: 11934 + - uid: 6394 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 69.5,-7.5 + pos: 48.5,10.5 parent: 31 - - uid: 12029 + - uid: 6401 components: - type: Transform - pos: 68.5,-8.5 + pos: 34.5,18.5 parent: 31 - - uid: 12030 + - uid: 6405 components: - type: Transform - pos: 67.5,-8.5 + pos: 23.5,20.5 parent: 31 - - uid: 12031 + - uid: 6406 components: - type: Transform - pos: 69.5,-8.5 + rot: -1.5707963267948966 rad + pos: 50.5,28.5 parent: 31 - - uid: 12032 + - uid: 6415 components: - type: Transform - pos: 65.5,-8.5 + rot: 3.141592653589793 rad + pos: 54.5,17.5 parent: 31 - - uid: 12033 + - uid: 6440 components: - type: Transform - pos: 66.5,-8.5 + pos: 43.5,18.5 parent: 31 - - uid: 12034 + - uid: 6445 components: - type: Transform - pos: 64.5,-8.5 + pos: 45.5,18.5 parent: 31 - - uid: 12035 + - uid: 6453 components: - type: Transform - pos: 63.5,-8.5 + rot: 3.141592653589793 rad + pos: 54.5,15.5 parent: 31 - - uid: 12036 + - uid: 6455 components: - type: Transform - pos: 62.5,-8.5 + pos: 33.5,18.5 parent: 31 - - uid: 12099 + - uid: 6456 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 63.5,15.5 - parent: 12098 - - uid: 12296 + rot: 3.141592653589793 rad + pos: 54.5,16.5 + parent: 31 + - uid: 6458 components: - type: Transform - pos: -45.5,11.5 + pos: 45.5,7.5 parent: 31 - - uid: 12297 + - uid: 6464 components: - type: Transform - pos: -46.5,11.5 + pos: 45.5,9.5 parent: 31 - - uid: 12298 + - uid: 6472 components: - type: Transform - pos: -47.5,11.5 + pos: 47.5,18.5 parent: 31 - - uid: 12299 + - uid: 6503 components: - type: Transform - pos: -48.5,11.5 + rot: -1.5707963267948966 rad + pos: 55.5,24.5 parent: 31 - - uid: 12300 + - uid: 6504 components: - type: Transform - pos: -49.5,11.5 + pos: 44.5,18.5 parent: 31 - - uid: 12301 + - uid: 6508 components: - type: Transform - pos: -50.5,11.5 + pos: 46.5,18.5 parent: 31 - - uid: 12302 + - uid: 6509 components: - type: Transform - pos: -51.5,11.5 + rot: -1.5707963267948966 rad + pos: 3.5,-12.5 parent: 31 - - uid: 12303 + - uid: 6539 components: - type: Transform - pos: -52.5,11.5 + pos: 47.5,10.5 parent: 31 - - uid: 12304 + - uid: 6551 components: - type: Transform - pos: -53.5,11.5 + pos: 48.5,18.5 parent: 31 - - uid: 12305 + - uid: 6565 components: - type: Transform - pos: -53.5,9.5 + pos: 46.5,14.5 parent: 31 - - uid: 12306 + - uid: 6605 components: - type: Transform - pos: -52.5,9.5 + pos: 47.5,14.5 parent: 31 - - uid: 12307 + - uid: 6606 components: - type: Transform - pos: -51.5,9.5 + pos: 48.5,14.5 parent: 31 - - uid: 12308 + - uid: 6613 components: - type: Transform - pos: -50.5,9.5 + pos: 36.5,18.5 parent: 31 - - uid: 12309 + - uid: 6641 components: - type: Transform - pos: -49.5,9.5 + pos: -41.5,-8.5 parent: 31 - - uid: 12310 + - uid: 6645 components: - type: Transform - pos: -47.5,9.5 + rot: -1.5707963267948966 rad + pos: 58.5,23.5 parent: 31 - - uid: 12311 + - uid: 6721 components: - type: Transform - pos: -48.5,9.5 + rot: -1.5707963267948966 rad + pos: 65.5,14.5 parent: 31 - - uid: 12312 + - uid: 6725 components: - type: Transform - pos: -46.5,9.5 + rot: -1.5707963267948966 rad + pos: 58.5,22.5 parent: 31 - - uid: 12313 + - uid: 6726 components: - type: Transform - pos: -45.5,9.5 + rot: -1.5707963267948966 rad + pos: 53.5,24.5 parent: 31 - - uid: 12314 + - uid: 6728 components: - type: Transform - pos: -45.5,7.5 + rot: -1.5707963267948966 rad + pos: 58.5,24.5 parent: 31 - - uid: 12315 + - uid: 6729 components: - type: Transform - pos: -46.5,7.5 + rot: -1.5707963267948966 rad + pos: 56.5,24.5 parent: 31 - - uid: 12316 + - uid: 6730 components: - type: Transform - pos: -47.5,7.5 + rot: -1.5707963267948966 rad + pos: 57.5,24.5 parent: 31 - - uid: 12317 + - uid: 6733 components: - type: Transform - pos: -48.5,7.5 + pos: 58.5,0.5 parent: 31 - - uid: 12318 + - uid: 6742 components: - type: Transform - pos: -50.5,7.5 + pos: 46.5,10.5 parent: 31 - - uid: 12319 + - uid: 6812 components: - type: Transform - pos: -49.5,7.5 + rot: 1.5707963267948966 rad + pos: -10.5,-42.5 parent: 31 - - uid: 12320 + - uid: 6815 components: - type: Transform - pos: -51.5,7.5 + pos: 41.5,18.5 parent: 31 - - uid: 12321 + - uid: 6841 components: - type: Transform - pos: -52.5,7.5 + pos: 50.5,14.5 parent: 31 - - uid: 12322 + - uid: 6844 components: - type: Transform - pos: -53.5,7.5 + pos: 49.5,14.5 parent: 31 - - uid: 12334 + - uid: 6847 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -45.5,3.5 + rot: 3.141592653589793 rad + pos: 54.5,26.5 parent: 31 - - uid: 12335 + - uid: 6863 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -46.5,3.5 + pos: 27.5,22.5 parent: 31 - - uid: 12336 + - uid: 6868 components: - type: Transform rot: -1.5707963267948966 rad - pos: -48.5,3.5 + pos: 79.5,13.5 parent: 31 - - uid: 12337 + - uid: 6873 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -47.5,3.5 + pos: 59.5,11.5 parent: 31 - - uid: 12338 + - uid: 6933 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -49.5,3.5 + pos: 49.5,18.5 parent: 31 - - uid: 12339 + - uid: 6964 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -50.5,3.5 + pos: 34.5,-14.5 parent: 31 - - uid: 12340 + - uid: 7040 components: - type: Transform rot: -1.5707963267948966 rad - pos: -51.5,3.5 + pos: 45.5,27.5 parent: 31 - - uid: 12341 + - uid: 7044 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -52.5,3.5 + pos: 28.5,-12.5 parent: 31 - - uid: 12342 + - uid: 7070 components: - type: Transform rot: -1.5707963267948966 rad - pos: -53.5,3.5 + pos: 61.5,20.5 parent: 31 - - uid: 12343 + - uid: 7112 components: - type: Transform rot: -1.5707963267948966 rad - pos: -53.5,1.5 + pos: 73.5,14.5 parent: 31 - - uid: 12344 + - uid: 7186 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -52.5,1.5 + rot: 1.5707963267948966 rad + pos: 66.5,11.5 parent: 31 - - uid: 12345 + - uid: 7188 components: - type: Transform rot: -1.5707963267948966 rad - pos: -51.5,1.5 + pos: 64.5,14.5 parent: 31 - - uid: 12346 + - uid: 7192 components: - type: Transform rot: -1.5707963267948966 rad - pos: -50.5,1.5 + pos: 66.5,14.5 parent: 31 - - uid: 12347 + - uid: 7193 components: - type: Transform rot: -1.5707963267948966 rad - pos: -49.5,1.5 + pos: 61.5,15.5 parent: 31 - - uid: 12348 + - uid: 7194 components: - type: Transform rot: -1.5707963267948966 rad - pos: -48.5,1.5 + pos: 62.5,15.5 parent: 31 - - uid: 12349 + - uid: 7195 components: - type: Transform rot: -1.5707963267948966 rad - pos: -47.5,1.5 + pos: 61.5,18.5 parent: 31 - - uid: 12350 + - uid: 7196 components: - type: Transform rot: -1.5707963267948966 rad - pos: -46.5,1.5 + pos: 60.5,20.5 parent: 31 - - uid: 12351 + - uid: 7198 components: - type: Transform rot: -1.5707963267948966 rad - pos: -45.5,1.5 + pos: 59.5,20.5 parent: 31 - - uid: 12352 + - uid: 7199 components: - type: Transform rot: -1.5707963267948966 rad - pos: -44.5,-0.5 + pos: 71.5,14.5 parent: 31 - - uid: 12353 + - uid: 7200 components: - type: Transform rot: -1.5707963267948966 rad - pos: -45.5,-0.5 + pos: 72.5,14.5 parent: 31 - - uid: 12354 + - uid: 7201 components: - type: Transform rot: -1.5707963267948966 rad - pos: -47.5,-0.5 + pos: 76.5,14.5 parent: 31 - - uid: 12355 + - uid: 7202 components: - type: Transform rot: -1.5707963267948966 rad - pos: -46.5,-0.5 + pos: 75.5,14.5 parent: 31 - - uid: 12356 + - uid: 7203 components: - type: Transform rot: -1.5707963267948966 rad - pos: -48.5,-0.5 + pos: 77.5,14.5 parent: 31 - - uid: 12357 + - uid: 7204 components: - type: Transform rot: -1.5707963267948966 rad - pos: -49.5,-0.5 + pos: 80.5,11.5 parent: 31 - - uid: 12358 + - uid: 7213 components: - type: Transform rot: -1.5707963267948966 rad - pos: -50.5,-0.5 + pos: 78.5,13.5 parent: 31 - - uid: 12359 + - uid: 7215 components: - type: Transform rot: -1.5707963267948966 rad - pos: -51.5,-0.5 + pos: 80.5,9.5 parent: 31 - - uid: 12360 + - uid: 7216 components: - type: Transform rot: -1.5707963267948966 rad - pos: -52.5,-0.5 + pos: 80.5,7.5 parent: 31 - - uid: 12361 + - uid: 7217 components: - type: Transform rot: -1.5707963267948966 rad - pos: -53.5,-0.5 + pos: 80.5,6.5 parent: 31 - - uid: 12527 + - uid: 7221 components: - type: Transform - rot: 3.141592653589793 rad - pos: 31.5,28.5 + pos: 34.5,20.5 parent: 31 - - uid: 12528 + - uid: 7226 components: - type: Transform - rot: 3.141592653589793 rad - pos: 32.5,28.5 + pos: 36.5,20.5 parent: 31 - - uid: 12529 + - uid: 7233 components: - type: Transform - rot: 3.141592653589793 rad - pos: 34.5,28.5 + pos: 13.5,-5.5 parent: 31 - - uid: 12530 + - uid: 7274 components: - type: Transform - rot: 3.141592653589793 rad - pos: 30.5,28.5 + pos: 12.5,-6.5 parent: 31 - - uid: 12531 + - uid: 7304 components: - type: Transform - rot: 3.141592653589793 rad - pos: 30.5,27.5 + rot: -1.5707963267948966 rad + pos: 61.5,19.5 parent: 31 - - uid: 12533 + - uid: 7305 components: - type: Transform - rot: 3.141592653589793 rad - pos: 30.5,25.5 + rot: -1.5707963267948966 rad + pos: 78.5,14.5 parent: 31 - - uid: 12534 + - uid: 7307 components: - type: Transform - rot: 3.141592653589793 rad - pos: 30.5,24.5 + pos: 1.5,-34.5 parent: 31 - - uid: 12536 + - uid: 7358 components: - type: Transform rot: -1.5707963267948966 rad - pos: 37.5,27.5 + pos: -42.5,15.5 parent: 31 - - uid: 12537 + - uid: 7375 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 36.5,28.5 + pos: 61.5,-10.5 parent: 31 - - uid: 12971 + - uid: 7407 components: - type: Transform - pos: -22.5,26.5 + rot: 1.5707963267948966 rad + pos: 60.5,-26.5 parent: 31 - - uid: 12972 + - uid: 7422 components: - type: Transform - pos: -21.5,26.5 + rot: 1.5707963267948966 rad + pos: 60.5,-19.5 parent: 31 - - uid: 12973 + - uid: 7425 components: - type: Transform - pos: -20.5,26.5 + pos: 61.5,-11.5 parent: 31 -- proto: GrilleBroken - entities: - - uid: 80 + - uid: 7436 components: - type: Transform rot: 1.5707963267948966 rad - pos: -40.5,20.5 + pos: 60.5,-18.5 parent: 31 - - uid: 552 + - uid: 7447 components: - type: Transform rot: 3.141592653589793 rad - pos: -42.5,12.5 + pos: 0.5,-32.5 parent: 31 - - uid: 831 + - uid: 7448 components: - type: Transform rot: 3.141592653589793 rad - pos: -7.5,33.5 - parent: 31 - - uid: 1025 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -8.5,32.5 - parent: 31 - - uid: 1520 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -4.5,34.5 + pos: -0.5,-32.5 parent: 31 - - uid: 3658 + - uid: 7449 components: - type: Transform rot: 3.141592653589793 rad - pos: 4.5,34.5 + pos: -1.5,-32.5 parent: 31 - - uid: 3825 + - uid: 7450 components: - type: Transform rot: 3.141592653589793 rad - pos: -15.5,27.5 + pos: -2.5,-32.5 parent: 31 - - uid: 4025 + - uid: 7472 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 3.5,36.5 + pos: -31.5,19.5 parent: 31 - - uid: 4444 + - uid: 7485 components: - type: Transform - rot: 3.141592653589793 rad - pos: 61.5,-8.5 + pos: 1.5,-27.5 parent: 31 - - uid: 4447 + - uid: 7488 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 61.5,-13.5 + pos: 61.5,-7.5 parent: 31 - - uid: 6467 + - uid: 7632 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 54.5,24.5 + pos: -39.5,19.5 parent: 31 - - uid: 6744 + - uid: 7634 components: - type: Transform - rot: 3.141592653589793 rad - pos: 58.5,21.5 + rot: 1.5707963267948966 rad + pos: 60.5,-22.5 parent: 31 - - uid: 6747 + - uid: 7636 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 54.5,24.5 + pos: -47.5,-12.5 parent: 31 - - uid: 7080 + - uid: 7648 components: - type: Transform rot: 1.5707963267948966 rad - pos: -11.5,-42.5 + pos: 60.5,-20.5 parent: 31 - - uid: 7431 + - uid: 7649 components: - type: Transform rot: 3.141592653589793 rad - pos: -10.5,30.5 - parent: 31 - - uid: 7579 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 60.5,-15.5 + pos: 60.5,-24.5 parent: 31 - - uid: 7676 + - uid: 7667 components: - type: Transform rot: 3.141592653589793 rad - pos: 61.5,-12.5 + pos: 54.5,26.5 parent: 31 - - uid: 8033 + - uid: 7672 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -23.5,29.5 + pos: -16.5,7.5 parent: 31 - - uid: 8034 + - uid: 7677 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -21.5,29.5 + pos: 62.5,-10.5 parent: 31 - - uid: 8035 + - uid: 7678 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -28.5,29.5 + pos: 61.5,-16.5 parent: 31 - - uid: 8308 + - uid: 7679 components: - type: Transform - pos: 58.5,-31.5 + pos: 61.5,-14.5 parent: 31 - - uid: 8369 + - uid: 7688 components: - type: Transform - pos: 38.5,26.5 + pos: 23.5,19.5 parent: 31 - - uid: 8386 + - uid: 7692 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 2.5,36.5 + pos: -39.5,12.5 parent: 31 - - uid: 8387 + - uid: 7697 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 56.5,-38.5 + pos: -46.5,-12.5 parent: 31 - - uid: 8388 + - uid: 7709 components: - type: Transform - pos: 58.5,-36.5 + rot: 3.141592653589793 rad + pos: -4.5,35.5 parent: 31 - - uid: 8389 + - uid: 7713 components: - type: Transform - rot: 3.141592653589793 rad - pos: 58.5,-35.5 + pos: -54.5,-10.5 parent: 31 - - uid: 8391 + - uid: 7748 components: - type: Transform - rot: 3.141592653589793 rad - pos: 58.5,-28.5 + rot: 1.5707963267948966 rad + pos: 60.5,-27.5 parent: 31 - - uid: 8392 + - uid: 7777 components: - type: Transform - rot: 3.141592653589793 rad - pos: 58.5,-26.5 + pos: 45.5,12.5 parent: 31 - - uid: 8393 + - uid: 7798 components: - type: Transform - pos: 58.5,-26.5 + pos: 13.5,-10.5 parent: 31 - - uid: 8394 + - uid: 7800 components: - type: Transform - pos: 58.5,-20.5 + pos: 13.5,-11.5 parent: 31 - - uid: 8395 + - uid: 7824 components: - type: Transform - rot: 3.141592653589793 rad - pos: 58.5,-20.5 + pos: -5.5,-33.5 parent: 31 - - uid: 8396 + - uid: 7830 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 58.5,-17.5 + pos: -42.5,-8.5 parent: 31 - - uid: 8397 + - uid: 7838 components: - type: Transform - pos: 58.5,-15.5 + pos: -18.5,26.5 parent: 31 - - uid: 8398 + - uid: 7839 components: - type: Transform - rot: 3.141592653589793 rad - pos: 58.5,-13.5 + pos: -15.5,26.5 parent: 31 - - uid: 8748 + - uid: 7840 components: - type: Transform rot: -1.5707963267948966 rad - pos: 40.5,26.5 + pos: 52.5,28.5 parent: 31 - - uid: 8749 + - uid: 7854 components: - type: Transform rot: -1.5707963267948966 rad - pos: 46.5,26.5 + pos: 53.5,27.5 parent: 31 - - uid: 9674 + - uid: 7867 components: - type: Transform - pos: 14.5,-33.5 + pos: 28.5,-25.5 parent: 31 - - uid: 9819 + - uid: 7868 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 13.5,-45.5 + pos: 28.5,-23.5 parent: 31 - - uid: 9844 + - uid: 7871 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 1.5,-47.5 + rot: 1.5707963267948966 rad + pos: 60.5,-29.5 parent: 31 - - uid: 9845 + - uid: 7898 components: - type: Transform - pos: 4.5,-46.5 + rot: 1.5707963267948966 rad + pos: 59.5,-29.5 parent: 31 - - uid: 9846 + - uid: 7947 components: - type: Transform - rot: 3.141592653589793 rad - pos: 4.5,-46.5 + pos: -40.5,-8.5 parent: 31 - - uid: 9848 + - uid: 8048 components: - type: Transform - pos: 11.5,-44.5 + pos: 29.5,21.5 parent: 31 - - uid: 9850 + - uid: 8052 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 10.5,-45.5 + pos: -41.5,6.5 parent: 31 - - uid: 9851 + - uid: 8074 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 9.5,-45.5 + pos: 45.5,11.5 parent: 31 - - uid: 9852 + - uid: 8084 components: - type: Transform - rot: 3.141592653589793 rad - pos: 14.5,-37.5 + pos: -16.5,6.5 parent: 31 - - uid: 9853 + - uid: 8097 components: - type: Transform - rot: 3.141592653589793 rad - pos: 13.5,-34.5 + pos: 3.5,-23.5 parent: 31 - - uid: 9854 + - uid: 8103 components: - type: Transform - rot: 3.141592653589793 rad - pos: -1.5,-46.5 + rot: -1.5707963267948966 rad + pos: 61.5,17.5 parent: 31 - - uid: 9855 + - uid: 8108 components: - type: Transform rot: 1.5707963267948966 rad - pos: -1.5,-47.5 + pos: 61.5,0.5 parent: 31 - - uid: 9856 + - uid: 8109 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 6.5,-47.5 + rot: 1.5707963267948966 rad + pos: 61.5,1.5 parent: 31 - - uid: 9859 + - uid: 8111 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -20.5,-39.5 + rot: 1.5707963267948966 rad + pos: 61.5,3.5 parent: 31 - - uid: 9860 + - uid: 8112 components: - type: Transform - pos: -22.5,-36.5 + rot: 1.5707963267948966 rad + pos: 61.5,4.5 parent: 31 - - uid: 9871 + - uid: 8145 components: - type: Transform - rot: 3.141592653589793 rad - pos: -22.5,-36.5 + pos: 52.5,8.5 parent: 31 - - uid: 9874 + - uid: 8156 components: - type: Transform rot: 1.5707963267948966 rad - pos: -18.5,-39.5 + pos: 4.5,-31.5 parent: 31 - - uid: 9879 + - uid: 8157 components: - type: Transform rot: 1.5707963267948966 rad - pos: -21.5,-36.5 + pos: 2.5,-31.5 parent: 31 - - uid: 10144 + - uid: 8222 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -6.5,-42.5 + pos: -32.5,19.5 parent: 31 - - uid: 10225 + - uid: 8306 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 60.5,-10.5 + pos: 50.5,18.5 parent: 31 - - uid: 10227 + - uid: 8329 components: - type: Transform - pos: -10.5,30.5 + pos: 48.5,-6.5 parent: 31 - - uid: 10228 + - uid: 8330 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 61.5,-13.5 + pos: 54.5,-2.5 parent: 31 - - uid: 10467 + - uid: 8331 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -6.5,-42.5 + pos: 58.5,-16.5 parent: 31 - - uid: 10512 + - uid: 8362 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 58.5,20.5 + pos: 42.5,26.5 parent: 31 - - uid: 10605 + - uid: 8363 components: - type: Transform - rot: 3.141592653589793 rad - pos: 44.5,-9.5 + pos: 44.5,26.5 parent: 31 - - uid: 10708 + - uid: 8364 components: - type: Transform - pos: -0.5,37.5 + pos: 45.5,26.5 parent: 31 - - uid: 12532 + - uid: 8367 components: - type: Transform - rot: 3.141592653589793 rad - pos: 30.5,26.5 + pos: -33.5,-15.5 parent: 31 -- proto: GrilleDiagonal - entities: - - uid: 1577 + - uid: 8371 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 1.5,-35.5 + pos: 43.5,26.5 parent: 31 - - uid: 9557 + - uid: 8448 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 0.5,-33.5 + rot: 3.141592653589793 rad + pos: -10.5,8.5 parent: 31 - - uid: 12535 + - uid: 8484 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 37.5,28.5 + pos: -13.5,-19.5 parent: 31 -- proto: GrilleSpawner - entities: - - uid: 420 + - uid: 8522 components: - type: Transform - pos: 35.5,-34.5 + rot: -1.5707963267948966 rad + pos: 0.5,36.5 parent: 31 - - uid: 421 + - uid: 8566 components: - type: Transform - pos: 35.5,-37.5 + pos: -37.5,-24.5 parent: 31 - - uid: 422 + - uid: 8567 components: - type: Transform - pos: 34.5,-30.5 + pos: -37.5,-23.5 parent: 31 - - uid: 437 + - uid: 8568 components: - type: Transform - pos: 40.5,-32.5 + pos: -36.5,-22.5 parent: 31 - - uid: 465 + - uid: 8570 components: - type: Transform - pos: 28.5,-45.5 + pos: -34.5,-22.5 parent: 31 - - uid: 466 + - uid: 8571 components: - type: Transform - pos: 28.5,-35.5 + pos: -33.5,-23.5 parent: 31 - - uid: 468 + - uid: 8572 components: - type: Transform - pos: 30.5,-47.5 + pos: -33.5,-24.5 parent: 31 - - uid: 470 + - uid: 8576 components: - type: Transform - pos: 28.5,-44.5 + pos: -32.5,-33.5 parent: 31 - - uid: 471 + - uid: 8601 components: - type: Transform - pos: 39.5,-35.5 + rot: 3.141592653589793 rad + pos: -29.5,-32.5 parent: 31 - - uid: 481 + - uid: 8803 components: - type: Transform - pos: 36.5,-35.5 + rot: -1.5707963267948966 rad + pos: 5.5,33.5 parent: 31 - - uid: 482 + - uid: 8807 components: - type: Transform - pos: 37.5,-35.5 + pos: -12.5,26.5 parent: 31 - - uid: 483 + - uid: 8929 components: - type: Transform - pos: 36.5,-33.5 + pos: -25.5,-8.5 parent: 31 - - uid: 485 + - uid: 8942 components: - type: Transform - pos: 35.5,-47.5 + rot: 3.141592653589793 rad + pos: 53.5,26.5 parent: 31 - - uid: 486 + - uid: 8946 components: - type: Transform - pos: 43.5,-34.5 + rot: 3.141592653589793 rad + pos: -1.5,2.5 parent: 31 - - uid: 487 + - uid: 8947 components: - type: Transform - pos: 37.5,-47.5 + rot: 3.141592653589793 rad + pos: -2.5,2.5 parent: 31 - - uid: 488 + - uid: 8948 components: - type: Transform - pos: 39.5,-47.5 + rot: 3.141592653589793 rad + pos: -3.5,2.5 parent: 31 - - uid: 489 + - uid: 9008 components: - type: Transform - pos: 42.5,-35.5 + rot: 3.141592653589793 rad + pos: 55.5,26.5 parent: 31 - - uid: 499 + - uid: 9012 components: - type: Transform - pos: 43.5,-31.5 + pos: -4.5,-33.5 parent: 31 - - uid: 500 + - uid: 9019 components: - type: Transform - pos: 45.5,-30.5 + rot: -1.5707963267948966 rad + pos: 79.5,12.5 parent: 31 - - uid: 502 + - uid: 9027 components: - type: Transform - pos: 45.5,-32.5 + pos: -8.5,-24.5 parent: 31 - - uid: 504 + - uid: 9030 components: - type: Transform - pos: 44.5,-33.5 + rot: -1.5707963267948966 rad + pos: 80.5,10.5 parent: 31 - - uid: 505 + - uid: 9063 components: - type: Transform - pos: 37.5,-33.5 + rot: -1.5707963267948966 rad + pos: 80.5,8.5 parent: 31 - - uid: 512 + - uid: 9064 components: - type: Transform - pos: 40.5,-36.5 + rot: -1.5707963267948966 rad + pos: 80.5,12.5 parent: 31 - - uid: 559 + - uid: 9124 components: - type: Transform - pos: 39.5,-33.5 + pos: 5.5,-11.5 parent: 31 - - uid: 932 + - uid: 9125 components: - type: Transform - pos: 18.5,-32.5 + pos: 5.5,-10.5 parent: 31 - - uid: 1046 + - uid: 9126 components: - type: Transform - pos: 41.5,-33.5 + pos: 5.5,-8.5 parent: 31 - - uid: 1695 + - uid: 9127 components: - type: Transform - pos: 40.5,-28.5 + pos: 5.5,-7.5 parent: 31 - - uid: 2537 + - uid: 9136 components: - type: Transform - pos: 35.5,-32.5 + pos: 26.5,22.5 parent: 31 - - uid: 3053 + - uid: 9145 components: - type: Transform - pos: 32.5,-47.5 + rot: -1.5707963267948966 rad + pos: 63.5,14.5 parent: 31 - - uid: 3424 + - uid: 9163 components: - type: Transform - pos: 20.5,-32.5 + rot: -1.5707963267948966 rad + pos: 74.5,14.5 parent: 31 - - uid: 3475 + - uid: 9174 components: - type: Transform - pos: 40.5,-46.5 + pos: -37.5,-12.5 parent: 31 - - uid: 3806 + - uid: 9175 components: - type: Transform - pos: -39.5,23.5 + pos: -39.5,-1.5 parent: 31 - - uid: 3807 + - uid: 9198 components: - type: Transform - pos: -39.5,22.5 + rot: -1.5707963267948966 rad + pos: -21.5,4.5 parent: 31 - - uid: 4195 + - uid: 9208 components: - type: Transform - pos: -39.5,25.5 + pos: -36.5,-12.5 parent: 31 - - uid: 4343 + - uid: 9209 components: - type: Transform - pos: 39.5,-31.5 + pos: -35.5,-12.5 parent: 31 - - uid: 4401 + - uid: 9231 components: - type: Transform - pos: 41.5,-31.5 + pos: -41.5,-0.5 parent: 31 - - uid: 4411 + - uid: 9232 components: - type: Transform - pos: 40.5,-40.5 + pos: -42.5,-0.5 parent: 31 - - uid: 4412 + - uid: 9233 components: - type: Transform - pos: 35.5,-30.5 + pos: -43.5,-0.5 parent: 31 - - uid: 4413 + - uid: 9234 components: - type: Transform - pos: 38.5,-31.5 + pos: -43.5,11.5 parent: 31 - - uid: 4415 + - uid: 9235 components: - type: Transform - pos: 40.5,-30.5 + pos: -42.5,11.5 parent: 31 - - uid: 4422 + - uid: 9236 components: - type: Transform - pos: 34.5,-28.5 + pos: -41.5,11.5 parent: 31 - - uid: 4423 + - uid: 9254 components: - type: Transform - pos: 22.5,-32.5 + rot: 3.141592653589793 rad + pos: -3.5,29.5 parent: 31 - - uid: 4426 + - uid: 9257 components: - type: Transform - pos: 40.5,-38.5 + pos: -7.5,-24.5 parent: 31 - - uid: 4454 + - uid: 9260 components: - type: Transform - pos: 40.5,-42.5 + rot: -1.5707963267948966 rad + pos: 68.5,14.5 parent: 31 - - uid: 4462 + - uid: 9291 components: - type: Transform - pos: 40.5,-44.5 + rot: -1.5707963267948966 rad + pos: -13.5,-30.5 parent: 31 - - uid: 4585 + - uid: 9344 components: - type: Transform - pos: -39.5,24.5 + rot: -1.5707963267948966 rad + pos: 60.5,17.5 parent: 31 - - uid: 4744 + - uid: 9362 components: - type: Transform - pos: -51.5,-32.5 + rot: -1.5707963267948966 rad + pos: -26.5,-30.5 parent: 31 - - uid: 4871 + - uid: 9364 components: - type: Transform - pos: -49.5,-32.5 + rot: -1.5707963267948966 rad + pos: -30.5,-25.5 parent: 31 - - uid: 4872 + - uid: 9368 components: - type: Transform - pos: -47.5,-32.5 + rot: -1.5707963267948966 rad + pos: -27.5,-30.5 parent: 31 - - uid: 4876 + - uid: 9370 components: - type: Transform - pos: -55.5,-24.5 + rot: -1.5707963267948966 rad + pos: 70.5,14.5 parent: 31 - - uid: 4877 + - uid: 9405 components: - type: Transform - pos: -55.5,-26.5 + rot: -1.5707963267948966 rad + pos: 69.5,14.5 parent: 31 - - uid: 4896 + - uid: 9408 components: - type: Transform - pos: -39.5,26.5 + pos: -4.5,-37.5 parent: 31 - - uid: 4953 + - uid: 9409 components: - type: Transform - pos: -55.5,-28.5 + pos: -3.5,-37.5 parent: 31 - - uid: 4955 + - uid: 9410 components: - type: Transform - pos: -53.5,-32.5 + pos: -2.5,-37.5 parent: 31 - - uid: 4956 + - uid: 9413 components: - type: Transform - pos: -55.5,-32.5 + pos: -1.5,-37.5 parent: 31 - - uid: 4960 + - uid: 9419 components: - type: Transform - pos: -55.5,-30.5 + pos: -14.5,-33.5 parent: 31 - - uid: 5051 + - uid: 9420 components: - type: Transform - pos: 28.5,-37.5 + pos: -15.5,-33.5 parent: 31 - - uid: 5052 + - uid: 9421 components: - type: Transform - pos: 28.5,-39.5 + pos: -16.5,-33.5 parent: 31 - - uid: 5053 + - uid: 9422 components: - type: Transform - pos: 28.5,-38.5 + pos: -15.5,-40.5 parent: 31 - - uid: 5054 + - uid: 9423 components: - type: Transform - pos: 28.5,-33.5 + pos: -14.5,-40.5 parent: 31 - - uid: 5129 + - uid: 9424 components: - type: Transform - pos: 28.5,-36.5 + pos: -13.5,-40.5 parent: 31 - - uid: 5131 + - uid: 9460 components: - type: Transform - pos: 28.5,-34.5 + rot: 3.141592653589793 rad + pos: -22.5,-26.5 parent: 31 - - uid: 5159 + - uid: 9515 components: - type: Transform - pos: 27.5,-32.5 + rot: -1.5707963267948966 rad + pos: 49.5,-12.5 parent: 31 - - uid: 5160 + - uid: 9525 components: - type: Transform - pos: 26.5,-32.5 + rot: -1.5707963267948966 rad + pos: 12.5,-41.5 parent: 31 - - uid: 5164 + - uid: 9535 components: - type: Transform - pos: 25.5,-32.5 + rot: -1.5707963267948966 rad + pos: 50.5,-12.5 parent: 31 - - uid: 5165 + - uid: 9536 components: - type: Transform - pos: 28.5,-32.5 + rot: -1.5707963267948966 rad + pos: 51.5,-12.5 parent: 31 - - uid: 5266 + - uid: 9553 components: - type: Transform - pos: -38.5,45.5 + rot: -1.5707963267948966 rad + pos: 67.5,14.5 parent: 31 - - uid: 5267 + - uid: 9561 components: - type: Transform - pos: -37.5,45.5 + pos: 3.5,-35.5 parent: 31 - - uid: 6402 + - uid: 9598 components: - type: Transform - pos: 28.5,-47.5 + rot: -1.5707963267948966 rad + pos: 19.5,-14.5 parent: 31 - - uid: 6410 + - uid: 9658 components: - type: Transform - pos: 28.5,-40.5 + pos: -3.5,-44.5 parent: 31 - - uid: 6437 + - uid: 9659 components: - type: Transform - pos: 28.5,-46.5 + pos: -2.5,-44.5 parent: 31 - - uid: 6442 + - uid: 9660 components: - type: Transform - pos: 28.5,-43.5 + pos: -0.5,-45.5 parent: 31 - - uid: 6469 + - uid: 9661 components: - type: Transform - pos: 28.5,-41.5 + pos: 0.5,-45.5 parent: 31 - - uid: 6511 + - uid: 9662 components: - type: Transform - pos: 24.5,-32.5 + pos: 1.5,-45.5 parent: 31 - - uid: 6681 + - uid: 9686 components: - type: Transform - pos: 33.5,-47.5 + rot: 3.141592653589793 rad + pos: -27.5,-7.5 parent: 31 - - uid: 6710 + - uid: 9692 components: - type: Transform - pos: 40.5,-41.5 + rot: -1.5707963267948966 rad + pos: 12.5,-40.5 parent: 31 - - uid: 6768 + - uid: 9693 components: - type: Transform - pos: 40.5,-43.5 + rot: -1.5707963267948966 rad + pos: 12.5,-42.5 parent: 31 - - uid: 6769 + - uid: 9723 components: - type: Transform - pos: 35.5,-31.5 + pos: 54.5,7.5 parent: 31 - - uid: 6770 + - uid: 9745 components: - type: Transform - pos: 40.5,-29.5 + pos: 58.5,4.5 parent: 31 - - uid: 6771 + - uid: 9765 components: - type: Transform - pos: 37.5,-31.5 + rot: -1.5707963267948966 rad + pos: 58.5,2.5 parent: 31 - - uid: 6772 + - uid: 9769 components: - type: Transform - pos: 40.5,-31.5 + pos: -6.5,-33.5 parent: 31 - - uid: 6773 + - uid: 9805 components: - type: Transform - pos: 21.5,-32.5 + rot: 1.5707963267948966 rad + pos: 14.5,-34.5 parent: 31 - - uid: 6776 + - uid: 9806 components: - type: Transform - pos: 40.5,-45.5 + rot: 1.5707963267948966 rad + pos: 14.5,-35.5 parent: 31 - - uid: 6777 + - uid: 9807 components: - type: Transform - pos: 40.5,-27.5 + rot: 1.5707963267948966 rad + pos: 14.5,-36.5 parent: 31 - - uid: 6780 + - uid: 9808 components: - type: Transform - pos: 19.5,-32.5 + pos: 12.5,-45.5 parent: 31 - - uid: 6781 + - uid: 9809 components: - type: Transform - pos: 35.5,-33.5 + pos: 11.5,-45.5 parent: 31 - - uid: 6993 + - uid: 9810 components: - type: Transform - pos: 40.5,-39.5 + pos: 8.5,-45.5 parent: 31 - - uid: 6994 + - uid: 9811 components: - type: Transform - pos: 40.5,-37.5 + pos: 5.5,-47.5 parent: 31 - - uid: 7220 + - uid: 9812 components: - type: Transform - pos: 34.5,-27.5 + pos: 4.5,-47.5 parent: 31 - - uid: 8025 + - uid: 9813 components: - type: Transform - pos: 36.5,-31.5 + pos: 3.5,-47.5 parent: 31 - - uid: 8354 + - uid: 9814 components: - type: Transform - pos: 38.5,-33.5 + pos: 4.5,-45.5 parent: 31 - - uid: 8355 + - uid: 9815 components: - type: Transform - pos: 42.5,-33.5 + pos: -0.5,-47.5 parent: 31 - - uid: 8356 + - uid: 9817 components: - type: Transform - pos: 40.5,-33.5 + pos: 0.5,-47.5 parent: 31 - - uid: 8357 + - uid: 9823 components: - type: Transform - pos: 35.5,-35.5 + pos: -22.5,-39.5 parent: 31 - - uid: 8375 + - uid: 9824 components: - type: Transform - pos: 35.5,-36.5 + pos: -22.5,-38.5 parent: 31 - - uid: 8376 + - uid: 9826 components: - type: Transform - pos: 34.5,-29.5 + pos: -22.5,-37.5 parent: 31 - - uid: 8377 + - uid: 9827 components: - type: Transform - pos: 42.5,-31.5 + pos: -21.5,-39.5 parent: 31 - - uid: 8378 + - uid: 9832 components: - type: Transform - pos: 44.5,-31.5 + pos: -22.5,-34.5 parent: 31 - - uid: 8379 + - uid: 9837 components: - type: Transform - pos: 45.5,-31.5 + pos: -22.5,-35.5 parent: 31 - - uid: 8380 + - uid: 9838 components: - type: Transform - pos: 45.5,-33.5 + pos: -39.5,14.5 parent: 31 - - uid: 8577 + - uid: 9862 components: - type: Transform - pos: 43.5,-33.5 + rot: -1.5707963267948966 rad + pos: -1.5,33.5 parent: 31 - - uid: 8578 + - uid: 9889 components: - type: Transform - pos: 43.5,-35.5 + rot: -1.5707963267948966 rad + pos: -42.5,13.5 parent: 31 - - uid: 8579 + - uid: 9899 components: - type: Transform - pos: 41.5,-35.5 + rot: -1.5707963267948966 rad + pos: -0.5,36.5 parent: 31 - - uid: 8580 + - uid: 9949 components: - type: Transform - pos: 40.5,-35.5 + rot: 1.5707963267948966 rad + pos: 43.5,-14.5 parent: 31 - - uid: 8589 + - uid: 10061 components: - type: Transform - pos: 36.5,-47.5 + rot: -1.5707963267948966 rad + pos: 18.5,27.5 parent: 31 - - uid: 8590 + - uid: 10064 components: - type: Transform - pos: 38.5,-47.5 + rot: -1.5707963267948966 rad + pos: 18.5,26.5 parent: 31 - - uid: 8591 + - uid: 10065 components: - type: Transform - pos: 40.5,-47.5 + rot: -1.5707963267948966 rad + pos: 24.5,26.5 parent: 31 - - uid: 8592 + - uid: 10066 components: - type: Transform - pos: 29.5,-47.5 + rot: -1.5707963267948966 rad + pos: 24.5,27.5 parent: 31 - - uid: 8593 + - uid: 10067 components: - type: Transform - pos: 31.5,-47.5 + rot: -1.5707963267948966 rad + pos: 19.5,23.5 parent: 31 - - uid: 8594 + - uid: 10068 components: - type: Transform - pos: 34.5,-47.5 + rot: -1.5707963267948966 rad + pos: 19.5,24.5 parent: 31 - - uid: 8595 + - uid: 10069 components: - type: Transform - pos: 38.5,-35.5 + rot: -1.5707963267948966 rad + pos: 23.5,24.5 parent: 31 - - uid: 8630 + - uid: 10070 components: - type: Transform - pos: -55.5,-25.5 + rot: -1.5707963267948966 rad + pos: 23.5,23.5 parent: 31 - - uid: 8631 + - uid: 10080 components: - type: Transform - pos: -55.5,-27.5 + rot: -1.5707963267948966 rad + pos: 21.5,28.5 parent: 31 - - uid: 8632 + - uid: 10100 components: - type: Transform - pos: -55.5,-29.5 + rot: 3.141592653589793 rad + pos: -4.5,34.5 parent: 31 - - uid: 8633 + - uid: 10196 components: - type: Transform - pos: -46.5,-32.5 + pos: -33.5,-14.5 parent: 31 - - uid: 8634 + - uid: 10197 components: - type: Transform - pos: -50.5,-32.5 + pos: -34.5,-15.5 parent: 31 - - uid: 8635 + - uid: 10198 components: - type: Transform - pos: -48.5,-32.5 + pos: -35.5,-15.5 parent: 31 - - uid: 8636 + - uid: 10226 components: - type: Transform - pos: -52.5,-32.5 + pos: 61.5,-15.5 parent: 31 - - uid: 8637 + - uid: 10227 components: - type: Transform - pos: -54.5,-32.5 + rot: 3.141592653589793 rad + pos: -8.5,37.5 parent: 31 - - uid: 8638 + - uid: 10372 components: - type: Transform - pos: -55.5,-31.5 + rot: -1.5707963267948966 rad + pos: -42.5,14.5 parent: 31 - - uid: 11812 + - uid: 10438 components: - type: Transform - pos: 23.5,-32.5 + pos: -39.5,18.5 parent: 31 - - uid: 11937 + - uid: 10520 components: - type: Transform - pos: 28.5,-42.5 + pos: 25.5,22.5 parent: 31 - - uid: 12121 + - uid: 10604 components: - type: Transform - pos: -36.5,45.5 + pos: 44.5,-8.5 parent: 31 - - uid: 12558 + - uid: 10712 components: - type: Transform - pos: -27.5,29.5 + pos: -44.5,7.5 parent: 31 - - uid: 12631 + - uid: 10747 components: - type: Transform - pos: -35.5,45.5 + pos: -46.5,-8.5 parent: 31 - - uid: 12632 + - uid: 10748 components: - type: Transform - pos: -34.5,45.5 + pos: -47.5,-8.5 parent: 31 - - uid: 12633 + - uid: 10749 components: - type: Transform - pos: -33.5,45.5 + pos: -48.5,-8.5 parent: 31 - - uid: 12634 + - uid: 10751 components: - type: Transform - pos: -32.5,45.5 + pos: -45.5,-8.5 parent: 31 - - uid: 12635 + - uid: 11071 components: - type: Transform - pos: -31.5,45.5 + pos: 46.5,20.5 parent: 31 - - uid: 12636 + - uid: 11077 components: - type: Transform - pos: -30.5,45.5 + pos: 45.5,13.5 parent: 31 - - uid: 12637 + - uid: 11090 components: - type: Transform - pos: -29.5,45.5 + pos: 30.5,23.5 parent: 31 - - uid: 12638 + - uid: 11145 components: - type: Transform - pos: -28.5,45.5 + rot: 1.5707963267948966 rad + pos: 69.5,11.5 parent: 31 - - uid: 12639 + - uid: 11156 components: - type: Transform - pos: -26.5,44.5 + rot: 1.5707963267948966 rad + pos: 69.5,-1.5 parent: 31 - - uid: 12640 + - uid: 11159 components: - type: Transform - pos: -26.5,43.5 + rot: 1.5707963267948966 rad + pos: 67.5,-4.5 parent: 31 - - uid: 12641 + - uid: 11161 components: - type: Transform - pos: -26.5,42.5 + rot: 1.5707963267948966 rad + pos: 77.5,6.5 parent: 31 - - uid: 12642 + - uid: 11166 components: - type: Transform - pos: -26.5,41.5 + rot: 1.5707963267948966 rad + pos: 64.5,-4.5 parent: 31 - - uid: 12643 + - uid: 11167 components: - type: Transform - pos: -26.5,40.5 + rot: 1.5707963267948966 rad + pos: 63.5,-4.5 parent: 31 - - uid: 12644 + - uid: 11168 components: - type: Transform - pos: -26.5,39.5 + rot: 3.141592653589793 rad + pos: -6.5,37.5 parent: 31 - - uid: 12645 + - uid: 11169 components: - type: Transform - pos: -26.5,38.5 + rot: 3.141592653589793 rad + pos: -5.5,37.5 parent: 31 - - uid: 12646 + - uid: 11172 components: - type: Transform - pos: -26.5,36.5 + rot: 1.5707963267948966 rad + pos: 77.5,5.5 parent: 31 - - uid: 12647 + - uid: 11176 components: - type: Transform - pos: -26.5,35.5 + rot: 1.5707963267948966 rad + pos: 68.5,-4.5 parent: 31 - - uid: 12648 + - uid: 11178 components: - type: Transform - pos: -26.5,34.5 + rot: 3.141592653589793 rad + pos: -9.5,37.5 parent: 31 - - uid: 12649 + - uid: 11190 components: - type: Transform - pos: -26.5,33.5 + rot: 1.5707963267948966 rad + pos: 70.5,11.5 parent: 31 - - uid: 12650 + - uid: 11192 components: - type: Transform - pos: -26.5,32.5 + pos: 63.5,11.5 parent: 31 - - uid: 12651 + - uid: 11193 components: - type: Transform - pos: -40.5,30.5 + pos: 64.5,11.5 parent: 31 - - uid: 12652 + - uid: 11324 components: - type: Transform - pos: -40.5,31.5 + rot: 3.141592653589793 rad + pos: -18.5,-23.5 parent: 31 - - uid: 12653 + - uid: 11326 components: - type: Transform - pos: -40.5,32.5 + rot: 3.141592653589793 rad + pos: -18.5,-20.5 parent: 31 - - uid: 12654 + - uid: 11367 components: - type: Transform - pos: -40.5,33.5 + rot: 3.141592653589793 rad + pos: -18.5,-19.5 parent: 31 - - uid: 12655 + - uid: 11408 components: - type: Transform - pos: -40.5,34.5 + rot: -1.5707963267948966 rad + pos: -43.5,-4.5 parent: 31 - - uid: 12656 + - uid: 11409 components: - type: Transform - pos: -40.5,35.5 + rot: -1.5707963267948966 rad + pos: -41.5,-2.5 parent: 31 - - uid: 12657 + - uid: 11410 components: - type: Transform - pos: -40.5,36.5 + rot: -1.5707963267948966 rad + pos: -41.5,-6.5 parent: 31 - - uid: 12658 + - uid: 11480 components: - type: Transform - pos: -40.5,38.5 + rot: -1.5707963267948966 rad + pos: 61.5,16.5 parent: 31 - - uid: 12659 + - uid: 11770 components: - type: Transform - pos: -40.5,39.5 + rot: 1.5707963267948966 rad + pos: 72.5,6.5 parent: 31 - - uid: 12660 + - uid: 11771 components: - type: Transform - pos: -40.5,40.5 + rot: 1.5707963267948966 rad + pos: 72.5,7.5 parent: 31 - - uid: 12661 + - uid: 11772 components: - type: Transform - pos: -40.5,41.5 + rot: 1.5707963267948966 rad + pos: 72.5,8.5 parent: 31 - - uid: 12662 + - uid: 11811 components: - type: Transform - pos: -40.5,42.5 + rot: 1.5707963267948966 rad + pos: 71.5,3.5 parent: 31 - - uid: 12663 + - uid: 11841 components: - type: Transform - pos: -40.5,43.5 + rot: 1.5707963267948966 rad + pos: 67.5,11.5 parent: 31 - - uid: 12664 + - uid: 11845 components: - type: Transform - pos: -27.5,35.5 + rot: 1.5707963267948966 rad + pos: 77.5,7.5 parent: 31 - - uid: 12665 + - uid: 11850 components: - type: Transform - pos: -38.5,33.5 + pos: -5.5,-13.5 parent: 31 - - uid: 12666 + - uid: 11851 components: - type: Transform - pos: -27.5,41.5 + pos: -6.5,-13.5 parent: 31 - - uid: 12667 + - uid: 11853 components: - type: Transform - pos: -27.5,41.5 + rot: -1.5707963267948966 rad + pos: 0.5,-15.5 parent: 31 - - uid: 12668 + - uid: 11910 components: - type: Transform - pos: -28.5,41.5 + rot: -1.5707963267948966 rad + pos: 80.5,5.5 parent: 31 - - uid: 12669 + - uid: 11911 components: - type: Transform - pos: -38.5,41.5 + rot: -1.5707963267948966 rad + pos: 80.5,3.5 parent: 31 - - uid: 12670 + - uid: 11912 components: - type: Transform - pos: -39.5,41.5 + rot: -1.5707963267948966 rad + pos: 80.5,4.5 parent: 31 - - uid: 12671 + - uid: 11913 components: - type: Transform - pos: -39.5,33.5 + rot: -1.5707963267948966 rad + pos: 80.5,2.5 parent: 31 - - uid: 12672 + - uid: 11914 components: - type: Transform - pos: -28.5,35.5 + rot: -1.5707963267948966 rad + pos: 80.5,1.5 parent: 31 - - uid: 12673 + - uid: 11915 components: - type: Transform - pos: -28.5,46.5 + rot: -1.5707963267948966 rad + pos: 80.5,0.5 parent: 31 - - uid: 12674 + - uid: 11916 components: - type: Transform - pos: -28.5,44.5 + rot: -1.5707963267948966 rad + pos: 79.5,0.5 parent: 31 - - uid: 12675 + - uid: 11917 components: - type: Transform - pos: -27.5,44.5 + rot: -1.5707963267948966 rad + pos: 79.5,-0.5 parent: 31 - - uid: 12676 + - uid: 11918 components: - type: Transform - pos: -25.5,44.5 + rot: -1.5707963267948966 rad + pos: 78.5,-0.5 parent: 31 - - uid: 12677 + - uid: 11919 components: - type: Transform - pos: -27.5,42.5 + rot: -1.5707963267948966 rad + pos: 78.5,-1.5 parent: 31 - - uid: 12678 + - uid: 11920 components: - type: Transform - pos: -27.5,40.5 + rot: -1.5707963267948966 rad + pos: 77.5,-1.5 parent: 31 - - uid: 12679 + - uid: 11921 components: - type: Transform - pos: -27.5,38.5 + rot: -1.5707963267948966 rad + pos: 77.5,-2.5 parent: 31 - - uid: 12680 + - uid: 11922 components: - type: Transform - pos: -25.5,38.5 + rot: -1.5707963267948966 rad + pos: 76.5,-2.5 parent: 31 - - uid: 12681 + - uid: 11923 components: - type: Transform - pos: -25.5,36.5 + rot: -1.5707963267948966 rad + pos: 76.5,-3.5 parent: 31 - - uid: 12682 + - uid: 11924 components: - type: Transform - pos: -27.5,36.5 + rot: -1.5707963267948966 rad + pos: 75.5,-3.5 parent: 31 - - uid: 12683 + - uid: 11925 components: - type: Transform - pos: -27.5,34.5 + rot: -1.5707963267948966 rad + pos: 75.5,-4.5 parent: 31 - - uid: 12684 + - uid: 11926 components: - type: Transform - pos: -27.5,32.5 + rot: -1.5707963267948966 rad + pos: 74.5,-4.5 parent: 31 - - uid: 12685 + - uid: 11927 components: - type: Transform - pos: -25.5,32.5 + rot: -1.5707963267948966 rad + pos: 74.5,-5.5 parent: 31 - - uid: 12686 + - uid: 11928 components: - type: Transform - pos: -39.5,34.5 + rot: -1.5707963267948966 rad + pos: 73.5,-5.5 parent: 31 - - uid: 12687 + - uid: 11929 components: - type: Transform - pos: -39.5,32.5 + rot: -1.5707963267948966 rad + pos: 73.5,-6.5 parent: 31 - - uid: 12688 + - uid: 11930 components: - type: Transform - pos: -39.5,36.5 + rot: -1.5707963267948966 rad + pos: 72.5,-6.5 parent: 31 - - uid: 12689 + - uid: 11931 components: - type: Transform - pos: -39.5,38.5 + rot: -1.5707963267948966 rad + pos: 72.5,-7.5 parent: 31 - - uid: 12690 + - uid: 11932 components: - type: Transform - pos: -39.5,40.5 + rot: -1.5707963267948966 rad + pos: 71.5,-7.5 parent: 31 - - uid: 12691 + - uid: 11933 components: - type: Transform - pos: -39.5,43.5 + rot: -1.5707963267948966 rad + pos: 70.5,-7.5 parent: 31 - - uid: 12692 + - uid: 11934 components: - type: Transform - pos: -41.5,43.5 + rot: -1.5707963267948966 rad + pos: 69.5,-7.5 parent: 31 - - uid: 12693 + - uid: 12029 components: - type: Transform - pos: -38.5,44.5 + pos: 68.5,-8.5 parent: 31 - - uid: 12694 + - uid: 12030 components: - type: Transform - pos: -38.5,46.5 + pos: 67.5,-8.5 parent: 31 - - uid: 12695 + - uid: 12031 components: - type: Transform - pos: -41.5,38.5 + pos: 69.5,-8.5 parent: 31 - - uid: 12696 + - uid: 12032 components: - type: Transform - pos: -41.5,36.5 + pos: 65.5,-8.5 parent: 31 - - uid: 12697 + - uid: 12033 components: - type: Transform - pos: -39.5,30.5 + pos: 66.5,-8.5 parent: 31 - - uid: 12698 + - uid: 12034 components: - type: Transform - pos: -41.5,30.5 + pos: 64.5,-8.5 parent: 31 - - uid: 12699 + - uid: 12035 components: - type: Transform - pos: -41.5,22.5 + pos: 63.5,-8.5 parent: 31 - - uid: 12700 + - uid: 12036 components: - type: Transform - pos: -41.5,20.5 + pos: 62.5,-8.5 parent: 31 - - uid: 12701 + - uid: 12296 components: - type: Transform - pos: -24.5,27.5 + pos: -45.5,11.5 parent: 31 - - uid: 12702 + - uid: 12297 components: - type: Transform - pos: -25.5,27.5 + pos: -46.5,11.5 parent: 31 - - uid: 12703 + - uid: 12298 components: - type: Transform - pos: -27.5,27.5 + pos: -47.5,11.5 parent: 31 - - uid: 12704 + - uid: 12299 components: - type: Transform - pos: -25.5,26.5 + pos: -48.5,11.5 parent: 31 - - uid: 12706 + - uid: 12300 components: - type: Transform - pos: -19.5,27.5 + pos: -49.5,11.5 parent: 31 - - uid: 12707 + - uid: 12301 components: - type: Transform - pos: -17.5,27.5 + pos: -50.5,11.5 parent: 31 - - uid: 12774 + - uid: 12302 components: - type: Transform - pos: -45.5,-32.5 + pos: -51.5,11.5 parent: 31 - - uid: 12775 + - uid: 12303 components: - type: Transform - pos: -44.5,-32.5 + pos: -52.5,11.5 parent: 31 - - uid: 12776 + - uid: 12304 components: - type: Transform - pos: -43.5,-32.5 + pos: -53.5,11.5 parent: 31 - - uid: 12777 + - uid: 12305 components: - type: Transform - pos: -42.5,-32.5 + pos: -53.5,9.5 parent: 31 - - uid: 12778 + - uid: 12306 components: - type: Transform - pos: -41.5,-32.5 + pos: -52.5,9.5 parent: 31 - - uid: 12779 + - uid: 12307 components: - type: Transform - pos: -40.5,-32.5 + pos: -51.5,9.5 parent: 31 - - uid: 12780 + - uid: 12308 components: - type: Transform - pos: -39.5,-32.5 + pos: -50.5,9.5 parent: 31 - - uid: 12781 + - uid: 12309 components: - type: Transform - pos: -38.5,-32.5 + pos: -49.5,9.5 parent: 31 - - uid: 12782 + - uid: 12310 components: - type: Transform - pos: -54.5,-24.5 + pos: -47.5,9.5 parent: 31 - - uid: 12783 + - uid: 12311 components: - type: Transform - pos: -53.5,-24.5 + pos: -48.5,9.5 parent: 31 - - uid: 12784 + - uid: 12312 components: - type: Transform - pos: -52.5,-24.5 + pos: -46.5,9.5 parent: 31 - - uid: 12785 + - uid: 12313 components: - type: Transform - pos: -51.5,-24.5 + pos: -45.5,9.5 parent: 31 - - uid: 12786 + - uid: 12314 components: - type: Transform - pos: -50.5,-24.5 + pos: -45.5,7.5 parent: 31 - - uid: 12787 + - uid: 12315 components: - type: Transform - pos: -49.5,-24.5 + pos: -46.5,7.5 parent: 31 - - uid: 12788 + - uid: 12316 components: - type: Transform - pos: -48.5,-24.5 + pos: -47.5,7.5 parent: 31 - - uid: 12789 + - uid: 12317 components: - type: Transform - pos: -47.5,-24.5 + pos: -48.5,7.5 parent: 31 - - uid: 12790 + - uid: 12318 components: - type: Transform - pos: -46.5,-24.5 + pos: -50.5,7.5 parent: 31 - - uid: 12791 + - uid: 12319 components: - type: Transform - pos: -45.5,-24.5 + pos: -49.5,7.5 parent: 31 - - uid: 12792 + - uid: 12320 components: - type: Transform - pos: -44.5,-24.5 + pos: -51.5,7.5 parent: 31 - - uid: 12793 + - uid: 12321 components: - type: Transform - pos: -43.5,-24.5 + pos: -52.5,7.5 parent: 31 - - uid: 12794 + - uid: 12322 components: - type: Transform - pos: -42.5,-24.5 + pos: -53.5,7.5 parent: 31 - - uid: 12795 + - uid: 12334 components: - type: Transform - pos: -41.5,-24.5 + rot: -1.5707963267948966 rad + pos: -45.5,3.5 parent: 31 - - uid: 12796 + - uid: 12335 components: - type: Transform - pos: -40.5,-24.5 + rot: -1.5707963267948966 rad + pos: -46.5,3.5 parent: 31 - - uid: 12797 + - uid: 12336 components: - type: Transform - pos: -39.5,-24.5 + rot: -1.5707963267948966 rad + pos: -48.5,3.5 parent: 31 - - uid: 12798 + - uid: 12337 components: - type: Transform - pos: -38.5,-24.5 + rot: -1.5707963267948966 rad + pos: -47.5,3.5 parent: 31 - - uid: 12799 + - uid: 12338 components: - type: Transform - pos: -38.5,-23.5 + rot: -1.5707963267948966 rad + pos: -49.5,3.5 parent: 31 - - uid: 12800 + - uid: 12339 components: - type: Transform - pos: -38.5,-22.5 + rot: -1.5707963267948966 rad + pos: -50.5,3.5 parent: 31 - - uid: 12802 + - uid: 12340 components: - type: Transform - pos: -36.5,-43.5 + rot: -1.5707963267948966 rad + pos: -51.5,3.5 parent: 31 - - uid: 12847 + - uid: 12341 components: - type: Transform - pos: -36.5,-34.5 + rot: -1.5707963267948966 rad + pos: -52.5,3.5 parent: 31 - - uid: 12848 + - uid: 12342 components: - type: Transform - pos: -36.5,-35.5 + rot: -1.5707963267948966 rad + pos: -53.5,3.5 parent: 31 - - uid: 12849 + - uid: 12343 components: - type: Transform - pos: -36.5,-36.5 + rot: -1.5707963267948966 rad + pos: -53.5,1.5 parent: 31 - - uid: 12850 + - uid: 12344 components: - type: Transform - pos: -36.5,-37.5 + rot: -1.5707963267948966 rad + pos: -52.5,1.5 parent: 31 - - uid: 12851 + - uid: 12345 components: - type: Transform - pos: -36.5,-38.5 + rot: -1.5707963267948966 rad + pos: -51.5,1.5 parent: 31 - - uid: 12852 + - uid: 12346 components: - type: Transform - pos: -36.5,-39.5 + rot: -1.5707963267948966 rad + pos: -50.5,1.5 parent: 31 - - uid: 12853 + - uid: 12347 components: - type: Transform - pos: -36.5,-40.5 + rot: -1.5707963267948966 rad + pos: -49.5,1.5 parent: 31 - - uid: 12854 + - uid: 12348 components: - type: Transform - pos: -36.5,-41.5 + rot: -1.5707963267948966 rad + pos: -48.5,1.5 parent: 31 - - uid: 12855 + - uid: 12349 components: - type: Transform - pos: -36.5,-42.5 + rot: -1.5707963267948966 rad + pos: -47.5,1.5 parent: 31 - - uid: 12856 + - uid: 12350 components: - type: Transform - pos: -36.5,-44.5 + rot: -1.5707963267948966 rad + pos: -46.5,1.5 parent: 31 - - uid: 12857 + - uid: 12351 components: - type: Transform - pos: -36.5,-45.5 + rot: -1.5707963267948966 rad + pos: -45.5,1.5 parent: 31 - - uid: 12858 + - uid: 12352 components: - type: Transform - pos: -36.5,-46.5 + rot: -1.5707963267948966 rad + pos: -44.5,-0.5 parent: 31 - - uid: 12859 + - uid: 12353 components: - type: Transform - pos: -36.5,-47.5 + rot: -1.5707963267948966 rad + pos: -45.5,-0.5 parent: 31 - - uid: 12860 + - uid: 12354 components: - type: Transform - pos: -35.5,-47.5 + rot: -1.5707963267948966 rad + pos: -47.5,-0.5 parent: 31 - - uid: 12861 + - uid: 12355 components: - type: Transform - pos: -34.5,-47.5 + rot: -1.5707963267948966 rad + pos: -46.5,-0.5 parent: 31 - - uid: 12862 + - uid: 12356 components: - type: Transform - pos: -33.5,-47.5 + rot: -1.5707963267948966 rad + pos: -48.5,-0.5 parent: 31 - - uid: 12863 + - uid: 12357 components: - type: Transform - pos: -32.5,-47.5 + rot: -1.5707963267948966 rad + pos: -49.5,-0.5 parent: 31 - - uid: 12864 + - uid: 12358 components: - type: Transform - pos: -31.5,-47.5 + rot: -1.5707963267948966 rad + pos: -50.5,-0.5 parent: 31 - - uid: 12865 + - uid: 12359 components: - type: Transform - pos: -30.5,-47.5 + rot: -1.5707963267948966 rad + pos: -51.5,-0.5 parent: 31 - - uid: 12866 + - uid: 12360 components: - type: Transform - pos: -29.5,-47.5 + rot: -1.5707963267948966 rad + pos: -52.5,-0.5 parent: 31 - - uid: 12867 + - uid: 12361 components: - type: Transform - pos: -28.5,-47.5 + rot: -1.5707963267948966 rad + pos: -53.5,-0.5 parent: 31 - - uid: 12868 + - uid: 12533 components: - type: Transform - pos: -28.5,-46.5 + rot: 3.141592653589793 rad + pos: 30.5,25.5 parent: 31 - - uid: 12869 + - uid: 12534 components: - type: Transform - pos: -28.5,-45.5 + rot: 3.141592653589793 rad + pos: 30.5,24.5 parent: 31 - - uid: 12870 + - uid: 12644 components: - type: Transform - pos: -28.5,-44.5 + pos: 56.5,-37.5 parent: 31 - - uid: 12871 + - uid: 12645 components: - type: Transform - pos: -28.5,-43.5 + pos: 55.5,-37.5 parent: 31 - - uid: 12872 + - uid: 12646 components: - type: Transform - pos: -28.5,-42.5 + pos: 54.5,-37.5 parent: 31 - - uid: 12873 + - uid: 12647 components: - type: Transform - pos: -28.5,-41.5 + pos: 53.5,-37.5 parent: 31 - - uid: 12874 + - uid: 12648 components: - type: Transform - pos: -28.5,-40.5 + pos: 50.5,-36.5 parent: 31 - - uid: 12875 + - uid: 12649 components: - type: Transform - pos: -28.5,-39.5 + pos: 48.5,-36.5 parent: 31 - - uid: 12876 + - uid: 12664 components: - type: Transform - pos: -37.5,-36.5 + pos: 47.5,-36.5 parent: 31 - - uid: 12877 + - uid: 12666 components: - type: Transform - pos: -28.5,-38.5 + pos: 46.5,-36.5 parent: 31 - - uid: 12878 + - uid: 12672 components: - type: Transform - pos: -28.5,-37.5 + pos: 52.5,-36.5 parent: 31 - - uid: 12879 + - uid: 12971 components: - type: Transform - pos: -28.5,-36.5 + pos: -22.5,26.5 parent: 31 - - uid: 12880 + - uid: 12972 components: - type: Transform - pos: -28.5,-35.5 + pos: -21.5,26.5 parent: 31 - - uid: 12881 + - uid: 12973 components: - type: Transform - pos: -36.5,-33.5 + pos: -20.5,26.5 parent: 31 - - uid: 12882 +- proto: GrilleBroken + entities: + - uid: 40 components: - type: Transform - pos: -37.5,-33.5 + rot: 1.5707963267948966 rad + pos: 49.5,28.5 parent: 31 - - uid: 12883 + - uid: 80 components: - type: Transform - pos: -38.5,-33.5 + rot: 1.5707963267948966 rad + pos: -40.5,20.5 parent: 31 - - uid: 12884 + - uid: 552 components: - type: Transform - pos: -38.5,-36.5 + rot: 3.141592653589793 rad + pos: -42.5,12.5 parent: 31 - - uid: 12885 + - uid: 4444 components: - type: Transform - pos: -39.5,-36.5 + rot: 3.141592653589793 rad + pos: 61.5,-8.5 parent: 31 - - uid: 12886 + - uid: 4447 components: - type: Transform - pos: -37.5,-39.5 + rot: 1.5707963267948966 rad + pos: 61.5,-13.5 parent: 31 - - uid: 12887 + - uid: 6467 components: - type: Transform - pos: -38.5,-39.5 + rot: -1.5707963267948966 rad + pos: 54.5,24.5 parent: 31 - - uid: 12888 + - uid: 6744 components: - type: Transform - pos: -39.5,-39.5 + rot: 3.141592653589793 rad + pos: 58.5,21.5 parent: 31 - - uid: 12889 + - uid: 6747 components: - type: Transform - pos: -40.5,-39.5 + rot: 1.5707963267948966 rad + pos: 54.5,24.5 parent: 31 - - uid: 12890 + - uid: 7080 components: - type: Transform - pos: -27.5,-42.5 + rot: 1.5707963267948966 rad + pos: -11.5,-42.5 parent: 31 - - uid: 12891 + - uid: 7565 components: - type: Transform - pos: -26.5,-42.5 + rot: 1.5707963267948966 rad + pos: 59.5,-18.5 parent: 31 - - uid: 12892 + - uid: 7570 components: - type: Transform - pos: -25.5,-42.5 + rot: 3.141592653589793 rad + pos: 60.5,-23.5 parent: 31 - - uid: 12893 + - uid: 7572 components: - type: Transform - pos: -24.5,-42.5 + pos: 60.5,-25.5 parent: 31 - - uid: 12894 + - uid: 7579 components: - type: Transform - pos: -27.5,-45.5 + rot: 1.5707963267948966 rad + pos: 60.5,-15.5 parent: 31 - - uid: 12895 + - uid: 7580 components: - type: Transform - pos: -27.5,-46.5 + rot: 3.141592653589793 rad + pos: 60.5,-28.5 parent: 31 - - uid: 12896 + - uid: 7650 components: - type: Transform - pos: -26.5,-45.5 + pos: 60.5,-21.5 parent: 31 - - uid: 12897 + - uid: 7676 components: - type: Transform - pos: -25.5,-45.5 + rot: 3.141592653589793 rad + pos: 61.5,-12.5 parent: 31 - - uid: 12898 + - uid: 7699 components: - type: Transform - pos: -29.5,-48.5 + rot: 3.141592653589793 rad + pos: 60.5,-21.5 parent: 31 - - uid: 12899 + - uid: 8035 components: - type: Transform - pos: -29.5,-49.5 + rot: -1.5707963267948966 rad + pos: -28.5,29.5 parent: 31 - - uid: 12900 + - uid: 8369 components: - type: Transform - pos: -31.5,-48.5 + pos: 38.5,26.5 parent: 31 - - uid: 12901 + - uid: 8396 components: - type: Transform - pos: -35.5,-48.5 + rot: -1.5707963267948966 rad + pos: 58.5,-17.5 parent: 31 - - uid: 12902 + - uid: 8397 components: - type: Transform - pos: -37.5,-46.5 + pos: 58.5,-15.5 parent: 31 - - uid: 12903 + - uid: 8398 components: - type: Transform - pos: -37.5,-44.5 + rot: 3.141592653589793 rad + pos: 58.5,-13.5 parent: 31 - - uid: 12904 + - uid: 8748 components: - type: Transform - pos: -38.5,-44.5 + rot: -1.5707963267948966 rad + pos: 40.5,26.5 parent: 31 - - uid: 12938 + - uid: 8749 components: - type: Transform - pos: -36.5,30.5 + rot: -1.5707963267948966 rad + pos: 46.5,26.5 parent: 31 - - uid: 12939 + - uid: 8943 components: - type: Transform - pos: -37.5,29.5 + rot: 3.141592653589793 rad + pos: 55.5,25.5 parent: 31 - - uid: 12940 + - uid: 9674 components: - type: Transform - pos: -36.5,29.5 + pos: 14.5,-33.5 parent: 31 - - uid: 12941 + - uid: 9819 components: - type: Transform - pos: -35.5,29.5 + rot: -1.5707963267948966 rad + pos: 13.5,-45.5 parent: 31 - - uid: 12942 + - uid: 9844 components: - type: Transform - pos: -36.5,28.5 + rot: -1.5707963267948966 rad + pos: 1.5,-47.5 parent: 31 - - uid: 12943 + - uid: 9845 components: - type: Transform - pos: -35.5,28.5 + pos: 4.5,-46.5 parent: 31 - - uid: 12944 + - uid: 9846 components: - type: Transform - pos: -35.5,27.5 + rot: 3.141592653589793 rad + pos: 4.5,-46.5 parent: 31 - - uid: 12945 + - uid: 9848 components: - type: Transform - pos: -30.5,29.5 + pos: 11.5,-44.5 parent: 31 - - uid: 12946 + - uid: 9850 components: - type: Transform - pos: -31.5,29.5 + rot: 1.5707963267948966 rad + pos: 10.5,-45.5 parent: 31 - - uid: 12947 + - uid: 9851 components: - type: Transform - pos: -31.5,28.5 + rot: -1.5707963267948966 rad + pos: 9.5,-45.5 parent: 31 - - uid: 12948 + - uid: 9852 components: - type: Transform - pos: -30.5,28.5 + rot: 3.141592653589793 rad + pos: 14.5,-37.5 parent: 31 - - uid: 12949 + - uid: 9853 components: - type: Transform - pos: -30.5,30.5 + rot: 3.141592653589793 rad + pos: 13.5,-34.5 parent: 31 - - uid: 12950 + - uid: 9854 components: - type: Transform - pos: -29.5,29.5 + rot: 3.141592653589793 rad + pos: -1.5,-46.5 parent: 31 - - uid: 12951 + - uid: 9855 components: - type: Transform - pos: -31.5,27.5 + rot: 1.5707963267948966 rad + pos: -1.5,-47.5 parent: 31 - - uid: 12952 + - uid: 9856 components: - type: Transform - pos: -35.5,25.5 + rot: -1.5707963267948966 rad + pos: 6.5,-47.5 parent: 31 - - uid: 12953 + - uid: 9859 components: - type: Transform - pos: -35.5,24.5 + rot: -1.5707963267948966 rad + pos: -20.5,-39.5 parent: 31 - - uid: 12954 + - uid: 9860 components: - type: Transform - pos: -36.5,24.5 + pos: -22.5,-36.5 parent: 31 - - uid: 12955 + - uid: 9871 components: - type: Transform - pos: -37.5,23.5 + rot: 3.141592653589793 rad + pos: -22.5,-36.5 parent: 31 - - uid: 12956 + - uid: 9874 components: - type: Transform - pos: -36.5,23.5 + rot: 1.5707963267948966 rad + pos: -18.5,-39.5 parent: 31 - - uid: 12957 + - uid: 9879 components: - type: Transform - pos: -35.5,23.5 + rot: 1.5707963267948966 rad + pos: -21.5,-36.5 parent: 31 - - uid: 12958 + - uid: 10144 components: - type: Transform - pos: -35.5,22.5 + rot: -1.5707963267948966 rad + pos: -6.5,-42.5 parent: 31 - - uid: 12959 + - uid: 10225 components: - type: Transform - pos: -36.5,22.5 + rot: 1.5707963267948966 rad + pos: 60.5,-10.5 parent: 31 - - uid: 12960 + - uid: 10228 components: - type: Transform - pos: -31.5,25.5 + rot: -1.5707963267948966 rad + pos: 61.5,-13.5 parent: 31 - - uid: 12961 + - uid: 10467 components: - type: Transform - pos: -30.5,25.5 + rot: 1.5707963267948966 rad + pos: -6.5,-42.5 parent: 31 - - uid: 12962 + - uid: 10512 components: - type: Transform - pos: -29.5,25.5 + rot: 1.5707963267948966 rad + pos: 58.5,20.5 parent: 31 - - uid: 12963 + - uid: 10605 components: - type: Transform - pos: -33.5,22.5 + rot: 3.141592653589793 rad + pos: 44.5,-9.5 parent: 31 - - uid: 12964 + - uid: 11150 components: - type: Transform - pos: -33.5,21.5 + rot: -1.5707963267948966 rad + pos: 47.5,28.5 parent: 31 - - uid: 12965 + - uid: 12532 components: - type: Transform - pos: -32.5,22.5 + rot: 3.141592653589793 rad + pos: 30.5,26.5 parent: 31 - - uid: 12966 + - uid: 12641 components: - type: Transform - pos: -32.5,21.5 + rot: 1.5707963267948966 rad + pos: 52.5,-37.5 parent: 31 - - uid: 12967 + - uid: 12667 components: - type: Transform - pos: -31.5,21.5 + rot: -1.5707963267948966 rad + pos: 51.5,-36.5 parent: 31 - - uid: 12968 + - uid: 12668 components: - type: Transform - pos: -30.5,21.5 + rot: 1.5707963267948966 rad + pos: 45.5,-36.5 parent: 31 - - uid: 12969 +- proto: GrilleDiagonal + entities: + - uid: 4098 components: - type: Transform - pos: -31.5,22.5 + rot: -1.5707963267948966 rad + pos: 5.5,36.5 parent: 31 - - uid: 12970 + - uid: 8753 components: - type: Transform - pos: -32.5,23.5 + pos: -1.5,36.5 parent: 31 - proto: GunSafeLaserCarbine entities: @@ -55456,13 +55086,6 @@ entities: - type: Transform pos: -14.5,21.5 parent: 31 -- proto: Handcuffs - entities: - - uid: 8802 - components: - - type: Transform - pos: 9.513287,30.488989 - parent: 31 - proto: HandheldGPSBasic entities: - uid: 3890 @@ -55509,11 +55132,6 @@ entities: - type: Transform pos: 22.522892,12.524126 parent: 31 - - uid: 2854 - components: - - type: Transform - pos: -23.390205,-5.6188893 - parent: 31 - uid: 7126 components: - type: Transform @@ -55524,11 +55142,6 @@ entities: - type: Transform pos: 8.041532,18.530302 parent: 31 - - uid: 10139 - components: - - type: Transform - pos: -2.5260825,30.718403 - parent: 31 - proto: HarmonicaInstrument entities: - uid: 7248 @@ -55536,43 +55149,74 @@ entities: - type: Transform pos: -18.398912,10.183618 parent: 31 +- proto: HeadBorgMedical + entities: + - uid: 8243 + components: + - type: Transform + pos: 50.338017,-30.219852 + parent: 31 +- proto: HeadBorgMining + entities: + - uid: 4385 + components: + - type: Transform + pos: 50.681767,-30.219852 + parent: 31 +- proto: HeadBorgService + entities: + - uid: 4386 + components: + - type: Transform + pos: 50.515102,-30.490873 + parent: 31 - proto: HeatExchanger entities: - - uid: 3508 + - uid: 275 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 47.5,13.5 + pos: 49.5,24.5 parent: 31 - - uid: 3675 + - uid: 877 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 47.5,11.5 + rot: 3.141592653589793 rad + pos: 48.5,22.5 parent: 31 - - uid: 3888 + - uid: 1015 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 48.5,11.5 + rot: 3.141592653589793 rad + pos: 50.5,23.5 parent: 31 - - uid: 4275 + - uid: 1025 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 46.5,11.5 + rot: 3.141592653589793 rad + pos: 50.5,22.5 parent: 31 - - uid: 4289 + - uid: 1032 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 46.5,13.5 + rot: 3.141592653589793 rad + pos: 48.5,23.5 parent: 31 - - uid: 4292 + - uid: 1186 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 48.5,13.5 + pos: 50.5,24.5 + parent: 31 + - uid: 1228 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 49.5,22.5 + parent: 31 + - uid: 1265 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 49.5,23.5 parent: 31 - uid: 4348 components: @@ -55586,24 +55230,14 @@ entities: rot: -1.5707963267948966 rad pos: 67.5,2.5 parent: 31 + - type: AtmosPipeColor + color: '#A01E16FF' - uid: 4358 components: - type: Transform rot: 1.5707963267948966 rad pos: 64.5,8.5 parent: 31 - - uid: 4469 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 50.5,12.5 - parent: 31 - - uid: 4470 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 49.5,13.5 - parent: 31 - uid: 4850 components: - type: Transform @@ -55611,7 +55245,7 @@ entities: pos: 68.5,2.5 parent: 31 - type: AtmosPipeColor - color: '#990000FF' + color: '#A01E16FF' - uid: 6740 components: - type: Transform @@ -55632,11 +55266,10 @@ entities: rot: 1.5707963267948966 rad pos: 67.5,8.5 parent: 31 - - uid: 11047 + - uid: 7689 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 49.5,11.5 + pos: 48.5,24.5 parent: 31 - uid: 11785 components: @@ -55749,11 +55382,6 @@ entities: parent: 31 - proto: HydroponicsToolClippers entities: - - uid: 1138 - components: - - type: Transform - pos: -20.498135,-2.4408062 - parent: 31 - uid: 7744 components: - type: Transform @@ -55766,18 +55394,8 @@ entities: - type: Transform pos: 17.345112,-20.624432 parent: 31 - - uid: 1142 - components: - - type: Transform - pos: -19.529385,-2.4251812 - parent: 31 - proto: HydroponicsToolMiniHoe entities: - - uid: 1055 - components: - - type: Transform - pos: -20.498135,-2.3626812 - parent: 31 - uid: 5633 components: - type: Transform @@ -55788,20 +55406,8 @@ entities: - type: Transform pos: -4.4002256,-42.332767 parent: 31 -- proto: HydroponicsToolScythe - entities: - - uid: 4130 - components: - - type: Transform - pos: -19.498135,-2.3783062 - parent: 31 - proto: HydroponicsToolSpade entities: - - uid: 4131 - components: - - type: Transform - pos: -20.529385,-2.3470562 - parent: 31 - uid: 8850 components: - type: Transform @@ -55814,62 +55420,65 @@ entities: parent: 31 - proto: hydroponicsTray entities: - - uid: 775 - components: - - type: Transform - pos: -17.5,0.5 - parent: 31 - - uid: 807 + - uid: 2766 components: - type: Transform - pos: -18.5,-1.5 + rot: -1.5707963267948966 rad + pos: -19.5,8.5 parent: 31 - - uid: 2147 + - uid: 2909 components: - type: Transform - pos: -19.5,-1.5 + rot: -1.5707963267948966 rad + pos: -18.5,8.5 parent: 31 - - uid: 2148 + - uid: 10356 components: - type: Transform - pos: -17.5,-0.5 + rot: 3.141592653589793 rad + pos: -22.5,1.5 parent: 31 - - uid: 2457 + - uid: 10359 components: - type: Transform - pos: -19.5,0.5 + rot: 3.141592653589793 rad + pos: -22.5,-2.5 parent: 31 - - uid: 2766 + - uid: 10360 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -19.5,8.5 + rot: 3.141592653589793 rad + pos: -20.5,-2.5 parent: 31 - - uid: 2909 + - uid: 10369 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -18.5,8.5 + rot: 3.141592653589793 rad + pos: -20.5,1.5 parent: 31 - - uid: 2979 + - uid: 10370 components: - type: Transform - pos: -17.5,-1.5 + rot: 3.141592653589793 rad + pos: -20.5,-1.5 parent: 31 - - uid: 3553 + - uid: 10385 components: - type: Transform - pos: -19.5,-0.5 + rot: 3.141592653589793 rad + pos: -22.5,-1.5 parent: 31 - - uid: 3914 + - uid: 10386 components: - type: Transform - pos: -18.5,0.5 + rot: 3.141592653589793 rad + pos: -22.5,0.5 parent: 31 - - uid: 3917 + - uid: 10387 components: - type: Transform - pos: -18.5,-0.5 + rot: 3.141592653589793 rad + pos: -20.5,0.5 parent: 31 - proto: HydroponicsTrayMachineCircuitboard entities: @@ -55890,6 +55499,11 @@ entities: - 11052 - proto: InflatableDoorStack entities: + - uid: 2457 + components: + - type: Transform + pos: -35.48331,-23.570734 + parent: 31 - uid: 3907 components: - type: Transform @@ -55897,6 +55511,11 @@ entities: parent: 31 - proto: InflatableWallStack entities: + - uid: 2979 + components: + - type: Transform + pos: -35.495815,-23.283033 + parent: 31 - uid: 3679 components: - type: Transform @@ -55909,6 +55528,18 @@ entities: - type: Transform pos: -0.9189515,16.662592 parent: 31 +- proto: IngotGold1 + entities: + - uid: 11824 + components: + - type: Transform + pos: -17.388897,-5.447556 + parent: 31 + - uid: 11833 + components: + - type: Transform + pos: -17.669382,-5.7498493 + parent: 31 - proto: IngotSilver entities: - uid: 4144 @@ -55921,6 +55552,11 @@ entities: linearDamping: 0 - proto: IntercomAll entities: + - uid: 7039 + components: + - type: Transform + pos: 49.5,-23.5 + parent: 31 - uid: 9903 components: - type: Transform @@ -55935,12 +55571,6 @@ entities: parent: 31 - proto: IntercomCommon entities: - - uid: 9905 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -26.5,-3.5 - parent: 31 - uid: 9906 components: - type: Transform @@ -56009,12 +55639,6 @@ entities: rot: 3.141592653589793 rad pos: 40.5,10.5 parent: 31 - - uid: 9899 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 45.5,10.5 - parent: 31 - uid: 9900 components: - type: Transform @@ -56097,20 +55721,21 @@ entities: parent: 31 - proto: IntercomSecurity entities: - - uid: 2088 + - uid: 7827 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -1.5,11.5 + pos: -6.5,6.5 parent: 31 - - uid: 7827 + - uid: 8100 components: - type: Transform - pos: -6.5,6.5 + rot: 3.141592653589793 rad + pos: -10.5,9.5 parent: 31 - uid: 8908 components: - type: Transform + anchored: False pos: -15.5,15.5 parent: 31 - proto: IntercomService @@ -56171,11 +55796,11 @@ entities: parent: 31 - proto: JanitorialTrolley entities: - - uid: 2291 + - uid: 8283 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -19.5,-11.5 + rot: 1.5707963267948966 rad + pos: -21.5,-7.5 parent: 31 - proto: JetpackBlueFilled entities: @@ -56224,6 +55849,13 @@ entities: - type: Transform pos: -12.5,-0.5 parent: 31 +- proto: KitchenElectricGrill + entities: + - uid: 11828 + components: + - type: Transform + pos: -12.5,1.5 + parent: 31 - proto: KitchenMicrowave entities: - uid: 893 @@ -56258,6 +55890,11 @@ entities: - type: Transform pos: -16.5,11.5 parent: 31 + - uid: 10725 + components: + - type: Transform + pos: -16.5,-1.5 + parent: 31 - uid: 11703 components: - type: Transform @@ -56309,11 +55946,29 @@ entities: - type: Transform pos: 28.30586,10.796111 parent: 31 - - uid: 4095 + - uid: 2469 components: - type: Transform - pos: -30.466906,-1.5231686 + pos: -6.0362816,36.832863 parent: 31 + - type: HandheldLight + toggleActionEntity: 2470 + - type: ContainerContainer + containers: + cell_slot: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + actions: !type:Container + showEnts: False + occludes: True + ents: + - 2470 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: True + - type: ActionsContainer - uid: 4925 components: - type: Transform @@ -56349,6 +56004,14 @@ entities: - type: Transform pos: 14.479344,-6.1264844 parent: 31 +- proto: LampBanana + entities: + - uid: 6987 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.574013,-9.851585 + parent: 31 - proto: LampGold entities: - uid: 1422 @@ -56357,21 +56020,34 @@ entities: rot: -1.5707963267948966 rad pos: 7.852048,19.178608 parent: 31 - - uid: 4092 - components: - - type: Transform - pos: -30.54503,-5.3981686 - parent: 31 - uid: 4178 components: - type: Transform pos: 0.41178536,-5.2814264 parent: 31 - - uid: 7149 + - uid: 7042 components: - type: Transform - pos: 6.5934343,24.65432 + pos: 7.4295483,24.92614 parent: 31 + - type: HandheldLight + toggleActionEntity: 7058 + - type: ContainerContainer + containers: + cell_slot: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + actions: !type:Container + showEnts: False + occludes: True + ents: + - 7058 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: True + - type: ActionsContainer - uid: 7319 components: - type: Transform @@ -56382,11 +56058,6 @@ entities: - type: Transform pos: 8.54651,-28.293444 parent: 31 - - uid: 8725 - components: - - type: Transform - pos: -36.511345,-29.258835 - parent: 31 - uid: 11694 components: - type: Transform @@ -56407,6 +56078,11 @@ entities: parent: 31 - proto: LargeBeaker entities: + - uid: 4667 + components: + - type: Transform + pos: -16.216745,-1.5088191 + parent: 31 - uid: 5074 components: - type: Transform @@ -56424,13 +56100,6 @@ entities: - type: Transform pos: 5.3452716,-33.460297 parent: 31 -- proto: LidSalami - entities: - - uid: 10821 - components: - - type: Transform - pos: -2.4760625,33.567844 - parent: 31 - proto: Lighter entities: - uid: 3506 @@ -56490,16 +56159,6 @@ entities: parent: 31 - proto: LiquidOxygenCanister entities: - - uid: 4232 - components: - - type: Transform - anchored: True - pos: 36.5,23.5 - parent: 31 - - type: Physics - angularDamping: 0 - linearDamping: 0 - bodyType: Static - uid: 11888 components: - type: Transform @@ -56539,6 +56198,25 @@ entities: - Pressed: Toggle 6348: - Pressed: Toggle +- proto: LockableButtonCommand + entities: + - uid: 6124 + components: + - type: Transform + pos: -1.5,30.5 + parent: 31 + - type: DeviceLinkSource + linkedPorts: + 6090: + - Pressed: Toggle + 6091: + - Pressed: Toggle + 6121: + - Pressed: Toggle + 6122: + - Pressed: Toggle + 6123: + - Pressed: Toggle - proto: LockableButtonEngineering entities: - uid: 9957 @@ -56550,8 +56228,6 @@ entities: parent: 31 - type: DeviceLinkSource linkedPorts: - 11905: - - Pressed: Toggle 11904: - Pressed: Toggle 11898: @@ -56584,30 +56260,19 @@ entities: - Pressed: Toggle 7225: - Pressed: Toggle - - uid: 11939 +- proto: LockableButtonService + entities: + - uid: 8715 components: - - type: MetaData - name: blast doors button - type: Transform - pos: 59.5,5.5 + rot: -1.5707963267948966 rad + pos: -23.5,-4.5 parent: 31 - type: DeviceLinkSource linkedPorts: - 7308: + 3791: - Pressed: Toggle - 3140: - - Pressed: Toggle - 7297: - - Pressed: Toggle - 11935: - - Pressed: Toggle - 11936: - - Pressed: Toggle - 8199: - - Pressed: Toggle - 11938: - - Pressed: Toggle - 11027: + 3399: - Pressed: Toggle - proto: LockerAtmosphericsFilledHardsuit entities: @@ -56623,24 +56288,22 @@ entities: parent: 31 - proto: LockerBoozeFilled entities: - - uid: 584 + - uid: 8731 components: - type: Transform - pos: -11.5,-6.5 + pos: -12.5,-6.5 parent: 31 - proto: LockerBotanistFilled entities: - - uid: 782 + - uid: 3137 components: - type: Transform - pos: -17.5,1.5 + pos: -19.5,-2.5 parent: 31 -- proto: LockerBrigmedicFilledHardsuit - entities: - - uid: 6580 + - uid: 11485 components: - type: Transform - pos: -0.5,14.5 + pos: -19.5,1.5 parent: 31 - proto: LockerCaptainFilled entities: @@ -56677,11 +56340,6 @@ entities: - type: Transform pos: -11.5,-39.5 parent: 31 - - uid: 11058 - components: - - type: Transform - pos: -22.5,17.5 - parent: 31 - proto: LockerElectricalSuppliesFilled entities: - uid: 3114 @@ -56706,6 +56364,11 @@ entities: - type: Transform pos: 35.5,-2.5 parent: 31 + - uid: 1669 + components: + - type: Transform + pos: -36.5,-26.5 + parent: 31 - uid: 3369 components: - type: Transform @@ -56758,35 +56421,6 @@ entities: - type: Transform pos: -9.5,22.5 parent: 31 -- proto: LockerMedicalFilled - entities: - - uid: 802 - components: - - type: Transform - pos: 23.5,-7.5 - parent: 31 - - uid: 1149 - components: - - type: Transform - pos: 22.5,-7.5 - parent: 31 - - uid: 1151 - components: - - type: Transform - pos: 21.5,-7.5 - parent: 31 -- proto: LockerMedicineFilled - entities: - - uid: 4336 - components: - - type: Transform - pos: 15.5,-11.5 - parent: 31 - - uid: 7247 - components: - - type: Transform - pos: 12.5,-10.5 - parent: 31 - proto: LockerParamedicFilled entities: - uid: 7489 @@ -56844,11 +56478,6 @@ entities: parent: 31 - proto: LockerSecurityFilled entities: - - uid: 803 - components: - - type: Transform - pos: -12.5,13.5 - parent: 31 - uid: 804 components: - type: Transform @@ -56913,6 +56542,25 @@ entities: - type: Physics canCollide: False bodyType: Static +- proto: LunchboxGeneric + entities: + - uid: 10036 + components: + - type: Transform + pos: -30.684525,-9.548513 + parent: 31 + - uid: 12679 + components: + - type: Transform + pos: -30.496725,-29.480463 + parent: 31 +- proto: LunchboxGenericFilledRandom + entities: + - uid: 2908 + components: + - type: Transform + pos: -30.366293,-5.307212 + parent: 31 - proto: MachineAnomalyGenerator entities: - uid: 6098 @@ -56972,25 +56620,8 @@ entities: - type: Transform pos: -3.5,-43.5 parent: 31 -- proto: MagazinePistolSubMachineGunTopMounted - entities: - - uid: 10123 - components: - - type: Transform - pos: -8.471462,20.3102 - parent: 31 - - uid: 10124 - components: - - type: Transform - pos: -8.471462,20.4352 - parent: 31 - proto: MaintenanceFluffSpawner entities: - - uid: 113 - components: - - type: Transform - pos: -29.5,-5.5 - parent: 31 - uid: 4504 components: - type: Transform @@ -57001,11 +56632,6 @@ entities: - type: Transform pos: 45.5,-2.5 parent: 31 - - uid: 5714 - components: - - type: Transform - pos: -3.5,-12.5 - parent: 31 - uid: 7949 components: - type: Transform @@ -57016,16 +56642,6 @@ entities: - type: Transform pos: -4.5,-39.5 parent: 31 - - uid: 11127 - components: - - type: Transform - pos: -7.5,29.5 - parent: 31 - - uid: 11128 - components: - - type: Transform - pos: -6.5,29.5 - parent: 31 - proto: MaintenancePlantSpawner entities: - uid: 982 @@ -57043,10 +56659,10 @@ entities: - type: Transform pos: -0.5,21.5 parent: 31 - - uid: 7453 + - uid: 1408 components: - type: Transform - pos: -5.5,-12.5 + pos: -20.5,16.5 parent: 31 - uid: 9755 components: @@ -57065,6 +56681,11 @@ entities: parent: 31 - proto: MaintenanceToolSpawner entities: + - uid: 2454 + components: + - type: Transform + pos: -36.5,-23.5 + parent: 31 - uid: 3739 components: - type: Transform @@ -57080,6 +56701,12 @@ entities: - type: Transform pos: 38.5,-3.5 parent: 31 + - uid: 8235 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -26.5,-11.5 + parent: 31 - uid: 8558 components: - type: Transform @@ -57115,17 +56742,18 @@ entities: - type: Transform pos: 15.5,16.5 parent: 31 - - uid: 11125 - components: - - type: Transform - pos: -5.5,29.5 - parent: 31 - uid: 11230 components: - type: Transform rot: -1.5707963267948966 rad pos: -27.5,-14.5 parent: 31 + - uid: 12084 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,-18.5 + parent: 31 - proto: MaintenanceWeaponSpawner entities: - uid: 3306 @@ -57134,11 +56762,6 @@ entities: rot: 3.141592653589793 rad pos: 46.5,-2.5 parent: 31 - - uid: 4924 - components: - - type: Transform - pos: -29.5,-4.5 - parent: 31 - uid: 7866 components: - type: Transform @@ -57149,11 +56772,6 @@ entities: - type: Transform pos: 7.5,-41.5 parent: 31 - - uid: 11126 - components: - - type: Transform - pos: -7.5,28.5 - parent: 31 - proto: MaterialBiomass entities: - uid: 11682 @@ -57302,10 +56920,10 @@ entities: parent: 31 - proto: MedkitFilled entities: - - uid: 1040 + - uid: 2601 components: - type: Transform - pos: -0.4864614,32.561848 + pos: -0.3825792,35.550694 parent: 31 - uid: 8490 components: @@ -57350,27 +56968,34 @@ entities: - type: Transform pos: 10.5,-17.5 parent: 31 -- proto: MinimoogInstrument +- proto: MicrophoneInstrument entities: - - uid: 8736 + - uid: 12062 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -32.5,-28.5 + rot: -1.5707963267948966 rad + pos: -14.793948,-11.52346 + parent: 31 +- proto: Mirror + entities: + - uid: 4632 + components: + - type: Transform + pos: -6.5,-10.5 parent: 31 - proto: MonkeyCubeWrapped entities: - - uid: 8871 + - uid: 11842 components: - type: Transform - pos: -9.196694,-7.814363 + pos: -9.195737,-7.547551 parent: 31 - proto: MopBucket entities: - - uid: 2301 + - uid: 8216 components: - type: Transform - pos: -19.682484,-11.924354 + pos: -20.744839,-7.557439 parent: 31 - uid: 10216 components: @@ -57379,10 +57004,10 @@ entities: parent: 31 - proto: MopItem entities: - - uid: 2708 + - uid: 10177 components: - type: Transform - pos: -18.42709,-10.56736 + pos: -20.784925,-4.3508377 parent: 31 - uid: 10217 components: @@ -57396,12 +57021,6 @@ entities: - type: Transform pos: 14.5,-13.5 parent: 31 - - uid: 699 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 14.5,-17.5 - parent: 31 - uid: 2172 components: - type: Transform @@ -57424,20 +57043,8 @@ entities: rot: 3.141592653589793 rad pos: 13.5,-17.5 parent: 31 -- proto: MouseTimedSpawner - entities: - - uid: 1641 - components: - - type: Transform - pos: -12.5,-12.5 - parent: 31 - proto: Multitool entities: - - uid: 1038 - components: - - type: Transform - pos: 5.4978743,31.63788 - parent: 31 - uid: 11282 components: - type: Transform @@ -57501,6 +57108,11 @@ entities: parent: 31 - proto: NitrogenTankFilled entities: + - uid: 8561 + components: + - type: Transform + pos: -23.321144,22.409895 + parent: 31 - uid: 10652 components: - type: Transform @@ -57547,13 +57159,6 @@ entities: - type: Transform pos: -1.5,18.5 parent: 31 -- proto: NuclearBombKeg - entities: - - uid: 9842 - components: - - type: Transform - pos: -13.5,-11.5 - parent: 31 - proto: OilJarCorn entities: - uid: 12202 @@ -57645,6 +57250,16 @@ entities: - type: Transform pos: 35.5,10.5 parent: 31 + - uid: 2458 + components: + - type: Transform + anchored: True + pos: 36.5,23.5 + parent: 31 + - type: Physics + angularDamping: 0 + linearDamping: 0 + bodyType: Static - uid: 3576 components: - type: Transform @@ -57687,16 +57302,6 @@ entities: - type: Transform pos: -23.521854,22.535301 parent: 31 - - uid: 8740 - components: - - type: Transform - pos: -32.388412,-27.529545 - parent: 31 - - uid: 8741 - components: - - type: Transform - pos: -32.638412,-27.48267 - parent: 31 - proto: PackPaperRolling entities: - uid: 11702 @@ -57718,12 +57323,13 @@ entities: - type: Transform pos: -4.5,-7.5 parent: 31 -- proto: PaintingMoony +- proto: PaintingSadClown entities: - - uid: 8370 + - uid: 10388 components: - type: Transform - pos: 22.5,-8.5 + rot: 1.5707963267948966 rad + pos: -13.5,-9.5 parent: 31 - proto: PaintingTheGreatWave entities: @@ -57746,21 +57352,14 @@ entities: - type: Transform pos: -1.344388,25.58412 parent: 31 - - uid: 1071 - components: - - type: Transform - pos: -24.037928,-5.9436545 - parent: 31 - - uid: 1132 - components: - - type: Transform - pos: -24.147303,-5.8967795 - parent: 31 - - uid: 2356 + - uid: 2501 components: - type: Transform - pos: -24.256678,-5.7405295 - parent: 31 + parent: 2495 + - type: Physics + angularDamping: 0 + linearDamping: 0 + canCollide: False - uid: 6694 components: - type: Transform @@ -57775,11 +57374,6 @@ entities: - type: Physics angularDamping: 0 linearDamping: 0 - - uid: 7230 - components: - - type: Transform - pos: -19.27266,-5.542589 - parent: 31 - uid: 7318 components: - type: Transform @@ -57800,25 +57394,40 @@ entities: - type: Transform pos: 11.761125,-31.361996 parent: 31 - - uid: 8743 + - uid: 8393 components: - type: Transform - parent: 8742 - - type: Paper - content: > - Weh. - - type: Physics - canCollide: False + rot: -1.5707963267948966 rad + pos: -5.5279813,15.344591 + parent: 31 + - uid: 8685 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.628653,15.626471 + parent: 31 + - uid: 8955 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.4955661,10.757132 + parent: 31 - uid: 9738 components: - type: Transform rot: -1.5707963267948966 rad pos: 11.392193,-41.961483 parent: 31 + - uid: 11714 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.3747604,10.877937 + parent: 31 - uid: 12253 components: - type: Transform - pos: 59.767834,2.5585926 + pos: 59.60517,3.029881 parent: 31 - type: Paper stampState: paper_stamp-centcom @@ -57864,11 +57473,6 @@ entities: rot: 1.5707963267948966 rad pos: 7.6286554,1.6747794 parent: 31 - - uid: 2221 - components: - - type: Transform - pos: -19.27266,-5.365598 - parent: 31 - uid: 4533 components: - type: Transform @@ -57885,11 +57489,6 @@ entities: - type: Transform pos: 7.5388665,-3.406831 parent: 31 - - uid: 7229 - components: - - type: Transform - pos: -19.27266,-5.483592 - parent: 31 - uid: 9148 components: - type: Transform @@ -57906,13 +57505,6 @@ entities: - type: Transform pos: 14.251285,12.542005 parent: 31 -- proto: ParchisBoard - entities: - - uid: 2501 - components: - - type: Transform - pos: -23.526257,-2.4008582 - parent: 31 - proto: PartRodMetal entities: - uid: 1300 @@ -57921,6 +57513,12 @@ entities: rot: 3.141592653589793 rad pos: 50.50942,4.811885 parent: 31 + - uid: 3798 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -36.57201,-24.009228 + parent: 31 - uid: 6364 components: - type: Transform @@ -57929,6 +57527,12 @@ entities: parent: 31 - proto: PartRodMetal1 entities: + - uid: 271 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.399883,19.1777 + parent: 31 - uid: 9682 components: - type: Transform @@ -57940,46 +57544,51 @@ entities: - type: Transform pos: 44.987167,-9.130011 parent: 31 -- proto: PartRodMetal10 - entities: - - uid: 9714 + - uid: 11125 components: - type: Transform rot: 3.141592653589793 rad - pos: 11.569283,-41.135525 + pos: -21.102043,16.27145 parent: 31 -- proto: Pen - entities: - - uid: 863 + - uid: 13048 components: - type: Transform rot: -1.5707963267948966 rad - pos: -16.707977,-25.58053 + pos: 39.617805,13.958574 parent: 31 - - uid: 2031 + - uid: 13049 components: - type: Transform - pos: -24.647303,-6.4436545 + rot: 3.141592653589793 rad + pos: 43.151688,16.364824 parent: 31 - - uid: 2032 + - uid: 13050 components: - type: Transform - pos: -23.350428,-5.2092795 + rot: 1.5707963267948966 rad + pos: 49.02943,16.333574 parent: 31 - - uid: 2355 + - uid: 13051 components: - type: Transform - pos: -23.709803,-6.4905295 + rot: 1.5707963267948966 rad + pos: 32.104553,12.521074 parent: 31 - - uid: 8744 +- proto: PartRodMetal10 + entities: + - uid: 9714 components: - type: Transform - pos: -35.660393,-24.67745 + rot: 3.141592653589793 rad + pos: 11.569283,-41.135525 parent: 31 - - uid: 8840 +- proto: Pen + entities: + - uid: 863 components: - type: Transform - pos: 7.355826,32.45485 + rot: -1.5707963267948966 rad + pos: -16.707977,-25.58053 parent: 31 - uid: 8867 components: @@ -57996,22 +57605,19 @@ entities: - type: Transform pos: 22.626728,-10.546311 parent: 31 -- proto: PersonalAI - entities: - - uid: 979 - components: - - type: Transform - pos: 2.5129576,32.47221 - parent: 31 - - uid: 2780 + - uid: 11720 components: - type: Transform - pos: -24.675209,-5.91818 + rot: 1.5707963267948966 rad + pos: -3.7170417,10.978607 parent: 31 - - uid: 7898 +- proto: PersonalAI + entities: + - uid: 8690 components: - type: Transform - pos: 7.5388803,-23.388987 + rot: -1.5707963267948966 rad + pos: 7.3941746,-29.957026 parent: 31 - proto: PhoneInstrument entities: @@ -58028,6 +57634,12 @@ entities: rot: 3.141592653589793 rad pos: -4.5,1.5 parent: 31 + - uid: 11548 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -11.5,-9.5 + parent: 31 - uid: 11620 components: - type: Transform @@ -58121,74 +57733,6 @@ entities: angularDamping: 0 linearDamping: 0 bodyType: Static -- proto: PlasmaReinforcedWindowDirectional - entities: - - uid: 12044 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 60.5,0.5 - parent: 31 - - uid: 12076 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 62.5,1.5 - parent: 31 - - uid: 12078 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 62.5,0.5 - parent: 31 - - uid: 12079 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 62.5,2.5 - parent: 31 - - uid: 12080 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 62.5,3.5 - parent: 31 - - uid: 12081 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 62.5,4.5 - parent: 31 - - uid: 12084 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 60.5,4.5 - parent: 31 - - uid: 12085 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 60.5,3.5 - parent: 31 - - uid: 12086 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 60.5,2.5 - parent: 31 - - uid: 12087 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 60.5,1.5 - parent: 31 - - uid: 12088 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 60.5,0.5 - parent: 31 - proto: PlasmaTankFilled entities: - uid: 12056 @@ -58201,14 +57745,6 @@ entities: - type: Transform pos: 57.572613,4.401287 parent: 31 -- proto: PlasmaWindoorSecureEngineeringLocked - entities: - - uid: 12043 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 60.5,0.5 - parent: 31 - proto: PlasticFlapsAirtightClear entities: - uid: 547 @@ -58250,20 +57786,15 @@ entities: parent: 31 - proto: PlushieLizard entities: - - uid: 1125 - components: - - type: Transform - pos: -31.457468,18.461973 - parent: 31 - - uid: 8715 + - uid: 1058 components: - type: Transform - pos: -34.491947,-24.517502 + pos: -36.50589,-29.473022 parent: 31 - - uid: 8737 + - uid: 1125 components: - type: Transform - pos: -32.58532,-31.483488 + pos: -31.457468,18.461973 parent: 31 - uid: 10650 components: @@ -58275,24 +57806,12 @@ entities: - type: Transform pos: 6.8823633,-3.4168224 parent: 31 -- proto: PlushieNar - entities: - - uid: 11111 - components: - - type: Transform - pos: -41.4551,17.484098 - parent: 31 - proto: PlushieSpaceLizard entities: - - uid: 7422 - components: - - type: Transform - pos: -39.495785,-7.6992884 - parent: 31 - - uid: 8712 + - uid: 13054 components: - type: Transform - pos: -35.523197,-23.564377 + pos: -40.496353,-9.50457 parent: 31 - proto: PonderingOrb entities: @@ -58310,6 +57829,11 @@ entities: parent: 31 - proto: PortableGeneratorJrPacman entities: + - uid: 3248 + components: + - type: Transform + pos: -21.5,12.5 + parent: 31 - uid: 10125 components: - type: Transform @@ -58420,6 +57944,14 @@ entities: - type: Transform pos: 28.5,-0.5 parent: 31 +- proto: PosterContrabandFunPolice + entities: + - uid: 2771 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,31.5 + parent: 31 - proto: PosterContrabandLamarr entities: - uid: 9617 @@ -58443,10 +57975,11 @@ entities: parent: 31 - proto: PosterContrabandSmoke entities: - - uid: 7802 + - uid: 8288 components: - type: Transform - pos: 13.5,20.5 + rot: -1.5707963267948966 rad + pos: 14.5,20.5 parent: 31 - proto: PosterContrabandSpaceCola entities: @@ -58462,33 +57995,35 @@ entities: - type: Transform pos: -27.5,12.5 parent: 31 -- proto: PosterContrabandVoteWeh +- proto: PosterLegitAnatomyPoster entities: - - uid: 8703 + - uid: 6883 components: - type: Transform - pos: -37.5,-26.5 + rot: -1.5707963267948966 rad + pos: 25.5,-7.5 parent: 31 -- proto: PosterContrabandWehWatches +- proto: PosterLegitBlessThisSpess entities: - - uid: 8720 + - uid: 3571 components: - type: Transform - pos: -31.5,-28.5 + rot: -1.5707963267948966 rad + pos: -19.5,-4.5 parent: 31 -- proto: PosterLegitAnatomyPoster +- proto: PosterLegitBuild entities: - - uid: 7342 + - uid: 2677 components: - type: Transform - pos: 25.5,-6.5 + rot: -1.5707963267948966 rad + pos: -33.5,-25.5 parent: 31 -- proto: PosterLegitCarbonDioxide - entities: - - uid: 7690 + - uid: 7857 components: - type: Transform - pos: 29.5,14.5 + rot: -1.5707963267948966 rad + pos: -21.5,21.5 parent: 31 - proto: PosterLegitCarpMount entities: @@ -58513,12 +58048,11 @@ entities: - type: Transform pos: 1.5,-5.5 parent: 31 -- proto: PosterLegitDickGumshue - entities: - - uid: 9366 + - uid: 9993 components: - type: Transform - pos: -22.5,18.5 + rot: 3.141592653589793 rad + pos: -27.5,-5.5 parent: 31 - proto: PosterLegitIan entities: @@ -58536,16 +58070,21 @@ entities: parent: 31 - proto: PosterLegitNanotrasenLogo entities: - - uid: 619 + - uid: 2566 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -43.5,-8.5 + parent: 31 + - uid: 2691 components: - type: Transform pos: 5.5,26.5 parent: 31 - - uid: 2566 + - uid: 6309 components: - type: Transform - rot: 3.141592653589793 rad - pos: -43.5,-8.5 + pos: 5.5,24.5 parent: 31 - uid: 7803 components: @@ -58562,16 +58101,6 @@ entities: - type: Transform pos: 34.5,-18.5 parent: 31 - - uid: 8325 - components: - - type: Transform - pos: 43.5,-22.5 - parent: 31 - - uid: 8326 - components: - - type: Transform - pos: 43.5,-26.5 - parent: 31 - proto: PosterLegitNoERP entities: - uid: 7808 @@ -58616,17 +58145,10 @@ entities: parent: 31 - proto: PosterLegitStateLaws entities: - - uid: 10558 - components: - - type: Transform - pos: -4.5,-26.5 - parent: 31 -- proto: PosterLegitWorkForAFuture - entities: - - uid: 11107 + - uid: 9675 components: - type: Transform - pos: -18.5,-9.5 + pos: -4.5,-25.5 parent: 31 - proto: PosterMapSaltern entities: @@ -58677,13 +58199,6 @@ entities: - type: Transform pos: 23.784285,-11.850549 parent: 31 -- proto: PottedPlantBioluminscent - entities: - - uid: 8292 - components: - - type: Transform - pos: 32.5,-25.5 - parent: 31 - proto: PottedPlantRandom entities: - uid: 161 @@ -58694,74 +58209,64 @@ entities: - type: ContainerContainer containers: stash: !type:ContainerSlot {} - - uid: 763 + - uid: 1068 components: - type: Transform - pos: 0.5,26.5 + pos: 5.5,16.5 parent: 31 - - type: ContainerContainer - containers: - stash: !type:ContainerSlot {} - - uid: 1068 + - uid: 1391 components: - type: Transform - pos: 5.5,16.5 + pos: 4.5,30.5 parent: 31 - - uid: 2712 + - uid: 1686 components: - type: Transform - pos: -35.5,-11.5 + pos: -4.5,29.5 parent: 31 - - uid: 4934 + - uid: 2451 components: - type: Transform - pos: 4.5,27.5 + pos: 0.5,14.5 parent: 31 - - type: ContainerContainer - containers: - stash: !type:ContainerSlot {} - - uid: 5634 + - uid: 2678 components: - type: Transform - pos: -7.5,17.5 + pos: -7.5,36.5 parent: 31 - - uid: 7290 + - uid: 2692 components: - type: Transform - pos: 6.5,1.5 + pos: -7.5,36.5 parent: 31 - - type: ContainerContainer - containers: - stash: !type:ContainerSlot {} - - uid: 7334 + - uid: 2712 components: - type: Transform - pos: -10.5,11.5 + pos: -35.5,-11.5 parent: 31 - - uid: 8288 + - uid: 5634 components: - type: Transform - pos: 55.5,-24.5 + pos: -7.5,17.5 parent: 31 - - type: ContainerContainer - containers: - stash: !type:ContainerSlot {} - - uid: 8709 + - uid: 7150 components: - type: Transform - pos: -34.5,-23.5 + pos: 4.5,23.5 parent: 31 - - type: ContainerContainer - containers: - stash: !type:ContainerSlot {} - - uid: 8808 + - uid: 7290 components: - type: Transform - pos: 2.5,27.5 + pos: 6.5,1.5 parent: 31 - type: ContainerContainer containers: stash: !type:ContainerSlot {} + - uid: 7334 + components: + - type: Transform + pos: -10.5,11.5 + parent: 31 - uid: 9325 components: - type: Transform @@ -58770,6 +58275,11 @@ entities: - type: ContainerContainer containers: stash: !type:ContainerSlot {} + - uid: 9552 + components: + - type: Transform + pos: 2.5,23.5 + parent: 31 - uid: 9915 components: - type: Transform @@ -58797,6 +58307,11 @@ entities: parent: 31 - proto: PottedPlantRandomPlastic entities: + - uid: 1363 + components: + - type: Transform + pos: -35.5,-29.5 + parent: 31 - uid: 2316 components: - type: Transform @@ -58834,6 +58349,11 @@ entities: - type: Transform pos: 0.6812986,-27.61599 parent: 31 + - uid: 8252 + components: + - type: Transform + pos: 47.648796,-19.40138 + parent: 31 - proto: PowerCellMedium entities: - uid: 2198 @@ -58854,18 +58374,6 @@ entities: rot: 1.5707963267948966 rad pos: -17.5,-23.5 parent: 31 - - uid: 1395 - components: - - type: Transform - pos: 5.5,32.5 - parent: 31 - - type: Physics - canCollide: False - - uid: 1425 - components: - - type: Transform - pos: -11.5,16.5 - parent: 31 - uid: 2889 components: - type: Transform @@ -58883,11 +58391,22 @@ entities: - type: Transform pos: 8.5,-4.5 parent: 31 + - uid: 4622 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.5,-19.5 + parent: 31 - uid: 6205 components: - type: Transform pos: 18.5,17.5 parent: 31 + - uid: 7161 + components: + - type: Transform + pos: -11.5,16.5 + parent: 31 - uid: 9528 components: - type: Transform @@ -58905,239 +58424,203 @@ entities: - type: Transform pos: -17.310383,-23.212906 parent: 31 -- proto: Poweredlight +- proto: PoweredLEDLightPostSmall entities: - - uid: 41 + - uid: 426 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -25.5,6.5 + pos: -10.5,28.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 143 + - uid: 554 components: - type: Transform rot: -1.5707963267948966 rad - pos: 12.5,-3.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 220 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -10.5,-31.5 + pos: 49.5,-32.5 parent: 31 - - uid: 303 + - uid: 2056 components: - type: Transform - pos: 8.5,21.5 + rot: 1.5707963267948966 rad + pos: -0.5,37.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 401 + - uid: 2584 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -25.5,-13.5 + pos: -55.5,-28.5 parent: 31 - - uid: 493 + - uid: 2673 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 24.5,11.5 + pos: -32.5,-47.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 516 + - uid: 5769 components: - type: Transform - pos: 28.5,6.5 + pos: 46.5,-16.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 557 + - uid: 7214 components: - type: Transform - pos: -38.5,10.5 + rot: 1.5707963267948966 rad + pos: 4.5,37.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 776 + - uid: 7701 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -15.5,13.5 + rot: 3.141592653589793 rad + pos: -9.5,38.5 parent: 31 - - uid: 857 + - uid: 8286 components: - type: Transform rot: -1.5707963267948966 rad - pos: -35.5,0.5 + pos: 56.5,-27.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 891 + - uid: 8816 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -35.5,-4.5 + rot: 3.141592653589793 rad + pos: -9.5,32.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 892 + - uid: 8953 components: - type: Transform - pos: -32.5,5.5 + rot: -1.5707963267948966 rad + pos: 42.5,-27.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 917 + - uid: 9376 components: - type: Transform rot: 3.141592653589793 rad - pos: -30.5,3.5 + pos: -3.5,35.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 994 + - uid: 11844 components: - type: Transform - rot: 3.141592653589793 rad - pos: 22.5,-11.5 + pos: 52.5,-16.5 parent: 31 - - uid: 1033 +- proto: PoweredLEDSmallLight + entities: + - uid: 2860 components: - type: Transform rot: 1.5707963267948966 rad - pos: -29.5,9.5 + pos: -15.5,-11.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1034 + - type: Timer +- proto: Poweredlight + entities: + - uid: 41 components: - type: Transform - rot: 3.141592653589793 rad - pos: -26.5,8.5 + rot: 1.5707963267948966 rad + pos: -25.5,6.5 parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 1058 + - uid: 220 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -22.5,2.5 + rot: 3.141592653589793 rad + pos: -10.5,-31.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1059 + - uid: 303 components: - type: Transform - rot: 3.141592653589793 rad - pos: -20.5,3.5 + pos: 8.5,21.5 parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 1060 + - uid: 493 components: - type: Transform rot: -1.5707963267948966 rad - pos: -22.5,-0.5 + pos: 24.5,11.5 parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 1061 + - uid: 557 components: - type: Transform - pos: -18.5,5.5 + pos: -38.5,10.5 parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 1064 + - uid: 674 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -20.5,0.5 + rot: 3.141592653589793 rad + pos: 52.5,-27.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1066 + - uid: 699 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -25.5,-4.5 + pos: 52.5,-21.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1069 + - uid: 776 components: - type: Transform - rot: 3.141592653589793 rad - pos: -20.5,-2.5 + rot: 1.5707963267948966 rad + pos: -15.5,13.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1122 + - uid: 857 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -2.5,30.5 + rot: -1.5707963267948966 rad + pos: -35.5,0.5 parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 1123 + - uid: 891 components: - type: Transform rot: -1.5707963267948966 rad - pos: 9.5,30.5 + pos: -35.5,-4.5 parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 1135 + - uid: 892 components: - type: Transform - pos: 12.5,27.5 + pos: -32.5,5.5 parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 1171 + - uid: 917 components: - type: Transform rot: 3.141592653589793 rad - pos: 1.5,30.5 + pos: -30.5,3.5 parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 1186 + - uid: 994 components: - type: Transform rot: 3.141592653589793 rad - pos: 5.5,30.5 + pos: 22.5,-11.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1188 + - uid: 1033 components: - type: Transform rot: 1.5707963267948966 rad - pos: 2.5,23.5 + pos: -29.5,9.5 parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 1200 + - uid: 1034 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 4.5,23.5 + rot: 3.141592653589793 rad + pos: -26.5,8.5 parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 1210 + - uid: 1059 components: - type: Transform rot: 3.141592653589793 rad - pos: 5.5,16.5 + pos: -20.5,3.5 parent: 31 - type: ApcPowerReceiver powerLoad: 0 @@ -59172,22 +58655,6 @@ entities: parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 1228 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 12.5,10.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1234 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 4.5,12.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - uid: 1252 components: - type: Transform @@ -59196,53 +58663,6 @@ entities: parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 1253 - components: - - type: Transform - pos: 15.5,12.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1259 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 18.5,13.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1261 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 18.5,8.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1262 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 16.5,7.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1265 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 18.5,3.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1266 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 13.5,3.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - uid: 1271 components: - type: Transform @@ -59250,28 +58670,6 @@ entities: parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 1272 - components: - - type: Transform - pos: 15.5,1.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1274 - components: - - type: Transform - pos: 18.5,1.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1281 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 23.5,3.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - uid: 1283 components: - type: Transform @@ -59342,22 +58740,6 @@ entities: parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 1313 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 5.5,-21.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1322 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 5.5,-17.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - uid: 1323 components: - type: Transform @@ -59375,30 +58757,6 @@ entities: parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 1325 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 1.5,-17.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1331 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -1.5,-17.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 1344 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 18.5,17.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - uid: 1358 components: - type: Transform @@ -59430,14 +58788,6 @@ entities: parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 1367 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 0.5,3.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - uid: 1371 components: - type: Transform @@ -59454,14 +58804,6 @@ entities: parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 1538 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 45.5,15.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - uid: 1605 components: - type: Transform @@ -59487,17 +58829,16 @@ entities: rot: 3.141592653589793 rad pos: -4.5,-23.5 parent: 31 - - uid: 2179 + - uid: 2131 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 6.5,-3.5 + pos: -11.5,-18.5 parent: 31 - - uid: 2220 + - uid: 2179 components: - type: Transform - rot: 3.141592653589793 rad - pos: -18.5,-8.5 + rot: 1.5707963267948966 rad + pos: 6.5,-3.5 parent: 31 - uid: 2247 components: @@ -59507,6 +58848,34 @@ entities: parent: 31 - type: ApcPowerReceiver powerLoad: 0 + - uid: 2346 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,10.5 + parent: 31 + - uid: 2406 + components: + - type: Transform + pos: 14.5,12.5 + parent: 31 + - uid: 2473 + components: + - type: Transform + pos: -18.5,-14.5 + parent: 31 + - uid: 2690 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,31.5 + parent: 31 + - uid: 2717 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-19.5 + parent: 31 - uid: 3380 components: - type: Transform @@ -59527,59 +58896,51 @@ entities: rot: 3.141592653589793 rad pos: -14.5,-22.5 parent: 31 - - uid: 3732 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -17.5,-27.5 - parent: 31 - uid: 3734 components: - type: Transform rot: 1.5707963267948966 rad pos: -16.5,-29.5 parent: 31 - - uid: 3963 + - uid: 3842 components: - type: Transform rot: 3.141592653589793 rad - pos: -10.5,7.5 + pos: 46.5,-27.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 3983 + - uid: 3896 components: - type: Transform - pos: -5.5,17.5 + pos: 46.5,-21.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 3998 + - uid: 3908 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 49.5,-30.5 + parent: 31 + - uid: 3919 components: - type: Transform rot: 1.5707963267948966 rad - pos: -9.5,17.5 + pos: 43.5,-24.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 4097 + - uid: 3930 components: - type: Transform - pos: -12.5,11.5 + rot: -1.5707963267948966 rad + pos: 55.5,-24.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 4119 + - uid: 3999 components: - type: Transform - pos: -11.5,5.5 + rot: 1.5707963267948966 rad + pos: -25.5,-15.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 4120 + - uid: 4097 components: - type: Transform - pos: -9.5,5.5 + pos: -12.5,11.5 parent: 31 - type: ApcPowerReceiver powerLoad: 0 @@ -59590,14 +58951,6 @@ entities: parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 4122 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -16.5,-1.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - uid: 4251 components: - type: Transform @@ -59634,22 +58987,6 @@ entities: parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 4912 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 24.5,15.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 5103 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 19.5,-0.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - uid: 6182 components: - type: Transform @@ -59680,46 +59017,6 @@ entities: parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 6384 - components: - - type: Transform - pos: 34.5,23.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 6385 - components: - - type: Transform - pos: 42.5,23.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 6387 - components: - - type: Transform - pos: 36.5,23.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 6406 - components: - - type: Transform - pos: 35.5,19.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 6407 - components: - - type: Transform - pos: 43.5,19.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 6435 - components: - - type: Transform - pos: 46.5,23.5 - parent: 31 - uid: 6436 components: - type: Transform @@ -59727,33 +59024,19 @@ entities: parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 6463 - components: - - type: Transform - pos: 44.5,23.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 6509 + - uid: 6566 components: - type: Transform - pos: 40.5,23.5 + pos: 39.5,19.5 parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 6527 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 48.5,21.5 - parent: 31 - - uid: 6566 + - uid: 6860 components: - type: Transform - pos: 39.5,19.5 + rot: 3.141592653589793 rad + pos: -19.5,-12.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - uid: 6897 components: - type: Transform @@ -59789,13 +59072,6 @@ entities: rot: 1.5707963267948966 rad pos: 20.5,22.5 parent: 31 - - uid: 6921 - components: - - type: Transform - pos: 38.5,23.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - uid: 7067 components: - type: Transform @@ -59814,194 +59090,189 @@ entities: - uid: 7171 components: - type: Transform - pos: 8.5,26.5 + rot: -1.5707963267948966 rad + pos: 12.5,-3.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 7349 + - uid: 7231 components: - type: Transform - pos: 14.5,-13.5 + rot: 3.141592653589793 rad + pos: 20.5,3.5 parent: 31 - - uid: 7350 + - uid: 7247 + components: + - type: Transform + pos: 28.5,6.5 + parent: 31 + - uid: 7254 components: - type: Transform rot: 3.141592653589793 rad - pos: 18.5,-18.5 + pos: 12.5,3.5 parent: 31 - - uid: 7586 + - uid: 7277 + components: + - type: Transform + pos: 18.5,1.5 + parent: 31 + - uid: 7296 components: - type: Transform rot: 3.141592653589793 rad - pos: 8.5,16.5 + pos: 51.5,15.5 parent: 31 - - uid: 7653 + - uid: 7298 components: - type: Transform - pos: 6.5,-7.5 + rot: 3.141592653589793 rad + pos: 18.5,-2.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 7747 + - uid: 7349 components: - type: Transform - pos: -8.5,-14.5 + pos: 14.5,-13.5 parent: 31 - - uid: 7785 + - uid: 7350 components: - type: Transform rot: 3.141592653589793 rad - pos: -50.5,-11.5 + pos: 18.5,-18.5 parent: 31 - - uid: 7788 + - uid: 7384 components: - type: Transform rot: 3.141592653589793 rad - pos: -45.5,-11.5 + pos: -13.5,3.5 parent: 31 - - uid: 7871 + - uid: 7487 components: - type: Transform rot: -1.5707963267948966 rad - pos: -17.5,-11.5 + pos: 4.5,28.5 parent: 31 - - uid: 8085 + - uid: 7533 components: - type: Transform - pos: -0.5,8.5 + pos: -5.5,-11.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 8086 + - uid: 7564 components: - type: Transform rot: 3.141592653589793 rad - pos: -0.5,10.5 + pos: -9.5,-16.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 8270 + - uid: 7586 components: - type: Transform - pos: 34.5,-23.5 + rot: 3.141592653589793 rad + pos: 8.5,16.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 8272 + - uid: 7653 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 33.5,-19.5 + pos: 6.5,-7.5 parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 8273 + - uid: 7785 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 44.5,-22.5 + rot: 3.141592653589793 rad + pos: -50.5,-11.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 8274 + - uid: 7788 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 44.5,-26.5 + rot: 3.141592653589793 rad + pos: -45.5,-11.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 8275 + - uid: 8231 components: - type: Transform rot: 3.141592653589793 rad - pos: 47.5,-29.5 + pos: -15.5,-27.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 8276 + - uid: 8236 components: - type: Transform - rot: 3.141592653589793 rad - pos: 51.5,-29.5 + rot: 1.5707963267948966 rad + pos: -9.5,12.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 8277 + - uid: 8237 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 54.5,-26.5 + pos: 5.5,21.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 8278 + - uid: 8238 components: - type: Transform rot: -1.5707963267948966 rad - pos: 54.5,-22.5 + pos: 5.5,-16.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 8279 + - uid: 8240 components: - type: Transform - pos: 51.5,-19.5 + rot: 1.5707963267948966 rad + pos: 2.5,-25.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 8280 + - uid: 8241 components: - type: Transform - pos: 47.5,-19.5 + pos: -2.5,-14.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 8734 + - uid: 8242 components: - type: Transform - pos: -35.5,-23.5 + rot: -1.5707963267948966 rad + pos: 4.5,14.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 8835 + - uid: 8245 components: - type: Transform rot: 1.5707963267948966 rad - pos: 6.5,29.5 + pos: -30.5,-6.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 8836 + - uid: 8261 components: - type: Transform rot: -1.5707963267948966 rad - pos: 0.5,29.5 + pos: 0.5,13.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 8837 + - uid: 8262 components: - type: Transform rot: -1.5707963267948966 rad - pos: 4.5,27.5 + pos: -5.5,16.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 8838 + - uid: 8274 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 2.5,27.5 + rot: -1.5707963267948966 rad + pos: -16.5,-2.5 + parent: 31 + - uid: 8275 + components: + - type: Transform + pos: -11.5,1.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - uid: 8845 components: - type: Transform rot: -1.5707963267948966 rad pos: 50.5,8.5 parent: 31 + - uid: 8921 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,-1.5 + parent: 31 + - uid: 9003 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 35.5,-18.5 + parent: 31 - uid: 9094 components: - type: Transform @@ -60025,18 +59296,6 @@ entities: parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 10062 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 19.5,27.5 - parent: 31 - - uid: 10063 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 23.5,27.5 - parent: 31 - uid: 10301 components: - type: Transform @@ -60049,12 +59308,6 @@ entities: rot: -1.5707963267948966 rad pos: 0.5,-31.5 parent: 31 - - uid: 10355 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -21.5,-9.5 - parent: 31 - uid: 10767 components: - type: Transform @@ -60096,23 +59349,12 @@ entities: rot: -1.5707963267948966 rad pos: 43.5,14.5 parent: 31 - - uid: 11133 - components: - - type: Transform - pos: -2.5,26.5 - parent: 31 - uid: 11250 components: - type: Transform rot: -1.5707963267948966 rad pos: -34.5,8.5 parent: 31 - - uid: 11255 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -2.5,23.5 - parent: 31 - uid: 11260 components: - type: Transform @@ -60154,53 +59396,71 @@ entities: rot: -1.5707963267948966 rad pos: 68.5,-2.5 parent: 31 -- proto: PoweredlightBlue - entities: - - uid: 6708 + - uid: 12225 components: - type: Transform - pos: -8.5,1.5 + rot: 1.5707963267948966 rad + pos: 0.5,-20.5 parent: 31 - - uid: 11093 + - uid: 12227 components: - type: Transform - rot: 3.141592653589793 rad - pos: -3.5,-6.5 + rot: 1.5707963267948966 rad + pos: -26.5,-5.5 parent: 31 - - uid: 11297 + - uid: 12528 components: - type: Transform rot: -1.5707963267948966 rad - pos: 0.5,-4.5 + pos: -22.5,-10.5 parent: 31 - - uid: 11298 + - uid: 12530 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -7.5,-3.5 + rot: -1.5707963267948966 rad + pos: -24.5,-0.5 + parent: 31 + - uid: 13064 + components: + - type: Transform + pos: -20.5,1.5 parent: 31 -- proto: PoweredLightPostSmall +- proto: PoweredLightColoredBlack entities: - - uid: 7709 + - uid: 1259 components: - type: Transform - pos: 30.5,28.5 + pos: 12.5,27.5 parent: 31 - proto: PoweredlightSodium entities: + - uid: 8246 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,-6.5 + parent: 31 - uid: 8526 components: - type: Transform pos: -31.5,-13.5 parent: 31 -- proto: PoweredSmallLight - entities: - - uid: 14 + - uid: 8887 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -16.5,16.5 + pos: -4.5,1.5 parent: 31 + - uid: 9685 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -30.5,-0.5 + parent: 31 + - type: DeviceLinkSink + links: + - 10155 +- proto: PoweredSmallLight + entities: - uid: 1246 components: - type: Transform @@ -60223,6 +59483,12 @@ entities: parent: 31 - type: ApcPowerReceiver powerLoad: 0 + - uid: 1603 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -38.5,-30.5 + parent: 31 - uid: 2020 components: - type: Transform @@ -60230,18 +59496,24 @@ entities: parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 2343 + - uid: 2466 components: - type: Transform - pos: -13.5,-10.5 + rot: 1.5707963267948966 rad + pos: -33.5,-31.5 parent: 31 - - uid: 3586 + - uid: 3395 components: - type: Transform - pos: 11.5,24.5 + rot: 1.5707963267948966 rad + pos: -18.5,-6.5 + parent: 31 + - uid: 3836 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -14.5,-6.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - uid: 3861 components: - type: Transform @@ -60347,14 +59619,6 @@ entities: parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 4020 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -19.5,15.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - uid: 4029 components: - type: Transform @@ -60368,6 +59632,12 @@ entities: parent: 31 - type: ApcPowerReceiver powerLoad: 0 + - uid: 4092 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -36.5,-26.5 + parent: 31 - uid: 4153 components: - type: Transform @@ -60382,38 +59652,26 @@ entities: parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 4605 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 52.5,6.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 4862 + - uid: 4598 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -30.5,-5.5 + rot: 3.141592653589793 rad + pos: 10.5,23.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 4957 + - uid: 4605 components: - type: Transform rot: 1.5707963267948966 rad - pos: -30.5,-2.5 + pos: 52.5,6.5 parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 4958 + - uid: 4906 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -30.5,0.5 + rot: 3.141592653589793 rad + pos: 29.5,-19.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - uid: 4959 components: - type: Transform @@ -60422,14 +59680,6 @@ entities: parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 5008 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -15.5,-5.5 - parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - uid: 5009 components: - type: Transform @@ -60438,28 +59688,25 @@ entities: parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 5010 + - uid: 5190 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -12.5,-7.5 + pos: -22.5,25.5 parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 5120 + - uid: 5550 components: - type: Transform - pos: 10.5,26.5 + rot: 3.141592653589793 rad + pos: -12.5,-7.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 5190 + - uid: 5765 components: - type: Transform - pos: -22.5,25.5 + rot: 3.141592653589793 rad + pos: -21.5,-7.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - uid: 7063 components: - type: Transform @@ -60467,11 +59714,11 @@ entities: parent: 31 - type: ApcPowerReceiver powerLoad: 0 - - uid: 7479 + - uid: 7459 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 0.5,13.5 + rot: 3.141592653589793 rad + pos: 54.5,19.5 parent: 31 - uid: 7498 components: @@ -60479,17 +59726,17 @@ entities: rot: 1.5707963267948966 rad pos: 40.5,-8.5 parent: 31 - - uid: 7543 + - uid: 7518 components: - type: Transform rot: 3.141592653589793 rad - pos: -31.5,9.5 + pos: 19.5,26.5 parent: 31 - - uid: 7602 + - uid: 7543 components: - type: Transform rot: 3.141592653589793 rad - pos: -29.5,-9.5 + pos: -31.5,9.5 parent: 31 - uid: 7686 components: @@ -60497,6 +59744,11 @@ entities: rot: 3.141592653589793 rad pos: 60.5,6.5 parent: 31 + - uid: 7725 + components: + - type: Transform + pos: -32.5,-21.5 + parent: 31 - uid: 7811 components: - type: Transform @@ -60518,36 +59770,28 @@ entities: - type: Transform pos: 56.5,8.5 parent: 31 - - uid: 8732 + - uid: 8244 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -36.5,-27.5 + rot: -1.5707963267948966 rad + pos: -15.5,9.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 8733 + - uid: 8259 components: - type: Transform rot: -1.5707963267948966 rad - pos: -32.5,-27.5 + pos: 16.5,16.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 8735 + - uid: 8273 components: - type: Transform - pos: -32.5,-31.5 + pos: -28.5,-11.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - - uid: 8775 + - uid: 8512 components: - type: Transform - pos: -16.5,11.5 + pos: -1.5,8.5 parent: 31 - - type: ApcPowerReceiver - powerLoad: 0 - uid: 9248 components: - type: Transform @@ -60592,6 +59836,12 @@ entities: rot: 3.141592653589793 rad pos: 32.5,21.5 parent: 31 + - uid: 10393 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -22.5,-0.5 + parent: 31 - uid: 10499 components: - type: Transform @@ -60619,11 +59869,11 @@ entities: - type: Transform pos: -7.5,22.5 parent: 31 - - uid: 11200 + - uid: 11186 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -4.5,28.5 + rot: 1.5707963267948966 rad + pos: -26.5,-26.5 parent: 31 - uid: 11209 components: @@ -60631,22 +59881,6 @@ entities: rot: -1.5707963267948966 rad pos: 16.5,-28.5 parent: 31 - - uid: 11289 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -13.5,-1.5 - parent: 31 - - uid: 11295 - components: - - type: Transform - pos: 52.5,17.5 - parent: 31 - - uid: 11296 - components: - - type: Transform - pos: -11.5,1.5 - parent: 31 - uid: 11419 components: - type: Transform @@ -60682,33 +59916,12 @@ entities: rot: -1.5707963267948966 rad pos: -19.5,-26.5 parent: 31 - - uid: 11545 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -21.5,-27.5 - parent: 31 - - uid: 11546 - components: - - type: Transform - pos: -21.5,-25.5 - parent: 31 - uid: 11547 components: - type: Transform rot: -1.5707963267948966 rad pos: -24.5,-26.5 parent: 31 - - uid: 11548 - components: - - type: Transform - pos: -26.5,-24.5 - parent: 31 - - uid: 11549 - components: - - type: Transform - pos: -33.5,-21.5 - parent: 31 - uid: 11551 components: - type: Transform @@ -60794,15 +60007,73 @@ entities: rot: 3.141592653589793 rad pos: -46.5,2.5 parent: 31 -- proto: PoweredSmallLightEmpty +- proto: PoweredSmallLightMaintenance entities: - - uid: 8209 + - uid: 1401 components: - type: Transform - pos: -22.5,17.5 + pos: 34.5,23.5 + parent: 31 + - uid: 1956 + components: + - type: Transform + pos: 36.5,23.5 + parent: 31 + - uid: 5817 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -21.5,12.5 + parent: 31 + - uid: 6006 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,-10.5 + parent: 31 + - uid: 7306 + components: + - type: Transform + pos: 38.5,23.5 + parent: 31 + - uid: 7308 + components: + - type: Transform + pos: 42.5,23.5 + parent: 31 + - uid: 7376 + components: + - type: Transform + pos: 46.5,23.5 + parent: 31 + - uid: 7428 + components: + - type: Transform + pos: 44.5,23.5 + parent: 31 + - uid: 7431 + components: + - type: Transform + pos: 40.5,23.5 + parent: 31 + - uid: 7479 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 8.5,23.5 + parent: 31 + - uid: 8127 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,-11.5 + parent: 31 + - uid: 8272 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,14.5 parent: 31 -- proto: PoweredSmallLightMaintenance - entities: - uid: 11552 components: - type: Transform @@ -60834,6 +60105,11 @@ entities: - type: Transform pos: -13.5,-21.5 parent: 31 + - uid: 7342 + components: + - type: Transform + pos: 12.5,10.5 + parent: 31 - proto: ProtolatheMachineCircuitboard entities: - uid: 12578 @@ -60860,11 +60136,23 @@ entities: rot: 1.5707963267948966 rad pos: 48.5,-3.5 parent: 31 + - uid: 1595 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -14.5,-3.5 + parent: 31 - uid: 2133 components: - type: Transform pos: -11.5,18.5 parent: 31 + - uid: 2442 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -35.5,-23.5 + parent: 31 - uid: 2827 components: - type: Transform @@ -60880,11 +60168,23 @@ entities: - type: Transform pos: 10.5,10.5 parent: 31 + - uid: 4901 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,-18.5 + parent: 31 - uid: 6417 components: - type: Transform pos: 51.5,17.5 parent: 31 + - uid: 6527 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.5,-11.5 + parent: 31 - uid: 6853 components: - type: Transform @@ -60935,11 +60235,6 @@ entities: - type: Transform pos: 27.5,-4.5 parent: 31 - - uid: 8739 - components: - - type: Transform - pos: -32.5,-27.5 - parent: 31 - uid: 8886 components: - type: Transform @@ -60950,12 +60245,6 @@ entities: - type: Transform pos: 45.5,5.5 parent: 31 - - uid: 8993 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -18.5,-10.5 - parent: 31 - uid: 9072 components: - type: Transform @@ -60987,6 +60276,11 @@ entities: - type: Transform pos: 8.5,-17.5 parent: 31 + - uid: 10390 + components: + - type: Transform + pos: -20.5,-4.5 + parent: 31 - uid: 10559 components: - type: Transform @@ -61008,11 +60302,6 @@ entities: - type: Transform pos: 56.5,-5.5 parent: 31 - - uid: 11124 - components: - - type: Transform - pos: -5.5,29.5 - parent: 31 - uid: 11442 components: - type: Transform @@ -61039,11 +60328,6 @@ entities: - type: Transform pos: -13.5,-1.5 parent: 31 - - uid: 12431 - components: - - type: Transform - pos: 46.5,9.5 - parent: 31 - uid: 12539 components: - type: Transform @@ -61114,15 +60398,17 @@ entities: - type: Transform pos: 22.740244,13.497578 parent: 31 - - uid: 9021 + - uid: 8278 components: - type: Transform - pos: 32.380318,-3.4857323 + rot: -1.5707963267948966 rad + pos: 32.61437,-3.5820618 parent: 31 - - uid: 9022 + - uid: 8279 components: - type: Transform - pos: 32.645943,-3.4701073 + rot: -1.5707963267948966 rad + pos: 32.676914,-3.4101868 parent: 31 - proto: RagItem entities: @@ -61133,28 +60419,112 @@ entities: parent: 31 - proto: Railing entities: - - uid: 12978 + - uid: 2118 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 4.5,30.5 + parent: 31 + - uid: 2192 + components: + - type: Transform + pos: -18.5,27.5 + parent: 31 + - uid: 2729 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.5,-27.5 + parent: 31 + - uid: 2850 components: - type: Transform rot: 1.5707963267948966 rad - pos: -27.5,25.5 + pos: -14.5,-11.5 parent: 31 - - uid: 12979 + - uid: 3796 components: - type: Transform rot: 1.5707963267948966 rad - pos: -27.5,23.5 + pos: -14.5,-10.5 parent: 31 - - uid: 12980 + - uid: 5314 + components: + - type: Transform + pos: -15.5,27.5 + parent: 31 + - uid: 6452 + components: + - type: Transform + pos: -20.5,27.5 + parent: 31 + - uid: 6977 + components: + - type: Transform + pos: 46.5,-26.5 + parent: 31 + - uid: 7864 + components: + - type: Transform + pos: -12.5,27.5 + parent: 31 + - uid: 9554 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 3.5,30.5 + parent: 31 + - uid: 9573 + components: + - type: Transform + pos: -9.5,27.5 + parent: 31 + - uid: 10175 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,1.5 + parent: 31 + - uid: 10176 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,-2.5 + parent: 31 + - uid: 12086 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,-22.5 + parent: 31 + - uid: 12087 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.5,-21.5 + parent: 31 + - uid: 12088 components: - type: Transform rot: 1.5707963267948966 rad - pos: -27.5,22.5 + pos: 51.5,-21.5 parent: 31 - - uid: 12982 + - uid: 12096 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 52.5,-22.5 + parent: 31 + - uid: 12098 + components: + - type: Transform + pos: 52.5,-26.5 + parent: 31 + - uid: 12099 components: - type: Transform - pos: -26.5,26.5 + rot: 1.5707963267948966 rad + pos: 51.5,-27.5 parent: 31 - uid: 12983 components: @@ -61171,11 +60541,6 @@ entities: - type: Transform pos: -21.5,27.5 parent: 31 - - uid: 12986 - components: - - type: Transform - pos: -20.5,27.5 - parent: 31 - uid: 12987 components: - type: Transform @@ -61337,17 +60702,153 @@ entities: parent: 31 - proto: RailingCornerSmall entities: + - uid: 2680 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -3.5,36.5 + parent: 31 + - uid: 2682 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,38.5 + parent: 31 + - uid: 2713 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 51.5,-22.5 + parent: 31 + - uid: 4078 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -4.5,38.5 + parent: 31 + - uid: 4082 + components: + - type: Transform + pos: 6.5,32.5 + parent: 31 + - uid: 4087 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,37.5 + parent: 31 + - uid: 4093 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,38.5 + parent: 31 + - uid: 4095 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,27.5 + parent: 31 + - uid: 4099 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 2.5,37.5 + parent: 31 + - uid: 4106 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,32.5 + parent: 31 + - uid: 4110 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,31.5 + parent: 31 + - uid: 4128 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,38.5 + parent: 31 + - uid: 4254 + components: + - type: Transform + pos: -3.5,33.5 + parent: 31 + - uid: 4545 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,27.5 + parent: 31 + - uid: 4557 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,27.5 + parent: 31 + - uid: 4617 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -11.5,27.5 + parent: 31 + - uid: 4912 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -14.5,27.5 + parent: 31 + - uid: 5111 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,27.5 + parent: 31 + - uid: 5865 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,27.5 + parent: 31 + - uid: 5869 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,27.5 + parent: 31 - uid: 7316 components: - type: Transform pos: 5.5,-35.5 parent: 31 + - uid: 7791 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -19.5,27.5 + parent: 31 - uid: 8488 components: - type: Transform rot: 1.5707963267948966 rad pos: 5.5,-29.5 parent: 31 + - uid: 10716 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -24.5,27.5 + parent: 31 + - uid: 10740 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -16.5,27.5 + parent: 31 - uid: 12082 components: - type: Transform @@ -61359,11 +60860,22 @@ entities: rot: 1.5707963267948966 rad pos: 62.5,5.5 parent: 31 - - uid: 12981 + - uid: 12085 components: - type: Transform rot: 3.141592653589793 rad - pos: -27.5,26.5 + pos: 51.5,-26.5 + parent: 31 + - uid: 12097 + components: + - type: Transform + pos: 47.5,-22.5 + parent: 31 + - uid: 12101 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 47.5,-26.5 parent: 31 - uid: 13011 components: @@ -61409,6 +60921,11 @@ entities: - type: Transform pos: -18.5,-29.5 parent: 31 + - uid: 10146 + components: + - type: Transform + pos: -30.5,1.5 + parent: 31 - proto: RandomArtifactSpawner entities: - uid: 60 @@ -61496,11 +61013,6 @@ entities: parent: 31 - proto: RandomInstruments entities: - - uid: 1189 - components: - - type: Transform - pos: -30.5,1.5 - parent: 31 - uid: 5710 components: - type: Transform @@ -61570,6 +61082,11 @@ entities: - type: Transform pos: -18.5,11.5 parent: 31 + - uid: 1374 + components: + - type: Transform + pos: -12.5,-8.5 + parent: 31 - uid: 7263 components: - type: Transform @@ -61585,20 +61102,15 @@ entities: - type: Transform pos: -14.5,8.5 parent: 31 - - uid: 9279 - components: - - type: Transform - pos: -10.5,-11.5 - parent: 31 - - uid: 11201 + - uid: 11706 components: - type: Transform - pos: -4.5,30.5 + pos: 4.5,-35.5 parent: 31 - - uid: 11706 + - uid: 13066 components: - type: Transform - pos: 4.5,-35.5 + pos: -16.5,-0.5 parent: 31 - proto: RandomPosterLegit entities: @@ -61642,11 +61154,6 @@ entities: - type: Transform pos: -31.5,-1.5 parent: 31 - - uid: 9284 - components: - - type: Transform - pos: -21.5,-1.5 - parent: 31 - uid: 10540 components: - type: Transform @@ -61657,18 +61164,30 @@ entities: - type: Transform pos: 47.5,-4.5 parent: 31 - - uid: 11106 +- proto: RandomSnacks + entities: + - uid: 4080 components: - type: Transform - pos: -12.5,-13.5 + rot: 3.141592653589793 rad + pos: -5.5,36.5 + parent: 31 + - uid: 5004 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -0.5,35.5 parent: 31 -- proto: RandomSnacks - entities: - uid: 7476 components: - type: Transform pos: -12.5,11.5 parent: 31 + - uid: 9842 + components: + - type: Transform + pos: -30.5,-6.5 + parent: 31 - uid: 10760 components: - type: Transform @@ -61676,18 +61195,13 @@ entities: parent: 31 - proto: RandomSoap entities: - - uid: 8440 + - uid: 2867 components: - type: Transform - pos: -17.5,-12.5 + pos: -20.5,-6.5 parent: 31 - proto: RandomSpawner entities: - - uid: 426 - components: - - type: Transform - pos: -25.5,0.5 - parent: 31 - uid: 427 components: - type: Transform @@ -61698,10 +61212,35 @@ entities: - type: Transform pos: -7.5,5.5 parent: 31 - - uid: 494 + - uid: 1364 components: - type: Transform - pos: -21.5,12.5 + pos: -31.5,-32.5 + parent: 31 + - uid: 1378 + components: + - type: Transform + pos: -34.5,-25.5 + parent: 31 + - uid: 2291 + components: + - type: Transform + pos: -30.5,-7.5 + parent: 31 + - uid: 4077 + components: + - type: Transform + pos: -20.5,-24.5 + parent: 31 + - uid: 4109 + components: + - type: Transform + pos: -26.5,-21.5 + parent: 31 + - uid: 4131 + components: + - type: Transform + pos: -0.5,31.5 parent: 31 - uid: 4382 components: @@ -61723,21 +61262,21 @@ entities: - type: Transform pos: 24.5,-20.5 parent: 31 - - uid: 5212 + - uid: 5003 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -8.5,-18.5 + pos: -8.5,34.5 parent: 31 - - uid: 7593 + - uid: 5212 components: - type: Transform - pos: -14.5,-11.5 + rot: -1.5707963267948966 rad + pos: -8.5,-18.5 parent: 31 - - uid: 7594 + - uid: 5766 components: - type: Transform - pos: -15.5,-4.5 + pos: -26.5,-2.5 parent: 31 - uid: 7595 components: @@ -61817,6 +61356,11 @@ entities: - type: Transform pos: 38.5,-7.5 parent: 31 + - uid: 8285 + components: + - type: Transform + pos: -18.5,0.5 + parent: 31 - uid: 8797 components: - type: Transform @@ -61833,6 +61377,11 @@ entities: - type: Transform pos: -18.5,-32.5 parent: 31 + - uid: 10150 + components: + - type: Transform + pos: -29.5,1.5 + parent: 31 - uid: 10448 components: - type: Transform @@ -61867,17 +61416,23 @@ entities: - type: Transform pos: -7.5,24.5 parent: 31 - - uid: 11228 + - uid: 11231 components: - type: Transform rot: -1.5707963267948966 rad - pos: -28.5,-9.5 + pos: -28.5,-11.5 parent: 31 - - uid: 11231 + - uid: 12080 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -28.5,-11.5 + rot: 3.141592653589793 rad + pos: 52.5,-26.5 + parent: 31 + - uid: 12081 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,-22.5 parent: 31 - proto: RandomVendingDrinks entities: @@ -61938,342 +61493,264 @@ entities: - type: Transform pos: 42.5,20.5 parent: 31 - - uid: 4326 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 71.5,3.5 - parent: 31 - - uid: 4404 - components: - - type: Transform - pos: 64.5,11.5 - parent: 31 - uid: 5310 components: - type: Transform - pos: 50.5,10.5 - parent: 31 - - uid: 6248 - components: - - type: Transform - pos: 46.5,14.5 - parent: 31 - - uid: 6337 - components: - - type: Transform - pos: 48.5,14.5 - parent: 31 - - uid: 6341 - components: - - type: Transform - pos: 49.5,14.5 - parent: 31 - - uid: 6357 - components: - - type: Transform - pos: 47.5,14.5 - parent: 31 - - uid: 6361 - components: - - type: Transform - pos: 50.5,14.5 - parent: 31 - - uid: 6378 - components: - - type: Transform - pos: 46.5,10.5 - parent: 31 - - uid: 6382 - components: - - type: Transform - pos: 47.5,10.5 - parent: 31 - - uid: 6443 - components: - - type: Transform - pos: 48.5,10.5 - parent: 31 - - uid: 6628 - components: - - type: Transform - pos: 49.5,10.5 - parent: 31 - - uid: 6767 - components: - - type: Transform - pos: 63.5,11.5 - parent: 31 - - uid: 7214 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 67.5,-5.5 - parent: 31 - - uid: 7222 - components: - - type: Transform - pos: 34.5,20.5 - parent: 31 - - uid: 7277 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 68.5,-5.5 + pos: 50.5,10.5 parent: 31 - - uid: 7296 + - uid: 6248 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 68.5,-4.5 + pos: 46.5,14.5 parent: 31 - - uid: 7298 + - uid: 6337 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 67.5,-4.5 + pos: 48.5,14.5 parent: 31 - - uid: 8158 + - uid: 6341 components: - type: Transform - pos: 61.5,6.5 + pos: 49.5,14.5 parent: 31 - - uid: 8949 + - uid: 6357 components: - type: Transform - pos: -10.5,19.5 + pos: 47.5,14.5 parent: 31 - - uid: 9001 + - uid: 6361 components: - type: Transform - pos: -10.5,21.5 + pos: 50.5,14.5 parent: 31 - - uid: 9038 + - uid: 6378 components: - type: Transform - pos: 46.5,20.5 + pos: 46.5,10.5 parent: 31 - - uid: 9549 + - uid: 6382 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 64.5,-4.5 + pos: 47.5,10.5 parent: 31 - - uid: 9550 + - uid: 6443 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 64.5,-5.5 + pos: 48.5,10.5 parent: 31 - - uid: 9551 + - uid: 6628 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 63.5,-5.5 + pos: 49.5,10.5 parent: 31 - - uid: 9552 + - uid: 7222 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 63.5,-4.5 + pos: 34.5,20.5 parent: 31 - - uid: 9554 + - uid: 8949 components: - type: Transform - pos: 61.5,4.5 + pos: -10.5,19.5 parent: 31 - - uid: 9555 + - uid: 9001 components: - type: Transform - pos: 61.5,0.5 + pos: -10.5,21.5 parent: 31 - - uid: 9563 + - uid: 9038 components: - type: Transform - pos: 61.5,2.5 + pos: 46.5,20.5 parent: 31 - - uid: 9573 + - uid: 11094 components: - type: Transform - pos: 61.5,1.5 + pos: 45.5,12.5 parent: 31 - - uid: 9735 + - uid: 11096 components: - type: Transform - pos: 61.5,3.5 + pos: 45.5,13.5 parent: 31 - - uid: 9746 + - uid: 11097 components: - type: Transform - pos: 58.5,0.5 + pos: 45.5,11.5 parent: 31 - - uid: 9863 +- proto: ReinforcedUraniumWindow + entities: + - uid: 516 components: - type: Transform - pos: 58.5,4.5 + pos: 58.5,6.5 parent: 31 - - uid: 9926 + - uid: 6951 components: - type: Transform - pos: 58.5,3.5 + pos: 61.5,6.5 parent: 31 - - uid: 10810 + - uid: 7899 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 58.5,2.5 + rot: 1.5707963267948966 rad + pos: 70.5,11.5 parent: 31 - - uid: 11094 + - uid: 7900 components: - type: Transform - pos: 45.5,12.5 + rot: 1.5707963267948966 rad + pos: 67.5,-4.5 parent: 31 - - uid: 11096 + - uid: 7901 components: - type: Transform - pos: 45.5,13.5 + rot: 1.5707963267948966 rad + pos: 68.5,-4.5 parent: 31 - - uid: 11097 + - uid: 7911 components: - type: Transform - pos: 45.5,11.5 + rot: 1.5707963267948966 rad + pos: 67.5,11.5 parent: 31 - - uid: 11141 + - uid: 7912 components: - type: Transform - pos: 58.5,6.5 + rot: 1.5707963267948966 rad + pos: 66.5,11.5 parent: 31 - - uid: 11146 + - uid: 7948 components: - type: Transform rot: 1.5707963267948966 rad - pos: 69.5,-1.5 + pos: 61.5,3.5 parent: 31 - - uid: 11191 + - uid: 8021 components: - type: Transform rot: 1.5707963267948966 rad - pos: 63.5,12.5 + pos: 63.5,11.5 parent: 31 - - uid: 11778 + - uid: 8024 components: - type: Transform rot: 1.5707963267948966 rad - pos: 72.5,8.5 + pos: 64.5,11.5 parent: 31 - - uid: 11779 + - uid: 8033 components: - type: Transform rot: 1.5707963267948966 rad - pos: 72.5,7.5 + pos: 61.5,1.5 parent: 31 - - uid: 11780 + - uid: 8034 components: - type: Transform rot: 1.5707963267948966 rad - pos: 72.5,6.5 + pos: 58.5,3.5 parent: 31 - - uid: 11848 + - uid: 8038 components: - type: Transform rot: 1.5707963267948966 rad - pos: 64.5,12.5 + pos: 61.5,2.5 parent: 31 - - uid: 11849 + - uid: 8056 components: - type: Transform rot: 1.5707963267948966 rad - pos: 66.5,12.5 + pos: 58.5,4.5 parent: 31 - - uid: 11850 + - uid: 8085 components: - type: Transform rot: 1.5707963267948966 rad - pos: 66.5,11.5 + pos: 61.5,4.5 parent: 31 - - uid: 11851 + - uid: 8086 components: - type: Transform rot: 1.5707963267948966 rad - pos: 67.5,11.5 + pos: 69.5,11.5 parent: 31 - - uid: 11852 + - uid: 8158 components: - type: Transform rot: 1.5707963267948966 rad - pos: 67.5,12.5 + pos: 72.5,7.5 parent: 31 - - uid: 11853 + - uid: 8159 components: - type: Transform rot: 1.5707963267948966 rad - pos: 69.5,12.5 + pos: 72.5,6.5 parent: 31 - - uid: 11854 + - uid: 8199 components: - type: Transform rot: 1.5707963267948966 rad - pos: 70.5,12.5 + pos: 72.5,8.5 parent: 31 - - uid: 11855 + - uid: 8209 components: - type: Transform rot: 1.5707963267948966 rad - pos: 70.5,11.5 + pos: 64.5,-4.5 parent: 31 - - uid: 11856 + - uid: 8232 components: - type: Transform rot: 1.5707963267948966 rad - pos: 69.5,11.5 + pos: 63.5,-4.5 parent: 31 - - uid: 11857 + - uid: 8349 components: - type: Transform rot: 1.5707963267948966 rad - pos: 78.5,8.5 + pos: 71.5,3.5 parent: 31 - - uid: 11858 + - uid: 8370 components: - type: Transform rot: 1.5707963267948966 rad - pos: 78.5,7.5 + pos: 69.5,-1.5 parent: 31 - - uid: 11859 + - uid: 8390 components: - type: Transform rot: 1.5707963267948966 rad - pos: 77.5,7.5 + pos: 77.5,5.5 parent: 31 - - uid: 11860 + - uid: 8422 components: - type: Transform rot: 1.5707963267948966 rad pos: 77.5,6.5 parent: 31 - - uid: 11861 + - uid: 8466 components: - type: Transform rot: 1.5707963267948966 rad - pos: 78.5,6.5 + pos: 77.5,7.5 parent: 31 - - uid: 11862 + - uid: 8819 components: - type: Transform rot: 1.5707963267948966 rad - pos: 78.5,5.5 + pos: 61.5,0.5 parent: 31 - - uid: 11863 + - uid: 8834 components: - type: Transform rot: 1.5707963267948966 rad - pos: 77.5,5.5 + pos: 58.5,0.5 parent: 31 - - uid: 11864 + - uid: 8836 components: - type: Transform rot: 1.5707963267948966 rad - pos: 78.5,4.5 + pos: 58.5,2.5 parent: 31 - proto: ReinforcedWindow entities: @@ -62357,6 +61834,12 @@ entities: - type: Transform pos: -39.5,19.5 parent: 31 + - uid: 550 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,34.5 + parent: 31 - uid: 572 components: - type: Transform @@ -62397,6 +61880,18 @@ entities: - type: Transform pos: -41.5,-0.5 parent: 31 + - uid: 761 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,7.5 + parent: 31 + - uid: 766 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,8.5 + parent: 31 - uid: 785 components: - type: Transform @@ -62412,6 +61907,18 @@ entities: - type: Transform pos: 52.5,8.5 parent: 31 + - uid: 831 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,36.5 + parent: 31 + - uid: 870 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,37.5 + parent: 31 - uid: 871 components: - type: Transform @@ -62444,16 +61951,6 @@ entities: - type: Transform pos: -43.5,3.5 parent: 31 - - uid: 1013 - components: - - type: Transform - pos: 4.5,26.5 - parent: 31 - - uid: 1051 - components: - - type: Transform - pos: -1.5,9.5 - parent: 31 - uid: 1254 components: - type: Transform @@ -62469,11 +61966,6 @@ entities: - type: Transform pos: -2.5,9.5 parent: 31 - - uid: 1381 - components: - - type: Transform - pos: 2.5,26.5 - parent: 31 - uid: 1389 components: - type: Transform @@ -62484,82 +61976,17 @@ entities: - type: Transform pos: -1.5,27.5 parent: 31 - - uid: 1391 - components: - - type: Transform - pos: 4.5,22.5 - parent: 31 - - uid: 1392 - components: - - type: Transform - pos: 10.5,29.5 - parent: 31 - - uid: 1394 - components: - - type: Transform - pos: 9.5,31.5 - parent: 31 - - uid: 1397 - components: - - type: Transform - pos: 7.5,33.5 - parent: 31 - - uid: 1398 - components: - - type: Transform - pos: 6.5,33.5 - parent: 31 - - uid: 1399 - components: - - type: Transform - pos: 5.5,33.5 - parent: 31 - - uid: 1400 - components: - - type: Transform - pos: 4.5,33.5 - parent: 31 - - uid: 1401 - components: - - type: Transform - pos: 3.5,33.5 - parent: 31 - - uid: 1402 - components: - - type: Transform - pos: 2.5,33.5 - parent: 31 - - uid: 1403 - components: - - type: Transform - pos: 1.5,33.5 - parent: 31 - - uid: 1404 - components: - - type: Transform - pos: 0.5,33.5 - parent: 31 - - uid: 1405 - components: - - type: Transform - pos: -0.5,33.5 - parent: 31 - - uid: 1406 - components: - - type: Transform - pos: 10.5,31.5 - parent: 31 - - uid: 1410 - components: - - type: Transform - pos: -3.5,9.5 - parent: 31 - uid: 1439 components: - type: Transform rot: -1.5707963267948966 rad pos: -24.5,-17.5 parent: 31 + - uid: 1445 + components: + - type: Transform + pos: -37.5,-32.5 + parent: 31 - uid: 1446 components: - type: Transform @@ -62611,11 +62038,6 @@ entities: - type: Transform pos: 6.5,19.5 parent: 31 - - uid: 1530 - components: - - type: Transform - pos: 41.5,-22.5 - parent: 31 - uid: 1582 components: - type: Transform @@ -62626,36 +62048,11 @@ entities: - type: Transform pos: 30.5,23.5 parent: 31 - - uid: 1595 - components: - - type: Transform - pos: 15.5,20.5 - parent: 31 - - uid: 1596 - components: - - type: Transform - pos: 15.5,21.5 - parent: 31 - - uid: 1657 - components: - - type: Transform - pos: -15.5,26.5 - parent: 31 - uid: 1660 components: - type: Transform pos: -18.5,26.5 parent: 31 - - uid: 1736 - components: - - type: Transform - pos: 40.5,-26.5 - parent: 31 - - uid: 1763 - components: - - type: Transform - pos: 40.5,-22.5 - parent: 31 - uid: 1765 components: - type: Transform @@ -62666,11 +62063,6 @@ entities: - type: Transform pos: -42.5,11.5 parent: 31 - - uid: 1809 - components: - - type: Transform - pos: 41.5,-26.5 - parent: 31 - uid: 1919 components: - type: Transform @@ -62707,11 +62099,6 @@ entities: - type: Transform pos: -16.5,6.5 parent: 31 - - uid: 2056 - components: - - type: Transform - pos: -12.5,26.5 - parent: 31 - uid: 2096 components: - type: Transform @@ -62722,16 +62109,6 @@ entities: - type: Transform pos: -7.5,9.5 parent: 31 - - uid: 2098 - components: - - type: Transform - pos: -9.5,8.5 - parent: 31 - - uid: 2117 - components: - - type: Transform - pos: -11.5,8.5 - parent: 31 - uid: 2119 components: - type: Transform @@ -62758,6 +62135,16 @@ entities: - type: Transform pos: 28.5,-13.5 parent: 31 + - uid: 2490 + components: + - type: Transform + pos: 50.5,-25.5 + parent: 31 + - uid: 2597 + components: + - type: Transform + pos: 48.5,-25.5 + parent: 31 - uid: 2855 components: - type: Transform @@ -62769,33 +62156,32 @@ entities: - type: Transform pos: 36.5,18.5 parent: 31 + - uid: 3243 + components: + - type: Transform + pos: 4.5,27.5 + parent: 31 - uid: 3421 components: - type: Transform rot: -1.5707963267948966 rad pos: -13.5,-30.5 parent: 31 - - uid: 3427 + - uid: 3480 components: - type: Transform - pos: -9.5,26.5 + pos: 4.5,22.5 parent: 31 - uid: 3766 components: - type: Transform pos: 59.5,11.5 parent: 31 - - uid: 3836 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -1.5,13.5 - parent: 31 - - uid: 3911 + - uid: 3852 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -1.5,12.5 + rot: -1.5707963267948966 rad + pos: 5.5,35.5 parent: 31 - uid: 3923 components: @@ -62807,25 +62193,33 @@ entities: - type: Transform pos: -42.5,3.5 parent: 31 - - uid: 3972 + - uid: 3978 components: - type: Transform - pos: -9.5,7.5 + pos: 28.5,-12.5 parent: 31 - - uid: 3978 + - uid: 3983 components: - type: Transform - pos: 28.5,-12.5 + rot: -1.5707963267948966 rad + pos: -1.5,34.5 parent: 31 - uid: 4014 components: - type: Transform pos: -43.5,-0.5 parent: 31 - - uid: 4098 + - uid: 4031 components: - type: Transform - pos: -11.5,7.5 + rot: -1.5707963267948966 rad + pos: 3.5,36.5 + parent: 31 + - uid: 4083 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,28.5 parent: 31 - uid: 4113 components: @@ -62835,7 +62229,8 @@ entities: - uid: 4116 components: - type: Transform - pos: -3.5,6.5 + rot: -1.5707963267948966 rad + pos: -0.5,36.5 parent: 31 - uid: 4282 components: @@ -62847,136 +62242,70 @@ entities: - type: Transform pos: 17.5,20.5 parent: 31 - - uid: 4375 - components: - - type: Transform - pos: 51.5,-17.5 - parent: 31 - - uid: 4398 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 54.5,3.5 - parent: 31 - - uid: 4515 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 35.5,-26.5 - parent: 31 - - uid: 4516 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 31.5,-24.5 - parent: 31 - - uid: 4522 - components: - - type: Transform - pos: 34.5,-13.5 - parent: 31 - - uid: 4577 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 36.5,-22.5 - parent: 31 - - uid: 4578 + - uid: 4326 components: - type: Transform rot: -1.5707963267948966 rad - pos: 37.5,-22.5 + pos: -4.5,34.5 parent: 31 - - uid: 4583 + - uid: 4381 components: - type: Transform rot: -1.5707963267948966 rad - pos: 36.5,-26.5 - parent: 31 - - uid: 4627 - components: - - type: Transform - pos: 45.5,-29.5 - parent: 31 - - uid: 4628 - components: - - type: Transform - pos: 44.5,-29.5 - parent: 31 - - uid: 4629 - components: - - type: Transform - pos: 44.5,-28.5 - parent: 31 - - uid: 4631 - components: - - type: Transform - pos: 46.5,-19.5 - parent: 31 - - uid: 4632 - components: - - type: Transform - pos: 44.5,-21.5 - parent: 31 - - uid: 4634 - components: - - type: Transform - pos: 46.5,-29.5 - parent: 31 - - uid: 4635 - components: - - type: Transform - pos: 44.5,-27.5 + pos: -1.5,33.5 parent: 31 - - uid: 4656 + - uid: 4398 components: - type: Transform - pos: 31.5,-23.5 + rot: 3.141592653589793 rad + pos: 54.5,3.5 parent: 31 - - uid: 4663 + - uid: 4404 components: - type: Transform - pos: 31.5,-25.5 + pos: -15.5,26.5 parent: 31 - - uid: 4673 + - uid: 4522 components: - type: Transform - pos: 56.5,-26.5 + pos: 34.5,-13.5 parent: 31 - - uid: 4676 + - uid: 4715 components: - type: Transform - pos: 47.5,-18.5 + pos: -37.5,-29.5 parent: 31 - - uid: 4677 + - uid: 4717 components: - type: Transform - pos: 51.5,-18.5 + pos: 2.5,27.5 parent: 31 - - uid: 4679 + - uid: 4819 components: - type: Transform - pos: 50.5,-17.5 + pos: 12.5,-32.5 parent: 31 - - uid: 4680 + - uid: 4820 components: - type: Transform - pos: 49.5,-17.5 + pos: -37.5,-28.5 parent: 31 - - uid: 4681 + - uid: 4883 components: - type: Transform - pos: 48.5,-17.5 + pos: -0.5,6.5 parent: 31 - - uid: 4819 + - uid: 4897 components: - type: Transform - pos: 12.5,-32.5 + rot: 1.5707963267948966 rad + pos: -7.5,30.5 parent: 31 - - uid: 4883 + - uid: 4924 components: - type: Transform - pos: -0.5,6.5 + rot: 1.5707963267948966 rad + pos: -7.5,29.5 parent: 31 - uid: 4930 components: @@ -63014,6 +62343,12 @@ entities: - type: Transform pos: 13.5,0.5 parent: 31 + - uid: 5103 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -3.5,29.5 + parent: 31 - uid: 5113 components: - type: Transform @@ -63034,11 +62369,11 @@ entities: - type: Transform pos: -28.5,18.5 parent: 31 - - uid: 5766 + - uid: 5940 components: - type: Transform rot: 1.5707963267948966 rad - pos: -1.5,14.5 + pos: -9.5,37.5 parent: 31 - uid: 5988 components: @@ -63182,6 +62517,12 @@ entities: - type: Transform pos: 34.5,18.5 parent: 31 + - uid: 6907 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,37.5 + parent: 31 - uid: 6929 components: - type: Transform @@ -63194,157 +62535,27 @@ entities: rot: 1.5707963267948966 rad pos: 3.5,-35.5 parent: 31 - - uid: 6972 - components: - - type: Transform - pos: 47.5,-17.5 - parent: 31 - - uid: 6973 - components: - - type: Transform - pos: 47.5,-30.5 - parent: 31 - - uid: 6974 - components: - - type: Transform - pos: 47.5,-31.5 - parent: 31 - - uid: 6975 - components: - - type: Transform - pos: 51.5,-31.5 - parent: 31 - - uid: 6976 - components: - - type: Transform - pos: 51.5,-30.5 - parent: 31 - - uid: 6977 - components: - - type: Transform - pos: 52.5,-29.5 - parent: 31 - - uid: 6978 - components: - - type: Transform - pos: 54.5,-27.5 - parent: 31 - - uid: 6979 - components: - - type: Transform - pos: 54.5,-21.5 - parent: 31 - - uid: 6980 - components: - - type: Transform - pos: 52.5,-19.5 - parent: 31 - - uid: 6988 - components: - - type: Transform - pos: 55.5,-22.5 - parent: 31 - - uid: 6989 - components: - - type: Transform - pos: 56.5,-22.5 - parent: 31 - - uid: 6991 - components: - - type: Transform - pos: 55.5,-26.5 - parent: 31 - - uid: 6996 - components: - - type: Transform - pos: 56.5,-23.5 - parent: 31 - - uid: 6997 - components: - - type: Transform - pos: 56.5,-25.5 - parent: 31 - - uid: 6998 - components: - - type: Transform - pos: 56.5,-24.5 - parent: 31 - - uid: 6999 - components: - - type: Transform - pos: 53.5,-29.5 - parent: 31 - - uid: 7000 - components: - - type: Transform - pos: 54.5,-29.5 - parent: 31 - - uid: 7001 - components: - - type: Transform - pos: 54.5,-28.5 - parent: 31 - - uid: 7002 - components: - - type: Transform - pos: 53.5,-19.5 - parent: 31 - - uid: 7003 - components: - - type: Transform - pos: 54.5,-19.5 - parent: 31 - - uid: 7004 - components: - - type: Transform - pos: 54.5,-20.5 - parent: 31 - - uid: 7005 - components: - - type: Transform - pos: 45.5,-19.5 - parent: 31 - - uid: 7006 - components: - - type: Transform - pos: 44.5,-19.5 - parent: 31 - - uid: 7007 - components: - - type: Transform - pos: 44.5,-20.5 - parent: 31 - - uid: 7008 - components: - - type: Transform - pos: 42.5,-26.5 - parent: 31 - - uid: 7009 + - uid: 7071 components: - type: Transform - pos: 42.5,-22.5 + pos: 60.5,11.5 parent: 31 - - uid: 7029 + - uid: 7118 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 37.5,-26.5 + pos: -34.5,-22.5 parent: 31 - - uid: 7069 + - uid: 7149 components: - type: Transform rot: -1.5707963267948966 rad - pos: 35.5,-22.5 - parent: 31 - - uid: 7071 - components: - - type: Transform - pos: 60.5,11.5 + pos: 5.5,33.5 parent: 31 - - uid: 7118 + - uid: 7187 components: - type: Transform - pos: -34.5,-22.5 + rot: 1.5707963267948966 rad + pos: -8.5,33.5 parent: 31 - uid: 7242 components: @@ -63416,6 +62627,12 @@ entities: - type: Transform pos: -39.5,12.5 parent: 31 + - uid: 7690 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,37.5 + parent: 31 - uid: 7749 components: - type: Transform @@ -63446,26 +62663,22 @@ entities: - type: Transform pos: -6.5,-33.5 parent: 31 - - uid: 7903 + - uid: 7902 components: - type: Transform - pos: 34.5,-14.5 + rot: -1.5707963267948966 rad + pos: -1.5,35.5 parent: 31 - - uid: 7946 + - uid: 7903 components: - type: Transform - pos: 48.5,-31.5 + pos: 34.5,-14.5 parent: 31 - uid: 7963 components: - type: Transform pos: -42.5,-8.5 parent: 31 - - uid: 8028 - components: - - type: Transform - pos: 50.5,-31.5 - parent: 31 - uid: 8090 components: - type: Transform @@ -63478,11 +62691,6 @@ entities: rot: 1.5707963267948966 rad pos: 2.5,-31.5 parent: 31 - - uid: 8203 - components: - - type: Transform - pos: 49.5,-31.5 - parent: 31 - uid: 8204 components: - type: Transform @@ -63558,11 +62766,6 @@ entities: - type: Transform pos: -14.5,-33.5 parent: 31 - - uid: 8531 - components: - - type: Transform - pos: -37.5,-28.5 - parent: 31 - uid: 8533 components: - type: Transform @@ -63589,6 +62792,12 @@ entities: - type: Transform pos: -37.5,-23.5 parent: 31 + - uid: 8804 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 4.5,36.5 + parent: 31 - uid: 8935 components: - type: Transform @@ -63874,6 +63083,12 @@ entities: rot: -1.5707963267948966 rad pos: 21.5,28.5 parent: 31 + - uid: 10115 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -9.5,33.5 + parent: 31 - uid: 10121 components: - type: Transform @@ -63955,20 +63170,21 @@ entities: rot: 3.141592653589793 rad pos: 54.5,16.5 parent: 31 - - uid: 11130 + - uid: 11160 components: - type: Transform - pos: -7.5,30.5 + rot: 1.5707963267948966 rad + pos: -4.5,35.5 parent: 31 - - uid: 11131 + - uid: 11179 components: - type: Transform - pos: -6.5,30.5 + pos: -9.5,26.5 parent: 31 - - uid: 11132 + - uid: 11183 components: - type: Transform - pos: -5.5,30.5 + pos: -12.5,26.5 parent: 31 - uid: 11299 components: @@ -64235,17 +63451,16 @@ entities: parent: 31 - proto: ReinforcedWindowDiagonal entities: - - uid: 809 + - uid: 3244 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 1.5,-35.5 + pos: -1.5,36.5 parent: 31 - - uid: 11256 + - uid: 5127 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 0.5,-33.5 + rot: -1.5707963267948966 rad + pos: 5.5,36.5 parent: 31 - proto: ResearchAndDevelopmentServer entities: @@ -64254,6 +63469,14 @@ entities: - type: Transform pos: -1.5,-19.5 parent: 31 +- proto: RevolverCapGun + entities: + - uid: 5709 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.440866,-11.49221 + parent: 31 - proto: RiceSeeds entities: - uid: 9676 @@ -64302,6 +63525,13 @@ entities: - type: Transform pos: -5.5,-28.5 parent: 31 +- proto: Saw + entities: + - uid: 11905 + components: + - type: Transform + pos: -20.077808,-10.445335 + parent: 31 - proto: ScalpelLaser entities: - uid: 9095 @@ -64312,6 +63542,12 @@ entities: parent: 31 - proto: Screwdriver entities: + - uid: 6986 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 44.694298,-23.716614 + parent: 31 - uid: 10899 components: - type: Transform @@ -64339,7 +63575,7 @@ entities: parent: 31 - proto: SeedExtractor entities: - - uid: 4125 + - uid: 10447 components: - type: Transform pos: -18.5,1.5 @@ -64379,6 +63615,12 @@ entities: - type: Transform pos: 29.605116,0.5307963 parent: 31 + - uid: 1412 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.63822,-11.5152235 + parent: 31 - uid: 1484 components: - type: Transform @@ -64389,6 +63631,11 @@ entities: - type: Transform pos: -11.562502,-21.488012 parent: 31 + - uid: 3770 + components: + - type: Transform + pos: -36.501347,-24.525356 + parent: 31 - uid: 4733 components: - type: Transform @@ -64418,13 +63665,6 @@ entities: - type: Transform pos: -6.54687,-32.500237 parent: 31 - - uid: 7859 - components: - - type: Transform - parent: 7853 - - type: Physics - canCollide: False - - type: InsideEntityStorage - proto: SheetPlasteel entities: - uid: 738 @@ -64447,6 +63687,11 @@ entities: - type: Transform pos: 50.498375,5.494252 parent: 31 + - uid: 3800 + components: + - type: Transform + pos: -36.488842,-25.488525 + parent: 31 - uid: 4123 components: - type: Transform @@ -64476,6 +63721,12 @@ entities: - type: Transform pos: 19.62285,7.50161 parent: 31 + - uid: 11153 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.45072,-11.4214735 + parent: 31 - proto: SheetSteel entities: - uid: 432 @@ -64513,11 +63764,22 @@ entities: - type: Transform pos: -11.562502,-22.461464 parent: 31 + - uid: 1884 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 15.29447,-11.5152235 + parent: 31 - uid: 2159 components: - type: Transform pos: 18.507324,7.4999294 parent: 31 + - uid: 3799 + components: + - type: Transform + pos: -36.476334,-25.000687 + parent: 31 - uid: 4214 components: - type: Transform @@ -64542,31 +63804,17 @@ entities: parent: 31 - proto: SheetUranium entities: - - uid: 40 - components: - - type: Transform - pos: 46.313587,9.561768 - parent: 31 - - type: Physics - angularDamping: 0 - linearDamping: 0 - - uid: 6820 - components: - - type: Transform - pos: 46.751087,9.546143 - parent: 31 - - type: Physics - angularDamping: 0 - linearDamping: 0 - - uid: 12429 + - uid: 12540 components: - type: Transform - pos: 46.5,9.5 + pos: 56.396378,0.48042822 parent: 31 - - uid: 12540 +- proto: Shovel + entities: + - uid: 10474 components: - type: Transform - pos: 56.396378,0.48042822 + pos: -22.51185,-0.41375875 parent: 31 - proto: ShuttersNormal entities: @@ -64579,22 +63827,24 @@ entities: invokeCounter: 2 links: - 5132 - - uid: 11118 + - uid: 3399 components: - type: Transform - pos: -7.5,26.5 + pos: -23.5,-6.5 parent: 31 - type: DeviceLinkSink links: - - 11284 - - uid: 11119 + - 8715 + - 1178 + - uid: 3791 components: - type: Transform - pos: -6.5,26.5 + pos: -23.5,-5.5 parent: 31 - type: DeviceLinkSink links: - - 11284 + - 8715 + - 1178 - proto: ShuttersNormalOpen entities: - uid: 1475 @@ -64843,26 +64093,45 @@ entities: - type: DeviceLinkSink links: - 9957 - - uid: 11905 + - uid: 12125 components: - type: Transform rot: -1.5707963267948966 rad - pos: 61.5,6.5 + pos: 54.5,3.5 parent: 31 - type: DeviceLinkSink links: - 9957 - - uid: 12125 +- proto: SignAi + entities: + - uid: 4578 components: - type: Transform rot: -1.5707963267948966 rad - pos: 54.5,3.5 + pos: 52.5,-12.5 + parent: 31 + - uid: 12981 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 50.5,-1.5 + parent: 31 + - uid: 12986 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 49.5,-25.5 parent: 31 - - type: DeviceLinkSink - links: - - 9957 - proto: SignalButton entities: + - uid: 1234 + components: + - type: Transform + pos: 50.5,-23.5 + parent: 31 + - type: DeviceLinkSource + linkedPorts: + 7010: [] - uid: 2515 components: - type: Transform @@ -64921,6 +64190,18 @@ entities: - Pressed: Toggle 8770: - Pressed: Toggle + - uid: 10155 + components: + - type: MetaData + name: Light Button + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,1.5 + parent: 31 + - type: DeviceLinkSource + linkedPorts: + 9685: + - Pressed: Toggle - uid: 10325 components: - type: Transform @@ -64954,20 +64235,20 @@ entities: - Pressed: Toggle 2137: - Pressed: Toggle - - uid: 11284 +- proto: SignalButtonDirectional + entities: + - uid: 1178 components: - type: Transform rot: 1.5707963267948966 rad - pos: -8.5,28.5 + pos: -23.5,-7.5 parent: 31 - type: DeviceLinkSource linkedPorts: - 11119: + 3399: - Pressed: Toggle - 11118: + 3791: - Pressed: Toggle -- proto: SignalButtonDirectional - entities: - uid: 11380 components: - type: MetaData @@ -65201,6 +64482,14 @@ entities: - type: Transform pos: 1.5,2.5 parent: 31 +- proto: SignBarbershop + entities: + - uid: 11780 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,-13.5 + parent: 31 - proto: SignBiohazardMed entities: - uid: 8895 @@ -65257,15 +64546,17 @@ entities: parent: 31 - proto: SignConference entities: - - uid: 1524 + - uid: 7330 components: - type: Transform - pos: 1.5,26.5 + pos: 1.5,23.5 parent: 31 - - uid: 8704 +- proto: SignConspiracyBoard + entities: + - uid: 7561 components: - type: Transform - pos: -33.5,-25.5 + pos: -2.5,15.5 parent: 31 - proto: SignCryogenicsMed entities: @@ -65276,6 +64567,12 @@ entities: parent: 31 - proto: SignDanger entities: + - uid: 8071 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 61.5,0.5 + parent: 31 - uid: 12070 components: - type: Transform @@ -65286,11 +64583,6 @@ entities: - type: Transform pos: 69.5,1.5 parent: 31 - - uid: 12096 - components: - - type: Transform - pos: 61.5,0.5 - parent: 31 - proto: SignDangerMed entities: - uid: 4797 @@ -65304,6 +64596,14 @@ entities: rot: -1.5707963267948966 rad pos: 55.5,9.5 parent: 31 +- proto: SignDirectionalBar + entities: + - uid: 4953 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -29.502026,2.7012317 + parent: 31 - proto: SignDirectionalBridge entities: - uid: 157 @@ -65332,12 +64632,6 @@ entities: rot: 3.141592653589793 rad pos: -34.5,11.5 parent: 31 - - uid: 8917 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -26.499413,2.2858148 - parent: 31 - proto: SignDirectionalCryo entities: - uid: 9326 @@ -65348,10 +64642,10 @@ entities: parent: 31 - proto: SignDirectionalDorms entities: - - uid: 8915 + - uid: 2471 components: - type: Transform - pos: -26.5,2.5 + pos: -29.5,2.5 parent: 31 - proto: SignDirectionalEng entities: @@ -65389,21 +64683,6 @@ entities: rot: 1.5707963267948966 rad pos: -20.5,2.5 parent: 31 -- proto: SignDirectionalHydro - entities: - - uid: 8916 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -26.495642,2.7233148 - parent: 31 -- proto: SignDirectionalJanitor - entities: - - uid: 120 - components: - - type: Transform - pos: -22.49935,1.7157228 - parent: 31 - proto: SignDirectionalMed entities: - uid: 7491 @@ -65431,16 +64710,17 @@ entities: - type: Transform pos: 1.4985528,6.263013 parent: 31 - - uid: 10552 + - uid: 2681 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 0.5,-17.5 + rot: 1.5707963267948966 rad + pos: -29.50485,2.310225 parent: 31 - - uid: 10553 + - uid: 10552 components: - type: Transform - pos: -22.5,1.5 + rot: -1.5707963267948966 rad + pos: 0.5,-17.5 parent: 31 - proto: SignDirectionalSec entities: @@ -65456,12 +64736,6 @@ entities: rot: 1.5707963267948966 rad pos: -21.50213,6.729406 parent: 31 - - uid: 10272 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -17.5,15.5 - parent: 31 - uid: 10554 components: - type: Transform @@ -65524,13 +64798,6 @@ entities: - type: Transform pos: 8.5,-9.5 parent: 31 -- proto: SignGravity - entities: - - uid: 8148 - components: - - type: Transform - pos: 50.5,-1.5 - parent: 31 - proto: SignHydro1 entities: - uid: 10545 @@ -65540,11 +64807,11 @@ entities: parent: 31 - proto: SignJanitor entities: - - uid: 2749 + - uid: 2402 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -20.5,-13.5 + rot: -1.5707963267948966 rad + pos: -23.5,-8.5 parent: 31 - proto: SignLaserMed entities: @@ -65581,28 +64848,29 @@ entities: - type: Transform pos: 16.5,-14.5 parent: 31 -- proto: SignRadiation +- proto: SignNosmoking entities: - - uid: 9980 + - uid: 13063 components: - type: Transform - pos: 65.5,-5.5 - parent: 31 - - uid: 12068 - components: - - type: Transform - pos: 66.5,-5.5 + pos: -18.5,6.5 parent: 31 - - uid: 12069 +- proto: SignOpenOn2 + entities: + - uid: 13062 components: - type: Transform - pos: 78.5,3.5 + pos: -12.5,-13.5 parent: 31 - - uid: 12071 +- proto: SignPrivateProperty + entities: + - uid: 13047 components: - type: Transform - pos: 78.5,9.5 + pos: -36.5,16.5 parent: 31 +- proto: SignRadiation + entities: - uid: 12072 components: - type: Transform @@ -65635,45 +64903,54 @@ entities: - type: Transform pos: 54.5,0.5 parent: 31 - - uid: 9560 + - uid: 8032 components: - type: Transform - pos: 62.5,11.5 + rot: -1.5707963267948966 rad + pos: 58.5,0.5 parent: 31 - - uid: 9565 + - uid: 8036 components: - type: Transform - pos: 61.5,-5.5 + rot: 3.141592653589793 rad + pos: 58.5,3.5 parent: 31 - - uid: 9567 + - uid: 8037 components: - type: Transform - pos: 61.5,10.5 + rot: -1.5707963267948966 rad + pos: 61.5,1.5 parent: 31 - - uid: 12062 + - uid: 8835 components: - type: Transform + rot: 3.141592653589793 rad pos: 58.5,2.5 parent: 31 - - uid: 12063 + - uid: 8837 components: - type: Transform - pos: 58.5,0.5 + pos: 58.5,6.5 parent: 31 - - uid: 12064 + - uid: 8838 components: - type: Transform - pos: 58.5,3.5 + pos: 61.5,6.5 parent: 31 - - uid: 12066 + - uid: 9560 components: - type: Transform - pos: 58.5,6.5 + pos: 62.5,11.5 parent: 31 - - uid: 12067 + - uid: 9565 components: - type: Transform - pos: 61.5,6.5 + pos: 61.5,-5.5 + parent: 31 + - uid: 9567 + components: + - type: Transform + pos: 61.5,10.5 parent: 31 - proto: SignRobo entities: @@ -65762,11 +65039,11 @@ entities: rot: 1.5707963267948966 rad pos: 12.5,26.5 parent: 31 - - uid: 2451 + - uid: 4612 components: - type: Transform - rot: 3.141592653589793 rad - pos: -3.5,-6.5 + rot: -1.5707963267948966 rad + pos: -20.5,-6.5 parent: 31 - uid: 8411 components: @@ -65780,6 +65057,13 @@ entities: rot: 1.5707963267948966 rad pos: 21.5,-5.5 parent: 31 +- proto: SinkStemlessWater + entities: + - uid: 6974 + components: + - type: Transform + pos: -6.5,-11.5 + parent: 31 - proto: SinkWide entities: - uid: 4225 @@ -65865,6 +65149,11 @@ entities: - type: Transform pos: 42.5,5.5 parent: 31 + - uid: 7012 + components: + - type: Transform + pos: 43.5,-25.5 + parent: 31 - uid: 8327 components: - type: MetaData @@ -65899,19 +65188,19 @@ entities: - type: Transform pos: 39.5,5.5 parent: 31 -- proto: SoapNT +- proto: SMESMachineCircuitboard entities: - - uid: 1045 + - uid: 7019 components: - type: Transform - pos: 12.820141,26.438648 + pos: 51.57734,-29.484472 parent: 31 -- proto: SoapOmega +- proto: SoapNT entities: - - uid: 10584 + - uid: 1045 components: - type: Transform - pos: -6.517076,-41.294003 + pos: 12.820141,26.438648 parent: 31 - proto: soda_dispenser entities: @@ -66682,13 +65971,6 @@ entities: - type: Transform pos: 35.784645,-15.468033 parent: 31 -- proto: SpaceCash500 - entities: - - uid: 6892 - components: - - type: Transform - pos: -6.962518,29.44575 - parent: 31 - proto: SpacemenFigureSpawner entities: - uid: 10822 @@ -66696,40 +65978,13 @@ entities: - type: Transform pos: 12.5,-31.5 parent: 31 -- proto: SpawnMobAlexander - entities: - - uid: 9917 - components: - - type: Transform - pos: -13.5,0.5 - parent: 31 -- proto: SpawnMobBandito - entities: - - uid: 2192 - components: - - type: Transform - pos: -2.5,-28.5 - parent: 31 -- proto: SpawnMobCat - entities: - - uid: 6860 - components: - - type: Transform - pos: 21.5,-9.5 - parent: 31 -- proto: SpawnMobCatFloppa - entities: - - uid: 3678 - components: - - type: Transform - pos: 49.5,-27.5 - parent: 31 -- proto: SpawnMobCatSpace +- proto: SpareIdCabinetFilled entities: - - uid: 11689 + - uid: 10707 components: - type: Transform - pos: -0.5,-35.5 + rot: -1.5707963267948966 rad + pos: 9.5,23.5 parent: 31 - proto: SpawnMobCorgi entities: @@ -66738,13 +65993,6 @@ entities: - type: Transform pos: 9.5,20.5 parent: 31 -- proto: SpawnMobCrabAtmos - entities: - - uid: 11418 - components: - - type: Transform - pos: 33.5,12.5 - parent: 31 - proto: SpawnMobFoxRenault entities: - uid: 4294 @@ -66752,13 +66000,6 @@ entities: - type: Transform pos: 8.5,26.5 parent: 31 -- proto: SpawnMobMcGriff - entities: - - uid: 37 - components: - - type: Transform - pos: -1.5,8.5 - parent: 31 - proto: SpawnMobMonkeyPunpun entities: - uid: 10044 @@ -66766,56 +66007,20 @@ entities: - type: Transform pos: -5.5,-5.5 parent: 31 -- proto: SpawnMobMouse - entities: - - uid: 7899 - components: - - type: Transform - pos: -8.5,-11.5 - parent: 31 - - uid: 7900 - components: - - type: Transform - pos: -20.5,13.5 - parent: 31 - - uid: 7901 - components: - - type: Transform - pos: -2.5,20.5 - parent: 31 - - uid: 7902 - components: - - type: Transform - pos: -7.5,-6.5 - parent: 31 -- proto: SpawnMobPossumMorty - entities: - - uid: 7114 - components: - - type: Transform - pos: 12.5,-15.5 - parent: 31 -- proto: SpawnMobRaccoonMorticia +- proto: SpawnMobParrot entities: - - uid: 11385 + - uid: 12673 components: - type: Transform - pos: 28.5,8.5 + pos: 49.5,4.5 parent: 31 - proto: SpawnMobShiva entities: - - uid: 8304 + - uid: 9010 components: - type: Transform pos: -9.5,19.5 parent: 31 -- proto: SpawnMobSlothPaperwork - entities: - - uid: 8863 - components: - - type: Transform - pos: 8.5,-29.5 - parent: 31 - proto: SpawnMobSmile entities: - uid: 6 @@ -66863,22 +66068,15 @@ entities: parent: 31 - proto: SpawnPointBotanist entities: - - uid: 1103 - components: - - type: Transform - pos: -16.5,-0.5 - parent: 31 - - uid: 10827 + - uid: 8710 components: - type: Transform pos: -20.5,-0.5 parent: 31 -- proto: SpawnPointBrigmedic - entities: - - uid: 11049 + - uid: 10577 components: - type: Transform - pos: 0.5,13.5 + pos: -21.5,-0.5 parent: 31 - proto: SpawnPointCaptain entities: @@ -66941,10 +66139,20 @@ entities: parent: 31 - proto: SpawnPointClown entities: - - uid: 7354 + - uid: 8728 components: - type: Transform - pos: -18.5,-7.5 + pos: -19.5,-12.5 + parent: 31 + - uid: 12231 + components: + - type: Transform + pos: -19.5,-11.5 + parent: 31 + - uid: 13058 + components: + - type: Transform + pos: -18.5,-12.5 parent: 31 - proto: SpawnPointDetective entities: @@ -66976,10 +66184,10 @@ entities: parent: 31 - proto: SpawnPointJanitor entities: - - uid: 1320 + - uid: 8277 components: - type: Transform - pos: -18.5,-11.5 + pos: -21.5,-6.5 parent: 31 - proto: SpawnPointLatejoin entities: @@ -67031,17 +66239,17 @@ entities: parent: 31 - proto: SpawnPointMime entities: - - uid: 7832 + - uid: 12463 components: - type: Transform - pos: -18.5,-5.5 + pos: -18.5,-11.5 parent: 31 - proto: SpawnPointMusician entities: - - uid: 1603 + - uid: 12429 components: - type: Transform - pos: -18.5,-6.5 + pos: -11.5,-10.5 parent: 31 - proto: SpawnPointObserver entities: @@ -67069,22 +66277,10 @@ entities: - type: Transform pos: -27.5,9.5 parent: 31 - - uid: 7166 - components: - - type: Transform - pos: -25.5,-7.5 - parent: 31 - - uid: 10141 - components: - - type: Transform - pos: -22.5,-5.5 - parent: 31 -- proto: SpawnPointPrisoner - entities: - - uid: 1631 + - uid: 10156 components: - type: Transform - pos: -17.5,9.5 + pos: -29.5,-6.5 parent: 31 - proto: SpawnPointQuartermaster entities: @@ -67163,11 +66359,13 @@ entities: - uid: 501 components: - type: Transform + anchored: False pos: -13.5,14.5 parent: 31 - uid: 4202 components: - type: Transform + anchored: False pos: -12.5,14.5 parent: 31 - uid: 7905 @@ -67262,23 +66460,68 @@ entities: rot: 1.5707963267948966 rad pos: -10.458265,1.7780888 parent: 31 +- proto: SprayBottle + entities: + - uid: 7461 + components: + - type: Transform + pos: -6.7915807,-11.4037075 + parent: 31 - proto: SprayBottleSpaceCleaner entities: - - uid: 626 + - uid: 1103 components: - type: Transform - pos: -18.66321,-10.23793 + pos: -20.597425,-4.7052503 parent: 31 - - uid: 3115 + - uid: 8281 components: - type: Transform - pos: -18.66321,-10.355925 + pos: -20.534925,-4.486348 parent: 31 - uid: 9134 components: - type: Transform pos: 13.175127,-15.438009 parent: 31 +- proto: StairDark + entities: + - uid: 1381 + components: + - type: Transform + pos: 1.5,30.5 + parent: 31 + - uid: 4186 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,29.5 + parent: 31 + - uid: 8757 + components: + - type: Transform + pos: 2.5,30.5 + parent: 31 + - uid: 10711 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 0.5,28.5 + parent: 31 +- proto: StairStageDark + entities: + - uid: 8926 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,-12.5 + parent: 31 + - uid: 8933 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -13.5,-12.5 + parent: 31 - proto: StasisBed entities: - uid: 7269 @@ -67305,32 +66548,57 @@ entities: rot: -1.5707963267948966 rad pos: -34.5,-9.5 parent: 31 - - uid: 10535 + - uid: 9021 components: - type: Transform - pos: -14.5,-13.5 + rot: 3.141592653589793 rad + pos: -10.5,-17.5 parent: 31 - proto: SteelBench entities: - - uid: 12047 + - uid: 1151 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 59.5,6.5 + parent: 31 + - uid: 8914 components: - type: Transform rot: -1.5707963267948966 rad - pos: 60.5,6.5 + pos: -12.5,13.5 parent: 31 -- proto: Stool - entities: - - uid: 1355 + - uid: 8915 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,13.5 + parent: 31 + - uid: 11592 components: - type: Transform rot: -1.5707963267948966 rad - pos: -22.5,-6.5 + pos: -16.5,-8.5 parent: 31 - - uid: 1958 + - uid: 11595 components: - type: Transform rot: 1.5707963267948966 rad - pos: -24.5,-2.5 + pos: -16.5,-8.5 + parent: 31 + - uid: 12047 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 60.5,6.5 + parent: 31 +- proto: Stool + entities: + - uid: 2714 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.689534,-10.08596 parent: 31 - uid: 9580 components: @@ -67338,11 +66606,22 @@ entities: rot: -1.5707963267948966 rad pos: -18.5,10.5 parent: 31 - - uid: 11227 + - uid: 12223 + components: + - type: Transform + pos: -18.124092,-4.663729 + parent: 31 + - uid: 12224 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -18.32737,-6.538729 + parent: 31 + - uid: 12226 components: - type: Transform rot: -1.5707963267948966 rad - pos: -27.5,-9.5 + pos: -16.715189,-6.273104 parent: 31 - proto: StoolBar entities: @@ -67418,6 +66697,11 @@ entities: - type: Transform pos: 36.5,8.5 parent: 31 + - uid: 1229 + components: + - type: Transform + pos: 52.5,17.5 + parent: 31 - uid: 1536 components: - type: Transform @@ -67457,6 +66741,13 @@ entities: - type: Transform pos: 0.5,-8.5 parent: 31 + - uid: 2675 + components: + - type: MetaData + name: dorms substation + - type: Transform + pos: -28.5,-9.5 + parent: 31 - uid: 3587 components: - type: MetaData @@ -67485,12 +66776,17 @@ entities: - type: Transform pos: 55.5,5.5 parent: 31 - - uid: 7689 + - uid: 7004 + components: + - type: Transform + pos: 44.5,-26.5 + parent: 31 + - uid: 7484 components: - type: MetaData name: security substation - type: Transform - pos: -16.5,16.5 + pos: -19.5,12.5 parent: 31 - uid: 8667 components: @@ -67520,13 +66816,6 @@ entities: - type: Transform pos: 53.5,-0.5 parent: 31 - - uid: 10358 - components: - - type: MetaData - name: dorms substation - - type: Transform - pos: -26.5,-11.5 - parent: 31 - uid: 11206 components: - type: MetaData @@ -67560,6 +66849,16 @@ entities: - type: Transform pos: 29.5,-3.5 parent: 31 + - uid: 404 + components: + - type: Transform + pos: -36.5,-27.5 + parent: 31 + - uid: 1122 + components: + - type: Transform + pos: -20.5,25.5 + parent: 31 - uid: 8218 components: - type: Transform @@ -67587,6 +66886,18 @@ entities: - type: Transform pos: 8.5,9.5 parent: 31 + - uid: 7646 + components: + - type: Transform + pos: -6.5,29.5 + parent: 31 +- proto: SuitStorageEVAEmergency + entities: + - uid: 7773 + components: + - type: Transform + pos: 51.5,-19.5 + parent: 31 - proto: SuitStorageEVAPrisoner entities: - uid: 8889 @@ -67680,28 +66991,11 @@ entities: - SurveillanceCameraCommand nameSet: True id: Captain's Room - - uid: 4256 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 7.5,32.5 - parent: 31 - - type: SurveillanceCamera - setupAvailableNetworks: - - SurveillanceCameraCommand - nameSet: True - id: Bridge East - - uid: 4707 + - uid: 4285 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -2.5,28.5 + pos: 0.5,31.5 parent: 31 - - type: SurveillanceCamera - setupAvailableNetworks: - - SurveillanceCameraCommand - nameSet: True - id: Bridge West - uid: 4891 components: - type: Transform @@ -67857,17 +67151,6 @@ entities: - SurveillanceCameraGeneral nameSet: True id: Arrivals - - uid: 4346 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -22.5,-1.5 - parent: 31 - - type: SurveillanceCamera - setupAvailableNetworks: - - SurveillanceCameraGeneral - nameSet: True - id: Upper Dorms - uid: 4361 components: - type: Transform @@ -67934,6 +67217,12 @@ entities: - SurveillanceCameraGeneral nameSet: True id: Tool Hall + - uid: 8217 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -27.5,-2.5 + parent: 31 - uid: 8320 components: - type: Transform @@ -68267,14 +67556,6 @@ entities: - SurveillanceCameraSupply nameSet: True id: Salvage Magnet -- proto: SynthesizerInstrument - entities: - - uid: 7966 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -19.464506,-6.545539 - parent: 31 - proto: Syringe entities: - uid: 10806 @@ -68370,11 +67651,6 @@ entities: - type: Transform pos: -29.5,8.5 parent: 31 - - uid: 1247 - components: - - type: Transform - pos: 45.5,-20.5 - parent: 31 - uid: 1304 components: - type: Transform @@ -68396,27 +67672,32 @@ entities: - type: Transform pos: 29.5,1.5 parent: 31 - - uid: 1877 + - uid: 1767 components: - type: Transform - pos: -10.5,7.5 + pos: 51.5,-29.5 parent: 31 - - uid: 2002 + - uid: 2175 components: - type: Transform - rot: 3.141592653589793 rad - pos: -4.5,14.5 + pos: 12.5,-4.5 parent: 31 - - uid: 2175 + - uid: 2181 components: - type: Transform - pos: 12.5,-4.5 + rot: -1.5707963267948966 rad + pos: -20.5,18.5 parent: 31 - uid: 2261 components: - type: Transform pos: -17.5,-23.5 parent: 31 + - uid: 2301 + components: + - type: Transform + pos: -5.5,13.5 + parent: 31 - uid: 2317 components: - type: Transform @@ -68443,17 +67724,17 @@ entities: - type: Transform pos: -2.5,18.5 parent: 31 - - uid: 2428 + - uid: 2420 components: - type: Transform - rot: 3.141592653589793 rad - pos: -11.5,-22.5 + rot: -1.5707963267948966 rad + pos: 47.5,-19.5 parent: 31 - - uid: 2434 + - uid: 2428 components: - type: Transform rot: 3.141592653589793 rad - pos: -30.5,-9.5 + pos: -11.5,-22.5 parent: 31 - uid: 2455 components: @@ -68492,11 +67773,15 @@ entities: - type: Transform pos: -12.5,11.5 parent: 31 - - uid: 3138 + - uid: 3426 components: - type: Transform - rot: 3.141592653589793 rad - pos: -4.5,12.5 + pos: -36.5,-25.5 + parent: 31 + - uid: 3453 + components: + - type: Transform + pos: -36.5,-23.5 parent: 31 - uid: 3733 components: @@ -68504,15 +67789,30 @@ entities: rot: -1.5707963267948966 rad pos: -6.5,-14.5 parent: 31 - - uid: 4112 + - uid: 3971 components: - type: Transform - pos: 26.5,0.5 + pos: 47.5,-29.5 parent: 31 - - uid: 4128 + - uid: 3981 components: - type: Transform - pos: -19.5,-2.5 + pos: 50.5,-30.5 + parent: 31 + - uid: 3986 + components: + - type: Transform + pos: 48.5,-30.5 + parent: 31 + - uid: 4076 + components: + - type: Transform + pos: -6.5,27.5 + parent: 31 + - uid: 4112 + components: + - type: Transform + pos: 26.5,0.5 parent: 31 - uid: 4190 components: @@ -68534,21 +67834,26 @@ entities: - type: Transform pos: 19.5,7.5 parent: 31 + - uid: 4346 + components: + - type: Transform + pos: -36.5,-24.5 + parent: 31 - uid: 4466 components: - type: Transform pos: 18.5,7.5 parent: 31 - - uid: 4826 + - uid: 4648 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 17.5,-18.5 + pos: 55.5,-24.5 parent: 31 - - uid: 4860 + - uid: 4826 components: - type: Transform - pos: -10.5,-6.5 + rot: -1.5707963267948966 rad + pos: 17.5,-18.5 parent: 31 - uid: 4904 components: @@ -68577,16 +67882,15 @@ entities: - type: Transform pos: 28.5,0.5 parent: 31 - - uid: 5727 + - uid: 5754 components: - type: Transform - rot: 3.141592653589793 rad - pos: -4.5,13.5 + pos: -11.5,11.5 parent: 31 - - uid: 5754 + - uid: 5994 components: - type: Transform - pos: -11.5,11.5 + pos: -5.5,15.5 parent: 31 - uid: 6019 components: @@ -68618,6 +67922,16 @@ entities: - type: Transform pos: 6.5,10.5 parent: 31 + - uid: 6962 + components: + - type: Transform + pos: -12.5,1.5 + parent: 31 + - uid: 6984 + components: + - type: Transform + pos: -5.5,14.5 + parent: 31 - uid: 7093 components: - type: Transform @@ -68628,6 +67942,12 @@ entities: - type: Transform pos: -9.5,-18.5 parent: 31 + - uid: 7108 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,17.5 + parent: 31 - uid: 7123 components: - type: Transform @@ -68653,22 +67973,6 @@ entities: - type: Transform pos: 22.5,-4.5 parent: 31 - - uid: 7353 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -19.5,-6.5 - parent: 31 - - uid: 7564 - components: - - type: Transform - pos: -15.5,-11.5 - parent: 31 - - uid: 7565 - components: - - type: Transform - pos: -15.5,-10.5 - parent: 31 - uid: 7573 components: - type: Transform @@ -68742,12 +68046,6 @@ entities: - type: Transform pos: -5.5,-6.5 parent: 31 - - uid: 8496 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -3.5,12.5 - parent: 31 - uid: 8559 components: - type: Transform @@ -68758,11 +68056,6 @@ entities: - type: Transform pos: 14.5,12.5 parent: 31 - - uid: 8807 - components: - - type: Transform - pos: -2.5,30.5 - parent: 31 - uid: 8853 components: - type: Transform @@ -68773,11 +68066,6 @@ entities: - type: Transform pos: 40.5,4.5 parent: 31 - - uid: 9003 - components: - - type: Transform - pos: -20.5,-2.5 - parent: 31 - uid: 9006 components: - type: Transform @@ -68793,23 +68081,6 @@ entities: - type: Transform pos: 18.5,17.5 parent: 31 - - uid: 9165 - components: - - type: Transform - pos: -6.5,26.5 - parent: 31 - - uid: 9198 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -19.5,-7.5 - parent: 31 - - uid: 9507 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -19.5,-5.5 - parent: 31 - uid: 9510 components: - type: Transform @@ -68830,11 +68101,27 @@ entities: - type: Transform pos: -3.5,-39.5 parent: 31 + - uid: 9959 + components: + - type: Transform + pos: -30.5,-5.5 + parent: 31 + - uid: 9986 + components: + - type: Transform + pos: -30.5,-6.5 + parent: 31 - uid: 10140 components: - type: Transform pos: 49.5,-5.5 parent: 31 + - uid: 10148 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,1.5 + parent: 31 - uid: 10223 components: - type: Transform @@ -68855,26 +68142,31 @@ entities: - type: Transform pos: -16.5,-14.5 parent: 31 - - uid: 10418 + - uid: 10398 components: - type: Transform - pos: 0.5,-27.5 + rot: 1.5707963267948966 rad + pos: -16.5,-1.5 parent: 31 - - uid: 10421 + - uid: 10399 components: - type: Transform - pos: -0.5,-27.5 + pos: -22.5,-0.5 parent: 31 - - uid: 10542 + - uid: 10400 components: - type: Transform - pos: -7.5,26.5 + pos: -17.5,1.5 parent: 31 - - uid: 10582 + - uid: 10418 components: - type: Transform - rot: 3.141592653589793 rad - pos: -29.5,-9.5 + pos: 0.5,-27.5 + parent: 31 + - uid: 10421 + components: + - type: Transform + pos: -0.5,-27.5 parent: 31 - uid: 10642 components: @@ -68901,30 +68193,48 @@ entities: - type: Transform pos: -47.5,-9.5 parent: 31 - - uid: 10792 + - uid: 10796 components: - type: Transform - pos: 45.5,-21.5 + rot: -1.5707963267948966 rad + pos: -9.5,8.5 + parent: 31 + - uid: 10797 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,8.5 parent: 31 - uid: 11078 components: - type: Transform pos: 46.5,-2.5 parent: 31 - - uid: 11120 + - uid: 11295 components: - type: Transform - pos: -7.5,28.5 + pos: -3.5,10.5 parent: 31 - - uid: 11121 + - uid: 11597 components: - type: Transform - pos: -7.5,29.5 + pos: -6.5,10.5 parent: 31 - - uid: 11122 + - uid: 11650 components: - type: Transform - pos: -6.5,29.5 + pos: -3.5,11.5 + parent: 31 + - uid: 11822 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -26.5,-11.5 + parent: 31 + - uid: 11846 + components: + - type: Transform + pos: -9.5,-7.5 parent: 31 - proto: TableCarpet entities: @@ -68973,10 +68283,25 @@ entities: rot: 3.141592653589793 rad pos: -22.5,9.5 parent: 31 - - uid: 8724 + - uid: 11645 components: - type: Transform - pos: -36.5,-29.5 + rot: 1.5707963267948966 rad + pos: -17.5,-5.5 + parent: 31 + - uid: 11646 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -17.5,-6.5 + parent: 31 +- proto: TableCounterMetal + entities: + - uid: 11823 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -6.5,-11.5 parent: 31 - proto: TableCounterWood entities: @@ -69022,6 +68347,24 @@ entities: parent: 31 - proto: TableFancyPurple entities: + - uid: 2435 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -19.5,-10.5 + parent: 31 + - uid: 2447 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,-10.5 + parent: 31 + - uid: 2738 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -20.5,-11.5 + parent: 31 - uid: 10697 components: - type: Transform @@ -69097,36 +68440,16 @@ entities: parent: 31 - proto: TableReinforced entities: - - uid: 275 - components: - - type: Transform - pos: 5.5,31.5 - parent: 31 - - uid: 462 - components: - - type: Transform - pos: 4.5,32.5 - parent: 31 - - uid: 532 - components: - - type: Transform - pos: 9.5,30.5 - parent: 31 - - uid: 533 + - uid: 143 components: - type: Transform - pos: -0.5,32.5 + pos: 4.5,31.5 parent: 31 - uid: 597 components: - type: Transform pos: 30.5,5.5 parent: 31 - - uid: 611 - components: - - type: Transform - pos: 9.5,28.5 - parent: 31 - uid: 661 components: - type: Transform @@ -69142,11 +68465,6 @@ entities: - type: Transform pos: 40.5,-0.5 parent: 31 - - uid: 766 - components: - - type: Transform - pos: 1.5,32.5 - parent: 31 - uid: 900 components: - type: Transform @@ -69157,16 +68475,6 @@ entities: - type: Transform pos: -10.5,1.5 parent: 31 - - uid: 940 - components: - - type: Transform - pos: 2.5,32.5 - parent: 31 - - uid: 959 - components: - - type: Transform - pos: 5.5,32.5 - parent: 31 - uid: 987 components: - type: Transform @@ -69192,21 +68500,21 @@ entities: - type: Transform pos: 19.5,-20.5 parent: 31 - - uid: 2297 + - uid: 3801 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -14.5,15.5 + pos: -6.5,36.5 parent: 31 - - uid: 2446 + - uid: 4074 components: - type: Transform - pos: 7.5,32.5 + pos: -5.5,36.5 parent: 31 - uid: 4193 components: - type: Transform - pos: 2.5,31.5 + rot: -1.5707963267948966 rad + pos: 4.5,35.5 parent: 31 - uid: 4245 components: @@ -69223,6 +68531,12 @@ entities: - type: Transform pos: 27.5,15.5 parent: 31 + - uid: 4573 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -0.5,31.5 + parent: 31 - uid: 4880 components: - type: Transform @@ -69243,6 +68557,12 @@ entities: - type: Transform pos: 37.5,-0.5 parent: 31 + - uid: 7046 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 49.5,-24.5 + parent: 31 - uid: 8138 components: - type: Transform @@ -69260,15 +68580,16 @@ entities: rot: 1.5707963267948966 rad pos: -14.5,16.5 parent: 31 - - uid: 8798 + - uid: 8751 components: - type: Transform - pos: -13.5,18.5 + rot: 1.5707963267948966 rad + pos: -0.5,35.5 parent: 31 - - uid: 8799 + - uid: 8798 components: - type: Transform - pos: 8.5,31.5 + pos: -13.5,18.5 parent: 31 - uid: 9056 components: @@ -69315,6 +68636,11 @@ entities: - type: Transform pos: -16.5,-18.5 parent: 31 + - uid: 10825 + components: + - type: Transform + pos: -14.5,15.5 + parent: 31 - uid: 10892 components: - type: Transform @@ -69409,11 +68735,6 @@ entities: parent: 31 - proto: TableWood entities: - - uid: 492 - components: - - type: Transform - pos: -30.5,-1.5 - parent: 31 - uid: 936 components: - type: Transform @@ -69459,27 +68780,17 @@ entities: - type: Transform pos: -2.5,-5.5 parent: 31 - - uid: 2844 - components: - - type: Transform - pos: -30.5,-5.5 - parent: 31 - - uid: 3892 + - uid: 2815 components: - type: Transform - pos: -30.5,-2.5 + rot: -1.5707963267948966 rad + pos: -24.5,-0.5 parent: 31 - uid: 3913 components: - type: Transform pos: 28.5,10.5 parent: 31 - - uid: 4005 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -21.5,17.5 - parent: 31 - uid: 4016 components: - type: Transform @@ -69495,11 +68806,6 @@ entities: - type: Transform pos: -4.5,-4.5 parent: 31 - - uid: 4093 - components: - - type: Transform - pos: -30.5,1.5 - parent: 31 - uid: 4162 components: - type: Transform @@ -69510,36 +68816,11 @@ entities: - type: Transform pos: 8.5,-28.5 parent: 31 - - uid: 4710 - components: - - type: Transform - pos: -23.5,-6.5 - parent: 31 - - uid: 4711 - components: - - type: Transform - pos: -23.5,-5.5 - parent: 31 - - uid: 4712 - components: - - type: Transform - pos: -24.5,-6.5 - parent: 31 - - uid: 4713 - components: - - type: Transform - pos: -24.5,-5.5 - parent: 31 - uid: 4787 components: - type: Transform pos: 9.5,-28.5 parent: 31 - - uid: 5003 - components: - - type: Transform - pos: -23.5,-2.5 - parent: 31 - uid: 5119 components: - type: Transform @@ -69551,6 +68832,16 @@ entities: rot: 1.5707963267948966 rad pos: 8.5,-3.5 parent: 31 + - uid: 6996 + components: + - type: Transform + pos: -1.5,14.5 + parent: 31 + - uid: 7001 + components: + - type: Transform + pos: -2.5,14.5 + parent: 31 - uid: 7146 components: - type: Transform @@ -69586,16 +68877,6 @@ entities: - type: Transform pos: 27.5,-25.5 parent: 31 - - uid: 8708 - components: - - type: Transform - pos: -35.5,-25.5 - parent: 31 - - uid: 8746 - components: - - type: Transform - pos: -35.5,-24.5 - parent: 31 - uid: 9043 components: - type: Transform @@ -69884,18 +69165,6 @@ entities: parent: 31 - proto: TintedWindow entities: - - uid: 1444 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -28.5,2.5 - parent: 31 - - uid: 1445 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -29.5,2.5 - parent: 31 - uid: 4662 components: - type: Transform @@ -69925,29 +69194,29 @@ entities: rot: -1.5707963267948966 rad pos: 13.5,26.5 parent: 31 -- proto: ToolboxArtistic +- proto: ToolboxElectrical entities: - - uid: 10816 + - uid: 8802 components: - type: Transform - pos: -31.033598,-32.18022 + pos: -17.560137,20.77425 parent: 31 -- proto: ToolboxElectricalFilled - entities: - - uid: 12 + - uid: 9516 components: - type: Transform - pos: -29.499815,8.100836 + pos: -30.309246,-9.267263 parent: 31 - - uid: 3947 +- proto: ToolboxElectricalFilled + entities: + - uid: 4290 components: - type: Transform - pos: 9.510484,28.980497 + pos: 32.484333,-2.403047 parent: 31 - - uid: 4290 + - uid: 5864 components: - type: Transform - pos: 32.484333,-2.403047 + pos: -29.436642,8.485578 parent: 31 - uid: 8892 components: @@ -69956,15 +69225,10 @@ entities: parent: 31 - proto: ToolboxEmergencyFilled entities: - - uid: 1054 - components: - - type: Transform - pos: 9.510484,28.589872 - parent: 31 - - uid: 11129 + - uid: 3483 components: - type: Transform - pos: -5.51474,29.649992 + pos: 4.4022307,35.456944 parent: 31 - proto: ToolboxGoldFilled entities: @@ -69992,38 +69256,15 @@ entities: parent: 31 - proto: ToyAi entities: - - uid: 10982 - components: - - type: Transform - pos: 60.558807,-5.3215933 - parent: 31 -- proto: ToyAmongPequeno - entities: - - uid: 9685 - components: - - type: Transform - pos: 29.13865,-15.849083 - parent: 31 -- proto: ToyDeathRipley - entities: - - uid: 2030 - components: - - type: Transform - pos: -24.569178,-5.0530295 - parent: 31 -- proto: ToyFigurineDetective - entities: - - uid: 6636 + - uid: 8292 components: - type: Transform - pos: -21.273363,17.582897 + pos: 49.509567,-24.29748 parent: 31 -- proto: ToyFireRipley - entities: - - uid: 2029 + - uid: 10982 components: - type: Transform - pos: -23.412928,-6.0686545 + pos: 60.558807,-5.3215933 parent: 31 - proto: ToyRubberDuck entities: @@ -70034,15 +69275,15 @@ entities: parent: 31 - proto: ToySpawner entities: - - uid: 148 + - uid: 521 components: - type: Transform - pos: -30.5,-2.5 + pos: -31.5,16.5 parent: 31 - - uid: 521 + - uid: 867 components: - type: Transform - pos: -31.5,16.5 + pos: -20.5,20.5 parent: 31 - uid: 7790 components: @@ -70058,23 +69299,11 @@ entities: parent: 31 - proto: TrashBag entities: - - uid: 8951 + - uid: 8923 components: - type: Transform rot: -1.5707963267948966 rad - pos: -18.528688,-10.596653 - parent: 31 -- proto: TrashBananaPeel - entities: - - uid: 7351 - components: - - type: Transform - pos: -19.590536,-8.611897 - parent: 31 - - uid: 8267 - components: - - type: Transform - pos: 38.48186,-17.514906 + pos: -20.24326,-4.6844025 parent: 31 - proto: trayScanner entities: @@ -70083,13 +69312,6 @@ entities: - type: Transform pos: 48.60447,5.4525433 parent: 31 -- proto: TritiumCanister - entities: - - uid: 7315 - components: - - type: Transform - pos: 60.5,9.5 - parent: 31 - proto: UniformPrinter entities: - uid: 8408 @@ -70101,6 +69323,38 @@ entities: materialWhiteList: - Cloth - Durathread +- proto: UraniumReinforcedWindowDirectional + entities: + - uid: 534 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,0.5 + parent: 31 + - uid: 6950 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,1.5 + parent: 31 + - uid: 6952 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,2.5 + parent: 31 + - uid: 6966 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,3.5 + parent: 31 + - uid: 7028 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 62.5,4.5 + parent: 31 - proto: Urn entities: - uid: 3882 @@ -70138,10 +69392,10 @@ entities: parent: 31 - proto: VendingBarDrobe entities: - - uid: 2420 + - uid: 2814 components: - type: Transform - pos: -12.5,-6.5 + pos: -15.5,-8.5 parent: 31 - proto: VendingMachineAtmosDrobe entities: @@ -70173,7 +69427,7 @@ entities: parent: 31 - proto: VendingMachineChang entities: - - uid: 792 + - uid: 4710 components: - type: Transform pos: -34.5,10.5 @@ -70193,10 +69447,10 @@ entities: parent: 31 - proto: VendingMachineChefDrobe entities: - - uid: 3986 + - uid: 11843 components: - type: Transform - pos: -13.5,-3.5 + pos: -17.5,-8.5 parent: 31 - proto: VendingMachineChefvend entities: @@ -70221,19 +69475,15 @@ entities: parent: 31 - proto: VendingMachineCigs entities: - - uid: 473 + - uid: 9793 components: - - type: MetaData - name: cigarette machine - type: Transform - pos: 14.5,21.5 + pos: -2.5,31.5 parent: 31 - - uid: 8705 + - uid: 10171 components: - - type: MetaData - name: cigarette machine - type: Transform - pos: -32.5,-29.5 + pos: 14.5,19.5 parent: 31 - uid: 10835 components: @@ -70255,19 +69505,17 @@ entities: parent: 31 - proto: VendingMachineClothing entities: - - uid: 7647 + - uid: 9905 components: - type: Transform - pos: -29.5,-7.5 + pos: -28.5,-6.5 parent: 31 - proto: VendingMachineCoffee entities: - - uid: 983 + - uid: 6921 components: - - type: MetaData - name: Hot drinks machine - type: Transform - pos: 0.5,23.5 + pos: 0.5,26.5 parent: 31 - uid: 7303 components: @@ -70275,13 +69523,6 @@ entities: rot: 1.5707963267948966 rad pos: 2.5,-30.5 parent: 31 - - uid: 8738 - components: - - type: MetaData - name: Hot drinks machine - - type: Transform - pos: -36.5,-23.5 - parent: 31 - uid: 9039 components: - type: MetaData @@ -70289,11 +69530,10 @@ entities: - type: Transform pos: 35.5,6.5 parent: 31 - - uid: 9328 + - uid: 9739 components: - - type: MetaData - name: Hot drinks machine - type: Transform + rot: 1.5707963267948966 rad pos: -38.5,-5.5 parent: 31 - uid: 10840 @@ -70304,20 +69544,21 @@ entities: parent: 31 - proto: VendingMachineCola entities: - - uid: 984 + - uid: 7958 components: - type: Transform - pos: 1.5,21.5 + pos: 25.5,6.5 parent: 31 - - uid: 1229 + - uid: 9740 components: - type: Transform - pos: -34.5,2.5 + pos: 1.5,21.5 parent: 31 - - uid: 7958 + - uid: 9746 components: - type: Transform - pos: 25.5,6.5 + rot: -1.5707963267948966 rad + pos: -34.5,2.5 parent: 31 - proto: VendingMachineCuraDrobe entities: @@ -70342,6 +69583,13 @@ entities: - type: Transform pos: -13.5,1.5 parent: 31 +- proto: VendingMachineDrGibb + entities: + - uid: 12531 + components: + - type: Transform + pos: -25.5,-13.5 + parent: 31 - proto: VendingMachineEngiDrobe entities: - uid: 3283 @@ -70371,13 +69619,6 @@ entities: - type: Transform pos: 8.5,-13.5 parent: 31 -- proto: VendingMachineHappyHonk - entities: - - uid: 7121 - components: - - type: Transform - pos: -17.5,-8.5 - parent: 31 - proto: VendingMachineHotfood entities: - uid: 11301 @@ -70385,25 +69626,19 @@ entities: - type: Transform pos: -3.5,1.5 parent: 31 -- proto: VendingMachineHydrobe - entities: - - uid: 4126 - components: - - type: Transform - pos: -14.5,-6.5 - parent: 31 - proto: VendingMachineJaniDrobe entities: - - uid: 2007 + - uid: 1017 components: - type: Transform - pos: -19.5,-10.5 + pos: -22.5,-4.5 parent: 31 - proto: VendingMachineMedical entities: - - uid: 1148 + - uid: 9752 components: - type: Transform + rot: 3.141592653589793 rad pos: 14.5,-11.5 parent: 31 - uid: 11108 @@ -70421,10 +69656,10 @@ entities: parent: 31 - proto: VendingMachineNutri entities: - - uid: 7436 + - uid: 10723 components: - type: Transform - pos: -15.5,-8.5 + pos: -18.5,-2.5 parent: 31 - proto: VendingMachineRestockBooze entities: @@ -70485,10 +69720,10 @@ entities: parent: 31 - proto: VendingMachineSeeds entities: - - uid: 4127 + - uid: 10392 components: - type: Transform - pos: -17.5,-2.5 + pos: -21.5,1.5 parent: 31 - proto: VendingMachineSeedsUnlocked entities: @@ -70499,11 +69734,6 @@ entities: parent: 31 - proto: VendingMachineSnack entities: - - uid: 133 - components: - - type: Transform - pos: -22.5,0.5 - parent: 31 - uid: 7959 components: - type: Transform @@ -70511,6 +69741,11 @@ entities: parent: 31 - proto: VendingMachineSolsnack entities: + - uid: 113 + components: + - type: Transform + pos: -24.5,1.5 + parent: 31 - uid: 12233 components: - type: Transform @@ -70518,11 +69753,6 @@ entities: parent: 31 - proto: VendingMachineSovietSoda entities: - - uid: 7561 - components: - - type: Transform - pos: -11.5,-9.5 - parent: 31 - uid: 9574 components: - type: Transform @@ -70544,6 +69774,11 @@ entities: parent: 31 - proto: VendingMachineTankDispenserEVA entities: + - uid: 7647 + components: + - type: Transform + pos: -4.5,31.5 + parent: 31 - uid: 9080 components: - type: Transform @@ -70565,10 +69800,10 @@ entities: parent: 31 - proto: VendingMachineTheater entities: - - uid: 5712 + - uid: 2355 components: - type: Transform - pos: -19.5,-4.5 + pos: -17.5,-11.5 parent: 31 - proto: VendingMachineVendomat entities: @@ -70591,12 +69826,6 @@ entities: parent: 31 - proto: VendingMachineWallMedical entities: - - uid: 6599 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -0.5,11.5 - parent: 31 - uid: 11679 components: - type: Transform @@ -70608,11 +69837,6 @@ entities: - type: Transform pos: 6.5,-9.5 parent: 31 - - uid: 12103 - components: - - type: Transform - pos: -0.5,11.5 - parent: 31 - proto: VendingMachineWeeb entities: - uid: 10834 @@ -70621,13 +69845,6 @@ entities: rot: -1.5707963267948966 rad pos: 5.5,-16.5 parent: 31 -- proto: VendingMachineWinter - entities: - - uid: 8281 - components: - - type: Transform - pos: -30.5,-7.5 - parent: 31 - proto: VendingMachineYouTool entities: - uid: 194 @@ -70640,6 +69857,24 @@ entities: - type: Transform pos: 31.5,0.5 parent: 31 + - uid: 2780 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -32.5,-29.5 + parent: 31 + - uid: 4675 + components: + - type: Transform + pos: 54.5,-26.5 + parent: 31 +- proto: WallDecorExitsign + entities: + - uid: 2330 + components: + - type: Transform + pos: -16.5,-11.5 + parent: 31 - proto: WallmountTelescreen entities: - uid: 8846 @@ -70663,6 +69898,13 @@ entities: rot: 1.5707963267948966 rad pos: -16.5,-38.5 parent: 31 +- proto: WallmountTelevision + entities: + - uid: 7747 + components: + - type: Transform + pos: -5.5,-10.5 + parent: 31 - proto: WallReinforced entities: - uid: 34 @@ -70741,6 +69983,18 @@ entities: - type: Transform pos: -16.5,-28.5 parent: 31 + - uid: 209 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 49.5,-25.5 + parent: 31 + - uid: 217 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 49.5,-23.5 + parent: 31 - uid: 219 components: - type: Transform @@ -70769,13 +70023,25 @@ entities: - uid: 305 components: - type: Transform - pos: -1.5,11.5 + pos: 3.5,15.5 parent: 31 - uid: 306 components: - type: Transform pos: 40.5,1.5 parent: 31 + - uid: 379 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 46.5,-28.5 + parent: 31 + - uid: 401 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-19.5 + parent: 31 - uid: 447 components: - type: Transform @@ -70808,11 +70074,22 @@ entities: - type: Transform pos: -6.5,20.5 parent: 31 + - uid: 500 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 52.5,-28.5 + parent: 31 - uid: 556 components: - type: Transform pos: 14.5,27.5 parent: 31 + - uid: 563 + components: + - type: Transform + pos: -7.5,33.5 + parent: 31 - uid: 623 components: - type: Transform @@ -70874,11 +70151,6 @@ entities: - type: Transform pos: 17.5,-26.5 parent: 31 - - uid: 723 - components: - - type: Transform - pos: -29.5,-20.5 - parent: 31 - uid: 730 components: - type: Transform @@ -71021,6 +70293,17 @@ entities: - type: Transform pos: 31.5,-11.5 parent: 31 + - uid: 1038 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,9.5 + parent: 31 + - uid: 1055 + components: + - type: Transform + pos: -34.5,-29.5 + parent: 31 - uid: 1072 components: - type: Transform @@ -71102,6 +70385,11 @@ entities: - type: Transform pos: 20.5,0.5 parent: 31 + - uid: 1171 + components: + - type: Transform + pos: 0.5,30.5 + parent: 31 - uid: 1182 components: - type: Transform @@ -71127,10 +70415,11 @@ entities: - type: Transform pos: 25.5,2.5 parent: 31 - - uid: 1269 + - uid: 1266 components: - type: Transform - pos: -0.5,11.5 + rot: 3.141592653589793 rad + pos: 70.5,-4.5 parent: 31 - uid: 1270 components: @@ -71167,15 +70456,11 @@ entities: - type: Transform pos: 61.5,5.5 parent: 31 - - uid: 1393 - components: - - type: Transform - pos: 9.5,32.5 - parent: 31 - - uid: 1408 + - uid: 1392 components: - type: Transform - pos: 8.5,33.5 + rot: -1.5707963267948966 rad + pos: -16.5,16.5 parent: 31 - uid: 1413 components: @@ -71187,6 +70472,12 @@ entities: - type: Transform pos: -11.5,9.5 parent: 31 + - uid: 1492 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 50.5,-28.5 + parent: 31 - uid: 1502 components: - type: Transform @@ -71692,31 +70983,11 @@ entities: - type: Transform pos: 10.5,27.5 parent: 31 - - uid: 1840 - components: - - type: Transform - pos: 10.5,28.5 - parent: 31 - - uid: 1841 - components: - - type: Transform - pos: 10.5,30.5 - parent: 31 - uid: 1842 components: - type: Transform pos: -1.5,32.5 parent: 31 - - uid: 1843 - components: - - type: Transform - pos: -2.5,32.5 - parent: 31 - - uid: 1845 - components: - - type: Transform - pos: -3.5,28.5 - parent: 31 - uid: 1846 components: - type: Transform @@ -71822,16 +71093,6 @@ entities: - type: Transform pos: 5.5,24.5 parent: 31 - - uid: 1876 - components: - - type: Transform - pos: -1.5,33.5 - parent: 31 - - uid: 1890 - components: - - type: Transform - pos: 8.5,32.5 - parent: 31 - uid: 1892 components: - type: Transform @@ -71957,11 +71218,6 @@ entities: - type: Transform pos: -16.5,22.5 parent: 31 - - uid: 1926 - components: - - type: Transform - pos: -16.5,23.5 - parent: 31 - uid: 1927 components: - type: Transform @@ -72097,11 +71353,6 @@ entities: - type: Transform pos: -15.5,12.5 parent: 31 - - uid: 1964 - components: - - type: Transform - pos: -15.5,15.5 - parent: 31 - uid: 1966 components: - type: Transform @@ -72247,6 +71498,30 @@ entities: - type: Transform pos: 42.5,0.5 parent: 31 + - uid: 2060 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -35.5,-33.5 + parent: 31 + - uid: 2062 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -36.5,-33.5 + parent: 31 + - uid: 2092 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,-30.5 + parent: 31 + - uid: 2093 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 53.5,-21.5 + parent: 31 - uid: 2101 components: - type: Transform @@ -72327,12 +71602,42 @@ entities: - type: Transform pos: 25.5,-12.5 parent: 31 + - uid: 2190 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 53.5,-22.5 + parent: 31 - uid: 2215 components: - type: Transform rot: 1.5707963267948966 rad pos: 69.5,1.5 parent: 31 + - uid: 2217 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-26.5 + parent: 31 + - uid: 2219 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-23.5 + parent: 31 + - uid: 2222 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,-27.5 + parent: 31 + - uid: 2223 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,-29.5 + parent: 31 - uid: 2229 components: - type: Transform @@ -72393,6 +71698,24 @@ entities: - type: Transform pos: 28.5,-0.5 parent: 31 + - uid: 2264 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,-27.5 + parent: 31 + - uid: 2273 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-29.5 + parent: 31 + - uid: 2274 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 47.5,-30.5 + parent: 31 - uid: 2284 components: - type: Transform @@ -72413,6 +71736,12 @@ entities: - type: Transform pos: -6.5,-24.5 parent: 31 + - uid: 2308 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,-17.5 + parent: 31 - uid: 2310 components: - type: Transform @@ -72428,16 +71757,25 @@ entities: - type: Transform pos: 29.5,14.5 parent: 31 + - uid: 2341 + components: + - type: Transform + pos: -27.5,-9.5 + parent: 31 - uid: 2348 components: - type: Transform pos: -33.5,-13.5 parent: 31 - - uid: 2406 + - uid: 2357 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 60.5,-1.5 + pos: -30.5,-10.5 + parent: 31 + - uid: 2374 + components: + - type: Transform + pos: -30.5,-8.5 parent: 31 - uid: 2415 components: @@ -72495,31 +71833,15 @@ entities: - type: Transform pos: 14.5,25.5 parent: 31 - - uid: 2490 - components: - - type: Transform - pos: 13.5,21.5 - parent: 31 - - uid: 2533 - components: - - type: Transform - pos: -16.5,15.5 - parent: 31 - - uid: 2535 - components: - - type: Transform - pos: -17.5,17.5 - parent: 31 - uid: 2671 components: - type: Transform pos: -17.5,12.5 parent: 31 - - uid: 2877 + - uid: 2776 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 60.5,-3.5 + pos: 39.5,-19.5 parent: 31 - uid: 2878 components: @@ -72531,12 +71853,6 @@ entities: - type: Transform pos: 32.5,23.5 parent: 31 - - uid: 3107 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: 60.5,-2.5 - parent: 31 - uid: 3130 components: - type: Transform @@ -72547,6 +71863,11 @@ entities: - type: Transform pos: 22.5,-15.5 parent: 31 + - uid: 3157 + components: + - type: Transform + pos: 12.5,20.5 + parent: 31 - uid: 3280 components: - type: Transform @@ -72562,15 +71883,11 @@ entities: - type: Transform pos: 11.5,11.5 parent: 31 - - uid: 3480 - components: - - type: Transform - pos: -17.5,15.5 - parent: 31 - - uid: 3535 + - uid: 3479 components: - type: Transform - pos: 13.5,20.5 + rot: 3.141592653589793 rad + pos: 5.5,28.5 parent: 31 - uid: 3537 components: @@ -72597,6 +71914,17 @@ entities: - type: Transform pos: 59.5,8.5 parent: 31 + - uid: 3743 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -29.5,-28.5 + parent: 31 + - uid: 3802 + components: + - type: Transform + pos: -34.5,-28.5 + parent: 31 - uid: 3833 components: - type: Transform @@ -72617,11 +71945,28 @@ entities: - type: Transform pos: 15.5,22.5 parent: 31 + - uid: 3934 + components: + - type: Transform + pos: -37.5,-33.5 + parent: 31 + - uid: 4047 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 2.5,36.5 + parent: 31 - uid: 4079 components: - type: Transform pos: 45.5,20.5 parent: 31 + - uid: 4107 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 14.5,28.5 + parent: 31 - uid: 4148 components: - type: Transform @@ -72653,6 +71998,23 @@ entities: - type: Transform pos: -3.5,-24.5 parent: 31 + - uid: 4232 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -1.5,9.5 + parent: 31 + - uid: 4237 + components: + - type: Transform + pos: -3.5,9.5 + parent: 31 + - uid: 4241 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -1.5,30.5 + parent: 31 - uid: 4250 components: - type: Transform @@ -72685,6 +72047,11 @@ entities: - type: Transform pos: 51.5,8.5 parent: 31 + - uid: 4275 + components: + - type: Transform + pos: -7.5,37.5 + parent: 31 - uid: 4277 components: - type: Transform @@ -72700,6 +72067,12 @@ entities: - type: Transform pos: 17.5,19.5 parent: 31 + - uid: 4313 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 53.5,-20.5 + parent: 31 - uid: 4330 components: - type: Transform @@ -72716,16 +72089,6 @@ entities: - type: Transform pos: -20.5,10.5 parent: 31 - - uid: 4384 - components: - - type: Transform - pos: 36.5,-18.5 - parent: 31 - - uid: 4385 - components: - - type: Transform - pos: 38.5,-22.5 - parent: 31 - uid: 4395 components: - type: Transform @@ -72807,16 +72170,6 @@ entities: - type: Transform pos: 55.5,12.5 parent: 31 - - uid: 4494 - components: - - type: Transform - pos: 34.5,-19.5 - parent: 31 - - uid: 4499 - components: - - type: Transform - pos: 34.5,-21.5 - parent: 31 - uid: 4502 components: - type: Transform @@ -72825,17 +72178,20 @@ entities: - uid: 4509 components: - type: Transform - pos: 31.5,-21.5 + rot: 3.141592653589793 rad + pos: 56.5,-24.5 parent: 31 - - uid: 4517 + - uid: 4510 components: - type: Transform - pos: 38.5,-26.5 + rot: 3.141592653589793 rad + pos: 55.5,-22.5 parent: 31 - - uid: 4518 + - uid: 4511 components: - type: Transform - pos: 39.5,-26.5 + rot: 3.141592653589793 rad + pos: 56.5,-23.5 parent: 31 - uid: 4523 components: @@ -72883,11 +72239,6 @@ entities: - type: Transform pos: -32.5,-19.5 parent: 31 - - uid: 4573 - components: - - type: Transform - pos: -31.5,-20.5 - parent: 31 - uid: 4574 components: - type: Transform @@ -72898,45 +72249,45 @@ entities: - type: Transform pos: 39.5,-16.5 parent: 31 - - uid: 4580 - components: - - type: Transform - pos: 38.5,-18.5 - parent: 31 - uid: 4581 components: - type: Transform - pos: 37.5,-18.5 + rot: 3.141592653589793 rad + pos: 46.5,-18.5 parent: 31 - uid: 4582 components: - type: Transform pos: 39.5,-18.5 parent: 31 - - uid: 4584 + - uid: 4589 components: - type: Transform - pos: 39.5,-22.5 + pos: 60.5,-6.5 parent: 31 - - uid: 4587 + - uid: 4594 components: - type: Transform - pos: 32.5,-26.5 + rot: 3.141592653589793 rad + pos: 47.5,-18.5 parent: 31 - - uid: 4588 + - uid: 4600 components: - type: Transform - pos: 34.5,-26.5 + rot: 3.141592653589793 rad + pos: 47.5,-17.5 parent: 31 - - uid: 4589 + - uid: 4627 components: - type: Transform - pos: 60.5,-6.5 + rot: 3.141592653589793 rad + pos: 43.5,-26.5 parent: 31 - - uid: 4594 + - uid: 4628 components: - type: Transform - pos: 34.5,-20.5 + rot: 3.141592653589793 rad + pos: 44.5,-28.5 parent: 31 - uid: 4636 components: @@ -72948,40 +72299,64 @@ entities: - type: Transform pos: 39.5,-17.5 parent: 31 - - uid: 4648 + - uid: 4665 components: - type: Transform - pos: 34.5,-22.5 + rot: 3.141592653589793 rad + pos: 43.5,-21.5 parent: 31 - - uid: 4661 + - uid: 4676 components: - type: Transform - pos: 31.5,-22.5 + rot: 1.5707963267948966 rad + pos: 46.5,-20.5 parent: 31 - - uid: 4674 + - uid: 4677 components: - type: Transform - pos: 55.5,-21.5 + rot: 1.5707963267948966 rad + pos: 49.5,-20.5 parent: 31 - - uid: 4675 + - uid: 4678 components: - type: Transform - pos: 52.5,-18.5 + rot: 1.5707963267948966 rad + pos: 52.5,-20.5 parent: 31 - - uid: 4678 + - uid: 4679 components: - type: Transform - pos: 46.5,-18.5 + rot: 1.5707963267948966 rad + pos: 47.5,-20.5 parent: 31 - - uid: 4716 + - uid: 4680 components: - type: Transform - pos: -33.5,-17.5 + rot: 3.141592653589793 rad + pos: 42.5,-25.5 parent: 31 - - uid: 4717 + - uid: 4681 components: - type: Transform - pos: -30.5,-20.5 + rot: 3.141592653589793 rad + pos: 43.5,-22.5 + parent: 31 + - uid: 4683 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-24.5 + parent: 31 + - uid: 4714 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 1.5,-35.5 + parent: 31 + - uid: 4716 + components: + - type: Transform + pos: -33.5,-17.5 parent: 31 - uid: 4724 components: @@ -72989,6 +72364,12 @@ entities: rot: 3.141592653589793 rad pos: 69.5,4.5 parent: 31 + - uid: 4735 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 42.5,-22.5 + parent: 31 - uid: 4740 components: - type: Transform @@ -73046,6 +72427,12 @@ entities: - type: Transform pos: 13.5,-31.5 parent: 31 + - uid: 4836 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,-29.5 + parent: 31 - uid: 4837 components: - type: Transform @@ -73081,6 +72468,27 @@ entities: - type: Transform pos: 33.5,24.5 parent: 31 + - uid: 4859 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,-20.5 + parent: 31 + - uid: 4861 + components: + - type: Transform + pos: 35.5,-19.5 + parent: 31 + - uid: 4862 + components: + - type: Transform + pos: 36.5,-19.5 + parent: 31 + - uid: 4864 + components: + - type: Transform + pos: 37.5,-19.5 + parent: 31 - uid: 4867 components: - type: Transform @@ -73207,11 +72615,6 @@ entities: - type: Transform pos: 14.5,26.5 parent: 31 - - uid: 5061 - components: - - type: Transform - pos: 13.5,27.5 - parent: 31 - uid: 5062 components: - type: Transform @@ -73343,6 +72746,12 @@ entities: - type: Transform pos: 14.5,-30.5 parent: 31 + - uid: 5291 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,7.5 + parent: 31 - uid: 5294 components: - type: Transform @@ -73393,6 +72802,58 @@ entities: - type: Transform pos: 41.5,24.5 parent: 31 + - uid: 5527 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -33.5,6.5 + parent: 31 + - uid: 5532 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -32.5,6.5 + parent: 31 + - uid: 5533 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,6.5 + parent: 31 + - uid: 5534 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,6.5 + parent: 31 + - uid: 5535 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,7.5 + parent: 31 + - uid: 5536 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -30.5,8.5 + parent: 31 + - uid: 5538 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -31.5,8.5 + parent: 31 + - uid: 5539 + components: + - type: Transform + pos: -27.5,-8.5 + parent: 31 + - uid: 5552 + components: + - type: Transform + pos: -27.5,-10.5 + parent: 31 - uid: 5610 components: - type: Transform @@ -73418,15 +72879,21 @@ entities: - type: Transform pos: -33.5,-20.5 parent: 31 + - uid: 5772 + components: + - type: Transform + pos: -32.5,-30.5 + parent: 31 - uid: 5784 components: - type: Transform pos: 56.5,12.5 parent: 31 - - uid: 5882 + - uid: 5871 components: - type: Transform - pos: -53.5,-11.5 + rot: 3.141592653589793 rad + pos: -33.5,8.5 parent: 31 - uid: 5894 components: @@ -73439,12 +72906,34 @@ entities: - type: Transform pos: 19.5,18.5 parent: 31 + - uid: 5976 + components: + - type: Transform + pos: -29.5,-8.5 + parent: 31 - uid: 5983 components: - type: Transform rot: 3.141592653589793 rad pos: -44.5,-8.5 parent: 31 + - uid: 5995 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,-20.5 + parent: 31 + - uid: 6007 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 36.5,4.5 + parent: 31 + - uid: 6082 + components: + - type: Transform + pos: -28.5,-8.5 + parent: 31 - uid: 6181 components: - type: Transform @@ -73662,6 +73151,11 @@ entities: - type: Transform pos: 33.5,23.5 parent: 31 + - uid: 6505 + components: + - type: Transform + pos: -54.5,-12.5 + parent: 31 - uid: 6537 components: - type: Transform @@ -73687,6 +73181,12 @@ entities: - type: Transform pos: 58.5,-10.5 parent: 31 + - uid: 6599 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 53.5,-26.5 + parent: 31 - uid: 6601 components: - type: Transform @@ -73722,6 +73222,12 @@ entities: - type: Transform pos: 41.5,10.5 parent: 31 + - uid: 6708 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,33.5 + parent: 31 - uid: 6751 components: - type: Transform @@ -73779,11 +73285,6 @@ entities: - type: Transform pos: 30.5,15.5 parent: 31 - - uid: 6883 - components: - - type: Transform - pos: -4.5,30.5 - parent: 31 - uid: 6889 components: - type: Transform @@ -73795,6 +73296,12 @@ entities: rot: 1.5707963267948966 rad pos: 47.5,20.5 parent: 31 + - uid: 6904 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,-23.5 + parent: 31 - uid: 6905 components: - type: Transform @@ -73842,40 +73349,77 @@ entities: - type: Transform pos: 75.5,11.5 parent: 31 - - uid: 6983 + - uid: 6997 components: - type: Transform - pos: 43.5,-22.5 + rot: 1.5707963267948966 rad + pos: 53.5,-28.5 parent: 31 - - uid: 6984 + - uid: 6998 components: - type: Transform - pos: 43.5,-26.5 + rot: 1.5707963267948966 rad + pos: 53.5,-27.5 parent: 31 - - uid: 6985 + - uid: 7005 components: - type: Transform - pos: 43.5,-21.5 + rot: 3.141592653589793 rad + pos: 51.5,-31.5 parent: 31 - - uid: 6986 + - uid: 7006 components: - type: Transform - pos: 43.5,-27.5 + rot: 3.141592653589793 rad + pos: 56.5,-26.5 parent: 31 - - uid: 6987 + - uid: 7007 components: - type: Transform - pos: 46.5,-30.5 + rot: 3.141592653589793 rad + pos: 47.5,-31.5 parent: 31 - - uid: 6990 + - uid: 7008 components: - type: Transform - pos: 52.5,-30.5 + rot: 3.141592653589793 rad + pos: 50.5,-23.5 parent: 31 - - uid: 6992 + - uid: 7014 components: - type: Transform - pos: 55.5,-27.5 + rot: 3.141592653589793 rad + pos: 52.5,-29.5 + parent: 31 + - uid: 7018 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,-28.5 + parent: 31 + - uid: 7020 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,-20.5 + parent: 31 + - uid: 7021 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,-21.5 + parent: 31 + - uid: 7022 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,-28.5 + parent: 31 + - uid: 7024 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,21.5 parent: 31 - uid: 7034 components: @@ -73900,7 +73444,8 @@ entities: - uid: 7049 components: - type: Transform - pos: 35.5,-18.5 + rot: 3.141592653589793 rad + pos: 45.5,-25.5 parent: 31 - uid: 7053 components: @@ -73913,20 +73458,16 @@ entities: - type: Transform pos: 30.5,17.5 parent: 31 - - uid: 7060 - components: - - type: Transform - pos: 31.5,-26.5 - parent: 31 - - uid: 7061 + - uid: 7062 components: - type: Transform - pos: 33.5,-26.5 + pos: 31.5,-20.5 parent: 31 - - uid: 7062 + - uid: 7069 components: - type: Transform - pos: 31.5,-20.5 + rot: 1.5707963267948966 rad + pos: 45.5,-27.5 parent: 31 - uid: 7081 components: @@ -73943,6 +73484,12 @@ entities: - type: Transform pos: 35.5,24.5 parent: 31 + - uid: 7087 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,-28.5 + parent: 31 - uid: 7094 components: - type: Transform @@ -73958,6 +73505,18 @@ entities: - type: Transform pos: -7.5,-42.5 parent: 31 + - uid: 7102 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,-26.5 + parent: 31 + - uid: 7109 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 1.5,36.5 + parent: 31 - uid: 7157 components: - type: Transform @@ -74002,21 +73561,45 @@ entities: pos: 76.5,10.5 parent: 31 - uid: 7190 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,32.5 + parent: 31 + - uid: 7223 + components: + - type: Transform + pos: 28.5,2.5 + parent: 31 + - uid: 7235 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 45.5,-22.5 + parent: 31 + - uid: 7238 components: - type: Transform rot: 1.5707963267948966 rad - pos: 75.5,12.5 + pos: 51.5,-28.5 parent: 31 - - uid: 7191 + - uid: 7240 components: - type: Transform rot: 1.5707963267948966 rad - pos: 76.5,12.5 + pos: 47.5,-28.5 parent: 31 - - uid: 7223 + - uid: 7315 components: - type: Transform - pos: 28.5,2.5 + rot: 3.141592653589793 rad + pos: 49.5,-31.5 + parent: 31 + - uid: 7317 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 56.5,-22.5 parent: 31 - uid: 7333 components: @@ -74028,6 +73611,18 @@ entities: - type: Transform pos: -20.5,9.5 parent: 31 + - uid: 7365 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 52.5,-30.5 + parent: 31 + - uid: 7374 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 55.5,-27.5 + parent: 31 - uid: 7441 components: - type: Transform @@ -74194,46 +73789,16 @@ entities: - type: Transform pos: -39.5,13.5 parent: 31 - - uid: 7685 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -3.5,29.5 - parent: 31 - uid: 7698 components: - type: Transform pos: 48.5,-12.5 parent: 31 - - uid: 7699 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -3.5,30.5 - parent: 31 - - uid: 7701 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -19.5,-28.5 - parent: 31 - uid: 7712 components: - type: Transform pos: -54.5,-11.5 parent: 31 - - uid: 7724 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -25.5,-28.5 - parent: 31 - - uid: 7725 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -26.5,-27.5 - parent: 31 - uid: 7751 components: - type: Transform @@ -74269,6 +73834,12 @@ entities: - type: Transform pos: 33.5,20.5 parent: 31 + - uid: 7859 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,27.5 + parent: 31 - uid: 7942 components: - type: Transform @@ -74396,6 +73967,24 @@ entities: - type: Transform pos: -30.5,18.5 parent: 31 + - uid: 8233 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 50.5,-17.5 + parent: 31 + - uid: 8247 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,-23.5 + parent: 31 + - uid: 8250 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 33.5,-19.5 + parent: 31 - uid: 8287 components: - type: Transform @@ -74406,6 +73995,12 @@ entities: - type: Transform pos: -51.5,-8.5 parent: 31 + - uid: 8290 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,20.5 + parent: 31 - uid: 8311 components: - type: Transform @@ -74417,6 +74012,36 @@ entities: rot: 1.5707963267948966 rad pos: 69.5,3.5 parent: 31 + - uid: 8325 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,-29.5 + parent: 31 + - uid: 8326 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 55.5,-26.5 + parent: 31 + - uid: 8332 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,-31.5 + parent: 31 + - uid: 8333 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 50.5,-31.5 + parent: 31 + - uid: 8334 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,-29.5 + parent: 31 - uid: 8368 components: - type: Transform @@ -74427,6 +74052,18 @@ entities: - type: Transform pos: -2.5,-23.5 parent: 31 + - uid: 8384 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 56.5,-25.5 + parent: 31 + - uid: 8391 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,-27.5 + parent: 31 - uid: 8400 components: - type: Transform @@ -74449,11 +74086,6 @@ entities: - type: Transform pos: -21.5,-30.5 parent: 31 - - uid: 8466 - components: - - type: Transform - pos: -21.5,-28.5 - parent: 31 - uid: 8489 components: - type: Transform @@ -74465,33 +74097,11 @@ entities: - type: Transform pos: 64.5,5.5 parent: 31 - - uid: 8511 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -26.5,-28.5 - parent: 31 - - uid: 8512 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -24.5,-28.5 - parent: 31 - uid: 8518 components: - type: Transform pos: -31.5,-27.5 parent: 31 - - uid: 8519 - components: - - type: Transform - pos: -31.5,-25.5 - parent: 31 - - uid: 8522 - components: - - type: Transform - pos: -30.5,-27.5 - parent: 31 - uid: 8528 components: - type: Transform @@ -74507,11 +74117,6 @@ entities: - type: Transform pos: -20.5,-33.5 parent: 31 - - uid: 8532 - components: - - type: Transform - pos: -37.5,-29.5 - parent: 31 - uid: 8534 components: - type: Transform @@ -74532,11 +74137,6 @@ entities: - type: Transform pos: -30.5,-33.5 parent: 31 - - uid: 8538 - components: - - type: Transform - pos: -34.5,-32.5 - parent: 31 - uid: 8539 components: - type: Transform @@ -74617,11 +74217,6 @@ entities: - type: Transform pos: -37.5,-22.5 parent: 31 - - uid: 8561 - components: - - type: Transform - pos: -32.5,-25.5 - parent: 31 - uid: 8562 components: - type: Transform @@ -74632,11 +74227,46 @@ entities: - type: Transform pos: -33.5,-22.5 parent: 31 - - uid: 8753 + - uid: 8615 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-23.5 + parent: 31 + - uid: 8695 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 51.5,-30.5 + parent: 31 + - uid: 8701 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 55.5,-21.5 + parent: 31 + - uid: 8741 components: - type: Transform rot: -1.5707963267948966 rad - pos: -27.5,-27.5 + pos: 14.5,20.5 + parent: 31 + - uid: 8743 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 45.5,-19.5 + parent: 31 + - uid: 8744 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,-20.5 + parent: 31 + - uid: 8745 + components: + - type: Transform + pos: 34.5,-19.5 parent: 31 - uid: 8756 components: @@ -74658,31 +74288,159 @@ entities: - type: Transform pos: -15.5,6.5 parent: 31 + - uid: 8775 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,-21.5 + parent: 31 + - uid: 8785 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,-21.5 + parent: 31 + - uid: 8786 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,-19.5 + parent: 31 + - uid: 8799 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 5.5,32.5 + parent: 31 + - uid: 8800 + components: + - type: Transform + pos: 5.5,31.5 + parent: 31 + - uid: 8805 + components: + - type: Transform + pos: -3.5,6.5 + parent: 31 - uid: 8806 components: - type: Transform pos: -38.5,20.5 parent: 31 + - uid: 8811 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 52.5,-19.5 + parent: 31 + - uid: 8812 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 54.5,-19.5 + parent: 31 + - uid: 8814 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -4.5,36.5 + parent: 31 + - uid: 8815 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,32.5 + parent: 31 + - uid: 8818 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,32.5 + parent: 31 + - uid: 8820 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,37.5 + parent: 31 + - uid: 8830 + components: + - type: Transform + pos: 38.5,-19.5 + parent: 31 + - uid: 8831 + components: + - type: Transform + pos: -15.5,15.5 + parent: 31 + - uid: 8839 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 53.5,-19.5 + parent: 31 - uid: 8844 components: - type: Transform pos: -15.5,16.5 parent: 31 + - uid: 8858 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 51.5,-18.5 + parent: 31 + - uid: 8863 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,37.5 + parent: 31 + - uid: 8917 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 46.5,-19.5 + parent: 31 + - uid: 8919 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 51.5,-17.5 + parent: 31 + - uid: 8920 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 52.5,-18.5 + parent: 31 - uid: 8936 components: - type: Transform pos: -12.5,-31.5 parent: 31 + - uid: 8951 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-9.5 + parent: 31 + - uid: 8995 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 32.5,-20.5 + parent: 31 - uid: 9005 components: - type: Transform pos: -12.5,-33.5 parent: 31 - - uid: 9008 + - uid: 9022 components: - type: Transform rot: -1.5707963267948966 rad - pos: -29.5,-25.5 + pos: -31.5,-10.5 parent: 31 - uid: 9106 components: @@ -74755,35 +74513,17 @@ entities: rot: -1.5707963267948966 rad pos: -3.5,-30.5 parent: 31 - - uid: 9254 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -27.5,-26.5 - parent: 31 - uid: 9258 components: - type: Transform rot: -1.5707963267948966 rad pos: -3.5,-31.5 parent: 31 - - uid: 9270 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -22.5,-28.5 - parent: 31 - - uid: 9271 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -23.5,-28.5 - parent: 31 - uid: 9272 components: - type: Transform rot: -1.5707963267948966 rad - pos: -27.5,-25.5 + pos: -6.5,26.5 parent: 31 - uid: 9274 components: @@ -74901,6 +74641,12 @@ entities: - type: Transform pos: 3.5,-37.5 parent: 31 + - uid: 9323 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,26.5 + parent: 31 - uid: 9327 components: - type: Transform @@ -75012,6 +74758,11 @@ entities: - type: Transform pos: -24.5,-30.5 parent: 31 + - uid: 9447 + components: + - type: Transform + pos: -0.5,30.5 + parent: 31 - uid: 9450 components: - type: Transform @@ -75093,16 +74844,15 @@ entities: - type: Transform pos: 61.5,9.5 parent: 31 - - uid: 9542 + - uid: 9545 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 74.5,12.5 + pos: 65.5,11.5 parent: 31 - - uid: 9545 + - uid: 9555 components: - type: Transform - pos: 65.5,11.5 + pos: -4.5,33.5 parent: 31 - uid: 9564 components: @@ -75110,6 +74860,11 @@ entities: rot: 3.141592653589793 rad pos: 65.5,0.5 parent: 31 + - uid: 9572 + components: + - type: Transform + pos: -1.5,31.5 + parent: 31 - uid: 9584 components: - type: Transform @@ -75228,6 +74983,11 @@ entities: - type: Transform pos: -39.5,20.5 parent: 31 + - uid: 9792 + components: + - type: Transform + pos: -18.5,-17.5 + parent: 31 - uid: 9803 components: - type: Transform @@ -75275,6 +75035,18 @@ entities: - type: Transform pos: 24.5,-15.5 parent: 31 + - uid: 10035 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -31.5,-8.5 + parent: 31 + - uid: 10037 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -28.5,-10.5 + parent: 31 - uid: 10081 components: - type: Transform @@ -75311,12 +75083,6 @@ entities: rot: -1.5707963267948966 rad pos: 24.5,28.5 parent: 31 - - uid: 10115 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 69.5,-5.5 - parent: 31 - uid: 10116 components: - type: Transform @@ -75335,12 +75101,6 @@ entities: rot: 3.141592653589793 rad pos: 41.5,-14.5 parent: 31 - - uid: 10119 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 70.5,-4.5 - parent: 31 - uid: 10128 components: - type: Transform @@ -75407,6 +75167,12 @@ entities: - type: Transform pos: 20.5,-8.5 parent: 31 + - uid: 10389 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 53.5,-25.5 + parent: 31 - uid: 10411 components: - type: Transform @@ -75456,6 +75222,12 @@ entities: - type: Transform pos: -0.5,-22.5 parent: 31 + - uid: 10804 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 71.5,-4.5 + parent: 31 - uid: 10986 components: - type: Transform @@ -75473,31 +75245,60 @@ entities: rot: 1.5707963267948966 rad pos: 47.5,21.5 parent: 31 + - uid: 11051 + components: + - type: Transform + pos: -16.5,15.5 + parent: 31 - uid: 11061 components: - type: Transform rot: 3.141592653589793 rad pos: 54.5,18.5 parent: 31 - - uid: 11114 + - uid: 11082 components: - type: Transform - pos: -8.5,30.5 + rot: 3.141592653589793 rad + pos: 72.5,-3.5 parent: 31 - - uid: 11115 + - uid: 11093 components: - type: Transform - pos: -8.5,29.5 + rot: 3.141592653589793 rad + pos: 72.5,-4.5 + parent: 31 + - uid: 11111 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -7.5,31.5 parent: 31 - uid: 11116 components: - type: Transform - pos: -8.5,28.5 + pos: 5.5,30.5 parent: 31 - - uid: 11117 + - uid: 11123 components: - type: Transform - pos: -8.5,27.5 + pos: -26.5,-17.5 + parent: 31 + - uid: 11124 + components: + - type: Transform + pos: -29.5,-20.5 + parent: 31 + - uid: 11132 + components: + - type: Transform + pos: 5.5,29.5 + parent: 31 + - uid: 11141 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,26.5 parent: 31 - uid: 11142 components: @@ -75509,17 +75310,15 @@ entities: - type: Transform pos: -0.5,-18.5 parent: 31 - - uid: 11148 + - uid: 11146 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 62.5,-5.5 + pos: -5.5,-36.5 parent: 31 - - uid: 11150 + - uid: 11148 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 70.5,-3.5 + pos: -3.5,-33.5 parent: 31 - uid: 11151 components: @@ -75533,12 +75332,6 @@ entities: rot: 1.5707963267948966 rad pos: 69.5,-3.5 parent: 31 - - uid: 11153 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 71.5,-3.5 - parent: 31 - uid: 11154 components: - type: Transform @@ -75551,35 +75344,11 @@ entities: rot: 1.5707963267948966 rad pos: 73.5,-1.5 parent: 31 - - uid: 11157 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 77.5,1.5 - parent: 31 - - uid: 11158 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 75.5,-0.5 - parent: 31 - - uid: 11160 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 74.5,-1.5 - parent: 31 - uid: 11165 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 78.5,2.5 - parent: 31 - - uid: 11169 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 65.5,-5.5 + rot: 3.141592653589793 rad + pos: -30.5,-28.5 parent: 31 - uid: 11170 components: @@ -75611,53 +75380,23 @@ entities: rot: 1.5707963267948966 rad pos: 75.5,0.5 parent: 31 - - uid: 11178 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 76.5,0.5 - parent: 31 - uid: 11180 components: - type: Transform rot: 1.5707963267948966 rad pos: 65.5,-4.5 parent: 31 - - uid: 11181 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 72.5,-3.5 - parent: 31 - uid: 11182 components: - type: Transform rot: 1.5707963267948966 rad pos: 69.5,-2.5 parent: 31 - - uid: 11183 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 71.5,-4.5 - parent: 31 - - uid: 11184 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 73.5,-2.5 - parent: 31 - uid: 11185 components: - type: Transform - rot: 1.5707963267948966 rad - pos: 66.5,-5.5 - parent: 31 - - uid: 11186 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 78.5,3.5 + rot: 3.141592653589793 rad + pos: -29.5,-29.5 parent: 31 - uid: 11187 components: @@ -75718,12 +75457,6 @@ entities: rot: 1.5707963267948966 rad pos: 74.5,9.5 parent: 31 - - uid: 11813 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 77.5,10.5 - parent: 31 - uid: 11814 components: - type: Transform @@ -75772,95 +75505,18 @@ entities: rot: 1.5707963267948966 rad pos: 75.5,1.5 parent: 31 - - uid: 11822 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 74.5,1.5 - parent: 31 - - uid: 11823 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 75.5,2.5 - parent: 31 - - uid: 11824 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 73.5,0.5 - parent: 31 - uid: 11825 components: - type: Transform rot: 1.5707963267948966 rad pos: 73.5,-0.5 parent: 31 - - uid: 11826 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 72.5,-0.5 - parent: 31 - uid: 11827 components: - type: Transform rot: 1.5707963267948966 rad pos: 72.5,-1.5 parent: 31 - - uid: 11828 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 71.5,-1.5 - parent: 31 - - uid: 11829 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 71.5,-2.5 - parent: 31 - - uid: 11830 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 70.5,-2.5 - parent: 31 - - uid: 11842 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 71.5,12.5 - parent: 31 - - uid: 11843 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 72.5,12.5 - parent: 31 - - uid: 11844 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 73.5,12.5 - parent: 31 - - uid: 11846 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 78.5,9.5 - parent: 31 - - uid: 11847 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: 77.5,11.5 - parent: 31 - - uid: 12097 - components: - - type: Transform - pos: 59.5,-1.5 - parent: 31 - uid: 12323 components: - type: Transform @@ -75912,6 +75568,11 @@ entities: - type: Transform pos: 15.5,-18.5 parent: 31 + - uid: 54 + components: + - type: Transform + pos: -28.5,1.5 + parent: 31 - uid: 112 components: - type: Transform @@ -75948,21 +75609,11 @@ entities: rot: 3.141592653589793 rad pos: -31.5,1.5 parent: 31 - - uid: 217 - components: - - type: Transform - pos: 14.5,-18.5 - parent: 31 - uid: 251 components: - type: Transform pos: -33.5,16.5 parent: 31 - - uid: 268 - components: - - type: Transform - pos: -13.5,-13.5 - parent: 31 - uid: 343 components: - type: Transform @@ -75975,11 +75626,6 @@ entities: rot: -1.5707963267948966 rad pos: -27.5,-12.5 parent: 31 - - uid: 404 - components: - - type: Transform - pos: -26.5,-7.5 - parent: 31 - uid: 416 components: - type: Transform @@ -75995,35 +75641,39 @@ entities: - type: Transform pos: 19.5,-23.5 parent: 31 - - uid: 477 + - uid: 484 components: - type: Transform - pos: -20.5,-6.5 + pos: 20.5,-23.5 parent: 31 - - uid: 484 + - uid: 492 components: - type: Transform - pos: 20.5,-23.5 + rot: 3.141592653589793 rad + pos: -28.5,2.5 parent: 31 - - uid: 527 + - uid: 502 components: - type: Transform - pos: -14.5,-3.5 + rot: 1.5707963267948966 rad + pos: -7.5,-10.5 parent: 31 - - uid: 528 + - uid: 527 components: - type: Transform - pos: -21.5,-1.5 + rot: -1.5707963267948966 rad + pos: -35.5,-2.5 parent: 31 - uid: 551 components: - type: Transform pos: 8.5,-6.5 parent: 31 - - uid: 582 + - uid: 584 components: - type: Transform - pos: -29.5,-3.5 + rot: 3.141592653589793 rad + pos: -15.5,-5.5 parent: 31 - uid: 587 components: @@ -76102,15 +75752,15 @@ entities: rot: 1.5707963267948966 rad pos: -24.5,-24.5 parent: 31 - - uid: 777 + - uid: 759 components: - type: Transform - pos: -26.5,-14.5 + pos: -19.5,16.5 parent: 31 - - uid: 784 + - uid: 777 components: - type: Transform - pos: -5.5,-13.5 + pos: -26.5,-14.5 parent: 31 - uid: 796 components: @@ -76132,11 +75782,6 @@ entities: - type: Transform pos: -13.5,-6.5 parent: 31 - - uid: 906 - components: - - type: Transform - pos: -14.5,-5.5 - parent: 31 - uid: 907 components: - type: Transform @@ -76197,21 +75842,6 @@ entities: - type: Transform pos: -15.5,2.5 parent: 31 - - uid: 929 - components: - - type: Transform - pos: -20.5,-10.5 - parent: 31 - - uid: 930 - components: - - type: Transform - pos: -20.5,-9.5 - parent: 31 - - uid: 935 - components: - - type: Transform - pos: -16.5,-6.5 - parent: 31 - uid: 960 components: - type: Transform @@ -76237,6 +75867,26 @@ entities: - type: Transform pos: -14.5,-23.5 parent: 31 + - uid: 1050 + components: + - type: Transform + pos: -22.5,-3.5 + parent: 31 + - uid: 1060 + components: + - type: Transform + pos: -28.5,-1.5 + parent: 31 + - uid: 1065 + components: + - type: Transform + pos: -22.5,2.5 + parent: 31 + - uid: 1069 + components: + - type: Transform + pos: -23.5,0.5 + parent: 31 - uid: 1088 components: - type: Transform @@ -76247,11 +75897,6 @@ entities: - type: Transform pos: -34.5,-10.5 parent: 31 - - uid: 1115 - components: - - type: Transform - pos: -21.5,15.5 - parent: 31 - uid: 1124 components: - type: Transform @@ -76262,10 +75907,20 @@ entities: - type: Transform pos: -34.5,-8.5 parent: 31 - - uid: 1170 + - uid: 1189 components: - type: Transform - pos: -23.5,18.5 + pos: -24.5,-2.5 + parent: 31 + - uid: 1209 + components: + - type: Transform + pos: -23.5,-0.5 + parent: 31 + - uid: 1218 + components: + - type: Transform + pos: -23.5,-2.5 parent: 31 - uid: 1245 components: @@ -76292,6 +75947,11 @@ entities: - type: Transform pos: -34.5,-0.5 parent: 31 + - uid: 1293 + components: + - type: Transform + pos: -23.5,-1.5 + parent: 31 - uid: 1294 components: - type: Transform @@ -76312,10 +75972,15 @@ entities: - type: Transform pos: -34.5,-4.5 parent: 31 + - uid: 1314 + components: + - type: Transform + pos: -23.5,2.5 + parent: 31 - uid: 1318 components: - type: Transform - pos: -34.5,-5.5 + pos: -23.5,1.5 parent: 31 - uid: 1321 components: @@ -76327,6 +75992,11 @@ entities: - type: Transform pos: -31.5,-1.5 parent: 31 + - uid: 1338 + components: + - type: Transform + pos: -18.5,13.5 + parent: 31 - uid: 1339 components: - type: Transform @@ -76357,35 +76027,26 @@ entities: - type: Transform pos: 10.5,-21.5 parent: 31 - - uid: 1363 - components: - - type: Transform - pos: -27.5,2.5 - parent: 31 - - uid: 1364 - components: - - type: Transform - pos: -26.5,2.5 - parent: 31 - uid: 1365 components: - type: Transform pos: -1.5,-9.5 parent: 31 - - uid: 1378 + - uid: 1409 components: - type: Transform - pos: -26.5,1.5 + pos: -3.5,-10.5 parent: 31 - uid: 1420 components: - type: Transform pos: 12.5,-18.5 parent: 31 - - uid: 1426 + - uid: 1437 components: - type: Transform - pos: -25.5,1.5 + rot: 1.5707963267948966 rad + pos: -7.5,-11.5 parent: 31 - uid: 1441 components: @@ -76414,11 +76075,6 @@ entities: - type: Transform pos: -1.5,-7.5 parent: 31 - - uid: 1579 - components: - - type: Transform - pos: -22.5,1.5 - parent: 31 - uid: 1587 components: - type: Transform @@ -76429,11 +76085,6 @@ entities: - type: Transform pos: -26.5,15.5 parent: 31 - - uid: 1606 - components: - - type: Transform - pos: -21.5,-0.5 - parent: 31 - uid: 1612 components: - type: Transform @@ -76494,36 +76145,11 @@ entities: - type: Transform pos: -19.5,25.5 parent: 31 - - uid: 1669 - components: - - type: Transform - pos: -20.5,15.5 - parent: 31 - uid: 1670 components: - type: Transform pos: -19.5,24.5 parent: 31 - - uid: 1671 - components: - - type: Transform - pos: -22.5,15.5 - parent: 31 - - uid: 1672 - components: - - type: Transform - pos: -23.5,15.5 - parent: 31 - - uid: 1673 - components: - - type: Transform - pos: -24.5,15.5 - parent: 31 - - uid: 1674 - components: - - type: Transform - pos: -20.5,17.5 - parent: 31 - uid: 1677 components: - type: Transform @@ -76584,11 +76210,6 @@ entities: - type: Transform pos: -21.5,2.5 parent: 31 - - uid: 1823 - components: - - type: Transform - pos: -21.5,0.5 - parent: 31 - uid: 1825 components: - type: Transform @@ -76605,6 +76226,11 @@ entities: rot: 1.5707963267948966 rad pos: 11.5,26.5 parent: 31 + - uid: 1998 + components: + - type: Transform + pos: -21.5,13.5 + parent: 31 - uid: 2008 components: - type: Transform @@ -76655,11 +76281,6 @@ entities: - type: Transform pos: 13.5,-25.5 parent: 31 - - uid: 2028 - components: - - type: Transform - pos: -25.5,-11.5 - parent: 31 - uid: 2034 components: - type: Transform @@ -76680,36 +76301,6 @@ entities: - type: Transform pos: -33.5,10.5 parent: 31 - - uid: 2058 - components: - - type: Transform - pos: -21.5,1.5 - parent: 31 - - uid: 2059 - components: - - type: Transform - pos: -33.5,7.5 - parent: 31 - - uid: 2060 - components: - - type: Transform - pos: -33.5,6.5 - parent: 31 - - uid: 2061 - components: - - type: Transform - pos: -32.5,6.5 - parent: 31 - - uid: 2062 - components: - - type: Transform - pos: -31.5,6.5 - parent: 31 - - uid: 2063 - components: - - type: Transform - pos: -30.5,6.5 - parent: 31 - uid: 2067 components: - type: Transform @@ -76720,16 +76311,6 @@ entities: - type: Transform pos: -26.5,7.5 parent: 31 - - uid: 2070 - components: - - type: Transform - pos: -30.5,7.5 - parent: 31 - - uid: 2071 - components: - - type: Transform - pos: -30.5,8.5 - parent: 31 - uid: 2072 components: - type: Transform @@ -76915,11 +76496,27 @@ entities: - type: Transform pos: 20.5,-4.5 parent: 31 + - uid: 2189 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -24.5,17.5 + parent: 31 - uid: 2214 components: - type: Transform pos: 6.5,-6.5 parent: 31 + - uid: 2220 + components: + - type: Transform + pos: -28.5,-5.5 + parent: 31 + - uid: 2221 + components: + - type: Transform + pos: -27.5,-5.5 + parent: 31 - uid: 2224 components: - type: Transform @@ -77012,11 +76609,6 @@ entities: - type: Transform pos: -21.5,-11.5 parent: 31 - - uid: 2268 - components: - - type: Transform - pos: -26.5,-10.5 - parent: 31 - uid: 2270 components: - type: Transform @@ -77027,26 +76619,6 @@ entities: - type: Transform pos: -3.5,-11.5 parent: 31 - - uid: 2273 - components: - - type: Transform - pos: -5.5,-11.5 - parent: 31 - - uid: 2274 - components: - - type: Transform - pos: -6.5,-11.5 - parent: 31 - - uid: 2275 - components: - - type: Transform - pos: -6.5,-12.5 - parent: 31 - - uid: 2285 - components: - - type: Transform - pos: -26.5,-17.5 - parent: 31 - uid: 2289 components: - type: Transform @@ -77059,21 +76631,11 @@ entities: rot: 3.141592653589793 rad pos: -29.5,-17.5 parent: 31 - - uid: 2320 - components: - - type: Transform - pos: -8.5,-13.5 - parent: 31 - uid: 2327 components: - type: Transform pos: 23.5,14.5 parent: 31 - - uid: 2346 - components: - - type: Transform - pos: -18.5,-17.5 - parent: 31 - uid: 2347 components: - type: Transform @@ -77111,11 +76673,6 @@ entities: - type: Transform pos: -14.5,-13.5 parent: 31 - - uid: 2368 - components: - - type: Transform - pos: -11.5,-13.5 - parent: 31 - uid: 2369 components: - type: Transform @@ -77162,16 +76719,6 @@ entities: - type: Transform pos: -10.5,-8.5 parent: 31 - - uid: 2379 - components: - - type: Transform - pos: -16.5,-8.5 - parent: 31 - - uid: 2380 - components: - - type: Transform - pos: -16.5,-9.5 - parent: 31 - uid: 2381 components: - type: Transform @@ -77243,37 +76790,11 @@ entities: rot: 3.141592653589793 rad pos: -11.5,-23.5 parent: 31 - - uid: 2430 - components: - - type: Transform - pos: -26.5,-9.5 - parent: 31 - - uid: 2431 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -31.5,8.5 - parent: 31 - - uid: 2435 - components: - - type: Transform - pos: -31.5,-9.5 - parent: 31 - - uid: 2436 - components: - - type: Transform - pos: -30.5,-3.5 - parent: 31 - uid: 2441 components: - type: Transform pos: -34.5,-7.5 parent: 31 - - uid: 2442 - components: - - type: Transform - pos: -31.5,-5.5 - parent: 31 - uid: 2443 components: - type: Transform @@ -77284,6 +76805,12 @@ entities: - type: Transform pos: -31.5,-3.5 parent: 31 + - uid: 2446 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-0.5 + parent: 31 - uid: 2449 components: - type: Transform @@ -77306,56 +76833,11 @@ entities: - type: Transform pos: 13.5,13.5 parent: 31 - - uid: 2461 - components: - - type: Transform - pos: -17.5,-6.5 - parent: 31 - uid: 2463 components: - type: Transform pos: 14.5,13.5 parent: 31 - - uid: 2466 - components: - - type: Transform - pos: -17.5,-4.5 - parent: 31 - - uid: 2467 - components: - - type: Transform - pos: -17.5,-5.5 - parent: 31 - - uid: 2468 - components: - - type: Transform - pos: -17.5,-3.5 - parent: 31 - - uid: 2469 - components: - - type: Transform - pos: -18.5,-3.5 - parent: 31 - - uid: 2470 - components: - - type: Transform - pos: -19.5,-3.5 - parent: 31 - - uid: 2471 - components: - - type: Transform - pos: -20.5,-3.5 - parent: 31 - - uid: 2472 - components: - - type: Transform - pos: -21.5,-3.5 - parent: 31 - - uid: 2473 - components: - - type: Transform - pos: -21.5,-2.5 - parent: 31 - uid: 2503 components: - type: Transform @@ -77392,22 +76874,48 @@ entities: - type: Transform pos: 13.5,-12.5 parent: 31 - - uid: 3376 + - uid: 2772 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -29.5,2.5 + parent: 31 + - uid: 2777 + components: + - type: Transform + pos: -27.5,-11.5 + parent: 31 + - uid: 2944 components: - type: Transform - pos: -22.5,18.5 + pos: -29.5,-3.5 parent: 31 - uid: 3405 components: - type: Transform pos: -1.5,-8.5 parent: 31 + - uid: 3408 + components: + - type: Transform + pos: -30.5,-3.5 + parent: 31 + - uid: 3413 + components: + - type: Transform + pos: -14.5,-9.5 + parent: 31 - uid: 3416 components: - type: Transform rot: 1.5707963267948966 rad pos: 17.5,-19.5 parent: 31 + - uid: 3482 + components: + - type: Transform + pos: -22.5,13.5 + parent: 31 - uid: 3592 components: - type: Transform @@ -77419,11 +76927,26 @@ entities: rot: -1.5707963267948966 rad pos: -12.5,-23.5 parent: 31 + - uid: 3617 + components: + - type: Transform + pos: -28.5,-0.5 + parent: 31 - uid: 3623 components: - type: Transform pos: 9.5,24.5 parent: 31 + - uid: 3768 + components: + - type: Transform + pos: -34.5,-6.5 + parent: 31 + - uid: 3771 + components: + - type: Transform + pos: -23.5,-3.5 + parent: 31 - uid: 3875 components: - type: Transform @@ -77435,11 +76958,6 @@ entities: - type: Transform pos: -9.5,-8.5 parent: 31 - - uid: 3916 - components: - - type: Transform - pos: -13.5,-7.5 - parent: 31 - uid: 3925 components: - type: Transform @@ -77497,98 +77015,40 @@ entities: - type: Transform pos: -8.5,-8.5 parent: 31 - - uid: 4064 - components: - - type: Transform - pos: -26.5,-0.5 - parent: 31 - - uid: 4065 - components: - - type: Transform - pos: -27.5,-0.5 - parent: 31 - - uid: 4066 + - uid: 4088 components: - type: Transform - pos: -28.5,-0.5 + pos: -20.5,-3.5 parent: 31 - - uid: 4067 + - uid: 4091 components: - type: Transform - pos: -29.5,-0.5 + rot: -1.5707963267948966 rad + pos: -12.5,-22.5 parent: 31 - - uid: 4068 + - uid: 4094 components: - type: Transform - pos: -30.5,-0.5 + rot: -1.5707963267948966 rad + pos: -12.5,-21.5 parent: 31 - - uid: 4069 + - uid: 4103 components: - type: Transform - pos: -26.5,-3.5 + rot: 3.141592653589793 rad + pos: -24.5,2.5 parent: 31 - - uid: 4070 + - uid: 4105 components: - type: Transform - pos: -27.5,-3.5 + pos: -21.5,-3.5 parent: 31 - - uid: 4071 + - uid: 4108 components: - type: Transform + rot: 3.141592653589793 rad pos: -28.5,-3.5 parent: 31 - - uid: 4072 - components: - - type: Transform - pos: -31.5,-6.5 - parent: 31 - - uid: 4073 - components: - - type: Transform - pos: -26.5,-6.5 - parent: 31 - - uid: 4074 - components: - - type: Transform - pos: -27.5,-6.5 - parent: 31 - - uid: 4075 - components: - - type: Transform - pos: -28.5,-6.5 - parent: 31 - - uid: 4076 - components: - - type: Transform - pos: -29.5,-6.5 - parent: 31 - - uid: 4077 - components: - - type: Transform - pos: -30.5,-6.5 - parent: 31 - - uid: 4080 - components: - - type: Transform - pos: -26.5,-1.5 - parent: 31 - - uid: 4081 - components: - - type: Transform - pos: -26.5,-4.5 - parent: 31 - - uid: 4091 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -12.5,-22.5 - parent: 31 - - uid: 4094 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -12.5,-21.5 - parent: 31 - uid: 4221 components: - type: Transform @@ -77615,11 +77075,6 @@ entities: - type: Transform pos: 0.5,-9.5 parent: 31 - - uid: 4313 - components: - - type: Transform - pos: -3.5,-13.5 - parent: 31 - uid: 4331 components: - type: Transform @@ -77641,16 +77096,6 @@ entities: - type: Transform pos: 34.5,-10.5 parent: 31 - - uid: 4511 - components: - - type: Transform - pos: 29.5,-18.5 - parent: 31 - - uid: 4520 - components: - - type: Transform - pos: 31.5,-18.5 - parent: 31 - uid: 4558 components: - type: Transform @@ -77662,10 +77107,11 @@ entities: - type: Transform pos: 36.5,-16.5 parent: 31 - - uid: 4657 + - uid: 4621 components: - type: Transform - pos: 30.5,-18.5 + rot: 1.5707963267948966 rad + pos: -4.5,-10.5 parent: 31 - uid: 4725 components: @@ -77714,11 +77160,6 @@ entities: rot: -1.5707963267948966 rad pos: 5.5,-24.5 parent: 31 - - uid: 4836 - components: - - type: Transform - pos: -6.5,-13.5 - parent: 31 - uid: 4857 components: - type: Transform @@ -77756,31 +77197,6 @@ entities: - type: Transform pos: 25.5,-22.5 parent: 31 - - uid: 4981 - components: - - type: Transform - pos: -20.5,18.5 - parent: 31 - - uid: 4984 - components: - - type: Transform - pos: -21.5,18.5 - parent: 31 - - uid: 4985 - components: - - type: Transform - pos: -24.5,18.5 - parent: 31 - - uid: 4986 - components: - - type: Transform - pos: -24.5,17.5 - parent: 31 - - uid: 4987 - components: - - type: Transform - pos: -24.5,16.5 - parent: 31 - uid: 5011 components: - type: Transform @@ -77821,11 +77237,6 @@ entities: - type: Transform pos: -18.5,-13.5 parent: 31 - - uid: 5211 - components: - - type: Transform - pos: -25.5,-10.5 - parent: 31 - uid: 5218 components: - type: Transform @@ -77847,6 +77258,11 @@ entities: - type: Transform pos: 13.5,-7.5 parent: 31 + - uid: 5545 + components: + - type: Transform + pos: -31.5,-5.5 + parent: 31 - uid: 5609 components: - type: Transform @@ -77873,6 +77289,12 @@ entities: - type: Transform pos: 13.5,-18.5 parent: 31 + - uid: 6407 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,17.5 + parent: 31 - uid: 6524 components: - type: Transform @@ -77883,11 +77305,6 @@ entities: - type: Transform pos: 21.5,-17.5 parent: 31 - - uid: 6697 - components: - - type: Transform - pos: -31.5,-7.5 - parent: 31 - uid: 6965 components: - type: Transform @@ -77903,10 +77320,15 @@ entities: - type: Transform pos: 37.5,-16.5 parent: 31 - - uid: 7046 + - uid: 6979 components: - type: Transform - pos: 31.5,-19.5 + pos: 9.5,-18.5 + parent: 31 + - uid: 6988 + components: + - type: Transform + pos: 11.5,-15.5 parent: 31 - uid: 7089 components: @@ -77928,11 +77350,6 @@ entities: - type: Transform pos: 6.5,-9.5 parent: 31 - - uid: 7330 - components: - - type: Transform - pos: -20.5,-7.5 - parent: 31 - uid: 7357 components: - type: Transform @@ -77979,17 +77396,10 @@ entities: - type: Transform pos: 13.5,-8.5 parent: 31 - - uid: 7598 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -29.5,-10.5 - parent: 31 - - uid: 7607 + - uid: 7594 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -30.5,-10.5 + pos: -17.5,-18.5 parent: 31 - uid: 7675 components: @@ -78011,6 +77421,18 @@ entities: - type: Transform pos: 21.5,-16.5 parent: 31 + - uid: 8264 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -15.5,-4.5 + parent: 31 + - uid: 8265 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -12.5,-8.5 + parent: 31 - uid: 8301 components: - type: Transform @@ -78090,41 +77512,47 @@ entities: - type: Transform pos: -12.5,-17.5 parent: 31 - - uid: 8718 + - uid: 8864 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -32.5,-30.5 + pos: -10.5,-17.5 parent: 31 - - uid: 8817 + - uid: 8896 components: - type: Transform - pos: 1.5,29.5 + pos: -11.5,-17.5 parent: 31 - - uid: 8818 + - uid: 8918 components: - type: Transform - pos: 5.5,29.5 + pos: -9.5,-17.5 parent: 31 - - uid: 8864 + - uid: 8922 components: - type: Transform - pos: -10.5,-17.5 + rot: 1.5707963267948966 rad + pos: -12.5,-13.5 parent: 31 - - uid: 8896 + - uid: 8927 components: - type: Transform - pos: -11.5,-17.5 + pos: -28.5,-2.5 parent: 31 - - uid: 8918 + - uid: 8930 components: - type: Transform - pos: -9.5,-17.5 + pos: -8.5,-17.5 parent: 31 - - uid: 8930 + - uid: 8931 components: - type: Transform - pos: -8.5,-17.5 + rot: 1.5707963267948966 rad + pos: -6.5,-10.5 + parent: 31 + - uid: 8932 + components: + - type: Transform + pos: -8.5,-12.5 parent: 31 - uid: 8934 components: @@ -78178,6 +77606,12 @@ entities: - type: Transform pos: 17.5,8.5 parent: 31 + - uid: 9165 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,20.5 + parent: 31 - uid: 9169 components: - type: Transform @@ -78204,11 +77638,15 @@ entities: - type: Transform pos: -30.5,16.5 parent: 31 + - uid: 9252 + components: + - type: Transform + pos: -19.5,13.5 + parent: 31 - uid: 9255 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -12.5,-13.5 + pos: 11.5,-17.5 parent: 31 - uid: 9256 components: @@ -78278,10 +77716,10 @@ entities: rot: 1.5707963267948966 rad pos: -23.5,-26.5 parent: 31 - - uid: 9376 + - uid: 9374 components: - type: Transform - pos: -21.5,-24.5 + pos: -21.5,-9.5 parent: 31 - uid: 9389 components: @@ -78293,6 +77731,11 @@ entities: - type: Transform pos: 5.5,-42.5 parent: 31 + - uid: 9465 + components: + - type: Transform + pos: -21.5,-8.5 + parent: 31 - uid: 9517 components: - type: Transform @@ -78405,6 +77848,11 @@ entities: - type: Transform pos: 25.5,14.5 parent: 31 + - uid: 9707 + components: + - type: Transform + pos: -23.5,-8.5 + parent: 31 - uid: 9713 components: - type: Transform @@ -78435,6 +77883,11 @@ entities: - type: Transform pos: 17.5,16.5 parent: 31 + - uid: 9790 + components: + - type: Transform + pos: -17.5,-9.5 + parent: 31 - uid: 9818 components: - type: Transform @@ -78455,6 +77908,11 @@ entities: - type: Transform pos: 1.5,-24.5 parent: 31 + - uid: 9836 + components: + - type: Transform + pos: -23.5,-7.5 + parent: 31 - uid: 9839 components: - type: Transform @@ -78476,11 +77934,10 @@ entities: - type: Transform pos: 17.5,17.5 parent: 31 - - uid: 9866 + - uid: 9863 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -33.5,8.5 + pos: -23.5,-4.5 parent: 31 - uid: 9880 components: @@ -78497,10 +77954,10 @@ entities: - type: Transform pos: 13.5,-6.5 parent: 31 - - uid: 9919 + - uid: 9980 components: - type: Transform - pos: -5.5,26.5 + pos: -31.5,-20.5 parent: 31 - uid: 9987 components: @@ -78508,6 +77965,11 @@ entities: rot: -1.5707963267948966 rad pos: -26.5,-13.5 parent: 31 + - uid: 10001 + components: + - type: Transform + pos: -30.5,-20.5 + parent: 31 - uid: 10013 components: - type: Transform @@ -78519,25 +77981,30 @@ entities: rot: -1.5707963267948966 rad pos: 20.5,-18.5 parent: 31 - - uid: 10035 + - uid: 10038 components: - type: Transform - pos: -17.5,-9.5 + pos: 25.5,18.5 parent: 31 - - uid: 10036 + - uid: 10119 components: - type: Transform - pos: -18.5,-9.5 + pos: -19.5,-28.5 parent: 31 - - uid: 10037 + - uid: 10123 components: - type: Transform - pos: -19.5,-9.5 + pos: -25.5,-28.5 parent: 31 - - uid: 10038 + - uid: 10124 components: - type: Transform - pos: 25.5,18.5 + pos: -26.5,-27.5 + parent: 31 + - uid: 10126 + components: + - type: Transform + pos: -21.5,-28.5 parent: 31 - uid: 10129 components: @@ -78545,6 +78012,36 @@ entities: rot: 3.141592653589793 rad pos: 39.5,-11.5 parent: 31 + - uid: 10132 + components: + - type: Transform + pos: -26.5,-28.5 + parent: 31 + - uid: 10139 + components: + - type: Transform + pos: -24.5,-28.5 + parent: 31 + - uid: 10165 + components: + - type: Transform + pos: -10.5,-10.5 + parent: 31 + - uid: 10178 + components: + - type: Transform + pos: -19.5,-9.5 + parent: 31 + - uid: 10179 + components: + - type: Transform + pos: -17.5,-3.5 + parent: 31 + - uid: 10180 + components: + - type: Transform + pos: -18.5,-3.5 + parent: 31 - uid: 10219 components: - type: Transform @@ -78555,17 +78052,56 @@ entities: - type: Transform pos: -19.5,6.5 parent: 31 + - uid: 10221 + components: + - type: Transform + pos: -31.5,-25.5 + parent: 31 + - uid: 10240 + components: + - type: Transform + pos: -19.5,-4.5 + parent: 31 + - uid: 10241 + components: + - type: Transform + pos: -19.5,-6.5 + parent: 31 + - uid: 10242 + components: + - type: Transform + pos: -19.5,-3.5 + parent: 31 + - uid: 10272 + components: + - type: Transform + pos: -32.5,-25.5 + parent: 31 + - uid: 10317 + components: + - type: Transform + pos: -19.5,-8.5 + parent: 31 + - uid: 10321 + components: + - type: Transform + pos: -19.5,-7.5 + parent: 31 + - uid: 10322 + components: + - type: Transform + pos: -20.5,-9.5 + parent: 31 - uid: 10353 components: - type: Transform rot: 1.5707963267948966 rad pos: 20.5,-19.5 parent: 31 - - uid: 10359 + - uid: 10358 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -28.5,-10.5 + pos: -16.5,-9.5 parent: 31 - uid: 10435 components: @@ -78587,23 +78123,30 @@ entities: - type: Transform pos: -34.5,18.5 parent: 31 - - uid: 10474 + - uid: 10477 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -20.5,-4.5 + pos: -27.5,-27.5 parent: 31 - - uid: 10476 + - uid: 10535 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -20.5,-5.5 + pos: -16.5,-0.5 parent: 31 - - uid: 10581 + - uid: 10542 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -27.5,-10.5 + pos: -29.5,-25.5 + parent: 31 + - uid: 10558 + components: + - type: Transform + pos: -27.5,-26.5 + parent: 31 + - uid: 10584 + components: + - type: Transform + pos: -22.5,-28.5 parent: 31 - uid: 10597 components: @@ -78641,12 +78184,46 @@ entities: rot: 3.141592653589793 rad pos: 44.5,-10.5 parent: 31 + - uid: 10645 + components: + - type: Transform + pos: -23.5,-28.5 + parent: 31 + - uid: 10646 + components: + - type: Transform + pos: -27.5,-25.5 + parent: 31 + - uid: 11158 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -23.5,18.5 + parent: 31 + - uid: 11163 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.5,18.5 + parent: 31 - uid: 11188 components: - type: Transform rot: -1.5707963267948966 rad pos: -27.5,-24.5 parent: 31 + - uid: 11199 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -21.5,-26.5 + parent: 31 + - uid: 11298 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -7.5,-12.5 + parent: 31 - uid: 11311 components: - type: Transform @@ -78663,19 +78240,16 @@ entities: - type: Transform pos: -39.5,-5.5 parent: 31 -- proto: WallSolidDiagonal - entities: - - uid: 11189 + - uid: 11647 components: - type: Transform - rot: -1.5707963267948966 rad - pos: -5.5,-36.5 + rot: 1.5707963267948966 rad + pos: -5.5,-10.5 parent: 31 - - uid: 11194 + - uid: 11856 components: - type: Transform - rot: 3.141592653589793 rad - pos: -3.5,-33.5 + pos: 11.5,-16.5 parent: 31 - proto: WallSolidRust entities: @@ -78694,6 +78268,12 @@ entities: - type: Transform pos: 28.5,-18.5 parent: 31 + - uid: 1148 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -20.5,17.5 + parent: 31 - uid: 1326 components: - type: Transform @@ -78749,11 +78329,6 @@ entities: - type: Transform pos: -27.5,15.5 parent: 31 - - uid: 4006 - components: - - type: Transform - pos: -20.5,20.5 - parent: 31 - uid: 5005 components: - type: Transform @@ -78779,10 +78354,10 @@ entities: - type: Transform pos: 28.5,-19.5 parent: 31 - - uid: 5214 + - uid: 5712 components: - type: Transform - pos: -31.5,-10.5 + pos: -31.5,-6.5 parent: 31 - uid: 8854 components: @@ -78866,36 +78441,6 @@ entities: - type: Transform pos: -25.5,-27.5 parent: 31 -- proto: WardrobePrisonFilled - entities: - - uid: 1161 - components: - - type: Transform - pos: -13.5,7.5 - parent: 31 - - type: EntityStorage - air: - volume: 200 - immutable: False - temperature: 293.14963 - moles: - - 1.7459903 - - 6.568249 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - 0 - - uid: 1957 - components: - - type: Transform - pos: -7.5,8.5 - parent: 31 - proto: WardrobeRoboticsFilled entities: - uid: 9616 @@ -78903,33 +78448,6 @@ entities: - type: Transform pos: -2.5,-25.5 parent: 31 -- proto: WardrobeWhite - entities: - - uid: 7110 - components: - - type: MetaData - desc: Smells of formaldehyde, smoke and menthol. - name: mortician's wardrobe - - type: Transform - pos: 15.536513,-13.5 - parent: 31 - - type: ContainerContainer - containers: - entity_storage: !type:Container - showEnts: False - occludes: True - ents: - - 4231 - - 7101 - - 7107 - - 7102 - - 7109 - - 7098 - - 7108 - paper_label: !type:ContainerSlot - showEnts: False - occludes: True - ent: null - proto: WarningCO2 entities: - uid: 11013 @@ -79004,6 +78522,11 @@ entities: parent: 31 - type: WarpPoint location: hop's office + - uid: 4707 + components: + - type: Transform + pos: 2.5,33.5 + parent: 31 - uid: 4910 components: - type: Transform @@ -79046,13 +78569,6 @@ entities: parent: 31 - type: WarpPoint location: captain's quarters - - uid: 11308 - components: - - type: Transform - pos: 3.5,30.5 - parent: 31 - - type: WarpPoint - location: bridge - uid: 11309 components: - type: Transform @@ -79095,25 +78611,20 @@ entities: - type: Transform pos: 1.5,16.5 parent: 31 - - uid: 2217 + - uid: 2379 components: - type: Transform - pos: -5.5,15.5 + pos: -5.5,27.5 parent: 31 - uid: 2500 components: - type: Transform pos: -10.5,-18.5 parent: 31 - - uid: 5314 - components: - - type: Transform - pos: -2.5,31.5 - parent: 31 - - uid: 7533 + - uid: 5708 components: - type: Transform - pos: 49.5,-18.5 + pos: -7.5,10.5 parent: 31 - uid: 9098 components: @@ -79127,6 +78638,11 @@ entities: - type: Transform pos: 27.5,-2.5 parent: 31 + - uid: 1879 + components: + - type: Transform + pos: -24.5,18.5 + parent: 31 - uid: 7986 components: - type: Transform @@ -79147,17 +78663,17 @@ entities: - type: Transform pos: 39.5,-13.5 parent: 31 -- proto: WaterTankHighCapacity - entities: - - uid: 4897 + - uid: 10724 components: - type: Transform - pos: -20.5,1.5 + pos: -21.5,-2.5 parent: 31 - - uid: 7896 +- proto: WaterTankHighCapacity + entities: + - uid: 10355 components: - type: Transform - pos: -17.5,-11.5 + pos: -20.5,-8.5 parent: 31 - proto: WaterVaporCanister entities: @@ -79178,18 +78694,10 @@ entities: - type: Transform pos: -2.5,7.5 parent: 31 - - uid: 8809 - components: - - type: Transform - pos: 2.5,31.5 - parent: 31 - - type: Physics - canCollide: False - - uid: 10477 + - uid: 11117 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -14.5,15.5 + pos: -0.5,31.5 parent: 31 - proto: WeaponDisabler entities: @@ -79210,22 +78718,37 @@ entities: parent: 31 - proto: WeaponShotgunKammerer entities: + - uid: 1051 + components: + - type: Transform + pos: -13.448327,18.775608 + parent: 31 - uid: 8072 components: - type: Transform pos: -13.420591,18.645054 parent: 31 - - uid: 8996 +- proto: WeaponTurretSyndicateBroken + entities: + - uid: 7016 components: - type: Transform - pos: -13.373716,18.332554 + pos: 46.5,-27.5 parent: 31 -- proto: WeaponWaterBlaster - entities: - - uid: 8127 + - uid: 7114 components: - type: Transform - pos: -35.20547,-23.785456 + pos: 52.5,-21.5 + parent: 31 + - uid: 7241 + components: + - type: Transform + pos: 52.5,-27.5 + parent: 31 + - uid: 8077 + components: + - type: Transform + pos: 46.5,-21.5 parent: 31 - proto: Welder entities: @@ -79261,11 +78784,6 @@ entities: - type: Transform pos: 40.5,11.5 parent: 31 - - uid: 1368 - components: - - type: Transform - pos: -9.5,-9.5 - parent: 31 - uid: 2418 components: - type: Transform @@ -79301,6 +78819,11 @@ entities: - type: Transform pos: 2.5,-40.5 parent: 31 + - uid: 12527 + components: + - type: Transform + pos: -8.5,-11.5 + parent: 31 - proto: WheatSeeds entities: - uid: 9677 @@ -79308,6 +78831,14 @@ entities: - type: Transform pos: -1.6659715,-42.461594 parent: 31 +- proto: WhoopieCushion + entities: + - uid: 5548 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -19.799765,-10.132835 + parent: 31 - proto: Windoor entities: - uid: 1030 @@ -79355,12 +78886,6 @@ entities: rot: 1.5707963267948966 rad pos: -32.5,-32.5 parent: 31 - - uid: 8717 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -35.5,-27.5 - parent: 31 - uid: 8852 components: - type: Transform @@ -79383,6 +78908,14 @@ entities: rot: -1.5707963267948966 rad pos: -15.5,0.5 parent: 31 +- proto: WindoorKitchenLocked + entities: + - uid: 7232 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -15.5,0.5 + parent: 31 - proto: WindoorSecureArmoryLocked entities: - uid: 5151 @@ -79418,6 +78951,47 @@ entities: rot: 1.5707963267948966 rad pos: 13.5,-0.5 parent: 31 +- proto: WindoorSecureCommandLocked + entities: + - uid: 615 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,-16.5 + parent: 31 + - uid: 4671 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,-16.5 + parent: 31 + - uid: 7010 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,-24.5 + parent: 31 + - type: DeviceLinkSink + links: + - 1234 + - uid: 8689 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 48.5,-24.5 + parent: 31 + - uid: 10793 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 47.5,-16.5 + parent: 31 + - uid: 12535 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 51.5,-16.5 + parent: 31 - proto: WindoorSecureEngineeringLocked entities: - uid: 8851 @@ -79484,22 +79058,40 @@ entities: parent: 31 - proto: Window entities: + - uid: 261 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 3.5,-12.5 + parent: 31 - uid: 264 components: - type: Transform rot: -1.5707963267948966 rad pos: 8.5,-7.5 parent: 31 - - uid: 836 + - uid: 268 components: - type: Transform - pos: 54.5,-2.5 + rot: -1.5707963267948966 rad + pos: -19.5,2.5 parent: 31 - - uid: 920 + - uid: 370 components: - type: Transform - rot: 1.5707963267948966 rad - pos: -15.5,-0.5 + rot: -1.5707963267948966 rad + pos: -5.5,-13.5 + parent: 31 + - uid: 413 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 0.5,-15.5 + parent: 31 + - uid: 836 + components: + - type: Transform + pos: 54.5,-2.5 parent: 31 - uid: 997 components: @@ -79518,11 +79110,6 @@ entities: - type: Transform pos: -18.5,2.5 parent: 31 - - uid: 1191 - components: - - type: Transform - pos: -19.5,2.5 - parent: 31 - uid: 1332 components: - type: Transform @@ -79609,6 +79196,16 @@ entities: rot: -1.5707963267948966 rad pos: 17.5,-14.5 parent: 31 + - uid: 4069 + components: + - type: Transform + pos: -27.5,-6.5 + parent: 31 + - uid: 4075 + components: + - type: Transform + pos: -27.5,-7.5 + parent: 31 - uid: 4262 components: - type: Transform @@ -79624,25 +79221,27 @@ entities: - type: Transform pos: -8.5,-24.5 parent: 31 - - uid: 5036 + - uid: 5547 components: - type: Transform - pos: -17.5,-18.5 + rot: 3.141592653589793 rad + pos: -13.5,-13.5 parent: 31 - - uid: 5222 + - uid: 5996 components: - type: Transform - pos: 11.5,-16.5 + pos: -25.5,-8.5 parent: 31 - - uid: 6286 + - uid: 6076 components: - type: Transform - pos: 49.5,-6.5 + rot: -1.5707963267948966 rad + pos: -21.5,4.5 parent: 31 - - uid: 7437 + - uid: 6286 components: - type: Transform - pos: 11.5,-17.5 + pos: 49.5,-6.5 parent: 31 - uid: 7438 components: @@ -79659,11 +79258,6 @@ entities: - type: Transform pos: 22.5,14.5 parent: 31 - - uid: 7461 - components: - - type: Transform - pos: 11.5,-15.5 - parent: 31 - uid: 7548 components: - type: Transform @@ -79748,6 +79342,11 @@ entities: rot: 3.141592653589793 rad pos: -18.5,-19.5 parent: 31 + - uid: 11852 + components: + - type: Transform + pos: -6.5,-13.5 + parent: 31 - proto: WindowDirectional entities: - uid: 197 @@ -79755,53 +79354,23 @@ entities: - type: Transform pos: -6.5,-28.5 parent: 31 - - uid: 1343 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -4.5,-8.5 - parent: 31 - uid: 2311 components: - type: Transform rot: -1.5707963267948966 rad pos: -14.5,-24.5 parent: 31 - - uid: 7321 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -2.5,-8.5 - parent: 31 - uid: 8207 components: - type: Transform pos: -5.5,-28.5 parent: 31 - - uid: 8710 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -33.5,-26.5 - parent: 31 - uid: 8713 components: - type: Transform rot: 1.5707963267948966 rad pos: -32.5,-31.5 parent: 31 - - uid: 8714 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -34.5,-27.5 - parent: 31 - - uid: 8716 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -36.5,-27.5 - parent: 31 - uid: 10273 components: - type: Transform @@ -79814,17 +79383,28 @@ entities: parent: 31 - proto: WindowReinforcedDirectional entities: - - uid: 2044 + - uid: 477 components: - type: Transform rot: 1.5707963267948966 rad - pos: -30.5,-29.5 + pos: -8.5,30.5 parent: 31 - - uid: 2118 + - uid: 524 components: - type: Transform rot: 1.5707963267948966 rad - pos: -30.5,-28.5 + pos: -8.5,29.5 + parent: 31 + - uid: 525 + components: + - type: Transform + pos: -8.5,38.5 + parent: 31 + - uid: 1368 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 48.5,-15.5 parent: 31 - uid: 2227 components: @@ -79850,17 +79430,44 @@ entities: rot: 3.141592653589793 rad pos: 66.5,0.5 parent: 31 - - uid: 3743 + - uid: 2472 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -9.5,32.5 + parent: 31 + - uid: 2558 + components: + - type: Transform + pos: -12.5,27.5 + parent: 31 + - uid: 2726 + components: + - type: Transform + pos: 47.5,-15.5 + parent: 31 + - uid: 2782 components: - type: Transform rot: -1.5707963267948966 rad - pos: -29.5,-29.5 + pos: -3.5,35.5 parent: 31 - - uid: 3780 + - uid: 3784 components: - type: Transform rot: -1.5707963267948966 rad - pos: -29.5,-28.5 + pos: -3.5,34.5 + parent: 31 + - uid: 3785 + components: + - type: Transform + pos: -5.5,38.5 + parent: 31 + - uid: 4125 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -8.5,28.5 parent: 31 - uid: 4155 components: @@ -79873,6 +79480,16 @@ entities: rot: 3.141592653589793 rad pos: 67.5,0.5 parent: 31 + - uid: 4256 + components: + - type: Transform + pos: -21.5,27.5 + parent: 31 + - uid: 4292 + components: + - type: Transform + pos: -9.5,27.5 + parent: 31 - uid: 4392 components: - type: Transform @@ -79993,6 +79610,12 @@ entities: - type: Transform pos: 66.5,4.5 parent: 31 + - uid: 6089 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -8.5,32.5 + parent: 31 - uid: 6752 components: - type: Transform @@ -80037,58 +79660,122 @@ entities: - type: Transform pos: 67.5,4.5 parent: 31 - - uid: 8887 + - uid: 6982 components: - type: Transform rot: -1.5707963267948966 rad - pos: 32.5,5.5 + pos: 48.5,-15.5 parent: 31 - - uid: 8902 + - uid: 7003 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 32.5,6.5 + rot: 3.141592653589793 rad + pos: 50.5,-15.5 parent: 31 - - uid: 8942 + - uid: 7156 components: - type: Transform - rot: -1.5707963267948966 rad - pos: 17.5,1.5 + pos: -9.5,38.5 parent: 31 - - uid: 8943 + - uid: 7229 components: - type: Transform - pos: 19.5,0.5 + rot: -1.5707963267948966 rad + pos: 6.5,34.5 parent: 31 - - uid: 11143 + - uid: 7230 components: - type: Transform rot: -1.5707963267948966 rad - pos: -2.5,-20.5 + pos: 6.5,35.5 parent: 31 - - uid: 11368 + - uid: 7271 components: - type: Transform rot: -1.5707963267948966 rad - pos: -2.5,-19.5 + pos: 6.5,33.5 parent: 31 - - uid: 11719 + - uid: 7341 + components: + - type: Transform + pos: -6.5,38.5 + parent: 31 + - uid: 7426 + components: + - type: Transform + pos: 3.5,37.5 + parent: 31 + - uid: 7457 + components: + - type: Transform + pos: 4.5,37.5 + parent: 31 + - uid: 7470 + components: + - type: Transform + pos: 0.5,37.5 + parent: 31 + - uid: 7510 + components: + - type: Transform + pos: -0.5,37.5 + parent: 31 + - uid: 7511 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,35.5 + parent: 31 + - uid: 7598 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,34.5 + parent: 31 + - uid: 7602 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -2.5,33.5 + parent: 31 + - uid: 7856 + components: + - type: Transform + pos: -18.5,27.5 + parent: 31 + - uid: 8148 + components: + - type: Transform + pos: 51.5,-15.5 + parent: 31 + - uid: 8291 components: - type: Transform rot: 3.141592653589793 rad - pos: -19.5,-23.5 + pos: 49.5,-15.5 parent: 31 - - uid: 11720 + - uid: 8293 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 50.5,-15.5 + parent: 31 + - uid: 11143 components: - type: Transform rot: -1.5707963267948966 rad - pos: -19.5,-23.5 + pos: -2.5,-20.5 parent: 31 - - uid: 11721 + - uid: 11184 + components: + - type: Transform + pos: -15.5,27.5 + parent: 31 + - uid: 11368 components: - type: Transform rot: -1.5707963267948966 rad - pos: -19.5,-24.5 + pos: -2.5,-19.5 parent: 31 - uid: 12974 components: @@ -80100,11 +79787,6 @@ entities: - type: Transform pos: -22.5,27.5 parent: 31 - - uid: 12976 - components: - - type: Transform - pos: -21.5,27.5 - parent: 31 - uid: 12977 components: - type: Transform @@ -80118,23 +79800,11 @@ entities: rot: -1.5707963267948966 rad pos: 5.5,-33.5 parent: 31 - - uid: 4285 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -20.5,-27.5 - parent: 31 - - uid: 4557 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -20.5,-26.5 - parent: 31 - - uid: 4617 + - uid: 7724 components: - type: Transform rot: -1.5707963267948966 rad - pos: -20.5,-24.5 + pos: -21.5,-24.5 parent: 31 - uid: 8101 components: @@ -80142,17 +79812,11 @@ entities: rot: -1.5707963267948966 rad pos: 5.5,-34.5 parent: 31 - - uid: 8517 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -20.5,-25.5 - parent: 31 - - uid: 11490 + - uid: 11133 components: - type: Transform rot: -1.5707963267948966 rad - pos: -24.5,-25.5 + pos: -21.5,-25.5 parent: 31 - uid: 11666 components: @@ -80172,15 +79836,12 @@ entities: rot: -1.5707963267948966 rad pos: 5.5,-27.5 parent: 31 - - uid: 11669 +- proto: Wirecutter + entities: + - uid: 9549 components: - type: Transform - pos: 5.5,-27.5 - parent: 31 - - uid: 11670 - components: - - type: Transform - pos: 6.5,-27.5 + pos: -21.39914,17.52145 parent: 31 - proto: WoodDoor entities: @@ -80194,11 +79855,6 @@ entities: - type: Transform pos: -38.5,16.5 parent: 31 - - uid: 4209 - components: - - type: Transform - pos: -21.5,-26.5 - parent: 31 - uid: 11481 components: - type: Transform @@ -80266,6 +79922,18 @@ entities: rot: -1.5707963267948966 rad pos: -4.5729136,-32.437004 parent: 31 + - uid: 7671 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 51.672195,17.432777 + parent: 31 + - uid: 9994 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -30.371792,-9.595388 + parent: 31 - uid: 10984 components: - type: Transform diff --git a/Resources/Migrations/eeMigration.yml b/Resources/Migrations/eeMigration.yml index 195c1f87651..ea2ac962144 100644 --- a/Resources/Migrations/eeMigration.yml +++ b/Resources/Migrations/eeMigration.yml @@ -64,9 +64,6 @@ ClothingHeadHoodMystic: ClothingHeadHoodMysta # 2023-11-07 VendingMachineMailDrobe: VendingMachineCourierDrobe -#Delta V temporary changes. Remove When items are added. # TODO: EE remove when Rebased -ComputerShipyard: ComputerBroken -ShipyardComputerCircuitboard: null SpawnMobGolemCult: null ShogiBoard: CheckerBoard @@ -117,3 +114,6 @@ MailPAI: MailNFPAI # 2024-08-27 Oracle: OracleSpawner SophicScribe: SophicScribeSpawner + +# 2024-11-16 +GlassBoxLaser: null #Captain's Laser was moved to Loadouts. diff --git a/Resources/Prototypes/Actions/borgs.yml b/Resources/Prototypes/Actions/borgs.yml index 6d35c69cf6a..950a7c81524 100644 --- a/Resources/Prototypes/Actions/borgs.yml +++ b/Resources/Prototypes/Actions/borgs.yml @@ -2,7 +2,7 @@ id: ActionViewLaws name: View Laws description: View the laws that you must follow. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction itemIconStyle: NoItem diff --git a/Resources/Prototypes/Actions/crit.yml b/Resources/Prototypes/Actions/crit.yml index 705ee6ee6b3..bc843796c47 100644 --- a/Resources/Prototypes/Actions/crit.yml +++ b/Resources/Prototypes/Actions/crit.yml @@ -3,7 +3,7 @@ id: ActionCritSuccumb name: Succumb description: Accept your fate. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction itemIconStyle: NoItem @@ -18,7 +18,7 @@ id: ActionCritFakeDeath name: Fake Death description: Pretend to take your final breath while staying alive. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction itemIconStyle: NoItem @@ -34,7 +34,7 @@ id: ActionCritLastWords name: Say Last Words description: Whisper your last words to anyone nearby, and then succumb to your fate. You only have 30 characters to work with. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction itemIconStyle: NoItem diff --git a/Resources/Prototypes/Actions/diona.yml b/Resources/Prototypes/Actions/diona.yml index 11db30386a5..695285a524d 100644 --- a/Resources/Prototypes/Actions/diona.yml +++ b/Resources/Prototypes/Actions/diona.yml @@ -2,7 +2,7 @@ id: DionaGibAction name: Gib Yourself! description: Split apart into 3 nymphs. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: @@ -16,7 +16,7 @@ id: DionaReformAction name: Reform description: Reform back into a whole Diona. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: diff --git a/Resources/Prototypes/Actions/emotes.yml b/Resources/Prototypes/Actions/emotes.yml new file mode 100644 index 00000000000..6f34a4dc94d --- /dev/null +++ b/Resources/Prototypes/Actions/emotes.yml @@ -0,0 +1,23 @@ +- type: emote + id: Flip + name: chat-emote-name-flip + chatMessages: ["chat-emote-msg-flip"] + chatTriggers: + - does a flip + event: !type:AnimationFlipEmoteEvent + +- type: emote + id: Spin + name: chat-emote-name-spin + chatMessages: ["chat-emote-msg-spin"] + chatTriggers: + - spins + event: !type:AnimationSpinEmoteEvent + +- type: emote + id: Jump + name: chat-emote-name-jump + chatMessages: ["chat-emote-msg-jump"] + chatTriggers: + - jumps + event: !type:AnimationJumpEmoteEvent diff --git a/Resources/Prototypes/Actions/internals.yml b/Resources/Prototypes/Actions/internals.yml index dd83a45332f..ebc29d2ebf0 100644 --- a/Resources/Prototypes/Actions/internals.yml +++ b/Resources/Prototypes/Actions/internals.yml @@ -2,7 +2,7 @@ id: ActionToggleInternals name: Toggle Internals description: Breathe from the equipped gas tank. Also requires equipped breath mask. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: diff --git a/Resources/Prototypes/Actions/mech.yml b/Resources/Prototypes/Actions/mech.yml index 2005133a70b..69ec71ba641 100644 --- a/Resources/Prototypes/Actions/mech.yml +++ b/Resources/Prototypes/Actions/mech.yml @@ -2,7 +2,7 @@ id: ActionMechCycleEquipment name: Cycle description: Cycles currently selected equipment - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction itemIconStyle: NoItem @@ -16,7 +16,7 @@ id: ActionMechOpenUI name: Control Panel description: Opens the control panel for the mech - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction itemIconStyle: NoItem @@ -30,7 +30,7 @@ id: ActionMechEject name: Eject description: Ejects the pilot from the mech - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction itemIconStyle: NoItem diff --git a/Resources/Prototypes/Actions/misc.yml b/Resources/Prototypes/Actions/misc.yml index 60fec699210..1a8d3458dde 100644 --- a/Resources/Prototypes/Actions/misc.yml +++ b/Resources/Prototypes/Actions/misc.yml @@ -2,7 +2,7 @@ id: ActionCancelEscape name: Stop escaping description: Calm down and sit peacefuly in your carrier's inventory - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: Actions/escapeinventory.rsi/cancel-escape.png diff --git a/Resources/Prototypes/Actions/ninja.yml b/Resources/Prototypes/Actions/ninja.yml index 5fe6f23b276..51bfc33c494 100644 --- a/Resources/Prototypes/Actions/ninja.yml +++ b/Resources/Prototypes/Actions/ninja.yml @@ -3,7 +3,7 @@ id: ActionToggleNinjaGloves name: Toggle ninja gloves description: Toggles all glove actions on left click. Includes your doorjack, draining power, stunning enemies, downloading research and calling in a threat. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction priority: -13 @@ -14,7 +14,7 @@ id: ActionCreateThrowingStar name: Create throwing star description: Channels suit power into creating a throwing star that deals extra stamina damage. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction useDelay: 0.5 @@ -29,7 +29,7 @@ id: ActionRecallKatana name: Recall katana description: Teleports the Energy Katana linked to this suit to its wearer, cost based on distance. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction useDelay: 1 @@ -44,7 +44,7 @@ id: ActionNinjaEmp name: EM Burst description: Disable any nearby technology with an electro-magnetic pulse. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: @@ -58,7 +58,7 @@ id: ActionTogglePhaseCloak name: Phase cloak description: Toggles your suit's phase cloak. Beware that if you are hit, all abilities are disabled for 5 seconds, including your cloak! - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction # have to plan (un)cloaking ahead of time @@ -71,7 +71,7 @@ id: ActionEnergyKatanaDash name: Katana dash description: Teleport to anywhere you can see, if your Energy Katana is in your hand. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: WorldTargetAction icon: diff --git a/Resources/Prototypes/Actions/polymorph.yml b/Resources/Prototypes/Actions/polymorph.yml index 445dc8d9f54..de082ead8a4 100644 --- a/Resources/Prototypes/Actions/polymorph.yml +++ b/Resources/Prototypes/Actions/polymorph.yml @@ -2,14 +2,14 @@ id: ActionRevertPolymorph name: Revert description: Revert back into your original form. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction event: !type:RevertPolymorphActionEvent - type: entity id: ActionPolymorph - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction event: !type:PolymorphActionEvent @@ -19,7 +19,7 @@ id: ActionPolymorphWizardSpider name: Spider Polymorph description: Polymorphs you into a Spider. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction useDelay: 60 @@ -34,7 +34,7 @@ id: ActionPolymorphWizardRod name: Rod Form description: CLANG! - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction useDelay: 60 diff --git a/Resources/Prototypes/Actions/psionics.yml b/Resources/Prototypes/Actions/psionics.yml index a372a480ac7..c5df4f70ad0 100644 --- a/Resources/Prototypes/Actions/psionics.yml +++ b/Resources/Prototypes/Actions/psionics.yml @@ -2,7 +2,7 @@ id: ActionDispel name: action-name-dispel description: action-description-dispel - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: EntityTargetAction icon: Interface/VerbIcons/dispel.png @@ -21,7 +21,7 @@ id: ActionMassSleep name: action-name-mass-sleep description: action-description-mass-sleep - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: WorldTargetAction icon: Interface/VerbIcons/mass_sleep.png @@ -35,7 +35,7 @@ id: ActionMindSwap name: action-name-mind-swap description: action-description-mind-swap - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: EntityTargetAction icon: Interface/VerbIcons/mind_swap.png @@ -53,7 +53,7 @@ id: ActionMindSwapReturn name: action-name-mind-swap-return description: action-description-mind-swap-return - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: Interface/VerbIcons/mind_swap_return.png @@ -65,7 +65,7 @@ id: ActionNoosphericZap name: action-name-noospheric-zap description: action-description-noospheric-zap - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: EntityTargetAction icon: Interface/VerbIcons/noospheric_zap.png @@ -82,7 +82,7 @@ id: ActionPyrokinesis name: action-name-pyrokinesis description: action-description-pyrokinesis - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: EntityTargetAction icon: Interface/VerbIcons/pyrokinesis.png @@ -96,7 +96,7 @@ id: ActionMetapsionic name: action-name-metapsionic description: action-description-metapsionic - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: Interface/VerbIcons/metapsionic.png @@ -107,7 +107,7 @@ id: ActionPsionicRegeneration name: action-name-psionic-regeneration description: action-description-psionic-regeneration - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: Interface/VerbIcons/psionic_regeneration.png @@ -118,7 +118,7 @@ id: ActionTelegnosis name: action-name-telegnosis description: action-description-telegnosis - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: Interface/VerbIcons/telegnosis.png @@ -129,7 +129,7 @@ id: ActionPsionicInvisibility name: action-name-psionic-invisibility description: action-description-psionic-invisibility - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: Interface/VerbIcons/psionic_invisibility.png @@ -140,7 +140,7 @@ id: ActionPsionicInvisibilityUsed name: action-name-psionic-invisibility-off description: action-description-psionic-invisibility-off - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: Interface/VerbIcons/psionic_invisibility_off.png @@ -150,7 +150,7 @@ id: ActionHealingWord name: action-name-healing-word description: action-description-healing-word - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: EntityTargetAction icon: { sprite: Interface/Actions/psionics.rsi, state: healing_word } @@ -187,7 +187,7 @@ id: ActionRevivify name: action-name-revivify description: action-description-revivify - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: EntityTargetAction icon: { sprite: Interface/Actions/psionics.rsi, state: revivify } @@ -226,7 +226,7 @@ id: ActionShadeskip name: action-name-shadeskip description: action-description-shadeskip - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: { sprite : Interface/Actions/psionics.rsi, state: shadeskip } @@ -261,7 +261,7 @@ id: ActionTelekineticPulse name: action-name-telekinetic-pulse description: action-description-telekinetic-pulse - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: { sprite: Interface/Actions/psionics.rsi, state: telekinetic_pulse } @@ -295,7 +295,7 @@ id: ActionShadowkinShadeskip name: action-name-shadeskip description: action-description-shadowkin-shadeskip - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: { sprite: Interface/Actions/shadowkin_icons.rsi, state: shadeskip } @@ -329,7 +329,7 @@ id: ActionDarkSwap name: action-name-darkswap description: action-description-darkswap - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: { sprite: Interface/Actions/shadowkin_icons.rsi, state: darkswap } @@ -343,7 +343,7 @@ id: ActionPyrokineticFlare name: action-name-pyrokinetic-flare description: action-description-pyrokinetic-flare - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: { sprite: Interface/Actions/psionics.rsi, state: pyrokinetic_flare } @@ -369,7 +369,7 @@ id: ActionSummonImp name: action-name-summon-imp description: action-description-summon-imp - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: { sprite: Interface/Actions/psionics.rsi, state: summon_imp } @@ -388,7 +388,7 @@ id: ActionSummonRemilia name: action-name-summon-remilia description: action-description-summon-remilia - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: { sprite: Interface/Actions/psionics.rsi, state: summon_remilia } diff --git a/Resources/Prototypes/Actions/revenant.yml b/Resources/Prototypes/Actions/revenant.yml index da7b4ba56f2..1131ae2eadb 100644 --- a/Resources/Prototypes/Actions/revenant.yml +++ b/Resources/Prototypes/Actions/revenant.yml @@ -2,7 +2,7 @@ id: ActionRevenantShop name: Shop description: Opens the ability shop. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: Interface/Actions/shop.png @@ -12,7 +12,7 @@ id: ActionRevenantDefile name: Defile description: Costs 30 Essence. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: Interface/Actions/defile.png @@ -23,7 +23,7 @@ id: ActionRevenantOverloadLights name: Overload Lights description: Costs 40 Essence. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: Interface/Actions/overloadlight.png @@ -34,7 +34,7 @@ # id: ActionRevenantBlight # name: Blight # description: Costs 50 Essence. -# noSpawn: true +# categories: [ HideSpawnMenu ] # components: # - type: InstantAction # icon: Interface/Actions/blight.png @@ -45,7 +45,7 @@ id: ActionRevenantMalfunction name: Malfunction description: Costs 60 Essence. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: Interface/Actions/malfunction.png diff --git a/Resources/Prototypes/Actions/speech.yml b/Resources/Prototypes/Actions/speech.yml index 39db04b1b31..053322904f4 100644 --- a/Resources/Prototypes/Actions/speech.yml +++ b/Resources/Prototypes/Actions/speech.yml @@ -2,7 +2,7 @@ id: ActionConfigureMeleeSpeech name: Set Battlecry description: Set a custom battlecry for when you attack! - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction itemIconStyle: BigItem diff --git a/Resources/Prototypes/Actions/spider.yml b/Resources/Prototypes/Actions/spider.yml index 14b9fb6ccbb..3139d416dc6 100644 --- a/Resources/Prototypes/Actions/spider.yml +++ b/Resources/Prototypes/Actions/spider.yml @@ -2,7 +2,7 @@ id: ActionSpiderWeb name: Spider Web description: Spawns a web that slows your prey down. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: Interface/Actions/web.png @@ -13,7 +13,7 @@ id: ActionSericulture name: Weave silk description: Weave a bit of silk for use in arts and crafts. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: Interface/Actions/web.png diff --git a/Resources/Prototypes/Actions/types.yml b/Resources/Prototypes/Actions/types.yml index a7144cdda57..f69d6a794a3 100644 --- a/Resources/Prototypes/Actions/types.yml +++ b/Resources/Prototypes/Actions/types.yml @@ -13,7 +13,7 @@ id: ActionScream name: Scream description: AAAAAAAAAAAAAAAAAAAAAAAAA - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction useDelay: 10 @@ -25,7 +25,7 @@ id: ActionTurnUndead name: Turn Undead description: Succumb to your infection and become a zombie. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction checkCanInteract: false @@ -37,7 +37,7 @@ id: ActionToggleLight name: Toggle Light description: Turn the light on and off. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: { sprite: Objects/Tools/flashlight.rsi, state: flashlight } @@ -48,7 +48,7 @@ id: ActionOpenStorageImplant name: Open Storage Implant description: Opens the storage implant embedded under your skin - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction itemIconStyle: BigAction @@ -63,7 +63,7 @@ id: ActionActivateMicroBomb name: Activate Microbomb description: Activates your internal microbomb, completely destroying you and your equipment - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction checkCanInteract: false @@ -80,7 +80,7 @@ id: ActionActivateDeathAcidifier name: Activate Death-Acidifier description: Activates your death-acidifier, completely melting you and your equipment - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction checkCanInteract: false @@ -96,7 +96,7 @@ id: ActionActivateFreedomImplant name: Break Free description: Activating your freedom implant will free you from any hand restraints - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction charges: 3 @@ -112,7 +112,7 @@ id: ActionOpenUplinkImplant name: Open Uplink description: Opens the syndicate uplink embedded under your skin - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction itemIconStyle: BigAction @@ -126,7 +126,7 @@ id: ActionActivateEmpImplant name: Activate EMP description: Triggers a small EMP pulse around you - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction checkCanInteract: false @@ -143,7 +143,7 @@ id: ActionActivateScramImplant name: SCRAM! description: Randomly teleports you within a large distance. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction checkCanInteract: false @@ -160,7 +160,7 @@ id: ActionActivateDnaScramblerImplant name: Scramble DNA description: Randomly changes your name and appearance. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction charges: 1 @@ -175,7 +175,7 @@ id: ActionMorphGeras name: Morph into Geras description: Morphs you into a Geras - a miniature version of you which allows you to move fast, at the cost of your inventory. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction itemIconStyle: BigAction @@ -190,7 +190,7 @@ id: ActionToggleSuitPiece name: Toggle Suit Piece description: Remember to equip the important pieces of your suit before going into action. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction itemIconStyle: BigItem @@ -201,7 +201,7 @@ id: ActionCombatModeToggle name: "[color=red]Combat Mode[/color]" description: Enter combat mode - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction checkCanInteract: false @@ -216,7 +216,7 @@ parent: ActionCombatModeToggle name: "[color=red]Combat Mode[/color]" description: Enter combat mode - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction enabled: false @@ -227,7 +227,7 @@ id: ActionChangeVoiceMask name: Set name description: Change the name others hear to something else. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: { sprite: Interface/Actions/voice-mask.rsi, state: icon } @@ -237,7 +237,7 @@ id: ActionVendingThrow name: Dispense Item description: Randomly dispense an item from your stock. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction useDelay: 30 @@ -247,7 +247,7 @@ id: ActionArtifactActivate name: Activate Artifact description: Immediately activates your current artifact node. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: @@ -260,7 +260,7 @@ id: ActionToggleBlock name: Block description: Raise or lower your shield. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: { sprite: Objects/Weapons/Melee/shields.rsi, state: teleriot-icon } @@ -271,7 +271,7 @@ id: ActionClearNetworkLinkOverlays name: Clear network link overlays description: Clear network link overlays. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction clientExclusive: true @@ -285,7 +285,7 @@ id: ActionAnimalLayEgg name: Lay egg description: Uses hunger to lay an egg. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: { sprite: Objects/Consumable/Food/egg.rsi, state: icon } @@ -296,7 +296,7 @@ id: ActionSleep name: Sleep description: Go to sleep. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction checkCanInteract: false @@ -308,7 +308,7 @@ id: ShadowkinActionSleep name: action-name-shadowkin-rest description: action-description-shadowkin-rest - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction checkCanInteract: false @@ -320,7 +320,7 @@ id: ActionWake name: Wake up description: Stop sleeping. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: { sprite: Clothing/Head/Hats/pyjamasyndicatered.rsi, state: icon } @@ -332,7 +332,7 @@ id: ActionActivateHonkImplant name: Honk description: Activates your honking implant, which will produce the signature sound of the clown. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: { sprite: Objects/Fun/bikehorn.rsi, state: icon } @@ -343,7 +343,7 @@ id: ActionFireStarter name: Ignite description: Ignites enemies in a radius around you. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction priority: -1 @@ -355,7 +355,7 @@ id: ActionToggleEyes name: Open/Close eyes description: Close your eyes to protect your peepers, or open your eyes to enjoy the pretty lights. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: Interface/Actions/eyeopen.png @@ -369,7 +369,7 @@ id: ActionToggleWagging name: action-name-toggle-wagging description: action-description-toggle-wagging - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: { sprite: Interface/Actions/wagging.rsi, state: icon } @@ -382,7 +382,7 @@ id: ActionFabricateLollipop name: action-name-fabricate-lollipop description: action-description-fabricate-lollipop - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: { sprite: Nyanotrasen/Objects/Consumable/Food/candy.rsi, state: lollipop } @@ -395,7 +395,7 @@ id: ActionFabricateGumball name: action-name-fabricate-gumball description: action-description-fabricate-gumball - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: { sprite: Nyanotrasen/Objects/Consumable/Food/candy.rsi, state: gumball } diff --git a/Resources/Prototypes/Alerts/categories.yml b/Resources/Prototypes/Alerts/categories.yml new file mode 100644 index 00000000000..1e79d2615bb --- /dev/null +++ b/Resources/Prototypes/Alerts/categories.yml @@ -0,0 +1,38 @@ +- type: alertCategory + id: Pressure + +- type: alertCategory + id: Temperature + +- type: alertCategory + id: Breathing + +- type: alertCategory + id: Buckled + +- type: alertCategory + id: Health + +- type: alertCategory + id: Internals + +- type: alertCategory + id: Stamina + +- type: alertCategory + id: Piloting + +- type: alertCategory + id: Hunger + +- type: alertCategory + id: Thirst + +- type: alertCategory + id: Toxins + +- type: alertCategory + id: Battery + +- type: alertCategory + id: Mood diff --git a/Resources/Prototypes/Body/Organs/Animal/animal.yml b/Resources/Prototypes/Body/Organs/Animal/animal.yml index 2f50821df35..9355f9835e1 100644 --- a/Resources/Prototypes/Body/Organs/Animal/animal.yml +++ b/Resources/Prototypes/Body/Organs/Animal/animal.yml @@ -34,13 +34,14 @@ id: OrganAnimalLungs parent: BaseAnimalOrgan name: lungs - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite layers: - state: lung-l - state: lung-r - type: Organ + slotId: lungs - type: Lung - type: Metabolizer removeEmpty: true @@ -65,11 +66,12 @@ id: OrganAnimalStomach parent: BaseAnimalOrgan name: stomach - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite state: stomach - type: Organ + slotId: stomach - type: SolutionContainerManager solutions: stomach: @@ -91,7 +93,7 @@ id: OrganMouseStomach parent: OrganAnimalStomach name: stomach - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: SolutionContainerManager solutions: @@ -102,11 +104,13 @@ id: OrganAnimalLiver parent: BaseAnimalOrgan name: liver - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite state: liver - type: Organ + slotId: liver + - type: Liver - type: Metabolizer maxReagents: 1 metabolizerTypes: [ Animal ] @@ -118,11 +122,13 @@ id: OrganAnimalHeart parent: BaseAnimalOrgan name: heart - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite state: heart-on - type: Organ + slotId: heart + - type: Heart - type: Metabolizer maxReagents: 2 metabolizerTypes: [ Animal ] @@ -135,14 +141,33 @@ id: OrganAnimalKidneys parent: BaseAnimalOrgan name: kidneys - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite layers: - state: kidney-l - state: kidney-r - type: Organ + slotId: kidneys - type: Metabolizer maxReagents: 5 metabolizerTypes: [ Animal ] removeEmpty: true + +- type: entity + parent: OrganAnimalLungs + id: OrganSpaceAnimalLungs + name: space animal lungs + components: + - type: Organ + onAdd: + - type: RespiratorImmune + +- type: entity + parent: OrganAnimalHeart + id: OrganSpaceAnimalHeart + name: space animal heart + components: + - type: Organ + onAdd: + - type: PressureImmunity diff --git a/Resources/Prototypes/Body/Organs/Animal/bloodsucker.yml b/Resources/Prototypes/Body/Organs/Animal/bloodsucker.yml index 8a1afc37bb1..10cf620addc 100644 --- a/Resources/Prototypes/Body/Organs/Animal/bloodsucker.yml +++ b/Resources/Prototypes/Body/Organs/Animal/bloodsucker.yml @@ -2,7 +2,7 @@ id: OrganBloodsuckerStomach parent: OrganAnimalStomach name: stomach - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Metabolizer metabolizerTypes: [ Bloodsucker ] @@ -11,7 +11,7 @@ id: OrganBloodsuckerLiver parent: OrganAnimalLiver name: liver - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Metabolizer metabolizerTypes: [ Bloodsucker ] @@ -20,7 +20,7 @@ id: OrganBloodsuckerHeart parent: OrganAnimalHeart name: heart - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Metabolizer metabolizerTypes: [ Bloodsucker ] diff --git a/Resources/Prototypes/Body/Organs/Animal/ruminant.yml b/Resources/Prototypes/Body/Organs/Animal/ruminant.yml index 3c3062ddec0..6bd7c2d4024 100644 --- a/Resources/Prototypes/Body/Organs/Animal/ruminant.yml +++ b/Resources/Prototypes/Body/Organs/Animal/ruminant.yml @@ -2,7 +2,7 @@ id: OrganAnimalRuminantStomach parent: OrganAnimalStomach name: ruminant stomach - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: SolutionContainerManager solutions: diff --git a/Resources/Prototypes/Body/Organs/Animal/slimes.yml b/Resources/Prototypes/Body/Organs/Animal/slimes.yml index f1a3d47e667..baa6674a471 100644 --- a/Resources/Prototypes/Body/Organs/Animal/slimes.yml +++ b/Resources/Prototypes/Body/Organs/Animal/slimes.yml @@ -8,6 +8,8 @@ sprite: Mobs/Species/Slime/organs.rsi state: brain-slime - type: Stomach + - type: Organ + slotId: core - type: Metabolizer maxReagents: 3 metabolizerTypes: [ Slime ] @@ -38,6 +40,8 @@ - state: lung-r-slime - type: Lung alert: LowNitrogen + - type: Organ + slotId: lungs - type: Metabolizer removeEmpty: true solutionOnBody: false diff --git a/Resources/Prototypes/Body/Organs/Friendstomach.yml b/Resources/Prototypes/Body/Organs/Friendstomach.yml index a20bbbe75bc..8dc992b08fb 100644 --- a/Resources/Prototypes/Body/Organs/Friendstomach.yml +++ b/Resources/Prototypes/Body/Organs/Friendstomach.yml @@ -1,7 +1,7 @@ - type: entity id: OrganFriendStomach parent: OrganAnimalStomach - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Stomach - type: SolutionContainerManager diff --git a/Resources/Prototypes/Body/Organs/arachnid.yml b/Resources/Prototypes/Body/Organs/arachnid.yml index c1e199e1121..ad5849a9731 100644 --- a/Resources/Prototypes/Body/Organs/arachnid.yml +++ b/Resources/Prototypes/Body/Organs/arachnid.yml @@ -36,6 +36,8 @@ state: stomach - type: Stomach updateInterval: 1.5 + - type: Organ + slotId: stomach - type: SolutionContainerManager solutions: stomach: @@ -59,6 +61,8 @@ - state: lung-l - state: lung-r - type: Lung + - type: Organ + slotId: lungs - type: Metabolizer updateInterval: 1.5 removeEmpty: true @@ -91,6 +95,9 @@ components: - type: Sprite state: heart-on + - type: Heart + - type: Organ + slotId: heart - type: Metabolizer updateInterval: 1.5 maxReagents: 2 @@ -105,10 +112,13 @@ parent: BaseHumanOrgan name: liver description: "Pairing suggestion: chianti and fava beans." - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite state: liver + - type: Liver + - type: Organ + slotId: liver - type: Metabolizer # The liver metabolizes certain chemicals only, like alcohol. updateInterval: 1.5 maxReagents: 1 @@ -122,7 +132,7 @@ parent: BaseHumanOrgan name: kidneys description: "Filters toxins from the bloodstream." - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite layers: @@ -145,6 +155,9 @@ layers: - state: eyeball-l - state: eyeball-r + - type: Eyes + - type: Organ + slotId: eyes - type: entity id: OrganArachnidTongue diff --git a/Resources/Prototypes/Body/Organs/cybernetic.yml b/Resources/Prototypes/Body/Organs/cybernetic.yml new file mode 100644 index 00000000000..a7e68c5a29b --- /dev/null +++ b/Resources/Prototypes/Body/Organs/cybernetic.yml @@ -0,0 +1,51 @@ +- type: entity + parent: OrganHumanEyes + abstract: true + id: BaseCyberneticEyes + components: + - type: Cybernetics + - type: Sprite + sprite: Mobs/Species/IPC/organs.rsi + state: "eyes" + +- type: entity + parent: BaseCyberneticEyes + id: BasicCyberneticEyes + name: cybernetic eyes + description: A pair of cybernetic eyes that enhance your vision, and protect you from eye damage. + components: + - type: Organ + onAdd: + - type: FlashImmunity + - type: EyeProtection + +- type: entity + parent: BaseCyberneticEyes + id: SecurityCyberneticEyes + name: cybernetic security eyes + description: A pair of cybernetic eyes that enhance your vision, featuring an integrated SecHUD. + components: + - type: Organ + onAdd: + - type: FlashImmunity + - type: EyeProtection + - type: ShowJobIcons + - type: ShowMindShieldIcons + - type: ShowCriminalRecordIcons + +- type: entity + parent: BaseCyberneticEyes + id: MedicalCyberneticEyes + name: cybernetic diagnostic eyes + description: A pair of cybernetic eyes that enhance your vision, featuring an integrated MedHUD. + components: + - type: Organ + onAdd: + - type: FlashImmunity + - type: EyeProtection + - type: ShowHealthBars + damageContainers: + - Biological + - type: ShowHealthIcons + damageContainers: + - Biological diff --git a/Resources/Prototypes/Body/Organs/diona.yml b/Resources/Prototypes/Body/Organs/diona.yml index a2133f7f90a..79e28e4cf40 100644 --- a/Resources/Prototypes/Body/Organs/diona.yml +++ b/Resources/Prototypes/Body/Organs/diona.yml @@ -34,6 +34,9 @@ - type: Sprite sprite: Mobs/Species/Diona/organs.rsi state: brain + - type: Brain + - type: Organ + slotId: brain - type: SolutionContainerManager solutions: organ: @@ -60,6 +63,8 @@ layers: - state: eyeball-l - state: eyeball-r + - type: Eyes + - type: entity id: OrganDionaStomach @@ -69,6 +74,8 @@ components: - type: Sprite state: stomach + - type: Organ + slotId: stomach - type: SolutionContainerManager solutions: stomach: @@ -104,6 +111,8 @@ - state: lung-l - state: lung-r - type: Lung + - type: Organ + slotId: lungs - type: Metabolizer removeEmpty: true solutionOnBody: false @@ -127,7 +136,7 @@ - type: entity id: OrganDionaBrainNymph parent: OrganDionaBrain - noSpawn: true + categories: [ HideSpawnMenu ] name: brain description: "The source of incredible, unending intelligence. Honk." components: @@ -139,7 +148,7 @@ - type: entity id: OrganDionaStomachNymph parent: OrganDionaStomach - noSpawn: true + categories: [ HideSpawnMenu ] name: stomach description: "Gross. This is hard to stomach." components: @@ -149,7 +158,7 @@ - type: entity id: OrganDionaLungsNymph parent: OrganDionaLungs - noSpawn: true + categories: [ HideSpawnMenu ] name: lungs description: "Filters oxygen from an atmosphere, which is then sent into the bloodstream to be used as an electron carrier." components: @@ -160,7 +169,7 @@ - type: entity id: OrganDionaNymphBrain parent: MobDionaNymph - noSpawn: true + categories: [ HideSpawnMenu ] name: diona nymph suffix: Brain description: Contains the brain of a formerly fully-formed Diona. Killing this would kill the Diona forever. You monster. @@ -172,7 +181,7 @@ - type: entity id: OrganDionaNymphStomach parent: MobDionaNymphAccent - noSpawn: true + categories: [ HideSpawnMenu ] name: diona nymph suffix: Stomach description: Contains the stomach of a formerly fully-formed Diona. It doesn't taste any better for it. @@ -184,7 +193,7 @@ - type: entity id: OrganDionaNymphLungs parent: MobDionaNymphAccent - noSpawn: true + categories: [ HideSpawnMenu ] name: diona nymph suffix: Lungs description: Contains the lungs of a formerly fully-formed Diona. Breathtaking. diff --git a/Resources/Prototypes/Body/Organs/felinid.yml b/Resources/Prototypes/Body/Organs/felinid.yml new file mode 100644 index 00000000000..0c6c7ea91d2 --- /dev/null +++ b/Resources/Prototypes/Body/Organs/felinid.yml @@ -0,0 +1,24 @@ +- type: entity + id: OrganFelinidEars + parent: OrganHumanEars + name: cat ears + description: "Holding these might potentially be contagious." + components: + - type: Sprite + sprite: Clothing/Head/Hats/catears.rsi + state: icon + - type: MarkingContainer + marking: FelinidEarsBasic + +- type: entity + id: OrganFelinidTail + parent: BaseHumanOrgan + name: cat tail + description: "Should you really have this?" + components: + - type: Sprite + sprite: Nyanotrasen/Mobs/Customization/felinid_tails.rsi + state: basic_tail_tip + - type: MarkingContainer + marking: FelinidTailBasic + - type: Tail diff --git a/Resources/Prototypes/Body/Organs/generic.yml b/Resources/Prototypes/Body/Organs/generic.yml new file mode 100644 index 00000000000..9f032de0748 --- /dev/null +++ b/Resources/Prototypes/Body/Organs/generic.yml @@ -0,0 +1,23 @@ +- type: entity + parent: OrganHumanHeart + id: BioSynthHeart + name: bio-synthetic heart + description: This heart can be transplanted into any living organism and it will adapt to its recipient. + +- type: entity + parent: OrganHumanLiver + id: BioSynthLiver + name: bio-synthetic liver + description: This liver can be transplanted into any living organism and it will adapt to its recipient. + +- type: entity + parent: OrganHumanLungs + id: BioSynthLungs + name: bio-synthetic lungs + description: These lungs can be transplanted into any living organism and it will adapt to its recipient. + +- type: entity + parent: OrganHumanEyes + id: BioSynthEyes + name: bio-synthetic eyes + description: These eyes can be transplanted into any living organism and it will adapt to its recipient. diff --git a/Resources/Prototypes/Body/Organs/human.yml b/Resources/Prototypes/Body/Organs/human.yml index e6a04d4a60c..b088455e6b5 100644 --- a/Resources/Prototypes/Body/Organs/human.yml +++ b/Resources/Prototypes/Body/Organs/human.yml @@ -43,6 +43,7 @@ - type: Sprite state: brain - type: Organ + slotId: brain - type: Input context: "ghost" - type: Brain @@ -74,6 +75,9 @@ name: eyes description: "I see you!" components: + - type: Organ + slotId: eyes + - type: Eyes - type: Sprite layers: - state: eyeball-l @@ -107,6 +111,7 @@ components: - type: Sprite state: ears + - type: Ears - type: entity id: OrganHumanLungs @@ -119,6 +124,8 @@ - state: lung-l - state: lung-r - type: Lung + - type: Organ + slotId: lungs - type: Metabolizer removeEmpty: true solutionOnBody: false @@ -148,6 +155,9 @@ name: heart description: "I feel bad for the heartless bastard who lost this." components: + - type: Heart + - type: Organ + slotId: heart - type: Sprite state: heart-on # The heart 'metabolizes' medicines and poisons that aren't filtered out by other organs. @@ -179,6 +189,8 @@ - ReagentId: UncookedAnimalProteins Quantity: 5 - type: Stomach + - type: Organ + slotId: stomach # The stomach metabolizes stuff like foods and drinks. # TODO: Have it work off of the ent's solution container, and move this # to intestines instead. @@ -196,6 +208,9 @@ name: liver description: "Pairing suggestion: chianti and fava beans." components: + - type: Liver + - type: Organ + slotId: liver - type: Sprite state: liver - type: Metabolizer # The liver metabolizes certain chemicals only, like alcohol. diff --git a/Resources/Prototypes/Body/Organs/ipc.yml b/Resources/Prototypes/Body/Organs/ipc.yml index bc8d6c827ca..24e98bfa55c 100644 --- a/Resources/Prototypes/Body/Organs/ipc.yml +++ b/Resources/Prototypes/Body/Organs/ipc.yml @@ -28,6 +28,8 @@ - state: eyeball-l - state: eyeball-r - type: Organ + slotId: eyes + - type: Eyes - type: entity id: OrganIPCTongue @@ -48,6 +50,7 @@ - type: Sprite state: ears - type: Organ + - type: Ears - type: entity id: OrganIPCPump @@ -58,6 +61,8 @@ - type: Sprite state: heart-on - type: Organ + slotId: heart + - type: Heart # The heart 'metabolizes' medicines and poisons that aren't filtered out by other organs. # This is done because these chemicals need to have some effect even if they aren't being filtered out of your body. # You're technically 'immune to poison' without a heart, but.. uhh, you'll have bigger problems on your hands. diff --git a/Resources/Prototypes/Body/Organs/moth.yml b/Resources/Prototypes/Body/Organs/moth.yml index 9b94e77b7eb..418c492d61b 100644 --- a/Resources/Prototypes/Body/Organs/moth.yml +++ b/Resources/Prototypes/Body/Organs/moth.yml @@ -1,7 +1,8 @@ - type: entity id: OrganMothStomach + name: moth stomach parent: [OrganAnimalStomach, OrganHumanStomach] - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Stomach specialDigestible: diff --git a/Resources/Prototypes/Body/Organs/reptilian.yml b/Resources/Prototypes/Body/Organs/reptilian.yml index f8423582cc2..34c736aec8b 100644 --- a/Resources/Prototypes/Body/Organs/reptilian.yml +++ b/Resources/Prototypes/Body/Organs/reptilian.yml @@ -1,7 +1,7 @@ - type: entity id: OrganReptilianStomach parent: OrganAnimalStomach - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Stomach specialDigestible: diff --git a/Resources/Prototypes/Body/Organs/slime.yml b/Resources/Prototypes/Body/Organs/slime.yml index 5b908e75f48..2a3c0d2837c 100644 --- a/Resources/Prototypes/Body/Organs/slime.yml +++ b/Resources/Prototypes/Body/Organs/slime.yml @@ -8,6 +8,8 @@ sprite: Mobs/Species/Slime/organs.rsi state: brain-slime - type: Stomach + - type: Organ + slotId: core - type: Metabolizer maxReagents: 6 metabolizerTypes: [ Slime ] @@ -46,6 +48,8 @@ layers: - state: lung-l-slime - state: lung-r-slime + - type: Organ + slotId: lungs - type: Lung alert: LowNitrogen - type: Metabolizer diff --git a/Resources/Prototypes/Body/Organs/vox.yml b/Resources/Prototypes/Body/Organs/vox.yml index 1b4d12116f8..c5355af6b09 100644 --- a/Resources/Prototypes/Body/Organs/vox.yml +++ b/Resources/Prototypes/Body/Organs/vox.yml @@ -1,5 +1,6 @@ - type: entity id: OrganVoxLungs + name: vox lungs parent: OrganHumanLungs suffix: "vox" components: diff --git a/Resources/Prototypes/Body/Parts/animal.yml b/Resources/Prototypes/Body/Parts/animal.yml index 4db026b40fb..bfd90d4fad4 100644 --- a/Resources/Prototypes/Body/Parts/animal.yml +++ b/Resources/Prototypes/Body/Parts/animal.yml @@ -12,7 +12,7 @@ - type: Sprite sprite: Mobs/Species/Reptilian/parts.rsi - type: Damageable - damageContainer: Biological + damageContainer: OrganicPart # Shitmed - type: BodyPart - type: ContainerContainer containers: @@ -36,7 +36,7 @@ id: HandsAnimal name: animal hands parent: PartAnimal - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite layers: @@ -50,7 +50,7 @@ id: LegsAnimal name: animal legs parent: PartAnimal - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite layers: @@ -64,7 +64,7 @@ id: FeetAnimal name: animal feet parent: PartAnimal - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite layers: @@ -77,7 +77,7 @@ id: TorsoAnimal name: animal torso parent: PartAnimal - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite layers: @@ -94,3 +94,51 @@ - ReagentId: Blood Quantity: 20 +# Monkey head for borging/transplanting pun pun +- type: entity + parent: [PartAnimal, BaseHead] + id: HeadAnimal + name: animal head + categories: [ HideSpawnMenu ] + components: + - type: Sprite + layers: + - state: head_m + +- type: entity + abstract: true + parent: PartAnimal + id: BaseCarpPart + components: + - type: Sprite + sprite: Mobs/Aliens/Carps/carp_parts.rsi + +- type: entity + categories: [ HideSpawnMenu ] + parent: BaseCarpPart + id: TailCarp + name: carp tail + description: Unique glands in this tail let space carp fly in a vacuum. + components: + - type: Sprite + layers: + - state: tail + - type: BodyPart + partType: Tail + - type: MovementBodyPart + walkSpeed: 2.5 + sprintSpeed: 3.5 + # TODO: Make it actually needed. Legs are hardcoded to be the only parts that matter for movement. + # TODO: space flight stuff + +- type: entity + categories: [ HideSpawnMenu ] + parent: BaseCarpPart + id: TorsoCarp + name: carp torso + components: + - type: Sprite + layers: + - state: torso + - type: BodyPart + partType: Torso diff --git a/Resources/Prototypes/Body/Parts/base.yml b/Resources/Prototypes/Body/Parts/base.yml index 836d0f140af..356b9618560 100644 --- a/Resources/Prototypes/Body/Parts/base.yml +++ b/Resources/Prototypes/Body/Parts/base.yml @@ -1,5 +1,4 @@ -# TODO: Add descriptions (many) -# TODO BODY: Part damage + # Shitmed Change Start - type: entity id: BasePart parent: BaseItem @@ -7,8 +6,13 @@ abstract: true components: - type: Damageable - damageContainer: Biological + damageContainer: OrganicPart - type: BodyPart + - type: SurgeryTool + startSound: + path: /Audio/Medical/Surgery/organ1.ogg + endSound: + path: /Audio/Medical/Surgery/organ2.ogg - type: Gibbable - type: ContainerContainer containers: @@ -19,6 +23,35 @@ - type: Tag tags: - Trash + - type: Destructible + thresholds: + - trigger: + !type:DamageTypeTrigger + damageType: Blunt + damage: 100 + behaviors: + - !type:GibPartBehavior { } + - trigger: + !type:DamageTypeTrigger + damageType: Slash + damage: 150 + behaviors: + - !type:GibPartBehavior { } + - trigger: + !type:DamageTypeTrigger + damageType: Heat + damage: 200 + behaviors: + - !type:SpawnEntitiesBehavior + spawnInContainer: true + spawn: + Ash: + min: 1 + max: 1 + - !type:BurnBodyBehavior { } + - !type:PlaySoundBehavior + sound: + collection: MeatLaserImpact - type: entity id: BaseTorso @@ -28,6 +61,16 @@ components: - type: BodyPart partType: Torso + toolName: "a torso" + containerName: "torso_slot" + - type: ContainerContainer + containers: + torso_slot: !type:ContainerSlot {} + - type: DamageOtherOnHit + damage: + types: + Blunt: 11 + staminaCost: 12 - type: entity id: BaseHead @@ -37,12 +80,18 @@ components: - type: BodyPart partType: Head + toolName: "a head" vital: true - type: Input context: "ghost" - type: Tag tags: - Head + - type: DamageOtherOnHit + damage: + types: + Blunt: 5 + staminaCost: 5 - type: entity id: BaseLeftArm @@ -53,6 +102,12 @@ - type: BodyPart partType: Arm symmetry: Left + toolName: "a left arm" + - type: DamageOtherOnHit + damage: + types: + Blunt: 7 + staminaCost: 7 - type: entity id: BaseRightArm @@ -63,6 +118,12 @@ - type: BodyPart partType: Arm symmetry: Right + toolName: "a right arm" + - type: DamageOtherOnHit + damage: + types: + Blunt: 7 + staminaCost: 7 - type: entity id: BaseLeftHand @@ -73,6 +134,11 @@ - type: BodyPart partType: Hand symmetry: Left + toolName: "a left hand" + - type: DamageOtherOnHit + damage: + types: + Blunt: 3 - type: entity id: BaseRightHand @@ -83,6 +149,11 @@ - type: BodyPart partType: Hand symmetry: Right + toolName: "a right hand" + - type: DamageOtherOnHit + damage: + types: + Blunt: 3 - type: entity id: BaseLeftLeg @@ -93,7 +164,13 @@ - type: BodyPart partType: Leg symmetry: Left + toolName: "a left leg" - type: MovementBodyPart + - type: DamageOtherOnHit + damage: + types: + Blunt: 8 + staminaCost: 9 - type: entity id: BaseRightLeg @@ -104,7 +181,13 @@ - type: BodyPart partType: Leg symmetry: Right + toolName: "a right leg" - type: MovementBodyPart + - type: DamageOtherOnHit + damage: + types: + Blunt: 8 + staminaCost: 9 - type: entity id: BaseLeftFoot @@ -115,6 +198,11 @@ - type: BodyPart partType: Foot symmetry: Left + toolName: "a left foot" + - type: DamageOtherOnHit + damage: + types: + Blunt: 4 - type: entity id: BaseRightFoot @@ -125,3 +213,10 @@ - type: BodyPart partType: Foot symmetry: Right + toolName: "a right foot" + - type: DamageOtherOnHit + damage: + types: + Blunt: 4 + + # Shitmed Change End diff --git a/Resources/Prototypes/Body/Parts/cybernetic.yml b/Resources/Prototypes/Body/Parts/cybernetic.yml new file mode 100644 index 00000000000..fe8901e2bbe --- /dev/null +++ b/Resources/Prototypes/Body/Parts/cybernetic.yml @@ -0,0 +1,169 @@ +- type: entity + id: LeftArmCybernetic + parent: LeftArmHuman + abstract: true + components: + - type: Damageable + damageContainer: Silicon + - type: BodyPart + baseLayerId: MobCyberneticBishopLArm + - type: GenerateChildPart + id: LeftHandCybernetic + - type: Cybernetics + - type: Sprite + sprite: Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi + state: "l_arm-combined" + +- type: entity + id: RightArmCybernetic + parent: RightArmHuman + abstract: true + components: + - type: Damageable + damageContainer: Silicon + - type: BodyPart + baseLayerId: MobCyberneticBishopRArm + - type: GenerateChildPart + id: RightHandCybernetic + - type: Cybernetics + - type: Sprite + sprite: Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi + state: "r_arm-combined" + +- type: entity + id: LeftLegCybernetic + parent: LeftLegHuman + abstract: true + components: + - type: Damageable + damageContainer: Silicon + - type: BodyPart + baseLayerId: MobCyberneticBishopLLeg + - type: GenerateChildPart + id: LeftFootCybernetic + - type: Cybernetics + - type: Sprite + sprite: Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi + state: "l_leg-combined" + +- type: entity + id: RightLegCybernetic + parent: RightLegHuman + abstract: true + components: + - type: Damageable + damageContainer: Silicon + - type: BodyPart + baseLayerId: MobCyberneticBishopRLeg + - type: GenerateChildPart + id: RightFootCybernetic + - type: Cybernetics + - type: Sprite + sprite: Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi + state: "r_leg-combined" + +- type: entity + id: LeftHandCybernetic + parent: LeftHandHuman + name: cybernetic left hand + components: + - type: Damageable + damageContainer: Silicon + - type: BodyPart + baseLayerId: MobCyberneticBishopLHand + - type: Cybernetics + - type: Sprite + sprite: Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi + state: "l_hand" + +- type: entity + id: RightHandCybernetic + parent: RightHandHuman + name: cybernetic right hand + components: + - type: Damageable + damageContainer: Silicon + - type: BodyPart + baseLayerId: MobCyberneticBishopRHand + - type: Cybernetics + - type: Sprite + sprite: Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi + state: "r_hand" + +- type: entity + id: LeftFootCybernetic + parent: LeftFootHuman + name: cybernetic left foot + components: + - type: Damageable + damageContainer: Silicon + - type: BodyPart + baseLayerId: MobCyberneticBishopLFoot + - type: Cybernetics + - type: Sprite + sprite: Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi + state: "l_foot" + +- type: entity + id: RightFootCybernetic + parent: RightFootHuman + name: cybernetic right foot + components: + - type: Damageable + damageContainer: Silicon + - type: BodyPart + baseLayerId: MobCyberneticBishopRFoot + - type: Cybernetics + - type: Sprite + sprite: Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi + state: "r_foot" + +- type: entity + parent: LeftArmCybernetic + id: JawsOfLifeLeftArm + name: J.W.L left arm + description: A cybernetic left arm with the ability to pry doors open. + components: + - type: BodyPart + onAdd: + - type: Prying + speedModifier: 1.5 + pryPowered: true + +- type: entity + parent: RightArmCybernetic + id: JawsOfLifeRightArm + name: J.W.L right arm + description: A cybernetic right arm with the ability to pry doors open. + components: + - type: BodyPart + onAdd: + - type: Prying + speedModifier: 1.5 + pryPowered: true + +- type: entity + parent: LeftLegCybernetic + id: SpeedLeftLeg + name: S.P.E.E.D left leg + description: A cybernetic left leg that allows its wearer to run faster. + components: + - type: MovementBodyPart + walkSpeed: 3.125 + sprintSpeed: 5.625 + - type: BodyPart + onAdd: + - type: NoSlip + +- type: entity + parent: RightLegCybernetic + id: SpeedRightLeg + name: S.P.E.E.D right leg + description: A cybernetic left leg that allows its wearer to run faster. + components: + - type: MovementBodyPart + walkSpeed: 3.125 + sprintSpeed: 5.625 + - type: BodyPart + onAdd: + - type: NoSlip diff --git a/Resources/Prototypes/Body/Parts/generic.yml b/Resources/Prototypes/Body/Parts/generic.yml new file mode 100644 index 00000000000..ef97ac86d88 --- /dev/null +++ b/Resources/Prototypes/Body/Parts/generic.yml @@ -0,0 +1,103 @@ +- type: entity + parent: LeftArmHuman + id: BioSynthLeftArm + name: bio-synthetic left arm + description: This left arm can be transplanted into any living organism and it will adapt to its recipient. + components: + - type: BodyPart + children: + left hand: + id: "left hand" + type: Hand + +- type: entity + parent: RightArmHuman + id: BioSynthRightArm + name: bio-synthetic right arm + description: This right arm can be transplanted into any living organism and it will adapt to its recipient. + components: + - type: BodyPart + children: + right hand: + id: "right hand" + type: Hand + +- type: entity + parent: LeftHandHuman + id: BioSynthLeftHand + name: bio-synthetic left hand + description: This left hand can be transplanted into any living organism and it will adapt to its recipient. + +- type: entity + parent: RightHandHuman + id: BioSynthRightHand + name: bio-synthetic right hand + description: This right hand can be transplanted into any living organism and it will adapt to its recipient. + +- type: entity + parent: LeftLegHuman + id: BioSynthLeftLeg + name: bio-synthetic left leg + description: This left leg can be transplanted into any living organism and it will adapt to its recipient. + components: + - type: BodyPart + children: + right foot: + id: "right foot" + type: Foot + +- type: entity + parent: RightLegHuman + id: BioSynthRightLeg + name: bio-synthetic right leg + description: This right leg can be transplanted into any living organism and it will adapt to its recipient. + components: + - type: BodyPart + children: + right foot: + id: "right foot" + type: Foot + +- type: entity + parent: LeftFootHuman + id: BioSynthLeftFoot + name: bio-synthetic left foot + description: This left foot can be transplanted into any living organism and it will adapt to its recipient. + +- type: entity + parent: RightFootHuman + id: BioSynthRightFoot + name: bio-synthetic right foot + description: This right foot can be transplanted into any living organism and it will adapt to its recipient. + +# JOKE ITEMS + +- type: entity + parent: LeftArmHuman + id: PizzaLeftArm + name: pizza left arm + description: For when you want to turn someone into a Space John's. + components: + - type: BodyPart + partType: Arm + symmetry: Left + toolName: "a left arm" + baseLayerId: MobPizzaLArm + - type: Sprite + sprite: Mobs/Species/Misc/Pizza/parts.rsi + state: "l_arm" + +- type: entity + parent: RightArmHuman + id: PizzaRightArm + name: pizza right arm + description: For when you want to turn someone into a Space John's. + components: + - type: BodyPart + partType: Arm + symmetry: Right + toolName: "a right arm" + baseLayerId: MobPizzaRArm + - type: Sprite + sprite: Mobs/Species/Misc/Pizza/parts.rsi + state: "r_arm" diff --git a/Resources/Prototypes/Body/Parts/harpy.yml b/Resources/Prototypes/Body/Parts/harpy.yml index 9e51334406f..177db98c0f7 100644 --- a/Resources/Prototypes/Body/Parts/harpy.yml +++ b/Resources/Prototypes/Body/Parts/harpy.yml @@ -1,3 +1,4 @@ +# Shitmed Change Start - WHY DIDNT YOU INHERIT FROM BASE PART SOLIDUS??? - type: entity id: PartHarpy parent: BaseItem @@ -5,7 +6,9 @@ abstract: true components: - type: Damageable - damageContainer: Biological + damageContainer: OrganicPart + - type: Gibbable + - type: SurgeryTool - type: BodyPart - type: ContainerContainer containers: @@ -16,6 +19,36 @@ - type: Tag tags: - Trash + - type: Destructible + thresholds: + - trigger: + !type:DamageTypeTrigger + damageType: Blunt + damage: 50 + behaviors: + - !type:GibPartBehavior { } + - trigger: + !type:DamageTypeTrigger + damageType: Slash + damage: 100 + behaviors: + - !type:GibPartBehavior { } + - trigger: + !type:DamageTypeTrigger + damageType: Heat + damage: 200 + behaviors: + - !type:SpawnEntitiesBehavior + spawnInContainer: true + spawn: + Ash: + min: 1 + max: 1 + - !type:BurnBodyBehavior { } + - !type:PlaySoundBehavior + sound: + collection: MeatLaserImpact + - type: entity id: TorsoHarpy @@ -31,6 +64,11 @@ state: "torso_m" - type: BodyPart partType: Torso + toolName: "a torso" + containerName: "torso_slot" + - type: ContainerContainer + containers: + torso_slot: !type:ContainerSlot {} - type: entity id: HeadHarpy @@ -46,6 +84,7 @@ state: "head_m" - type: BodyPart partType: Head + toolName: "a head" vital: true - type: Input context: "ghost" @@ -70,6 +109,7 @@ - type: BodyPart partType: Arm symmetry: Left + toolName: "a left arm" - type: entity id: RightArmHarpy @@ -86,6 +126,7 @@ - type: BodyPart partType: Arm symmetry: Right + toolName: "a right arm" - type: entity id: LeftHandHarpy @@ -102,6 +143,7 @@ - type: BodyPart partType: Hand symmetry: Left + toolName: "a left hand" - type: entity id: RightHandHarpy @@ -118,6 +160,7 @@ - type: BodyPart partType: Hand symmetry: Right + toolName: "a right hand" - type: entity id: LeftLegHarpy @@ -134,6 +177,7 @@ - type: BodyPart partType: Leg symmetry: Left + toolName: "a left leg" - type: MovementBodyPart - type: entity @@ -151,6 +195,7 @@ - type: BodyPart partType: Leg symmetry: Right + toolName: "a right leg" - type: MovementBodyPart - type: entity @@ -168,6 +213,7 @@ - type: BodyPart partType: Foot symmetry: Left + toolName: "a left foot" - type: entity id: RightFootHarpy @@ -184,3 +230,6 @@ - type: BodyPart partType: Foot symmetry: Right + toolName: "a right foot" + +# Shitmed Change End diff --git a/Resources/Prototypes/Body/Parts/rat.yml b/Resources/Prototypes/Body/Parts/rat.yml index 6a66eecc489..bd51e006f70 100644 --- a/Resources/Prototypes/Body/Parts/rat.yml +++ b/Resources/Prototypes/Body/Parts/rat.yml @@ -4,7 +4,7 @@ id: TorsoRat name: "animal torso" parent: PartAnimal - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: BodyPart partType: Torso diff --git a/Resources/Prototypes/Body/Parts/shadowkin.yml b/Resources/Prototypes/Body/Parts/shadowkin.yml index 0ddff93443c..f8ca620a409 100644 --- a/Resources/Prototypes/Body/Parts/shadowkin.yml +++ b/Resources/Prototypes/Body/Parts/shadowkin.yml @@ -10,7 +10,7 @@ - type: Icon sprite: Mobs/Species/Shadowkin/parts.rsi - type: Damageable - damageContainer: Biological + damageContainer: OrganicPart # Shitmed - type: BodyPart - type: ContainerContainer containers: diff --git a/Resources/Prototypes/Body/Parts/silicon.yml b/Resources/Prototypes/Body/Parts/silicon.yml index 24d88276ccb..092504960a0 100644 --- a/Resources/Prototypes/Body/Parts/silicon.yml +++ b/Resources/Prototypes/Body/Parts/silicon.yml @@ -25,6 +25,12 @@ - type: GuideHelp guides: - Cyborgs + - type: SurgeryTool + startSound: + path: /Audio/Medical/Surgery/organ1.ogg + endSound: + path: /Audio/Medical/Surgery/organ2.ogg + - type: Gibbable - type: entity id: BaseBorgArmLeft @@ -33,8 +39,13 @@ abstract: true components: - type: BodyPart - partType: Hand + partType: Arm symmetry: Left + toolName: "a left arm" + children: + left hand: + id: "left hand" + type: Hand - type: Tag tags: - Trash @@ -47,8 +58,13 @@ abstract: true components: - type: BodyPart - partType: Hand + partType: Arm symmetry: Right + toolName: "a right arm" + children: + right hand: + id: "right hand" + type: Hand - type: Tag tags: - Trash @@ -63,10 +79,16 @@ - type: BodyPart partType: Leg symmetry: Left + toolName: "a left leg" + children: + left foot: + id: "left foot" + type: Foot - type: Tag tags: - Trash - BorgLeg + - type: MovementBodyPart - type: entity id: BaseBorgLegRight @@ -77,10 +99,16 @@ - type: BodyPart partType: Leg symmetry: Right + toolName: "a right leg" + children: + right foot: + id: "right foot" + type: Foot - type: Tag tags: - Trash - BorgLeg + - type: MovementBodyPart - type: entity id: BaseBorgHead diff --git a/Resources/Prototypes/Body/Parts/skeleton.yml b/Resources/Prototypes/Body/Parts/skeleton.yml index ffba0c7c44a..12ce54e614d 100644 --- a/Resources/Prototypes/Body/Parts/skeleton.yml +++ b/Resources/Prototypes/Body/Parts/skeleton.yml @@ -6,7 +6,7 @@ abstract: true components: - type: Damageable - damageContainer: Biological + damageContainer: OrganicPart # Shitmed - type: BodyPart - type: ContainerContainer containers: @@ -18,6 +18,35 @@ - type: Tag tags: - Trash + - type: Destructible + thresholds: + - trigger: + !type:DamageTypeTrigger + damageType: Blunt + damage: 50 + behaviors: + - !type:GibPartBehavior { } + - trigger: + !type:DamageTypeTrigger + damageType: Slash + damage: 100 + behaviors: + - !type:GibPartBehavior { } + - trigger: + !type:DamageTypeTrigger + damageType: Heat + damage: 200 + behaviors: + - !type:SpawnEntitiesBehavior + spawnInContainer: true + spawn: + Ash: + min: 1 + max: 1 + - !type:BurnBodyBehavior { } + - !type:PlaySoundBehavior + sound: + collection: MeatLaserImpact - type: entity id: TorsoSkeleton diff --git a/Resources/Prototypes/Body/Parts/vox.yml b/Resources/Prototypes/Body/Parts/vox.yml index 9f89a0c583d..505eba800f4 100644 --- a/Resources/Prototypes/Body/Parts/vox.yml +++ b/Resources/Prototypes/Body/Parts/vox.yml @@ -7,7 +7,7 @@ abstract: true components: - type: Damageable - damageContainer: Biological + damageContainer: OrganicPart # Shitmed - type: BodyPart - type: ContainerContainer containers: diff --git a/Resources/Prototypes/Body/Prototypes/Animal/animal.yml b/Resources/Prototypes/Body/Prototypes/Animal/animal.yml index a8c81f9eb60..e37f329fa97 100644 --- a/Resources/Prototypes/Body/Prototypes/Animal/animal.yml +++ b/Resources/Prototypes/Body/Prototypes/Animal/animal.yml @@ -40,4 +40,4 @@ connections: - feet feet: - part: FeetAnimal \ No newline at end of file + part: FeetAnimal diff --git a/Resources/Prototypes/Body/Prototypes/Animal/carp.yml b/Resources/Prototypes/Body/Prototypes/Animal/carp.yml new file mode 100644 index 00000000000..81bf6a4bd5c --- /dev/null +++ b/Resources/Prototypes/Body/Prototypes/Animal/carp.yml @@ -0,0 +1,17 @@ +- type: body + id: Carp + name: carp + root: torso + slots: + torso: + part: TorsoAnimal + connections: + - tail + organs: + lungs: OrganSpaceAnimalLungs # Immunity to airloss + stomach: OrganAnimalStomach + liver: OrganAnimalLiver + heart: OrganSpaceAnimalHeart # Immunity to cold + kidneys: OrganAnimalKidneys + tail: + part: TailCarp diff --git a/Resources/Prototypes/Body/Prototypes/a_ghost.yml b/Resources/Prototypes/Body/Prototypes/a_ghost.yml index 09784c3ef53..f04ed70197e 100644 --- a/Resources/Prototypes/Body/Prototypes/a_ghost.yml +++ b/Resources/Prototypes/Body/Prototypes/a_ghost.yml @@ -6,17 +6,17 @@ torso: part: TorsoHuman connections: - - right_arm - - left_arm - right_arm: + - right arm + - left arm + right arm: part: RightArmHuman connections: - - right_hand - left_arm: + - right hand + left arm: part: LeftArmHuman connections: - - left_hand - right_hand: + - left hand + right hand: part: RightHandHuman - left_hand: + left hand: part: LeftHandHuman diff --git a/Resources/Prototypes/Body/Prototypes/arachnid.yml b/Resources/Prototypes/Body/Prototypes/arachnid.yml index 97af67933cb..880b5add037 100644 --- a/Resources/Prototypes/Body/Prototypes/arachnid.yml +++ b/Resources/Prototypes/Body/Prototypes/arachnid.yml @@ -23,6 +23,7 @@ - left arm - right leg - left leg + - head right arm: part: RightArmArachnid connections: diff --git a/Resources/Prototypes/Body/Prototypes/diona.yml b/Resources/Prototypes/Body/Prototypes/diona.yml index 12ca203988c..33a65bdc5c3 100644 --- a/Resources/Prototypes/Body/Prototypes/diona.yml +++ b/Resources/Prototypes/Body/Prototypes/diona.yml @@ -16,6 +16,7 @@ - left arm - right leg - left leg + - head organs: stomach: OrganDionaStomachNymph lungs: OrganDionaLungsNymph diff --git a/Resources/Prototypes/Body/Prototypes/dwarf.yml b/Resources/Prototypes/Body/Prototypes/dwarf.yml index 592492688b7..fb5a1753ae4 100644 --- a/Resources/Prototypes/Body/Prototypes/dwarf.yml +++ b/Resources/Prototypes/Body/Prototypes/dwarf.yml @@ -17,6 +17,7 @@ - left arm - right leg - left leg + - head organs: heart: OrganDwarfHeart lungs: OrganHumanLungs diff --git a/Resources/Prototypes/Body/Prototypes/gingerbread.yml b/Resources/Prototypes/Body/Prototypes/gingerbread.yml index d5355be6412..d7a5d7bc1c4 100644 --- a/Resources/Prototypes/Body/Prototypes/gingerbread.yml +++ b/Resources/Prototypes/Body/Prototypes/gingerbread.yml @@ -17,6 +17,7 @@ - left arm - right leg - left leg + - head organs: heart: OrganHumanHeart lungs: OrganHumanLungs diff --git a/Resources/Prototypes/Body/Prototypes/human.yml b/Resources/Prototypes/Body/Prototypes/human.yml index 94c77a27d73..b46e5049bbd 100644 --- a/Resources/Prototypes/Body/Prototypes/human.yml +++ b/Resources/Prototypes/Body/Prototypes/human.yml @@ -13,37 +13,38 @@ torso: part: TorsoHuman connections: - - right_arm - - left_arm - - right_leg - - left_leg + - right arm + - left arm + - right leg + - left leg + - head organs: heart: OrganHumanHeart lungs: OrganHumanLungs stomach: OrganHumanStomach liver: OrganHumanLiver kidneys: OrganHumanKidneys - right_arm: + right arm: part: RightArmHuman connections: - - right_hand - left_arm: + - right hand + left arm: part: LeftArmHuman connections: - - left_hand - right_hand: + - left hand + right hand: part: RightHandHuman - left_hand: + left hand: part: LeftHandHuman - right_leg: + right leg: part: RightLegHuman connections: - - right_foot - left_leg: + - right foot + left leg: part: LeftLegHuman connections: - - left_foot - right_foot: + - left foot + right foot: part: RightFootHuman - left_foot: + left foot: part: LeftFootHuman diff --git a/Resources/Prototypes/Body/Prototypes/ipc.yml b/Resources/Prototypes/Body/Prototypes/ipc.yml index 6078ca7b405..56923550eb6 100644 --- a/Resources/Prototypes/Body/Prototypes/ipc.yml +++ b/Resources/Prototypes/Body/Prototypes/ipc.yml @@ -16,6 +16,7 @@ - left arm - right leg - left leg + - head organs: brain: PositronicBrain heart: OrganIPCPump diff --git a/Resources/Prototypes/Body/Prototypes/moth.yml b/Resources/Prototypes/Body/Prototypes/moth.yml index 7ebeda7fefa..5cf63a1499a 100644 --- a/Resources/Prototypes/Body/Prototypes/moth.yml +++ b/Resources/Prototypes/Body/Prototypes/moth.yml @@ -23,6 +23,7 @@ - left arm - right leg - left leg + - head right arm: part: RightArmMoth connections: diff --git a/Resources/Prototypes/Body/Prototypes/primate.yml b/Resources/Prototypes/Body/Prototypes/primate.yml index 2af9273be4c..4e73003b672 100644 --- a/Resources/Prototypes/Body/Prototypes/primate.yml +++ b/Resources/Prototypes/Body/Prototypes/primate.yml @@ -3,11 +3,19 @@ name: "primate" root: torso slots: + head: # Put pun pun into a humans body + part: HeadAnimal + connections: + - torso + organs: + brain: OrganHumanBrain + eyes: OrganHumanEyes torso: part: TorsoAnimal connections: - hands - legs + - head organs: lungs: OrganAnimalLungs stomach: OrganAnimalStomach diff --git a/Resources/Prototypes/Body/Prototypes/reptilian.yml b/Resources/Prototypes/Body/Prototypes/reptilian.yml index 1e9ebd54a48..97f9956b770 100644 --- a/Resources/Prototypes/Body/Prototypes/reptilian.yml +++ b/Resources/Prototypes/Body/Prototypes/reptilian.yml @@ -23,6 +23,7 @@ - left arm - right leg - left leg + - head right arm: part: RightArmReptilian connections: diff --git a/Resources/Prototypes/Body/Prototypes/shadowkin.yml b/Resources/Prototypes/Body/Prototypes/shadowkin.yml index 19c3f36de4b..1af8b0b8333 100644 --- a/Resources/Prototypes/Body/Prototypes/shadowkin.yml +++ b/Resources/Prototypes/Body/Prototypes/shadowkin.yml @@ -17,6 +17,7 @@ - left arm - right leg - left leg + - head organs: heart: OrganShadowkinHeart stomach: OrganShadowkinStomach @@ -45,4 +46,4 @@ right foot: part: RightFootShadowkin left foot: - part: LeftFootShadowkin \ No newline at end of file + part: LeftFootShadowkin diff --git a/Resources/Prototypes/Body/Prototypes/skeleton.yml b/Resources/Prototypes/Body/Prototypes/skeleton.yml index 16d08365610..998d01cc499 100644 --- a/Resources/Prototypes/Body/Prototypes/skeleton.yml +++ b/Resources/Prototypes/Body/Prototypes/skeleton.yml @@ -14,6 +14,7 @@ - left arm - right leg - left leg + - head right arm: part: RightArmSkeleton connections: diff --git a/Resources/Prototypes/Body/Prototypes/slime.yml b/Resources/Prototypes/Body/Prototypes/slime.yml index b57c5eceb44..df246bb0d23 100644 --- a/Resources/Prototypes/Body/Prototypes/slime.yml +++ b/Resources/Prototypes/Body/Prototypes/slime.yml @@ -14,6 +14,7 @@ - left arm - right leg - left leg + - head organs: core: SentientSlimeCore lungs: OrganSlimeLungs diff --git a/Resources/Prototypes/Body/Prototypes/vox.yml b/Resources/Prototypes/Body/Prototypes/vox.yml index 2a1f6d9dca7..42cbb7e0855 100644 --- a/Resources/Prototypes/Body/Prototypes/vox.yml +++ b/Resources/Prototypes/Body/Prototypes/vox.yml @@ -17,6 +17,7 @@ - left arm - right leg - left leg + - head organs: heart: OrganHumanHeart lungs: OrganVoxLungs diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_engines.yml b/Resources/Prototypes/Catalog/Cargo/cargo_engines.yml index 8d3bea5075c..fed135cd6a6 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_engines.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_engines.yml @@ -99,3 +99,13 @@ cost: 400 category: cargoproduct-category-name-engineering group: market + +- type: cargoProduct + id: EngineTEGKit + icon: + sprite: Structures/Power/Generation/teg.rsi + state: static + product: CrateEngineeringTEGKit + cost: 8000 + category: cargoproduct-category-name-engineering + group: market \ No newline at end of file diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_fun.yml b/Resources/Prototypes/Catalog/Cargo/cargo_fun.yml index 68bb4a6b849..771c05db0df 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_fun.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_fun.yml @@ -68,6 +68,16 @@ category: cargoproduct-category-name-fun group: market +- type: cargoProduct + id: FunSprayPaints + icon: + sprite: Objects/Fun/spraycans.rsi + state: death2_cap + product: CrateFunSprayPaints + cost: 2000 + category: Fun + group: market + - type: cargoProduct id: FunParty icon: diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_medical.yml b/Resources/Prototypes/Catalog/Cargo/cargo_medical.yml index 1addf523e4b..1b8f3547555 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_medical.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_medical.yml @@ -4,7 +4,7 @@ sprite: Objects/Specific/Medical/firstaidkits.rsi state: firstaid product: CrateMedicalSupplies - cost: 2400 + cost: 3000 category: cargoproduct-category-name-medical group: market @@ -74,7 +74,7 @@ sprite: Objects/Specific/Medical/firstaidkits.rsi state: advkit product: CrateEmergencyAdvancedKit - cost: 1200 + cost: 2000 category: cargoproduct-category-name-medical group: market diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_vending.yml b/Resources/Prototypes/Catalog/Cargo/cargo_vending.yml index f7191df9ab4..8e2e1b4df58 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_vending.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_vending.yml @@ -104,7 +104,7 @@ sprite: Objects/Specific/Service/vending_machine_restock.rsi state: base product: CrateVendingMachineRestockMedicalFilled - cost: 1750 + cost: 3500 category: cargoproduct-category-name-medical group: market diff --git a/Resources/Prototypes/Catalog/Fills/Backpacks/StarterGear/backpack.yml b/Resources/Prototypes/Catalog/Fills/Backpacks/StarterGear/backpack.yml index da46ae75979..d66fb5d38b1 100644 --- a/Resources/Prototypes/Catalog/Fills/Backpacks/StarterGear/backpack.yml +++ b/Resources/Prototypes/Catalog/Fills/Backpacks/StarterGear/backpack.yml @@ -1,10 +1,10 @@ - type: entity parent: ClothingBackpack id: ClothingBackpackFilled - noSpawn: true + categories: [ HideSpawnMenu ] - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackClown id: ClothingBackpackClownFilled components: @@ -15,7 +15,7 @@ - id: CrayonRainbow - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSecurity id: ClothingBackpackSecurityFilled components: @@ -24,7 +24,7 @@ - id: MagazinePistol - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackBrigmedic id: ClothingBackpackBrigmedicFilled components: @@ -40,7 +40,7 @@ - id: MagazinePistol - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSecurity id: ClothingBackpackSecurityFilledDetective components: @@ -52,12 +52,12 @@ - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackMedical id: ClothingBackpackMedicalFilled - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackMedical id: ClothingBackpackParamedicFilled components: @@ -66,7 +66,7 @@ - id: EmergencyRollerBedSpawnFolded - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackCaptain id: ClothingBackpackCaptainFilled components: @@ -76,7 +76,7 @@ #- name: StationCharter #- name: TelescopicBaton - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackEngineering id: ClothingBackpackChiefEngineerFilled components: @@ -86,7 +86,7 @@ #- id: TelescopicBaton - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackScience id: ClothingBackpackResearchDirectorFilled components: @@ -96,7 +96,7 @@ #- id: TelescopicBaton - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpack id: ClothingBackpackHOPFilled components: @@ -106,7 +106,7 @@ #- id: TelescopicBaton - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackMedical id: ClothingBackpackCMOFilled components: @@ -116,7 +116,7 @@ #- id: TelescopicBaton - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackCargo id: ClothingBackpackQuartermasterFilled components: @@ -126,7 +126,7 @@ #- id: TelescopicBaton - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSecurity id: ClothingBackpackHOSFilled components: @@ -136,32 +136,32 @@ - id: MagazinePistol - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackEngineering id: ClothingBackpackEngineeringFilled - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackAtmospherics id: ClothingBackpackAtmosphericsFilled - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackScience id: ClothingBackpackScienceFilled - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackRobotics id: ClothingBackpackRoboticsFilled - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackHydroponics id: ClothingBackpackHydroponicsFilled - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackMime id: ClothingBackpackMimeFilled components: @@ -170,22 +170,22 @@ - id: RubberStampMime - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackChemistry id: ClothingBackpackChemistryFilled - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpack id: ClothingBackpackChaplainFilled - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpack id: ClothingBackpackMusicianFilled - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpack id: ClothingBackpackLibrarianFilled components: @@ -194,7 +194,7 @@ - id: BookRandom - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpack id: ClothingBackpackDetectiveFilled components: @@ -208,7 +208,7 @@ # ERT - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackERTLeader id: ClothingBackpackERTLeaderFilled components: @@ -223,7 +223,7 @@ - id: MagazineMagnum - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackERTSecurity id: ClothingBackpackERTSecurityFilled components: @@ -238,7 +238,7 @@ - id: MagazinePistol - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackERTMedical id: ClothingBackpackERTMedicalFilled components: @@ -253,7 +253,7 @@ - id: EpinephrineChemistryBottle - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackERTEngineer id: ClothingBackpackERTEngineerFilled components: @@ -272,7 +272,7 @@ - id: SheetGlass - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackERTJanitor id: ClothingBackpackERTJanitorFilled components: @@ -287,7 +287,7 @@ - id: AdvMopItem - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackERTChaplain id: ClothingBackpackERTChaplainFilled components: @@ -310,7 +310,6 @@ # Death Squad - type: entity - noSpawn: false parent: ClothingBackpackERTSecurity id: ClothingBackpackDeathSquadFilled name: death squad backpack @@ -337,12 +336,12 @@ # Cargo - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackCargo id: ClothingBackpackCargoFilled - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSalvage id: ClothingBackpackSalvageFilled diff --git a/Resources/Prototypes/Catalog/Fills/Backpacks/StarterGear/duffelbag.yml b/Resources/Prototypes/Catalog/Fills/Backpacks/StarterGear/duffelbag.yml index 07cbbeb6caa..525a4a13cec 100644 --- a/Resources/Prototypes/Catalog/Fills/Backpacks/StarterGear/duffelbag.yml +++ b/Resources/Prototypes/Catalog/Fills/Backpacks/StarterGear/duffelbag.yml @@ -1,10 +1,10 @@ - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffel id: ClothingBackpackDuffelFilled - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffelClown id: ClothingBackpackDuffelClownFilled components: @@ -13,7 +13,7 @@ - id: RubberStampClown - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffelBrigmedic id: ClothingBackpackDuffelBrigmedicFilled components: @@ -29,7 +29,7 @@ amount: 2 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffelSecurity id: ClothingBackpackDuffelSecurityFilled components: @@ -38,7 +38,7 @@ - id: MagazinePistol - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffelSecurity id: ClothingBackpackDuffelSecurityFilledDetective components: @@ -48,12 +48,12 @@ - id: ForensicScanner - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffelMedical id: ClothingBackpackDuffelMedicalFilled - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffelMedical id: ClothingBackpackDuffelParamedicFilled components: @@ -62,7 +62,7 @@ - id: EmergencyRollerBedSpawnFolded - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffelCaptain id: ClothingBackpackDuffelCaptainFilled components: @@ -73,7 +73,7 @@ #- name: TelescopicBaton - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffelEngineering id: ClothingBackpackDuffelChiefEngineerFilled components: @@ -83,7 +83,7 @@ #- id: TelescopicBaton - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffelScience id: ClothingBackpackDuffelResearchDirectorFilled components: @@ -93,7 +93,7 @@ #- id: TelescopicBaton - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffel id: ClothingBackpackDuffelHOPFilled components: @@ -103,7 +103,7 @@ #- id: TelescopicBaton - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffelMedical id: ClothingBackpackDuffelCMOFilled components: @@ -113,7 +113,7 @@ #- id: TelescopicBaton - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffelCargo id: ClothingBackpackDuffelQuartermasterFilled components: @@ -123,7 +123,7 @@ #- id: TelescopicBaton - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffelSecurity id: ClothingBackpackDuffelHOSFilled components: @@ -133,32 +133,32 @@ - id: MagazinePistol - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffelEngineering id: ClothingBackpackDuffelEngineeringFilled - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffelAtmospherics id: ClothingBackpackDuffelAtmosphericsFilled - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffelScience id: ClothingBackpackDuffelScienceFilled - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffelRobotics id: ClothingBackpackDuffelRoboticsFilled - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffelHydroponics id: ClothingBackpackDuffelHydroponicsFilled - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffelMime id: ClothingBackpackDuffelMimeFilled components: @@ -167,12 +167,12 @@ - id: RubberStampMime - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffelChemistry id: ClothingBackpackDuffelChemistryFilled - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffel id: ClothingBackpackDuffelChaplainFilled components: @@ -182,7 +182,7 @@ - id: RubberStampChaplain - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffel id: ClothingBackpackDuffelMusicianFilled components: @@ -192,7 +192,7 @@ - id: SaxophoneInstrument - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffel id: ClothingBackpackDuffelLibrarianFilled components: @@ -201,7 +201,7 @@ - id: BookRandom - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffel id: ClothingBackpackDuffelDetectiveFilled components: @@ -213,11 +213,11 @@ - id: HandLabeler - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffelCargo id: ClothingBackpackDuffelCargoFilled - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffelSalvage id: ClothingBackpackDuffelSalvageFilled diff --git a/Resources/Prototypes/Catalog/Fills/Backpacks/StarterGear/satchel.yml b/Resources/Prototypes/Catalog/Fills/Backpacks/StarterGear/satchel.yml index e20e27e55ca..7854b34c8e7 100644 --- a/Resources/Prototypes/Catalog/Fills/Backpacks/StarterGear/satchel.yml +++ b/Resources/Prototypes/Catalog/Fills/Backpacks/StarterGear/satchel.yml @@ -1,10 +1,10 @@ - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchel id: ClothingBackpackSatchelFilled - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchel id: ClothingBackpackSatchelTools components: @@ -27,7 +27,7 @@ - id: RubberStampClown - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchelBrigmedic id: ClothingBackpackSatchelBrigmedicFilled components: @@ -42,7 +42,7 @@ amount: 2 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchelSecurity id: ClothingBackpackSatchelSecurityFilled components: @@ -51,7 +51,7 @@ - id: MagazinePistol - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchelSecurity id: ClothingBackpackSatchelSecurityFilledDetective components: @@ -61,12 +61,12 @@ - id: ForensicScanner - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchelMedical id: ClothingBackpackSatchelMedicalFilled - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchelMedical id: ClothingBackpackSatchelParamedicFilled components: @@ -75,7 +75,7 @@ - id: EmergencyRollerBedSpawnFolded - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchelCaptain id: ClothingBackpackSatchelCaptainFilled components: @@ -86,7 +86,7 @@ #- name: TelescopicBaton - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchelEngineering id: ClothingBackpackSatchelChiefEngineerFilled components: @@ -96,7 +96,7 @@ #- id: TelescopicBaton - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchelScience id: ClothingBackpackSatchelResearchDirectorFilled components: @@ -106,7 +106,7 @@ #- id: TelescopicBaton - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchel id: ClothingBackpackSatchelHOPFilled components: @@ -116,7 +116,7 @@ #- id: TelescopicBaton - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchelMedical id: ClothingBackpackSatchelCMOFilled components: @@ -126,7 +126,7 @@ #- id: TelescopicBaton - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchelCargo id: ClothingBackpackSatchelQuartermasterFilled components: @@ -136,7 +136,7 @@ #- id: TelescopicBaton - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchelSecurity id: ClothingBackpackSatchelHOSFilled components: @@ -146,37 +146,37 @@ - id: MagazinePistol - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchelEngineering id: ClothingBackpackSatchelEngineeringFilled - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchelAtmospherics id: ClothingBackpackSatchelAtmosphericsFilled - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchelScience id: ClothingBackpackSatchelScienceFilled - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchelRobotics id: ClothingBackpackSatchelRoboticsFilled - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchelHydroponics id: ClothingBackpackSatchelHydroponicsFilled - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchelChemistry id: ClothingBackpackSatchelChemistryFilled - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchel id: ClothingBackpackSatchelChaplainFilled components: @@ -186,7 +186,7 @@ - id: RubberStampChaplain - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchel id: ClothingBackpackSatchelMusicianFilled components: @@ -196,7 +196,7 @@ - id: SaxophoneInstrument - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchel id: ClothingBackpackSatchelLibrarianFilled components: @@ -205,7 +205,7 @@ - id: BookRandom - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchel id: ClothingBackpackSatchelDetectiveFilled components: @@ -217,17 +217,17 @@ - id: HandLabeler - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchelCargo id: ClothingBackpackSatchelCargoFilled - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchelSalvage id: ClothingBackpackSatchelSalvageFilled - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchelMime id: ClothingBackpackSatchelMimeFilled components: @@ -236,7 +236,7 @@ - id: RubberStampMime - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchelHolding id: ClothingBackpackSatchelHoldingAdmin components: diff --git a/Resources/Prototypes/Catalog/Fills/Backpacks/duffelbag.yml b/Resources/Prototypes/Catalog/Fills/Backpacks/duffelbag.yml index c07b0eccf19..6f4a9783561 100644 --- a/Resources/Prototypes/Catalog/Fills/Backpacks/duffelbag.yml +++ b/Resources/Prototypes/Catalog/Fills/Backpacks/duffelbag.yml @@ -12,6 +12,7 @@ - id: Cautery - id: Retractor - id: Scalpel + - id: BoneGel - type: entity id: ClothingBackpackDuffelCBURNFilled @@ -46,6 +47,7 @@ - id: ScalpelAdvanced - id: ClothingHandsGlovesNitrile - id: EmergencyRollerBedSpawnFolded + - id: BoneGel - type: entity parent: ClothingBackpackDuffelSyndicateBundle diff --git a/Resources/Prototypes/Catalog/Fills/Crates/engines.yml b/Resources/Prototypes/Catalog/Fills/Crates/engines.yml index 79698b550a7..2ac099e7926 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/engines.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/engines.yml @@ -169,3 +169,18 @@ - type: StorageFill contents: - id: TeslaGroundingRodFlatpack + +- type: entity + id: CrateEngineeringTEGKit + parent: CrateEngineeringSecure + name: TEG construction kit crate + description: A 'build your own TEG' kit. Some assembly required. + components: + - type: StorageFill + contents: + - id: TegCirculatorPartFlatpack + - id: TegCirculatorPartFlatpack + - id: TegCenterPartFlatpack + - id: GasAnalyzer + - id: SheetSteel + amount: 1 diff --git a/Resources/Prototypes/Catalog/Fills/Crates/fun.yml b/Resources/Prototypes/Catalog/Fills/Crates/fun.yml index b55bdd48322..4805651fda9 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/fun.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/fun.yml @@ -1,3 +1,101 @@ +- type: entityTable + id: AllPlushiesTable + table: !type:GroupSelector + children: + - !type:EntSelector + id: PlushieBee + - !type:EntSelector + id: PlushieNar + weight: 0.5 + - !type:EntSelector + id: PlushieRatvar + weight: 0.5 + - !type:EntSelector + id: PlushieNuke + - !type:EntSelector + id: PlushieSlime + - !type:EntSelector + id: PlushieSnake + - !type:GroupSelector + children: + - !type:EntSelector + id: PlushieLizard + weight: 9 + - !type:EntSelector + id: PlushieSpaceLizard + weight: 1 + - !type:GroupSelector + children: + - !type:EntSelector + id: PlushieCarp + - !type:EntSelector + id: PlushieHolocarp + weight: 0.25 + - !type:EntSelector + id: PlushieMagicarp + weight: 0.25 + - !type:EntSelector + id: PlushieRainbowCarp + weight: 0.15 + - !type:EntSelector + id: PlushieVox + - !type:EntSelector + id: PlushieRouny + - !type:GroupSelector + children: + - !type:EntSelector + id: PlushieSharkBlue + - !type:EntSelector + id: PlushieSharkGrey + - !type:EntSelector + id: PlushieSharkPink + - !type:EntSelector + id: PlushieAtmosian + - !type:EntSelector + id: PlushieDiona + - !type:EntSelector + id: PlushieXeno + - !type:EntSelector + id: PlushieHampter + - !type:EntSelector + id: PlushieMoth + - !type:EntSelector + id: PlushieArachind + - !type:EntSelector + id: PlushiePenguin + +- type: entity + id: CrateFunPlushie + parent: CrateGenericSteel + name: plushie crate + description: A buncha soft plushies. Throw them around and then wonder how you're gonna explain this purchase to NT. + components: + - type: EntityTableContainerFill + containers: + entity_storage: !type:NestedSelector + tableId: AllPlushiesTable + rolls: !type:ConstantNumberSelector + value: 10 + +- type: entity + id: CrateFunLizardPlushieBulk + parent: CrateGenericSteel + name: bulk lizard plushie crate + description: A buncha soft lizard plushies. Throw them around and then wonder how you're gonna explain this purchase to NT. + components: + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - !type:EntSelector + id: PlushieLizard + amount: !type:ConstantNumberSelector + value: 3 + - !type:EntSelector + id: PlushieSpaceLizard + amount: !type:ConstantNumberSelector + value: 3 + - type: entity id: CrateFunInstrumentsVariety parent: CrateGenericSteel @@ -248,14 +346,21 @@ contents: - id: SnapPopBox - id: CrazyGlue - amount: 2 - id: PlasticBanana + - id: FunnyPaint + orGroup: Paint + prob: 0.5 + - id: FunnyPaintYellow + orGroup: Paint + prob: 0.5 - id: WhoopieCushion - id: ToyHammer - id: MrChips - orGroup: GiftPool + prob: 0.5 + orGroup: Dummy - id: MrDips - orGroup: Giftpool + prob: 0.5 + orGroup: Dummy - id: RevolverCapGun - id: BalloonNT - id: ClothingShoesClownLarge @@ -288,6 +393,41 @@ amount: 15 prob: 0.05 +- type: entity + id: CrateFunSprayPaints + name: spray paint crate + description: a crate filled with spray paint. + parent: CratePlastic + suffix: Spray Paint + components: + - type: StorageFill + contents: + - id: SprayPaintBlue + amount: 2 + prob: 0.33 + - id: SprayPaintRed + amount: 2 + prob: 0.33 + - id: SprayPaintOrange + amount: 2 + prob: 0.33 + - id: SprayPaintBlack + amount: 2 + prob: 0.33 + - id: SprayPaintGreen + amount: 2 + prob: 0.33 + - id: SprayPaintPurple + amount: 2 + prob: 0.33 + - id: SprayPaintWhite + amount: 2 + prob: 0.33 + - id: DeathPaint + amount: 2 + - id: DeathPaintTwo + amount: 2 + - type: entity name: dartboard box set description: A box with everything you need for a fun game of darts. diff --git a/Resources/Prototypes/Catalog/Fills/Crates/materials.yml b/Resources/Prototypes/Catalog/Fills/Crates/materials.yml index 0300830e3bf..92721208f71 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/materials.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/materials.yml @@ -150,7 +150,7 @@ - type: entity id: CrateMaterialSilver - name: gold crate + name: silver crate parent: CrateGenericSteel components: - type: StorageFill diff --git a/Resources/Prototypes/Catalog/Fills/Crates/medical.yml b/Resources/Prototypes/Catalog/Fills/Crates/medical.yml index 8b1f7fade32..2f67037d35b 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/medical.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/medical.yml @@ -67,7 +67,9 @@ - id: Drill - id: Saw - id: Hemostat - - id: ClothingMaskSterile + - id: BoneGel + - id: BoxLatexGloves + - id: BoxSterileMask - type: entity id: CrateMedicalScrubs diff --git a/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml b/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml index c1168f68d42..7313de7700b 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/salvage.yml @@ -28,7 +28,7 @@ - type: entity id: CrateSalvageAssortedGoodies suffix: Filled, Salvage Random - noSpawn: true # You should use SalvageMaterialCrateSpawner instead + categories: [ HideSpawnMenu ] # You should use SalvageMaterialCrateSpawner instead parent: CrateGenericSteel components: - type: StorageFill diff --git a/Resources/Prototypes/Catalog/Fills/Items/belt.yml b/Resources/Prototypes/Catalog/Fills/Items/belt.yml index 27dd4c7e9a7..5c814a6be84 100644 --- a/Resources/Prototypes/Catalog/Fills/Items/belt.yml +++ b/Resources/Prototypes/Catalog/Fills/Items/belt.yml @@ -26,6 +26,22 @@ - id: Welder - id: Multitool +- type: entity + id: ClothingBeltUtilityAtmos + parent: ClothingBeltUtility + suffix: Engineering + components: + - type: StorageFill + contents: + - id: Crowbar + - id: Wrench + - id: Screwdriver + - id: Wirecutter + - id: Welder + - id: Multitool + - id: GasAnalyzer + - id: HolofanProjector + - type: entity id: ClothingBeltChiefEngineerFilled parent: ClothingBeltChiefEngineer @@ -83,6 +99,24 @@ - id: Gauze - id: EmergencyMedipen #You never know what people are going to latejoin into +- type: entity + id: ClothingBeltMedicalAdvancedFilled + parent: ClothingBeltMedical + suffix: Filled + components: + - type: StorageFill + contents: + - id: MedicatedSuture + amount: 2 + - id: RegenerativeMesh + amount: 1 + - id: Bloodpack + amount: 1 + - id: Gauze + - id: EmergencyMedipen + - id: BruteAutoInjector + - id: BurnAutoInjector + - type: entity id: ClothingBeltMedicalEMTFilled parent: ClothingBeltMedicalEMT diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml index 5898468c344..e7f44398731 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml @@ -32,55 +32,38 @@ components: - type: StorageFill contents: - - id: ClothingOuterArmorCaptainCarapace - id: NukeDisk - id: PinpointerNuclear -# - id: CaptainIDCard # DeltaV - Replaced by the spare ID system + - id: CaptainIDCard - id: ClothingOuterHardsuitCap - - id: WeaponDisabler - id: CommsComputerCircuitboard - id: ClothingHeadsetAltCommand - - id: SpaceCash1000 - id: PlushieNuke prob: 0.1 - - id: CigarGoldCase - prob: 0.25 - - id: ClothingBeltSheathFilled - id: DoorRemoteCommand - id: RubberStampCaptain -# - id: WeaponAntiqueLaser # DeltaV - Remove in favor of the glass box - id: JetpackCaptainFilled - - id: MedalCase - id: LunchboxCommandFilledRandom # Delta-V Lunchboxes! prob: 0.3 - type: entity id: LockerCaptainFilled - suffix: Filled, AntiqueLaser + suffix: Filled, AntiqueLaser # Deprecated, Antique laser is now part of Captain's Loadouts. parent: LockerCaptain components: - type: StorageFill contents: - - id: ClothingOuterArmorCaptainCarapace - id: NukeDisk - id: PinpointerNuclear -# - id: CaptainIDCard # DeltaV - Replaced by the spare ID system - - id: WeaponDisabler + - id: CaptainIDCard - id: CommsComputerCircuitboard - id: ClothingHeadsetAltCommand - - id: SpaceCash1000 - id: PlushieNuke prob: 0.1 - - id: CigarGoldCase - prob: 0.25 - - id: ClothingBeltSheathFilled - id: DoorRemoteCommand - id: RubberStampCaptain - - id: WeaponAntiqueLaser - id: JetpackCaptainFilled - - id: MedalCase - - id: ClothingHeadHatBeretCap # Nyanotrasen - Captain's Beret - - id: LunchboxCommandFilledRandom # Delta-V Lunchboxes! + - id: LunchboxCommandFilledRandom prob: 0.3 - type: entity @@ -90,25 +73,17 @@ components: - type: StorageFill contents: - - id: ClothingOuterArmorCaptainCarapace - id: NukeDisk - id: PinpointerNuclear -# - id: CaptainIDCard # Delta V - Replaced by spare ID system. The funny biscuit that I cant even eat. - - id: WeaponDisabler + - id: CaptainIDCard - id: CommsComputerCircuitboard - id: ClothingHeadsetAltCommand - - id: SpaceCash1000 - id: PlushieNuke prob: 0.1 - - id: CigarGoldCase - prob: 0.25 - - id: ClothingBeltSheathFilled - id: DoorRemoteCommand - id: RubberStampCaptain - id: JetpackCaptainFilled - - id: MedalCase - - id: ClothingHeadHatBeretCap # Nyanotrasen - Captain's Beret - - id: LunchboxCommandFilledRandom # Delta-V Lunchboxes! + - id: LunchboxCommandFilledRandom prob: 0.3 - type: entity @@ -124,23 +99,13 @@ - id: BoxID - id: BoxHeadset - id: IDComputerCircuitboard - - id: WeaponDisabler - - id: ClothingOuterCoatHoPArmored # DeltaV - - id: ClothingOuterArmorDuraVest # DeltaV - replaced HoP's armoured coat with a standard stabproof, pending HoPcoat resprite - - id: CigarGoldCase - prob: 0.25 - # Fuck the HoP they don't deserve fucking cigars. - # Yes they do fuck you. - id: DoorRemoteService - - id: ClothingNeckGoldmedal - id: RubberStampHop - id: RubberStampDenied - id: RubberStampApproved - id: BoxEncryptionKeyPassenger - id: BoxEncryptionKeyService - id: AccessConfigurator - - id: BookIanDossier # DeltaV - HoP steal objective, see Resources/Prototypes/DeltaV/Entities/Objects/Misc/ian_dossier.yml - - id: ClothingHandsGlovesInspection # DeltaV - Add inspection gloves for HoP. - id: LunchboxCommandFilledRandom # Delta-V Lunchboxes! prob: 0.3 @@ -154,7 +119,6 @@ - id: ClothingOuterHardsuitEngineeringWhite - id: ClothingMaskBreath - id: ClothingEyesGlassesMeson - - id: ClothingBeltChiefEngineerFilled - id: ClothingShoesBootsMagAdv - id: ClothingHandsGlovesColorYellow - id: CigarCase @@ -217,6 +181,7 @@ - id: RubberStampCMO - id: RubberStampPsychologist # DeltaV - id: MedicalTechFabCircuitboard + - id: MedicalBiofabMachineBoard - id: BoxEncryptionKeyMedical - id: BoxPDAMedical # Delta-V - id: ClothingBeltMilitaryWebbingCMO # DeltaV - add webbing for CMO. ON THIS STATION, IT'S DRIP OR [die], CAPTAIN! @@ -242,6 +207,7 @@ - id: RubberStampCMO - id: MedicalTechFabCircuitboard - id: BoxEncryptionKeyMedical + - id: MedicalBiofabMachineBoard - id: BoxPDAMedical # Delta-V - id: ClothingBeltMilitaryWebbingCMO # DeltaV - add webbing for CMO. ON THIS STATION, IT'S DRIP OR [die], CAPTAIN! - id: CMOIDCard # Delta-V diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/misc.yml b/Resources/Prototypes/Catalog/Fills/Lockers/misc.yml index eaf35667ef9..052ce95be2f 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/misc.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/misc.yml @@ -3,319 +3,236 @@ suffix: Filled parent: LockerSyndicatePersonal components: - - type: StorageFill - contents: - - id: ClothingBeltMilitaryWebbing - - id: ClothingHandsGlovesCombat - - id: JetpackBlackFilled - - id: ClothingUniformJumpsuitOperative - - id: ClothingUniformJumpskirtOperative - - id: ClothingHeadsetAltSyndicate - - id: ClothingEyesHudSyndicate + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - !type:EntSelector + id: ClothingBeltMilitaryWebbing + - !type:EntSelector + id: ClothingHandsGlovesCombat + - !type:EntSelector + id: JetpackBlackFilled + - !type:EntSelector + id: ClothingUniformJumpsuitOperative + - !type:EntSelector + id: ClothingUniformJumpskirtOperative + - !type:EntSelector + id: ClothingHeadsetAltSyndicate + - !type:EntSelector + id: ClothingEyesHudSyndicate + +- type: entityTable + id: FillLockerEmergencyStandard + table: !type:AllSelector + children: + - !type:EntSelector + id: ClothingMaskBreath + - !type:EntSelector + id: ClothingOuterSuitEmergency + - !type:GroupSelector + children: + - !type:EntSelector + id: EmergencyOxygenTankFilled + - !type:EntSelector + id: OxygenTankFilled + - !type:EntSelector + id: ToolboxEmergencyFilled + prob: 0.5 + - !type:EntSelector + id: MedkitOxygenFilled + prob: 0.2 + - !type:EntSelector + id: WeaponFlareGun + prob: 0.05 + - !type:EntSelector + id: BoxMRE + prob: 0.1 - type: entity id: ClosetEmergencyFilledRandom parent: ClosetEmergency suffix: Filled, Random components: - - type: StorageFill - contents: - - id: ClothingOuterSuitEmergency - - id: ClothingMaskBreath - - id: EmergencyOxygenTankFilled - prob: 0.80 - orGroup: EmergencyTankOrRegularTank - - id: OxygenTankFilled - prob: 0.20 - orGroup: EmergencyTankOrRegularTank - - id: ToolboxEmergencyFilled - prob: 0.4 - - id: MedkitOxygenFilled - prob: 0.2 - - id: WeaponFlareGun - prob: 0.05 - - id: BoxMRE - prob: 0.1 + - type: EntityTableContainerFill + containers: + entity_storage: !type:NestedSelector + tableId: FillLockerEmergencyStandard - type: entity id: ClosetWallEmergencyFilledRandom parent: ClosetWallEmergency suffix: Filled, Random components: - - type: StorageFill - contents: - - id: ClothingOuterSuitEmergency - - id: ClothingMaskBreath - - id: EmergencyOxygenTankFilled - prob: 0.80 - orGroup: EmergencyTankOrRegularTank - - id: OxygenTankFilled - prob: 0.20 - orGroup: EmergencyTankOrRegularTank - - id: ToolboxEmergencyFilled - prob: 0.4 - - id: MedkitOxygenFilled - prob: 0.2 - - id: WeaponFlareGun - prob: 0.05 - - id: BoxMRE - prob: 0.1 + - type: EntityTableContainerFill + containers: + entity_storage: !type:NestedSelector + tableId: FillLockerEmergencyStandard - type: entity id: ClosetEmergencyN2FilledRandom parent: ClosetEmergencyN2 suffix: Filled, Random components: - - type: StorageFill - contents: - - id: ClothingMaskBreath - - id: EmergencyNitrogenTankFilled - prob: 0.80 - orGroup: EmergencyTankOrRegularTank - - id: NitrogenTankFilled - prob: 0.20 - orGroup: EmergencyTankOrRegularTank + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - !type:EntSelector + id: ClothingMaskBreath + - !type:EntSelector + id: ClothingOuterSuitEmergency + - !type:GroupSelector + children: + - !type:EntSelector + id: EmergencyNitrogenTankFilled + - !type:EntSelector + id: NitrogenTankFilled + +- type: entityTable + id: FillLockerFireStandard + table: !type:AllSelector + children: + - !type:EntSelector + id: ClothingOuterSuitFire + - !type:EntSelector + id: ClothingHeadHelmetFire + - !type:EntSelector + id: ClothingMaskGas + - !type:GroupSelector + children: + - !type:EntSelector + id: EmergencyOxygenTankFilled + - !type:EntSelector + id: OxygenTankFilled + - !type:EntSelector + id: CrowbarRed + - !type:GroupSelector + children: + - !type:EntSelector + id: FireExtinguisher + weight: 98 + - !type:EntSelector + id: SprayBottleWater #It's just budget cut after budget cut man + weight: 2 - type: entity id: ClosetFireFilled parent: ClosetFire suffix: Filled components: - - type: StorageFill - contents: - - id: ClothingOuterSuitFire - - id: ClothingHeadHelmetFire - - id: ClothingMaskGas - - id: OxygenTankFilled - - id: FireExtinguisher - prob: 0.25 + - type: EntityTableContainerFill + containers: + entity_storage: !type:NestedSelector + tableId: FillLockerFireStandard + - type: entity id: ClosetWallFireFilledRandom parent: ClosetWallFire suffix: Filled components: - - type: StorageFill - contents: - - id: ClothingOuterSuitFire - - id: ClothingHeadHelmetFire - - id: ClothingMaskGas - - id: OxygenTankFilled - - id: FireExtinguisher - prob: 0.25 + - type: EntityTableContainerFill + containers: + entity_storage: !type:NestedSelector + tableId: FillLockerFireStandard + +- type: entityTable + id: SyndieMaintLoot + table: !type:GroupSelector + children: + - !type:GroupSelector + children: + - !type:EntSelector + id: ClothingUniformJumpsuitOperative + - !type:EntSelector + id: ClothingUniformJumpskirtOperative + - !type:EntSelector + id: ClothingBackpackDuffelSyndicate + - !type:EntSelector + id: CyberPen + - !type:EntSelector + id: CigPackSyndicate + - !type:EntSelector + id: ClothingBackpackDuffelSyndicatePyjamaBundle + - !type:EntSelector + id: ClothingBeltMilitaryWebbing + - !type:EntSelector + id: ClothingShoesBootsCombatFilled + - !type:EntSelector + id: ToolboxSyndicateFilled + - !type:EntSelector + id: BalloonSyn + - !type:EntSelector + id: WeaponSniperMosin + weight: 2 + +- type: entityTable + id: MaintenanceLockerLoot + table: !type:AllSelector + children: + - !type:EntSelector + id: StrangePill + prob: 0.20 + # Tools + - !type:NestedSelector + tableId: MaintToolsTable + rolls: !type:RangeNumberSelector + range: 1, 5 + # Fluff + - !type:NestedSelector + tableId: MaintFluffTable + prob: 0.33 + rolls: !type:RangeNumberSelector + range: 0, 2 + # Plushies + - !type:NestedSelector + tableId: AllPlushiesTable + prob: 0.10 + rolls: !type:RangeNumberSelector + range: 1, 2 + # Weapons + - !type:NestedSelector + tableId: MaintWeaponTable + prob: 0.075 + # Syndie Loot + - !type:NestedSelector + tableId: SyndieMaintLoot + prob: 0.05 + - type: entity id: ClosetMaintenanceFilledRandom suffix: Filled, Random parent: ClosetMaintenance components: - - type: StorageFill - contents: - - id: Lantern - prob: 0.50 - - id: Wirecutter - prob: 0.33 - - id: Screwdriver - prob: 0.33 - - id: Wrench - prob: 0.33 - - id: Crowbar - prob: 0.50 - - id: Welder - prob: 0.33 - - id: Multitool - prob: 0.10 - - id: Soap - prob: 0.44 - - id: PlushieCarp - prob: 0.2 - orGroup: carp - - id: PlushieHolocarp - prob: 0.05 - orGroup: carp - - id: PlushieMagicarp - prob: 0.05 - orGroup: carp - - id: PlushieRainbowCarp - prob: 0.03 - orGroup: carp - - id: PlushieSlime - prob: 0.2 - - id: PlushieSnake - prob: 0.2 - - id: ClothingShoesSkates - prob: 0.1 - - id: ClothingHandsGlovesColorYellow - prob: 0.05 - - id: ClothingHandsGlovesFingerlessInsulated - prob: 0.07 - - id: ClothingBeltUtility - prob: 0.10 - - id: ClothingHeadHatCone - prob: 0.2 - - id: WeaponFlareGun - prob: 0.1 - - id: ClothingHandsGlovesColorYellowBudget - prob: 0.25 - - id: StrangePill - prob: 0.20 - - id: DrinkMopwataBottleRandom - prob: 0.20 - - id: ModularReceiver - prob: 0.1 - - id: DrinkSpaceGlue - prob: 0.20 - - id: DrinkSpaceLube - prob: 0.20 - - id: BarberScissors - prob: 0.05 - - id: BookRandomStory - prob: 0.1 - # Syndicate loot - - id: null - prob: 0.95 - orGroup: syndiemaintloot - - id: ClothingUniformJumpskirtOperative - prob: 0.005 - orGroup: syndiemaintloot - - id: ClothingUniformJumpsuitOperative - prob: 0.005 - orGroup: syndiemaintloot - - id: ClothingBackpackDuffelSyndicate - prob: 0.005 - orGroup: syndiemaintloot - #- id: CyberPen # DeltaV - Nuh uh - # prob: 0.005 - # orGroup: syndiemaintloot - #- id: CigPackSyndicate - # prob: 0.005 - # orGroup: syndiemaintloot - - id: ClothingBackpackDuffelSyndicatePyjamaBundle - prob: 0.005 - orGroup: syndiemaintloot - #- id: ClothingBeltMilitaryWebbing - # prob: 0.005 - # orGroup: syndiemaintloot - #- id: ClothingShoesBootsCombatFilled - # prob: 0.005 - # orGroup: syndiemaintloot - #- id: ToolboxSyndicateFilled - # prob: 0.005 - # orGroup: syndiemaintloot - #- id: BalloonSyn - # prob: 0.005 - # orGroup: syndiemaintloot - #- id: WeaponSniperMosin - # prob: 0.0010 - # orGroup: syndiemaintloot + - type: EntityTableContainerFill + containers: + entity_storage: !type:NestedSelector + tableId: MaintenanceLockerLoot - type: entity id: ClosetWallMaintenanceFilledRandom parent: ClosetWall suffix: Filled, Random components: - - type: StorageFill - contents: - - id: Lantern - prob: 0.50 - - id: Wirecutter - prob: 0.33 - - id: Screwdriver - prob: 0.33 - - id: Wrench - prob: 0.33 - - id: Crowbar - prob: 0.50 - - id: Welder - prob: 0.33 - - id: Multitool - prob: 0.10 - - id: Soap - prob: 0.44 - - id: PlushieCarp - prob: 0.2 - orGroup: carp - - id: PlushieHolocarp - prob: 0.05 - orGroup: carp - - id: PlushieMagicarp - prob: 0.05 - orGroup: carp - - id: PlushieRainbowCarp - prob: 0.03 - orGroup: carp - - id: PlushieSlime - prob: 0.2 - - id: PlushieSnake - prob: 0.2 - - id: ClothingHandsGlovesColorYellow - prob: 0.05 - - id: ClothingBeltQuiver - prob: 0.02 - - id: ClothingBeltUtility - prob: 0.10 - - id: ClothingHeadHatCone - prob: 0.2 - - id: WeaponFlareGun - prob: 0.1 - - id: ClothingHandsGlovesColorYellowBudget - prob: 0.25 - - id: StrangePill - prob: 0.20 - - id: DrinkSpaceGlue - prob: 0.20 - - id: ModularReceiver - prob: 0.1 - # Syndicate loot - - id: null - prob: 0.95 - orGroup: syndiemaintloot - - id: ClothingUniformJumpskirtOperative - prob: 0.005 - orGroup: syndiemaintloot - - id: ClothingUniformJumpsuitOperative - prob: 0.005 - orGroup: syndiemaintloot - - id: ClothingBackpackDuffelSyndicate - prob: 0.005 - orGroup: syndiemaintloot - - id: CyberPen - prob: 0.005 - orGroup: syndiemaintloot - - id: ClothingHeadHatOutlawHat - prob: 0.005 - orGroup: syndiemaintloot - - id: ClothingEyesGlassesOutlawGlasses - prob: 0.005 - orGroup: syndiemaintloot - - id: CigPackSyndicate - prob: 0.005 - orGroup: syndiemaintloot - - id: ClothingBackpackDuffelSyndicatePyjamaBundle - prob: 0.005 - orGroup: syndiemaintloot - - id: ClothingBeltMilitaryWebbing - prob: 0.005 - orGroup: syndiemaintloot - - id: ClothingShoesBootsCombatFilled - prob: 0.005 - orGroup: syndiemaintloot - - id: ToolboxSyndicateFilled - prob: 0.005 - orGroup: syndiemaintloot - - id: BalloonSyn - prob: 0.005 - orGroup: syndiemaintloot - - id: WeaponSniperMosin - prob: 0.0010 - orGroup: syndiemaintloot + - type: EntityTableContainerFill + containers: + entity_storage: !type:NestedSelector + tableId: MaintenanceLockerLoot - type: entity id: ClosetWallRadiationFilled suffix: Filled parent: ClosetWallRadiation components: - - type: StorageFill - contents: - - id: ClothingOuterSuitRad - amount: 2 - - id: GeigerCounter - amount: 2 + - type: EntityTableContainerFill + containers: + entity_storage: !type:AllSelector + children: + - !type:EntSelector + id: ClothingOuterSuitRad + amount: !type:ConstantNumberSelector + value: 2 + - !type:EntSelector + id: GeigerCounter + amount: !type:ConstantNumberSelector + value: 2 \ No newline at end of file diff --git a/Resources/Prototypes/Catalog/VendingMachines/Inventories/unlockedboozeomat.yml b/Resources/Prototypes/Catalog/VendingMachines/Inventories/unlockedboozeomat.yml new file mode 100644 index 00000000000..693bfdda26e --- /dev/null +++ b/Resources/Prototypes/Catalog/VendingMachines/Inventories/unlockedboozeomat.yml @@ -0,0 +1,36 @@ +- type: vendingMachineInventory + id: BoozeOMatUnlockedInventory + startingInventory: + DrinkGlass: 15 #Kept glasses at top for ease to differentiate from booze. + DrinkShotGlass: 5 + DrinkGlassCoupeShaped: 5 + DrinkVacuumFlask: 1 + DrinkFlaskBar: 1 + DrinkShaker: 4 + CustomDrinkJug: 2 #to allow for custom drinks in the soda/booze dispensers + DrinkAleBottleFull: 8 + DrinkBeerBottleFull: 8 + DrinkBeerCan: 8 + DrinkWineCan: 8 + DrinkSolDryCan: 8 + DrinkWineBottleFull: 3 + DrinkSojuBottleFull: 1 + DrinkSakeBottleFull: 1 + DrinkGinBottleFull: 3 + DrinkRumBottleFull: 3 + DrinkTequilaBottleFull: 3 + DrinkVodkaBottleFull: 3 + DrinkWhiskeyBottleFull: 3 + #Mixers + DrinkColaBottleFull: 4 + DrinkCreamCarton: 5 + DrinkGrenadineBottleFull: 2 + DrinkJuiceLimeCarton: 3 + DrinkJuiceOrangeCarton: 3 + DrinkJuiceTomatoCarton: 3 + DrinkCoffeeLiqueurBottleFull: 1 + DrinkSodaWaterCan: 8 + DrinkSpaceMountainWindBottleFull: 3 + DrinkSpaceUpBottleFull: 3 + DrinkTonicWaterCan: 8 + DrinkVermouthBottleFull: 4 diff --git a/Resources/Prototypes/Catalog/uplink_catalog.yml b/Resources/Prototypes/Catalog/uplink_catalog.yml index 2a99a1daa06..fdfb4ed33a5 100644 --- a/Resources/Prototypes/Catalog/uplink_catalog.yml +++ b/Resources/Prototypes/Catalog/uplink_catalog.yml @@ -509,7 +509,7 @@ cost: Telecrystal: 3 categories: - - UplinkDeception + - UplinkUtility - type: listing id: UplinkStealthBox @@ -519,7 +519,7 @@ cost: Telecrystal: 5 categories: - - UplinkDeception + - UplinkUtility - type: listing id: UplinkChameleonProjector @@ -529,7 +529,7 @@ cost: Telecrystal: 7 categories: - - UplinkDeception + - UplinkUtility - type: listing id: UplinkCyberpen @@ -539,7 +539,7 @@ cost: Telecrystal: 1 categories: - - UplinkDeception + - UplinkUtility - type: listing id: UplinkDecoyDisk @@ -549,7 +549,7 @@ cost: Telecrystal: 1 categories: - - UplinkDeception + - UplinkUtility - type: listing id: UplinkUltrabrightLantern @@ -559,7 +559,7 @@ cost: Telecrystal: 2 categories: - - UplinkDeception + - UplinkUtility - type: listing id: UplinkBribe @@ -569,7 +569,7 @@ cost: Telecrystal: 4 categories: - - UplinkDeception + - UplinkUtility # - type: listing # id: UplinkGigacancerScanner @@ -579,7 +579,7 @@ # cost: # Telecrystal: 5 # categories: -# - UplinkDeception +# - UplinkUtility - type: listing id: UplinkHolster @@ -974,7 +974,7 @@ cost: Telecrystal: 4 categories: - - UplinkDeception + - UplinkUtility # Disruption @@ -1417,6 +1417,16 @@ categories: - UplinkUtility +- type: listing + id: UplinkEmpFlashlight + name: uplink-emp-flashlight-name + description: uplink-emp-flashlight-desc + productEntity: FlashlightEmp + cost: + Telecrystal: 3 + categories: + - UplinkUtility + # Armor - type: listing @@ -1778,3 +1788,4 @@ conditions: - !type:ListingLimitedStockCondition stock: 1 + diff --git a/Resources/Prototypes/CharacterItemGroups/backpackGroups.yml b/Resources/Prototypes/CharacterItemGroups/Generic/backpackGroups.yml similarity index 70% rename from Resources/Prototypes/CharacterItemGroups/backpackGroups.yml rename to Resources/Prototypes/CharacterItemGroups/Generic/backpackGroups.yml index c12db85146d..b2c5443a350 100644 --- a/Resources/Prototypes/CharacterItemGroups/backpackGroups.yml +++ b/Resources/Prototypes/CharacterItemGroups/Generic/backpackGroups.yml @@ -8,4 +8,6 @@ - type: loadout id: LoadoutBackpackSatchel - type: loadout - id: LoadoutBackpackClown + id: LoadoutItemBackpackSatchelLeather + - type: loadout + id: LoadoutBackpackMerc diff --git a/Resources/Prototypes/CharacterItemGroups/eyesGroup.yml b/Resources/Prototypes/CharacterItemGroups/Generic/eyesGroup.yml similarity index 100% rename from Resources/Prototypes/CharacterItemGroups/eyesGroup.yml rename to Resources/Prototypes/CharacterItemGroups/Generic/eyesGroup.yml diff --git a/Resources/Prototypes/CharacterItemGroups/Generic/gloveGroup.yml b/Resources/Prototypes/CharacterItemGroups/Generic/gloveGroup.yml new file mode 100644 index 00000000000..f712e18e24d --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Generic/gloveGroup.yml @@ -0,0 +1,15 @@ +- type: characterItemGroup + id: LoadoutGloves + items: + - type: loadout + id: LoadoutHandsColorWhite + - type: loadout + id: LoadoutHandsColorYellowBudget + - type: loadout + id: LoadoutHandsGlovesLeather + - type: loadout + id: LoadoutHandsGlovesPowerglove + - type: loadout + id: LoadoutHandsGlovesRobohands + - type: loadout + id: LoadoutHandsGlovesFingerless diff --git a/Resources/Prototypes/CharacterItemGroups/Generic/headGroup.yml b/Resources/Prototypes/CharacterItemGroups/Generic/headGroup.yml new file mode 100644 index 00000000000..26f93d6531d --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Generic/headGroup.yml @@ -0,0 +1,59 @@ +- type: characterItemGroup + id: LoadoutHead + items: + - type: loadout + id: LoadoutHeadBeaverHat + - type: loadout + id: LoadoutHeadTophat + - type: loadout + id: LoadoutHeadFedoraWhite + - type: loadout + id: LoadoutHeadFlatBlack + - type: loadout + id: LoadoutHeadFlatBrown + - type: loadout + id: LoadoutHeadHatCowboyWhite + - type: loadout + id: LoadoutHeadHatCowboyBountyHunter + - type: loadout + id: LoadoutHeadTinfoil + - type: loadout + id: LoadoutHeadBellhop + - type: loadout + id: LoadoutHeadPoppy + - type: loadout + id: LoadoutHeadPoppyWhite + - type: loadout + id: LoadoutHeadHatCorpsoft + - type: loadout + id: LoadoutHeadHatCorpsoftFlipped + - type: loadout + id: LoadoutHeadHatMimesoft + - type: loadout + id: LoadoutHeadHatMimesoftFlipped + - type: loadout + id: LoadoutHeadBandWhite + - type: loadout + id: LoadoutHeadBandSkull + - type: loadout + id: LoadoutHeadBandBrown + - type: loadout + id: LoadoutHeadFishCap + - type: loadout + id: LoadoutHeadRastaHat + - type: loadout + id: LoadoutHeadFez + - type: loadout + id: LoadoutHeadBowlerHat + - type: loadout + id: LoadoutHeadGreyFlatcap + - type: loadout + id: LoadoutHeadBrownFlatcap + - type: loadout + id: LoadoutHeadBeretWhite + - type: loadout + id: LoadoutHeadHijabColorable + - type: loadout + id: LoadoutHeadTurbanColorable + - type: loadout + id: LoadoutHeadKippahColorable diff --git a/Resources/Prototypes/CharacterItemGroups/itemGroups.yml b/Resources/Prototypes/CharacterItemGroups/Generic/itemGroups.yml similarity index 69% rename from Resources/Prototypes/CharacterItemGroups/itemGroups.yml rename to Resources/Prototypes/CharacterItemGroups/Generic/itemGroups.yml index 66b7d32ea74..dcf9bbec8aa 100644 --- a/Resources/Prototypes/CharacterItemGroups/itemGroups.yml +++ b/Resources/Prototypes/CharacterItemGroups/Generic/itemGroups.yml @@ -7,66 +7,10 @@ items: - type: loadout id: LoadoutUniformAncientJumpsuit - - type: loadout - id: LoadoutUniformJumpsuitColorBlack - - type: loadout - id: LoadoutUniformJumpskirtColorBlack - - type: loadout - id: LoadoutUniformJumpsuitColorBlue - - type: loadout - id: LoadoutUniformJumpskirtColorBlue - - type: loadout - id: LoadoutUniformJumpsuitColorBrown - - type: loadout - id: LoadoutUniformJumpskirtColorBrown - - type: loadout - id: LoadoutUniformJumpsuitColorDarkBlue - - type: loadout - id: LoadoutUniformJumpskirtColorDarkBlue - - type: loadout - id: LoadoutUniformJumpsuitColorDarkGreen - - type: loadout - id: LoadoutUniformJumpskirtColorDarkGreen - - type: loadout - id: LoadoutUniformJumpsuitColorGreen - - type: loadout - id: LoadoutUniformJumpskirtColorGreen - - type: loadout - id: LoadoutUniformJumpsuitColorLightBrown - - type: loadout - id: LoadoutUniformJumpskirtColorLightBrown - - type: loadout - id: LoadoutUniformJumpsuitColorMaroon - - type: loadout - id: LoadoutUniformJumpskirtColorMaroon - - type: loadout - id: LoadoutUniformJumpsuitColorOrange - - type: loadout - id: LoadoutUniformJumpskirtColorOrange - - type: loadout - id: LoadoutUniformJumpsuitColorPink - - type: loadout - id: LoadoutUniformJumpskirtColorPink - - type: loadout - id: LoadoutUniformJumpsuitColorPurple - - type: loadout - id: LoadoutUniformJumpskirtColorPurple - - type: loadout - id: LoadoutUniformJumpsuitColorRed - - type: loadout - id: LoadoutUniformJumpskirtColorRed - - type: loadout - id: LoadoutUniformJumpsuitColorTeal - - type: loadout - id: LoadoutUniformJumpskirtColorTeal - type: loadout id: LoadoutUniformJumpsuitColorWhite - type: loadout id: LoadoutUniformJumpskirtColorWhite - - type: loadout - id: LoadoutUniformJumpsuitColorYellow - - type: loadout - id: LoadoutUniformJumpskirtColorYellow - type: loadout id: LoadoutUniformJumpsuitFlannel - type: loadout diff --git a/Resources/Prototypes/CharacterItemGroups/languageGroups.yml b/Resources/Prototypes/CharacterItemGroups/Generic/languageGroups.yml similarity index 100% rename from Resources/Prototypes/CharacterItemGroups/languageGroups.yml rename to Resources/Prototypes/CharacterItemGroups/Generic/languageGroups.yml diff --git a/Resources/Prototypes/CharacterItemGroups/Generic/maskGroup.yml b/Resources/Prototypes/CharacterItemGroups/Generic/maskGroup.yml new file mode 100644 index 00000000000..fe78d84c9e9 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Generic/maskGroup.yml @@ -0,0 +1,15 @@ +- type: characterItemGroup + id: LoadoutMasks + items: + - type: loadout + id: LoadoutMaskSterile + - type: loadout + id: LoadoutMaskMuzzle + - type: loadout + id: LoadoutMaskGas + - type: loadout + id: LoadoutMaskBandSkull + - type: loadout + id: LoadoutMaskBandWhite + - type: loadout + id: LoadoutMaskNeckGaiterWhite diff --git a/Resources/Prototypes/CharacterItemGroups/miscItemGroups.yml b/Resources/Prototypes/CharacterItemGroups/Generic/miscItemGroups.yml similarity index 91% rename from Resources/Prototypes/CharacterItemGroups/miscItemGroups.yml rename to Resources/Prototypes/CharacterItemGroups/Generic/miscItemGroups.yml index 3cad4423f52..cc1e82ceb69 100644 --- a/Resources/Prototypes/CharacterItemGroups/miscItemGroups.yml +++ b/Resources/Prototypes/CharacterItemGroups/Generic/miscItemGroups.yml @@ -121,3 +121,16 @@ id: LoadoutBookRandom - type: loadout id: LoadoutPen + +- type: characterItemGroup + id: LoadoutPets + maxItems: 1 + items: + - type: loadout + id: LoadoutItemPetMouse + - type: loadout + id: LoadoutItemPetHamster + - type: loadout + id: LoadoutItemPetMothroach + - type: loadout + id: LoadoutItemPetCockroach diff --git a/Resources/Prototypes/CharacterItemGroups/neckGroup.yml b/Resources/Prototypes/CharacterItemGroups/Generic/neckGroup.yml similarity index 68% rename from Resources/Prototypes/CharacterItemGroups/neckGroup.yml rename to Resources/Prototypes/CharacterItemGroups/Generic/neckGroup.yml index 2a7add033e0..ef3f40891a7 100644 --- a/Resources/Prototypes/CharacterItemGroups/neckGroup.yml +++ b/Resources/Prototypes/CharacterItemGroups/Generic/neckGroup.yml @@ -25,16 +25,8 @@ id: LoadoutNeckScarfStripedPurple - type: loadout id: LoadoutNeckScarfStripedZebra - - type: loadout - id: LoadoutNeckTieRed - type: loadout id: LoadoutNeckTieWhite - - type: loadout - id: LoadoutNeckTieBlack - - type: loadout - id: LoadoutNeckTieBlue - - type: loadout - id: LoadoutNeckTieGreen - type: loadout id: LoadoutItemsPrideLGBTPin - type: loadout @@ -53,29 +45,11 @@ id: LoadoutItemsPridePansexualPin - type: loadout id: LoadoutItemsPrideTransPin - - type: loadout - id: LoadoutNeckBedsheetBlack - - type: loadout - id: LoadoutNeckBedsheetBlue - - type: loadout - id: LoadoutNeckBedsheetBrown - type: loadout id: LoadoutNeckBedsheetCosmos - - type: loadout - id: LoadoutNeckBedsheetGreen - - type: loadout - id: LoadoutNeckBedsheetGrey - - type: loadout - id: LoadoutNeckBedsheetOrange - - type: loadout - id: LoadoutNeckBedsheetPurple - type: loadout id: LoadoutNeckBedsheetRainbow - - type: loadout - id: LoadoutNeckBedsheetRed - type: loadout id: LoadoutNeckBedsheetWhite - - type: loadout - id: LoadoutNeckBedsheetYellow - type: loadout id: LoadoutNeckBedsheetNT diff --git a/Resources/Prototypes/CharacterItemGroups/outerwearGroup.yml b/Resources/Prototypes/CharacterItemGroups/Generic/outerwearGroup.yml similarity index 100% rename from Resources/Prototypes/CharacterItemGroups/outerwearGroup.yml rename to Resources/Prototypes/CharacterItemGroups/Generic/outerwearGroup.yml diff --git a/Resources/Prototypes/CharacterItemGroups/shoeGroup.yml b/Resources/Prototypes/CharacterItemGroups/Generic/shoeGroup.yml similarity index 64% rename from Resources/Prototypes/CharacterItemGroups/shoeGroup.yml rename to Resources/Prototypes/CharacterItemGroups/Generic/shoeGroup.yml index e3b71e7977e..ea56881c555 100644 --- a/Resources/Prototypes/CharacterItemGroups/shoeGroup.yml +++ b/Resources/Prototypes/CharacterItemGroups/Generic/shoeGroup.yml @@ -1,24 +1,8 @@ - type: characterItemGroup id: LoadoutShoes items: - - type: loadout - id: LoadoutShoesBlack - - type: loadout - id: LoadoutShoesBlue - - type: loadout - id: LoadoutShoesBrown - - type: loadout - id: LoadoutShoesGreen - - type: loadout - id: LoadoutShoesOrange - - type: loadout - id: LoadoutShoesPurple - - type: loadout - id: LoadoutShoesRed - type: loadout id: LoadoutShoesWhite - - type: loadout - id: LoadoutShoesYellow - type: loadout id: LoadoutShoesGeta - type: loadout @@ -29,10 +13,6 @@ id: LoadoutShoesBootsLaceup - type: loadout id: LoadoutShoesBootsWinter - - type: loadout - id: LoadoutShoesBootsCowboyBrown - - type: loadout - id: LoadoutShoesBootsCowboyBlack - type: loadout id: LoadoutShoesBootsCowboyWhite - type: loadout diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Command/captain.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Command/captain.yml new file mode 100644 index 00000000000..57df945ec91 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Command/captain.yml @@ -0,0 +1,144 @@ +- type: characterItemGroup + id: LoadoutCaptainBackpacks + maxItems: 1 + items: + - type: loadout + id: LoadoutBackpackCaptain + - type: loadout + id: LoadoutBackpackSatchelCaptain + - type: loadout + id: LoadoutBackpackDuffelCaptain + - type: loadout + id: LoadoutBackpackCaptainFilled + - type: loadout + id: LoadoutBackpackSatchelCaptainFilled + - type: loadout + id: LoadoutBackpackDuffelCaptainFilled + +- type: characterItemGroup + id: LoadoutCaptainBelt + maxItems: 1 + items: + - type: loadout + id: LoadoutCaptainSwordSheath + +#- type: characterItemGroup +# id: LoadoutCaptainEars +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutCaptainEquipment +# maxItems: 1 +# items: + +- type: characterItemGroup + id: LoadoutCaptainTrinkets + maxItems: 3 + items: + - type: loadout + id: LoadoutCaptainDrinkFlask + - type: loadout + id: LoadoutCaptainMedalCase + - type: loadout + id: LoadoutCaptainSpaceCash1000 + - type: loadout + id: LoadoutCaptainCigarCase + +- type: characterItemGroup + id: LoadoutCaptainWeapon + maxItems: 1 + items: + - type: loadout + id: LoadoutCaptainAntiqueLaserPistol + - type: loadout + id: LoadoutCaptainPulsePistol + +- type: characterItemGroup + id: LoadoutCaptainEyes + maxItems: 1 + items: + - type: loadout + id: LoadoutCaptainEyesSunglasses + +- type: characterItemGroup + id: LoadoutCaptainGloves + maxItems: 1 + items: + - type: loadout + id: LoadoutCaptainGlovesCapGloves + - type: loadout + id: LoadoutCaptainGlovesInspection + +- type: characterItemGroup + id: LoadoutCaptainHead + maxItems: 1 + items: + - type: loadout + id: LoadoutCommandCapHat + - type: loadout + id: LoadoutCommandCapHatCapcap + - type: loadout + id: LoadoutCommandCapHatBeret + +- type: characterItemGroup + id: LoadoutCaptainId + maxItems: 1 + items: + - type: loadout + id: LoadoutCaptainNTPDA + +- type: characterItemGroup + id: LoadoutCaptainNeck + maxItems: 1 + items: + - type: loadout + id: LoadoutCommandCapNeckMantle + - type: loadout + id: LoadoutCommandCapNeckCloak + - type: loadout + id: LoadoutCommandCapNeckCloakFormal + - type: loadout + id: LoadoutCaptainNeckGoldMedal + +- type: characterItemGroup + id: LoadoutCaptainMask + maxItems: 1 + items: + - type: loadout + id: LoadoutCommandCapMaskGas + +- type: characterItemGroup + id: LoadoutCaptainOuter + maxItems: 1 + items: + - type: loadout + id: LoadoutCommandCapOuterWinter + - type: loadout + id: LoadoutCaptainOuterCarapace + +- type: characterItemGroup + id: LoadoutCaptainShoes + maxItems: 1 + items: + - type: loadout + id: LoadoutCaptainShoesLaceup + - type: loadout + id: LoadoutCaptainShoesLeather + - type: loadout + id: LoadoutCaptainShoesWinter + - type: loadout + id: LoadoutCaptainShoesCombat + +- type: characterItemGroup + id: LoadoutCaptainUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutCommandCapJumpsuit + - type: loadout + id: LoadoutCommandCapJumpskirt + - type: loadout + id: LoadoutCommandCapJumpsuitFormal + - type: loadout + id: LoadoutCommandCapJumpskirtFormal diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Command/commandUncategorized.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Command/commandUncategorized.yml new file mode 100644 index 00000000000..c20e6dd322d --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Command/commandUncategorized.yml @@ -0,0 +1,78 @@ +# All Command +#- type: characterItemGroup +# id: LoadoutCommandBackpacks +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutCommandBelt +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutCommandEars +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutCommandEquipment +# maxItems: 1 +# items: + +- type: characterItemGroup + id: LoadoutCommandSelfDefense + maxItems: 1 + items: + - type: loadout + id: LoadoutCommandTelescopicBaton + - type: loadout + id: LoadoutCommandDisabler + - type: loadout + id: LoadoutCommandStunBaton + - type: loadout + id: LoadoutCommandFlash + +#- type: characterItemGroup +# id: LoadoutCommandEyes +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutCommandGloves +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutCommandHead +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutCommandId +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutCommandNeck +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutCommandMask +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutCommandOuter +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutCommandShoes +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutCommandUniforms +# maxItems: 1 +# items: diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Command/headOfPersonnel.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Command/headOfPersonnel.yml new file mode 100644 index 00000000000..c15099ae6a2 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Command/headOfPersonnel.yml @@ -0,0 +1,125 @@ +- type: characterItemGroup + id: LoadoutHeadOfPersonnelBackpacks + maxItems: 1 + items: + - type: loadout + id: LoadoutHeadOfPersonnelBackpacksBackpackFilled + - type: loadout + id: LoadoutHeadOfPersonnelBackpacksSatchelFilled + - type: loadout + id: LoadoutHeadOfPersonnelBackpacksDuffelFilled + - type: loadout + id: LoadoutCommandHOPBackIan + - type: loadout + id: LoadoutCommandHOPBackIanFilled + +- type: characterItemGroup + id: LoadoutHeadOfPersonnelBelt + maxItems: 1 + items: + - type: loadout + id: LoadoutHeadOfPersonnelBeltClipboard + +#- type: characterItemGroup +# id: LoadoutHeadOfPersonnelEars +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutHeadOfPersonnelEquipment +# maxItems: 1 +# items: + +- type: characterItemGroup + id: LoadoutHeadOfPersonnelTrinkets + maxItems: 3 + items: + - type: loadout + id: LoadoutHeadOfPersonnelCigarCase + - type: loadout + id: LoadoutHeadOfPersonnelBookIanDossier + +#- type: characterItemGroup +# id: LoadoutHeadOfPersonnelEyes +# maxItems: 1 +# items: + +- type: characterItemGroup + id: LoadoutHeadOfPersonnelGloves + maxItems: 1 + items: + - type: loadout + id: LoadoutHeadOfPersonnelGlovesHoP + - type: loadout + id: LoadoutHeadOfPersonnelGlovesInspection + +- type: characterItemGroup + id: LoadoutHeadOfPersonnelHead + maxItems: 1 + items: + - type: loadout + id: LoadoutCommandHOPHatCap + +- type: characterItemGroup + id: LoadoutHeadOfPersonnelId + maxItems: 1 + items: + - type: loadout + id: LoadoutHeadOfPersonnelNTPDA + +- type: characterItemGroup + id: LoadoutHeadOfPersonnelNeck + maxItems: 1 + items: + - type: loadout + id: LoadoutCommandHOPNeckMantle + - type: loadout + id: LoadoutCommandHOPNeckCloak + - type: loadout + id: LoadoutCommandHOPBedsheetIan + - type: loadout + id: LoadoutHeadOfPersonnelNeckGoldMedal + +#- type: characterItemGroup +# id: LoadoutHeadOfPersonnelMask +# maxItems: 1 +# items: + +- type: characterItemGroup + id: LoadoutHeadOfPersonnelOuter + maxItems: 1 + items: + - type: loadout + id: LoadoutcommandHOPOuterCoatFormal + - type: loadout + id: LoadoutHeadOfPersonnelOuterWinter + - type: loadout + id: LoadoutHeadOfPersonnelOuterArmoredCoat + - type: loadout + id: LoadoutHeadOfPersonnelOuterDuraVest + +- type: characterItemGroup + id: LoadoutHeadOfPersonnelShoes + maxItems: 1 + items: + - type: loadout + id: LoadoutHeadOfPersonnelShoesLaceup + - type: loadout + id: LoadoutHeadOfPersonnelShoesLeather + - type: loadout + id: LoadoutCommandHOPShoesBootsWinter + +- type: characterItemGroup + id: LoadoutHeadOfPersonnelUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutHeadOfPersonnelUniformJumpsuit + - type: loadout + id: LoadoutHeadOfPersonnelUniformJumpskirt + - type: loadout + id: LoadoutCommandHOPJumpsuitTurtleneckBoatswain + - type: loadout + id: LoadoutCommandHOPJumpsuitMess + - type: loadout + id: LoadoutCommandHOPJumpskirtMess diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Engineering/atmosphericTechnician.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Engineering/atmosphericTechnician.yml new file mode 100644 index 00000000000..1a81612043c --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Engineering/atmosphericTechnician.yml @@ -0,0 +1,117 @@ +- type: characterItemGroup + id: LoadoutAtmosphericTechnicianBackpacks + maxItems: 1 + items: + - type: loadout + id: LoadingEngineeringAtmosBackpackBackpack + - type: loadout + id: LoadingEngineeringAtmosBackpackSatchel + - type: loadout + id: LoadingEngineeringAtmosBackpackDuffel + +- type: characterItemGroup + id: LoadoutAtmosphericTechnicianBelt + maxItems: 1 + items: + - type: loadout + id: LoadoutAtmosphericTechnicianBeltUtility + - type: loadout + id: LoadoutAtmosphericTechnicianBeltUtilityAtmos + +#- type: characterItemGroup +# id: LoadoutAtmosphericTechnicianEars +# maxItems: 1 +# items: + +- type: characterItemGroup + id: LoadoutAtmosphericTechnicianEquipment + maxItems: 1 + items: + - type: loadout + id: LoadoutAtmosphericTechnicianEquipmentBoxInflatable + - type: loadout + id: LoadoutAtmosphericTechnicianEquipmentMedkitOxygen + - type: loadout + id: LoadoutAtmosphericTechnicianEquipmentRCD + - type: loadout + id: LoadoutAtmosphericTechnicianEquipmentPowerDrill + - type: loadout + id: LoadoutAtmosphericTechnicianEquipmentSheetSteel + - type: loadout + id: LoadoutAtmosphericTechnicianEquipmentSheetSteel10 + - type: loadout + id: LoadoutAtmosphericTechnicianEquipmentSheetPlasteel + - type: loadout + id: LoadoutAtmosphericTechnicianEquipmentSheetPlasteel10 + - type: loadout + id: LoadoutAtmosphericTechnicianEquipmentSheetGlass + - type: loadout + id: LoadoutAtmosphericTechnicianEquipmentSheetGlass10 + - type: loadout + id: LoadoutAtmosphericTechnicianEquipmentMaterialWoodPlank + - type: loadout + id: LoadoutAtmosphericTechnicianEquipmentMaterialWoodPlank10 + - type: loadout + id: LoadoutAtmosphericTechnicianEquipmentSheetPlastic + - type: loadout + id: LoadoutAtmosphericTechnicianEquipmentSheetPlastic10 + + +#- type: characterItemGroup +# id: LoadoutAtmosphericTechnicianEyes +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutAtmosphericTechnicianGloves +# maxItems: 1 +# items: + +- type: characterItemGroup + id: LoadoutAtmosphericTechnicianHead + maxItems: 1 + items: + - type: loadout + id: LoadoutAtmosphericTechnicianChickenhead + +#- type: characterItemGroup +# id: LoadoutAtmosphericTechnicianId +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutAtmosphericTechnicianNeck +# maxItems: 1 +# items: + +- type: characterItemGroup + id: LoadoutAtmosphericTechnicianMask + maxItems: 1 + items: + - type: loadout + id: LoadoutAtmosphericTechnicianMaskGasAtmos + +- type: characterItemGroup + id: LoadoutAtmosphericTechnicianOuter + maxItems: 1 + items: + - type: loadout + id: LoadoutAtmosphericTechnicianChickenSuit + +- type: characterItemGroup + id: LoadoutAtmosphericTechnicianShoes + maxItems: 1 + items: + - type: loadout + id: LoadoutAtmosphericTechnicianShoesWhite + - type: loadout + id: LoadoutAtmosphericTechnicianShoesWork + +- type: characterItemGroup + id: LoadoutAtmosphericTechnicianUniforms + maxItems: 1 + items: + - type: loadout + id: LoadingEngineeringAtmosUniformSuit + - type: loadout + id: LoadingEngineeringAtmosUniformSkirt diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Engineering/chiefEngineer.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Engineering/chiefEngineer.yml new file mode 100644 index 00000000000..ff512fec73a --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Engineering/chiefEngineer.yml @@ -0,0 +1,142 @@ +- type: characterItemGroup + id: LoadoutChiefEngineerBackpack + maxItems: 1 + items: + - type: loadout + id: LoadoutEngineeringChiefEngineerBackpackBackpack + - type: loadout + id: LoadoutEngineeringChiefEngineerBackpackSatchel + - type: loadout + id: LoadoutEngineeringChiefEngineerBackpackDuffel + +- type: characterItemGroup + id: LoadoutChiefEngineerBelt + maxItems: 1 + items: + - type: loadout + id: LoadoutChiefEngineerBelt + - type: loadout + id: LoadoutChiefEngineerBeltFilled + +#- type: characterItemGroup +# id: LoadoutChiefEngineerEars +# maxItems: 1 +# items: + +- type: characterItemGroup + id: LoadoutChiefEngineerEquipment + maxItems: 3 + items: + - type: loadout + id: LoadoutChiefEngineerEquipmentBoxInflatable + - type: loadout + id: LoadoutChiefEngineerEquipmentMedkitOxygen + - type: loadout + id: LoadoutChiefEngineerEquipmentRCD + - type: loadout + id: LoadoutChiefEngineerEquipmentRCDAmmoSpare + - type: loadout + id: LoadoutChiefEngineerEquipmentSheetSteel + - type: loadout + id: LoadoutChiefEngineerEquipmentSheetSteel10 + - type: loadout + id: LoadoutChiefEngineerEquipmentSheetPlasteel + - type: loadout + id: LoadoutChiefEngineerEquipmentSheetPlasteel10 + - type: loadout + id: LoadoutChiefEngineerEquipmentSheetGlass + - type: loadout + id: LoadoutChiefEngineerEquipmentSheetGlass10 + - type: loadout + id: LoadoutChiefEngineerEquipmentMaterialWoodPlank + - type: loadout + id: LoadoutChiefEngineerEquipmentMaterialWoodPlank10 + - type: loadout + id: LoadoutChiefEngineerEquipmentSheetRGlass + - type: loadout + id: LoadoutChiefEngineerEquipmentSheetRGlass10 + - type: loadout + id: LoadoutChiefEngineerEquipmentSheetUGlass + - type: loadout + id: LoadoutChiefEngineerEquipmentSheetUGlass10 + - type: loadout + id: LoadoutChiefEngineerEquipmentSheetRUGlass + - type: loadout + id: LoadoutChiefEngineerEquipmentSheetRUGlass10 + - type: loadout + id: LoadoutChiefEngineerEquipmentSheetPGlass + - type: loadout + id: LoadoutChiefEngineerEquipmentSheetPGlass10 + - type: loadout + id: LoadoutChiefEngineerEquipmentSheetRPGlass + - type: loadout + id: LoadoutChiefEngineerEquipmentSheetRPGlass10 + - type: loadout + id: LoadoutChiefEngineerEquipmentSheetClockworkGlass + - type: loadout + id: LoadoutChiefEngineerEquipmentSheetClockworkGlass10 + - type: loadout + id: LoadoutChiefEngineerEquipmentSheetPlastic + - type: loadout + id: LoadoutChiefEngineerEquipmentSheetPlastic10 + +#- type: characterItemGroup +# id: LoadoutChiefEngineerEyes +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutChiefEngineerGloves +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutChiefEngineerHead +# maxItems: 1 +# items: + +- type: characterItemGroup + id: LoadoutChiefEngineerId + maxItems: 1 + items: + - type: loadout + id: LoadoutChiefEngineerNTPDA + +- type: characterItemGroup + id: LoadoutChiefEngineerNeck + maxItems: 1 + items: + - type: loadout + id: LoadoutEngineeringChiefEngineerNeckMantle + - type: loadout + id: LoadoutEngineeringChiefEngineerNeckCloak + - type: loadout + id: LoadoutEngineeringChiefEngineerNeckEngineerMedal + +#- type: characterItemGroup +# id: LoadoutChiefEngineerMask +# maxItems: 1 +# items: + +- type: characterItemGroup + id: LoadoutChiefEngineerOuter + maxItems: 1 + items: + - type: loadout + id: LoadoutCommandCEOuterWinter + +- type: characterItemGroup + id: LoadoutChiefEngineerShoes + maxItems: 1 + items: + - type: loadout + id: LoadoutChiefEngineerShoesBootsWinter + +- type: characterItemGroup + id: LoadoutChiefEngineerUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutChiefEngineerUniformSuit + - type: loadout + id: LoadoutEngineeringChiefEngineerUniformSkirt diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Engineering/engineeringUncategorized.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Engineering/engineeringUncategorized.yml new file mode 100644 index 00000000000..efc045928e0 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Engineering/engineeringUncategorized.yml @@ -0,0 +1,95 @@ +# All Engineering +- type: characterItemGroup + id: LoadoutEngineeringBackpacks + maxItems: 1 + items: + - type: loadout + id: LoadoutBackpackEngineering + - type: loadout + id: LoadoutBackpackSatchelEngineering + - type: loadout + id: LoadoutBackpackDuffelEngineering + +#- type: characterItemGroup +# id: LoadoutEngineeringBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutEngineeringEars +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutEngineeringEquipment +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutEyesEngineering + items: + - type: loadout + id: LoadoutEngineeringEyesMeson + +- type: characterItemGroup + id: LoadoutEngineeringGloves + maxItems: 1 + items: + - type: loadout + id: LoadoutEngineeringGlovesInsulated + - type: loadout + id: LoadoutEngineeringGlovesCombat + - type: loadout + id: LoadoutEngineeringGlovesMerc + +- type: characterItemGroup + id: LoadoutEngineeringHead + items: + - type: loadout + id: LoadoutEngineeringHeadBeret + - type: loadout + id: LoadoutEngineeringHeadHardhatBlue + - type: loadout + id: LoadoutEngineeringHeadHardhatOrange + - type: loadout + id: LoadoutEngineeringHeadHardhatRed + - type: loadout + id: LoadoutEngineeringHeadHardhatWhite + - type: loadout + id: LoadoutEngineeringHeadHardhatYellow + +#- type: characterItemGroup +# id: LoadoutEngineeringId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutEngineeringNeck +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutEngineeringMask +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutEngineeringOuter + items: + - type: loadout + id: LoadoutEngineeringOuterHazard + +#- type: characterItemGroup +# id: LoadoutEngineeringShoes +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutEngineeringUniforms + items: + - type: loadout + id: LoadoutEngineeringUniformSuit + - type: loadout + id: LoadoutEngineeringUniformSkirt + - type: loadout + id: LoadoutEngineeringUniformHazard diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Engineering/seniorEngineer.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Engineering/seniorEngineer.yml new file mode 100644 index 00000000000..2ec353ee46b --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Engineering/seniorEngineer.yml @@ -0,0 +1,130 @@ +#- type: characterItemGroup +# id: LoadoutSeniorEngineerBackpacks +# maxItems: 1 +# items: + +- type: characterItemGroup + id: LoadoutSeniorEngineerBelt + maxItems: 1 + items: + - type: loadout + id: LoadoutSeniorEngineerBeltUtility + - type: loadout + id: LoadoutSeniorEngineerBeltUtilityEngineering + - type: loadout + id: LoadoutSeniorEngineerBeltUtilityAtmos + +#- type: characterItemGroup +# id: LoadoutSeniorEngineerEars +# maxItems: 1 +# items: + +- type: characterItemGroup + id: LoadoutSeniorEngineerEquipment + maxItems: 3 + items: + - type: loadout + id: LoadoutSeniorEngineerEquipmentBoxInflatable + - type: loadout + id: LoadoutSeniorEngineerEquipmentMedkitOxygen + - type: loadout + id: LoadoutSeniorEngineerEquipmentRCD + - type: loadout + id: LoadoutSeniorEngineerEquipmentRCDAmmo1 + - type: loadout + id: LoadoutSeniorEngineerEquipmentRCDAmmo2 + - type: loadout + id: LoadoutSeniorEngineerEquipmentPowerDrill + - type: loadout + id: LoadoutSeniorEngineerEquipmentSheetSteel + - type: loadout + id: LoadoutSeniorEngineerEquipmentSheetSteel10 + - type: loadout + id: LoadoutSeniorEngineerEquipmentSheetPlasteel + - type: loadout + id: LoadoutSeniorEngineerEquipmentSheetPlasteel10 + - type: loadout + id: LoadoutSeniorEngineerEquipmentSheetGlass + - type: loadout + id: LoadoutSeniorEngineerEquipmentSheetGlass10 + - type: loadout + id: LoadoutSeniorEngineerEquipmentMaterialWoodPlank + - type: loadout + id: LoadoutSeniorEngineerEquipmentMaterialWoodPlank10 + - type: loadout + id: LoadoutSeniorEngineerEquipmentSheetRGlass + - type: loadout + id: LoadoutSeniorEngineerEquipmentSheetRGlass10 + - type: loadout + id: LoadoutSeniorEngineerEquipmentSheetUGlass + - type: loadout + id: LoadoutSeniorEngineerEquipmentSheetUGlass10 + - type: loadout + id: LoadoutSeniorEngineerEquipmentSheetRUGlass + - type: loadout + id: LoadoutSeniorEngineerEquipmentSheetRUGlass10 + - type: loadout + id: LoadoutSeniorEngineerEquipmentSheetPGlass + - type: loadout + id: LoadoutSeniorEngineerEquipmentSheetPGlass10 + - type: loadout + id: LoadoutSeniorEngineerEquipmentSheetRPGlass + - type: loadout + id: LoadoutSeniorEngineerEquipmentSheetRPGlass10 + - type: loadout + id: LoadoutSeniorEngineerEquipmentSheetClockworkGlass + - type: loadout + id: LoadoutSeniorEngineerEquipmentSheetClockworkGlass10 + - type: loadout + id: LoadoutSeniorEngineerEquipmentSheetPlastic + - type: loadout + id: LoadoutSeniorEngineerEquipmentSheetPlastic10 + +#- type: characterItemGroup +# id: LoadoutSeniorEngineerEyes +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutSeniorEngineerGloves +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutSeniorEngineerHead +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutSeniorEngineerId +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutSeniorEngineerNeck +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutSeniorEngineerMask +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutSeniorEngineerOuter +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutSeniorEngineerShoes +# maxItems: 1 +# items: + +- type: characterItemGroup + id: LoadoutSeniorEngineerUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutEngineeringUniformJumpskirtSenior + - type: loadout + id: LoadoutEngineeringUniformJumpsuitSenior diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Engineering/stationEngineer.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Engineering/stationEngineer.yml new file mode 100644 index 00000000000..9321ae44577 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Engineering/stationEngineer.yml @@ -0,0 +1,94 @@ +#- type: characterItemGroup +# id: LoadoutStationEngineerBackpacks +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutStationEngineerBelt +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutStationEngineerEars +# maxItems: 1 +# items: + +- type: characterItemGroup + id: LoadoutStationEngineerEquipment + maxItems: 3 + items: + - type: loadout + id: LoadoutStationEngineerEquipmentBoxInflatable + - type: loadout + id: LoadoutStationEngineerEquipmentRCD + - type: loadout + id: LoadoutStationEngineerEquipmentPowerDrill + - type: loadout + id: LoadoutStationEngineerEquipmentSheetSteel + - type: loadout + id: LoadoutStationEngineerEquipmentSheetSteel10 + - type: loadout + id: LoadoutStationEngineerEquipmentSheetPlasteel + - type: loadout + id: LoadoutStationEngineerEquipmentSheetPlasteel10 + - type: loadout + id: LoadoutStationEngineerEquipmentSheetGlass + - type: loadout + id: LoadoutStationEngineerEquipmentSheetGlass10 + - type: loadout + id: LoadoutStationEngineerEquipmentMaterialWoodPlank + - type: loadout + id: LoadoutStationEngineerEquipmentMaterialWoodPlank10 + - type: loadout + id: LoadoutStationEngineerEquipmentSheetPlastic + - type: loadout + id: LoadoutStationEngineerEquipmentSheetPlastic10 + +#- type: characterItemGroup +# id: LoadoutStationEngineerEyes +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutStationEngineerGloves +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutStationEngineerHead +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutStationEngineerId +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutStationEngineerNeck +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutStationEngineerMask +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutStationEngineerOuter +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutStationEngineerShoes +# maxItems: 1 +# items: + +- type: characterItemGroup + id: LoadoutStationEngineerUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutStationEngineerUniformsSuit + - type: loadout + id: LoadoutStationEngineerUniformsSkirt diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Engineering/technicalAssistant.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Engineering/technicalAssistant.yml new file mode 100644 index 00000000000..6b5d50d6475 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Engineering/technicalAssistant.yml @@ -0,0 +1,80 @@ +#- type: characterItemGroup +# id: LoadoutTechnicalAssistantBackpacks +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutTechnicalAssistantBelt +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutTechnicalAssistantEars +# maxItems: 1 +# items: + +- type: characterItemGroup + id: LoadoutTechnicalAssistantEquipment + maxItems: 2 + items: + - type: loadout + id: LoadoutTechnicalAssistantEquipmentBoxInflatable + - type: loadout + id: LoadoutTechnicalAssistantEquipmentSheetSteel10 + - type: loadout + id: LoadoutTechnicalAssistantEquipmentSheetPlasteel10 + - type: loadout + id: LoadoutTechnicalAssistantEquipmentSheetGlass10 + - type: loadout + id: LoadoutTechnicalAssistantEquipmentMaterialWoodPlank10 + - type: loadout + id: LoadoutTechnicalAssistantEquipmentSheetPlastic10 + +#- type: characterItemGroup +# id: LoadoutTechnicalAssistantEyes +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutTechnicalAssistantGloves +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutTechnicalAssistantHead +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutTechnicalAssistantId +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutTechnicalAssistantNeck +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutTechnicalAssistantMask +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutTechnicalAssistantOuter +# maxItems: 1 +# items: + +#- type: characterItemGroup +# id: LoadoutTechnicalAssistantShoes +# maxItems: 1 +# items: + +- type: characterItemGroup + id: LoadoutTechnicalAssistantUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutTechnicalAssistantSuit + - type: loadout + id: LoadoutTechnicalAssistantSkirt diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Epistemics/acolyte.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Epistemics/acolyte.yml new file mode 100644 index 00000000000..f3a3a3196ad --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Epistemics/acolyte.yml @@ -0,0 +1,74 @@ +#- type: characterItemGroup +# id: LoadoutAcolyteBackpacks +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutAcolyteBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutAcolyteEars +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutAcolyteEquipment + maxItems: 3 + items: + - type: loadout + id: LoadoutAcolyteEquipmentCandles + - type: loadout + id: LoadoutAcolyteEquipmentCandlesSmall + - type: loadout + id: LoadoutAcolytePillCanisterSpaceDrugs + +#- type: characterItemGroup +# id: LoadoutAcolyteEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutAcolyteGloves +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutAcolyteHead +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutAcolyteId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutAcolyteNeck +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutAcolyteMask +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutAcolyteOuter +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutAcolyteShoes +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutAcolyteUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutAcolyteUniformSuit + - type: loadout + id: LoadoutAcolyteUniformSkirt diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Epistemics/cataloger.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Epistemics/cataloger.yml new file mode 100644 index 00000000000..2e53ad71dac --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Epistemics/cataloger.yml @@ -0,0 +1,88 @@ +# Cataloger +#- type: characterItemGroup +# id: LoadoutCatalogerBackpacks +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCatalogerBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCatalogerEars +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutCatalogerEquipment + maxItems: 3 + items: + - type: loadout + id: LoadoutCatalogerEquipmentCandles + - type: loadout + id: LoadoutCatalogerEquipmentCandlesSmall + - type: loadout + id: LoadoutCatalogerPillCanisterSpaceDrugs + +#- type: characterItemGroup +# id: LoadoutCatalogerEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCatalogerGloves +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCatalogerHead +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCatalogerId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCatalogerNeck +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCatalogerMask +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCatalogerOuter +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCatalogerShoes +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutCatalogerUniforms + items: + - type: loadout + id: LoadoutScienceJumpsuitLibrarianNt + - type: loadout + id: LoadoutScienceJumpsuitLibrarianIdris + - type: loadout + id: LoadoutScienceJumpsuitLibrarianOrion + - type: loadout + id: LoadoutScienceJumpsuitLibrarianHeph + - type: loadout + id: LoadoutScienceJumpsuitLibrarianPMCG + - type: loadout + id: LoadoutScienceJumpsuitLibrarianZav + - type: loadout + id: LoadoutScienceJumpsuitLibrarianZeng + - type: loadout + id: LoadoutScienceJumpsuitLibrarian + - type: loadout + id: LoadoutScienceJumpskirtLibrarian diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Epistemics/chaplain.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Epistemics/chaplain.yml new file mode 100644 index 00000000000..ff3d75be33c --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Epistemics/chaplain.yml @@ -0,0 +1,103 @@ +# Chaplain +#- type: characterItemGroup +# id: LoadoutChaplainBackpacks +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutChaplainBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutChaplainEars +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutChaplainEquipment + maxItems: 3 + items: + - type: loadout + id: LoadoutChaplainBible + - type: loadout + id: LoadoutChaplainStamp + - type: loadout + id: LoadoutChaplainEquipmentCandles + - type: loadout + id: LoadoutChaplainEquipmentCandlesSmall + - type: loadout + id: LoadoutChaplainPillCanisterSpaceDrugs + +#- type: characterItemGroup +# id: LoadoutChaplainEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutChaplainGloves +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutChaplainHead + maxItems: 1 + items: + - type: loadout + id: LoadoutScienceHeadHatHoodNunHood + - type: loadout + id: LoadoutScienceHeadHatPlaguedoctor + - type: loadout + id: LoadoutScienceHeadHatWitch + - type: loadout + id: LoadoutScienceHeadHatWitch1 + +#- type: characterItemGroup +# id: LoadoutChaplainId +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutChaplainNeck + maxItems: 1 + items: + - type: loadout + id: LoadoutScienceNeckStoleChaplain + +- type: characterItemGroup + id: LoadoutChaplainMask + maxItems: 1 + items: + - type: loadout + id: LoadoutScienceMaskPlague + +- type: characterItemGroup + id: LoadoutChaplainOuter + maxItems: 1 + items: + - type: loadout + id: LoadoutScienceOuterPlagueSuit + - type: loadout + id: LoadoutScienceOuterNunRobe + - type: loadout + id: LoadoutScienceOuterHoodieBlack + - type: loadout + id: LoadoutScienceOuterHoodieChaplain + +#- type: characterItemGroup +# id: LoadoutChaplainShoes +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutChaplainUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutChaplainJumpsuit + - type: loadout + id: LoadoutChaplainJumpskirt + - type: loadout + id: LoadoutScienceUniformJumpsuitMonasticRobeDark + - type: loadout + id: LoadoutScienceUniformJumpsuitMonasticRobeLight diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Epistemics/golemancer.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Epistemics/golemancer.yml new file mode 100644 index 00000000000..2556250f515 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Epistemics/golemancer.yml @@ -0,0 +1,81 @@ +# Golemancer +- type: characterItemGroup + id: LoadoutGolemancerBackpacks + maxItems: 1 + items: + - type: loadout + id: LoadoutBackpackRobotics + - type: loadout + id: LoadoutBackpackSatchelRobotics + - type: loadout + id: LoadoutBackpackDuffelRobotics + +#- type: characterItemGroup +# id: LoadoutGolemancerBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutGolemancerEars +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutGolemancerEquipment + maxItems: 3 + items: + - type: loadout + id: LoadoutGolemancerEquipmentCandles + - type: loadout + id: LoadoutGolemancerEquipmentCandlesSmall + - type: loadout + id: LoadoutGolemancerPillCanisterSpaceDrugs + +#- type: characterItemGroup +# id: LoadoutGolemancerEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutGolemancerGloves +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutGolemancerHead +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutGolemancerId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutGolemancerNeck +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutGolemancerMask +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutGolemancerOuter +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutGolemancerShoes +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutGolemancerUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutScienceUniformJumpskirtRoboticist + - type: loadout + id: LoadoutScienceUniformJumpsuitRoboticist diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Epistemics/mystagogue.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Epistemics/mystagogue.yml new file mode 100644 index 00000000000..7e2fbbe4b6a --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Epistemics/mystagogue.yml @@ -0,0 +1,101 @@ +# Mystagogue +- type: characterItemGroup + id: LoadoutMystagogueBackpacks + maxItems: 1 + items: + - type: loadout + id: LoadoutMystagogueBackpacksBackpack + - type: loadout + id: LoadoutMystagogueBackpacksSatchel + - type: loadout + id: LoadoutMystagogueBackpacksDuffel + +#- type: characterItemGroup +# id: LoadoutMystagogueBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMystagogueEars +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutMystagogueEquipment + maxItems: 3 + items: + - type: loadout + id: LoadoutMystagogueEquipmentCandles + - type: loadout + id: LoadoutMystagogueEquipmentCandlesSmall + - type: loadout + id: LoadoutMystagoguePillCanisterSpaceDrugs + +#- type: characterItemGroup +# id: LoadoutMystagogueEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMystagogueGloves +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutMystagogueHead + maxItems: 1 + items: + - type: loadout + id: LoadoutCommandRDHeadHatBeretMysta + - type: loadout + id: LoadoutCommandRDHeadHoodMysta + +- type: characterItemGroup + id: LoadoutMystagogueId + maxItems: 1 + items: + - type: loadout + id: LoadoutMystagogueNTPDA + +- type: characterItemGroup + id: LoadoutMystagogueNeck + maxItems: 1 + items: + - type: loadout + id: LoadoutCommandRDNeckMantle + - type: loadout + id: LoadoutCommandRDNeckCloak + - type: loadout + id: LoadoutCommandRDNeckCloakMystagogue + - type: loadout + id: LoadoutMystagogueNeckSciencemedal + +#- type: characterItemGroup +# id: LoadoutMystagogueMask +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutMystagogueOuter + maxItems: 1 + items: + - type: loadout + id: LoadoutCommandRDOuterWinter + - type: loadout + id: LoadoutCommandRDOuterMysta + +- type: characterItemGroup + id: LoadoutMystagogueShoes + maxItems: 1 + items: + - type: loadout + id: LoadoutCommandRDShoesBootsWinter + +- type: characterItemGroup + id: LoadoutMystagogueUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutMystagogueUniformJumpsuit + - type: loadout + id: LoadoutMystagogueUniformJumpskirt diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Epistemics/mystic.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Epistemics/mystic.yml new file mode 100644 index 00000000000..8e6bbfbc8ba --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Epistemics/mystic.yml @@ -0,0 +1,77 @@ +# Mystic +#- type: characterItemGroup +# id: LoadoutMysticBackpacks +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMysticBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMysticEars +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutMysticEquipment + maxItems: 3 + items: + - type: loadout + id: LoadoutMysticEquipmentCandles + - type: loadout + id: LoadoutMysticEquipmentCandlesSmall + - type: loadout + id: LoadoutMysticPillCanisterSpaceDrugs + +#- type: characterItemGroup +# id: LoadoutMysticEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMysticGloves +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMysticHead +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMysticId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMysticNeck +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMysticMask +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutMysticOuter + maxItems: 1 + items: + - type: loadout + id: LoadoutScienceOuterLabcoatSeniorResearcher + +#- type: characterItemGroup +# id: LoadoutMysticShoes +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutMysticUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutScienceUniformJumpskirtSenior + - type: loadout + id: LoadoutScienceUniformJumpsuitSenior diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Epistemics/noviciate.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Epistemics/noviciate.yml new file mode 100644 index 00000000000..b0fb71ae674 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Epistemics/noviciate.yml @@ -0,0 +1,75 @@ +# Noviciate +#- type: characterItemGroup +# id: LoadoutNoviciateBackpacks +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutNoviciateBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutNoviciateEars +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutNoviciateEquipment + maxItems: 3 + items: + - type: loadout + id: LoadoutNoviciateEquipmentCandles + - type: loadout + id: LoadoutNoviciateEquipmentCandlesSmall + - type: loadout + id: LoadoutNoviciatePillCanisterSpaceDrugs + +#- type: characterItemGroup +# id: LoadoutNoviciateEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutNoviciateGloves +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutNoviciateHead +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutNoviciateId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutNoviciateNeck +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutNoviciateMask +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutNoviciateOuter +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutNoviciateShoes +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutNoviciateUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutNoviciateUniformSuit + - type: loadout + id: LoadoutNoviciateUniformSkirt diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Epistemics/psionicMantis.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Epistemics/psionicMantis.yml new file mode 100644 index 00000000000..32660c5f0bf --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Epistemics/psionicMantis.yml @@ -0,0 +1,79 @@ +# Psionic Mantis +#- type: characterItemGroup +# id: LoadoutPsionicMantisBackpacks +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutPsionicMantisBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutPsionicMantisEars +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutPsionicMantisEquipment + maxItems: 3 + items: + - type: loadout + id: LoadoutPsionicMantisEquipmentCandles + - type: loadout + id: LoadoutPsionicMantisEquipmentCandlesSmall + - type: loadout + id: LoadoutPsionicMantisPillCanisterSpaceDrugs + - type: loadout + id: LoadoutPsionicMantisPillCanisterCryptobiolin + +#- type: characterItemGroup +# id: LoadoutPsionicMantisEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutPsionicMantisGloves +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutPsionicMantisHead +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutPsionicMantisId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutPsionicMantisNeck +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutPsionicMantisMask +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutPsionicMantisOuter + maxItems: 1 + items: + - type: loadout + id: LoadoutScienceOuterWinterCoatMantis + +#- type: characterItemGroup +# id: LoadoutPsionicMantisShoes +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutPsionicMantisUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutPsionicMantisUniformSuit + - type: loadout + id: LoadoutPsionicMantisUniformSkirt diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Epistemics/uncategorized.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Epistemics/uncategorized.yml new file mode 100644 index 00000000000..8483c8b588a --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Epistemics/uncategorized.yml @@ -0,0 +1,106 @@ +# All Epistemics +- type: characterItemGroup + id: LoadoutEpistemicsBackpacks + maxItems: 1 + items: + - type: loadout + id: LoadoutBackpackScience + - type: loadout + id: LoadoutBackpackSatchelScience + - type: loadout + id: LoadoutBackpackDuffelScience + +#- type: characterItemGroup +# id: LoadoutEpistemicsBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutEpistemicsEars +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutEpistemicsEquipment +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutEpistemicsEyes + maxItems: 1 + items: + - type: loadout + id: LoadoutScienceEyesHudDiagnostic + - type: loadout + id: LoadoutScienceEyesEyepatchHudDiag + +- type: characterItemGroup + id: LoadoutEpistemicsGloves + maxItems: 1 + items: + - type: loadout + id: LoadoutScienceHandsGlovesColorPurple + - type: loadout + id: LoadoutScienceHandsGlovesLatex + - type: loadout + id: LoadoutScienceHandsGlovesRobohands + +- type: characterItemGroup + id: LoadoutEpistemicsHead + maxItems: 1 + items: + - type: loadout + id: LoadoutScienceHeadHatBeret + - type: loadout + id: LoadoutScienceHeadHatFez + - type: loadout + id: LoadoutHeadHoodTechPriest + +#- type: characterItemGroup +# id: LoadoutEpistemicsId +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutEpistemicsNeck + maxItems: 1 + items: + - type: loadout + id: LoadoutScienceNeckTieSci + - type: loadout + id: LoadoutScienceNeckScarfStripedPurple + - type: loadout + id: LoadoutScienceNeckScarfStripedBlack + +#- type: characterItemGroup +# id: LoadoutEpistemicsMask +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutEpistemicsOuter + maxItems: 1 + items: + - type: loadout + id: LoadoutScienceOuterCoat + - type: loadout + id: LoadoutScienceOuterLabcoat + - type: loadout + id: LoadoutScienceOuterCoatRobo + - type: loadout + id: LoadoutScienceOuterWinterSci + - type: loadout + id: LoadoutScienceOuterExplorerLabcoat + - type: loadout + id: LoadoutOuterRobeTechPriest + +- type: characterItemGroup + id: LoadoutEpistemicsShoes + items: + - type: loadout + id: LoadoutScienceShoesBootsWinterSci + +#- type: characterItemGroup +# id: LoadoutEpistemicsUniforms +# maxItems: 1 +# items: diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Logistics/cargoTechnician.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Logistics/cargoTechnician.yml new file mode 100644 index 00000000000..5bc209e3f82 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Logistics/cargoTechnician.yml @@ -0,0 +1,73 @@ +# Cargo Technician +#- type: characterItemGroup +# id: LoadoutCargoTechnicianBackpacks +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCargoTechnicianBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCargoTechnicianEars +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCargoTechnicianEquipment +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCargoTechnicianEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCargoTechnicianGloves +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCargoTechnicianHead +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCargoTechnicianId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCargoTechnicianNeck +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCargoTechnicianMask +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutCargoTechnicianOuter + maxItems: 1 + items: + - type: loadout + id: LoadoutCargoOuterWinterCargo + +- type: characterItemGroup + id: LoadoutCargoTechnicianShoes + maxItems: 1 + items: + - type: loadout + id: LoadoutCargoShoesBootsWinterCargo + +- type: characterItemGroup + id: LoadoutCargoTechnicianUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutCargoTechnicianUniformSuit + - type: loadout + id: LoadoutCargoTechnicianUniformSkirt diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Logistics/courier.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Logistics/courier.yml new file mode 100644 index 00000000000..3bd4172dd22 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Logistics/courier.yml @@ -0,0 +1,77 @@ +# Courier +#- type: characterItemGroup +# id: LoadoutCourierBackpacks +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCourierBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCourierEars +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCourierEquipment +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCourierEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCourierGloves +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutCourierHead + maxItems: 1 + items: + - type: loadout + id: LoadoutCourierHeadMail + +#- type: characterItemGroup +# id: LoadoutCourierId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCourierNeck +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCourierMask +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutCourierOuter + maxItems: 1 + items: + - type: loadout + id: LoadoutCourierOuterMail + +#- type: characterItemGroup +# id: LoadoutCourierShoes +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutCourierUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutCourierUniformSuit + - type: loadout + id: LoadoutCourierUniformSkirt + - type: loadout + id: LoadoutCourierUniformMailSuit + - type: loadout + id: LoadoutCourierUniformMailSkirt diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Logistics/logisticsOfficer.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Logistics/logisticsOfficer.yml new file mode 100644 index 00000000000..230fd830363 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Logistics/logisticsOfficer.yml @@ -0,0 +1,77 @@ +# Logistics Officer +#- type: characterItemGroup +# id: LoadoutLogisticsOfficerBackpacks +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutLogisticsOfficerBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutLogisticsOfficerEars +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutLogisticsOfficerEquipment +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutLogisticsOfficerEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutLogisticsOfficerGloves +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutLogisticsOfficerHead + maxItems: 1 + items: + - type: loadout + id: LoadoutCommandQMHeadSoft + +- type: characterItemGroup + id: LoadoutLogisticsOfficerId + maxItems: 1 + items: + - type: loadout + id: LoadoutLogisticsOfficerNTPDA + +- type: characterItemGroup + id: LoadoutLogisticsOfficerNeck + maxItems: 1 + items: + - type: loadout + id: LoadoutCommandQMNeckCloak + +#- type: characterItemGroup +# id: LoadoutLogisticsOfficerMask +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutLogisticsOfficerOuter +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutLogisticsOfficerShoes + maxItems: 1 + items: + - type: loadout + id: LoadoutCommandQMShoesBootsWinter + +- type: characterItemGroup + id: LoadoutLogisticsOfficerUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutCommandQMUniformTurtleneck + - type: loadout + id: LoadoutCommandQMUniformTurtleneckSkirt diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Logistics/salvageSpecialist.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Logistics/salvageSpecialist.yml new file mode 100644 index 00000000000..7119120999d --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Logistics/salvageSpecialist.yml @@ -0,0 +1,112 @@ +# Salvage Specialist +- type: characterItemGroup + id: LoadoutSalvageSpecialistBackpacks + maxItems: 1 + items: + - type: loadout + id: LoadoutBackpackSalvage + - type: loadout + id: LoadoutSalvageBackpackSatchel + - type: loadout + id: LoadoutSalvageBackpackDuffel + +- type: characterItemGroup + id: LoadoutSalvageSpecialistBelt + maxItems: 1 + items: + - type: loadout + id: LoadoutSalvageBeltMercWebbing + - type: loadout + id: LoadoutSalvageBeltSalvageWebbing + - type: loadout + id: LoadoutSalvageBeltMilitaryWebbing + +#- type: characterItemGroup +# id: LoadoutSalvageSpecialistEars +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSalvageSpecialistEquipment +# maxItems: 1 +# items: + +- type: characterItemGroup + id: LoadoutSalvageSpecialistWeapons + maxItems: 1 + items: + - type: loadout + id: LoadoutCargoWeaponsCrusherDagger + - type: loadout + id: LoadoutSalvageWeaponsCombatKnife + - type: loadout + id: LoadoutSalvageWeaponsKitchenKnife + - type: loadout + id: LoadoutSalvageWeaponsSurvivalKnife + - type: loadout + id: LoadoutSalvageWeaponsKukriKnife + - type: loadout + id: LoadoutSalvageWeaponsCleaver + - type: loadout + id: LoadoutSalvageWeaponsThrowingKnife + - type: loadout + id: LoadoutSalvageWeaponsMachete + - type: loadout + id: LoadoutSalvageWeaponsCutlass + - type: loadout + id: LoadoutSalvageWeaponsKatana + - type: loadout + id: LoadoutSalvageWeaponsWakizashi + +#- type: characterItemGroup +# id: LoadoutSalvageSpecialistEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSalvageSpecialistGloves +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSalvageSpecialistHead +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSalvageSpecialistId +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutSalvageSpecialistNeck + maxItems: 1 + items: + - type: loadout + id: LoadoutCargoNeckGoliathCloak + - type: loadout + id: LoadoutSalvageNeckCloakMiner + +#- type: characterItemGroup +# id: LoadoutSalvageSpecialistMask +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutSalvageSpecialistOuter + maxItems: 1 + items: + - type: loadout + id: LoadoutCargoOuterWinterMiner + +#- type: characterItemGroup +# id: LoadoutSalvageSpecialistShoes +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutSalvageSpecialistUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutSalvageSpecialistUniformSuit diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Logistics/uncategorized.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Logistics/uncategorized.yml new file mode 100644 index 00000000000..eea65b4c411 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Logistics/uncategorized.yml @@ -0,0 +1,71 @@ +# All Logistics +- type: characterItemGroup + id: LoadoutLogisticsBackpacks + maxItems: 1 + items: + - type: loadout + id: LoadoutBackpackCargo + - type: loadout + id: LoadoutBackpackSatchelCargo + - type: loadout + id: LoadoutBackpackDuffelCargo + +#- type: characterItemGroup +# id: LoadoutLogisticsBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutLogisticsEars +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutLogisticsEquipment +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutLogisticsEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutLogisticsGloves +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutLogisticsHead +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutLogisticsId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutLogisticsNeck +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutLogisticsMask +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutLogisticsOuter +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutLogisticsShoes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutLogisticsUniforms +# maxItems: 1 +# items: diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Medical/chemist.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Medical/chemist.yml new file mode 100644 index 00000000000..016507e0656 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Medical/chemist.yml @@ -0,0 +1,113 @@ +# Chemist +- type: characterItemGroup + id: LoadoutChemistBackpacks + maxItems: 1 + items: + - type: loadout + id: LoadoutChemistryBackpackBackpack + - type: loadout + id: LoadoutBackpackSatchelChemistry + - type: loadout + id: LoadoutBackpackDuffelChemistry + +- type: characterItemGroup + id: LoadoutChemistBelt + maxItems: 1 + items: + - type: loadout + id: LoadoutChemistBeltChemBag + +#- type: characterItemGroup +# id: LoadoutChemistEars +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutChemistEquipment + maxItems: 3 + items: + - type: loadout + id: LoadoutMedicalItemHandLabeler + - type: loadout + id: LoadoutChemistPillCanisterKelotane + - type: loadout + id: LoadoutChemistPillCanisterTricordrazine + - type: loadout + id: LoadoutChemistPillCanisterHyronalin + - type: loadout + id: LoadoutChemistPillCanisterBicaridine + - type: loadout + id: LoadoutChemistPillCanisterDermaline + - type: loadout + id: LoadoutChemistPillCanisterDylovene + - type: loadout + id: LoadoutChemistPillCanisterDexalin + - type: loadout + id: LoadoutChemistPillCanisterSpaceDrugs + +- type: characterItemGroup + id: LoadoutChemistEyes + maxItems: 1 + items: + - type: loadout + id: LoadoutMedicalEyesGlassesChemicalBudget + - type: loadout + id: LoadoutMedicalEyesGlassesChemical + - type: loadout + id: LoadoutMedicalEyesGlassesChemist + +- type: characterItemGroup + id: LoadoutChemistGloves + maxItems: 1 + items: + - type: loadout + id: LoadoutMedicalHandsGlovesChemist + +#- type: characterItemGroup +# id: LoadoutChemistHead +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutChemistId +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutChemistNeck + maxItems: 1 + items: + - type: loadout + id: LoadoutMedicalNeckTieChem + +#- type: characterItemGroup +# id: LoadoutChemistMask +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutChemistOuter + maxItems: 1 + items: + - type: loadout + id: LoadoutMedicalOuterLabcoatChem + - type: loadout + id: LoadoutMedicalOuterApronChemist + +- type: characterItemGroup + id: LoadoutChemistShoes + maxItems: 1 + items: + - type: loadout + id: LoadoutMedicalShoesEnclosedChem + +- type: characterItemGroup + id: LoadoutChemistUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutMedicalUniformJumpsuitChemShirt + - type: loadout + id: LoadoutMedicalUniformJumpsuitChemistry + - type: loadout + id: LoadoutMedicalUniformJumpskirtChemistry diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Medical/chiefMedicalOfficer.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Medical/chiefMedicalOfficer.yml new file mode 100644 index 00000000000..6e9bd02b4f6 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Medical/chiefMedicalOfficer.yml @@ -0,0 +1,93 @@ +# Chief Medical Officer +#- type: characterItemGroup +# id: LoadoutChiefMedicalOfficerBackpacks +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutChiefMedicalOfficerBelt + maxItems: 1 + items: + - type: loadout + id: LoadoutChiefMedicalOfficerBeltMedical + - type: loadout + id: LoadoutChiefMedicalOfficerBeltMedicalAdvancedFilled + +#- type: characterItemGroup +# id: LoadoutChiefMedicalOfficerEars +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutChiefMedicalOfficerEquipment +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutChiefMedicalOfficerEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutChiefMedicalOfficerGloves +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutChiefMedicalOfficerHead + maxItems: 1 + items: + - type: loadout + id: LoadoutCommandCMOHatBeret + +- type: characterItemGroup + id: LoadoutChiefMedicalOfficerId + maxItems: 1 + items: + - type: loadout + id: LoadoutChiefMedicalOfficerNTPDA + +- type: characterItemGroup + id: LoadoutChiefMedicalOfficerNeck + maxItems: 1 + items: + - type: loadout + id: LoadoutCommandCMONeckMantle + - type: loadout + id: LoadoutCommandCMONeckCloak + - type: loadout + id: LoadoutChiefMedicalOfficerNeckMedalMedical + +#- type: characterItemGroup +# id: LoadoutChiefMedicalOfficerMask +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutChiefMedicalOfficerOuter + maxItems: 1 + items: + - type: loadout + id: LoadoutCommandCMOOuterWinter + - type: loadout + id: LoadoutCommandCMOOuterLab + +- type: characterItemGroup + id: LoadoutChiefMedicalOfficerShoes + maxItems: 1 + items: + - type: loadout + id: LoadoutCommandCMOShoesBootsWinter + - type: loadout + id: LoadoutChiefMedicalOfficerShoesLaceup + - type: loadout + id: LoadoutChiefMedicalOfficerShoesLeather + +- type: characterItemGroup + id: LoadoutChiefMedicalOfficerUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutChiefMedicalOfficerJumpsuit + - type: loadout + id: LoadoutChiefMedicalOfficerJumpskirt diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Medical/medicalDoctor.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Medical/medicalDoctor.yml new file mode 100644 index 00000000000..dd93b54e167 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Medical/medicalDoctor.yml @@ -0,0 +1,77 @@ +# Medical Doctor +#- type: characterItemGroup +# id: LoadoutMedicalDoctorBackpacks +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutMedicalDoctorBelt + maxItems: 1 + items: + - type: loadout + id: LoadoutMedicalDoctorBeltMedical + - type: loadout + id: LoadoutMedicalDoctorBeltMedicalFilled + - type: loadout + id: LoadoutMedicalDoctorBeltMedicalAdvancedFilled + +#- type: characterItemGroup +# id: LoadoutMedicalDoctorEars +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMedicalDoctorEquipment +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMedicalDoctorEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMedicalDoctorGloves +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutMedicalDoctorHead + maxItems: 1 + items: + - type: loadout + id: LoadoutMedicalHeadNurse + +#- type: characterItemGroup +# id: LoadoutMedicalDoctorId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMedicalDoctorNeck +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMedicalDoctorMask +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMedicalDoctorOuter +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMedicalDoctorShoes +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutMedicalDoctorUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutMedicalDoctorJumpsuit + - type: loadout + id: LoadoutMedicalDoctorJumpskirt diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Medical/medicalIntern.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Medical/medicalIntern.yml new file mode 100644 index 00000000000..3db0ef908fa --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Medical/medicalIntern.yml @@ -0,0 +1,69 @@ +# Medical Intern +#- type: characterItemGroup +# id: LoadoutMedicalInternBackpacks +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutMedicalInternBelt + maxItems: 1 + items: + - type: loadout + id: LoadoutMedicalInternBeltMedical + - type: loadout + id: LoadoutMedicalInternBeltMedicalFilled + +#- type: characterItemGroup +# id: LoadoutMedicalInternEars +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMedicalInternEquipment +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMedicalInternEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMedicalInternGloves +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMedicalInternHead +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMedicalInternId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMedicalInternNeck +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMedicalInternMask +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMedicalInternOuter +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMedicalInternShoes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMedicalInternUniforms +# maxItems: 1 +# items: diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Medical/paramedic.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Medical/paramedic.yml new file mode 100644 index 00000000000..7abd4c242fb --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Medical/paramedic.yml @@ -0,0 +1,69 @@ +# Paramedic +#- type: characterItemGroup +# id: LoadoutParamedicBackpacks +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutParamedicBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutParamedicEars +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutParamedicEquipment +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutParamedicEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutParamedicGloves +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutParamedicHead +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutParamedicId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutParamedicNeck +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutParamedicMask +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutParamedicOuter +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutParamedicShoes +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutParamedicUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutMedicalUniformParamedicJumpsuit + - type: loadout + id: LoadoutMedicalUniformParamedicJumpskirt diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Medical/psychologist.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Medical/psychologist.yml new file mode 100644 index 00000000000..80925aef590 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Medical/psychologist.yml @@ -0,0 +1,83 @@ +# Psychologist +- type: characterItemGroup + id: LoadoutPsychologistBackpacks + maxItems: 1 + items: + - type: loadout + id: LoadoutPsychologistBackpackBackpack + - type: loadout + id: LoadoutPsychologistBackpackSatchel + - type: loadout + id: LoadoutPsychologistBackpackDuffel + +#- type: characterItemGroup +# id: LoadoutPsychologistBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutPsychologistEars +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutPsychologistEquipment + maxItems: 3 + items: + - type: loadout + id: LoadoutPsychologistPillCanisterSpaceDrugs + - type: loadout + id: LoadoutPsychologistPillCanisterPax + - type: loadout + id: LoadoutPsychologistPillCanisterCryptobiolin + - type: loadout + id: LoadoutPsychologistPillCanisterChloralHydrate + +#- type: characterItemGroup +# id: LoadoutPsychologistEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutPsychologistGloves +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutPsychologistHead +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutPsychologistId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutPsychologistNeck +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutPsychologistMask +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutPsychologistOuter +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutPsychologistShoes +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutPsychologistUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutPsychologistJumpsuit + - type: loadout + id: LoadoutPsychologistJumpskirt diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Medical/seniorPhysician.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Medical/seniorPhysician.yml new file mode 100644 index 00000000000..c20d2ee50de --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Medical/seniorPhysician.yml @@ -0,0 +1,75 @@ +# Senior Physician +#- type: characterItemGroup +# id: LoadoutSeniorPhysicianBackpacks +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutSeniorPhysicianBelt + maxItems: 1 + items: + - type: loadout + id: LoadoutSeniorPhysicianBeltMedical + - type: loadout + id: LoadoutSeniorPhysicianBeltMedicalAdvancedFilled + +#- type: characterItemGroup +# id: LoadoutSeniorPhysicianEars +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSeniorPhysicianEquipment +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSeniorPhysicianEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSeniorPhysicianGloves +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutSeniorPhysicianHead + maxItems: 1 + items: + - type: loadout + id: LoadoutMedicalHeadBeretSeniorPhysician + +#- type: characterItemGroup +# id: LoadoutSeniorPhysicianId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSeniorPhysicianNeck +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSeniorPhysicianMask +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSeniorPhysicianOuter +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSeniorPhysicianShoes +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutSeniorPhysicianUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutMedicalUniformJumpskirtSenior + - type: loadout + id: LoadoutMedicalUniformJumpsuitSenior diff --git a/Resources/Prototypes/CharacterItemGroups/medicalGroups.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Medical/uncategorized.yml similarity index 60% rename from Resources/Prototypes/CharacterItemGroups/medicalGroups.yml rename to Resources/Prototypes/CharacterItemGroups/Jobs/Medical/uncategorized.yml index 396f07290fb..3157acb062d 100644 --- a/Resources/Prototypes/CharacterItemGroups/medicalGroups.yml +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Medical/uncategorized.yml @@ -1,68 +1,68 @@ +# All Medical - type: characterItemGroup - id: LoadoutUniformsMedical + id: LoadoutMedicalBackpacks + maxItems: 1 items: - type: loadout - id: LoadoutMedicalUniformScrubsBlue + id: LoadoutBackpackMedical - type: loadout - id: LoadoutMedicalUniformScrubsGreen + id: LoadoutBackpackVirology - type: loadout - id: LoadoutMedicalUniformScrubsPurple + id: LoadoutBackpackGenetics - type: loadout - id: LoadoutMedicalUniformScrubsCyan + id: LoadoutBackpackSatchelMedical - type: loadout - id: LoadoutMedicalUniformScrubsBlack + id: LoadoutBackpackSatchelVirology - type: loadout - id: LoadoutMedicalUniformScrubsPink + id: LoadoutBackpackSatchelGenetics - type: loadout - id: LoadoutMedicalUniformScrubsCybersun + id: LoadoutBackpackDuffelMedical - type: loadout - id: LoadoutMedicalUniformParamedicJumpsuit + id: LoadoutBackpackDuffelVirology - type: loadout - id: LoadoutMedicalUniformParamedicJumpskirt + id: LoadoutBackpackDuffelGenetics - type: loadout - id: LoadoutMedicalUniformJumpskirtSenior - - type: loadout - id: LoadoutMedicalUniformJumpsuitSenior - - type: loadout - id: LoadoutMedicalUniformJumpsuitChemShirt + id: LoadoutBackpackMedicalDuffelSurgeryFilled + +#- type: characterItemGroup +# id: LoadoutMedicalBelt +# maxItems: 1 +# items: +#- type: characterItemGroup +# id: LoadoutMedicalEars +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMedicalEquipment +# maxItems: 1 +# items: +# - type: characterItemGroup - id: LoadoutOuterMedical + id: LoadoutMedicalEyes + maxItems: 1 items: - type: loadout - id: LoadoutMedicalOuterLabcoat - - type: loadout - id: LoadoutMedicalOuterCybersunWindbreaker + id: LoadoutMedicalEyesHudMedical - type: loadout - id: LoadoutMedicalOuterLabcoatChem + id: LoadoutMedicalEyesEyepatchHudMedical - type: loadout - id: LoadoutMedicalOuterApronChemist + id: LoadoutMedicalEyesHudMedicalPrescription - type: characterItemGroup - id: LoadoutGlovesMedical + id: LoadoutMedicalGloves + maxItems: 1 items: - type: loadout id: LoadoutMedicalGlovesNitrile - type: loadout - id: LoadoutMedicalHandsGlovesChemist + id: LoadoutMedicalGlovesLatex - type: characterItemGroup - id: LoadoutNeckMedical + id: LoadoutMedicalHead + maxItems: 1 items: - - type: loadout - id: LoadoutMedicalNeckStethoscope - - type: loadout - id: LoadoutMedicalBedsheetMedical - - type: loadout - id: LoadoutMedicalNeckTieChem - -- type: characterItemGroup - id: LoadoutHeadMedical - items: - - type: loadout - id: LoadoutMedicalHeadNurse - - type: loadout - id: LoadoutMedicalHeadBeretSeniorPhysician - type: loadout id: LoadoutMedicalHeadSurgcapBlue - type: loadout @@ -80,22 +80,56 @@ - type: loadout id: LoadoutMedicalHeadSurgcapCybersun +#- type: characterItemGroup +# id: LoadoutMedicalId +# maxItems: 1 +# items: +# - type: characterItemGroup - id: LoadoutEyesMedical + id: LoadoutMedicalNeck + maxItems: 1 items: - type: loadout - id: LoadoutMedicalEyesHudMedical - - type: loadout - id: LoadoutMedicalEyesEyepatchHudMedical + id: LoadoutMedicalNeckStethoscope - type: loadout - id: LoadoutMedicalEyesHudMedicalPrescription + id: LoadoutMedicalBedsheetMedical + +#- type: characterItemGroup +# id: LoadoutMedicalMask +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutMedicalOuter + maxItems: 1 + items: - type: loadout - id: LoadoutMedicalEyesGlassesChemical + id: LoadoutMedicalOuterLabcoat - type: loadout - id: LoadoutMedicalEyesGlassesChemist + id: LoadoutMedicalOuterCybersunWindbreaker +#- type: characterItemGroup +# id: LoadoutMedicalShoes +# maxItems: 1 +# items: +# - type: characterItemGroup - id: LoadoutShoesMedical + id: LoadoutMedicalUniforms + maxItems: 1 items: - type: loadout - id: LoadoutMedicalShoesEnclosedChem + id: LoadoutMedicalUniformScrubsBlue + - type: loadout + id: LoadoutMedicalUniformScrubsGreen + - type: loadout + id: LoadoutMedicalUniformScrubsPurple + - type: loadout + id: LoadoutMedicalUniformScrubsCyan + - type: loadout + id: LoadoutMedicalUniformScrubsBlack + - type: loadout + id: LoadoutMedicalUniformScrubsPink + - type: loadout + id: LoadoutMedicalUniformScrubsCybersun + - type: loadout + id: LoadoutMedicalUniformScrubsWhite diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Security/cadet.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Security/cadet.yml new file mode 100644 index 00000000000..3945c80e622 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Security/cadet.yml @@ -0,0 +1,65 @@ +# Cadet +#- type: characterItemGroup +# id: LoadoutCadetBackpacks +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCadetBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCadetEars +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCadetEquipment +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCadetEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCadetGloves +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCadetHead +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCadetId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCadetNeck +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCadetMask +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCadetOuter +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCadetShoes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCadetUniforms +# maxItems: 1 +# items: diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Security/corpsman.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Security/corpsman.yml new file mode 100644 index 00000000000..d2a1f1381d7 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Security/corpsman.yml @@ -0,0 +1,81 @@ +# Corpsman +- type: characterItemGroup + id: LoadoutCorpsmanBackpacks + maxItems: 1 + items: + - type: loadout + id: LoadoutCorpsmanBackpackBackpack + - type: loadout + id: LoadoutCorpsmanBackpackSatchel + - type: loadout + id: LoadoutCorpsmanBackpackDuffel + +- type: characterItemGroup + id: LoadoutCorpsmanBelt + maxItems: 1 + items: + - type: loadout + id: LoadoutClothingBeltCorpsmanWebbing + +#- type: characterItemGroup +# id: LoadoutCorpsmanEars +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCorpsmanEquipment +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCorpsmanEyes +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutCorpsmanGloves + maxItems: 1 + items: + - type: loadout + id: LoadoutClothingHandsGlovesNitrile + +- type: characterItemGroup + id: LoadoutCorpsmanHead + maxItems: 1 + items: + - type: loadout + id: LoadoutClothingHeadHatBeretBrigmedic + - type: loadout + id: LoadoutClothingHeadHatBeretCorpsman + +#- type: characterItemGroup +# id: LoadoutCorpsmanId +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutCorpsmanNeck + maxItems: 1 + items: + - type: loadout + id: LoadoutBedsheetBrigmedic + +#- type: characterItemGroup +# id: LoadoutCorpsmanMask +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCorpsmanOuter +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCorpsmanShoes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutCorpsmanUniforms +# maxItems: 1 +# items: diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Security/detective.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Security/detective.yml new file mode 100644 index 00000000000..068e00dd1ad --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Security/detective.yml @@ -0,0 +1,69 @@ +# Detective +#- type: characterItemGroup +# id: LoadoutDetectiveBackpacks +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutDetectiveBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutDetectiveEars +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutDetectiveEquipment +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutDetectiveEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutDetectiveGloves +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutDetectiveHead +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutDetectiveId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutDetectiveNeck +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutDetectiveMask +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutDetectiveOuter + maxItems: 1 + items: + - type: loadout + id: LoadoutClothingOuterCoatDetective + - type: loadout + id: LoadoutOuterVestDetective + +#- type: characterItemGroup +# id: LoadoutDetectiveShoes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutDetectiveUniforms +# maxItems: 1 +# items: diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Security/headOfSecurity.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Security/headOfSecurity.yml new file mode 100644 index 00000000000..9ccc5232e4a --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Security/headOfSecurity.yml @@ -0,0 +1,120 @@ +# Head Of Security +#- type: characterItemGroup +# id: LoadoutHeadOfSecurityBackpacks +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutHeadOfSecurityBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutHeadOfSecurityEars +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutHeadOfSecurityEquipment +# maxItems: 1 +# items: + +- type: characterItemGroup + maxItems: 1 + id: LoadoutHeadOfSecurityWeapon + items: + - type: loadout + id: LoadoutCommandHoSPulsePistol + - type: loadout + id: LoadoutCommandHoSWt550 + - type: loadout + id: LoadoutCommandHoSKatanaSheath + - type: loadout + id: LoadoutCommandHoSC20r + - type: loadout + id: LoadoutCommandHoSBulldog + - type: loadout + id: LoadoutCommandHoSEnergySword + - type: loadout + id: LoadoutCommandHoSEnergyGun + +#- type: characterItemGroup +# id: LoadoutHeadOfSecurityEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutHeadOfSecurityGloves +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutHeadOfSecurityHead + maxItems: 1 + items: + - type: loadout + id: LoadoutCommandHOSHatBeret + - type: loadout + id: LoadoutCommandHOSHatHoshat + +- type: characterItemGroup + id: LoadoutHeadOfSecurityId + maxItems: 1 + items: + - type: loadout + id: LoadoutHeadOfSecurityNTPDA + +- type: characterItemGroup + id: LoadoutHeadOfSecurityNeck + maxItems: 1 + items: + - type: loadout + id: LoadoutCommandHOSNeckMantle + - type: loadout + id: LoadoutCommandHOSNeckCloak + +#- type: characterItemGroup +# id: LoadoutHeadOfSecurityMask +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutHeadOfSecurityOuter + maxItems: 1 + items: + - type: loadout + id: LoadoutCommandHOSOuterWinter + - type: loadout + id: LoadoutCommandHOSOuterTrench + +- type: characterItemGroup + id: LoadoutHeadOfSecurityShoes + maxItems: 1 + items: + - type: loadout + id: LoadoutCommandHOSShoesBootsWinter + +- type: characterItemGroup + id: LoadoutHeadOfSecurityUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutUniformJumpskirtHoSBlue + - type: loadout + id: LoadoutUniformJumpskirtHoSGrey + - type: loadout + id: LoadoutCommandHOSJumpsuitAlt + - type: loadout + id: LoadoutCommandHOSJumpsuitBlue + - type: loadout + id: LoadoutCommandHOSJumpsuitGrey + - type: loadout + id: LoadoutCommandHOSJumpsuitParade + - type: loadout + id: LoadoutCommandHOSJumpsuitFormal + - type: loadout + id: LoadoutCommandHOSJumpskirtAlt + - type: loadout + id: LoadoutCommandHOSJumpskirtParade + - type: loadout + id: LoadoutCommandHOSJumpskirtFormal diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Security/securityOfficer.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Security/securityOfficer.yml new file mode 100644 index 00000000000..0c43a1f18d6 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Security/securityOfficer.yml @@ -0,0 +1,65 @@ +# Security Officer +#- type: characterItemGroup +# id: LoadoutSecurityOfficerBackpacks +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSecurityOfficerBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSecurityOfficerEars +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSecurityOfficerEquipment +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSecurityOfficerEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSecurityOfficerGloves +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSecurityOfficerHead +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSecurityOfficerId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSecurityOfficerNeck +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSecurityOfficerMask +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSecurityOfficerOuter +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSecurityOfficerShoes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSecurityOfficerUniforms +# maxItems: 1 +# items: diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Security/seniorOfficer.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Security/seniorOfficer.yml new file mode 100644 index 00000000000..96761a12e51 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Security/seniorOfficer.yml @@ -0,0 +1,68 @@ +# Senior Officer +#- type: characterItemGroup +# id: LoadoutSeniorOfficerBackpacks +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSeniorOfficerBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSeniorOfficerEars +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSeniorOfficerEquipment +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSeniorOfficerEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSeniorOfficerGloves +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSeniorOfficerHead +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSeniorOfficerId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSeniorOfficerNeck +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSeniorOfficerMask +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSeniorOfficerOuter +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSeniorOfficerShoes +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutSeniorOfficerUniforms + items: + - type: loadout + id: LoadoutSecurityUniformJumpskirtSenior + - type: loadout + id: LoadoutSecurityUniformJumpsuitSenior diff --git a/Resources/Prototypes/CharacterItemGroups/securityGroups.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Security/uncategorized.yml similarity index 64% rename from Resources/Prototypes/CharacterItemGroups/securityGroups.yml rename to Resources/Prototypes/CharacterItemGroups/Jobs/Security/uncategorized.yml index 8b9f6f1e0e8..9cac5c34226 100644 --- a/Resources/Prototypes/CharacterItemGroups/securityGroups.yml +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Security/uncategorized.yml @@ -1,138 +1,34 @@ +# All Security - type: characterItemGroup - id: LoadoutUniformsSecurity - items: - - type: loadout - id: LoadoutSecurityUniformJumpsuitBlue - - type: loadout - id: LoadoutSecurityUniformJumpskirtBlue - - type: loadout - id: LoadoutSecurityUniformJumpsuitGrey - - type: loadout - id: LoadoutSecurityUniformJumpskirtGrey - - type: loadout - id: LoadoutSecurityUniformJumpsuitSenior - - type: loadout - id: LoadoutSecurityUniformJumpskirtSenior - - type: loadout - id: LoadoutSecurityUniformJumpsuitWardenBlue - - type: loadout - id: LoadoutSecurityUniformJumpskirtWardenBlue - - type: loadout - id: LoadoutSecurityUniformJumpsuitWardenGrey - - type: loadout - id: LoadoutSecurityUniformJumpskirtWardenGrey - - type: loadout - id: LoadoutSecurityUniformJumpsuitHoSBlue - - type: loadout - id: LoadoutSecurityUniformJumpskirtHoSBlue - - type: loadout - id: LoadoutSecurityUniformJumpsuitHoSGrey - - type: loadout - id: LoadoutSecurityUniformJumpskirtHoSGrey - - type: loadout - id: LoadoutUniformJumpsuitSecFormal - - type: loadout - id: LoadoutUniformJumpsuitSecSummer - -- type: characterItemGroup - id: LoadoutOuterSecurity - items: - - type: loadout - id: LoadoutClothingOuterArmorPlateCarrier - - type: loadout - id: LoadoutClothingOuterArmorDuraVest - - type: loadout - id: LoadoutClothingOuterCoatDetective - - type: loadout - id: LoadoutOuterVestDetective - - type: loadout - id: LoadoutClothingOuterCoatWarden - - type: loadout - id: LoadoutClothingOuterCoatHoSTrench - - type: loadout - id: LoadoutClothingOuterWinterHoS - - type: loadout - id: LoadoutClothingOuterArmorBasic - - type: loadout - id: LoadoutClothingOuterArmorSlim - -- type: characterItemGroup - id: LoadoutGlovesSecurity - items: - - type: loadout - id: LoadoutClothingHandsGlovesNitrile - -- type: characterItemGroup - id: LoadoutNeckSecurity - items: - - type: loadout - id: LoadoutClothingNeckCloakHos - - type: loadout - id: LoadoutClothingNeckMantleHOS - - type: loadout - id: LoadoutBedsheetBrigmedic - -- type: characterItemGroup - id: LoadoutHeadSecurity + id: LoadoutSecurityBackpacks + maxItems: 1 items: - type: loadout - id: LoadoutSecurityHeadHatBeret - - type: loadout - id: LoadoutClothingHeadHelmetBasic - - type: loadout - id: LoadoutClothingHeadHatBeretBrigmedic - - type: loadout - id: LoadoutClothingHeadHatBeretCorpsman - - type: loadout - id: LoadoutClothingHeadHatBeretWarden - - type: loadout - id: LoadoutClothingHeadHatBeretHoS + id: LoadoutClothingBackSecurity - type: loadout - id: LoadoutClothingHeadHelmetInsulated - -- type: characterItemGroup - id: LoadoutMaskSecurity - items: + id: LoadoutClothingBackSecuritySatchel - type: loadout - id: LoadoutSecurityMaskGasSwat + id: LoadoutClothingBackSecurityDuffel - type: characterItemGroup - id: LoadoutBeltSecurity + id: LoadoutSecurityBelt + maxItems: 1 items: - type: loadout id: LoadoutSecurityBeltWebbing - - type: loadout - id: LoadoutClothingBeltCorpsmanWebbing - type: loadout id: LoadoutClothingBeltSecurity - type: loadout id: LoadoutClothingBeltHolster -- type: characterItemGroup - id: LoadoutEyesSecurity - items: - - type: loadout - id: LoadoutSecurityEyesHudSecurity - - type: loadout - id: ClothingEyesGlassesSunglasses - - type: loadout - id: LoadoutSecurityEyesEyepatchHudSecurity - - type: loadout - id: LoadoutSecurityEyesHudSecurityPrescription - - type: loadout - id: LoadoutClothingEyesGlassesSecurity - -- type: characterItemGroup - id: LoadoutShoesSecurity - items: - - type: loadout - id: LoadoutSecurityShoesJackboots - - type: loadout - id: LoadoutClothingShoesBootsCombat - +#- type: characterItemGroup +# id: LoadoutSecurityEars +# maxItems: 1 +# items: +# - type: characterItemGroup maxItems: 5 - id: LoadoutEquipmentSecurity + id: LoadoutSecurityEquipment items: - type: loadout id: LoadoutSecurityCombatKnife @@ -165,7 +61,7 @@ - type: characterItemGroup maxItems: 1 - id: LoadoutWeaponSecurity + id: LoadoutSecurityWeapons items: - type: loadout id: LoadoutSecurityDisabler @@ -221,31 +117,88 @@ id: LoadoutSecurityRevolverPythonNonlethal - type: characterItemGroup + id: LoadoutSecurityEyes maxItems: 1 - id: LoadoutBackSecurity items: - type: loadout - id: LoadoutClothingBackSecurity + id: LoadoutSecurityEyesHudSecurity - type: loadout - id: LoadoutClothingBackSecuritySatchel + id: ClothingEyesGlassesSunglasses - type: loadout - id: LoadoutClothingBackSecurityDuffel + id: LoadoutSecurityEyesEyepatchHudSecurity + - type: loadout + id: LoadoutSecurityEyesHudSecurityPrescription + - type: loadout + id: LoadoutClothingEyesGlassesSecurity +#- type: characterItemGroup +# id: LoadoutSecurityGloves +# maxItems: 1 +# items: +# - type: characterItemGroup + id: LoadoutSecurityHead maxItems: 1 - id: LoadoutHoSWeapon items: - type: loadout - id: LoadoutCommandHoSPulsePistol + id: LoadoutSecurityHeadHatBeret - type: loadout - id: LoadoutCommandHoSWt550 + id: LoadoutClothingHeadHelmetBasic - type: loadout - id: LoadoutCommandHoSKatanaSheath + id: LoadoutSecurityHeadHelmetInsulated + +#- type: characterItemGroup +# id: LoadoutSecurityId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutSecurityNeck +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutSecurityMask + maxItems: 1 + items: - type: loadout - id: LoadoutCommandHoSC20r + id: LoadoutSecurityMaskGasSwat + +- type: characterItemGroup + id: LoadoutSecurityOuter + maxItems: 1 + items: + - type: loadout + id: LoadoutClothingOuterArmorPlateCarrier + - type: loadout + id: LoadoutClothingOuterArmorDuraVest + - type: loadout + id: LoadoutClothingOuterArmorBasic + - type: loadout + id: LoadoutClothingOuterArmorSlim + +- type: characterItemGroup + id: LoadoutSecurityShoes + maxItems: 1 + items: - type: loadout - id: LoadoutCommandHoSBulldog + id: LoadoutSecurityShoesJackboots - type: loadout - id: LoadoutCommandHoSEnergySword + id: LoadoutClothingShoesBootsCombat + +- type: characterItemGroup + id: LoadoutSecurityUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutSecurityUniformJumpsuitBlue - type: loadout - id: LoadoutCommandHoSEnergyGun + id: LoadoutSecurityUniformJumpsuitGrey + - type: loadout + id: LoadoutSecurityUniformJumpskirtGrey + - type: loadout + id: LoadoutSecurityUniformJumpskirtBlue + - type: loadout + id: LoadoutUniformJumpsuitSecFormal + - type: loadout + id: LoadoutUniformJumpsuitSecSummer diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Security/warden.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Security/warden.yml new file mode 100644 index 00000000000..1b978323bfc --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Security/warden.yml @@ -0,0 +1,77 @@ +# Warden +#- type: characterItemGroup +# id: LoadoutWardenBackpacks +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutWardenBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutWardenEars +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutWardenEquipment +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutWardenEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutWardenGloves +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutWardenHead + maxItems: 1 + items: + - type: loadout + id: LoadoutClothingHeadHatBeretWarden + +#- type: characterItemGroup +# id: LoadoutWardenId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutWardenNeck +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutWardenMask +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutWardenOuter + maxItems: 1 + items: + - type: loadout + id: LoadoutClothingOuterCoatWarden + +#- type: characterItemGroup +# id: LoadoutWardenShoes +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutWardenUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutUniformJumpsuitWardenBlue + - type: loadout + id: LoadoutUniformJumpsuitWardenGrey + - type: loadout + id: LoadoutUniformJumpskirtWardenBlue + - type: loadout + id: LoadoutUniformJumpskirtWardenGrey diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Service/bartender.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Service/bartender.yml new file mode 100644 index 00000000000..74fc945b3f7 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Service/bartender.yml @@ -0,0 +1,96 @@ +# Bartender +#- type: characterItemGroup +# id: LoadoutBartenderBackpacks +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutBartenderBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutBartenderEars +# maxItems: 1 +# items: +# + +- type: characterItemGroup + id: LoadoutBartenderAmmo + items: + - type: loadout + id: LoadoutServiceBartenderBoxBeanbags + - type: loadout + id: LoadoutServiceBartenderBoxLightRifleRubber + +- type: characterItemGroup + id: LoadoutBartenderWeapon + items: + - type: loadout + id: LoadoutServiceBartenderShotgunDoubleBarreledRubber + - type: loadout + id: LoadoutServiceBartenderMosinRubber + +#- type: characterItemGroup +# id: LoadoutBartenderEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutBartenderGloves +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutBartenderHead + items: + - type: loadout + id: LoadoutServiceHeadBartenderNt + - type: loadout + id: LoadoutServiceHeadBartenderIdris + - type: loadout + id: LoadoutServiceHeadBartenderOrion + +#- type: characterItemGroup +# id: LoadoutBartenderId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutBartenderNeck +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutBartenderMask +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutBartenderOuter + items: + - type: loadout + id: LoadoutServiceBartenderArmorDuraVest + - type: loadout + id: LoadoutServiceOuterBartenderNt + - type: loadout + id: LoadoutServiceOuterBartenderIdris + - type: loadout + id: LoadoutServiceOuterBartenderOrion + +#- type: characterItemGroup +# id: LoadoutBartenderShoes +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutBartenderUniforms + items: + - type: loadout + id: LoadoutServiceBartenderUniformPurple + - type: loadout + id: LoadoutServiceJumpsuitBartenderNt + - type: loadout + id: LoadoutServiceJumpsuitBartenderIdris + - type: loadout + id: LoadoutServiceJumpsuitBartenderOrion diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Service/botanist.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Service/botanist.yml new file mode 100644 index 00000000000..334ad0c4fde --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Service/botanist.yml @@ -0,0 +1,72 @@ +#- type: characterItemGroup +# id: LoadoutBotanistBackpacks +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutBotanistBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutBotanistEars +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutBotanistEquipment +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutBotanistEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutBotanistGloves +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutBotanistHead +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutBotanistId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutBotanistNeck +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutBotanistMask +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutBotanistOuter +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutBotanistShoes +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutBotanistUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutServiceBotanistUniformOveralls + - type: loadout + id: LoadoutServiceJumpsuitHydroponicsNt + - type: loadout + id: LoadoutServiceJumpsuitHydroponicsIdris + - type: loadout + id: LoadoutServiceJumpsuitHydroponicsOrion diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Service/chef.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Service/chef.yml new file mode 100644 index 00000000000..e6161bcf207 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Service/chef.yml @@ -0,0 +1,80 @@ +# Chef +#- type: characterItemGroup +# id: LoadoutChefBackpacks +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutChefBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutChefEars +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutChefEquipment +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutChefEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutChefGloves +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutChefHead + items: + - type: loadout + id: LoadoutServiceHeadChefNt + - type: loadout + id: LoadoutServiceHeadChefIdris + - type: loadout + id: LoadoutServiceHeadChefOrion + +#- type: characterItemGroup +# id: LoadoutChefId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutChefNeck +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutChefMask +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutChefOuter + items: + - type: loadout + id: LoadoutServiceOuterChefNt + - type: loadout + id: LoadoutServiceOuterChefIdris + - type: loadout + id: LoadoutServiceOuterChefOrion + +#- type: characterItemGroup +# id: LoadoutChefShoes +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutChefUniforms + items: + - type: loadout + id: LoadoutServiceJumpsuitChefNt + - type: loadout + id: LoadoutServiceJumpsuitChefIdris + - type: loadout + id: LoadoutServiceJumpsuitChefOrion diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Service/clown.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Service/clown.yml new file mode 100644 index 00000000000..c25c313be70 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Service/clown.yml @@ -0,0 +1,85 @@ +# Clown +- type: characterItemGroup + id: LoadoutClownBackpacks + maxItems: 1 + items: + - type: loadout + id: LoadoutBackpackClown + - type: loadout + id: LoadoutBackpackSatchelClown + - type: loadout + id: LoadoutBackpackDuffelClown + +#- type: characterItemGroup +# id: LoadoutClownBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutClownEars +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutClownEquipment +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutClownEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutClownGloves +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutClownHead +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutClownId +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutClownNeck + maxItems: 1 + items: + - type: loadout + id: LoadoutServiceClownBedsheetClown + +- type: characterItemGroup + id: LoadoutClownMask + maxItems: 1 + items: + - type: loadout + id: LoadoutServiceClownMaskSexy + +- type: characterItemGroup + id: LoadoutClownOuter + maxItems: 1 + items: + - type: loadout + id: LoadoutServiceClownOuterWinter + - type: loadout + id: LoadoutServiceClownOuterClownPriest + +- type: characterItemGroup + id: LoadoutClownShoes + maxItems: 1 + items: + - type: loadout + id: LoadoutServiceClownBootsWinter + +- type: characterItemGroup + id: LoadoutClownUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutServiceClownOutfitJester + - type: loadout + id: LoadoutServiceClownOutfitJesterAlt diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Service/janitor.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Service/janitor.yml new file mode 100644 index 00000000000..cc5b0e16a33 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Service/janitor.yml @@ -0,0 +1,71 @@ +# Janitor +#- type: characterItemGroup +# id: LoadoutJanitorBackpacks +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutJanitorBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutJanitorEars +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutJanitorEquipment +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutJanitorEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutJanitorGloves +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutJanitorHead +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutJanitorId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutJanitorNeck +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutJanitorMask +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutJanitorOuter +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutJanitorShoes +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutJanitorUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutServiceJumpsuitJanitorNt + - type: loadout + id: LoadoutServiceJumpsuitJanitorIdris + - type: loadout + id: LoadoutServiceJumpsuitJanitorOrion diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Service/lawyer.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Service/lawyer.yml new file mode 100644 index 00000000000..0a00475cfef --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Service/lawyer.yml @@ -0,0 +1,81 @@ +# Lawyer +#- type: characterItemGroup +# id: LoadoutLawyerBackpacks +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutLawyerBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutLawyerEars +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutLawyerEquipment +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutLawyerEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutLawyerGloves +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutLawyerHead +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutLawyerId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutLawyerNeck +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutLawyerMask +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutLawyerOuter +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutLawyerShoes +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutLawyerUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutServiceLawyerUniformBlueSuit + - type: loadout + id: LoadoutServiceLawyerUniformBlueSkirt + - type: loadout + id: LoadoutServiceLawyerUniformRedSuit + - type: loadout + id: LoadoutServiceLawyerUniformRedSkirt + - type: loadout + id: LoadoutServiceLawyerUniformPurpleSuit + - type: loadout + id: LoadoutServiceLawyerUniformPurpleSkirt + - type: loadout + id: LoadoutServiceLawyerUniformGoodSuit + - type: loadout + id: LoadoutServiceLawyerUniformGoodSkirt diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Service/mime.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Service/mime.yml new file mode 100644 index 00000000000..c01d9d1c884 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Service/mime.yml @@ -0,0 +1,83 @@ +# Mime +- type: characterItemGroup + id: LoadoutMimeBackpacks + maxItems: 1 + items: + - type: loadout + id: LoadoutBackpackMime + - type: loadout + id: LoadoutBackpackSatchelMime + - type: loadout + id: LoadoutBackpackDuffelMime + +#- type: characterItemGroup +# id: LoadoutMimeBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMimeEars +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMimeEquipment +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMimeEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMimeGloves +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMimeHead +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMimeId +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutMimeNeck + maxItems: 1 + items: + - type: loadout + id: LoadoutServiceMimeBedsheetMime + +- type: characterItemGroup + id: LoadoutMimeMask + maxItems: 1 + items: + - type: loadout + id: LoadoutServiceMimeMaskSad + - type: loadout + id: LoadoutServiceMimeMaskScared + - type: loadout + id: LoadoutServiceMimeMaskSexy + +- type: characterItemGroup + id: LoadoutMimeOuter + maxItems: 1 + items: + - type: loadout + id: LoadoutServiceMimeOuterWinter + +- type: characterItemGroup + id: LoadoutMimeShoes + maxItems: 1 + items: + - type: loadout + id: LoadoutServiceMimeShoesBootsWinter + +#- type: characterItemGroup +# id: LoadoutMimeUniforms +# maxItems: 1 +# items: diff --git a/Resources/Prototypes/CharacterItemGroups/musicianInstrumentsGroups.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Service/musician.yml similarity index 74% rename from Resources/Prototypes/CharacterItemGroups/musicianInstrumentsGroups.yml rename to Resources/Prototypes/CharacterItemGroups/Jobs/Service/musician.yml index eac816b8db4..90943d47950 100644 --- a/Resources/Prototypes/CharacterItemGroups/musicianInstrumentsGroups.yml +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Service/musician.yml @@ -1,5 +1,21 @@ +# Musician +#- type: characterItemGroup +# id: LoadoutMusicianBackpacks +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMusicianBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMusicianEars +# maxItems: 1 +# items: +# - type: characterItemGroup - id: LoadoutMusicianInstruments + id: LoadoutMusicianEquipment maxItems: 3 items: # Brass @@ -92,3 +108,48 @@ id: LoadoutItemOcarinaInstrumentMusician - type: loadout id: LoadoutItemBagpipeInstrumentMusician + +#- type: characterItemGroup +# id: LoadoutMusicianEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMusicianGloves +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMusicianHead +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMusicianId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMusicianNeck +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMusicianMask +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMusicianOuter +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMusicianShoes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutMusicianUniforms +# maxItems: 1 +# items: diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Service/reporter.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Service/reporter.yml new file mode 100644 index 00000000000..1436cf83a54 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Service/reporter.yml @@ -0,0 +1,71 @@ +# Reporter +#- type: characterItemGroup +# id: LoadoutReporterBackpacks +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutReporterBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutReporterEars +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutReporterEquipment +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutReporterEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutReporterGloves +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutReporterHead +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutReporterId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutReporterNeck +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutReporterMask +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutReporterOuter +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutReporterShoes +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutReporterUniforms + maxItems: 1 + items: + - type: loadout + id: LoadoutServiceReporterUniformDetectivesuit + - type: loadout + id: LoadoutServiceReporterUniformDetectiveskirt + - type: loadout + id: LoadoutServiceReporterUniformJournalist diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/Service/uncategorized.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/Service/uncategorized.yml new file mode 100644 index 00000000000..b530c421aee --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/Service/uncategorized.yml @@ -0,0 +1,66 @@ +# All Service +#- type: characterItemGroup +# id: LoadoutServiceBackpacks +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutServiceBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutServiceEars +# maxItems: 1 +# items: +# +- type: characterItemGroup + id: LoadoutServiceEquipment + items: + - type: loadout + id: LoadoutServiceClownCowToolboxFilled + +#- type: characterItemGroup +# id: LoadoutServiceEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutServiceGloves +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutServiceHead +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutServiceId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutServiceNeck +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutServiceMask +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutServiceOuter +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutServiceShoes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutServiceUniforms +# maxItems: 1 +# items: diff --git a/Resources/Prototypes/CharacterItemGroups/Jobs/jobItemGroupTemplate.yml b/Resources/Prototypes/CharacterItemGroups/Jobs/jobItemGroupTemplate.yml new file mode 100644 index 00000000000..fe7809493d7 --- /dev/null +++ b/Resources/Prototypes/CharacterItemGroups/Jobs/jobItemGroupTemplate.yml @@ -0,0 +1,66 @@ +# JOB NAME HERE +# When adding a new job, use this template to fill in the item groups +#- type: characterItemGroup +# id: LoadoutJOBBackpacks +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutJOBBelt +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutJOBEars +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutJOBEquipment +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutJOBEyes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutJOBGloves +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutJOBHead +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutJOBId +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutJOBNeck +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutJOBMask +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutJOBOuter +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutJOBShoes +# maxItems: 1 +# items: +# +#- type: characterItemGroup +# id: LoadoutJOBUniforms +# maxItems: 1 +# items: diff --git a/Resources/Prototypes/CharacterItemGroups/cargoGroups.yml b/Resources/Prototypes/CharacterItemGroups/cargoGroups.yml deleted file mode 100644 index 6b12652b33f..00000000000 --- a/Resources/Prototypes/CharacterItemGroups/cargoGroups.yml +++ /dev/null @@ -1,19 +0,0 @@ -- type: characterItemGroup - id: LoadoutOuterCargo - items: - - type: loadout - id: LoadoutCargoOuterWinterCargo - - type: loadout - id: LoadoutCargoOuterWinterMiner - -- type: characterItemGroup - id: LoadoutNeckCargo - items: - - type: loadout - id: LoadoutCargoNeckGoliathCloak - -- type: characterItemGroup - id: LoadoutShoesCargo - items: - - type: loadout - id: LoadoutCargoShoesBootsWinterCargo diff --git a/Resources/Prototypes/CharacterItemGroups/engineeringGroups.yml b/Resources/Prototypes/CharacterItemGroups/engineeringGroups.yml deleted file mode 100644 index 6db873cecf6..00000000000 --- a/Resources/Prototypes/CharacterItemGroups/engineeringGroups.yml +++ /dev/null @@ -1,39 +0,0 @@ -- type: characterItemGroup - id: LoadoutUniformsEngineering - items: - - type: loadout - id: LoadoutEngineeringUniformHazard - - type: loadout - id: LoadoutEngineeringUniformJumpskirtSenior - - type: loadout - id: LoadoutEngineeringUniformJumpsuitSenior - -- type: characterItemGroup - id: LoadoutOuterEngineering - items: - - type: loadout - id: LoadoutEngineeringOuterHazard - - type: loadout - id: LoadoutEngineeringChickenSuit - -- type: characterItemGroup - id: LoadoutHeadEngineering - items: - - type: loadout - id: LoadoutEngineeringHeadBeret - - type: loadout - id: LoadoutEngineeringHeadHardhatBlue - - type: loadout - id: LoadoutEngineeringHeadHardhatOrange - - type: loadout - id: LoadoutEngineeringHeadHardhatRed - - type: loadout - id: LoadoutEngineeringHeadHardhatWhite - - type: loadout - id: LoadoutEngineeringHeadHardhatYellow - -- type: characterItemGroup - id: LoadoutEyesEngineering - items: - - type: loadout - id: LoadoutEngineeringEyesMeson \ No newline at end of file diff --git a/Resources/Prototypes/CharacterItemGroups/gloveGroup.yml b/Resources/Prototypes/CharacterItemGroups/gloveGroup.yml deleted file mode 100644 index e8ec6f3d255..00000000000 --- a/Resources/Prototypes/CharacterItemGroups/gloveGroup.yml +++ /dev/null @@ -1,33 +0,0 @@ -- type: characterItemGroup - id: LoadoutGloves - items: - - type: loadout - id: LoadoutHandsColorPurple - - type: loadout - id: LoadoutHandsColorRed - - type: loadout - id: LoadoutHandsColorBlack - - type: loadout - id: LoadoutHandsColorBlue - - type: loadout - id: LoadoutHandsColorBrown - - type: loadout - id: LoadoutHandsColorGray - - type: loadout - id: LoadoutHandsColorGreen - - type: loadout - id: LoadoutHandsColorLightBrown - - type: loadout - id: LoadoutHandsColorOrange - - type: loadout - id: LoadoutHandsColorWhite - - type: loadout - id: LoadoutHandsColorYellowBudget - - type: loadout - id: LoadoutHandsGlovesLeather - - type: loadout - id: LoadoutHandsGlovesPowerglove - - type: loadout - id: LoadoutHandsGlovesRobohands - - type: loadout - id: LoadoutHandsGlovesFingerless diff --git a/Resources/Prototypes/CharacterItemGroups/headGroup.yml b/Resources/Prototypes/CharacterItemGroups/headGroup.yml deleted file mode 100644 index ee4485757bf..00000000000 --- a/Resources/Prototypes/CharacterItemGroups/headGroup.yml +++ /dev/null @@ -1,119 +0,0 @@ -- type: characterItemGroup - id: LoadoutHead - items: - - type: loadout - id: LoadoutHeadBeaverHat - - type: loadout - id: LoadoutHeadTophat - - type: loadout - id: LoadoutHeadFedoraBlack - - type: loadout - id: LoadoutHeadFedoraBrown - - type: loadout - id: LoadoutHeadFedoraGrey - - type: loadout - id: LoadoutHeadFedoraChoc - - type: loadout - id: LoadoutHeadFedoraWhite - - type: loadout - id: LoadoutHeadFlatBlack - - type: loadout - id: LoadoutHeadFlatBrown - - type: loadout - id: LoadoutHeadHatCowboyBrown - - type: loadout - id: LoadoutHeadHatCowboyBlack - - type: loadout - id: LoadoutHeadHatCowboyGrey - - type: loadout - id: LoadoutHeadHatCowboyRed - - type: loadout - id: LoadoutHeadHatCowboyWhite - - type: loadout - id: LoadoutHeadHatCowboyBountyHunter - - type: loadout - id: LoadoutHeadTinfoil - - type: loadout - id: LoadoutHeadBellhop - - type: loadout - id: LoadoutHeadPoppy - - type: loadout - id: LoadoutHeadHatBluesoft - - type: loadout - id: LoadoutHeadHatBluesoftFlipped - - type: loadout - id: LoadoutHeadHatCorpsoft - - type: loadout - id: LoadoutHeadHatCorpsoftFlipped - - type: loadout - id: LoadoutHeadHatGreensoft - - type: loadout - id: LoadoutHeadHatGreensoftFlipped - - type: loadout - id: LoadoutHeadHatGreysoft - - type: loadout - id: LoadoutHeadHatGreysoftFlipped - - type: loadout - id: LoadoutHeadHatMimesoft - - type: loadout - id: LoadoutHeadHatMimesoftFlipped - - type: loadout - id: LoadoutHeadHatOrangesoft - - type: loadout - id: LoadoutHeadHatOrangesoftFlipped - - type: loadout - id: LoadoutHeadHatPurplesoft - - type: loadout - id: LoadoutHeadHatPurplesoftFlipped - - type: loadout - id: LoadoutHeadHatRedsoft - - type: loadout - id: LoadoutHeadHatRedsoftFlipped - - type: loadout - id: LoadoutHeadHatYellowsoft - - type: loadout - id: LoadoutHeadHatYellowsoftFlipped - - type: loadout - id: LoadoutHeadBandBlack - - type: loadout - id: LoadoutHeadBandBlue - - type: loadout - id: LoadoutHeadBandGold - - type: loadout - id: LoadoutHeadBandGreen - - type: loadout - id: LoadoutHeadBandGrey - - type: loadout - id: LoadoutHeadBandRed - - type: loadout - id: LoadoutHeadBandSkull - - type: loadout - id: LoadoutHeadBandMerc - - type: loadout - id: LoadoutHeadBandBrown - - type: loadout - id: LoadoutHeadFishCap - - type: loadout - id: LoadoutHeadRastaHat - - type: loadout - id: LoadoutHeadFez - - type: loadout - id: LoadoutHeadBowlerHat - - type: loadout - id: LoadoutHeadGreyFlatcap - - type: loadout - id: LoadoutHeadBrownFlatcap - - type: loadout - id: LoadoutHeadBeret - - type: loadout - id: LoadoutHeadBeretFrench - - type: loadout - id: LoadoutHeadCowboyBrown - - type: loadout - id: LoadoutHeadCowboyBlack - - type: loadout - id: LoadoutHeadCowboyWhite - - type: loadout - id: LoadoutHeadCowboyGrey - - type: loadout - id: LoadoutHeadCowboyRed diff --git a/Resources/Prototypes/CharacterItemGroups/maskGroup.yml b/Resources/Prototypes/CharacterItemGroups/maskGroup.yml deleted file mode 100644 index ffe37fc0426..00000000000 --- a/Resources/Prototypes/CharacterItemGroups/maskGroup.yml +++ /dev/null @@ -1,31 +0,0 @@ -- type: characterItemGroup - id: LoadoutMasks - items: - - type: loadout - id: LoadoutMaskSterile - - type: loadout - id: LoadoutMaskMuzzle - - type: loadout - id: LoadoutMaskGas - - type: loadout - id: LoadoutMaskBandBlack - - type: loadout - id: LoadoutMaskBandBlue - - type: loadout - id: LoadoutMaskBandGold - - type: loadout - id: LoadoutMaskBandGreen - - type: loadout - id: LoadoutMaskBandGrey - - type: loadout - id: LoadoutMaskBandRed - - type: loadout - id: LoadoutMaskBandSkull - - type: loadout - id: LoadoutMaskBandMerc - - type: loadout - id: LoadoutMaskBandBrown - - type: loadout - id: LoadoutMaskNeckGaiter - - type: loadout - id: LoadoutMaskNeckGaiterRed diff --git a/Resources/Prototypes/CharacterItemGroups/scienceGroups.yml b/Resources/Prototypes/CharacterItemGroups/scienceGroups.yml deleted file mode 100644 index 26cb07dae9c..00000000000 --- a/Resources/Prototypes/CharacterItemGroups/scienceGroups.yml +++ /dev/null @@ -1,144 +0,0 @@ -- type: characterItemGroup - id: LoadoutUniformsScience - items: - - type: loadout - id: LoadoutScienceUniformJumpskirtSenior - - type: loadout - id: LoadoutScienceUniformJumpsuitSenior - - type: loadout - id: LoadoutScienceUniformJumpskirtRoboticist - - type: loadout - id: LoadoutScienceUniformJumpsuitRoboticist - - type: loadout - id: LoadoutScienceUniformJumpsuitMonasticRobeDark - - type: loadout - id: LoadoutScienceUniformJumpsuitMonasticRobeLight - -- type: characterItemGroup - id: LoadoutOuterScience - items: - - type: loadout - id: LoadoutScienceOuterCoat - - type: loadout - id: LoadoutScienceOuterLabcoat - - type: loadout - id: LoadoutSciencegOuterCoatRobo - - type: loadout - id: LoadoutScienceOuterWinterSci - - type: loadout - id: LoadoutScienceOuterLabcoatSeniorResearcher - - type: loadout - id: LoadoutScienceOuterExplorerLabcoat - - type: loadout - id: LoadoutOuterRobeTechPriest - - type: loadout - id: LoadoutOuterPlagueSuit - - type: loadout - id: LoadoutOuterNunRobe - - type: loadout - id: LoadoutOuterHoodieBlack - - type: loadout - id: LoadoutOuterHoodieChaplain - - type: loadout - id: LoadoutScienceOuterWinterCoatMantis - -- type: characterItemGroup - id: LoadoutGlovesScience - items: - - type: loadout - id: LoadoutScienceHandsGlovesColorPurple - - type: loadout - id: LoadoutScienceHandsGlovesLatex - - type: loadout - id: LoadoutScienceHandsGlovesRobohands - -- type: characterItemGroup - id: LoadoutNeckScience - items: - - type: loadout - id: LoadoutScienceNeckTieSci - - type: loadout - id: LoadoutScienceNeckScarfStripedPurple - - type: loadout - id: LoadoutScienceNeckStoleChaplain - - type: loadout - id: LoadoutScienceNeckScarfStripedBlack - -- type: characterItemGroup - id: LoadoutMaskScience - items: - - type: loadout - id: LoadoutScienceMaskPlague - -- type: characterItemGroup - id: LoadoutHeadScience - items: - - type: loadout - id: LoadoutScienceHeadHatBeret - - type: loadout - id: LoadoutHeadHoodTechPriest - - type: loadout - id: LoadoutScienceHeadHatFez - - type: loadout - id: LoadoutScienceHeadHatHoodNunHood - - type: loadout - id: LoadoutScienceHeadHatPlaguedoctor - - type: loadout - id: LoadoutScienceHeadHatWitch - - type: loadout - id: LoadoutScienceHeadHatWitch1 - -- type: characterItemGroup - id: LoadoutEyesScience - items: - - type: loadout - id: LoadoutScienceEyesHudDiagnostic - - type: loadout - id: LoadoutScienceEyesEyepatchHudDiag - -- type: characterItemGroup - id: LoadoutShoesScience - items: - - type: loadout - id: LoadoutScienceShoesBootsWinterSci - -# Cataloguer -- type: characterItemGroup - id: LoadoutCataloguerUniforms - items: - - type: loadout - id: LoadoutScienceJumpsuitLibrarianNt - - type: loadout - id: LoadoutScienceJumpsuitLibrarianIdris - - type: loadout - id: LoadoutScienceJumpsuitLibrarianOrion - - type: loadout - id: LoadoutScienceJumpsuitLibrarianHeph - - type: loadout - id: LoadoutScienceJumpsuitLibrarianPMCG - - type: loadout - id: LoadoutScienceJumpsuitLibrarianZav - - type: loadout - id: LoadoutScienceJumpsuitLibrarianZeng - - type: loadout - id: LoadoutScienceJumpsuitLibrarian - - type: loadout - id: LoadoutScienceJumpskirtLibrarian - -# Chaplain -- type: characterItemGroup - id: LoadoutChaplainUniforms - items: - - type: loadout - id: LoadoutChaplainJumpsuit - - type: loadout - id: LoadoutChaplainJumpskirt - -- type: characterItemGroup - id: LoadoutChaplainEquipment - maxItems: 2 - items: - - type: loadout - id: LoadoutChaplainBible - - type: loadout - id: LoadoutChaplainStamp diff --git a/Resources/Prototypes/CharacterItemGroups/serviceGroups.yml b/Resources/Prototypes/CharacterItemGroups/serviceGroups.yml deleted file mode 100644 index 61c2b286b7e..00000000000 --- a/Resources/Prototypes/CharacterItemGroups/serviceGroups.yml +++ /dev/null @@ -1,185 +0,0 @@ -- type: characterItemGroup - id: LoadoutUniformsService - items: - - type: loadout - id: LoadoutServiceClownOutfitJester - - type: loadout - id: LoadoutServiceClownOutfitJesterAlt - - type: loadout - id: LoadoutServiceBartenderUniformPurple - - type: loadout - id: LoadoutServiceBotanistUniformOveralls - - type: loadout - id: LoadoutServiceLawyerUniformBlueSuit - - type: loadout - id: LoadoutServiceLawyerUniformBlueSkirt - - type: loadout - id: LoadoutServiceLawyerUniformRedSuit - - type: loadout - id: LoadoutServiceLawyerUniformRedSkirt - - type: loadout - id: LoadoutServiceLawyerUniformPurpleSuit - - type: loadout - id: LoadoutServiceLawyerUniformPurpleSkirt - - type: loadout - id: LoadoutServiceLawyerUniformGoodSuit - - type: loadout - id: LoadoutServiceLawyerUniformGoodSkirt - - type: loadout - id: LoadoutServiceReporterUniformJournalist - - type: loadout - id: LoadoutServiceReporterUniformDetectivesuit - - type: loadout - id: LoadoutServiceReporterUniformDetectiveskirt - -- type: characterItemGroup - id: LoadoutOuterService - items: - - type: loadout - id: LoadoutServiceClownOuterWinter - - type: loadout - id: LoadoutServiceClownOuterClownPriest - - type: loadout - id: LoadoutServiceMimeOuterWinter - -- type: characterItemGroup - id: LoadoutNeckService - items: - - type: loadout - id: LoadoutServiceClownBedsheetClown - - type: loadout - id: LoadoutServiceMimeBedsheetMime - -- type: characterItemGroup - id: LoadoutMaskService - items: - - type: loadout - id: LoadoutServiceClownMaskSexy - - type: loadout - id: LoadoutServiceMimeMaskSad - - type: loadout - id: LoadoutServiceMimeMaskScared - - type: loadout - id: LoadoutServiceMimeMaskSexy - -- type: characterItemGroup - id: LoadoutShoesService - items: - - type: loadout - id: LoadoutServiceClownBootsWinter - - type: loadout - id: LoadoutServiceMimeShoesBootsWinter - -- type: characterItemGroup - id: LoadoutEquipmentService - items: - - type: loadout - id: LoadoutServiceClownCowToolboxFilled - -- type: characterItemGroup - id: LoadoutHeadService - items: - - type: loadout - id: LoadoutServiceClownCowToolboxFilled - -# Bartender -- type: characterItemGroup - id: LoadoutBartenderOuterwear - items: - - type: loadout - id: LoadoutServiceBartenderArmorDuraVest - - type: loadout - id: LoadoutServiceOuterBartenderNt - - type: loadout - id: LoadoutServiceOuterBartenderIdris - - type: loadout - id: LoadoutServiceOuterBartenderOrion - -- type: characterItemGroup - id: LoadoutBartenderAmmo - items: - - type: loadout - id: LoadoutServiceBartenderBoxBeanbags - - type: loadout - id: LoadoutServiceBartenderBoxLightRifleRubber - -- type: characterItemGroup - id: LoadoutBartenderWeapon - items: - - type: loadout - id: LoadoutServiceBartenderShotgunDoubleBarreledRubber - - type: loadout - id: LoadoutServiceBartenderMosinRubber - -- type: characterItemGroup - id: LoadoutBartenderUniforms - items: - - type: loadout - id: LoadoutServiceJumpsuitBartenderNt - - type: loadout - id: LoadoutServiceJumpsuitBartenderIdris - - type: loadout - id: LoadoutServiceJumpsuitBartenderOrion - -- type: characterItemGroup - id: LoadoutBartenderHead - items: - - type: loadout - id: LoadoutServiceHeadBartenderNt - - type: loadout - id: LoadoutServiceHeadBartenderIdris - - type: loadout - id: LoadoutServiceHeadBartenderOrion - -# Botanist -- type: characterItemGroup - id: LoadoutBotanistUniforms - items: - - type: loadout - id: LoadoutServiceJumpsuitHydroponicsNt - - type: loadout - id: LoadoutServiceJumpsuitHydroponicsIdris - - type: loadout - id: LoadoutServiceJumpsuitHydroponicsOrion - -# Chef -- type: characterItemGroup - id: LoadoutChefUniforms - items: - - type: loadout - id: LoadoutServiceJumpsuitChefNt - - type: loadout - id: LoadoutServiceJumpsuitChefIdris - - type: loadout - id: LoadoutServiceJumpsuitChefOrion - -- type: characterItemGroup - id: LoadoutChefHead - items: - - type: loadout - id: LoadoutServiceHeadChefNt - - type: loadout - id: LoadoutServiceHeadChefIdris - - type: loadout - id: LoadoutServiceHeadChefOrion - -- type: characterItemGroup - id: LoadoutChefOuter - items: - - type: loadout - id: LoadoutServiceOuterChefNt - - type: loadout - id: LoadoutServiceOuterChefIdris - - type: loadout - id: LoadoutServiceOuterChefOrion - -# Janitor -- type: characterItemGroup - id: LoadoutJanitorUniforms - items: - - type: loadout - id: LoadoutServiceJumpsuitJanitorNt - - type: loadout - id: LoadoutServiceJumpsuitJanitorIdris - - type: loadout - id: LoadoutServiceJumpsuitJanitorOrion \ No newline at end of file diff --git a/Resources/Prototypes/Damage/containers.yml b/Resources/Prototypes/Damage/containers.yml index b01d22df3b7..0144083b145 100644 --- a/Resources/Prototypes/Damage/containers.yml +++ b/Resources/Prototypes/Damage/containers.yml @@ -62,3 +62,11 @@ - Immaterial supportedTypes: - Poison + +# Shitmed +- type: damageContainer + id: OrganicPart + supportedGroups: + - Brute + - Burn + diff --git a/Resources/Prototypes/Damage/modifier_sets.yml b/Resources/Prototypes/Damage/modifier_sets.yml index 8cca467f69b..8366453e587 100644 --- a/Resources/Prototypes/Damage/modifier_sets.yml +++ b/Resources/Prototypes/Damage/modifier_sets.yml @@ -378,3 +378,14 @@ Blunt: 0.9 Slash: 0.9 Piercing: 0.9 + +# Shitmed modification: Change this if you want to alter how damage types affect part severing/integrity. +- type: damageModifierSet + id: PartDamage + coefficients: + Blunt: 0.8 + Slash: 1.2 + Piercing: 0.5 + Cold: 0.5 + Heat: 0.8 + Shock: 0.5 diff --git a/Resources/Prototypes/DeltaV/Body/Organs/harpy.yml b/Resources/Prototypes/DeltaV/Body/Organs/harpy.yml index adc626bc114..d573ce0dfba 100644 --- a/Resources/Prototypes/DeltaV/Body/Organs/harpy.yml +++ b/Resources/Prototypes/DeltaV/Body/Organs/harpy.yml @@ -9,6 +9,8 @@ - state: lung-l - state: lung-r - type: Lung + - type: Organ + slotId: lungs - type: Metabolizer updateInterval: 2.0 removeEmpty: true diff --git a/Resources/Prototypes/DeltaV/Body/Organs/vulpkanin.yml b/Resources/Prototypes/DeltaV/Body/Organs/vulpkanin.yml index cd4eeae1900..228d0dcf1ce 100644 --- a/Resources/Prototypes/DeltaV/Body/Organs/vulpkanin.yml +++ b/Resources/Prototypes/DeltaV/Body/Organs/vulpkanin.yml @@ -1,7 +1,7 @@ - type: entity id: OrganVulpkaninStomach parent: OrganAnimalStomach - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Stomach - type: SolutionContainerManager diff --git a/Resources/Prototypes/DeltaV/Body/Parts/vulpkanin.yml b/Resources/Prototypes/DeltaV/Body/Parts/vulpkanin.yml index 1a6931df679..9f95eb25753 100644 --- a/Resources/Prototypes/DeltaV/Body/Parts/vulpkanin.yml +++ b/Resources/Prototypes/DeltaV/Body/Parts/vulpkanin.yml @@ -7,7 +7,7 @@ abstract: true components: - type: Damageable - damageContainer: Biological + damageContainer: OrganicPart - type: BodyPart - type: ContainerContainer containers: diff --git a/Resources/Prototypes/DeltaV/Body/Prototypes/harpy.yml b/Resources/Prototypes/DeltaV/Body/Prototypes/harpy.yml index b20b94cce2d..e695811fc94 100644 --- a/Resources/Prototypes/DeltaV/Body/Prototypes/harpy.yml +++ b/Resources/Prototypes/DeltaV/Body/Prototypes/harpy.yml @@ -17,6 +17,7 @@ - left arm - right leg - left leg + - head organs: heart: OrganHumanHeart lungs: OrganHarpyLungs diff --git a/Resources/Prototypes/DeltaV/Body/Prototypes/vulpkanin.yml b/Resources/Prototypes/DeltaV/Body/Prototypes/vulpkanin.yml index 4ac73acfc48..378e7eee6df 100644 --- a/Resources/Prototypes/DeltaV/Body/Prototypes/vulpkanin.yml +++ b/Resources/Prototypes/DeltaV/Body/Prototypes/vulpkanin.yml @@ -23,6 +23,7 @@ - left arm - right leg - left leg + - head right arm: part: RightArmVulpkanin connections: diff --git a/Resources/Prototypes/DeltaV/Catalog/Fills/Backpacks/StarterGear/backpack.yml b/Resources/Prototypes/DeltaV/Catalog/Fills/Backpacks/StarterGear/backpack.yml index b73c1d5b4fc..d7cc68ad723 100644 --- a/Resources/Prototypes/DeltaV/Catalog/Fills/Backpacks/StarterGear/backpack.yml +++ b/Resources/Prototypes/DeltaV/Catalog/Fills/Backpacks/StarterGear/backpack.yml @@ -12,7 +12,7 @@ - id: BaseBallBat - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackMedical id: ClothingBackpackParamedicFilledDV components: @@ -23,7 +23,7 @@ - id: Portafib - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackMedical id: ClothingBackpackPsychologistFilled components: @@ -33,7 +33,7 @@ - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpack id: ClothingBackpackLawyerFilled components: diff --git a/Resources/Prototypes/DeltaV/Catalog/Fills/Backpacks/StarterGear/duffelbag.yml b/Resources/Prototypes/DeltaV/Catalog/Fills/Backpacks/StarterGear/duffelbag.yml index 50ef77a316f..6ed6dca1edd 100644 --- a/Resources/Prototypes/DeltaV/Catalog/Fills/Backpacks/StarterGear/duffelbag.yml +++ b/Resources/Prototypes/DeltaV/Catalog/Fills/Backpacks/StarterGear/duffelbag.yml @@ -1,5 +1,5 @@ - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffelMedical id: ClothingBackpackDuffelParamedicFilledDV components: @@ -10,7 +10,7 @@ - id: Portafib - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffelMedical id: ClothingBackpackDuffelPsychologistFilled components: @@ -20,7 +20,7 @@ - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffel id: ClothingBackpackDuffelLawyerFilled components: diff --git a/Resources/Prototypes/DeltaV/Catalog/Fills/Backpacks/StarterGear/satchel.yml b/Resources/Prototypes/DeltaV/Catalog/Fills/Backpacks/StarterGear/satchel.yml index 99a770e37e1..58d887f47bd 100644 --- a/Resources/Prototypes/DeltaV/Catalog/Fills/Backpacks/StarterGear/satchel.yml +++ b/Resources/Prototypes/DeltaV/Catalog/Fills/Backpacks/StarterGear/satchel.yml @@ -1,5 +1,5 @@ - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchelMedical id: ClothingBackpackSatchelParamedicFilledDV components: @@ -10,7 +10,7 @@ - id: Portafib - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchelMedical id: ClothingBackpackSatchelPsychologistFilled components: @@ -20,7 +20,7 @@ - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchel id: ClothingBackpackSatchelLawyerFilled components: diff --git a/Resources/Prototypes/DeltaV/Catalog/Shipyard/categories.yml b/Resources/Prototypes/DeltaV/Catalog/Shipyard/categories.yml new file mode 100644 index 00000000000..2d11d3fae80 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Catalog/Shipyard/categories.yml @@ -0,0 +1,35 @@ +# class +- type: vesselCategory + id: Civilian + +- type: vesselCategory + id: Military + +- type: vesselCategory + id: Experimental + +# size +- type: vesselCategory + id: Small + +- type: vesselCategory + id: Medium + +- type: vesselCategory + id: Large + +# purpose +- type: vesselCategory + id: Medical + +- type: vesselCategory + id: Mining + +- type: vesselCategory + id: Research + +- type: vesselCategory + id: Shipping + +- type: vesselCategory + id: Transport diff --git a/Resources/Prototypes/DeltaV/Catalog/Shipyard/civilian.yml b/Resources/Prototypes/DeltaV/Catalog/Shipyard/civilian.yml new file mode 100644 index 00000000000..c3a0935e369 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Catalog/Shipyard/civilian.yml @@ -0,0 +1,76 @@ +- type: vessel + id: PTS + name: Private Transport Shuttle + description: A private transport vessel for up to 6 passengers. + price: 23000 + path: /Maps/Shuttles/DeltaV/pts.yml + categories: + - Civilian + - Small + - Transport + +- type: vessel + id: Barge + name: The Barge + description: A large shipping vessel repurposed into a salvage bar. + price: 45000 + path: /Maps/Shuttles/DeltaV/barge.yml + categories: + - Civilian + - Large + - Shipping + - Mining + +- type: vessel + id: Helix + name: NTMC Helix + description: A large mobile health clinic for servicing distant outposts. + price: 46000 + path: /Maps/Shuttles/DeltaV/helix.yml + categories: + - Civilian + - Medium + - Medical + +- type: vessel + id: Prospector + name: NT-7 Prospector + description: A small mining vessel designed to assist salvage operations. + price: 20800 + path: /Maps/Shuttles/DeltaV/prospector.yml + categories: + - Civilian + - Small + - Mining + +- type: vessel + id: Nomad + name: NTCV Nomad + description: A small shuttle for transporting up to 3 passengers with relative comfort. + price: 21000 + path: /Maps/Shuttles/DeltaV/ntcv-nomad.yml + categories: + - Civilian + - Small + - Transport + +- type: vessel + id: Tote + name: NTSV Tote + description: A small shipping vessel, adapted from the Nomad line of shuttles with room for 2 passengers. + price: 20000 + path: /Maps/Shuttles/DeltaV/ntsv-tote.yml + categories: + - Civilian + - Small + - Shipping + +- type: vessel + id: Pulse + name: NTV Pulse + description: A moderately sized shuttle intended for all-purpose use. It can comfortably accomodate a crew of up to ten people. + price: 50000 + path: /Maps/Shuttles/DeltaV/ntv-pulse.yml + categories: + - Civilian + - Medium diff --git a/Resources/Prototypes/DeltaV/Catalog/Shipyard/experimental.yml b/Resources/Prototypes/DeltaV/Catalog/Shipyard/experimental.yml new file mode 100644 index 00000000000..68132306ed3 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Catalog/Shipyard/experimental.yml @@ -0,0 +1,10 @@ +- type: vessel + id: Saucer + name: NTXR Saucer + description: A high-tech research vessel with a unique interior propulsion system. + price: 49000 + path: /Maps/Shuttles/DeltaV/ntxr-saucer.yml + categories: + - Experimental + - Medium + - Research diff --git a/Resources/Prototypes/DeltaV/Entities/Clothing/Head/hardsuit-helmets.yml b/Resources/Prototypes/DeltaV/Entities/Clothing/Head/hardsuit-helmets.yml index bdef8822cc5..cfa7d9d26d1 100644 --- a/Resources/Prototypes/DeltaV/Entities/Clothing/Head/hardsuit-helmets.yml +++ b/Resources/Prototypes/DeltaV/Entities/Clothing/Head/hardsuit-helmets.yml @@ -2,7 +2,7 @@ - type: entity parent: ClothingHeadHardsuitWithLightBase id: ClothingHeadHelmetHardsuitCombatStandard - noSpawn: true + categories: [ HideSpawnMenu ] name: combat hardsuit helmet description: An armoured helmet with a yellow visor and dual head-mounted lights. components: @@ -37,7 +37,7 @@ - type: entity parent: ClothingHeadHardsuitWithLightBase id: ClothingHeadHelmetHardsuitCombatMedical - noSpawn: true + categories: [ HideSpawnMenu ] name: medical combat hardsuit helmet description: A lightweight armoured helmet with full-face blue visor and head-mounted light. components: @@ -72,7 +72,7 @@ - type: entity parent: ClothingHeadHardsuitWithLightBase id: ClothingHeadHelmetHardsuitCombatRiot - noSpawn: true + categories: [ HideSpawnMenu ] name: riot combat hardsuit helmet description: A heavy armoured helmet with a sealed visor with yellow slits and dual head-mounted lights. components: @@ -107,7 +107,7 @@ - type: entity parent: ClothingHeadHardsuitWithLightBase id: ClothingHeadHelmetHardsuitCombatAdvanced - noSpawn: true + categories: [ HideSpawnMenu ] name: advanced combat hardsuit helmet description: A light but durable helmet with full-face protection and four head-mounted lights. components: diff --git a/Resources/Prototypes/DeltaV/Entities/Markers/Spawners/ghost_roles.yml b/Resources/Prototypes/DeltaV/Entities/Markers/Spawners/ghost_roles.yml index 2782fa4f941..f313d30f8f0 100644 --- a/Resources/Prototypes/DeltaV/Entities/Markers/Spawners/ghost_roles.yml +++ b/Resources/Prototypes/DeltaV/Entities/Markers/Spawners/ghost_roles.yml @@ -17,7 +17,7 @@ state: full - type: entity # Part of PirateRadioSpawn - noSpawn: true + categories: [ HideSpawnMenu ] id: SpawnPointGhostSyndicateListener name: ghost role spawn point suffix: syndicate listener diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Player/human.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Player/human.yml index d539c58496a..5bc30734426 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Player/human.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Player/human.yml @@ -1,5 +1,5 @@ - type: entity # Delta-V : Part of a mid-round PirateRadioSpawn - noSpawn: true + categories: [ HideSpawnMenu ] parent: MobHumanSyndicateAgent id: MobHumanSyndicateListener name: Syndicate Listener diff --git a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/vulpkanin.yml b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/vulpkanin.yml index b3027839b1a..dda911ec6dc 100644 --- a/Resources/Prototypes/DeltaV/Entities/Mobs/Species/vulpkanin.yml +++ b/Resources/Prototypes/DeltaV/Entities/Mobs/Species/vulpkanin.yml @@ -122,7 +122,7 @@ name: Vulpkanin Dummy parent: MobHumanDummy id: MobVulpkaninDummy - noSpawn: true + categories: [ HideSpawnMenu ] description: A dummy vulpkanin meant to be used in character setup. components: - type: HumanoidAppearance diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Consumable/Food/Containers/lunchbox.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Consumable/Food/Containers/lunchbox.yml index c7aae33c76d..94e898955a7 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Consumable/Food/Containers/lunchbox.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Consumable/Food/Containers/lunchbox.yml @@ -27,9 +27,14 @@ - type: MeleeWeapon damage: types: - Blunt: 2 + Blunt: 5.5 + heavyRateModifier: 1.25 + heavyStaminaCost: 5 + angle: 80.5 soundHit: path: "/Audio/Weapons/click.ogg" + - type: DamageOtherOnHit + staminaCost: 6 - type: StaticPrice price: 10 diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Devices/CircuitBoards/computer.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Devices/CircuitBoards/computer.yml new file mode 100644 index 00000000000..dee6b595ba1 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Devices/CircuitBoards/computer.yml @@ -0,0 +1,10 @@ +- type: entity + parent: BaseComputerCircuitboard + id: ShipyardComputerCircuitboard + name: shipyard computer board + description: A computer printed circuit board for a shipyard computer. + components: + - type: Sprite + state: cpu_supply + - type: ComputerBoard + prototype: ComputerShipyard diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Devices/Medical/portafib.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Devices/Medical/portafib.yml index a02023f4a8e..0f3095663d3 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Devices/Medical/portafib.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Devices/Medical/portafib.yml @@ -43,6 +43,13 @@ - type: GuideHelp guides: - Medical Doctor + - type: DamageOtherOnHit + damage: + types: + Blunt: 6.5 + staminaCost: 8 + soundHit: + path: /Audio/Weapons/smash.ogg - type: entity id: PortafibEmpty diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Misc/subdermal_implants.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Misc/subdermal_implants.yml index 4e8392870cd..7dea5b47fe2 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Misc/subdermal_implants.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Misc/subdermal_implants.yml @@ -3,7 +3,7 @@ id: BionicSyrinxImplant name: bionic syrinx implant description: This implant lets a harpy adjust their voice to whoever they can think of. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: SubdermalImplant implantAction: ActionSyrinxChangeVoiceMask diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail.yml index 6f96930078b..43e26db6352 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail.yml @@ -1,6 +1,6 @@ # DeltaV Mail - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailBooksAll # See Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/books.yml suffix: books @@ -168,7 +168,7 @@ # orGroup: bookother - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailPumpkinPie suffix: pumpkinpie @@ -178,7 +178,7 @@ - id: FoodPiePumpkin - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailDVCosplayFakeWizard suffix: cosplay-wizard, fake as fuck @@ -256,7 +256,7 @@ # Frontier Mail, including Extended Nyano Mail. (Pony Express?) - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFAlcohol suffix: alcohol, extended @@ -300,7 +300,7 @@ amount: 2 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMailLarge id: MailNFBible suffix: bible, extended @@ -312,7 +312,7 @@ - id: ClothingOuterCoatMNKBlackTopCoat #DeltaV - Compensates for items that don't exist here - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFBikeHorn suffix: bike horn, random @@ -327,7 +327,7 @@ prob: 0.05 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMailLarge id: MailNFBuildABuddy suffix: Build-a-Buddy @@ -349,7 +349,7 @@ - id: PaperMailNFBuildABuddy - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMailLarge id: MailNFCake suffix: cake, extended @@ -411,7 +411,7 @@ amount: 2 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFCosplayWizard suffix: cosplay-wizard, extended @@ -429,7 +429,7 @@ prob: 0.1 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFCosplayMaid suffix: cosplay-maid, extended @@ -446,7 +446,7 @@ - id: ClothingHandsGlovesColorWhite - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFCosplayNurse suffix: cosplay-nurse, extended @@ -458,7 +458,7 @@ - id: Syringe - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFCheese suffix: cheese, extended @@ -476,7 +476,7 @@ - id: KnifePlastic - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFCigarettes suffix: cigs, random @@ -511,7 +511,7 @@ - id: CheapLighter - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFEMP suffix: emp @@ -522,7 +522,7 @@ - id: PaperMailNFEMPPreparedness - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFSmoke suffix: smoke @@ -532,7 +532,7 @@ - id: DelayedSmoke - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFGoldCigars suffix: cigars, premium @@ -546,7 +546,7 @@ prob: 0.95 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFCookies suffix: cookies, random @@ -592,7 +592,7 @@ orGroup: Cookie4 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFKnife suffix: knife, extended @@ -609,7 +609,7 @@ orGroup: Knife - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMailLarge id: MailNFSword suffix: sword @@ -645,7 +645,7 @@ prob: 0.001 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFMuffins suffix: muffins, random @@ -703,7 +703,7 @@ prob: 0.5 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFPAI suffix: PAI, extended @@ -719,7 +719,7 @@ prob: 0.01 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFPlushie suffix: plushie, extended @@ -783,7 +783,7 @@ # Random snacks, replaces MailChocolate (lousy animal organs) - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFSnacks suffix: snacks, random @@ -896,7 +896,7 @@ prob: 0.5 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFVagueThreat suffix: vague-threat @@ -943,7 +943,7 @@ orGroup: ThreateningObject - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFDonkPockets suffix: donk pockets, random @@ -980,7 +980,7 @@ # Needs a buff? - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFSodaPwrGame suffix: Pwrgame @@ -993,7 +993,7 @@ # Needs a buff? - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFSodaRedBool suffix: Red Bool @@ -1006,7 +1006,7 @@ # Needs a buff? - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFSodaSpaceCola suffix: Space Cola @@ -1018,7 +1018,7 @@ # Needs a buff? - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFSodaSpaceMountainWind suffix: Space Mountain Wind @@ -1030,7 +1030,7 @@ # Needs a buff? - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFSodaSpaceUp suffix: Space Up @@ -1042,7 +1042,7 @@ #TODO: we don't have rainbow joints or blunts (yet?). Uncomment when (if?) they are added. - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFJoints suffix: joints @@ -1093,7 +1093,7 @@ # Mmm, mail food # Needs a buff? - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFUnusualFood suffix: unusual food @@ -1159,7 +1159,7 @@ # Needs a buff? - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFBakedGoods suffix: baked goods @@ -1306,7 +1306,7 @@ # Needs a buff? - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFUnusualProduce suffix: unusual produce @@ -1357,7 +1357,7 @@ prob: 0.25 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFSoaps suffix: soap sampler @@ -1371,7 +1371,7 @@ orGroup: Ad - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFSoapsOmega suffix: soap sampler, omega @@ -1386,7 +1386,7 @@ # Could add spessman battle rules here - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFFigurineBulk # DeltaV - No longer Bulk suffix: figurine, bulk #DeltaV - Spams 3 boxes instead of using the bulk figurine prototype that Frontier uses @@ -1398,7 +1398,7 @@ - id: MysteryFigureBox - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFPen suffix: fancy pen @@ -1426,7 +1426,7 @@ - id: PaperMailNFPaperPusherAd - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMailLarge id: MailNFThrongler suffix: throngler @@ -1436,7 +1436,7 @@ - id: ThronglerToy - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFInstrumentSmall suffix: instrument, expanded @@ -1483,7 +1483,7 @@ prob: 0.01 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFUnusualClothing suffix: unusual clothing @@ -1536,7 +1536,7 @@ prob: 0.25 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFCritter suffix: critter @@ -1589,7 +1589,7 @@ prob: 0.01 # Rare - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFTacticalMaid suffix: tactical maid @@ -1602,7 +1602,7 @@ - id: ClothingHandsTacticalMaidGloves - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMailLarge id: MailNFKendoKit suffix: kendo kit @@ -1620,7 +1620,7 @@ # Base Nyano Mail - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailSake suffix: osake @@ -1632,7 +1632,7 @@ - id: DrinkTokkuri - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailBlockGameDIY suffix: blockgamediy @@ -1642,7 +1642,7 @@ - id: BlockGameArcadeComputerCircuitboard - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailCigars suffix: Cigars @@ -1653,7 +1653,7 @@ - id: Lighter - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailCrayon suffix: Crayon @@ -1663,7 +1663,7 @@ - id: CrayonBox - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailCosplayArc suffix: cosplay-arc @@ -1674,7 +1674,7 @@ - id: ClothingCostumeArcDress - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailCosplayGeisha suffix: cosplay-geisha @@ -1687,7 +1687,7 @@ amount: 3 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailCosplaySchoolgirl suffix: cosplay-schoolgirl @@ -1712,7 +1712,7 @@ orGroup: Color - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailFlowers suffix: flowers @@ -1727,7 +1727,7 @@ - id: FoodLily - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailSignallerKit suffix: signallerkit @@ -1738,7 +1738,7 @@ - id: RemoteSignaller - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNoir suffix: noir @@ -1751,7 +1751,7 @@ - id: ClothingOuterCoatGentle - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailRestraints suffix: restraints @@ -1763,7 +1763,7 @@ - id: ClothingEyesBlindfold - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailFishingCap suffix: fishingcap @@ -1773,7 +1773,7 @@ - id: ClothingHeadFishCap - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailFlashlight suffix: Flashlight @@ -1783,7 +1783,7 @@ - id: FlashlightLantern - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailSpaceVillainDIY suffix: spacevilliandiy @@ -1793,7 +1793,7 @@ - id: SpaceVillainArcadeComputerCircuitboard - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailSunglasses suffix: Sunglasses @@ -1803,7 +1803,7 @@ - id: ClothingEyesGlassesSunglasses - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailWinterCoat suffix: wintercoat diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_civilian.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_civilian.yml index 19a1ee3c536..8b461295053 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_civilian.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_civilian.yml @@ -1,6 +1,6 @@ # Frontier Mail - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMailLarge id: MailNFInstrumentLarge suffix: instrument, large @@ -53,7 +53,7 @@ # Base Nyano Mail - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailBotanistChemicalBottles suffix: botanist chemicals @@ -68,7 +68,7 @@ prob: 0.4 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailBotanistMutagen suffix: mutagen @@ -80,7 +80,7 @@ - id: UnstableMutagenChemistryBottle - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailBotanistSeeds suffix: seeds @@ -129,7 +129,7 @@ orGroup: Seeds - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailClownGildedBikeHorn suffix: honk @@ -140,7 +140,7 @@ - id: BikeHornInstrument - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailClownHonkSupplement suffix: honk @@ -153,7 +153,7 @@ - id: FoodBanana - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailHoPBureaucracy suffix: hop paper @@ -164,7 +164,7 @@ maxAmount: 3 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailHoPSupplement suffix: hop supplement @@ -176,7 +176,7 @@ - id: Paper - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailMimeArtsCrafts suffix: arts and crafts @@ -188,7 +188,7 @@ maxAmount: 3 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailMimeBlankBook suffix: blank book @@ -198,7 +198,7 @@ - id: BookRandom - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailMimeBottleOfNothing suffix: bottle of nothing @@ -208,7 +208,7 @@ - id: DrinkBottleOfNothingFull - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailPassengerMoney suffix: passenger money diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_command.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_command.yml index 86dec46a654..d8f6183b9c6 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_command.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_command.yml @@ -1,6 +1,6 @@ # Base Nyano Mail - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailCommandPinpointerNuclear suffix: pinpointer mail ops @@ -10,7 +10,7 @@ - id: PinpointerNuclear - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailStationRepNFNukeDisk suffix: nuke disk @@ -22,7 +22,7 @@ - id: PaperMailNFAntivirus - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailCommandNFPipebombIntern suffix: pipe and bomb diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_engineering.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_engineering.yml index af70fc621cb..2d3132e7f04 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_engineering.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_engineering.yml @@ -1,6 +1,6 @@ # Base Nyano Mail - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailEngineeringCables suffix: cables @@ -15,7 +15,7 @@ orGroup: Cables - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailEngineeringKudzuDeterrent suffix: antikudzu @@ -25,7 +25,7 @@ - id: PlantBGoneSpray - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailEngineeringSheetGlass suffix: sheetglass @@ -35,7 +35,7 @@ - id: SheetGlass - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailEngineeringWelderReplacement suffix: welder @@ -47,7 +47,7 @@ # Frontier Mail - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFCircuitboardIndustrial suffix: industrial circuitboard @@ -113,7 +113,7 @@ prob: 0.1 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailNFCircuitboardService suffix: service circuitboard @@ -155,7 +155,7 @@ prob: 0.1 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMailLarge id: MailNFPowerTool suffix: power tool diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_epistemology.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_epistemology.yml index be6f9818e22..0006a0af023 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_epistemology.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_epistemology.yml @@ -1,5 +1,5 @@ - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailEpistemologyBluespace suffix: bluespace @@ -9,7 +9,7 @@ - id: MaterialBluespace1 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailEpistemologyIngotGold suffix: ingotgold @@ -20,7 +20,7 @@ maxAmount: 3 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailEpistemologyResearchDisk suffix: researchdisk @@ -38,7 +38,7 @@ prob: 0.1 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailEpistemologyTinfoilHat suffix: tinfoilhat diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_medical.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_medical.yml index 735f840a201..f19a3950b91 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_medical.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_medical.yml @@ -1,6 +1,6 @@ # Base Nyano Mail - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailMedicalBasicSupplies suffix: basicmedical @@ -15,7 +15,7 @@ maxAmount: 2 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailMedicalChemistrySupplement suffix: chemsupp @@ -31,7 +31,7 @@ maxAmount: 3 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailMedicalEmergencyPens suffix: medipens @@ -42,7 +42,7 @@ maxAmount: 3 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailMedicalMedicinePills suffix: medicinepills @@ -57,7 +57,7 @@ maxAmount: 2 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailMedicalSheetPlasma suffix: sheetplasma @@ -67,7 +67,7 @@ - id: SheetPlasma1 #- type: entity -# noSpawn: true +# categories: [ HideSpawnMenu ] # parent: BaseMail # id: MailMedicalSpaceacillin # suffix: spaceacillin @@ -79,7 +79,7 @@ # Awaiting diseases - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailMedicalStabilizers suffix: stabilizers diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_security.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_security.yml index eed846a0909..c1880eb4d4a 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_security.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Specific/Mail/mail_security.yml @@ -1,6 +1,6 @@ # Base Nyano Mail - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailSecurityDonuts suffix: donuts @@ -10,7 +10,7 @@ - id: FoodBoxDonut - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailSecurityFlashlight suffix: seclite @@ -20,7 +20,7 @@ - id: FlashlightSeclite - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailSecurityNonlethalsKit suffix: nonlethalskit @@ -45,7 +45,7 @@ # Will we ever readd hyperlinks books? Who knows! - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailWardenCrowdControl suffix: crowdcontrol @@ -55,7 +55,7 @@ - id: BoxBeanbag - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailDetectiveForensicSupplement # Deltav - Detective is in charge of investigating crimes. suffix: detectivesupplement # Deltav - Detective is in charge of investigating crimes. @@ -67,7 +67,7 @@ # Frontier Mail - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMailLarge id: MailSecurityNFMusket suffix: musket @@ -83,7 +83,7 @@ # Delta Mail - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailSecurityDVSpaceLaw suffix: spacelaw, extended diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/replicated.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/replicated.yml index 64bb4369f43..0132928af30 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/replicated.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/replicated.yml @@ -2,7 +2,7 @@ id: BulletLightRifleReplicated name: replicated bullet (.20 rifle) parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/special.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/special.yml index df2ccf2a94e..9233a901f9d 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/special.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/special.yml @@ -2,7 +2,7 @@ id: BulletSpecial name: bullet (.38 special) parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: @@ -13,7 +13,7 @@ id: BulletSpecialPractice name: bullet (.38 special practice) parent: BaseBulletPractice - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: @@ -24,7 +24,7 @@ id: BulletSpecialRubber name: bullet (.38 special rubber) parent: BaseBulletRubber - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: @@ -37,7 +37,7 @@ id: BulletSpecialIncendiary name: bullet (.38 special incendiary) parent: BaseBulletIncendiary - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: @@ -49,7 +49,7 @@ id: BulletSpecialUranium name: bullet (.38 special uranium) parent: BaseBulletUranium - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: @@ -61,7 +61,7 @@ id: BulletSpecialHoly name: bullet (.38 special holy) parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: @@ -73,7 +73,7 @@ id: BulletSpecialMindbreaker name: bullet (.38 special mindbreaker) parent: BaseBulletPractice - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml index 8c8ce740a51..d1251659ece 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml @@ -165,6 +165,15 @@ Disabler: { state: mode-disabler } Lethal: { state: mode-lethal } Special: { state: mode-stun } # Unused + - type: MeleeWeapon + attackRate: 1.2 + damage: + types: + Blunt: 7.5 + bluntStaminaDamageFactor: 1.0 + wideAnimationRotation: 135 + - type: DamageOtherOnHit + staminaCost: 5 - type: entity name: miniature energy gun @@ -172,6 +181,9 @@ id: WeaponEnergyGunMiniSecurity description: A light version of the Energy gun with a smaller capacity. The serial number on the handguard marks this gun as belonging to an NT Security Officer. + components: + - type: GuideHelp + guides: [ SecurityWeapons ] - type: entity name: PDW-9 Energy Pistol @@ -229,6 +241,15 @@ - Sidearm - type: StaticPrice price: 750 + - type: MeleeWeapon + attackRate: 1.2 + damage: + types: + Blunt: 7.5 + bluntStaminaDamageFactor: 1.0 + wideAnimationRotation: 135 + - type: DamageOtherOnHit + staminaCost: 5 - type: entity name: PDW-9 Energy Pistol @@ -236,6 +257,9 @@ id: WeaponEnergyGunPistolSecurity description: A military grade sidearm, used by many militia forces throughout the local sector. The serial number on the handguard marks this gun as belonging to an NT Security Officer. + components: + - type: GuideHelp + guides: [ SecurityWeapons ] - type: entity name: IK-60 laser carbine diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/LMGs/lmgs.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/LMGs/lmgs.yml index 9fb68453ee3..64fdf76f9a3 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/LMGs/lmgs.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/LMGs/lmgs.yml @@ -1,4 +1,4 @@ -- type: entity +- type: entity name: Experimental L6 SAW parent: BaseItem id: WeaponLightMachineGunL6Borg @@ -38,4 +38,21 @@ # - type: DynamicPrice # price: 500 - type: Appearance - + - type: MeleeWeapon + attackRate: 1.4 + damage: + types: + Blunt: 11 + bluntStaminaDamageFactor: 1.3333 + swapKeys: true + disableHeavy: true + animation: WeaponArcThrust + wideAnimationRotation: 180 + soundHit: + collection: MetalThud + - type: IncreaseDamageOnWield + damage: + types: + Blunt: 3 + - type: DamageOtherOnHit + staminaCost: 12 diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Pistols/pistols.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Pistols/pistols.yml index 405c321316c..0bd56dfab6b 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Pistols/pistols.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Pistols/pistols.yml @@ -39,6 +39,9 @@ id: WeaponPistolViperWoodSecurity description: A small, low-power pistol with pleasant lacquered wooden grips. Uses .35 auto ammo. The serial number on the handguard marks this gun as belonging to an NT Security Officer. + components: + - type: GuideHelp + guides: [ SecurityWeapons ] - type: entity name: Pollock @@ -85,6 +88,9 @@ id: WeaponPistolPollockSecurity description: A compact and mass-produced combat pistol. Uses .35 auto ammo. The serial number on the handguard marks this gun as belonging to an NT Security Officer. + components: + - type: GuideHelp + guides: [ SecurityWeapons ] - type: entity name: Pollock @@ -110,6 +116,8 @@ whitelist: tags: - CartridgePistol + - type: GuideHelp + guides: [ SecurityWeapons ] - type: entity name: psi-breaker diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Projectiles/impacts.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Projectiles/impacts.yml index 936ac9856ec..869da03ded5 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Projectiles/impacts.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Projectiles/impacts.yml @@ -1,6 +1,6 @@ - type: entity id: BulletImpactEffectRedDisabler - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TimedDespawn lifetime: 0.2 diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml index d74949a80aa..3a2600fd44e 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml @@ -28,6 +28,9 @@ id: WeaponRevolverSnubSecurity description: An old and reliable revolver, modified to be more easily concealed. Uses .45 magnum ammo. The serial number on the handguard marks this gun as belonging to an NT Security Officer. + components: + - type: GuideHelp + guides: [ SecurityWeapons ] - type: entity name: snubbed .45 @@ -43,6 +46,8 @@ capacity: 6 chambers: [ True, True, True, True, True, True ] ammoSlots: [ null, null, null, null, null, null ] + - type: GuideHelp + guides: [ SecurityWeapons ] - type: entity name: k-38 masterpiece @@ -75,6 +80,9 @@ id: WeaponRevolverK38MasterSecurity description: A classic, if not outdated, law enforcement firearm. Uses .38 special ammo. The serial number on the handguard marks this gun as belonging to an NT Security Officer. + components: + - type: GuideHelp + guides: [ SecurityWeapons ] - type: entity name: k-38 masterpiece @@ -90,6 +98,8 @@ capacity: 6 chambers: [ True, True, True, True, True, True ] ammoSlots: [ null, null, null, null, null, null ] + - type: GuideHelp + guides: [ SecurityWeapons ] - type: entity name: fitz special @@ -122,6 +132,9 @@ id: WeaponRevolverFitzSecurity description: A compact and concealable self defence snub revolver. Uses .38 special ammo. The serial number on the handguard marks this gun as belonging to an NT Security Officer. + components: + - type: GuideHelp + guides: [ SecurityWeapons ] - type: entity name: fitz special @@ -137,6 +150,8 @@ capacity: 6 chambers: [ True, True, True, True, True, True ] ammoSlots: [ null, null, null, null, null, null ] + - type: GuideHelp + guides: [ SecurityWeapons ] - type: entity name: lucky 37 diff --git a/Resources/Prototypes/DeltaV/Entities/Structures/Doors/Airlocks/access.yml b/Resources/Prototypes/DeltaV/Entities/Structures/Doors/Airlocks/access.yml index 04785c042b6..3c1eed5892b 100644 --- a/Resources/Prototypes/DeltaV/Entities/Structures/Doors/Airlocks/access.yml +++ b/Resources/Prototypes/DeltaV/Entities/Structures/Doors/Airlocks/access.yml @@ -1,3 +1,12 @@ +# shuttles from the shipyard will try to dock here +- type: entity + parent: AirlockGlassShuttle + id: AirlockExternalGlassShuttleShipyard + suffix: External, Shipyard, Glass, Docking + components: + - type: PriorityDock + tag: DockShipyard + # Delta V specific roles - type: entity parent: AirlockScience diff --git a/Resources/Prototypes/DeltaV/Entities/Structures/Machines/computers.yml b/Resources/Prototypes/DeltaV/Entities/Structures/Machines/computers.yml new file mode 100644 index 00000000000..7d23abb0137 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Structures/Machines/computers.yml @@ -0,0 +1,31 @@ +- type: entity + parent: BaseComputer + id: ComputerShipyard + name: shipyard console + description: Used to purchase and sell shuttles + components: + - type: ShipyardConsole + - type: AccessReader + access: [[ Captain ]] + - type: ActivatableUI + key: enum.ShipyardConsoleUiKey.Key + - type: UserInterface + interfaces: + enum.ShipyardConsoleUiKey.Key: + type: ShipyardConsoleBoundUserInterface + - type: Computer + board: ShipyardComputerCircuitboard + - type: PointLight + radius: 1.5 + energy: 1.6 + color: "#b89f25" + - type: Sprite + layers: + - map: ["computerLayerBody"] + state: computer + - map: ["computerLayerKeyboard"] + state: generic_keyboard + - map: ["computerLayerScreen"] + state: request + - map: ["computerLayerKeys"] + state: tech_key diff --git a/Resources/Prototypes/DeltaV/Entities/Structures/Machines/vending_machines.yml b/Resources/Prototypes/DeltaV/Entities/Structures/Machines/vending_machines.yml index a0a511be2a5..5bdd8ee1ed6 100644 --- a/Resources/Prototypes/DeltaV/Entities/Structures/Machines/vending_machines.yml +++ b/Resources/Prototypes/DeltaV/Entities/Structures/Machines/vending_machines.yml @@ -52,3 +52,13 @@ map: ["enum.WiresVisualLayers.MaintenancePanel"] - type: AccessReader access: [["Mail"]] + +- type: entity + parent: VendingMachineBooze + id: VendingMachineBoozeUnlocked + suffix: Unlocked + components: + - type: VendingMachine + pack: BoozeOMatUnlockedInventory + - type: AccessReader + enabled: false diff --git a/Resources/Prototypes/DeltaV/Entities/Structures/Walls/mountain.yml b/Resources/Prototypes/DeltaV/Entities/Structures/Walls/mountain.yml index 575687336ad..7e1a769a1e0 100644 --- a/Resources/Prototypes/DeltaV/Entities/Structures/Walls/mountain.yml +++ b/Resources/Prototypes/DeltaV/Entities/Structures/Walls/mountain.yml @@ -6,7 +6,7 @@ description: A rocky asteroid. components: - type: Gatherable - whitelist: + toolWhitelist: tags: - Pickaxe - type: Sprite @@ -111,7 +111,7 @@ description: A rocky asteroid. components: - type: Gatherable - whitelist: + toolWhitelist: tags: - Pickaxe - type: OreVein diff --git a/Resources/Prototypes/DeltaV/GameRules/events.yml b/Resources/Prototypes/DeltaV/GameRules/events.yml index db727601f84..2997ceb0734 100644 --- a/Resources/Prototypes/DeltaV/GameRules/events.yml +++ b/Resources/Prototypes/DeltaV/GameRules/events.yml @@ -1,7 +1,7 @@ - type: entity id: XenoVents parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent startAnnouncement: true @@ -33,7 +33,7 @@ - type: entity id: XenoVentsWeak parent: XenoVents - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent startAnnouncement: true @@ -59,7 +59,7 @@ - type: entity id: MothroachSpawn parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent earliestStart: 15 @@ -74,7 +74,7 @@ - type: entity id: PirateRadioSpawn parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent weight: 7.5 diff --git a/Resources/Prototypes/DeltaV/GameRules/midround.yml b/Resources/Prototypes/DeltaV/GameRules/midround.yml index 82b47c05718..74edf7a97d5 100644 --- a/Resources/Prototypes/DeltaV/GameRules/midround.yml +++ b/Resources/Prototypes/DeltaV/GameRules/midround.yml @@ -1,5 +1,5 @@ - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseGameRule id: ParadoxAnomaly components: diff --git a/Resources/Prototypes/DeltaV/Objectives/paradox_anomaly.yml b/Resources/Prototypes/DeltaV/Objectives/paradox_anomaly.yml index ec87795ab5b..b98ee1539c6 100644 --- a/Resources/Prototypes/DeltaV/Objectives/paradox_anomaly.yml +++ b/Resources/Prototypes/DeltaV/Objectives/paradox_anomaly.yml @@ -8,7 +8,7 @@ # not using base kill/keep alive objectives since these intentionally conflict with eachother - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseParadoxAnomalyObjective id: ParadoxAnomalyKillObjective description: This universe doesn't have room for both of us. @@ -23,7 +23,7 @@ requireDead: true - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseParadoxAnomalyObjective id: ParadoxAnomalyFriendObjective description: Perhaps there is room, as friends. @@ -37,7 +37,7 @@ - type: KeepAliveCondition - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: [BaseParadoxAnomalyObjective, BaseLivingObjective] id: ParadoxAnomalyEscapeObjective name: Escape to centcom alive and unrestrained. diff --git a/Resources/Prototypes/DeltaV/Objectives/traitor.yml b/Resources/Prototypes/DeltaV/Objectives/traitor.yml index c5c5318b5d2..828142cdfa7 100644 --- a/Resources/Prototypes/DeltaV/Objectives/traitor.yml +++ b/Resources/Prototypes/DeltaV/Objectives/traitor.yml @@ -1,5 +1,5 @@ - type: entity # Logistics Officer steal objective. - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseTraitorStealObjective id: LOLuckyBillStealObjective components: @@ -7,10 +7,11 @@ job: Quartermaster - type: StealCondition stealGroup: SpaceCashLuckyBill + verifyMapExistence: true # owner: job-name-qm - type: entity # Head of Personnel steal objective. - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseTraitorStealObjective id: HoPBookIanDossierStealObjective components: @@ -18,10 +19,11 @@ job: HeadOfPersonnel - type: StealCondition stealGroup: BookIanDossier + verifyMapExistence: true # owner: job-name-hop - type: entity # Clerk steal objective. - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseTraitorStealObjective id: ClerkNotaryStealObjective components: @@ -29,4 +31,5 @@ job: Clerk - type: StealCondition stealGroup: RubberStampNotary + verifyMapExistence: true owner: job-name-clerk diff --git a/Resources/Prototypes/DeltaV/Roles/Jobs/NPC/syndicateNPCs.yml b/Resources/Prototypes/DeltaV/Roles/Jobs/NPC/syndicateNPCs.yml index b5379c5014e..4dc4fc37aae 100644 --- a/Resources/Prototypes/DeltaV/Roles/Jobs/NPC/syndicateNPCs.yml +++ b/Resources/Prototypes/DeltaV/Roles/Jobs/NPC/syndicateNPCs.yml @@ -16,6 +16,6 @@ name: grafted plate carrier suffix: Unremoveable description: An off-the-shelf plate carrier that has been cruelly grafted onto its wearers body - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Unremoveable diff --git a/Resources/Prototypes/DeltaV/Roles/Jobs/Security/brigmedic.yml b/Resources/Prototypes/DeltaV/Roles/Jobs/Security/brigmedic.yml index 51eeb5e142f..12d71a46194 100644 --- a/Resources/Prototypes/DeltaV/Roles/Jobs/Security/brigmedic.yml +++ b/Resources/Prototypes/DeltaV/Roles/Jobs/Security/brigmedic.yml @@ -29,6 +29,8 @@ - !type:AddComponentSpecial components: - type: CPRTraining + - type: SurgerySpeedModifier + SpeedModifier: 2.0 - type: startingGear id: CorpsmanGear # see Prototypes/Roles/Jobs/Fun/misc_startinggear.yml for "BrigmedicGear" diff --git a/Resources/Prototypes/DeltaV/Species/vulpkanin.yml b/Resources/Prototypes/DeltaV/Species/vulpkanin.yml index 47c8e37b56c..71e3e41be1a 100644 --- a/Resources/Prototypes/DeltaV/Species/vulpkanin.yml +++ b/Resources/Prototypes/DeltaV/Species/vulpkanin.yml @@ -46,9 +46,6 @@ points: 1 required: true defaultMarkings: [ VulpTail ] - Head: - points: 1 - required: false RightLeg: points: 2 required: false @@ -65,13 +62,13 @@ points: 2 required: false RightHand: - points: 2 + points: 3 required: false LeftArm: points: 2 required: false LeftHand: - points: 2 + points: 3 required: false Snout: points: 1 @@ -80,6 +77,9 @@ points: 1 required: true defaultMarkings: [ VulpEar ] + HeadSide: + points: 2 + required: false - type: humanoidBaseSprite id: MobVulpkaninHead diff --git a/Resources/Prototypes/DeltaV/tags.yml b/Resources/Prototypes/DeltaV/tags.yml index 8d990c11565..c6774acee7d 100644 --- a/Resources/Prototypes/DeltaV/tags.yml +++ b/Resources/Prototypes/DeltaV/tags.yml @@ -14,6 +14,9 @@ - type: Tag id: Directional +- type: Tag + id: DockShipyard + - type: Tag id: ForensicBeltEquip diff --git a/Resources/Prototypes/Entities/Clothing/Back/backpacks.yml b/Resources/Prototypes/Entities/Clothing/Back/backpacks.yml index 4af443113a7..282d65cfccc 100644 --- a/Resources/Prototypes/Entities/Clothing/Back/backpacks.yml +++ b/Resources/Prototypes/Entities/Clothing/Back/backpacks.yml @@ -56,6 +56,16 @@ storageOpenSound: collection: IanBark +- type: entity + parent: ClothingBackpackIan + id: ClothingBackpackIanFilled + name: Ian's backpack + description: Sometimes he wears it. + components: + - type: StorageFill + contents: + - id: Flash + - type: entity parent: ClothingBackpack id: ClothingBackpackSecurity diff --git a/Resources/Prototypes/Entities/Clothing/Belt/belts.yml b/Resources/Prototypes/Entities/Clothing/Belt/belts.yml index 80d5cf5a15b..79866ebcf82 100644 --- a/Resources/Prototypes/Entities/Clothing/Belt/belts.yml +++ b/Resources/Prototypes/Entities/Clothing/Belt/belts.yml @@ -268,8 +268,8 @@ - PillCanister - Radio - DiscreteHealthAnalyzer - - SurgeryTool components: + - SurgeryTool - Hypospray - Injector - Pill @@ -631,6 +631,7 @@ - id: Stunbaton - id: Handcuffs - id: Handcuffs + - type: entity parent: ClothingBeltStorageBase id: ClothingBeltMercWebbing @@ -657,7 +658,7 @@ parent: [ClothingBeltStorageBase, ContentsExplosionResistanceBase] id: ClothingBeltMilitaryWebbing name: chest rig - description: A set of tactical webbing worn by Syndicate boarding parties. + description: A set of tactical webbing worn by boarding parties. components: - type: Sprite sprite: Clothing/Belt/militarywebbing.rsi diff --git a/Resources/Prototypes/Entities/Clothing/Eyes/hud.yml b/Resources/Prototypes/Entities/Clothing/Eyes/hud.yml index 835c405e192..8b2eea97e80 100644 --- a/Resources/Prototypes/Entities/Clothing/Eyes/hud.yml +++ b/Resources/Prototypes/Entities/Clothing/Eyes/hud.yml @@ -1,7 +1,7 @@ - type: entity id: ShowSecurityIcons abstract: true - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: ShowJobIcons - type: ShowMindShieldIcons diff --git a/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml b/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml index 01d9e72fef1..fdec5232026 100644 --- a/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml +++ b/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml @@ -300,6 +300,20 @@ fiberMaterial: fibers-synthetic fiberColor: fibers-black +- type: entity + parent: ClothingHandsButcherable + id: ClothingHandsGlovesFingerlessWhite + name: fingerless gloves + description: Plain gloves without fingertips. + components: + - type: Sprite + sprite: Clothing/Hands/Gloves/fingerlesswhite.rsi + - type: Clothing + sprite: Clothing/Hands/Gloves/fingerlesswhite.rsi + - type: Fiber + fiberMaterial: fibers-synthetic + fiberColor: fibers-dyed + - type: entity parent: ClothingHandsBase id: ClothingHandsGlovesFingerlessInsulated @@ -361,7 +375,7 @@ sprite: Clothing/Hands/Gloves/northstar.rsi - type: MeleeWeapon autoAttack: true - attackRate: 4 + attackRate: 0.25 heavyStaminaCost: 2 heavyDamageBaseModifier: 1.05 maxTargets: 1 diff --git a/Resources/Prototypes/Entities/Clothing/Head/bandanas.yml b/Resources/Prototypes/Entities/Clothing/Head/bandanas.yml index 51a56f1f1d6..29a99ce6440 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/bandanas.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/bandanas.yml @@ -24,6 +24,11 @@ tags: - Bandana +- type: entity + parent: [ClothingHeadBandBase, ClothingMaskBandWhite] + id: ClothingHeadBandWhite + name: bandana + - type: entity parent: [ClothingHeadBandBase, ClothingMaskBandBlack] id: ClothingHeadBandBlack diff --git a/Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml b/Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml index e19217686f4..08a3eb568fe 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml @@ -59,7 +59,7 @@ parent: ClothingHeadBase id: ClothingHeadLightBase name: base helmet with light - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite layers: @@ -146,7 +146,7 @@ # No parent since we aren't actually an item. id: ClothingHeadHardsuitBase name: base hardsuit helmet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite state: icon # default state used by most inheritors @@ -189,7 +189,7 @@ parent: ClothingHeadHardsuitBase id: ClothingHeadHardsuitWithLightBase name: base hardsuit helmet with light - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite layers: @@ -241,7 +241,7 @@ id: ClothingHeadHatHoodWinterBase name: base winter coat hood description: A hood, made to keep your head warm. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite state: icon diff --git a/Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml b/Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml index b563fbc0071..caccdd8745e 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml @@ -136,7 +136,7 @@ - type: entity parent: ClothingHeadHardsuitBase id: ClothingHeadHelmetHardsuitMaxim - noSpawn: true + categories: [ HideSpawnMenu ] name: salvager maxim helmet description: A predication of decay washes over your mind. components: diff --git a/Resources/Prototypes/Entities/Clothing/Head/hats.yml b/Resources/Prototypes/Entities/Clothing/Head/hats.yml index 5b5d281362d..fe590c55628 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/hats.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/hats.yml @@ -25,6 +25,17 @@ - HamsterWearable - WhitelistChameleon +- type: entity + parent: ClothingHeadHatBeret + id: ClothingHeadHatBeretWhite + name: beret + description: A beret, an artists favorite headwear. + components: + - type: Sprite + sprite: Clothing/Head/Hats/beretwhite.rsi + - type: Clothing + sprite: Clothing/Head/Hats/beretwhite.rsi + - type: entity parent: ClothingHeadBase id: ClothingHeadHatBeretFrench diff --git a/Resources/Prototypes/Entities/Clothing/Head/hoods.yml b/Resources/Prototypes/Entities/Clothing/Head/hoods.yml index 0bca209d51e..be7bda91008 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/hoods.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/hoods.yml @@ -87,7 +87,7 @@ - type: entity parent: ClothingHeadBase id: ClothingHeadHatHoodChaplainHood - noSpawn: true + categories: [ HideSpawnMenu ] name: chaplain's hood description: Maximum piety in this star system. components: @@ -179,7 +179,7 @@ - type: entity parent: ClothingHeadBase id: ClothingHeadHatHoodIan - noSpawn: true + categories: [ HideSpawnMenu ] name: ian hood description: A hood to complete the 'Good boy' look. components: @@ -194,7 +194,7 @@ - type: entity parent: ClothingHeadBase id: ClothingHeadHatHoodCarp - noSpawn: true + categories: [ HideSpawnMenu ] name: carp hood description: A gnarly hood adorned with plastic space carp teeth. components: @@ -229,7 +229,7 @@ - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterDefault - noSpawn: true + categories: [ HideSpawnMenu ] name: default winter coat hood components: - type: Sprite @@ -240,7 +240,7 @@ - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterBartender - noSpawn: true + categories: [ HideSpawnMenu ] name: bartender winter coat hood components: - type: Sprite @@ -251,7 +251,7 @@ - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterCaptain - noSpawn: true + categories: [ HideSpawnMenu ] name: captain's winter coat hood description: An expensive hood, to keep the captain's head warm. components: @@ -263,7 +263,7 @@ - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterCargo - noSpawn: true + categories: [ HideSpawnMenu ] name: logistics winter coat hood # DeltaV - Logistics Department replacing Cargo components: - type: Sprite @@ -274,7 +274,7 @@ - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterCE - noSpawn: true + categories: [ HideSpawnMenu ] name: chief engineer's winter coat hood components: - type: Sprite @@ -285,7 +285,7 @@ - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterCentcom - noSpawn: true + categories: [ HideSpawnMenu ] name: Centcom winter coat hood description: A hood for keeping the central comander's head warm. components: @@ -297,7 +297,7 @@ - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterChem - noSpawn: true + categories: [ HideSpawnMenu ] name: chemist winter coat hood components: - type: Sprite @@ -308,7 +308,7 @@ - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterCMO - noSpawn: true + categories: [ HideSpawnMenu ] name: chief medical officer's winter coat hood components: - type: Sprite @@ -319,7 +319,7 @@ - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterEngineer - noSpawn: true + categories: [ HideSpawnMenu ] name: engineer winter coat hood components: - type: Sprite @@ -330,7 +330,7 @@ - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterHOP - noSpawn: true + categories: [ HideSpawnMenu ] name: head of personel's winter coat hood components: - type: Sprite @@ -341,7 +341,7 @@ - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterHOS - noSpawn: true + categories: [ HideSpawnMenu ] name: head of security's winter coat hood components: - type: Sprite @@ -352,7 +352,7 @@ - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterHydro - noSpawn: true + categories: [ HideSpawnMenu ] name: hydroponics coat hood components: - type: Sprite @@ -363,7 +363,7 @@ - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterJani - noSpawn: true + categories: [ HideSpawnMenu ] name: janitor coat hood components: - type: Sprite @@ -374,7 +374,7 @@ - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterMed - noSpawn: true + categories: [ HideSpawnMenu ] name: medic coat hood components: - type: Sprite @@ -385,7 +385,7 @@ - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterMime - noSpawn: true + categories: [ HideSpawnMenu ] name: mime coat hood components: - type: Sprite @@ -396,7 +396,7 @@ - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterMiner - noSpawn: true + categories: [ HideSpawnMenu ] name: miner coat hood components: - type: Sprite @@ -407,7 +407,7 @@ - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterPara - noSpawn: true + categories: [ HideSpawnMenu ] name: paramedic coat hood components: - type: Sprite @@ -418,7 +418,7 @@ - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterQM - noSpawn: true + categories: [ HideSpawnMenu ] name: logistics officer's coat hood # DeltaV - Logistics Department replacing Cargo components: - type: Sprite @@ -429,7 +429,7 @@ - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterRD - noSpawn: true + categories: [ HideSpawnMenu ] name: mystagogue's coat hood # DeltaV - Epistemics Department replacing Science components: - type: Sprite @@ -440,7 +440,7 @@ - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterRobo - noSpawn: true + categories: [ HideSpawnMenu ] name: robotics coat hood components: - type: Sprite @@ -451,7 +451,7 @@ - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterSci - noSpawn: true + categories: [ HideSpawnMenu ] name: scientist coat hood components: - type: Sprite @@ -462,7 +462,7 @@ - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterSec - noSpawn: true + categories: [ HideSpawnMenu ] name: security coat hood components: - type: Sprite @@ -473,7 +473,7 @@ - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterSyndie - noSpawn: true + categories: [ HideSpawnMenu ] name: syndicate coat hood components: - type: Sprite @@ -484,7 +484,7 @@ - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterWarden - noSpawn: true + categories: [ HideSpawnMenu ] name: warden's coat hood components: - type: Sprite @@ -495,7 +495,7 @@ - type: entity parent: ClothingHeadHatHoodWinterBase id: ClothingHeadHatHoodWinterWeb - noSpawn: true + categories: [ HideSpawnMenu ] name: web coat hood components: - type: Sprite diff --git a/Resources/Prototypes/Entities/Clothing/Head/religious.yml b/Resources/Prototypes/Entities/Clothing/Head/religious.yml new file mode 100644 index 00000000000..100af050f6e --- /dev/null +++ b/Resources/Prototypes/Entities/Clothing/Head/religious.yml @@ -0,0 +1,32 @@ +- type: entity + parent: ClothingHeadBase + id: ClothingHeadHatHijabColorable + name: hijab + description: Encompassing cloth headwear worn by some human cultures and religions. + components: + - type: Sprite + sprite: Clothing/Head/ReligiousHeadgear/hijab.rsi + - type: Clothing + sprite: Clothing/Head/ReligiousHeadgear/hijab.rsi + +- type: entity + parent: ClothingHeadBase + id: ClothingHeadHatTurbanColorable + name: turban + description: A sturdy cloth, worn around the head. + components: + - type: Sprite + sprite: Clothing/Head/ReligiousHeadgear/turban.rsi + - type: Clothing + sprite: Clothing/Head/ReligiousHeadgear/turban.rsi + +- type: entity + parent: ClothingHeadBase + id: ClothingHeadHatKippahColorable + name: kippah + description: A head covering commonly worn by those of Jewish faith. + components: + - type: Sprite + sprite: Clothing/Head/ReligiousHeadgear/kippah.rsi + - type: Clothing + sprite: Clothing/Head/ReligiousHeadgear/kippah.rsi diff --git a/Resources/Prototypes/Entities/Clothing/Head/soft.yml b/Resources/Prototypes/Entities/Clothing/Head/soft.yml index 163d9937f2e..60a175e7de4 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/soft.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/soft.yml @@ -167,7 +167,7 @@ - type: entity parent: ClothingHeadHeadHatBaseFlippable id: ClothingHeadHatMimesoft - name: mime cap + name: baseball cap description: "It's a baseball hat in a tasteless white colour." components: - type: Sprite @@ -178,7 +178,7 @@ - type: entity parent: [ClothingHeadHeadHatBaseFlipped, ClothingHeadHatMimesoft] id: ClothingHeadHatMimesoftFlipped - name: mime cap + name: baseball cap - type: entity parent: ClothingHeadHeadHatBaseFlippable diff --git a/Resources/Prototypes/Entities/Clothing/Head/welding.yml b/Resources/Prototypes/Entities/Clothing/Head/welding.yml index c0ae440a56e..4854df983ba 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/welding.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/welding.yml @@ -23,6 +23,13 @@ - type: HideLayerClothing slots: - Snout + - type: DamageOtherOnHit + damage: + types: + Blunt: 7 + staminaCost: 5 + soundHit: + collection: MetalThud - type: entity parent: WeldingMaskBase diff --git a/Resources/Prototypes/Entities/Clothing/Masks/bandanas.yml b/Resources/Prototypes/Entities/Clothing/Masks/bandanas.yml index f5ad2fb6c83..f1f7ebc4cc5 100644 --- a/Resources/Prototypes/Entities/Clothing/Masks/bandanas.yml +++ b/Resources/Prototypes/Entities/Clothing/Masks/bandanas.yml @@ -30,6 +30,17 @@ - Snout hideOnToggle: true +- type: entity + parent: ClothingMaskBandanaBase + id: ClothingMaskBandWhite + name: bandana + description: A bandana to make you look cool. + components: + - type: Sprite + sprite: Clothing/Head/Bandanas/white.rsi + - type: Clothing + sprite: Clothing/Head/Bandanas/white.rsi + - type: entity parent: ClothingMaskBandanaBase id: ClothingMaskBandBlack diff --git a/Resources/Prototypes/Entities/Clothing/Masks/base_clothingmask.yml b/Resources/Prototypes/Entities/Clothing/Masks/base_clothingmask.yml index 3531a26a6c5..03400e4a82e 100644 --- a/Resources/Prototypes/Entities/Clothing/Masks/base_clothingmask.yml +++ b/Resources/Prototypes/Entities/Clothing/Masks/base_clothingmask.yml @@ -21,7 +21,7 @@ id: ActionToggleMask name: Toggle Mask description: Handy, but prevents insertion of pie into your pie hole. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: { sprite: Clothing/Mask/gas.rsi, state: icon } diff --git a/Resources/Prototypes/Entities/Clothing/Masks/masks.yml b/Resources/Prototypes/Entities/Clothing/Masks/masks.yml index c470605bb79..383e32e99d6 100644 --- a/Resources/Prototypes/Entities/Clothing/Masks/masks.yml +++ b/Resources/Prototypes/Entities/Clothing/Masks/masks.yml @@ -562,6 +562,16 @@ - WhitelistChameleon - IPCMaskWearable # Estacao Pirata - IPCs +- type: entity + parent: ClothingMaskNeckGaiter + id: ClothingMaskNeckGaiterWhite + name: neck gaiter + components: + - type: Sprite + sprite: Clothing/Mask/neckgaiterwhite.rsi + - type: Clothing + sprite: Clothing/Mask/neckgaiterwhite.rsi + - type: entity parent: ClothingMaskNeckGaiter id: ClothingMaskNeckGaiterRed diff --git a/Resources/Prototypes/Entities/Clothing/Neck/misc.yml b/Resources/Prototypes/Entities/Clothing/Neck/misc.yml index 11921b9a50d..a39c2e69159 100644 --- a/Resources/Prototypes/Entities/Clothing/Neck/misc.yml +++ b/Resources/Prototypes/Entities/Clothing/Neck/misc.yml @@ -70,7 +70,7 @@ - type: entity id: ActionStethoscope name: Listen with stethoscope - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: EntityTargetAction icon: diff --git a/Resources/Prototypes/Entities/Clothing/Neck/pins.yml b/Resources/Prototypes/Entities/Clothing/Neck/pins.yml index 0054a3645c7..b868c866998 100644 --- a/Resources/Prototypes/Entities/Clothing/Neck/pins.yml +++ b/Resources/Prototypes/Entities/Clothing/Neck/pins.yml @@ -7,6 +7,11 @@ components: - type: Item size: Tiny + - type: DamageOtherOnHit + damage: + types: + Blunt: 1 + staminaCost: 1 - type: entity parent: ClothingNeckPinBase @@ -151,7 +156,7 @@ clothingVisuals: neck: - state: trans-equipped - + - type: entity parent: ClothingNeckPinBase id: ClothingNeckAutismPin diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml index 2a767553edf..0168f461466 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml @@ -152,6 +152,13 @@ coefficient: 0.75 # 25% - type: ClothingRequiredStepTriggerImmune slots: WITHOUT_POCKET + - type: DamageOtherOnHit + damage: + types: + Blunt: 19 + staminaCost: 44 + soundHit: + collection: MetalThud - type: entity abstract: true @@ -201,4 +208,4 @@ id: ClothingOuterBaseMedium components: - type: Item - size: Huge \ No newline at end of file + size: Huge diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml index bb4aedcb5d7..a9bb8f1dc77 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml @@ -60,6 +60,8 @@ - type: HeldSpeedModifier - type: ToggleableClothing clothingPrototype: ClothingHeadHelmetHardsuitAtmos + - type: GuideHelp + guides: [ HephaestusIndustries ] #Engineering Hardsuit - type: entity @@ -94,6 +96,8 @@ clothingPrototype: ClothingHeadHelmetHardsuitEngineering - type: StaminaDamageResistance coefficient: 0.75 # 25% + - type: GuideHelp + guides: [ HephaestusIndustries ] #Spationaut Hardsuit - type: entity @@ -123,6 +127,8 @@ - type: HeldSpeedModifier - type: ToggleableClothing clothingPrototype: ClothingHeadHelmetHardsuitSpatio + - type: GuideHelp + guides: [ HephaestusIndustries ] #Salvage Hardsuit - type: entity @@ -154,6 +160,8 @@ - type: HeldSpeedModifier - type: ToggleableClothing clothingPrototype: ClothingHeadHelmetHardsuitSalvage + - type: GuideHelp + guides: [ HephaestusIndustries ] #Paramedic Voidsuit - type: entity @@ -185,6 +193,8 @@ - type: HeldSpeedModifier - type: ToggleableClothing clothingPrototype: ClothingHeadHelmetHardsuitVoidParamed + - type: GuideHelp + guides: [ ZengHuPharmaceuticals ] - type: entity @@ -217,6 +227,8 @@ coefficient: 0.001 - type: ToggleableClothing clothingPrototype: ClothingHeadHelmetHardsuitMaxim + - type: GuideHelp + guides: [ HephaestusIndustries ] #Security Hardsuit - type: entity @@ -344,6 +356,8 @@ clothingPrototype: ClothingHeadHelmetHardsuitCap - type: StaminaDamageResistance coefficient: 0.5 # 50% + - type: GuideHelp + guides: [ NanoTrasen ] #Chief Engineer's Hardsuit - type: entity @@ -381,6 +395,8 @@ - type: SupermatterImmune - type: StaminaDamageResistance coefficient: 0.65 # 35% + - type: GuideHelp + guides: [ HephaestusIndustries ] #Chief Medical Officer's Hardsuit - type: entity @@ -406,6 +422,8 @@ - type: HeldSpeedModifier - type: ToggleableClothing clothingPrototype: ClothingHeadHelmetHardsuitMedical + - type: GuideHelp + guides: [ ZengHuPharmaceuticals ] #Research Director's Hardsuit - type: entity @@ -452,6 +470,8 @@ stealGroup: ClothingOuterHardsuitRd - type: StaminaDamageResistance coefficient: 0.75 # 25% as in "shock resistance" :trollface: + - type: GuideHelp + guides: [ NanoTrasen ] #Head of Security's Hardsuit - type: entity @@ -516,6 +536,8 @@ - type: HeldSpeedModifier - type: ToggleableClothing clothingPrototype: ClothingHeadHelmetHardsuitLuxury + - type: GuideHelp + guides: [ HephaestusIndustries ] #ANTAG HARDSUITS #Blood-red Hardsuit @@ -1021,9 +1043,9 @@ walkModifier: 0.9 sprintModifier: 0.9 - type: HeldSpeedModifier - #- type: Construction # DeltaV - Prevent clowns from making the hardsuit - # graph: ClownHardsuit - # node: clownHardsuit + - type: Construction + graph: ClownHardsuit + node: clownHardsuit - type: ToggleableClothing clothingPrototype: ClothingHeadHelmetHardsuitClown @@ -1038,9 +1060,9 @@ sprite: Clothing/OuterClothing/Hardsuits/mime.rsi - type: Clothing sprite: Clothing/OuterClothing/Hardsuits/mime.rsi -# - type: Construction # DeltaV - Nuh uh -# graph: MimeHardsuit -# node: mimeHardsuit + - type: Construction + graph: MimeHardsuit + node: mimeHardsuit - type: ToggleableClothing clothingPrototype: ClothingHeadHelmetHardsuitMime diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml index 73dc6c8c7f7..c9ba05fcff7 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml @@ -38,7 +38,7 @@ parent: ClothingOuterWinterCoat id: ClothingOuterWinterCoatToggleable name: winter coat with hood - noSpawn: True + categories: [ HideSpawnMenu ] components: - type: ToggleableClothing clothingPrototype: ClothingHeadHatHoodWinterDefault @@ -584,6 +584,8 @@ sprite: Clothing/OuterClothing/WinterCoats/corpo_jacket_einstein_engines.rsi - type: Clothing sprite: Clothing/OuterClothing/WinterCoats/corpo_jacket_einstein_engines.rsi + - type: GuideHelp + guides: [ EinsteinEngines ] - type: entity parent: ClothingOuterWinterCoat @@ -595,6 +597,8 @@ sprite: Clothing/OuterClothing/WinterCoats/corpo_jacket_hephestus_industries.rsi - type: Clothing sprite: Clothing/OuterClothing/WinterCoats/corpo_jacket_hephestus_industries.rsi + - type: GuideHelp + guides: [ HephaestusIndustries ] - type: entity parent: ClothingOuterWinterCoat @@ -628,6 +632,8 @@ sprite: Clothing/OuterClothing/WinterCoats/corpo_jacket_bishop_cybernetics.rsi - type: Clothing sprite: Clothing/OuterClothing/WinterCoats/corpo_jacket_bishop_cybernetics.rsi + - type: GuideHelp + guides: [ ZengHuPharmaceuticals ] - type: entity parent: ClothingOuterWinterCoat @@ -672,3 +678,5 @@ sprite: Clothing/OuterClothing/WinterCoats/corpo_jacket_zeng_hu_pharma.rsi - type: Clothing sprite: Clothing/OuterClothing/WinterCoats/corpo_jacket_zeng_hu_pharma.rsi + - type: GuideHelp + guides: [ ZengHuPharmaceuticals ] diff --git a/Resources/Prototypes/Entities/Clothing/Shoes/boots.yml b/Resources/Prototypes/Entities/Clothing/Shoes/boots.yml index fdc49dc0616..069555c836a 100644 --- a/Resources/Prototypes/Entities/Clothing/Shoes/boots.yml +++ b/Resources/Prototypes/Entities/Clothing/Shoes/boots.yml @@ -20,6 +20,19 @@ sprite: Clothing/Shoes/Boots/jackboots.rsi - type: Clothing sprite: Clothing/Shoes/Boots/jackboots.rsi + - type: ClothingSlowOnDamageModifier + modifier: 0.5 + +- type: entity + parent: ClothingShoesMilitaryBase + id: ClothingShoesBootsJackFake + name: jackboots + description: Civilian-grade replica of Nanotrasen Security combat boots. Looks the part but lacks the performance—ideal for the heated situations. + components: + - type: Sprite + sprite: Clothing/Shoes/Boots/jackboots.rsi + - type: Clothing + sprite: Clothing/Shoes/Boots/jackboots.rsi - type: entity parent: ClothingShoesBaseButcherable diff --git a/Resources/Prototypes/Entities/Clothing/Shoes/magboots.yml b/Resources/Prototypes/Entities/Clothing/Shoes/magboots.yml index c4bdefd3a14..13fbc087164 100644 --- a/Resources/Prototypes/Entities/Clothing/Shoes/magboots.yml +++ b/Resources/Prototypes/Entities/Clothing/Shoes/magboots.yml @@ -32,6 +32,14 @@ difficulty: 2 recipes: - ClothingShoesBootsMag + - type: DamageOtherOnHit + damage: + types: + Blunt: 9 + staminaCost: 11.5 + soundHit: + path: /Audio/Weapons/smash.ogg + - type: entity parent: ClothingShoesBootsMag @@ -59,6 +67,11 @@ price: 750 - type: StealTarget stealGroup: ClothingShoesBootsMagAdv + - type: DamageOtherOnHit + damage: + types: + Blunt: 13 + staminaCost: 15 - type: entity parent: ClothingShoesBootsMag @@ -131,12 +144,19 @@ - type: Tag tags: - WhitelistChameleon + - type: DamageOtherOnHit + damage: + types: + Blunt: 20 + staminaCost: 25 + soundHit: + collection: MetalThud - type: entity id: ActionBaseToggleMagboots name: Toggle Magboots description: Toggles the magboots on and off. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction itemIconStyle: NoItem @@ -145,7 +165,7 @@ - type: entity id: ActionToggleMagboots parent: ActionBaseToggleMagboots - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: { sprite: Clothing/Shoes/Boots/magboots.rsi, state: icon } @@ -154,7 +174,7 @@ - type: entity id: ActionToggleMagbootsAdvanced parent: ActionBaseToggleMagboots - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: { sprite: Clothing/Shoes/Boots/magboots-advanced.rsi, state: icon } @@ -163,7 +183,7 @@ - type: entity id: ActionToggleMagbootsSci parent: ActionBaseToggleMagboots - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: { sprite: Clothing/Shoes/Boots/magboots-science.rsi, state: icon } @@ -172,7 +192,7 @@ - type: entity id: ActionToggleMagbootsSyndie parent: ActionBaseToggleMagboots - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: { sprite: Clothing/Shoes/Boots/magboots-syndicate.rsi, state: icon } diff --git a/Resources/Prototypes/Entities/Clothing/Shoes/misc.yml b/Resources/Prototypes/Entities/Clothing/Shoes/misc.yml index d5a695c7c0b..888bcd769cf 100644 --- a/Resources/Prototypes/Entities/Clothing/Shoes/misc.yml +++ b/Resources/Prototypes/Entities/Clothing/Shoes/misc.yml @@ -128,7 +128,7 @@ id: ActionToggleSpeedBoots name: Toggle Speed Boots description: Toggles the speed boots on and off. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction itemIconStyle: NoItem diff --git a/Resources/Prototypes/Entities/Debugging/clicktest.yml b/Resources/Prototypes/Entities/Debugging/clicktest.yml index 4e9caaa14d8..baab1b834f6 100644 --- a/Resources/Prototypes/Entities/Debugging/clicktest.yml +++ b/Resources/Prototypes/Entities/Debugging/clicktest.yml @@ -5,7 +5,7 @@ # These dots' texture detection should not interfere with the actual bounding box being tested. - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] id: ClickTestBase suffix: DEBUG components: diff --git a/Resources/Prototypes/Entities/Debugging/debug_sweps.yml b/Resources/Prototypes/Entities/Debugging/debug_sweps.yml index e3289569a29..c7faff4db2c 100644 --- a/Resources/Prototypes/Entities/Debugging/debug_sweps.yml +++ b/Resources/Prototypes/Entities/Debugging/debug_sweps.yml @@ -60,7 +60,7 @@ id: BulletDebug name: bang, ded bullet parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] suffix: DEBUG components: - type: Tag @@ -129,3 +129,51 @@ damage: types: Blunt: 200 + +- type: entity + name: bang severer + parent: BaseItem + id: MeleeDebugSever + description: sever yer parts a week from now + suffix: DEBUG + components: + - type: Tag + tags: + - Debug + - type: Sprite + sprite: Objects/Weapons/Melee/debug.rsi + state: icon + - type: MeleeWeapon + damage: + types: + Slash: 20000 + clickPartDamageMultiplier: 10 + - type: Item + size: Tiny + sprite: Objects/Weapons/Melee/debug.rsi + +- type: entity + name: bang severer 100dmg + parent: MeleeDebugSever + id: MeleeDebugSever100 + components: + - type: Tag + tags: + - Debug + - type: MeleeWeapon + damage: + types: + Slash: 100 + +- type: entity + name: bang severer 200dmg + parent: MeleeDebugSever + id: MeleeDebugSever200 + components: + - type: Tag + tags: + - Debug + - type: MeleeWeapon + damage: + types: + Slash: 200 diff --git a/Resources/Prototypes/Entities/Debugging/tippy.yml b/Resources/Prototypes/Entities/Debugging/tippy.yml index 292cbed0f1b..7f149c3b5dc 100644 --- a/Resources/Prototypes/Entities/Debugging/tippy.yml +++ b/Resources/Prototypes/Entities/Debugging/tippy.yml @@ -1,6 +1,6 @@ - type: entity id: Tippy - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite netsync: false diff --git a/Resources/Prototypes/Entities/Effects/ambient_sounds.yml b/Resources/Prototypes/Entities/Effects/ambient_sounds.yml index f686779b3ee..81f7bbfc8a3 100644 --- a/Resources/Prototypes/Entities/Effects/ambient_sounds.yml +++ b/Resources/Prototypes/Entities/Effects/ambient_sounds.yml @@ -1,6 +1,6 @@ - type: entity id: AmbientSoundSourceFlies - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: AmbientSound volume: -5 diff --git a/Resources/Prototypes/Entities/Effects/bluespace_flash.yml b/Resources/Prototypes/Entities/Effects/bluespace_flash.yml index b05681def2d..3137bb5af8e 100644 --- a/Resources/Prototypes/Entities/Effects/bluespace_flash.yml +++ b/Resources/Prototypes/Entities/Effects/bluespace_flash.yml @@ -1,6 +1,6 @@ - type: entity id: EffectFlashBluespace - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: PointLight radius: 10.5 @@ -14,7 +14,7 @@ - type: entity id: EffectFlashTelekineticPulse - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: PointLight radius: 10 @@ -28,7 +28,7 @@ - type: entity id: EffectFlashShadeskip - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: PointLight radius: 5 @@ -42,7 +42,7 @@ - type: entity id: EffectFlashShadowkinShadeskip - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: PointLight radius: 5 @@ -56,7 +56,7 @@ - type: entity id: EffectFlashShadowkinDarkSwapOn - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: PointLight radius: 5 @@ -70,7 +70,7 @@ - type: entity id: EffectFlashShadowkinDarkSwapOff - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: PointLight radius: 5 @@ -84,7 +84,7 @@ - type: entity id: EffectPyrokineticFlare - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: /Textures/Interface/Actions/psionics.rsi diff --git a/Resources/Prototypes/Entities/Effects/chemistry_effects.yml b/Resources/Prototypes/Entities/Effects/chemistry_effects.yml index 469bab32782..62cf5c95a0f 100644 --- a/Resources/Prototypes/Entities/Effects/chemistry_effects.yml +++ b/Resources/Prototypes/Entities/Effects/chemistry_effects.yml @@ -36,7 +36,7 @@ parent: BaseFoam id: Smoke name: smoke - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Occluder - type: Sprite @@ -52,7 +52,7 @@ parent: BaseFoam id: Foam name: foam - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite color: "#ffffffcc" @@ -87,7 +87,7 @@ - type: entity id: MetalFoam name: metal foam - noSpawn: true + categories: [ HideSpawnMenu ] parent: Foam components: - type: Sprite @@ -111,7 +111,7 @@ - type: entity id: IronMetalFoam name: iron metal foam - noSpawn: true + categories: [ HideSpawnMenu ] parent: MetalFoam components: - type: SpawnOnDespawn @@ -120,7 +120,7 @@ - type: entity id: AluminiumMetalFoam name: aluminium metal foam - noSpawn: true + categories: [ HideSpawnMenu ] parent: MetalFoam components: - type: SpawnOnDespawn diff --git a/Resources/Prototypes/Entities/Effects/emp_effects.yml b/Resources/Prototypes/Entities/Effects/emp_effects.yml index 890dd24d430..e386f902a5d 100644 --- a/Resources/Prototypes/Entities/Effects/emp_effects.yml +++ b/Resources/Prototypes/Entities/Effects/emp_effects.yml @@ -1,6 +1,6 @@ - type: entity - id: EffectEmpPulse - noSpawn: true + id: EffectEmpPulseNoSound + categories: [ HideSpawnMenu ] components: - type: TimedDespawn lifetime: 0.8 @@ -8,22 +8,28 @@ drawdepth: Effects noRot: true layers: - - shader: unshaded - map: ["enum.EffectLayers.Unshaded"] - sprite: Effects/emp.rsi - state: emp_pulse + - shader: unshaded + map: [ "enum.EffectLayers.Unshaded" ] + sprite: Effects/emp.rsi + state: emp_pulse - type: EffectVisuals - type: Tag tags: - - HideContextMenu + - HideContextMenu + - type: AnimationPlayer + +- type: entity + parent: EffectEmpPulseNoSound + id: EffectEmpPulse + categories: [ HideSpawnMenu ] + components: - type: EmitSoundOnSpawn - sound: + sound: path: /Audio/Effects/Lightning/lightningbolt.ogg - - type: AnimationPlayer - type: entity id: EffectEmpDisabled - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TimedDespawn lifetime: 0.4 @@ -31,12 +37,12 @@ drawdepth: Effects noRot: true layers: - - shader: unshaded - map: ["enum.EffectLayers.Unshaded"] - sprite: Effects/emp.rsi - state: emp_disable + - shader: unshaded + map: [ "enum.EffectLayers.Unshaded" ] + sprite: Effects/emp.rsi + state: emp_disable - type: EffectVisuals - type: Tag tags: - - HideContextMenu + - HideContextMenu - type: AnimationPlayer diff --git a/Resources/Prototypes/Entities/Effects/exclamation.yml b/Resources/Prototypes/Entities/Effects/exclamation.yml index cfe1cbc7f22..d1f3e3ad063 100644 --- a/Resources/Prototypes/Entities/Effects/exclamation.yml +++ b/Resources/Prototypes/Entities/Effects/exclamation.yml @@ -1,7 +1,7 @@ - type: entity id: Exclamation name: exclamation - noSpawn: true + categories: [ HideSpawnMenu ] save: false components: - type: Transform @@ -22,7 +22,7 @@ - type: entity id: WhistleExclamation name: exclamation - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Structures/Storage/closet.rsi diff --git a/Resources/Prototypes/Entities/Effects/explosion_light.yml b/Resources/Prototypes/Entities/Effects/explosion_light.yml index b4b980dd1a5..d5e7452a795 100644 --- a/Resources/Prototypes/Entities/Effects/explosion_light.yml +++ b/Resources/Prototypes/Entities/Effects/explosion_light.yml @@ -1,5 +1,5 @@ - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] id: ExplosionLight name: explosion light components: diff --git a/Resources/Prototypes/Entities/Effects/hearts.yml b/Resources/Prototypes/Entities/Effects/hearts.yml index 042fdb5e8ab..18f72c95d4a 100644 --- a/Resources/Prototypes/Entities/Effects/hearts.yml +++ b/Resources/Prototypes/Entities/Effects/hearts.yml @@ -1,6 +1,6 @@ - type: entity id: EffectHearts - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TimedDespawn lifetime: 0.85 diff --git a/Resources/Prototypes/Entities/Effects/lightning.yml b/Resources/Prototypes/Entities/Effects/lightning.yml index 7afd1c07a0c..f85f28d3b80 100644 --- a/Resources/Prototypes/Entities/Effects/lightning.yml +++ b/Resources/Prototypes/Entities/Effects/lightning.yml @@ -33,7 +33,7 @@ name: lightning id: Lightning parent: BaseLightning - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Lightning canArc: true @@ -42,7 +42,7 @@ name: spooky lightning id: LightningRevenant parent: BaseLightning - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: /Textures/Effects/lightning.rsi @@ -66,7 +66,7 @@ name: charged lightning id: ChargedLightning parent: BaseLightning - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: /Textures/Effects/lightning.rsi @@ -85,7 +85,7 @@ name: lightning id: Spark parent: BaseLightning - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: /Textures/Effects/lightning.rsi @@ -112,7 +112,7 @@ name: supercharged lightning id: SuperchargedLightning parent: ChargedLightning - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: /Textures/Effects/lightning.rsi @@ -138,7 +138,7 @@ name: hypercharged lightning id: HyperchargedLightning parent: ChargedLightning - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: /Textures/Effects/lightning.rsi diff --git a/Resources/Prototypes/Entities/Effects/mobspawn.yml b/Resources/Prototypes/Entities/Effects/mobspawn.yml index 4529497021e..695f8a9e715 100644 --- a/Resources/Prototypes/Entities/Effects/mobspawn.yml +++ b/Resources/Prototypes/Entities/Effects/mobspawn.yml @@ -61,7 +61,7 @@ - type: entity id: EffectAnomalyFloraBulb - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TimedDespawn lifetime: 0.4 diff --git a/Resources/Prototypes/Entities/Effects/radiation.yml b/Resources/Prototypes/Entities/Effects/radiation.yml index 143ffa8559a..82828582cff 100644 --- a/Resources/Prototypes/Entities/Effects/radiation.yml +++ b/Resources/Prototypes/Entities/Effects/radiation.yml @@ -1,7 +1,7 @@ - type: entity name: shimmering anomaly id: RadiationPulse - noSpawn: true + categories: [ HideSpawnMenu ] description: Looking at this anomaly makes you feel strange, like something is pushing at your eyes. components: - type: RadiationSource diff --git a/Resources/Prototypes/Entities/Effects/rcd.yml b/Resources/Prototypes/Entities/Effects/rcd.yml index 902429818e5..a663add9ca9 100644 --- a/Resources/Prototypes/Entities/Effects/rcd.yml +++ b/Resources/Prototypes/Entities/Effects/rcd.yml @@ -1,7 +1,7 @@ - type: entity id: EffectRCDBase abstract: true - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Transform anchored: True @@ -19,7 +19,7 @@ - type: entity parent: EffectRCDBase id: EffectRCDDeconstructPreview - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite state: deconstructPreview @@ -27,7 +27,7 @@ - type: entity parent: EffectRCDBase id: EffectRCDConstruct0 - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite state: construct0 @@ -37,7 +37,7 @@ - type: entity parent: EffectRCDBase id: EffectRCDConstruct1 - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite state: construct1 @@ -47,7 +47,7 @@ - type: entity parent: EffectRCDBase id: EffectRCDConstruct2 - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite state: construct2 @@ -57,7 +57,7 @@ - type: entity parent: EffectRCDBase id: EffectRCDConstruct3 - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite state: construct3 @@ -67,7 +67,7 @@ - type: entity parent: EffectRCDBase id: EffectRCDConstruct4 - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite state: construct4 @@ -77,7 +77,7 @@ - type: entity parent: EffectRCDBase id: EffectRCDDeconstruct2 - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite state: deconstruct2 @@ -87,7 +87,7 @@ - type: entity parent: EffectRCDBase id: EffectRCDDeconstruct4 - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite state: deconstruct4 @@ -97,7 +97,7 @@ - type: entity parent: EffectRCDBase id: EffectRCDDeconstruct6 - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite state: deconstruct6 @@ -107,7 +107,7 @@ - type: entity parent: EffectRCDBase id: EffectRCDDeconstruct8 - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite state: deconstruct8 diff --git a/Resources/Prototypes/Entities/Effects/shuttle.yml b/Resources/Prototypes/Entities/Effects/shuttle.yml new file mode 100644 index 00000000000..72cc04cba11 --- /dev/null +++ b/Resources/Prototypes/Entities/Effects/shuttle.yml @@ -0,0 +1,12 @@ +- type: entity + id: FtlVisualizerEntity + categories: [ HideSpawnMenu ] + description: Visualizer for shuttles arriving. You shouldn't see this! + components: + - type: FtlVisualizer + sprite: + sprite: /Textures/Effects/medi_holo.rsi + state: medi_holo + - type: Tag + tags: + - HideContextMenu diff --git a/Resources/Prototypes/Entities/Effects/sparks.yml b/Resources/Prototypes/Entities/Effects/sparks.yml index d86522a9711..c12e3b0eca3 100644 --- a/Resources/Prototypes/Entities/Effects/sparks.yml +++ b/Resources/Prototypes/Entities/Effects/sparks.yml @@ -1,6 +1,6 @@ - type: entity id: EffectSparks - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TimedDespawn lifetime: 0.5 @@ -20,7 +20,7 @@ - type: entity id: EffectTeslaSparks - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TimedDespawn lifetime: 0.5 diff --git a/Resources/Prototypes/Entities/Effects/weapon_arc.yml b/Resources/Prototypes/Entities/Effects/weapon_arc.yml index 25cd6e84ff2..0f3fab0e878 100644 --- a/Resources/Prototypes/Entities/Effects/weapon_arc.yml +++ b/Resources/Prototypes/Entities/Effects/weapon_arc.yml @@ -1,7 +1,7 @@ - type: entity # Just fades out with no movement animation id: WeaponArcStatic - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TimedDespawn lifetime: 2.0 @@ -18,7 +18,7 @@ - type: entity # Plays the state animation then disappears with no fade or swing id: WeaponArcAnimated - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Effects/arcs.rsi @@ -34,7 +34,7 @@ - type: entity id: WeaponArcThrust parent: WeaponArcStatic - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: WeaponArcVisuals animation: Thrust @@ -42,7 +42,7 @@ - type: entity id: WeaponArcSlash parent: WeaponArcStatic - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: WeaponArcVisuals animation: Slash @@ -51,7 +51,7 @@ - type: entity id: WeaponArcBite parent: WeaponArcStatic - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: WeaponArcVisuals fadeOut: false @@ -63,7 +63,7 @@ - type: entity id: WeaponArcClaw parent: WeaponArcStatic - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: WeaponArcVisuals fadeOut: false @@ -75,7 +75,7 @@ - type: entity id: WeaponArcDisarm parent: WeaponArcAnimated - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: WeaponArcVisuals fadeOut: false @@ -87,7 +87,7 @@ - type: entity id: WeaponArcFist parent: WeaponArcStatic - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite state: fist @@ -95,7 +95,7 @@ - type: entity id: WeaponArcPunch parent: WeaponArcStatic - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: WeaponArcVisuals fadeOut: false @@ -107,7 +107,7 @@ - type: entity id: WeaponArcKick parent: WeaponArcStatic - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: WeaponArcVisuals fadeOut: false @@ -119,7 +119,7 @@ - type: entity id: WeaponArcSmash parent: WeaponArcStatic - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: WeaponArcVisuals fadeOut: false diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/crates.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/crates.yml index ae7e5bcf762..883182aae8d 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/Random/crates.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/crates.yml @@ -44,6 +44,7 @@ - CrateMaterialPlastic - CrateMaterialWood - CrateMaterialPlasteel + - CrateFunSprayPaints - CrateFunArtSupplies - CrateEngineeringCableLV - CrateEngineeringCableMV diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml index 4c820998ea2..90774a1185e 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/maintenance.yml @@ -1,137 +1,475 @@ +- type: entityTable + id: MaintFluffTable + table: !type:GroupSelector + children: + # Common Group + - !type:GroupSelector + weight: 75 + children: + # Smoker's specialty + - !type:AllSelector + children: + - !type:EntSelector + id: Lighter + - !type:EntSelector + id: CigCartonBlue + # Gar glasses + - !type:GroupSelector + children: + - !type:EntSelector + id: ClothingEyesGlassesGar + - !type:EntSelector + id: ClothingEyesGlassesGarOrange + - !type:EntSelector + id: ClothingEyesGlassesGarGiga + - !type:EntSelector + id: ClothingHeadHatCake + - !type:EntSelector + id: ClothingHeadHatSkub + - !type:EntSelector + id: ClothingHeadHatCone + - !type:EntSelector + id: ClothingNeckBling + - !type:EntSelector + id: ClothingHeadHelmetCosmonaut + - !type:EntSelector + id: ClothingHeadHelmetBasic + - !type:EntSelector + id: ClothingShoeSlippersDuck + - !type:EntSelector + id: ClothingUnderSocksBee + - !type:EntSelector + id: ClothingUnderSocksCoder + - !type:EntSelector + id: ClothingHeadHatSquid + # Animal Masks + - !type:GroupSelector + children: + - !type:EntSelector + id: ClothingMaskRat + - !type:EntSelector + id: ClothingMaskFox + - !type:EntSelector + id: ClothingMaskBee + - !type:EntSelector + id: ClothingMaskBear + - !type:EntSelector + id: ClothingMaskRaven + - !type:EntSelector + id: ClothingMaskJackal + - !type:EntSelector + id: ClothingMaskBat + - !type:EntSelector + id: ClothingBeltSuspenders + - !type:EntSelector + id: ClothingEyesEyepatch + - !type:EntSelector + id: ClothingEyesGlasses + - !type:EntSelector + id: ClothingHandsGlovesLatex + - !type:EntSelector + id: ClothingHandsGlovesFingerless + - !type:EntSelector + id: ClothingHandsGlovesColorBlack + - !type:EntSelector + id: ClothingHeadHatBeret + - !type:EntSelector + id: ClothingHeadHatBowlerHat + - !type:EntSelector + id: ClothingHeadHatFedoraBrown + weight: 0.5 + - !type:EntSelector + id: ClothingHeadHatFedoraGrey + weight: 0.5 + - !type:EntSelector + id: ClothingHeadHatFez + - !type:EntSelector + id: ClothingHeadHatPaper + - !type:EntSelector + id: ClothingHeadHatPirate + - !type:EntSelector + id: ClothingMaskSterile + - !type:EntSelector + id: ClothingNeckHeadphones + - !type:EntSelector + id: ClothingNeckTieRed + - !type:EntSelector + id: ClothingOuterCoatGentle + - !type:AllSelector + children: + - !type:EntSelector + id: ClothingOuterCoatJensen + - !type:EntSelector + id: ClothingEyesGlassesJensen + - !type:EntSelector + id: ClothingOuterCoatLab + - !type:AllSelector + children: + - !type:EntSelector + id: ClothingOuterCoatPirate + - !type:EntSelector + id: ClothingHeadHatPirateTricord + - !type:EntSelector + id: ClothingHeadHatTophat + - !type:EntSelector + id: ClothingOuterHoodieBlack + weight: 0.5 + - !type:EntSelector + id: ClothingOuterHoodieGrey + weight: 0.5 + - !type:GroupSelector + children: + - !type:EntSelector + id: ClothingOuterFlannelRed + - !type:EntSelector + id: ClothingOuterFlannelBlue + - !type:EntSelector + id: ClothingOuterFlannelGreen + - !type:EntSelector + id: ClothingOuterVestHazard + - !type:EntSelector + id: ClothingShoesBootsJack + - !type:EntSelector + id: ClothingShoesBootsJackFake + - !type:EntSelector + id: ClothingShoesHighheelBoots + - !type:EntSelector + id: ClothingShoesBootsLaceup + - !type:EntSelector + id: ClothingShoesLeather + - !type:EntSelector + id: ClothingShoesBootsSalvage + - !type:EntSelector + id: ClothingShoesBootsWork + - !type:EntSelector + id: ClothingShoesTourist + - !type:EntSelector + id: ClothingUniformJumpsuitLoungewear + - !type:EntSelector + id: ClothingHeadHatCowboyRed + # Uncommon Group + - !type:GroupSelector + weight: 23 + children: + - !type:EntSelector + id: ClothingNeckCloakHerald + - !type:EntSelector + id: ClothingHeadHelmetTemplar + # Cloaks + - !type:GroupSelector + children: + - !type:EntSelector + id: ClothingNeckCloakTrans + - !type:EntSelector + id: ClothingNeckCloakAdmin + - !type:EntSelector + id: ClothingNeckCloakMoth + - !type:EntSelector + id: ClothingNeckCloakVoid + - !type:EntSelector + id: ClothingNeckCloakGoliathCloak + - !type:EntSelector + id: ClothingNeckCloakAce + - !type:EntSelector + id: ClothingNeckCloakAro + - !type:EntSelector + id: ClothingNeckCloakBi + - !type:EntSelector + id: ClothingNeckCloakIntersex + - !type:EntSelector + id: ClothingNeckCloakLesbian + - !type:EntSelector + id: ClothingNeckCloakGay + - !type:EntSelector + id: ClothingNeckCloakEnby + - !type:EntSelector + id: ClothingNeckCloakPan + - !type:EntSelector + id: ToySkeleton + - !type:EntSelector + id: Basketball + - !type:EntSelector + id: Football + - !type:EntSelector + id: BalloonNT + - !type:EntSelector + id: BalloonCorgi + - !type:EntSelector + id: MysteryFigureBox + # Cult + - !type:AllSelector + children: + - !type:EntSelector + id: ClothingOuterRobesCult + - !type:EntSelector + id: ClothingShoesCult + - !type:EntSelector + id: ClothingHandsGlovesMercFingerless + - !type:EntSelector + id: ClothingHandsGlovesNitrile + - !type:EntSelector + id: ClothingHandsGlovesPowerglove + - !type:EntSelector + id: ClothingHeadHatAnimalHeadslime + - !type:EntSelector + id: ClothingHeadHatBeretMerc + - !type:EntSelector + id: ClothingHeadHatOutlawHat + - !type:EntSelector + id: ClothingHeadHatUshanka + - !type:EntSelector + id: ClothingHeadHatBunny + - !type:EntSelector + id: ClothingMaskNeckGaiter + - !type:EntSelector + id: ClothingNeckScarfStripedZebra + - !type:EntSelector + id: ClothingOuterGhostSheet + - !type:EntSelector + id: ClothingUniformJumpsuitAncient + - !type:EntSelector + id: ClothingUniformJumpsuitPirate + - !type:EntSelector + id: ClothingShoesBootsCowboyFancy + - !type:EntSelector + id: ClothingHeadHatCowboyBountyHunter + # Pins + - !type:GroupSelector + children: + - !type:EntSelector + id: ClothingNeckLGBTPin + - !type:EntSelector + id: ClothingNeckAromanticPin + - !type:EntSelector + id: ClothingNeckAsexualPin + - !type:EntSelector + id: ClothingNeckBisexualPin + - !type:EntSelector + id: ClothingNeckIntersexPin + - !type:EntSelector + id: ClothingNeckLesbianPin + - !type:EntSelector + id: ClothingNeckNonBinaryPin + - !type:EntSelector + id: ClothingNeckPansexualPin + - !type:EntSelector + id: ClothingNeckTransPin + - !type:EntSelector + id: ClothingNeckAutismPin + - !type:EntSelector + id: ClothingNeckGoldAutismPin + # Rare Group + - !type:GroupSelector + weight: 2 + children: + - !type:EntSelector + id: Skub + - !type:EntSelector + id: PonderingOrb + - !type:EntSelector + id: CluwneHorn + - !type:EntSelector + id: ClothingShoesSkates + - !type:EntSelector + id: DrinkMugDog + - !type:EntSelector + id: CigarGold + - !type:EntSelector + id: ClothingUniformJumpsuitFamilyGuy + - type: entity name: Maint Loot Spawner suffix: Fluff+Clothes id: MaintenanceFluffSpawner parent: MarkerBase components: - - type: Sprite - layers: - - state: red - - sprite: Clothing/Eyes/Glasses/gar.rsi - state: icon-super - - type: RandomSpawner - rarePrototypes: - - ClothingUniformJumpsuitFamilyGuy - - CigarGold - - ClothingNeckCloakHerald - - ClothingHeadHelmetTemplar - - ClothingNeckCloakTrans - - ClothingNeckCloakAdmin - - ClothingNeckCloakBoat # DeltaV - adds boat cloak to maints spawner. Makes more sense than admin cloak o.o - - ClothingNeckCloakMoth - - ClothingNeckCloakVoid - - ClothingNeckCloakGoliathCloak - - ClothingNeckCloakAce - - ClothingNeckCloakAro - - ClothingNeckCloakBi - - ClothingNeckCloakIntersex - - ClothingNeckCloakLesbian - - ClothingNeckCloakGay - - ClothingNeckCloakEnby - - ClothingNeckCloakPan - - ToySkeleton - - Basketball - - Football - - BalloonCorgi - - BalloonNT - - PonderingOrb - - Skub - - DrinkMugDog - - ClothingNeckLGBTPin - - ClothingNeckAromanticPin - - ClothingNeckAsexualPin - - ClothingNeckBisexualPin - - ClothingNeckIntersexPin - - ClothingNeckLesbianPin - - ClothingNeckNonBinaryPin - - ClothingNeckPansexualPin - - ClothingNeckTransPin - - CluwneHorn - - ClothingMaskRat - - MysteryFigureBox - - ClothingHandsGlovesMercFingerless - - ClothingHandsGlovesNitrile - - ClothingHandsGlovesPowerglove - - ClothingHeadHatAnimalHeadslime - - ClothingHeadHatBeretMerc - - ClothingHeadHatOutlawHat - - ClothingHeadHatUshanka - - ClothingHeadHatBunny - - ClothingMaskNeckGaiter - - ClothingNeckScarfStripedZebra - - ClothingOuterRobesCult - - ClothingOuterGhostSheet - - ClothingShoesCult - - ClothingUniformJumpsuitAncient - - ClothingUniformJumpsuitPirate - - ClothingShoesBootsCowboyFancy - - ClothingHeadHatCowboyBountyHunter - - ClothingNeckAutismPin - - ClothingNeckGoldAutismPin - rareChance: 0.01 - prototypes: - - Lighter - - CigCartonBlue - - ClothingEyesGlassesGarGiga - - ClothingEyesGlassesGarOrange - - ClothingEyesGlassesGar - - ClothingHeadHatCake - - ClothingHeadHatSkub - - ClothingHeadHatCone - - ClothingNeckBling - - ClothingHeadHelmetCosmonaut - - ClothingHeadHelmetBasic - - ClothingShoeSlippersDuck - - ClothingUnderSocksBee - - ClothingUnderSocksCoder - - ClothingHeadHatSquid - - ClothingMaskFox - - ClothingMaskBee - - ClothingMaskBear - - ClothingMaskRaven - - ClothingMaskJackal - - ClothingMaskBat - - ClothingBeltSuspenders - - ClothingEyesEyepatch - - ClothingEyesGlasses - - ClothingHandsGlovesLatex - - ClothingHandsGlovesFingerless - - ClothingHandsGlovesColorBlack - - ClothingHeadHatBeret - - ClothingHeadHatBowlerHat - - ClothingHeadHatFedoraBrown - - ClothingHeadHatFedoraGrey - - ClothingHeadHatFez - - ClothingHeadHatPaper - - ClothingHeadHatPirate - - ClothingHeadHatPirateTricord - - ClothingHeadHatTophat - - ClothingMaskSterile - - ClothingNeckHeadphones - - ClothingNeckTieRed - - ClothingOuterCoatGentle - - ClothingOuterCoatJensen - - ClothingEyesGlassesJensen - - ClothingOuterCoatLab - - ClothingOuterCoatPirate - - ClothingOuterHoodieBlack - - ClothingOuterHoodieGrey - - ClothingOuterFlannelRed - - ClothingOuterFlannelBlue - - ClothingOuterFlannelGreen - - ClothingOuterVestHazard - - ClothingShoesBootsJack - - ClothingShoesHighheelBoots - - ClothingShoesBootsLaceup - - ClothingShoesLeather - - ClothingShoesBootsSalvage - - ClothingShoesBootsWork - - ClothingShoesTourist - - ClothingUniformJumpsuitLoungewear - - ClothingHeadHatCowboyRed - chance: 0.6 - offset: 0.0 + - type: Sprite + layers: + - state: red + - sprite: Clothing/Eyes/Glasses/gar.rsi + state: icon-super + - type: EntityTableSpawner + table: !type:NestedSelector + tableId: MaintFluffTable + prob: 0.6 +- type: entityTable + id: MaintToolsTable + table: !type:GroupSelector + children: + # Common Group + - !type:GroupSelector + weight: 75 + children: + - !type:EntSelector + id: FlashlightLantern + - !type:EntSelector + id: ToolboxEmergencyFilled + - !type:GroupSelector + children: + - !type:EntSelector + id: OxygenTankFilled + - !type:EntSelector + id: DoubleEmergencyOxygenTankFilled + - !type:GroupSelector + children: + - !type:EntSelector + id: NitrogenTankFilled + - !type:EntSelector + id: DoubleEmergencyNitrogenTankFilled + - !type:EntSelector + id: EmergencyFunnyOxygenTankFilled + weight: 0.5 + - !type:GroupSelector + weight: 3 + children: + - !type:EntSelector + id: SheetSteel10 + - !type:EntSelector + id: SheetPlastic10 + - !type:EntSelector + id: SheetGlass10 + - !type:EntSelector + id: PartRodMetal10 + - !type:EntSelector + id: MaterialCardboard10 + weight: 0.25 + - !type:EntSelector + id: MaterialCloth10 + weight: 0.25 + - !type:EntSelector + id: MaterialWoodPlank10 + weight: 0.25 + - !type:EntSelector + id: Plunger + - !type:EntSelector + id: PowerCellMedium + - !type:EntSelector + id: PowerCellSmall + - !type:EntSelector + id: Soap + - !type:EntSelector + id: Wirecutter + - !type:EntSelector + id: Screwdriver + - !type:EntSelector + id: Wrench + - !type:EntSelector + id: Crowbar + - !type:EntSelector + id: Multitool + - !type:EntSelector + id: Shovel + - !type:EntSelector + id: Welder + - !type:EntSelector + id: GasAnalyzer + - !type:EntSelector + id: SprayPainter + - !type:EntSelector + id: Flare + - !type:EntSelector + id: Beaker + - !type:EntSelector + id: ClothingMaskGas + - !type:EntSelector + id: ClothingMaskBreath + - !type:EntSelector + id: DoorElectronics + - !type:EntSelector + id: APCElectronics + - !type:EntSelector + id: InflatableWallStack5 + - !type:EntSelector + id: CableHVStack10 + - !type:EntSelector + id: CableMVStack10 + - !type:EntSelector + id: CableApcStack10 + - !type:GroupSelector + children: + - !type:EntSelector + id: ClothingHandsGlovesColorYellowBudget + weight: 5 + - !type:EntSelector + id: ClothingHandsGlovesFingerlessInsulated + weight: 0.5 + - !type:EntSelector + id: ClothingHandsGlovesColorYellow + weight: 1 + # Uncommon Group + - !type:GroupSelector + weight: 23 + children: + - !type:EntSelector + id: ClothingHeadHatCone + weight: 2 + - !type:EntSelector + id: BookRandomStory + weight: 0.25 + - !type:EntSelector + id: ToolboxElectricalFilled + - !type:EntSelector + id: ToolboxMechanicalFilled + - !type:EntSelector + id: ClothingBeltUtility + - !type:EntSelector + id: ToolboxArtisticFilled + - !type:EntSelector + id: GeigerCounter + - !type:EntSelector + id: trayScanner + - !type:EntSelector + id: HandheldGPSBasic + - !type:EntSelector + id: HandLabeler + - !type:EntSelector + id: GlowstickBase + - !type:EntSelector + id: Bucket + - !type:EntSelector + id: RadioHandheld + - !type:EntSelector + id: AppraisalTool + - !type:EntSelector + id: ModularReceiver + - !type:EntSelector + id: WeaponFlareGun + - !type:EntSelector + id: BarberScissors + - !type:GroupSelector + children: + - !type:EntSelector + id: DrinkSpaceGlue + - !type:EntSelector + id: DrinkSpaceLube + # Rare Group + - !type:GroupSelector + weight: 2 + children: + - !type:EntSelector + id: LanternFlash + - !type:EntSelector + id: PowerCellHigh + - !type:EntSelector + id: NetProbeCartridge + - !type:EntSelector + id: WelderIndustrial + - !type:EntSelector + id: SheetPlasteel10 + - !type:EntSelector + id: ClothingMaskGasExplorer + - !type:EntSelector + id: TechnologyDisk + - !type:EntSelector + id: ResearchDisk5000 + - !type:EntSelector + id: PetCarrier + - !type:EntSelector + id: DrinkMopwataBottleRandom + - !type:EntSelector + id: LidSalami + weight: 0.05 - type: entity name: Maint Loot Spawner @@ -139,75 +477,80 @@ id: MaintenanceToolSpawner parent: MarkerBase components: - - type: Sprite - layers: - - state: red - - sprite: Objects/Power/power_cells.rsi - state: high - - type: RandomSpawner - rarePrototypes: - - LanternFlash - - PowerCellHigh - - NetProbeCartridge - - WelderIndustrial - - SheetPlasteel10 - - ClothingMaskGasExplorer - rareChance: 0.08 - prototypes: - - FlashlightLantern - - OxygenTankFilled - - DoubleEmergencyOxygenTankFilled - - ToolboxEmergencyFilled - - ToolboxArtisticFilled - - NitrogenTankFilled - - DoubleEmergencyNitrogenTankFilled - - EmergencyFunnyOxygenTankFilled - - ToolboxElectricalFilled - - ToolboxMechanicalFilled - - ClothingBeltUtility - - Shovel - - Welder - - WeaponFlareGun - - SheetSteel10 - - SheetPlastic10 - - SheetGlass10 - - PartRodMetal10 - - MaterialCardboard10 - - MaterialCloth10 - - MaterialWoodPlank10 - - ResearchDisk - - Plunger - - TechnologyDisk - - PowerCellMedium - - PowerCellSmall - - Wirecutter - - Screwdriver - - Wrench - - Crowbar - - NetworkConfigurator - - trayScanner - - GasAnalyzer - - SprayPainter - - AppraisalTool - - Flare - - HandheldGPSBasic - - HandLabeler - - GlowstickBase - - Bucket - - RadioHandheld - - GeigerCounter - - Beaker - - ClothingMaskGas - - ClothingMaskBreath - - DoorElectronics - - APCElectronics - - InflatableWallStack5 - - CableHVStack10 - - CableMVStack10 - - CableApcStack10 - - PetCarrier - chance: 0.6 - offset: 0.0 + - type: Sprite + layers: + - state: red + - sprite: Objects/Power/power_cells.rsi + state: high + - type: EntityTableSpawner + table: !type:NestedSelector + tableId: MaintToolsTable + prob: 0.6 + +- type: entityTable + id: MaintWeaponTable + table: !type:GroupSelector + children: + # Common Group + - !type:GroupSelector + weight: 95 + children: + - !type:EntSelector + id: Machete + - !type:EntSelector + id: BaseBallBat + - !type:EntSelector + id: CombatKnife + - !type:EntSelector + id: Spear + - !type:EntSelector + id: RifleStock + - !type:EntSelector + id: ModularReceiver + - !type:EntSelector + id: HydroponicsToolScythe + # Rare Group + - !type:GroupSelector + weight: 5 + children: + - !type:EntSelector + id: Lighter + - !type:EntSelector + id: Matchbox + - !type:EntSelector + id: ClothingEyesBlindfold + - !type:EntSelector + id: ClothingMaskMuzzle + - !type:EntSelector + id: ClothingMaskGasSecurity + - !type:EntSelector + id: ShardGlass + weight: 2 + - !type:EntSelector + id: Syringe + - !type:EntSelector + id: Mousetrap + - !type:GroupSelector + weight: 2 + children: + - !type:EntSelector + id: Brutepack1 + - !type:EntSelector + id: Ointment1 + - !type:EntSelector + id: Gauze1 + - !type:EntSelector + id: Bola + - !type:EntSelector + id: SurvivalKnife + - !type:EntSelector + id: ScalpelShiv + - !type:EntSelector + id: Shiv + - !type:EntSelector + id: SawImprov + - !type:EntSelector + id: HydroponicsToolMiniHoe - type: entity name: Maint Loot Spawner @@ -215,51 +558,15 @@ id: MaintenanceWeaponSpawner parent: MarkerBase components: - - type: Sprite - layers: - - state: red - - sprite: Objects/Weapons/Melee/machete.rsi - state: icon - - type: RandomSpawner - rarePrototypes: - - Machete - - BaseBallBat - - CombatKnife - - Spear - - RifleStock - - ModularReceiver - - HydroponicsToolScythe - rareChance: 0.05 - prototypes: - - FlashlightLantern - - OxygenTankFilled - - DoubleEmergencyOxygenTankFilled - - NitrogenTankFilled - - DoubleEmergencyNitrogenTankFilled - - Lighter - - Matchbox - - Crowbar - - Shovel - - Welder - - WeaponFlareGun - - LidSalami - - ClothingEyesBlindfold - - ClothingMaskMuzzle - - ClothingMaskGasSecurity - - ShardGlass - - Syringe - - Mousetrap - - Brutepack1 - - Ointment1 - - Gauze1 - - Bola - - SurvivalKnife - - ScalpelShiv - - Shiv - - SawImprov - - HydroponicsToolMiniHoe - chance: 0.6 - offset: 0.0 + - type: Sprite + layers: + - state: red + - sprite: Objects/Weapons/Melee/machete.rsi + state: icon + - type: EntityTableSpawner + table: !type:NestedSelector + tableId: MaintWeaponTable + prob: 0.6 - type: entity name: Maint Loot Spawner diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/toy.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/toy.yml index 96b5f7aa8c5..62c9e48ca65 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/Random/toy.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/toy.yml @@ -69,6 +69,8 @@ - PlushieTrystan - PlushieSlips - PlushieJester + - PlushieHarpy + - PlushieMort chance: 0.5 offset: 0.2 diff --git a/Resources/Prototypes/Entities/Markers/Spawners/corpses.yml b/Resources/Prototypes/Entities/Markers/Spawners/corpses.yml index 3d337b39765..95064428dde 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/corpses.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/corpses.yml @@ -80,7 +80,7 @@ name: Random Security Corpse Spawner id: RandomSecurityCorpseSpawner parent: SalvageHumanCorpseSpawner - noSpawn: true # DeltaV - Prevent security corpses from being mapped in + categories: [ HideSpawnMenu ] # DeltaV - Prevent security corpses from being mapped in components: - type: Sprite layers: diff --git a/Resources/Prototypes/Entities/Markers/Spawners/ghost_roles.yml b/Resources/Prototypes/Entities/Markers/Spawners/ghost_roles.yml index 4ade9a9fd45..3911a686266 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/ghost_roles.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/ghost_roles.yml @@ -62,7 +62,7 @@ state: narsian - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] id: SpawnPointGhostNukeOperative name: ghost role spawn point suffix: nukeops @@ -82,7 +82,7 @@ state: radiation - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] id: SpawnPointLoneNukeOperative name: ghost role spawn point suffix: loneops @@ -111,7 +111,7 @@ - type: entity parent: MarkerBase id: SpawnPointGhostDragon - noSpawn: true + categories: [ HideSpawnMenu ] name: ghost role spawn point suffix: dragon components: diff --git a/Resources/Prototypes/Entities/Markers/clientsideclone.yml b/Resources/Prototypes/Entities/Markers/clientsideclone.yml index 56875c44142..39b9ee48fdb 100644 --- a/Resources/Prototypes/Entities/Markers/clientsideclone.yml +++ b/Resources/Prototypes/Entities/Markers/clientsideclone.yml @@ -1,7 +1,7 @@ - type: entity name: clientsideclone id: clientsideclone - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite - type: AnimationPlayer diff --git a/Resources/Prototypes/Entities/Markers/construction_ghost.yml b/Resources/Prototypes/Entities/Markers/construction_ghost.yml index be9cc915d91..04a8a095023 100644 --- a/Resources/Prototypes/Entities/Markers/construction_ghost.yml +++ b/Resources/Prototypes/Entities/Markers/construction_ghost.yml @@ -1,7 +1,7 @@ - type: entity name: construction ghost id: constructionghost - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite color: '#3F38' diff --git a/Resources/Prototypes/Entities/Markers/drag_shadow.yml b/Resources/Prototypes/Entities/Markers/drag_shadow.yml index a1badb60bc5..19ffb6c36a6 100644 --- a/Resources/Prototypes/Entities/Markers/drag_shadow.yml +++ b/Resources/Prototypes/Entities/Markers/drag_shadow.yml @@ -1,7 +1,7 @@ - type: entity name: drag shadow id: dragshadow - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Tag tags: diff --git a/Resources/Prototypes/Entities/Markers/hover_entity.yml b/Resources/Prototypes/Entities/Markers/hover_entity.yml index 8421a9d8c9e..2e8e1edb296 100644 --- a/Resources/Prototypes/Entities/Markers/hover_entity.yml +++ b/Resources/Prototypes/Entities/Markers/hover_entity.yml @@ -1,7 +1,7 @@ - type: entity name: hover entity id: hoverentity - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite layers: diff --git a/Resources/Prototypes/Entities/Mobs/Corpses/corpses.yml b/Resources/Prototypes/Entities/Mobs/Corpses/corpses.yml index 89ab3376c6a..848865cf3f1 100644 --- a/Resources/Prototypes/Entities/Mobs/Corpses/corpses.yml +++ b/Resources/Prototypes/Entities/Mobs/Corpses/corpses.yml @@ -68,7 +68,7 @@ parent: SalvageHumanCorpse id: MobRandomSecurityCorpse suffix: Dead, Security - noSpawn: true # DeltaV - Prevent security corpses from being mapped in + categories: [ HideSpawnMenu ] # DeltaV - Prevent security corpses from being mapped in components: - type: Loadout prototypes: diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/arachnid.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/arachnid.yml index 395a7368baa..aa8f8c9ef63 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/arachnid.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/arachnid.yml @@ -122,7 +122,7 @@ id: ArachnidTorsoStripes bodyPart: Chest markingCategory: Chest - speciesRestriction: [Arachnid] + speciesRestriction: [Arachnid, Arachne] sprites: - sprite: Mobs/Customization/Arachnid/chest.rsi state: stripes @@ -135,7 +135,7 @@ id: ArachnidTorsoSlashes bodyPart: Chest markingCategory: Chest - speciesRestriction: [Arachnid] + speciesRestriction: [Arachnid, Arachne] sprites: - sprite: Mobs/Customization/Arachnid/chest.rsi state: slashes @@ -148,7 +148,7 @@ id: ArachnidTorsoX bodyPart: Chest markingCategory: Chest - speciesRestriction: [Arachnid] + speciesRestriction: [Arachnid, Arachne] sprites: - sprite: Mobs/Customization/Arachnid/chest.rsi state: x @@ -161,7 +161,7 @@ id: ArachnidTorsoCross bodyPart: Chest markingCategory: Chest - speciesRestriction: [Arachnid] + speciesRestriction: [Arachnid, Arachne] sprites: - sprite: Mobs/Customization/Arachnid/chest.rsi state: cross @@ -174,7 +174,7 @@ id: ArachnidTorsoHeart bodyPart: Chest markingCategory: Chest - speciesRestriction: [Arachnid] + speciesRestriction: [Arachnid, Arachne] sprites: - sprite: Mobs/Customization/Arachnid/chest.rsi state: heart @@ -187,7 +187,7 @@ id: ArachnidTorsoHourglass bodyPart: Chest markingCategory: Chest - speciesRestriction: [Arachnid] + speciesRestriction: [Arachnid, Arachne] sprites: - sprite: Mobs/Customization/Arachnid/chest.rsi state: hourglass @@ -200,7 +200,7 @@ id: ArachnidTorsoNailAndHammer bodyPart: Chest markingCategory: Chest - speciesRestriction: [Arachnid] + speciesRestriction: [Arachnid, Arachne] sprites: - sprite: Mobs/Customization/Arachnid/chest.rsi state: nail-and-hammer @@ -213,7 +213,7 @@ id: ArachnidTorsoStar bodyPart: Chest markingCategory: Chest - speciesRestriction: [Arachnid] + speciesRestriction: [Arachnid, Arachne] sprites: - sprite: Mobs/Customization/Arachnid/chest.rsi state: star @@ -226,7 +226,7 @@ id: ArachnidTorsoArrows bodyPart: Chest markingCategory: Chest - speciesRestriction: [Arachnid] + speciesRestriction: [Arachnid, Arachne] sprites: - sprite: Mobs/Customization/Arachnid/chest.rsi state: arrows @@ -239,7 +239,7 @@ id: ArachnidTorsoCore bodyPart: Chest markingCategory: Chest - speciesRestriction: [Arachnid] + speciesRestriction: [Arachnid, Arachne] sprites: - sprite: Mobs/Customization/Arachnid/chest.rsi state: core @@ -252,7 +252,7 @@ id: ArachnidTorsoFiddleback bodyPart: Chest markingCategory: Chest - speciesRestriction: [Arachnid] + speciesRestriction: [Arachnid, Arachne] sprites: - sprite: Mobs/Customization/Arachnid/chest.rsi state: fiddleback @@ -265,7 +265,7 @@ id: ArachnidTorsoSkull bodyPart: Chest markingCategory: Chest - speciesRestriction: [Arachnid] + speciesRestriction: [Arachnid, Arachne] sprites: - sprite: Mobs/Customization/Arachnid/chest.rsi state: skull @@ -278,7 +278,7 @@ id: ArachnidTorsoTarget bodyPart: Chest markingCategory: Chest - speciesRestriction: [Arachnid] + speciesRestriction: [Arachnid, Arachne] sprites: - sprite: Mobs/Customization/Arachnid/chest.rsi state: target @@ -292,7 +292,7 @@ id: ArachnidRArmStripes bodyPart: RArm markingCategory: RightArm - speciesRestriction: [Arachnid] + speciesRestriction: [Arachnid, Arachne] sprites: - sprite: Mobs/Customization/Arachnid/arms.rsi state: stripes_right @@ -305,7 +305,7 @@ id: ArachnidLArmStripes bodyPart: LArm markingCategory: LeftArm - speciesRestriction: [Arachnid] + speciesRestriction: [Arachnid, Arachne] sprites: - sprite: Mobs/Customization/Arachnid/arms.rsi state: stripes_left @@ -351,4 +351,3 @@ sprites: - sprite: Mobs/Customization/Arachnid/overlay.rsi state: fuzzy - diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/earrings.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/earrings.yml new file mode 100644 index 00000000000..cf98e96cff8 --- /dev/null +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/earrings.yml @@ -0,0 +1,571 @@ +- type: marking + id: EarringsStudLeft + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#303030" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: stud_l + +- type: marking + id: EarringsStudRight + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#303030" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: stud_r + +- type: marking + id: EarringsHeavyLeft + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#9df4fa" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: heavy_l + +- type: marking + id: EarringsHeavyRight + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#9df4fa" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: heavy_r + +- type: marking + id: EarringsDropBasicLeft + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#f3d052" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: drop_l + +- type: marking + id: EarringsDropBasicRight + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#f3d052" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: drop_r + +- type: marking + id: EarringsDropColoredLeft + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#9df4fa" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: drop_colored_tone_1_l + - sprite: Mobs/Customization/earrings.rsi + state: drop_colored_tone_2_l + +- type: marking + id: EarringsDropColoredRight + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#9df4fa" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: drop_colored_tone_1_r + - sprite: Mobs/Customization/earrings.rsi + state: drop_colored_tone_2_r + +- type: marking + id: EarringsDropLongLeft + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#f3d052" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: drop_long_tone_1_l + - sprite: Mobs/Customization/earrings.rsi + state: drop_long_tone_2_l + +- type: marking + id: EarringsDropLongRight + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#f3d052" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: drop_long_tone_1_r + - sprite: Mobs/Customization/earrings.rsi + state: drop_long_tone_2_r + +- type: marking + id: EarringsCrescentLeft + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#f4f4f4" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: crescent_l + +- type: marking + id: EarringsCrescentRight + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#f4f4f4" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: crescent_r + +- type: marking + id: EarringsBangleLeft + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#f3d052" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: bangle_l + +- type: marking + id: EarringsBangleRight + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#f3d052" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: bangle_r + +- type: marking + id: EarringsHoopBasicLeft + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#f3d052" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: hoop_l + +- type: marking + id: EarringsHoopBasicRight + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#f3d052" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: hoop_r + +- type: marking + id: EarringsHoopMiniLeft + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#f3d052" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: hoop_mini_l + +- type: marking + id: EarringsHoopMiniRight + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#f3d052" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: hoop_mini_r + +- type: marking + id: EarringsCrossBasicLeft + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#f3d052" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: cross_l + +- type: marking + id: EarringsCrossBasicRight + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#f3d052" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: cross_r + +- type: marking + id: EarringsCrossSaintPeterLeft + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#f3d052" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: cross_saint_peter_l + +- type: marking + id: EarringsCrossSaintPeterRight + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#f3d052" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: cross_saint_peter_r + +- type: marking + id: EarringsGemstoneBasicLeft + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#f3d052" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: gemstone_tone_1_l + - sprite: Mobs/Customization/earrings.rsi + state: gemstone_tone_2_l + +- type: marking + id: EarringsGemstoneBasicRight + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#f3d052" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: gemstone_tone_1_r + - sprite: Mobs/Customization/earrings.rsi + state: gemstone_tone_2_r + +- type: marking + id: EarringsGemstoneLongLeft + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#9df4fa" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: gemstone_long_tone_1_l + - sprite: Mobs/Customization/earrings.rsi + state: gemstone_long_tone_2_l + +- type: marking + id: EarringsGemstoneLongRight + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#9df4fa" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: gemstone_long_tone_1_r + - sprite: Mobs/Customization/earrings.rsi + state: gemstone_long_tone_2_r + +- type: marking + id: EarringsGemstoneDoubleLeft + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#f3d052" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: gemstone_double_tone_1_l + - sprite: Mobs/Customization/earrings.rsi + state: gemstone_double_tone_2_l + - sprite: Mobs/Customization/earrings.rsi + state: gemstone_double_tone_3_l + +- type: marking + id: EarringsGemstoneDoubleRight + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#f3d052" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: gemstone_double_tone_1_r + - sprite: Mobs/Customization/earrings.rsi + state: gemstone_double_tone_2_r + - sprite: Mobs/Customization/earrings.rsi + state: gemstone_double_tone_3_r + +- type: marking + id: EarringsDangleBasicLeft + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#f3d052" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: dangle_tone_1_l + - sprite: Mobs/Customization/earrings.rsi + state: dangle_tone_2_l + +- type: marking + id: EarringsDangleBasicRight + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#f3d052" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: dangle_tone_1_r + - sprite: Mobs/Customization/earrings.rsi + state: dangle_tone_2_r + +- type: marking + id: EarringsDangleLongLeft + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#f3d052" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: dangle_long_tone_1_l + - sprite: Mobs/Customization/earrings.rsi + state: dangle_long_tone_2_l + +- type: marking + id: EarringsDangleLongRight + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#f3d052" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: dangle_long_tone_1_r + - sprite: Mobs/Customization/earrings.rsi + state: dangle_long_tone_2_r + +- type: marking + id: EarringsEightLeft + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#f4f4f4" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: eight_l + +- type: marking + id: EarringsEightRight + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#f4f4f4" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: eight_r + +- type: marking + id: EarringsCrystalBasicLeft + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#9df4fa" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: crystal_tone_1_l + - sprite: Mobs/Customization/earrings.rsi + state: crystal_tone_2_l + +- type: marking + id: EarringsCrystalBasicRight + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#9df4fa" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: crystal_tone_1_r + - sprite: Mobs/Customization/earrings.rsi + state: crystal_tone_2_r + +- type: marking + id: EarringsCrystalLongLeft + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#9df4fa" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: crystal_long_tone_1_l + - sprite: Mobs/Customization/earrings.rsi + state: crystal_long_tone_2_l + +- type: marking + id: EarringsCrystalLongRight + bodyPart: HeadSide + markingCategory: HeadSide + speciesRestriction: [Dwarf, Human, SlimePerson, Arachnid, Reptilian, Diona, Oni, Felinid, Vulpkanin, Harpy, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#9df4fa" + sprites: + - sprite: Mobs/Customization/earrings.rsi + state: crystal_long_tone_1_r + - sprite: Mobs/Customization/earrings.rsi + state: crystal_long_tone_2_r diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/face.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/face.yml new file mode 100644 index 00000000000..4fab3f06ae2 --- /dev/null +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/face.yml @@ -0,0 +1,420 @@ +- type: marking + id: FaceBindi + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Reptilian, Vulpkanin, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#a12222" + sprites: + - sprite: Mobs/Customization/face.rsi + state: bindi + +- type: marking + id: FaceFullblush + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Vulpkanin, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#e07e7e" + sprites: + - sprite: Mobs/Customization/face.rsi + state: fullblush + +- type: marking + id: FaceCheekspotRight + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Reptilian, Vulpkanin, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#ffffff" + sprites: + - sprite: Mobs/Customization/face.rsi + state: cheekspot_r + +- type: marking + id: FaceCheekspotLeft + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Reptilian, Vulpkanin, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#ffffff" + sprites: + - sprite: Mobs/Customization/face.rsi + state: cheekspot_l + +- type: marking + id: FaceChesireRight + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#ffffff" + sprites: + - sprite: Mobs/Customization/face.rsi + state: chesire_r + +- type: marking + id: FaceChesireLeft + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#ffffff" + sprites: + - sprite: Mobs/Customization/face.rsi + state: chesire_l + +- type: marking + id: FaceCrowRight + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Reptilian, Vulpkanin, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#242424" + sprites: + - sprite: Mobs/Customization/face.rsi + state: crow_r + +- type: marking + id: FaceCrowLeft + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Reptilian, Vulpkanin, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#242424" + sprites: + - sprite: Mobs/Customization/face.rsi + state: crow_l + +- type: marking + id: FaceEarRight + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#ffffff" + sprites: + - sprite: Mobs/Customization/face.rsi + state: ear_r + +- type: marking + id: FaceEarLeft + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#ffffff" + sprites: + - sprite: Mobs/Customization/face.rsi + state: ear_l + +- type: marking + id: FaceEyebrowRight + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Reptilian, Vulpkanin, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#242424" + sprites: + - sprite: Mobs/Customization/face.rsi + state: eyebrow_r + + +- type: marking + id: FaceEyebrowLeft + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Reptilian, Vulpkanin, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#242424" + sprites: + - sprite: Mobs/Customization/face.rsi + state: eyebrow_l + + +- type: marking + id: FaceEyebrows + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Reptilian, Vulpkanin, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#242424" + sprites: + - sprite: Mobs/Customization/face.rsi + state: eyebrows + +- type: marking + id: FaceEyecornerRight + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Reptilian, Vulpkanin, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#242424" + sprites: + - sprite: Mobs/Customization/face.rsi + state: eyecorner_r + +- type: marking + id: FaceEyecornerLeft + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Reptilian, Vulpkanin, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#242424" + sprites: + - sprite: Mobs/Customization/face.rsi + state: eyecorner_l + +- type: marking + id: FaceEyelashRight + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Reptilian, Vulpkanin, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#141414" + sprites: + - sprite: Mobs/Customization/face.rsi + state: eyelash_r + +- type: marking + id: FaceEyelashLeft + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Reptilian, Vulpkanin, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#141414" + sprites: + - sprite: Mobs/Customization/face.rsi + state: eyelash_l + +- type: marking + id: FaceEyestripe + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#a1a1a1" + sprites: + - sprite: Mobs/Customization/face.rsi + state: eyestripe + +- type: marking + id: FaceLipcornerRight + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Reptilian, Vulpkanin, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#ffffff" + sprites: + - sprite: Mobs/Customization/face.rsi + state: lipcorner_r + +- type: marking + id: FaceLipcornerLeft + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Reptilian, Vulpkanin, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#ffffff" + sprites: + - sprite: Mobs/Customization/face.rsi + state: lipcorner_l + +- type: marking + id: FaceGlabella + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Reptilian, Vulpkanin, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#ffffff" + sprites: + - sprite: Mobs/Customization/face.rsi + state: glabella + +- type: marking + id: FaceLowercheekRight + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Reptilian, Vulpkanin, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#242424" + sprites: + - sprite: Mobs/Customization/face.rsi + state: lowercheek_r + +- type: marking + id: FaceLowercheekLeft + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Reptilian, Vulpkanin, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#242424" + sprites: + - sprite: Mobs/Customization/face.rsi + state: lowercheek_l + +- type: marking + id: FaceNosetape + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#ffffff" + sprites: + - sprite: Mobs/Customization/face.rsi + state: nosetape + +- type: marking + id: FaceNosetip + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#ffffff" + sprites: + - sprite: Mobs/Customization/face.rsi + state: nosetip + + +- type: marking + id: FaceNosestripe + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#ffffff" + sprites: + - sprite: Mobs/Customization/face.rsi + state: nosestripe + +- type: marking + id: FaceUnibrow + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Reptilian, Vulpkanin, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#242424" + sprites: + - sprite: Mobs/Customization/face.rsi + state: unibrow + +- type: marking + id: FaceNeckSlim + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Reptilian, Vulpkanin, Arachne] + followSkinColor: true + sprites: + - sprite: Mobs/Customization/face.rsi + state: neck_f + +- type: marking + id: FaceNeckWide + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Reptilian, Vulpkanin, Arachne] + followSkinColor: true + sprites: + - sprite: Mobs/Customization/face.rsi + state: neck_m + +- type: marking + id: FaceNeckSlimThick + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Reptilian, Vulpkanin, Arachne] + followSkinColor: true + sprites: + - sprite: Mobs/Customization/face.rsi + state: neck_thick_f + +- type: marking + id: FaceNeckWideThick + bodyPart: Head + markingCategory: Head + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Reptilian, Vulpkanin, Arachne] + followSkinColor: true + sprites: + - sprite: Mobs/Customization/face.rsi + state: neck_thick_m diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/gauze.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/gauze.yml index 3ca7a78b398..6e8f7dc8194 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/gauze.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/gauze.yml @@ -2,7 +2,7 @@ id: GauzeLefteyePatch bodyPart: Eyes markingCategory: Overlay - speciesRestriction: [Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin] # Delta V - Felinid, Oni, Vulpkanin + speciesRestriction: [Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, Arachne] # Delta V - Felinid, Oni, Vulpkanin coloring: default: type: @@ -16,7 +16,7 @@ id: GauzeLefteyePad bodyPart: Eyes markingCategory: Overlay - speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, Felinid, Oni, Vulpkanin] # Delta V - Felinid, Oni, Vulpkanin + speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, Felinid, Oni, Vulpkanin, Arachne] # Delta V - Felinid, Oni, Vulpkanin coloring: default: type: @@ -30,7 +30,7 @@ id: GauzeRighteyePatch bodyPart: Eyes markingCategory: Overlay - speciesRestriction: [Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin] # Delta V - Felinid, Oni, Vulpkanin + speciesRestriction: [Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, Arachne] # Delta V - Felinid, Oni, Vulpkanin coloring: default: type: @@ -44,7 +44,7 @@ id: GauzeRighteyePad bodyPart: Eyes markingCategory: Overlay - speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, Felinid, Oni, Vulpkanin] # Delta V - Felinid, Oni, Vulpkanin + speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, Felinid, Oni, Vulpkanin, Arachne] # Delta V - Felinid, Oni, Vulpkanin coloring: default: type: @@ -58,7 +58,7 @@ id: GauzeBlindfold bodyPart: Eyes markingCategory: Overlay - speciesRestriction: [Dwarf, Human, Arachnid, Felinid, Oni, Harpy, Vulpkanin] # Delta V - Felinid, Oni, Harpy, Vulpkanin + speciesRestriction: [Dwarf, Human, Arachnid, Felinid, Oni, Harpy, Vulpkanin, Arachne] # Delta V - Felinid, Oni, Harpy, Vulpkanin coloring: default: type: @@ -72,7 +72,7 @@ id: GauzeShoulder bodyPart: Chest markingCategory: Overlay - speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, Felinid, Oni, Vulpkanin] # Delta V - Felinid, Oni, Vulpkanin + speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, Felinid, Oni, Vulpkanin, Arachne] # Delta V - Felinid, Oni, Vulpkanin coloring: default: type: @@ -86,7 +86,7 @@ id: GauzeStomach bodyPart: Chest markingCategory: Overlay - speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, Felinid, Oni, Vulpkanin] # Delta V - Felinid, Oni, Vulpkanin + speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, Felinid, Oni, Vulpkanin, Arachne] # Delta V - Felinid, Oni, Vulpkanin coloring: default: type: @@ -100,7 +100,7 @@ id: GauzeUpperArmRight bodyPart: RArm markingCategory: Overlay - speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, SlimePerson, Felinid, Oni, Vulpkanin] # Delta V - Felinid, Oni, Vulpkanin + speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, SlimePerson, Felinid, Oni, Vulpkanin, Arachne] # Delta V - Felinid, Oni, Vulpkanin coloring: default: type: @@ -114,7 +114,7 @@ id: GauzeLowerArmRight bodyPart: RArm, RHand markingCategory: Overlay - speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, SlimePerson, Felinid, Oni, Vulpkanin] # Delta V - Felinid, Oni, Vulpkanin + speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, SlimePerson, Felinid, Oni, Vulpkanin, Arachne] # Delta V - Felinid, Oni, Vulpkanin coloring: default: type: @@ -198,7 +198,7 @@ id: GauzeBoxerWrapRight bodyPart: RHand markingCategory: Overlay - speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, SlimePerson, Felinid, Oni, Vulpkanin] # Delta V - Felinid, Oni, Vulpkanin + speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, SlimePerson, Felinid, Oni, Vulpkanin, Arachne] # Delta V - Felinid, Oni, Vulpkanin coloring: default: type: @@ -212,7 +212,7 @@ id: GauzeBoxerWrapLeft bodyPart: LHand markingCategory: Overlay - speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, SlimePerson, Felinid, Oni, Vulpkanin] # Delta V - Felinid, Oni, Vulpkanin + speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, SlimePerson, Felinid, Oni, Vulpkanin, Arachne] # Delta V - Felinid, Oni, Vulpkanin coloring: default: type: diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/human_noses.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/human_noses.yml index bfca2ff488a..a6ea6a6a422 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/human_noses.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/human_noses.yml @@ -4,7 +4,7 @@ markingCategory: Snout followSkinColor: true forcedColoring: true - speciesRestriction: [Human, Dwarf, Felinid, Oni, Harpy] + speciesRestriction: [Human, Dwarf, Felinid, Oni, Harpy, Arachne] sprites: - sprite: Mobs/Customization/human_noses.rsi state: schnozz @@ -15,7 +15,7 @@ markingCategory: Snout followSkinColor: true forcedColoring: true - speciesRestriction: [Human, Dwarf, Felinid, Oni, Harpy] + speciesRestriction: [Human, Dwarf, Felinid, Oni, Harpy, Arachne] sprites: - sprite: Mobs/Customization/human_noses.rsi state: nubby @@ -26,7 +26,7 @@ markingCategory: Snout followSkinColor: true forcedColoring: true - speciesRestriction: [Human, Dwarf, Felinid, Oni, Harpy] + speciesRestriction: [Human, Dwarf, Felinid, Oni, Harpy, Arachne] sprites: - sprite: Mobs/Customization/human_noses.rsi state: droop @@ -37,7 +37,7 @@ markingCategory: Snout followSkinColor: true forcedColoring: true - speciesRestriction: [Human, Dwarf, Felinid, Oni, Harpy] + speciesRestriction: [Human, Dwarf, Felinid, Oni, Harpy, Arachne] sprites: - sprite: Mobs/Customization/human_noses.rsi state: blob @@ -48,7 +48,7 @@ markingCategory: Snout followSkinColor: true forcedColoring: true - speciesRestriction: [Human, Dwarf, Felinid, Oni, Harpy] + speciesRestriction: [Human, Dwarf, Felinid, Oni, Harpy, Arachne] sprites: - sprite: Mobs/Customization/human_noses.rsi state: uppie diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/makeup.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/makeup.yml index 901bf6e75cf..75a2d9e34a9 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/makeup.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/makeup.yml @@ -2,7 +2,7 @@ id: MakeupLips bodyPart: Head markingCategory: Head - speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy] # Delta V - Felinid, Oni, Harpy + speciesRestriction: [Dwarf, Human, SlimePerson, Felinid, Oni, Harpy, Arachne] # Delta V - Felinid, Oni, Harpy coloring: default: type: @@ -16,7 +16,7 @@ id: MakeupBlush bodyPart: Head markingCategory: Head - speciesRestriction: [Dwarf, Human, Reptilian, SlimePerson, Felinid, Oni, Vulpkanin, Harpy] # Delta V - Felinid, Oni, Vulpkanin, Harpy + speciesRestriction: [Dwarf, Human, Reptilian, SlimePerson, Felinid, Oni, Vulpkanin, Harpy, Arachne] # Delta V - Felinid, Oni, Vulpkanin, Harpy coloring: default: type: @@ -29,8 +29,8 @@ - type: marking id: MakeupNailPolishRight bodyPart: RHand - markingCategory: Overlay - speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, SlimePerson, Felinid, Oni, Vulpkanin] # Delta V - Felinid, Oni, Vulpkanin + markingCategory: RightHand + speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, SlimePerson, Felinid, Oni, Vulpkanin, Arachne] # Delta V - Felinid, Oni, Vulpkanin coloring: default: type: @@ -43,8 +43,8 @@ - type: marking id: MakeupNailPolishLeft bodyPart: LHand - markingCategory: Overlay - speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, SlimePerson, Felinid, Oni, Vulpkanin] # Delta V - Felinid, Oni, Vulpkanin + markingCategory: LeftHand + speciesRestriction: [Dwarf, Human, Reptilian, Arachnid, SlimePerson, Felinid, Oni, Vulpkanin, Arachne] # Delta V - Felinid, Oni, Vulpkanin coloring: default: type: diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/pointy_ears.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/pointy_ears.yml index 10016fb9851..237275e4193 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/pointy_ears.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/pointy_ears.yml @@ -3,7 +3,7 @@ bodyPart: HeadSide markingCategory: HeadSide forcedColoring: true - speciesRestriction: [Oni] + speciesRestriction: [Oni, Harpy, Arachne] sprites: - sprite: Mobs/Customization/pointy_ears.rsi state: pointy_ears_standard @@ -13,7 +13,7 @@ bodyPart: HeadSide markingCategory: HeadSide forcedColoring: true - speciesRestriction: [Oni] + speciesRestriction: [Oni, Harpy, Arachne] sprites: - sprite: Mobs/Customization/pointy_ears.rsi state: pointy_ears_wide @@ -23,7 +23,7 @@ bodyPart: HeadSide markingCategory: HeadSide forcedColoring: true - speciesRestriction: [Oni] + speciesRestriction: [Oni, Harpy, Arachne] sprites: - sprite: Mobs/Customization/pointy_ears.rsi state: pointy_ears_small @@ -33,7 +33,7 @@ bodyPart: HeadSide markingCategory: HeadSide forcedColoring: true - speciesRestriction: [Oni] + speciesRestriction: [Oni, Harpy, Arachne] sprites: - sprite: Mobs/Customization/pointy_ears.rsi state: pointy_ears_upwards @@ -43,7 +43,7 @@ bodyPart: HeadSide markingCategory: HeadSide forcedColoring: true - speciesRestriction: [Oni] + speciesRestriction: [Oni, Harpy, Arachne] sprites: - sprite: Mobs/Customization/pointy_ears.rsi state: pointy_ears_tall @@ -53,7 +53,7 @@ bodyPart: HeadSide markingCategory: HeadSide forcedColoring: true - speciesRestriction: [Oni] + speciesRestriction: [Oni, Harpy, Arachne] sprites: - sprite: Mobs/Customization/pointy_ears.rsi state: pointy_ears_slanted @@ -63,7 +63,7 @@ bodyPart: HeadSide markingCategory: HeadSide forcedColoring: true - speciesRestriction: [Oni] + speciesRestriction: [Oni, Harpy, Arachne] sprites: - sprite: Mobs/Customization/pointy_ears.rsi state: pointy_ears_thin @@ -73,7 +73,7 @@ bodyPart: HeadSide markingCategory: HeadSide forcedColoring: true - speciesRestriction: [Oni] + speciesRestriction: [Oni, Harpy, Arachne] sprites: - sprite: Mobs/Customization/pointy_ears.rsi state: pointy_ears_large @@ -83,7 +83,7 @@ bodyPart: HeadSide markingCategory: HeadSide forcedColoring: true - speciesRestriction: [Oni] + speciesRestriction: [Oni, Harpy, Arachne] sprites: - sprite: Mobs/Customization/pointy_ears.rsi state: pointy_ears_none diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/scars.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/scars.yml index 79e0a0ff012..c9050975aa3 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/scars.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/scars.yml @@ -2,7 +2,7 @@ id: ScarEyeRight bodyPart: Head markingCategory: Head - speciesRestriction: [Human, Dwarf, Felinid, Harpy, Oni] # Delta V - Felinid, Oni, Harpy + speciesRestriction: [Human, Dwarf, Felinid, Harpy, Oni, Arachne] # Delta V - Felinid, Oni, Harpy followSkinColor: true sprites: - sprite: Mobs/Customization/scars.rsi @@ -12,7 +12,7 @@ id: ScarEyeLeft bodyPart: Head markingCategory: Head - speciesRestriction: [Human, Dwarf, Felinid, Harpy, Oni] # Delta V - Felinid, Oni, Harpy + speciesRestriction: [Human, Dwarf, Felinid, Harpy, Oni, Arachne] # Delta V - Felinid, Oni, Harpy followSkinColor: true sprites: - sprite: Mobs/Customization/scars.rsi @@ -22,7 +22,7 @@ id: ScarTopSurgeryShort bodyPart: Chest markingCategory: Chest - speciesRestriction: [Human, Dwarf, Felinid, Oni] + speciesRestriction: [Human, Dwarf, Felinid, Oni, Arachne] sexRestriction: [Male] followSkinColor: true sprites: @@ -33,7 +33,7 @@ id: ScarTopSurgeryLong bodyPart: Chest markingCategory: Chest - speciesRestriction: [Human, Dwarf, Felinid, Oni] + speciesRestriction: [Human, Dwarf, Felinid, Oni, Arachne] sexRestriction: [Male] followSkinColor: true sprites: @@ -44,7 +44,7 @@ id: ScarChest bodyPart: Chest markingCategory: Chest - speciesRestriction: [Human, Dwarf, Felinid, Oni] + speciesRestriction: [Human, Dwarf, Felinid, Oni, Arachne] followSkinColor: true sprites: - sprite: Mobs/Customization/scars.rsi diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/tattoos.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/tattoos.yml index 93a16fcfd3c..8b659885669 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/tattoos.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/tattoos.yml @@ -2,7 +2,7 @@ id: TattooHiveChest bodyPart: Chest markingCategory: Chest - speciesRestriction: [Human, Dwarf, Felinid, Oni, Shadowkin] # Delta V - Felinid, Oni + speciesRestriction: [Human, Dwarf, Felinid, Oni, Shadowkin, Arachne] # Delta V - Felinid, Oni coloring: default: type: @@ -16,7 +16,7 @@ id: TattooNightlingChest bodyPart: Chest markingCategory: Chest - speciesRestriction: [Human, Dwarf, Felinid, Oni, Shadowkin] # Delta V - Felinid, Oni + speciesRestriction: [Human, Dwarf, Felinid, Oni, Shadowkin, Arachne] # Delta V - Felinid, Oni coloring: default: type: @@ -58,7 +58,7 @@ id: TattooCampbellLeftArm bodyPart: LArm markingCategory: LeftArm - speciesRestriction: [Human, Dwarf, Felinid, Oni, Shadowkin] # Delta V - Felinid, Oni + speciesRestriction: [Human, Dwarf, Felinid, Oni, Shadowkin, Arachne] # Delta V - Felinid, Oni coloring: default: type: @@ -72,7 +72,7 @@ id: TattooCampbellRightArm bodyPart: RArm markingCategory: RightArm - speciesRestriction: [Human, Dwarf, Felinid, Oni, Shadowkin] # Delta V - Felinid, Oni + speciesRestriction: [Human, Dwarf, Felinid, Oni, Shadowkin, Arachne] # Delta V - Felinid, Oni coloring: default: type: @@ -137,3 +137,31 @@ sprites: - sprite: Mobs/Customization/tattoos.rsi state: tattoo_eye_l + +- type: marking + id: TattooEyeArachneRight + bodyPart: Eyes + markingCategory: Head + speciesRestriction: [Arachne] + coloring: + default: + type: + !type:EyeColoring + negative: true + sprites: + - sprite: Mobs/Customization/tattoos.rsi + state: tattoo_eye_arachne_r + +- type: marking + id: TattooEyeArachneLeft + bodyPart: Eyes + markingCategory: Head + speciesRestriction: [Arachne] + coloring: + default: + type: + !type:EyeColoring + negative: true + sprites: + - sprite: Mobs/Customization/tattoos.rsi + state: tattoo_eye_arachne_l diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/wrist.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/wrist.yml new file mode 100644 index 00000000000..0e2f9be912a --- /dev/null +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/wrist.yml @@ -0,0 +1,228 @@ +- type: marking + id: WristBraceletRight + bodyPart: RHand + markingCategory: RightHand + speciesRestriction: [Human, Dwarf, SlimePerson, Arachnid, Reptilian, Diona, Felinid, Oni, Vulpkanin, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#cdcdcd" + sprites: + - sprite: Mobs/Customization/wrist.rsi + state: bracelet_r + +# Dionae don't have left wrist markings because the markings are currently blocked by their body. +- type: marking + id: WristBraceletLeft + bodyPart: LHand + markingCategory: LeftHand + speciesRestriction: [Human, Dwarf, SlimePerson, Arachnid, Reptilian, Felinid, Oni, Vulpkanin, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#cdcdcd" + sprites: + - sprite: Mobs/Customization/wrist.rsi + state: bracelet_l + +- type: marking + id: WristBraceletArmRight + bodyPart: RArm + markingCategory: RightArm + speciesRestriction: [Human, Dwarf, SlimePerson, Arachnid, Reptilian, Diona, Felinid, Oni, Vulpkanin, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#cdcdcd" + sprites: + - sprite: Mobs/Customization/wrist.rsi + state: bracelet_arm_r + +- type: marking + id: WristBraceletArmLeft + bodyPart: LArm + markingCategory: LeftArm + speciesRestriction: [Human, Dwarf, SlimePerson, Arachnid, Reptilian, Felinid, Oni, Vulpkanin, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#cdcdcd" + sprites: + - sprite: Mobs/Customization/wrist.rsi + state: bracelet_arm_l + +- type: marking + id: WristWatchRight + bodyPart: RHand + markingCategory: RightHand + speciesRestriction: [Human, Dwarf, SlimePerson, Arachnid, Reptilian, Diona, Felinid, Oni, Vulpkanin, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#ffffff" + sprites: + - sprite: Mobs/Customization/wrist.rsi + state: watch_r + +- type: marking + id: WristWatchLeft + bodyPart: LHand + markingCategory: LeftHand + speciesRestriction: [Human, Dwarf, SlimePerson, Arachnid, Reptilian, Felinid, Oni, Vulpkanin, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#ffffff" + sprites: + - sprite: Mobs/Customization/wrist.rsi + state: watch_l + +- type: marking + id: WristWatchSilverRight + bodyPart: RHand + markingCategory: RightHand + speciesRestriction: [Human, Dwarf, SlimePerson, Arachnid, Reptilian, Diona, Felinid, Oni, Vulpkanin, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#ffffff" + sprites: + - sprite: Mobs/Customization/wrist.rsi + state: watch_silver_r + +- type: marking + id: WristWatchSilverLeft + bodyPart: LHand + markingCategory: LeftHand + speciesRestriction: [Human, Dwarf, SlimePerson, Arachnid, Reptilian, Felinid, Oni, Vulpkanin, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#ffffff" + sprites: + - sprite: Mobs/Customization/wrist.rsi + state: watch_silver_l + +- type: marking + id: WristWatchGoldRight + bodyPart: RHand + markingCategory: RightHand + speciesRestriction: [Human, Dwarf, SlimePerson, Arachnid, Reptilian, Diona, Felinid, Oni, Vulpkanin, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#ffffff" + sprites: + - sprite: Mobs/Customization/wrist.rsi + state: watch_gold_r + +- type: marking + id: WristWatchGoldLeft + bodyPart: LHand + markingCategory: LeftHand + speciesRestriction: [Human, Dwarf, SlimePerson, Arachnid, Reptilian, Felinid, Oni, Vulpkanin, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#ffffff" + sprites: + - sprite: Mobs/Customization/wrist.rsi + state: watch_gold_l + +- type: marking + id: WristWatchHoloRight + bodyPart: RHand + markingCategory: RightHand + speciesRestriction: [Human, Dwarf, SlimePerson, Arachnid, Reptilian, Diona, Felinid, Oni, Vulpkanin, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#ffffff" + sprites: + - sprite: Mobs/Customization/wrist.rsi + state: watch_holo_r + +- type: marking + id: WristWatchHoloLeft + bodyPart: LHand + markingCategory: LeftHand + speciesRestriction: [Human, Dwarf, SlimePerson, Arachnid, Reptilian, Felinid, Oni, Vulpkanin, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#ffffff" + sprites: + - sprite: Mobs/Customization/wrist.rsi + state: watch_holo_l + +- type: marking + id: WristWatchLeatherRight + bodyPart: RHand + markingCategory: RightHand + speciesRestriction: [Human, Dwarf, SlimePerson, Arachnid, Reptilian, Diona, Felinid, Oni, Vulpkanin, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#ffffff" + sprites: + - sprite: Mobs/Customization/wrist.rsi + state: watch_leather_r + +- type: marking + id: WristWatchLeatherLeft + bodyPart: LHand + markingCategory: LeftHand + speciesRestriction: [Human, Dwarf, SlimePerson, Arachnid, Reptilian, Felinid, Oni, Vulpkanin, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#ffffff" + sprites: + - sprite: Mobs/Customization/wrist.rsi + state: watch_leather_l + +- type: marking + id: WristWatchColorableRight + bodyPart: RHand + markingCategory: RightHand + speciesRestriction: [Human, Dwarf, SlimePerson, Arachnid, Reptilian, Diona, Felinid, Oni, Vulpkanin, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#424242" + sprites: + - sprite: Mobs/Customization/wrist.rsi + state: watch_colorable_r_tone_1 + - sprite: Mobs/Customization/wrist.rsi + state: watch_colorable_r_tone_2 + +- type: marking + id: WristWatchColorableLeft + bodyPart: LHand + markingCategory: LeftHand + speciesRestriction: [Human, Dwarf, SlimePerson, Arachnid, Reptilian, Felinid, Oni, Vulpkanin, Gingerbread, Arachne] + coloring: + default: + type: + !type:SimpleColoring + color: "#424242" + sprites: + - sprite: Mobs/Customization/wrist.rsi + state: watch_colorable_l_tone_1 + - sprite: Mobs/Customization/wrist.rsi + state: watch_colorable_l_tone_2 diff --git a/Resources/Prototypes/Entities/Mobs/Customization/cyberlimbs/bishop.yml b/Resources/Prototypes/Entities/Mobs/Customization/cyberlimbs/bishop.yml index cdbb4ecfed2..2ae4bc6d62f 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/cyberlimbs/bishop.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/cyberlimbs/bishop.yml @@ -42,7 +42,7 @@ id: CyberLimbsMarkingBishopLArm bodyPart: LArm markingCategory: LeftArm - speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian] + speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Arachne] sprites: - sprite: Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi state: l_arm-primary @@ -55,7 +55,7 @@ id: CyberLimbsMarkingBishopLHand bodyPart: LHand markingCategory: LeftHand - speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian] + speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Arachne] sprites: - sprite: Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi state: l_hand @@ -87,7 +87,7 @@ id: CyberLimbsMarkingBishopRArm bodyPart: RArm markingCategory: RightArm - speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian] + speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Arachne] sprites: - sprite: Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi state: r_arm-primary @@ -101,7 +101,7 @@ id: CyberLimbsMarkingBishopRHand bodyPart: RHand markingCategory: RightHand - speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian] + speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Arachne] sprites: - sprite: Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi state: r_hand @@ -125,4 +125,4 @@ speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian] sprites: - sprite: Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi - state: r_foot \ No newline at end of file + state: r_foot diff --git a/Resources/Prototypes/Entities/Mobs/Customization/cyberlimbs/hesphiastos.yml b/Resources/Prototypes/Entities/Mobs/Customization/cyberlimbs/hesphiastos.yml index e3bcd07f3a4..d6e2194bf36 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/cyberlimbs/hesphiastos.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/cyberlimbs/hesphiastos.yml @@ -37,7 +37,7 @@ id: CyberLimbsMarkingHesphiastosLArm bodyPart: LArm markingCategory: LeftArm - speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian] + speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Arachne] sprites: - sprite: Mobs/Customization/cyberlimbs/hesphiastos/hesphiastos_main.rsi state: l_arm-1 @@ -48,7 +48,7 @@ id: CyberLimbsMarkingHesphiastosLHand bodyPart: LHand markingCategory: LeftHand - speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian] + speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Arachne] sprites: - sprite: Mobs/Customization/cyberlimbs/hesphiastos/hesphiastos_main.rsi state: l_hand-1 @@ -84,7 +84,7 @@ id: CyberLimbsMarkingHesphiastosRArm bodyPart: RArm markingCategory: RightArm - speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian] + speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Arachne] sprites: - sprite: Mobs/Customization/cyberlimbs/hesphiastos/hesphiastos_main.rsi state: r_arm-1 @@ -96,7 +96,7 @@ id: CyberLimbsMarkingHesphiastosRHand bodyPart: RHand markingCategory: RightHand - speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian] + speciesRestriction: [IPC, Moth, Dwarf, Human, Arachnid, Felinid, Oni, Vulpkanin, HumanoidFoxes, Reptilian, Arachne] sprites: - sprite: Mobs/Customization/cyberlimbs/hesphiastos/hesphiastos_main.rsi state: r_hand-1 @@ -125,4 +125,4 @@ - sprite: Mobs/Customization/cyberlimbs/hesphiastos/hesphiastos_main.rsi state: r_foot-1 - sprite: Mobs/Customization/cyberlimbs/hesphiastos/hesphiastos_main.rsi - state: r_foot-2 \ No newline at end of file + state: r_foot-2 diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml index 7974b06870e..1d0a8d92280 100644 --- a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml +++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml @@ -84,6 +84,7 @@ - type: Hands showInHands: false disableExplosionRecursion: true + - type: ComplexInteraction - type: IntrinsicRadioReceiver - type: IntrinsicRadioTransmitter channels: @@ -228,6 +229,8 @@ - TauCetiBasic - RobotTalk - type: PsionicInsulation + - type: TwistedConstructionTarget + replacementProto: ConstructShell - type: entity abstract: true diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml index e0dc4a0ad43..5c84f7258d8 100644 --- a/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml +++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml @@ -258,6 +258,7 @@ - ActionFabricateGumball - type: SiliconLawProvider laws: Medical + - type: SurgeryTarget - type: entity id: BorgChassisService diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/Rslimes.yml b/Resources/Prototypes/Entities/Mobs/NPCs/Rslimes.yml index 3512b518150..7a41ac52ec8 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/Rslimes.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/Rslimes.yml @@ -222,7 +222,7 @@ - type: entity id: reagentslimeVents parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent startAnnouncement: true diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 8dd348f47ec..1ee20cdcb61 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -397,8 +397,27 @@ damageType: Blunt damage: 10 behaviors: - - !type:GibBehavior { } + - !type:GibBehavior + gibContents: Skip - type: NonSpreaderZombie + - type: LanguageKnowledge + speaks: [Hissing] + understands: [Hissing] + +- type: entity + parent: MobCockroach + id: MobCockroachPet + components: + - type: HTN + rootTask: + task: FollowCompound + blackboard: + IdleRange: !type:Single + 1.5 + FollowCloseRange: !type:Single + 1.0 + FollowRange: !type:Single + 2.0 - type: entity name: glockroach @@ -565,7 +584,26 @@ - type: FireVisuals sprite: Mobs/Effects/onfire.rsi normalState: Mouse_burning + - type: SurgeryTarget + - type: UserInterface + interfaces: + enum.SurgeryUIKey.Key: + type: SurgeryBui +- type: entity + parent: MobMothroach + id: MobMothroachPet + components: + - type: HTN + rootTask: + task: FollowCompound + blackboard: + IdleRange: !type:Single + 1.5 + FollowCloseRange: !type:Single + 1.0 + FollowRange: !type:Single + 2.0 # Note that the mallard duck is actually a male drake mallard, with the brown duck being the female variant of the same species, however ss14 lacks sex specific textures # The white duck is more akin to a pekin or call duck. @@ -647,6 +685,11 @@ - type: RandomBark barkType: chicken # Duh barkMultiplier: 0.7 + - type: SurgeryTarget + - type: UserInterface + interfaces: + enum.SurgeryUIKey.Key: + type: SurgeryBui - type: entity name: white duck #Quack @@ -902,6 +945,11 @@ prototype: AnimalHemocyanin - type: RandomBark barkType: crab + - type: SurgeryTarget + - type: UserInterface + interfaces: + enum.SurgeryUIKey.Key: + type: SurgeryBui - type: entity name: goat @@ -993,6 +1041,11 @@ - type: HTN rootTask: task: RuminantHostileCompound + - type: SurgeryTarget + - type: UserInterface + interfaces: + enum.SurgeryUIKey.Key: + type: SurgeryBui # Note that we gotta make this bitch vomit someday when you feed it anthrax or sumthin. Needs to be a small item thief too and aggressive if attacked. - type: entity @@ -1208,6 +1261,8 @@ abstract: true components: - type: CombatMode + - type: SurgeryTarget + - type: Targeting - type: Inventory templateId: monkey speciesId: monkey @@ -1235,6 +1290,8 @@ interfaces: enum.StrippingUiKey.Key: type: StrippableBoundUserInterface + enum.SurgeryUIKey.Key: + type: SurgeryBui - type: Sprite drawdepth: Mobs layers: @@ -1258,6 +1315,7 @@ visible: false - type: Carriable - type: Hands + - type: ComplexInteraction - type: GenericVisualizer visuals: enum.CreamPiedVisuals.Creamed: @@ -1568,7 +1626,7 @@ - type: entity name: guidebook monkey parent: MobMonkey - noSpawn: true + categories: [ HideSpawnMenu ] id: MobGuidebookMonkey description: A hopefully helpful monkey whose only purpose in life is for you to click on. Does this count as having a monkey give you a tutorial? components: @@ -1728,10 +1786,6 @@ - type: FelinidFood # Nyanotrasen - Felinid, ability to eat mice, see Content.Server/Nyanotrasen/Abilities/Felinid/FelinidSystem.cs - type: BadFood - type: NonSpreaderZombie - - type: PreventSpiller - - type: RandomBark - barkMultiplier: 0.3 - barkType: mouse - type: FireVisuals sprite: Mobs/Effects/onfire.rsi normalState: Mouse_burning @@ -1739,6 +1793,26 @@ whitelist: types: - Landmine + - type: SurgeryTarget + - type: UserInterface + interfaces: + enum.SurgeryUIKey.Key: + type: SurgeryBui + +- type: entity + parent: MobMouse + id: MobMousePet + components: + - type: HTN + rootTask: + task: FollowCompound + blackboard: + IdleRange: !type:Single + 1.5 + FollowCloseRange: !type:Single + 1.0 + FollowRange: !type:Single + 2.0 - type: entity parent: MobMouse @@ -2091,6 +2165,7 @@ factions: - Passive - type: Temperature + atmosTemperatureTransferEfficiency: 0.04 heatDamageThreshold: 335 coldDamageThreshold: 230 currentTemperature: 310.15 @@ -2104,6 +2179,9 @@ - type: RandomBark barkType: penguin barkMultiplier: 0.6 + - type: LanguageKnowledge + speaks: [Penguin] + understands: [Penguin] - type: entity name: grenade penguin @@ -2224,6 +2302,9 @@ minTime: 10 maxTime: 50 # It's a sssnake... barkType: hissing + - type: LanguageKnowledge + speaks: [Hissing] + understands: [Hissing] # Code unique spider prototypes or combine them all into one spider and get a # random sprite state when you spawn it. @@ -2360,6 +2441,11 @@ - type: BloodSucker webRequired: true - type: Cocooner + - type: SurgeryTarget + - type: UserInterface + interfaces: + enum.SurgeryUIKey.Key: + type: SurgeryBui - type: entity name: tarantula @@ -3377,6 +3463,21 @@ sprite: Mobs/Effects/onfire.rsi normalState: Mouse_burning +- type: entity + parent: MobHamster + id: MobHamsterPet + components: + - type: HTN + rootTask: + task: FollowCompound + blackboard: + IdleRange: !type:Single + 1.5 + FollowCloseRange: !type:Single + 1.0 + FollowRange: !type:Single + 2.0 + - type: entity name: pig parent: SimpleMobBase diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml index 2778bf12788..bf13f9dfa49 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/carp.yml @@ -71,6 +71,7 @@ tags: - Carp - DoorBumpOpener + - NoPaint - type: ReplacementAccent accent: genericAggressive - type: Speech @@ -80,6 +81,13 @@ interactFailureString: petting-failure-carp interactFailureSound: path: /Audio/Effects/bite.ogg + - type: Body # Shitmed - Adds carp organs. + prototype: Carp + - type: SurgeryTarget + - type: UserInterface + interfaces: + enum.SurgeryUIKey.Key: + type: SurgeryBui - type: entity parent: BaseMobCarp @@ -239,6 +247,11 @@ types: Slash: 12 Bloodloss: 5 + - type: SurgeryTarget + - type: UserInterface + interfaces: + enum.SurgeryUIKey.Key: + type: SurgeryBui - type: entity id: MobSharkSalvage diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/glimmer_creatures.yml b/Resources/Prototypes/Entities/Mobs/NPCs/glimmer_creatures.yml index 33e4ecee260..c2219d7fae3 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/glimmer_creatures.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/glimmer_creatures.yml @@ -161,3 +161,6 @@ - type: NPCRetaliation attackMemoryLength: 10 - type: NPCRangedCombat + # other + - type: LanguageSpeaker + - type: UniversalLanguageSpeaker # Should it speak unversal or some other language? diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/mimic.yml b/Resources/Prototypes/Entities/Mobs/NPCs/mimic.yml index c3a92d3ebcd..3ffa449f48f 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/mimic.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/mimic.yml @@ -17,7 +17,6 @@ - type: NpcFactionMember factions: - SimpleHostile - - type: Hands - type: Sprite drawdepth: Mobs sprite: Structures/Machines/VendingMachines/cola.rsi diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml b/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml index f6a42dfb76b..abe602037f4 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/regalrat.yml @@ -127,6 +127,11 @@ understands: - TauCetiBasic - Mouse + - type: SurgeryTarget + - type: UserInterface + interfaces: + enum.SurgeryUIKey.Key: + type: SurgeryBui - type: entity id: MobRatKingBuff @@ -169,7 +174,7 @@ id: MobRatServant parent: [ SimpleMobBase, MobCombat ] description: He's da mini rat. He don't make da roolz. - noSpawn: true #Must be configured to a King or the AI breaks. + categories: [ HideSpawnMenu ] #Must be configured to a King or the AI breaks. components: - type: Carriable freeHandsRequired: 1 @@ -205,7 +210,11 @@ - map: [ "enum.DamageStateVisualLayers.BaseUnshaded"] state: eyes shader: unshaded - + - type: SurgeryTarget + - type: UserInterface + interfaces: + enum.SurgeryUIKey.Key: + type: SurgeryBui - type: SpriteMovement movementLayers: movement: @@ -320,7 +329,7 @@ id: ActionRatKingRaiseArmy name: Raise Army description: Spend some hunger to summon an allied rat to help defend you. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction useDelay: 4 @@ -333,7 +342,7 @@ id: ActionRatKingDomain name: Rat King's Domain description: Spend some hunger to release a cloud of ammonia into the air. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction useDelay: 6 @@ -346,7 +355,7 @@ id: ActionRatKingOrderStay name: Stay description: Command your army to stand in place. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction useDelay: 1 @@ -365,7 +374,7 @@ id: ActionRatKingOrderFollow name: Follow description: Command your army to follow you around. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction useDelay: 1 @@ -384,7 +393,7 @@ id: ActionRatKingOrderCheeseEm name: Cheese 'Em description: Command your army to attack whoever you point at. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction useDelay: 1 @@ -403,7 +412,7 @@ id: ActionRatKingOrderLoose name: Loose description: Command your army to act at their own will. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction useDelay: 1 diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/revenant.yml b/Resources/Prototypes/Entities/Mobs/NPCs/revenant.yml index c16816b5e44..c3706cea2a5 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/revenant.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/revenant.yml @@ -107,3 +107,8 @@ powersToAdd: - XenoglossyPower - TelepathyPower + - type: LanguageSpeaker + - type: UniversalLanguageSpeaker + - type: Tag + tags: + - NoPaint diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml b/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml index 74bba2dec8a..b45cbf33afc 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml @@ -113,6 +113,11 @@ speechSounds: Slime - type: TypingIndicator proto: slime + - type: SurgeryTarget + - type: UserInterface + interfaces: + enum.SurgeryUIKey.Key: + type: SurgeryBui - type: entity name: basic slime @@ -150,7 +155,7 @@ description: A geras of a slime - the name is ironic, isn't it? id: MobSlimesGeras parent: BaseMobAdultSlimes - noSpawn: true + categories: [ HideSpawnMenu ] components: # they portable... - type: MovementSpeedModifier diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml index 4ea766c3140..2c49fafec5c 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml @@ -386,4 +386,4 @@ parent: MobCobraSpace suffix: "Salvage Ruleset" components: - - type: SalvageMobRestrictions + - type: SalvageMobRestrictions \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml index 04b767b8ae2..04c4dd083e0 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml @@ -40,6 +40,7 @@ factions: - Xeno - type: Hands + - type: ComplexInteraction - type: Sprite drawdepth: Mobs sprite: Mobs/Aliens/Xenos/burrower.rsi diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/xenopet.yml b/Resources/Prototypes/Entities/Mobs/NPCs/xenopet.yml index 23108e521bf..37cfa7b46de 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/xenopet.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/xenopet.yml @@ -341,7 +341,7 @@ - type: entity id: neutralXenoVents parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent startAnnouncement: true @@ -364,7 +364,7 @@ - type: entity id: ArgocyteVents parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent startAnnouncement: true @@ -403,7 +403,7 @@ - type: entity id: MeatVents parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent startAnnouncement: true @@ -428,7 +428,7 @@ - type: entity id: TickVents parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent startAnnouncement: true @@ -445,7 +445,7 @@ - type: entity id: CarpVents parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent startAnnouncement: true @@ -472,7 +472,7 @@ - type: entity id: SpaceVents parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent startAnnouncement: true @@ -495,7 +495,7 @@ - type: entity id: LightVents parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent startAnnouncement: true diff --git a/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml b/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml index dce408ed827..c9aac35732b 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml @@ -2,7 +2,7 @@ parent: MobObserver id: AdminObserver name: admin observer - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Eye visMask: @@ -25,6 +25,7 @@ canInteract: true - type: GhostHearing - type: Hands + - type: ComplexInteraction - type: Puller pushAcceleration: 1000000 # Will still be capped in max speed maxPushRange: 20 @@ -99,12 +100,13 @@ - type: Loadout prototypes: [ MobAghostGear ] - type: SupermatterImmune + - type: BypassInteractionChecks - type: entity id: ActionAGhostShowSolar name: Solar Control Interface description: View a solar control interface. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: { sprite: Structures/Machines/parts.rsi, state: box_0 } @@ -117,7 +119,7 @@ id: ActionAGhostShowCommunications name: Communications Interface description: View a communications interface. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: { sprite: Structures/Machines/parts.rsi, state: box_0 } @@ -130,7 +132,7 @@ id: ActionAGhostShowRadar name: Mass Scanner Interface description: View a mass scanner interface. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: { sprite: Structures/Machines/parts.rsi, state: box_0 } @@ -143,7 +145,7 @@ id: ActionAGhostShowCargo name: Cargo Ordering Interface description: View a cargo ordering interface. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: { sprite: Structures/Machines/parts.rsi, state: box_0 } @@ -156,7 +158,7 @@ id: ActionAGhostShowCrewMonitoring name: Crew Monitoring Interface description: View a crew monitoring interface. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: { sprite: Structures/Machines/parts.rsi, state: box_0 } @@ -169,7 +171,7 @@ id: ActionAGhostShowStationRecords name: Station Records Interface description: View a station records Interface - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: { sprite: Structures/Machines/parts.rsi, state: box_0 } diff --git a/Resources/Prototypes/Entities/Mobs/Player/diona.yml b/Resources/Prototypes/Entities/Mobs/Player/diona.yml index dfd5e9a1be7..85c5631de7a 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/diona.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/diona.yml @@ -15,7 +15,7 @@ # Reformed Diona - type: entity parent: MobDiona - noSpawn: true + categories: [ HideSpawnMenu ] id: MobDionaReformed name: Reformed Diona components: diff --git a/Resources/Prototypes/Entities/Mobs/Player/dragon.yml b/Resources/Prototypes/Entities/Mobs/Player/dragon.yml index cb9dc1c911a..81cd8a579b2 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/dragon.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/dragon.yml @@ -155,7 +155,7 @@ - MinorAntagonists - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] id: DragonsBreathGun name: dragon's lung description: For dragon's breathing @@ -204,7 +204,7 @@ id: ActionSpawnRift name: Summon Carp Rift description: Summons a carp rift that will periodically spawns carps. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: @@ -218,7 +218,7 @@ id: ActionDevour name: "[color=red]Devour[/color]" description: Attempt to break a structure with your jaws or swallow a creature. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: EntityTargetAction icon: { sprite : Interface/Actions/devour.rsi, state: icon } @@ -227,7 +227,7 @@ priority: 1 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] id: ActionDragonsBreath name: "[color=orange]Dragon's Breath[/color]" description: Spew out flames at anyone foolish enough to attack you! diff --git a/Resources/Prototypes/Entities/Mobs/Player/guardian.yml b/Resources/Prototypes/Entities/Mobs/Player/guardian.yml index 6d90ac3ffee..51078d1b100 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/guardian.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/guardian.yml @@ -104,6 +104,7 @@ - type: Tag tags: - CannotSuicide + - NoPaint # From the uplink injector - type: entity @@ -223,9 +224,11 @@ tags: - CannotSuicide - FootstepSound + - NoPaint - type: Inventory templateId: holoclown - type: Hands + - type: ComplexInteraction - type: Clumsy clumsyDamage: types: @@ -259,7 +262,7 @@ id: ActionToggleGuardian name: Toggle Guardian description: Either manifests the guardian or recalls it back into your body - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: Interface/Actions/manifest.png diff --git a/Resources/Prototypes/Entities/Mobs/Player/human.yml b/Resources/Prototypes/Entities/Mobs/Player/human.yml index aa87f81a833..4284632d288 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/human.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/human.yml @@ -39,7 +39,7 @@ # Nuclear Operative - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] name: Nuclear Operative parent: MobHuman id: MobHumanNukeOp @@ -50,7 +50,7 @@ powerRollMultiplier: 7 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: MobHuman id: MobHumanLoneNuclearOperative name: Lone Operative @@ -72,7 +72,7 @@ # Space Ninja - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] name: Space Ninja parent: MobHuman id: MobHumanSpaceNinja diff --git a/Resources/Prototypes/Entities/Mobs/Player/ipc.yml b/Resources/Prototypes/Entities/Mobs/Player/ipc.yml index 85aec21ac66..c3ae577120d 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/ipc.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/ipc.yml @@ -106,6 +106,8 @@ - type: OfferItem - type: LayingDown - type: Carriable + - type: StatusIcon + bounds: -0.5,-0.5,0.5,0.5 - type: StepTriggerImmune whitelist: types: @@ -128,7 +130,7 @@ name: Urist McPositronic parent: MobHumanDummy id: MobIPCDummy - noSpawn: true + categories: [ HideSpawnMenu ] description: A dummy IPC meant to be used in character setup. components: - type: HumanoidAppearance diff --git a/Resources/Prototypes/Entities/Mobs/Player/narsie.yml b/Resources/Prototypes/Entities/Mobs/Player/narsie.yml index 7030572cf47..9fa58d35f8e 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/narsie.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/narsie.yml @@ -87,13 +87,6 @@ bodyType: Dynamic bodyStatus: InAir - type: CanMoveInAir - # singulose components - - type: EventHorizon - radius: 5 - canBreachContainment: true - - type: GravityWell - baseRadialAcceleration: 6 - maxRange: 8 - type: WarpPoint follow: true location: Nar'Sie diff --git a/Resources/Prototypes/Entities/Mobs/Player/observer.yml b/Resources/Prototypes/Entities/Mobs/Player/observer.yml index c92595ffc9d..07398299f37 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/observer.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/observer.yml @@ -3,7 +3,7 @@ id: MobObserver name: observer description: Boo! - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: CargoSellBlacklist - type: Sprite @@ -60,7 +60,7 @@ id: ActionGhostBoo name: Boo! description: Scare your crew members because of boredom! - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: Interface/Actions/scream.png @@ -72,7 +72,7 @@ id: ActionToggleLighting name: Toggle All Lighting description: Toggle all light rendering to better observe dark areas. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: Interface/VerbIcons/light.svg.192dpi.png @@ -84,7 +84,7 @@ id: ActionToggleFov name: Toggle FoV description: Toggles field-of-view in order to see what players see. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: Interface/VerbIcons/vv.svg.192dpi.png @@ -96,7 +96,7 @@ id: ActionToggleGhosts name: Toggle Ghosts description: Toggle the visibility of other ghosts. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: { sprite: Mobs/Ghosts/ghost_human.rsi, state: icon } @@ -108,7 +108,7 @@ id: ActionToggleGhostHearing name: Toggle Ghost Hearing description: Toggle between hearing all messages and hearing only radio & nearby messages. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction checkCanInteract: false diff --git a/Resources/Prototypes/Entities/Mobs/Player/replay_observer.yml b/Resources/Prototypes/Entities/Mobs/Player/replay_observer.yml index 07deef857c3..f309707132e 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/replay_observer.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/replay_observer.yml @@ -1,7 +1,7 @@ - type: entity parent: MobObserver id: ReplayObserver - noSpawn: true + categories: [ HideSpawnMenu ] save: false components: - type: MovementSpeedModifier diff --git a/Resources/Prototypes/Entities/Mobs/Player/silicon.yml b/Resources/Prototypes/Entities/Mobs/Player/silicon.yml index 0f8998bdec8..c3ccb0330c3 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/silicon.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/silicon.yml @@ -50,4 +50,4 @@ slots: cell_slot: name: power-cell-slot-component-slot-name-default - startingItem: PowerCellHyper + startingItem: PowerCellHyper \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Mobs/Player/silicon_base.yml b/Resources/Prototypes/Entities/Mobs/Player/silicon_base.yml index a8772a41f8a..86546a3794d 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/silicon_base.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/silicon_base.yml @@ -79,7 +79,7 @@ - trigger: !type:DamageTrigger damage: 500 behaviors: - - !type:GibBehavior {} + - !type:GibBehavior { } - type: Icon sprite: Mobs/Species/IPC/parts.rsi state: full @@ -199,12 +199,24 @@ - type: CreamPied - type: Stripping - type: Strippable + - type: ComplexInteraction + - type: SurgeryTarget + - type: Targeting - type: UserInterface interfaces: enum.HumanoidMarkingModifierKey.Key: type: HumanoidMarkingModifierBoundUserInterface enum.StrippingUiKey.Key: type: StrippableBoundUserInterface + enum.InstrumentUiKey.Key: + type: InstrumentBoundUserInterface + requireInputValidation: false + enum.RadialSelectorUiKey.Key: + type: RadialSelectorMenuBUI + enum.ListViewSelectorUiKey.Key: + type: ListViewSelectorBUI + enum.SurgeryUIKey.Key: + type: SurgeryBui - type: Emoting - type: Grammar attributes: diff --git a/Resources/Prototypes/Entities/Mobs/Species/arachne.yml b/Resources/Prototypes/Entities/Mobs/Species/arachne.yml index ddbdc57e0ad..4b2b6454643 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/arachne.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/arachne.yml @@ -22,6 +22,7 @@ color: "#e8b59b" sprite: Mobs/Species/Human/parts.rsi state: head_m + - map: [ "enum.HumanoidVisualLayers.Snout" ] - map: [ "enum.HumanoidVisualLayers.Eyes" ] color: "#008800" sprite: Mobs/Species/eyes.rsi @@ -65,10 +66,12 @@ - map: [ "belt" ] - map: [ "neck" ] - map: [ "back" ] + - map: [ "enum.HumanoidVisualLayers.FacialHair" ] - map: [ "enum.HumanoidVisualLayers.Hair" ] state: bald sprite: Mobs/Customization/human_hair.rsi - map: [ "mask" ] + - map: [ "enum.HumanoidVisualLayers.HeadSide" ] # This is not in the default order so earrings are rendered above masks - map: [ "head" ] - map: [ "pocket1" ] - map: [ "pocket2" ] @@ -104,6 +107,7 @@ - type: Tag tags: - CanPilot + - FootstepSound - DoorBumpOpener - type: StepTriggerImmune - type: Bloodstream @@ -144,7 +148,7 @@ name: Urist McHands parent: MobHumanDummy id: MobArachneDummy - noSpawn: true + categories: [ HideSpawnMenu ] description: A dummy arachne meant to be used in character setup. components: - type: Sprite @@ -163,6 +167,7 @@ color: "#e8b59b" sprite: Mobs/Species/Human/parts.rsi state: head_m + - map: [ "enum.HumanoidVisualLayers.Snout" ] - map: [ "enum.HumanoidVisualLayers.Eyes" ] color: "#008800" sprite: Mobs/Species/eyes.rsi @@ -206,10 +211,12 @@ - map: [ "belt" ] - map: [ "neck" ] - map: [ "back" ] + - map: [ "enum.HumanoidVisualLayers.FacialHair" ] - map: [ "enum.HumanoidVisualLayers.Hair" ] state: bald sprite: Mobs/Customization/human_hair.rsi - map: [ "mask" ] + - map: [ "enum.HumanoidVisualLayers.HeadSide" ] # This is not in the default order so earrings are rendered above masks - map: [ "head" ] - map: [ "pocket1" ] - map: [ "pocket2" ] diff --git a/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml b/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml index f512e71d325..88822ab0376 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/arachnid.yml @@ -136,7 +136,7 @@ - type: entity parent: BaseSpeciesDummy id: MobArachnidDummy - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: HumanoidAppearance species: Arachnid diff --git a/Resources/Prototypes/Entities/Mobs/Species/base.yml b/Resources/Prototypes/Entities/Mobs/Species/base.yml index 6855a6560be..c19eb1edc4a 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/base.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/base.yml @@ -152,6 +152,8 @@ - type: Identity - type: IdExaminable - type: Hands + - type: ComplexInteraction + - type: Internals - type: Inventory - type: InventorySlots - type: FloatingVisuals @@ -197,6 +199,12 @@ enum.InstrumentUiKey.Key: type: InstrumentBoundUserInterface requireInputValidation: false + enum.RadialSelectorUiKey.Key: + type: RadialSelectorMenuBUI + enum.ListViewSelectorUiKey.Key: + type: ListViewSelectorBUI + enum.SurgeryUIKey.Key: + type: SurgeryBui - type: Puller - type: Speech speechSounds: Alto @@ -226,6 +234,8 @@ - CanPilot - FootstepSound - DoorBumpOpener + - type: Targeting + - type: SurgeryTarget - type: entity save: false @@ -320,6 +330,7 @@ abstract: true components: - type: Hands + - type: ComplexInteraction - type: Inventory - type: InventorySlots - type: ContainerContainer diff --git a/Resources/Prototypes/Entities/Mobs/Species/diona.yml b/Resources/Prototypes/Entities/Mobs/Species/diona.yml index 07d621b139d..530bfe49b24 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/diona.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/diona.yml @@ -127,7 +127,7 @@ - type: entity parent: BaseSpeciesDummy id: MobDionaDummy - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Inventory templateId: diona diff --git a/Resources/Prototypes/Entities/Mobs/Species/dwarf.yml b/Resources/Prototypes/Entities/Mobs/Species/dwarf.yml index 7f315040356..72c1e782507 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/dwarf.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/dwarf.yml @@ -74,4 +74,4 @@ - type: entity parent: BaseSpeciesDummy id: MobDwarfDummy - noSpawn: true + categories: [ HideSpawnMenu ] diff --git a/Resources/Prototypes/Entities/Mobs/Species/gingerbread.yml b/Resources/Prototypes/Entities/Mobs/Species/gingerbread.yml index c514a6f1a05..b0a43551c8d 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/gingerbread.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/gingerbread.yml @@ -44,7 +44,7 @@ - type: entity parent: BaseSpeciesDummy id: MobGingerbreadDummy - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: HumanoidAppearance species: Gingerbread diff --git a/Resources/Prototypes/Entities/Mobs/Species/harpy.yml b/Resources/Prototypes/Entities/Mobs/Species/harpy.yml index 4ad6ea03cd9..b3fcd565c4b 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/harpy.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/harpy.yml @@ -192,7 +192,7 @@ id: ActionHarpyPlayMidi name: Play MIDI description: Sing your heart out! Right click yourself to set an instrument. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction checkCanInteract: false @@ -204,7 +204,7 @@ id: ActionSyrinxChangeVoiceMask name: Set name description: Change the name others hear to something else. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: DeltaV/Interface/Actions/harpy_syrinx.png @@ -215,7 +215,7 @@ id: ActionToggleFlight name: Fly description: Make use of your wings to fly. Beat the flightless bird allegations. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction checkCanInteract: false diff --git a/Resources/Prototypes/Entities/Mobs/Species/human.yml b/Resources/Prototypes/Entities/Mobs/Species/human.yml index ee2886602d1..4310fb1c65c 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/human.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/human.yml @@ -33,4 +33,4 @@ - type: entity parent: BaseSpeciesDummy id: MobHumanDummy - noSpawn: true + categories: [ HideSpawnMenu ] diff --git a/Resources/Prototypes/Entities/Mobs/Species/moth.yml b/Resources/Prototypes/Entities/Mobs/Species/moth.yml index 5f684222264..2a4a157ecb3 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/moth.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/moth.yml @@ -127,7 +127,7 @@ - type: entity parent: BaseSpeciesDummy id: MobMothDummy - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: HumanoidAppearance species: Moth diff --git a/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml b/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml index ee5d6285659..45be82a448f 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml @@ -73,7 +73,7 @@ - type: entity parent: BaseSpeciesDummy id: MobReptilianDummy - noSpawn: true + categories: [ HideSpawnMenu ] description: A dummy reptilian meant to be used in character setup. components: - type: HumanoidAppearance diff --git a/Resources/Prototypes/Entities/Mobs/Species/shadowkin.yml b/Resources/Prototypes/Entities/Mobs/Species/shadowkin.yml index 393cb0b8716..ff6edb49cc2 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/shadowkin.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/shadowkin.yml @@ -243,7 +243,7 @@ save: false parent: MobHumanDummy id: MobShadowkinDummy - noSpawn: true + categories: [ HideSpawnMenu ] description: A dummy shadowkin meant to be used in character setup. components: - type: HumanoidAppearance diff --git a/Resources/Prototypes/Entities/Mobs/Species/skeleton.yml b/Resources/Prototypes/Entities/Mobs/Species/skeleton.yml index 2d34c87cfb4..96c61856936 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/skeleton.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/skeleton.yml @@ -40,7 +40,8 @@ !type:DamageTrigger damage: 150 behaviors: - - !type:GibBehavior { } + - !type:GibBehavior + gibContents: Skip - type: SlowOnDamage #modified speeds because they're so weak speedModifierThresholds: 60: 0.9 @@ -107,7 +108,7 @@ - type: entity parent: BaseSpeciesDummy id: MobSkeletonPersonDummy - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: HumanoidAppearance species: Skeleton diff --git a/Resources/Prototypes/Entities/Mobs/Species/slime.yml b/Resources/Prototypes/Entities/Mobs/Species/slime.yml index e8909166257..ba04b6e5fac 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/slime.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/slime.yml @@ -33,6 +33,8 @@ type: HumanoidMarkingModifierBoundUserInterface enum.StrippingUiKey.Key: type: StrippableBoundUserInterface + enum.SurgeryUIKey.Key: + type: SurgeryBui # to prevent bag open/honk spam - type: UseDelay delay: 0.5 @@ -124,7 +126,7 @@ - type: entity parent: MobHumanDummy id: MobSlimePersonDummy - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: HumanoidAppearance species: SlimePerson diff --git a/Resources/Prototypes/Entities/Mobs/Species/vox.yml b/Resources/Prototypes/Entities/Mobs/Species/vox.yml index 58e2b3b6463..62e04b55780 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/vox.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/vox.yml @@ -109,7 +109,7 @@ - type: entity parent: BaseSpeciesDummy id: MobVoxDummy - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: HumanoidAppearance species: Vox diff --git a/Resources/Prototypes/Entities/Mobs/base.yml b/Resources/Prototypes/Entities/Mobs/base.yml index 5ab790feeef..c98608fabb5 100644 --- a/Resources/Prototypes/Entities/Mobs/base.yml +++ b/Resources/Prototypes/Entities/Mobs/base.yml @@ -46,6 +46,7 @@ - type: LanguageSpeaker # Einstein Engines. This component is required to support speech, although it does not define known languages. - type: RequireProjectileTarget active: False + - type: AnimatedEmotes - type: OwnInteractionVerbs allowedVerbs: [] # TODO: define something here, or don't. diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml index 319c8a634ed..728ca962f9f 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans.yml @@ -53,6 +53,12 @@ damage: types: Blunt: 0 + - type: DamageOtherOnHit + damage: + types: + Blunt: 3 + soundHit: + path: /Audio/SimpleStation14/Items/Handling/drinkglass_drop.ogg - type: Tool qualities: - Rolling diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml index 0b2af4c97f4..454cd9b025a 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_flasks.yml @@ -9,6 +9,10 @@ Steel: 300 - type: FitsInDispenser solution: drink + - type: DamageOtherOnHit + damage: + types: + Blunt: 5 - type: entity parent: FlaskBase diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml index aa9e70f3fa4..1854d6f71fa 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml @@ -681,7 +681,7 @@ id: FoodMealHappyHonkClown parent: HappyHonk suffix: random food spawner meal - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StorageFill contents: diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml index 3bf253f773b..f9bd17860c8 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml @@ -1249,6 +1249,14 @@ tags: - Flower # TODO add "RedFlower" or "Poppy" tag, when other color flowers will be +- type: entity + name: hairflower + id: FoodPoppyWhite + parent: FoodPoppy + components: + - type: Sprite + sprite: Objects/Specific/Hydroponics/poppywhite.rsi + - type: entity name: lily parent: FoodPoppy diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/snacks.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/snacks.yml index e5ae7723671..9e36d34af7c 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/snacks.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/snacks.yml @@ -443,7 +443,7 @@ # Trash - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseItem id: FoodPacketTrash description: This is rubbish. @@ -466,7 +466,7 @@ price: 0 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketTrash id: FoodPacketBoritosTrash name: boritos bag @@ -475,7 +475,7 @@ state: boritos-trash - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketTrash id: FoodPacketCnDsTrash name: C&Ds bag @@ -484,7 +484,7 @@ state: cnds-trash - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketTrash id: FoodPacketCheesieTrash name: cheesie honkers @@ -493,7 +493,7 @@ state: cheesiehonkers-trash - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketTrash id: FoodPacketChipsTrash name: chips @@ -502,7 +502,7 @@ state: chips-trash - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketTrash id: FoodPacketChocolateTrash name: chocolate wrapper @@ -511,7 +511,7 @@ state: chocolatebar-trash - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketTrash id: FoodPacketEnergyTrash name: energybar wrapper @@ -520,7 +520,7 @@ state: energybar-trash - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketTrash id: FoodPacketPistachioTrash name: pistachios packet @@ -529,7 +529,7 @@ state: pistachio-trash - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketTrash id: FoodPacketPopcornTrash name: popcorn box @@ -538,7 +538,7 @@ state: popcorn-trash - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketTrash id: FoodPacketRaisinsTrash name: 4no raisins @@ -547,7 +547,7 @@ state: raisins-trash - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketTrash id: FoodPacketSemkiTrash name: semki packet @@ -556,7 +556,7 @@ state: semki-trash - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketTrash id: FoodPacketSusTrash name: sus jerky @@ -565,7 +565,7 @@ state: susjerky-trash - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketTrash id: FoodPacketSyndiTrash name: syndi-cakes box @@ -574,7 +574,7 @@ state: syndicakes-trash - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketTrash id: FoodPacketChowMeinTrash name: empty chow mein box @@ -583,7 +583,7 @@ state: chinese1 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketTrash id: FoodPacketDanDanTrash name: empty dan dan box @@ -592,7 +592,7 @@ state: chinese2 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketTrash id: FoodCookieFortune name: cookie fortune @@ -605,7 +605,7 @@ descriptionSegments: [CookieFortuneDescriptions] - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketTrash id: FoodPacketMRETrash name: MRE wrapper @@ -1025,7 +1025,7 @@ # trash - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketTrash id: FoodPacketLunacakeTrash name: lunacake wrapper @@ -1036,7 +1036,7 @@ - type: Item - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketLunacakeTrash id: FoodPacketMochicakeTrash name: mochicake wrapper @@ -1046,7 +1046,7 @@ - type: Item - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketLunacakeTrash id: FoodPacketMooncakeTrash name: mooncake wrapper @@ -1056,7 +1056,7 @@ - type: Item - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketLunacakeTrash id: FoodPacketTidegobsTrash name: tidegobs trash @@ -1066,7 +1066,7 @@ - type: Item - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketLunacakeTrash id: FoodPacketSaturnosTrash name: saturn-os trash @@ -1076,7 +1076,7 @@ - type: Item - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketLunacakeTrash id: FoodPacketJoveGelloTrash name: jove gello trash @@ -1086,7 +1086,7 @@ - type: Item - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketLunacakeTrash id: FoodPacketPlutoniumrodsTrash name: plutonium rods trash @@ -1096,7 +1096,7 @@ - type: Item - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketLunacakeTrash id: FoodPacketMarsFroukaTrash name: mars frouka trash @@ -1106,7 +1106,7 @@ - type: Item - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketLunacakeTrash id: FoodPacketVenusTrash name: venus hot cakes trash @@ -1116,7 +1116,7 @@ - type: Item - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketLunacakeTrash id: FoodPacketOortrocksTrash name: oort rocks trash @@ -1127,7 +1127,7 @@ # weebo vend - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketLunacakeTrash id: FoodPacketRedalertnutsTrash name: red alert nuts packet @@ -1137,7 +1137,7 @@ - type: Item - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketLunacakeTrash id: FoodPacketStickTrash name: stick @@ -1148,7 +1148,7 @@ # - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketLunacakeTrash id: FoodPacketProteinbarTrash name: protein bar wrapper diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Vapes/vape.yml b/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Vapes/vape.yml index 0049c389b5b..19c104b9076 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Vapes/vape.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Smokeables/Vapes/vape.yml @@ -1,6 +1,6 @@ - type: entity id: Vape - noSpawn: true # DeltaV - Disable the Vape + categories: [ HideSpawnMenu ] # DeltaV - Disable the Vape parent: BaseVape name: vape description: "Like a cigar, but for tough teens. (WARNING:Pour only water into the vape)" diff --git a/Resources/Prototypes/Entities/Objects/Decoration/present.yml b/Resources/Prototypes/Entities/Objects/Decoration/present.yml index 06836df342c..e07f0e05840 100644 --- a/Resources/Prototypes/Entities/Objects/Decoration/present.yml +++ b/Resources/Prototypes/Entities/Objects/Decoration/present.yml @@ -435,7 +435,7 @@ - type: entity id: PresentTrash - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseItem name: Wrapping Paper description: Carefully folded, taped, and tied with a bow. Then ceremoniously ripped apart and tossed on the floor. diff --git a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml index a34af1c9d82..61dbb70cd4d 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/production.yml @@ -1645,3 +1645,17 @@ difficulty: 2 recipes: - TraversalDistorterMachineCircuitboard + +- type: entity + id: MedicalBiofabMachineBoard + parent: BaseMachineCircuitboard + name: medical biofab machine board + description: A machine printed circuit board for a medical biofab. + components: + - type: Sprite + state: medical + - type: MachineBoard + prototype: MedicalBiofabricator + requirements: + MatterBin: 2 + Manipulator: 2 diff --git a/Resources/Prototypes/Entities/Objects/Devices/chameleon_projector.yml b/Resources/Prototypes/Entities/Objects/Devices/chameleon_projector.yml index e0212810210..ce7b6a4bde4 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/chameleon_projector.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/chameleon_projector.yml @@ -22,7 +22,7 @@ entity: ChameleonDisguise - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMob id: ChameleonDisguise name: Urist McKleiner @@ -49,7 +49,7 @@ # actions - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] id: ActionDisguiseNoRot name: Toggle Rotation description: Use this to prevent your disguise from rotating, making it easier to hide in some scenarios. @@ -59,7 +59,7 @@ event: !type:DisguiseToggleNoRotEvent - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] id: ActionDisguiseAnchor name: Toggle Anchored description: For many objects you will want to be anchored to not be completely obvious. diff --git a/Resources/Prototypes/Entities/Objects/Devices/flatpack.yml b/Resources/Prototypes/Entities/Objects/Devices/flatpack.yml index d7cba59eb1d..9ed2deb369d 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/flatpack.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/flatpack.yml @@ -67,6 +67,42 @@ - type: StealTarget stealGroup: AmePartFlatpack +- type: entity + parent: BaseFlatpack + id: TegCenterPartFlatpack + name: TEG Center flatpack + description: A flatpack used for constructing the central core of a TEG. + components: + - type: Flatpack + entity: TegCenter + - type: Sprite + layers: + - state: base + - state: overlay + color: "#cec8ac" + map: ["enum.FlatpackVisualLayers.Overlay"] + - state: icon-default + - type: GuideHelp + guides: [ TEG, Power ] + +- type: entity + parent: BaseFlatpack + id: TegCirculatorPartFlatpack + name: TEG Circulator flatpack + description: A flatpack used for constructing the circulator of a TEG. + components: + - type: Flatpack + entity: TegCirculator + - type: Sprite + layers: + - state: base + - state: overlay + color: "#cec8ac" + map: ["enum.FlatpackVisualLayers.Overlay"] + - state: icon-default + - type: GuideHelp + guides: [ TEG, Power ] + - type: entity parent: BaseFlatpack id: SingularityGeneratorFlatpack diff --git a/Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml b/Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml index b7ad8ddd6a8..8ebcc7dc167 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml @@ -24,6 +24,19 @@ - type: Tag tags: - HolosignProjector + - type: MeleeWeapon + wideAnimationRotation: 90 + attackRate: 0.8 + damage: + types: + Blunt: 6.5 + bluntStaminaDamageFactor: 2 + heavyRateModifier: 0.9 + maxTargets: 1 + angle: 20 + soundHit: + collection: MetalThud + - type: DamageOtherOnHit - type: entity parent: Holoprojector diff --git a/Resources/Prototypes/Entities/Objects/Devices/pda.yml b/Resources/Prototypes/Entities/Objects/Devices/pda.yml index bad1a8099ec..2dbcfc60ab3 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/pda.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/pda.yml @@ -104,6 +104,14 @@ - DoorBumpOpener - type: Input context: "human" + - type: LanguageSpeaker + - type: LanguageKnowledge + speaks: [TauCetiBasic, RobotTalk] + understands: [TauCetiBasic, RobotTalk] + - type: DamageOtherOnHit + damage: + types: + Blunt: 4 - type: entity parent: BasePDA @@ -500,7 +508,7 @@ parent: BasePDA id: CaptainPDA name: captain PDA - description: Surprisingly no different from your PDA. + description: Surprisingly no different from your PDA... Wait, it's a fair bit heavy to hold. components: - type: Pda id: CaptainIDCard @@ -515,6 +523,13 @@ borderColor: "#7C5D00" - type: Icon state: pda-captain + - type: DamageOtherOnHit + damage: + types: + Blunt: 8 + staminaCost: 5 + soundHit: + collection: MetalThud - type: entity parent: BasePDA diff --git a/Resources/Prototypes/Entities/Objects/Devices/translator_implants.yml b/Resources/Prototypes/Entities/Objects/Devices/translator_implants.yml index 0e7fce95686..97e244798b9 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/translator_implants.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/translator_implants.yml @@ -3,7 +3,7 @@ id: BasicTauCetiBasicTranslatorImplant name: basic common translator implant description: Provides your illiterate friends the ability to understand the common galactic tongue. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TranslatorImplant understood: @@ -14,7 +14,7 @@ id: TauCetiBasicTranslatorImplant name: advanced common translator implant description: A more advanced version of the translator implant, teaches your illiterate friends the ability to both speak and understand the galactic tongue! - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TranslatorImplant understood: @@ -27,7 +27,7 @@ id: BubblishTranslatorImplant name: bubblish translator implant description: An implant that helps you speak and understand the language of slimes! Special vocal chords not included. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TranslatorImplant understood: @@ -42,7 +42,7 @@ id: NekomimeticTranslatorImplant name: nekomimetic translator implant description: A translator implant intially designed to help domestic cat owners understand their pets, now granting the ability to understand and speak to Felinids! - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TranslatorImplant understood: @@ -57,7 +57,7 @@ id: DraconicTranslatorImplant name: draconic translator implant description: A translator implant giving the ability to speak to dragons! Subsequently, also allows to communicate with the Unathi. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TranslatorImplant understood: @@ -72,7 +72,7 @@ id: CanilunztTranslatorImplant name: canilunzt translator implant description: A translator implant that helps you communicate with your local yeepers. Yeep! - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TranslatorImplant understood: @@ -87,7 +87,7 @@ id: SolCommonTranslatorImplant name: sol-common translator implant description: An implant giving the ability to understand and speak SolCommon. Raaagh! - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TranslatorImplant understood: @@ -102,7 +102,7 @@ id: RootSpeakTranslatorImplant name: root-speak translator implant description: An implant that lets you speak for the trees. Or to the trees. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TranslatorImplant understood: @@ -117,7 +117,7 @@ id: MofficTranslatorImplant name: Moffic translator implant description: An implant designed to help domesticate mothroaches. Subsequently, allows you to communicate with the moth people. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TranslatorImplant understood: @@ -132,7 +132,7 @@ id: ValyrianStandardTranslatorImplant name: valyrian standard translator implant description: An implant giving the ability to understand and speak Valyrian Standard. Chirp! - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TranslatorImplant understood: @@ -147,7 +147,7 @@ id: AzazibaTranslatorImplant name: azaziba translator implant description: An implant giving the ability to understand and speak Azaziba. # Intended for Admins Only, this item is for lore reasons not obtainable. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TranslatorImplant understood: diff --git a/Resources/Prototypes/Entities/Objects/Devices/translators.yml b/Resources/Prototypes/Entities/Objects/Devices/translators.yml index 99b6d4305b6..3a30afc4a7f 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/translators.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/translators.yml @@ -1,6 +1,6 @@ # Translator that doesn't need power to work - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] id: TranslatorUnpowered parent: BaseItem name: translator @@ -32,7 +32,7 @@ # Base translator that uses a power cell. Starts with an empty slot. - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] id: TranslatorPoweredBase parent: [ TranslatorUnpowered, PowerCellSlotMediumItem ] components: @@ -45,14 +45,14 @@ # Normal translator with medium power cell in it - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] id: Translator parent: [ PowerCellSlotMediumItem, TranslatorPoweredBase ] suffix: Powered # Normal translator with a high power cell and special appearance - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] id: TranslatorForeigner parent: [ PowerCellSlotHighItem, TranslatorPoweredBase ] name: foreigner's translator diff --git a/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_string.yml b/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_string.yml index 730d532930b..b069b7de721 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_string.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_string.yml @@ -27,6 +27,8 @@ heavyDamageBaseModifier: 1.2 heavyStaminaCost: 7.5 angle: 75 + - type: DamageOtherOnHit + staminaCost: 8 - type: Item size: Normal sprite: Objects/Fun/Instruments/eguitar.rsi @@ -65,10 +67,12 @@ Blunt: 6 Shock: 1 bluntStaminaDamageFactor: 1.5 - heavyRateModifier: 0.75 + heavyRateModifier: 1.3333 heavyDamageBaseModifier: 1.2 heavyStaminaCost: 7.5 angle: 75 + - type: DamageOtherOnHit + staminaCost: 8 - type: Item size: Normal sprite: Objects/Fun/Instruments/bassguitar.rsi @@ -101,7 +105,7 @@ soundHit: path: /Audio/Nyanotrasen/Weapons/electricguitarhit.ogg range: 1.85 - attackRate: 1.25 + attackRate: .8 wideAnimationRotation: 45 damage: types: @@ -112,6 +116,8 @@ heavyDamageBaseModifier: 1.2 heavyStaminaCost: 10 angle: 160 + - type: DamageOtherOnHit + staminaCost: 8 - type: Wieldable - type: IncreaseDamageOnWield damage: @@ -179,6 +185,10 @@ damage: types: Blunt: 20 + - type: DamageOnLand + damage: + types: + Blunt: 20 - type: MeleeWeapon range: 1.5 wideAnimationRotation: 45 @@ -190,6 +200,8 @@ heavyDamageBaseModifier: 1.2 heavyStaminaCost: 10 angle: 75 + - type: DamageOtherOnHit + staminaCost: 7 - type: IncreaseDamageOnWield damage: types: @@ -236,6 +248,8 @@ heavyDamageBaseModifier: 1.2 heavyStaminaCost: 7.5 angle: 75 + - type: DamageOtherOnHit + staminaCost: 8 - type: entity parent: BaseHandheldInstrument diff --git a/Resources/Prototypes/Entities/Objects/Fun/Tabletop/backgammon.yml b/Resources/Prototypes/Entities/Objects/Fun/Tabletop/backgammon.yml index ab404b88a3e..965b25dbc00 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/Tabletop/backgammon.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/Tabletop/backgammon.yml @@ -18,7 +18,7 @@ id: BackgammonBoardTabletop name: backgammon parent: BaseBoardTabletop - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Fun/Tabletop/backgammon_tabletop.rsi diff --git a/Resources/Prototypes/Entities/Objects/Fun/Tabletop/base.yml b/Resources/Prototypes/Entities/Objects/Fun/Tabletop/base.yml index 351396b5b91..50e208cc43f 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/Tabletop/base.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/Tabletop/base.yml @@ -28,7 +28,7 @@ id: BaseBoardTabletop name: baseboard abstract: true - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Tag tags: diff --git a/Resources/Prototypes/Entities/Objects/Fun/Tabletop/checkers.yml b/Resources/Prototypes/Entities/Objects/Fun/Tabletop/checkers.yml index 69302548d18..6c206ca26f7 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/Tabletop/checkers.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/Tabletop/checkers.yml @@ -24,7 +24,7 @@ id: *checkerboard name: checkerboard parent: BaseBoardTabletop - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Fun/Tabletop/chessboard_tabletop.rsi diff --git a/Resources/Prototypes/Entities/Objects/Fun/Tabletop/chess.yml b/Resources/Prototypes/Entities/Objects/Fun/Tabletop/chess.yml index b31b7803bae..aeba3918c49 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/Tabletop/chess.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/Tabletop/chess.yml @@ -20,7 +20,7 @@ id: ChessBoardTabletop name: chessboard parent: BaseBoardTabletop - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Fun/Tabletop/chessboard_tabletop.rsi diff --git a/Resources/Prototypes/Entities/Objects/Fun/Tabletop/dnd.yml b/Resources/Prototypes/Entities/Objects/Fun/Tabletop/dnd.yml index 51f17d55b99..9b00ef5e018 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/Tabletop/dnd.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/Tabletop/dnd.yml @@ -86,7 +86,7 @@ parent: BaseBoardTabletop id: GrassBoardTabletop name: grass battlemap - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Fun/Tabletop/Battlemaps/grassbm_tabletop.rsi @@ -98,7 +98,7 @@ parent: BaseBoardTabletop id: MoonBoardTabletop name: grass battlemap - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Fun/Tabletop/Battlemaps/moonbm_tabletop.rsi @@ -108,7 +108,7 @@ parent: BaseBoardTabletop id: SandBoardTabletop name: sand battlemap - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Fun/Tabletop/Battlemaps/sandbm_tabletop.rsi @@ -118,7 +118,7 @@ parent: BaseBoardTabletop id: SnowBoardTabletop name: snow battlemap - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Fun/Tabletop/Battlemaps/snowbm_tabletop.rsi @@ -128,7 +128,7 @@ parent: BaseBoardTabletop id: ShipBoardTabletop name: ship battlemap - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Fun/Tabletop/Battlemaps/shipbm_tabletop.rsi diff --git a/Resources/Prototypes/Entities/Objects/Fun/Tabletop/parchis.yml b/Resources/Prototypes/Entities/Objects/Fun/Tabletop/parchis.yml index bb5fdf1f0bf..b608f4e7876 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/Tabletop/parchis.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/Tabletop/parchis.yml @@ -20,7 +20,7 @@ id: ParchisBoardTabletop name: parchís parent: BaseBoardTabletop - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Fun/Tabletop/parchis_tabletop.rsi diff --git a/Resources/Prototypes/Entities/Objects/Fun/bike_horn.yml b/Resources/Prototypes/Entities/Objects/Fun/bike_horn.yml index 7c69aa09013..36c8563bce1 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/bike_horn.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/bike_horn.yml @@ -39,6 +39,7 @@ damage: types: Blunt: 0 + - type: DamageOtherOnHit - type: Tool qualities: - Honking diff --git a/Resources/Prototypes/Entities/Objects/Fun/pai.yml b/Resources/Prototypes/Entities/Objects/Fun/pai.yml index b73767fd811..0adbc492308 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/pai.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/pai.yml @@ -88,6 +88,10 @@ - Elyran - RobotTalk - Sign # It's intentional that they don't "Speak" sign language. + - type: DamageOtherOnHit + damage: + types: + Blunt: 3 - type: entity parent: PersonalAI @@ -152,7 +156,7 @@ id: ActionPAIPlayMidi name: Play MIDI description: Open your portable MIDI interface to soothe your owner. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction checkCanInteract: false @@ -165,7 +169,7 @@ id: ActionPAIOpenMap name: Open Map description: Open your map interface and guide your owner. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction checkCanInteract: false diff --git a/Resources/Prototypes/Entities/Objects/Fun/spray_paint.yml b/Resources/Prototypes/Entities/Objects/Fun/spray_paint.yml new file mode 100644 index 00000000000..d7383fdddac --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Fun/spray_paint.yml @@ -0,0 +1,292 @@ +# Base Paints +- type: entity + parent: BaseItem + id: PaintBase + name: spray paint + description: A tin of spray paint. + categories: [ HideSpawnMenu ] + components: + - type: Appearance + - type: Sprite + sprite: Objects/Fun/spraycans.rsi + state: clown_cap + layers: + - state: clown_cap + map: ["enum.OpenableVisuals.Layer"] + - type: Paint + consumptionUnit: 10 + blacklist: + tags: + - NoPaint + - type: Item + sprite: Objects/Fun/spraycans.rsi + heldPrefix: spray + - type: SolutionContainerManager + solutions: + drink: + maxVol: 50 + reagents: + - ReagentId: SpaceGlue + Quantity: 50 + - type: TrashOnSolutionEmpty + solution: drink + - type: Sealable + - type: Openable + sound: + path: /Audio/Effects/pop_high.ogg + closeable: true + closeSound: + path: /Audio/Effects/pop_high.ogg + +# Paints + +# funnypaint +- type: entity + parent: PaintBase + id: FunnyPaint + name: funny paint + description: A tin of funny paint, manufactured by Honk! Co. + components: + - type: Paint + color: "#fa74df" + - type: Item + sprite: Objects/Fun/spraycans.rsi + heldPrefix: clown + - type: GenericVisualizer + visuals: + enum.OpenableVisuals.Opened: + enum.OpenableVisuals.Layer: + True: {state: "clown"} + False: {state: "clown_cap"} + +- type: entity + parent: PaintBase + id: FunnyPaintYellow + name: funny paint + description: A tin of funny paint, manufactured by Honk! Co. + components: + - type: Paint + color: "#d5e028" + - type: Item + sprite: Objects/Fun/spraycans.rsi + heldPrefix: clown + - type: Sprite + sprite: Objects/Fun/spraycans.rsi + state: clown2_cap + layers: + - state: clown2_cap + map: ["enum.OpenableVisuals.Layer"] + - type: GenericVisualizer + visuals: + enum.OpenableVisuals.Opened: + enum.OpenableVisuals.Layer: + True: {state: "clown2"} + False: {state: "clown2_cap"} + +#death paint +- type: entity + parent: PaintBase + id: DeathPaint + components: + - type: Paint + color: "#ff20c8" + - type: Item + sprite: Objects/Fun/spraycans.rsi + heldPrefix: spray + - type: Sprite + sprite: Objects/Fun/spraycans.rsi + state: death_cap + layers: + - state: death_cap + map: ["enum.OpenableVisuals.Layer"] + - type: GenericVisualizer + visuals: + enum.OpenableVisuals.Opened: + enum.OpenableVisuals.Layer: + True: {state: "death"} + False: {state: "death_cap"} + +- type: entity + parent: PaintBase + id: DeathPaintTwo + components: + - type: Paint + color: "#ff2020" + - type: Item + sprite: Objects/Fun/spraycans.rsi + heldPrefix: spray + - type: Sprite + sprite: Objects/Fun/spraycans.rsi + state: death2_cap + layers: + - state: death2_cap + map: ["enum.OpenableVisuals.Layer"] + - type: GenericVisualizer + visuals: + enum.OpenableVisuals.Opened: + enum.OpenableVisuals.Layer: + True: {state: "death2"} + False: {state: "death2_cap"} + +#Sprays + +#Blue +- type: entity + parent: PaintBase + id: SprayPaintBlue + suffix: Blue + components: + - type: Sprite + sprite: Objects/Fun/spraycans.rsi + layers: + - state: spray + map: ["Base"] + - state: spray_cap_colors + map: ["enum.OpenableVisuals.Layer"] + color: "#5890f7" + - type: Paint + color: "#5890f7" + - type: GenericVisualizer + visuals: + enum.OpenableVisuals.Opened: + enum.OpenableVisuals.Layer: + True: {state: "spray_colors" , color: "#5890f7"} + False: {state: "spray_cap_colors" , color: "#5890f7"} + +#Red +- type: entity + parent: PaintBase + id: SprayPaintRed + suffix: Red + components: + - type: Sprite + sprite: Objects/Fun/spraycans.rsi + layers: + - state: spray + map: ["Base"] + - state: spray_cap_colors + map: ["enum.OpenableVisuals.Layer"] + color: "#ff3b3b" + - type: Paint + color: "#ff3b3b" + - type: GenericVisualizer + visuals: + enum.OpenableVisuals.Opened: + enum.OpenableVisuals.Layer: + True: {state: "spray_colors" , color: "#ff3b3b"} + False: {state: "spray_cap_colors" , color: "#ff3b3b"} + +#Green +- type: entity + parent: PaintBase + id: SprayPaintGreen + suffix: Green + components: + - type: Sprite + sprite: Objects/Fun/spraycans.rsi + layers: + - state: spray + map: ["Base"] + - state: spray_cap_colors + map: ["enum.OpenableVisuals.Layer"] + color: "#73f170" + - type: Paint + color: "#73f170" + - type: GenericVisualizer + visuals: + enum.OpenableVisuals.Opened: + enum.OpenableVisuals.Layer: + True: {state: "spray_colors" , color: "#73f170"} + False: {state: "spray_cap_colors" , color: "#73f170"} + +#Black +- type: entity + parent: PaintBase + id: SprayPaintBlack + suffix: Black + components: + - type: Sprite + sprite: Objects/Fun/spraycans.rsi + layers: + - state: spray + map: ["Base"] + - state: spray_cap_colors + map: ["enum.OpenableVisuals.Layer"] + color: "#3a3a3a" + - type: Paint + color: "#3a3a3a" + - type: GenericVisualizer + visuals: + enum.OpenableVisuals.Opened: + enum.OpenableVisuals.Layer: + True: {state: "spray_colors" , color: "#3a3a3a"} + False: {state: "spray_cap_colors" , color: "#3a3a3a"} + +#Orange +- type: entity + parent: PaintBase + id: SprayPaintOrange + suffix: Orange + components: + - type: Sprite + sprite: Objects/Fun/spraycans.rsi + layers: + - state: spray + map: ["Base"] + - state: spray_cap_colors + map: ["enum.OpenableVisuals.Layer"] + color: "#f6a44b" + - type: Paint + color: "#f6a44b" + - type: GenericVisualizer + visuals: + enum.OpenableVisuals.Opened: + enum.OpenableVisuals.Layer: + True: {state: "spray_colors" , color: "#f6a44b"} + False: {state: "spray_cap_colors" , color: "#f6a44b"} + +#Purple +- type: entity + parent: PaintBase + id: SprayPaintPurple + suffix: Purple + components: + - type: Sprite + sprite: Objects/Fun/spraycans.rsi + layers: + - state: spray + map: ["Base"] + - state: spray_cap_colors + map: ["enum.OpenableVisuals.Layer"] + color: "#c063f5" + - type: Paint + color: "#c063f5" + - type: GenericVisualizer + visuals: + enum.OpenableVisuals.Opened: + enum.OpenableVisuals.Layer: + True: {state: "spray_colors" , color: "#c063f5"} + False: {state: "spray_cap_colors" , color: "#c063f5"} + +#White +- type: entity + parent: PaintBase + id: SprayPaintWhite + suffix: White + components: + - type: Sprite + sprite: Objects/Fun/spraycans.rsi + layers: + - state: spray + map: ["Base"] + - state: spray_cap_colors + map: ["enum.OpenableVisuals.Layer"] + color: "#f2f2f2" + - type: Paint + color: "#f2f2f2" + - type: GenericVisualizer + visuals: + enum.OpenableVisuals.Opened: + enum.OpenableVisuals.Layer: + True: {state: "spray_colors" , color: "#f2f2f2"} + False: {state: "spray_cap_colors" , color: "#f2f2f2"} diff --git a/Resources/Prototypes/Entities/Objects/Fun/toys.yml b/Resources/Prototypes/Entities/Objects/Fun/toys.yml index fc771414b4a..d5ee3e0b4d5 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/toys.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/toys.yml @@ -35,6 +35,7 @@ damage: types: Blunt: 0 + - type: DamageOtherOnHit - type: PhysicalComposition materialComposition: Cloth: 100 @@ -629,7 +630,7 @@ sprite: Objects/Fun/ducky.rsi state: icon - type: MeleeWeapon - attackRate: 1.5 + attackRate: .6666 range: 1.5 damage: types: @@ -1386,7 +1387,7 @@ sprite: Objects/Fun/toys.rsi state: foamblade - type: MeleeWeapon - attackRate: 1.5 + attackRate: .6666 angle: 0 animation: WeaponArcThrust wideAnimationRotation: 90 @@ -1672,7 +1673,7 @@ sprite: Objects/Weapons/Melee/cutlass.rsi state: foam_icon - type: MeleeWeapon - attackRate: 1.5 + attackRate: .6666 range: 2.0 angle: 0 animation: WeaponArcThrust @@ -1942,7 +1943,7 @@ damage: 0.8 - type: MeleeWeapon wideAnimationRotation: -135 - attackRate: 10 + attackRate: .1 damage: types: Blunt: 0 @@ -1964,4 +1965,64 @@ components: - type: Sprite sprite: Objects/Fun/toys.rsi - state: shadowkin \ No newline at end of file + state: shadowkin + +- type: entity + parent: BasePlushie + id: PlushieMort + name: morty plushie + description: A plushie of the lovely Morty. It's a resilient, yet sensitive type of plush. + components: + - type: Sprite + sprite: Objects/Fun/toys.rsi + state: mortplush + +- type: entity + parent: BasePlushie + id: PlushieHarpy + name: harpy plushie + description: A soft plushie of a harpy! A small tag on it guarantees that all feathers are ethically sourced. + components: + - type: Sprite + sprite: Objects/Fun/toys.rsi + state: harpyplushie + - type: StaminaDamageOnHit + damage: 0.8 + - type: EmitSoundOnActivate + sound: + path: /Audio/DeltaV/Voice/Harpy/caw1.ogg + params: + variation: 0.05 + - type: EmitSoundOnUse + sound: + path: /Audio/DeltaV/Voice/Harpy/caw1.ogg + - type: EmitSoundOnCollide + sound: + path: /Audio/DeltaV/Voice/Harpy/caw1.ogg + params: + variation: 0.05 + - type: EmitSoundOnLand + sound: + path: /Audio/DeltaV/Voice/Harpy/caw1.ogg + params: + variation: 0.05 + - type: UseDelay + delay: 0.8 + - type: MeleeWeapon + wideAnimationRotation: -135 + attackRate: 0.5 + damage: + types: + Blunt: 0 + soundHit: + path: /Audio/DeltaV/Voice/Harpy/caw1.ogg + params: + variation: 0.05 + soundSwing: + path: /Audio/DeltaV/Voice/Harpy/caw1.ogg + params: + variation: 0.05 + soundNoDamage: + path: /Audio/DeltaV/Voice/Harpy/caw1.ogg + params: + variation: 0.05 \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml b/Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml index e318d7b188d..874797b40a4 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml @@ -15,6 +15,7 @@ - type: Tag tags: - Sheet + - NoPaint - type: Material - type: Damageable damageContainer: Inorganic @@ -234,6 +235,18 @@ Quantity: 0.5 canReact: false +- type: entity + parent: SheetRGlass + id: SheetRGlass10 + name: reinforced glass + suffix: Single + components: + - type: Sprite + state: rglass + - type: Stack + stackType: ReinforcedGlass + count: 10 + - type: entity parent: SheetGlassBase id: SheetPGlass @@ -323,6 +336,18 @@ Quantity: 10 canReact: false +- type: entity + parent: SheetPGlass + id: SheetPGlass10 + name: plasma glass + suffix: 10 + components: + - type: Sprite + state: pglass + - type: Stack + stackType: PlasmaGlass + count: 10 + - type: entity parent: SheetPGlass id: SheetRPGlass @@ -391,6 +416,18 @@ stackType: ReinforcedPlasmaGlass count: 1 +- type: entity + parent: SheetRPGlass + id: SheetRPGlass10 + name: reinforced plasma glass + suffix: Single + components: + - type: Sprite + state: rpglass + - type: Stack + stackType: ReinforcedPlasmaGlass + count: 10 + - type: entity parent: SheetGlassBase id: SheetUGlass @@ -480,6 +517,18 @@ stackType: UraniumGlass count: 1 +- type: entity + parent: SheetUGlass + id: SheetUGlass10 + name: uranium glass + suffix: 10 + components: + - type: Sprite + state: uglass + - type: Stack + stackType: UraniumGlass + count: 10 + - type: entity parent: SheetUGlass id: SheetRUGlass @@ -547,6 +596,18 @@ stackType: ReinforcedUraniumGlass count: 1 +- type: entity + parent: SheetRUGlass + id: SheetRUGlass10 + name: reinforced uranium glass + suffix: 10 + components: + - type: Sprite + state: ruglass + - type: Stack + stackType: ReinforcedUraniumGlass + count: 10 + - type: entity parent: SheetGlassBase id: SheetClockworkGlass @@ -623,3 +684,15 @@ - type: Stack stackType: ClockworkGlass count: 1 + +- type: entity + parent: SheetClockworkGlass + id: SheetClockworkGlass10 + name: clockwork glass + suffix: 10 + components: + - type: Sprite + state: cglass + - type: Stack + stackType: ClockworkGlass + count: 10 diff --git a/Resources/Prototypes/Entities/Objects/Materials/Sheets/metal.yml b/Resources/Prototypes/Entities/Objects/Materials/Sheets/metal.yml index f486125ff68..072c46626f3 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/Sheets/metal.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/Sheets/metal.yml @@ -15,6 +15,7 @@ tags: - Sheet - Metal + - NoPaint - type: Damageable damageContainer: Inorganic damageModifierSet: Metallic @@ -294,6 +295,8 @@ - type: ShortConstruction entries: - prototype: SecureWindoor + - type: TwistedConstructionTarget + replacementProto: RunedMetal1 - type: entity parent: SheetPlasteel diff --git a/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml b/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml index ae6770d631d..c0d686e2999 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml @@ -12,6 +12,7 @@ - type: Tag tags: - Sheet + - NoPaint - type: Damageable damageContainer: Inorganic - type: Destructible @@ -110,6 +111,7 @@ - type: Tag tags: - Sheet + - NoPaint - type: UserInterface interfaces: enum.RadialSelectorUiKey.Key: @@ -145,6 +147,7 @@ tags: - Plastic - Sheet + - NoPaint - type: Material - type: PhysicalComposition materialComposition: diff --git a/Resources/Prototypes/Entities/Objects/Materials/crystal_shard.yml b/Resources/Prototypes/Entities/Objects/Materials/crystal_shard.yml index 8f522abce42..2880bd00ec4 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/crystal_shard.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/crystal_shard.yml @@ -20,7 +20,7 @@ - type: SpaceGarbage - type: MeleeWeapon wideAnimationRotation: -22.5 - attackRate: 1.5 + attackRate: .6666 damage: types: Slash: 3.5 diff --git a/Resources/Prototypes/Entities/Objects/Materials/materials.yml b/Resources/Prototypes/Entities/Objects/Materials/materials.yml index c72e503b498..fde9aa692d6 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/materials.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/materials.yml @@ -12,6 +12,7 @@ - type: Tag tags: - RawMaterial + - NoPaint - type: Damageable damageContainer: Inorganic - type: Destructible diff --git a/Resources/Prototypes/Entities/Objects/Materials/shards.yml b/Resources/Prototypes/Entities/Objects/Materials/shards.yml index 5e0b8890ccd..e90aafa4142 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/shards.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/shards.yml @@ -43,11 +43,12 @@ mask: - ItemMask - type: DamageOtherOnHit - damage: - types: - Slash: 2 + meleeDamageMultiplier: 2 - type: EmbeddableProjectile sound: /Audio/Weapons/bladeslice.ogg + removalTime: 2.5 + autoRemoveDuration: 30 + - type: EmbedPassiveDamage - type: Tag tags: - Trash @@ -81,6 +82,13 @@ - type: DeleteOnTrigger - type: StaticPrice price: 0 + - type: Scalpel + speed: 0.45 + - type: SurgeryTool + startSound: + path: /Audio/Medical/Surgery/scalpel1.ogg + endSound: + path: /Audio/Medical/Surgery/scalpel2.ogg - type: entity parent: ShardBase @@ -161,6 +169,10 @@ damage: types: Slash: 5.5 + - type: EmbedPassiveDamage + damage: + types: + Slash: 0.15 - type: WelderRefinable refineResult: - id: SheetGlass1 diff --git a/Resources/Prototypes/Entities/Objects/Misc/briefcases.yml b/Resources/Prototypes/Entities/Objects/Misc/briefcases.yml index 760a0bafb68..bd1b7c8b24e 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/briefcases.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/briefcases.yml @@ -21,6 +21,8 @@ heavyDamageBaseModifier: 2 heavyStaminaCost: 5 maxTargets: 8 + - type: DamageOtherOnHit + staminaCost: 5 - type: Tag tags: - Briefcase diff --git a/Resources/Prototypes/Entities/Objects/Misc/broken_bottle.yml b/Resources/Prototypes/Entities/Objects/Misc/broken_bottle.yml index a6cbe9a6e7e..dc9ee0d09df 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/broken_bottle.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/broken_bottle.yml @@ -6,12 +6,12 @@ components: - type: Sharp - type: MeleeWeapon - attackRate: 1.4 + attackRate: .71 range: 1.4 damage: types: Slash: 4 - heavyRateModifier: 0.8 + heavyRateModifier: 1.25 heavyRangeModifier: 0.8 heavyDamageBaseModifier: 1.5 heavyStaminaCost: 5 @@ -25,7 +25,7 @@ - type: DamageOtherOnHit damage: types: - Slash: 2 + Slash: 4 - type: Tag tags: - Trash diff --git a/Resources/Prototypes/Entities/Objects/Misc/buffering.yml b/Resources/Prototypes/Entities/Objects/Misc/buffering.yml index dbd35344594..c97ffe89edd 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/buffering.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/buffering.yml @@ -1,6 +1,6 @@ - type: entity id: BufferingIcon - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Misc/buffering.rsi diff --git a/Resources/Prototypes/Entities/Objects/Misc/fire_extinguisher.yml b/Resources/Prototypes/Entities/Objects/Misc/fire_extinguisher.yml index 32d8ea7540a..c3b0eebe982 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/fire_extinguisher.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/fire_extinguisher.yml @@ -38,18 +38,20 @@ hasSafety: true - type: MeleeWeapon wideAnimationRotation: 180 - attackRate: 0.8 + attackRate: 1.25 bluntStaminaDamageFactor: 2.5 range: 1.75 damage: types: Blunt: 8 - heavyRateModifier: 0.8 + heavyRateModifier: 1.25 heavyDamageBaseModifier: 2 heavyStaminaCost: 7.5 maxTargets: 6 soundHit: path: /Audio/Weapons/smash.ogg + - type: DamageOtherOnHit + staminaCost: 9 - type: Tool qualities: - Rolling @@ -69,7 +71,7 @@ name: extinguisher spray id: ExtinguisherSpray parent: Vapor - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Effects/extinguisherSpray.rsi diff --git a/Resources/Prototypes/Entities/Objects/Misc/paper.yml b/Resources/Prototypes/Entities/Objects/Misc/paper.yml index c72f7a2e91e..cc12965a953 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/paper.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/paper.yml @@ -268,7 +268,7 @@ - type: entity parent: Paper id: PaperWritten - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Paper - type: Sprite @@ -332,12 +332,13 @@ - type: PhysicalComposition materialComposition: Steel: 25 - -- type: entity - parent: Pen - id: PenEmbeddable - abstract: true - components: + - type: Tending + speed: 0.55 + - type: SurgeryTool + startSound: + path: /Audio/Medical/Surgery/retractor1.ogg + endSound: + path: /Audio/Medical/Surgery/hemostat1.ogg - type: EmbeddableProjectile offset: 0.3,0.0 removalTime: 0.0 @@ -348,6 +349,16 @@ types: Piercing: 3 +- type: entity + parent: Pen + id: PenEmbeddable + abstract: true + components: + - type: DamageOtherOnHit + damage: + types: + Piercing: 5 + #TODO: I want the luxury pen to write a cool font like Merriweather in the future. - type: entity @@ -401,6 +412,10 @@ - type: Sprite sprite: Objects/Misc/bureaucracy.rsi state: pen_cap + - type: DamageOtherOnHit + damage: + types: + Piercing: 8 - type: entity name: CentCom pen diff --git a/Resources/Prototypes/Entities/Objects/Misc/spaceshroom.yml b/Resources/Prototypes/Entities/Objects/Misc/spaceshroom.yml index 9ec6ce0ed11..15717877157 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/spaceshroom.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/spaceshroom.yml @@ -19,14 +19,12 @@ !type:PhysShapeCircle radius: 0.2 - type: InteractionOutline - # TODO: Nuke this shit - - type: OreVein - oreChance: 1.0 - currentOre: SpaceShrooms - type: Gatherable - whitelist: + toolWhitelist: components: - Hands + loot: + All: SpaceshroomGather - type: Damageable damageContainer: Inorganic damageModifierSet: Wood @@ -39,6 +37,13 @@ - !type:DoActsBehavior acts: [ "Destruction" ] +- type: entityLootTable + id: SpaceshroomGather + entries: + - id: FoodSpaceshroom + amount: 1 + maxAmount: 1 + - type: entity name: spaceshroom parent: FoodProduceBase diff --git a/Resources/Prototypes/Entities/Objects/Misc/subdermal_implants.yml b/Resources/Prototypes/Entities/Objects/Misc/subdermal_implants.yml index a0f5e254d5f..36b1970f3e5 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/subdermal_implants.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/subdermal_implants.yml @@ -17,7 +17,7 @@ id: SadTromboneImplant name: sad trombone implant description: This implant plays a sad tune when the user dies. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: SubdermalImplant whitelist: @@ -37,7 +37,7 @@ id: LightImplant name: light implant description: This implant emits light from the user's skin on activation. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: SubdermalImplant implantAction: ActionToggleLight @@ -59,7 +59,7 @@ id: BikeHornImplant name: bike horn implant description: This implant lets the user honk anywhere at any time. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: SubdermalImplant implantAction: ActionActivateHonkImplant @@ -80,7 +80,7 @@ id: TrackingImplant name: tracking implant description: This implant has a tracking device attached to the suit sensor network, as well as a condition monitor for the Security radio channel. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: SubdermalImplant whitelist: @@ -110,7 +110,7 @@ id: StorageImplant name: storage implant description: This implant grants hidden storage within a person's body using bluespace technology. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: SubdermalImplant implantAction: ActionOpenStorageImplant @@ -134,7 +134,7 @@ id: FreedomImplant name: freedom implant description: This implant lets the user break out of hand restraints up to three times before ceasing to function anymore. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: SubdermalImplant implantAction: ActionActivateFreedomImplant @@ -147,7 +147,7 @@ id: UplinkImplant name: uplink implant description: This implant lets the user access a hidden Syndicate uplink at will. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: SubdermalImplant implantAction: ActionOpenUplinkImplant @@ -168,7 +168,7 @@ id: EmpImplant name: EMP implant description: This implant creates an electromagnetic pulse when activated. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: SubdermalImplant implantAction: ActionActivateEmpImplant @@ -183,7 +183,7 @@ id: ScramImplant name: scram implant description: This implant randomly teleports the user within a large radius when activated. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: SubdermalImplant implantAction: ActionActivateScramImplant @@ -195,7 +195,7 @@ id: DnaScramblerImplant name: DNA scrambler implant description: This implant lets the user randomly change their appearance and name once. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: SubdermalImplant implantAction: ActionActivateDnaScramblerImplant @@ -210,7 +210,7 @@ id: MicroBombImplant name: micro-bomb implant description: This implant detonates the user upon activation or upon death. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: SubdermalImplant permanent: true @@ -240,7 +240,7 @@ id: MacroBombImplant name: macro-bomb implant description: This implant creates a large explosion on death after a preprogrammed countdown. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: SubdermalImplant permanent: true @@ -275,7 +275,7 @@ id: DeathAcidifierImplant name: death-acidifier implant description: This implant melts the user and their equipment upon death. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: SubdermalImplant permanent: true @@ -299,7 +299,7 @@ id: DeathRattleImplant name: death rattle implant description: This implant will inform the Syndicate radio channel should the user fall into critical condition or die. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: SubdermalImplant permanent: true @@ -319,7 +319,7 @@ id: MindShieldImplant name: mind-shield implant description: This implant will ensure loyalty to Nanotrasen and prevent mind control devices. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: SubdermalImplant permanent: true diff --git a/Resources/Prototypes/Entities/Objects/Misc/tiles.yml b/Resources/Prototypes/Entities/Objects/Misc/tiles.yml index 78bbd32f174..3d3675dd33d 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/tiles.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/tiles.yml @@ -12,11 +12,15 @@ - type: DamageOtherOnHit damage: types: - Blunt: 2 - - type: EmbeddableProjectile - sound: /Audio/Weapons/star_hit.ogg + Blunt: 5.5 + staminaCost: 5 + soundHit: + collection: MetalThud - type: Stack count: 1 + - type: Tag + tags: + - NoPaint - type: Damageable damageContainer: Inorganic - type: Destructible @@ -64,9 +68,9 @@ - type: DamageOtherOnHit damage: types: - Blunt: 5 #Metal floor tiles deal more damage than standard - - type: EmbeddableProjectile - sound: /Audio/Weapons/block_metal1.ogg + Blunt: 9.5 #Metal floor tiles deal more damage than standard + staminaCost: 6 + soundHit: /Audio/Weapons/block_metal1.ogg - type: entity name: steel dark checker tile diff --git a/Resources/Prototypes/Entities/Objects/Misc/utensils.yml b/Resources/Prototypes/Entities/Objects/Misc/utensils.yml index 86667f094fd..f15219e1377 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/utensils.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/utensils.yml @@ -8,6 +8,13 @@ - type: Item # TODO add inhand sprites for all utensils sprite: Objects/Misc/utensils.rsi - type: SpaceGarbage + - type: Tweezers # Any utensil can poorly remove organs + speed: 0.2 + - type: SurgeryTool + startSound: + path: /Audio/Medical/Surgery/retractor1.ogg + endSound: + path: /Audio/Medical/Surgery/hemostat1.ogg - type: entity parent: UtensilBase @@ -24,7 +31,7 @@ - Trash - type: MeleeWeapon wideAnimationRotation: 180 - attackRate: 1.5 + attackRate: .6666 damage: types: Blunt: 0 @@ -46,10 +53,20 @@ - Fork - type: MeleeWeapon wideAnimationRotation: 180 - attackRate: 1.5 + attackRate: .6666 damage: types: Piercing: 5 + - type: Tweezers # Forks are better than spoons + speed: 0.35 + - type: DamageOtherOnHit + staminaCost: 2.5 + - type: EmbeddableProjectile + removalTime: 0.5 + autoRemoveDuration: 10 + - type: EmbedPassiveDamage + - type: ThrowingAngle + angle: 180 - type: entity parent: UtensilBasePlastic @@ -62,6 +79,8 @@ - type: Utensil types: - Fork + - type: Tweezers # Forks are better than spoons + speed: 0.35 - type: entity parent: UtensilBase @@ -81,10 +100,13 @@ - Spoon - type: MeleeWeapon wideAnimationRotation: 180 - attackRate: 1.5 + attackRate: .6666 damage: types: Blunt: 1 + - type: DamageOtherOnHit + - type: ThrowingAngle + angle: 180 - type: Shovel speedModifier: 0.1 # you can try @@ -139,9 +161,12 @@ - Spoon - type: MeleeWeapon wideAnimationRotation: 180 - attackRate: 2 + attackRate: .5 damage: types: Blunt: 2 + - type: DamageOtherOnHit + - type: ThrowingAngle + angle: 180 - type: Shovel speedModifier: 0.05 # nah diff --git a/Resources/Prototypes/Entities/Objects/Power/lights.yml b/Resources/Prototypes/Entities/Objects/Power/lights.yml index b18a0feaa52..289736f6717 100644 --- a/Resources/Prototypes/Entities/Objects/Power/lights.yml +++ b/Resources/Prototypes/Entities/Objects/Power/lights.yml @@ -234,7 +234,7 @@ name: exterior light tube description: A high power high energy bulb for the depths of space. May contain mercury. id: ExteriorLightTube - noSpawn: true # DeltaV - Don't map these + categories: [ HideSpawnMenu ] # DeltaV - Don't map these components: - type: LightBulb color: "#B4FCF0" diff --git a/Resources/Prototypes/Entities/Objects/Shields/shields.yml b/Resources/Prototypes/Entities/Objects/Shields/shields.yml index e7ebb1b98d4..f0d9a7c0b1b 100644 --- a/Resources/Prototypes/Entities/Objects/Shields/shields.yml +++ b/Resources/Prototypes/Entities/Objects/Shields/shields.yml @@ -309,55 +309,6 @@ Piercing: 1 #Have it break into brass when clock cult is in -- type: entity - name: mirror shield - parent: BaseShield - id: MirrorShield - description: Glows an eerie red. You hear the Geometer whispering... - components: - - type: Sprite - state: mirror-icon - - type: Item - heldPrefix: mirror - - type: Reflect - reflectProb: 0.95 - innate: true - reflects: - - Energy - - type: Blocking #Mirror shield reflects heat/laser, but is relatively weak to everything else. - passiveBlockModifier: - coefficients: - Blunt: 1.2 - Slash: 1.2 - Piercing: 1.2 - Heat: .7 - activeBlockModifier: - coefficients: - Blunt: 1.2 - Slash: 1.2 - Piercing: 1.2 - Heat: .6 - flatReductions: - Heat: 1 - blockSound: !type:SoundPathSpecifier - path: /Audio/Effects/glass_step.ogg - - type: Destructible - thresholds: - - trigger: - !type:DamageTrigger - damage: 40 - behaviors: - - !type:DoActsBehavior - acts: [ "Destruction" ] - - !type:PlaySoundBehavior - sound: - collection: GlassBreak - - !type:SpawnEntitiesBehavior - spawn: - SheetGlass: - min: 5 - max: 5 - - type: entity name: energy shield parent: BaseItem diff --git a/Resources/Prototypes/Entities/Objects/Specific/Chapel/bibles.yml b/Resources/Prototypes/Entities/Objects/Specific/Chapel/bibles.yml index 23ce5a36ee2..7dd0f0b71dd 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Chapel/bibles.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Chapel/bibles.yml @@ -45,7 +45,7 @@ types: Blunt: 4 Holy: 20 - heavyRateModifier: 0.8 + heavyRateModifier: 1.25 heavyDamageBaseModifier: 1 heavyStaminaCost: 5 maxTargets: 4 @@ -93,7 +93,7 @@ id: ActionBibleSummon name: Summon familiar description: Summon a familiar that will aid you and gain humanlike intelligence once inhabited by a soul. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: { sprite: Clothing/Head/Hats/witch.rsi, state: icon } diff --git a/Resources/Prototypes/Entities/Objects/Specific/Forensics/forensics.yml b/Resources/Prototypes/Entities/Objects/Specific/Forensics/forensics.yml index 9b3be6d7780..aba4cd40efe 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Forensics/forensics.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Forensics/forensics.yml @@ -21,7 +21,7 @@ - type: entity id: ScentTrackEffect - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TimedDespawn lifetime: 1 diff --git a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/tools.yml b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/tools.yml index c43cce1f8b1..cf347513fdb 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/tools.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Hydroponics/tools.yml @@ -23,6 +23,10 @@ heavyDamageBaseModifier: 1.2 maxTargets: 5 angle: 100 + - type: DamageOtherOnHit + staminaCost: 5 + - type: ThrowingAngle + angle: 135 - type: Item sprite: Objects/Tools/Hydroponics/hoe.rsi @@ -40,18 +44,29 @@ state: icon - type: MeleeWeapon wideAnimationRotation: 90 - attackRate: 0.8 + attackRate: 1.25 damage: types: - Pierce: 7 - heavyRateModifier: 0.9 + Piercing: 7 + heavyRateModifier: 1.1 heavyRangeModifier: 1.25 heavyDamageBaseModifier: 1.2 maxTargets: 1 angle: 20 + - type: DamageOtherOnHit + staminaCost: 5 - type: Item sprite: Objects/Tools/Hydroponics/clippers.rsi storedRotation: -90 + - type: Retractor # Same as wirecutters + speed: 0.35 + - type: Hemostat + speed: 0.6 + - type: SurgeryTool + startSound: + path: /Audio/Medical/Surgery/retractor1.ogg + endSound: + path: /Audio/Medical/Surgery/retractor2.ogg - type: entity name: scythe @@ -69,12 +84,19 @@ damage: types: Slash: 7 - heavyRateModifier: 0.8 + heavyRateModifier: 1.25 heavyRangeModifier: 1.25 heavyDamageBaseModifier: 1.5 heavyStaminaCost: 5 maxTargets: 1 angle: 120 + - type: DamageOtherOnHit + staminaCost: 7 + - type: EmbeddableProjectile + sound: /Audio/Weapons/star_hit.ogg + - type: EmbedPassiveDamage + - type: ThrowingAngle + angle: 315 - type: Item size: Normal - type: Clothing @@ -100,15 +122,26 @@ - type: MeleeWeapon wideAnimationRotation: 135 swingLeft: true - attackRate: 1.25 + attackRate: .8 range: 1.4 damage: types: Slash: 10 heavyDamageBaseModifier: 1.2 heavyStaminaCost: 5 + - type: DamageOtherOnHit + meleeDamageMultiplier: 1.5 + staminaCost: 6.5 + - type: EmbeddableProjectile + sound: /Audio/Weapons/star_hit.ogg + - type: EmbedPassiveDamage - type: Item sprite: Objects/Tools/Hydroponics/hatchet.rsi + - type: BoneSaw + speed: 0.35 + - type: SurgeryTool + startSound: + path: /Audio/Medical/Surgery/saw.ogg - type: entity name: spade @@ -128,13 +161,17 @@ types: Blunt: 6 Slash: 2 # I guess you can stab it into them? - heavyRateModifier: 0.8 + heavyRateModifier: 1.25 heavyRangeModifier: 1.25 heavyDamageBaseModifier: 1.2 heavyStaminaCost: 5 angle: 80 soundHit: collection: MetalThud + - type: DamageOtherOnHit + staminaCost: 5 + - type: ThrowingAngle + angle: 45 - type: Item sprite: Objects/Tools/Hydroponics/spade.rsi - type: Shovel diff --git a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml index a3a26299bf3..2aee628394f 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml @@ -13,7 +13,7 @@ types: Blunt: 2 bluntStaminaDamageFactor: 3 - heavyRateModifier: 0.8 + heavyRateModifier: 1.25 heavyRangeModifier: 1.25 heavyDamageBaseModifier: 1.25 heavyStaminaCost: 7.5 @@ -21,6 +21,11 @@ angle: 180 soundHit: collection: MetalThud + - type: DamageOtherOnHit + damage: + types: + Blunt: 6 + staminaCost: 8 - type: Spillable solution: absorbed - type: Wieldable @@ -64,7 +69,7 @@ types: Blunt: 2 bluntStaminaDamageFactor: 3 - heavyRateModifier: 0.8 + heavyRateModifier: 1.25 heavyRangeModifier: 1.25 heavyDamageBaseModifier: 1.25 heavyStaminaCost: 7.5 @@ -72,6 +77,11 @@ angle: 180 soundHit: collection: MetalThud + - type: DamageOtherOnHit + damage: + types: + Blunt: 6 + staminaCost: 8 - type: Spillable solution: absorbed - type: Wieldable diff --git a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/soap.yml b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/soap.yml index 5fe88f8d0cf..0e84e54a642 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/soap.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/soap.yml @@ -65,6 +65,7 @@ solution: soap - type: DeleteOnSolutionEmpty solution: soap + - type: PaintRemover - type: FlavorProfile flavors: - clean @@ -149,7 +150,7 @@ - type: entity name: soaplet id: SoapletSyndie - noSpawn: true + categories: [ HideSpawnMenu ] parent: Soap description: A tiny piece of syndicate soap. components: diff --git a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml index cddf7f6075a..998d3ecf03e 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml @@ -104,7 +104,7 @@ - type: entity id: Vapor name: "vapor" - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: SolutionContainerManager solutions: @@ -136,7 +136,7 @@ - type: entity id: BigVapor parent: Vapor - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Effects/chempuff.rsi diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mail/Items/misc.yml b/Resources/Prototypes/Entities/Objects/Specific/Mail/Items/misc.yml index 6f1c86e00ba..6f9c3157e96 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Mail/Items/misc.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Mail/Items/misc.yml @@ -3,7 +3,7 @@ - type: entity id: DelayedSmoke parent: BaseItem - noSpawn: true + categories: [ HideSpawnMenu ] name: delayed smoke suffix: "(10s)" components: @@ -16,7 +16,7 @@ - type: entity id: AdminInstantEffectEMP7 - noSpawn: true + categories: [ HideSpawnMenu ] suffix: EMP, 7 meters parent: AdminInstantEffectBase components: @@ -27,7 +27,7 @@ - type: entity id: DelayedEMP parent: BaseItem - noSpawn: true + categories: [ HideSpawnMenu ] name: delayed EMP (7 meters) components: - type: Sprite #DeltaV: Apparently these want sprites, probably because they're baseitems diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mail/base_mail_large.yml b/Resources/Prototypes/Entities/Objects/Specific/Mail/base_mail_large.yml index a5dcefacba5..f31b2aa78fd 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Mail/base_mail_large.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Mail/base_mail_large.yml @@ -73,7 +73,7 @@ isLarge: true - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMailLarge id: MailLargeAdminFun suffix: adminfun diff --git a/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml b/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml index 6b5c634e938..9da1e9753fc 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Mech/mechs.yml @@ -43,7 +43,7 @@ type: MechBoundUserInterface - type: MeleeWeapon hidden: true - attackRate: 0.75 + attackRate: 1.3333 damage: types: Blunt: 25 #thwack @@ -204,7 +204,7 @@ - Hamster - type: MeleeWeapon hidden: true - attackRate: 0.8 + attackRate: 1.25 damage: types: Blunt: 10 #thwack @@ -267,7 +267,7 @@ - VimPilot - type: MeleeWeapon hidden: true - attackRate: 0.8 + attackRate: 1.25 damage: types: Blunt: 10 #thwack diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/defib.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/defib.yml index 4a61074a8d5..1a905685934 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Medical/defib.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/defib.yml @@ -42,6 +42,13 @@ - type: GuideHelp guides: - Medical Doctor + - type: DamageOtherOnHit + damage: + types: + Blunt: 16 + staminaCost: 22.5 + soundHit: + path: /Audio/Weapons/smash.ogg - type: entity id: Defibrillator diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/handheld_crew_monitor.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/handheld_crew_monitor.yml index ab338b9da95..a9d6bbb20f5 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Medical/handheld_crew_monitor.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/handheld_crew_monitor.yml @@ -38,6 +38,10 @@ - HighRiskItem - type: StealTarget stealGroup: HandheldCrewMonitor + - type: DamageOtherOnHit + damage: + types: + Blunt: 5 - type: entity id: HandheldCrewMonitorEmpty @@ -47,7 +51,7 @@ - type: ItemSlots slots: cell_slot: - name: power-cell-slot-component-slot-name-default + name: power-cell-slot-component-slot-name-default - type: entity id: SpyCrewMonitor @@ -73,7 +77,7 @@ - type: ItemSlots slots: cell_slot: - name: power-cell-slot-component-slot-name-default + name: power-cell-slot-component-slot-name-default - type: entity id: SyndiCrewMonitor @@ -97,5 +101,4 @@ - type: ItemSlots slots: cell_slot: - name: power-cell-slot-component-slot-name-default - \ No newline at end of file + name: power-cell-slot-component-slot-name-default diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml index 252f2f48eae..6a0f0a3c23d 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml @@ -32,19 +32,19 @@ - Biological damage: types: - Heat: -5 - Cold: -5 - Shock: -5 - Caustic: -1.5 + Heat: -10 + Cold: -10 + Shock: -10 + Caustic: -5 #Was 5 per type & 1.5 caustic, Buffed due to limb damage changes healingBeginSound: path: "/Audio/Items/Medical/ointment_begin.ogg" healingEndSound: path: "/Audio/Items/Medical/ointment_end.ogg" - type: Stack stackType: Ointment - count: 10 + count: 15 #Was 10, Buffed due to limb damage changes - type: StackPrice - price: 5 + price: 10 #Was 5, Buffed due to surgery changes - type: entity id: Ointment1 @@ -83,19 +83,19 @@ - Biological damage: types: - Heat: -10 - Cold: -10 - Shock: -10 - Caustic: -10 + Heat: -15 + Cold: -15 + Shock: -15 + Caustic: -15 #Was 10 per type, Buffed due to limb damage changes healingBeginSound: path: "/Audio/Items/Medical/ointment_begin.ogg" healingEndSound: path: "/Audio/Items/Medical/ointment_end.ogg" - type: Stack stackType: RegenerativeMesh - count: 10 + count: 15 #Was 10, Buffed due to limb damage changes - type: StackPrice - price: 20 + price: 40 #Was 20, Buffed due to limb damage changes - type: entity id: OintmentAdvanced1 @@ -123,16 +123,16 @@ - Biological damage: groups: - Brute: -15 # 5 for each type in the group + Brute: -30 # was 5 (-15 Brute) for each, Buffed due to limb damage changes healingBeginSound: path: "/Audio/Items/Medical/brutepack_begin.ogg" healingEndSound: path: "/Audio/Items/Medical/brutepack_end.ogg" - type: Stack stackType: Brutepack - count: 10 + count: 15 #Was 10, Buffed due to limb damage changes - type: StackPrice - price: 5 + price: 10 #Was 5, Buffed due to limb damage changes - type: entity id: Brutepack1 @@ -172,7 +172,7 @@ - Biological damage: groups: - Brute: -30 # 10 for each type in the group + Brute: -45 # was 10 for each, now 20 for each type in the group, Buffed due to Limb Damage Changes bloodlossModifier: -10 # a suture should stop ongoing bleeding healingBeginSound: path: "/Audio/Items/Medical/brutepack_begin.ogg" @@ -180,9 +180,9 @@ path: "/Audio/Items/Medical/brutepack_end.ogg" - type: Stack stackType: MedicatedSuture - count: 10 + count: 15 #Was 10, Buffed due to surgery changes - type: StackPrice - price: 20 + price: 40 #Was 20, Buffed due to limb damage changes - type: entity id: BrutepackAdvanced1 @@ -210,17 +210,17 @@ - Biological damage: types: - Bloodloss: -0.5 #lowers bloodloss damage - ModifyBloodLevel: 15 #restores about 5% blood per use on standard humanoids. + Bloodloss: -2.5 #lowers bloodloss damage, was .5, buffed due to Limb Damage Changes + ModifyBloodLevel: 30 #used to restore 5% blood per use, now restores about 10% blood per use on standard Buffed due to Limb Damage Changes healingBeginSound: path: "/Audio/Items/Medical/brutepack_begin.ogg" healingEndSound: path: "/Audio/Items/Medical/brutepack_end.ogg" - type: Stack stackType: Bloodpack - count: 10 + count: 15 #Was 10, Buffed due to limb damage changes - type: StackPrice - price: 10 + price: 20 #Was 10, Buffed due to limb damage changes - type: entity parent: Bloodpack @@ -276,8 +276,8 @@ - Biological damage: types: - Slash: -5 - Piercing: -10 + Slash: -10 # Was 5 + Piercing: -15 # Was 10, Buffed due to limb damage changes bloodlossModifier: -10 healingBeginSound: path: "/Audio/Items/Medical/brutepack_begin.ogg" @@ -285,9 +285,9 @@ path: "/Audio/Items/Medical/brutepack_end.ogg" - type: Stack stackType: Gauze - count: 10 + count: 15 #Was 10, Buffed due to limb damage changes - type: StackPrice - price: 10 + price: 20 #Was 10, Buffed due to limb damage changes - type: entity id: Gauze1 @@ -304,7 +304,7 @@ components: - type: Stack lingering: true - count: 10 + count: 1 - type: entity name: aloe cream @@ -317,7 +317,7 @@ state: cream - type: Stack stackType: AloeCream - count: 10 + count: 15 #Was 10, Buffed due to limb damage changes - type: entity parent: BaseHealingItem @@ -584,6 +584,46 @@ - ReagentId: SpaceDrugs Quantity: 15 +- type: entity + name: pill canister (LSD 15u) + parent: PillCanister + id: PillCanisterSpaceDrugs + suffix: Space Drugs, 5 + components: + - type: Label + currentLabel: LSD 15u + - type: StorageFill + contents: + - id: PillSpaceDrugs + amount: 5 + +- type: entity + name: pax + parent: Pill + id: PillPax + components: + - type: SolutionContainerManager + solutions: + food: + maxVol: 20 + reagents: + - ReagentId: Pax + Quantity: 10 + +- type: entity + name: pill canister (Pax 10u) + parent: PillCanister + id: PillCanisterPax + suffix: Pax, 5 + components: + - type: Label + currentLabel: Pax 10u + - type: StorageFill + contents: + - id: PillPax + amount: 5 + + - type: entity name: pill (tricordrazine 10u) parent: Pill diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/healthanalyzer.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/healthanalyzer.yml index c01aaa84a9d..47e633276b8 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Medical/healthanalyzer.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/healthanalyzer.yml @@ -37,6 +37,10 @@ - type: GuideHelp guides: - Medical Doctor + - type: DamageOtherOnHit + damage: + types: + Blunt: 5 - type: entity id: HandheldHealthAnalyzer diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml index 027d53f5bcd..f990736d700 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml @@ -8,9 +8,10 @@ - type: Sprite - type: StaticPrice price: 20 - - type: Tag - tags: - - SurgeryTool +# - type: Tag +# tags: +# - SurgeryTool + - type: SurgeryTool # Cautery @@ -32,6 +33,48 @@ Heat: 5 soundHit: path: /Audio/Effects/lightburn.ogg + - type: DamageOtherOnHit + - type: ThrowingAngle + angle: 45 + - type: SurgeryTool + startSound: + path: /Audio/Medical/Surgery/cautery1.ogg + endSound: + path: /Audio/Medical/Surgery/cautery2.ogg + - type: Cautery + +# TODO: Make a system to toggle modes so people have to think a bit more. + +- type: entity + name: searing tool + id: EnergyCautery + parent: Cautery + description: A cautery with an energy tip, also serves as a drill in its powered state. + components: + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/e-cautery.rsi + state: e-cautery-on + - type: Item + sprite: Objects/Specific/Medical/Surgery/e-cautery.rsi + inhandVisuals: + left: + - state: inhand-left-on + right: + - state: inhand-right-on + - type: SurgeryTool + startSound: + path: /Audio/Medical/Surgery/cautery1.ogg + endSound: + path: /Audio/Medical/Surgery/cautery2.ogg + - type: MeleeWeapon + damage: + types: + Piercing: 10 + Heat: 1 + - type: Cautery + speed: 1.5 + - type: Drill + speed: 1.5 # Drill @@ -50,7 +93,7 @@ - 0,0,1,0 - 1,1,1,1 - type: MeleeWeapon - attackRate: 0.75 + attackRate: 1.3333 range: 1.4 damage: types: @@ -61,8 +104,21 @@ angle: 20 soundHit: path: /Audio/Items/drill_hit.ogg + - type: DamageOtherOnHit + damage: + types: + Piercing: 11 + staminaCost: 8 + - type: EmbeddableProjectile + - type: EmbedPassiveDamage + - type: ThrowingAngle + angle: 90 - type: StaticPrice price: 40 + - type: SurgeryTool + startSound: + path: /Audio/Medical/Surgery/saw.ogg + - type: Drill # Scalpel @@ -86,18 +142,61 @@ - type: MeleeWeapon wideAnimationRotation: 90 swingLeft: true - attackRate: 1.25 + attackRate: .8 range: 1.4 damage: types: Slash: 7.5 - heavyRateModifier: 0.8 + heavyRateModifier: 1.25 heavyDamageBaseModifier: 1.25 heavyStaminaCost: 5 maxTargets: 1 angle: 20 soundHit: path: /Audio/Weapons/bladeslice.ogg + - type: DamageOtherOnHit + staminaCost: 5 + - type: EmbeddableProjectile + - type: EmbedPassiveDamage + - type: ThrowingAngle + angle: 90 + - type: SurgeryTool + startSound: + path: /Audio/Medical/Surgery/scalpel1.ogg + endSound: + path: /Audio/Medical/Surgery/scalpel2.ogg + - type: Scalpel + +- type: entity + name: energy scalpel + id: EnergyScalpel + parent: Scalpel + description: A scalpel which uses an energy blade, also serves as a saw in its powered state. + components: + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/e-scalpel.rsi + state: e-scalpel-on + - type: Item + sprite: Objects/Specific/Medical/Surgery/e-scalpel.rsi + inhandVisuals: + left: + - state: inhand-left-on + right: + - state: inhand-right-on + - type: SurgeryTool + startSound: + path: /Audio/Medical/Surgery/scalpel1.ogg + endSound: + path: /Audio/Medical/Surgery/scalpel2.ogg + - type: MeleeWeapon + damage: + types: + Slash: 10 + Heat: 1 + - type: Scalpel + speed: 1.5 + - type: BoneSaw + speed: 1.5 - type: entity name: shiv @@ -106,8 +205,10 @@ description: A pointy piece of glass, abraded to an edge and wrapped in tape for a handle. # Could become a decent tool or weapon with right tool mods. components: - type: Sprite + sprite: Objects/Specific/Medical/Surgery/oldscalpel.rsi state: shiv - type: Item + sprite: Objects/Specific/Medical/Surgery/oldscalpel.rsi heldPrefix: shiv - type: entity @@ -117,13 +218,17 @@ description: Made of more expensive materials, sharper and generally more reliable. components: - type: Sprite + sprite: Objects/Specific/Medical/Surgery/oldscalpel.rsi state: advanced - type: Item + sprite: Objects/Specific/Medical/Surgery/oldscalpel.rsi heldPrefix: advanced - type: MeleeWeapon damage: types: Slash: 8 + - type: Scalpel + speed: 1.25 - type: entity name: laser scalpel @@ -132,16 +237,22 @@ description: A scalpel which uses a directed laser to slice instead of a blade, for more precise surgery while also cauterizing as it cuts. components: - type: Sprite + sprite: Objects/Specific/Medical/Surgery/oldscalpel.rsi state: laser + - type: Item + sprite: Objects/Specific/Medical/Surgery/oldscalpel.rsi + heldPrefix: laser - type: MeleeWeapon damage: types: Slash: 6.5 Heat: 1 - - type: Item - heldPrefix: laser + - type: Scalpel + speed: 1.25 # These shouldnt be obtainable but yknow they are better. + - type: Cautery + speed: 1.25 -# Scissors +# Retractor - type: entity name: retractor @@ -150,30 +261,145 @@ description: A surgical tool used to hold open incisions. components: - type: Sprite - sprite: Objects/Specific/Medical/Surgery/scissors.rsi + sprite: Objects/Specific/Medical/Surgery/retractor.rsi state: retractor - type: Item - sprite: Objects/Specific/Medical/Surgery/scissors.rsi + sprite: Objects/Specific/Medical/Surgery/retractor.rsi storedRotation: 90 + - type: MeleeWeapon + wideAnimationRotation: 90 + attackRate: 1.25 + range: 1.4 + damage: + types: + Slash: 2.5 + Blunt: 2.0 + heavyRateModifier: 0.8 + heavyDamageBaseModifier: 1.25 + heavyStaminaCost: 4 + maxTargets: 1 + angle: 20 + soundHit: + path: /Audio/Weapons/bladeslice.ogg + - type: DamageOtherOnHit + staminaCost: 5 + - type: ThrowingAngle + angle: 315 + - type: EmbeddableProjectile + - type: EmbedPassiveDamage + - type: SurgeryTool + startSound: + path: /Audio/Medical/Surgery/retractor1.ogg + endSound: + path: /Audio/Medical/Surgery/retractor2.ogg + - type: Retractor + - type: Tweezers + - type: Tending + +- type: entity + name: mechanical pinches + id: AdvancedRetractor + parent: Retractor + description: A retractor with mechanical pinches, also serves as a hemostat in its powered state. + components: + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/adv-retractor.rsi + state: adv-retractor-on + - type: Item + sprite: Objects/Specific/Medical/Surgery/adv-retractor.rsi + inhandVisuals: + left: + - state: inhand-left-on + right: + - state: inhand-right-on + - type: SurgeryTool + startSound: + path: /Audio/Medical/Surgery/retractor1.ogg + endSound: + path: /Audio/Medical/Surgery/retractor2.ogg + - type: MeleeWeapon + damage: + types: + Slash: 6.5 + Heat: 1 + - type: ThrowingAngle + angle: 270 + - type: Hemostat + speed: 1.5 + - type: Retractor + speed: 1.5 + - type: Tweezers + speed: 1.5 + - type: Tending + speed: 1.5 + +# Hemostat - type: entity name: hemostat id: Hemostat - parent: Retractor + parent: BaseToolSurgery description: A surgical tool used to compress blood vessels to prevent bleeding. components: - type: Sprite + sprite: Objects/Specific/Medical/Surgery/hemostat.rsi state: hemostat - type: Item - heldPrefix: hemostat + sprite: Objects/Specific/Medical/Surgery/hemostat.rsi storedRotation: 90 + - type: MeleeWeapon + wideAnimationRotation: 90 + attackRate: 1.25 + range: 1.4 + damage: + types: + Slash: 6 + heavyRateModifier: 0.8 + heavyDamageBaseModifier: 1.25 + heavyStaminaCost: 4.5 + maxTargets: 1 + angle: 20 + soundHit: + path: /Audio/Weapons/bladeslice.ogg + - type: DamageOtherOnHit + staminaCost: 5 + - type: EmbeddableProjectile + - type: EmbedPassiveDamage + - type: ThrowingAngle + angle: 35 + - type: SurgeryTool + startSound: + path: /Audio/Medical/Surgery/retractor1.ogg + endSound: + path: /Audio/Medical/Surgery/hemostat1.ogg + - type: Hemostat + +# Bone setter +- type: entity + parent: BaseToolSurgery + id: Bonesetter + name: bone setter + description: Used for setting bones back into place. + components: + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/bonesetter.rsi + state: bonesetter + - type: Item + sprite: Objects/Specific/Medical/Surgery/bonesetter.rsi + - type: BoneSetter + +# Bone Gel +- type: entity + parent: BaseToolSurgery + id: BoneGel + name: bottle of bone gel + description: A container for bone gel that often needs to be refilled from a specialized machine. + components: + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/bone-gel.rsi + state: bone-gel + - type: BoneGel - # - type: entity - # name: bone setter - # id: BoneSetter - # parent: Retractor - # description: A surgical tool used for setting bones. - # components: # Saws - type: entity @@ -197,17 +423,26 @@ - Sawing speed: 1.0 - type: MeleeWeapon - attackRate: 0.75 + attackRate: 1.3333 range: 1.35 damage: types: Blunt: 2.5 Slash: 6.5 - heavyRateModifier: 0.8 + heavyRateModifier: 1.25 heavyDamageBaseModifier: 1.0 heavyStaminaCost: 20 maxTargets: 8 angle: 20 + soundHit: + path: /Audio/Weapons/bladeslice.ogg + - type: DamageOtherOnHit + staminaCost: 10 + - type: EmbeddableProjectile + - type: EmbedPassiveDamage + - type: ThrowingAngle + angle: 0 + - type: BoneSaw # --No melee for regular saw because have you ever seen someone use a band saw as a weapon? It's dumb.-- # No, I'm going to saw through your bones. @@ -222,23 +457,27 @@ - type: Item heldPrefix: improv - type: MeleeWeapon - attackRate: 0.85 + attackRate: 1.17 damage: types: Blunt: 3 Slash: 7 bluntStaminaDamageFactor: 3 - heavyRateModifier: 0.8 + heavyRateModifier: 1.25 heavyDamageBaseModifier: 1.0 heavyStaminaCost: 20 maxTargets: 8 angle: 20 soundHit: path: /Audio/Weapons/bladeslice.ogg + - type: ThrowingAngle + angle: 90 - type: Tool qualities: - Sawing speed: 0.5 + - type: BoneSaw + speed: 0.5 - type: entity name: circular saw @@ -247,29 +486,42 @@ description: For heavy duty cutting. components: - type: Sprite - state: electric + sprite: Objects/Specific/Medical/Surgery/circular-saw.rsi + state: circular-saw - type: Item - heldPrefix: electric + sprite: Objects/Specific/Medical/Surgery/circular-saw.rsi storedRotation: 90 - type: MeleeWeapon - attackRate: 1.15 + attackRate: .86 range: 1.5 bluntStaminaDamageFactor: 3.0 damage: types: Blunt: 4.5 Slash: 5.5 - heavyRateModifier: 0.5 + heavyRateModifier: 2 heavyDamageBaseModifier: 1 heavyStaminaCost: 10 maxTargets: 8 angle: 360 soundHit: path: /Audio/Items/drill_hit.ogg + - type: DamageOtherOnHit + damage: + types: + Slash: 10 + staminaCost: 14 + - type: ThrowingAngle + angle: 90 - type: Tool qualities: - Sawing speed: 1.5 + - type: SurgeryTool + startSound: + path: /Audio/Medical/Surgery/saw.ogg + - type: BoneSaw + speed: 1.25 - type: entity name: advanced circular saw @@ -283,21 +535,64 @@ heldPrefix: advanced storedRotation: 90 - type: MeleeWeapon - attackRate: 1.15 + attackRate: .86 range: 1.5 bluntStaminaDamageFactor: 5.0 damage: types: Blunt: 4.5 Slash: 7.5 - heavyRateModifier: 0.5 + heavyRateModifier: 2 heavyDamageBaseModifier: 1 heavyStaminaCost: 10 maxTargets: 8 angle: 360 soundHit: path: /Audio/Items/drill_hit.ogg + - type: DamageOtherOnHit + damage: + types: + Slash: 12 + staminaCost: 14 + - type: ThrowingAngle + angle: 90 - type: Tool qualities: - Sawing speed: 2.0 + - type: BoneSaw + speed: 1.5 + +- type: entity + name: medical multitool + id: OmnimedTool + parent: BaseToolSurgery + components: + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/omnimed.rsi + state: omnimed + - type: Item + sprite: Objects/Specific/Medical/Surgery/omnimed.rsi + - type: SurgeryTool + startSound: + path: /Audio/Medical/Surgery/saw.ogg + - type: Hemostat + speed: 2 + - type: Scalpel + speed: 2 + - type: Drill + speed: 2 + - type: BoneSetter + speed: 2 + - type: Retractor + speed: 2 + - type: Cautery + speed: 2 + - type: BoneGel + speed: 2 + - type: BoneSaw + speed: 2 + - type: Tweezers + speed: 2 + - type: Tending + speed: 2 diff --git a/Resources/Prototypes/Entities/Objects/Specific/Research/anomaly.yml b/Resources/Prototypes/Entities/Objects/Specific/Research/anomaly.yml index 113017cc84a..3c3b2154226 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Research/anomaly.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Research/anomaly.yml @@ -129,7 +129,7 @@ - type: Item size: Large - type: MeleeWeapon - attackRate: 0.5 + attackRate: 2 angle: 0 animation: WeaponArcFist wideAnimationRotation: -135 diff --git a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml b/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml index 960e37a6ccc..07ad5c760fb 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml @@ -32,7 +32,7 @@ id: ActionBorgSwapModule name: Swap Module description: Select this module, enabling you to use the tools it provides. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction itemIconStyle: BigItem @@ -381,6 +381,41 @@ - Syringe - Dropper +- type: entity + id: BorgModuleSurgery + parent: [ BaseBorgModuleMedical, BaseProviderBorgModule ] + name: surgery cyborg module + components: + - type: Sprite + layers: + - state: medical + - state: icon-surgery + - type: ItemBorgModule + items: + - Scalpel + - Drill + - Hemostat + - Retractor + - Cautery + - SawElectric + - BoneGel + +- type: entity + id: BorgModuleAdvancedSurgery + parent: [ BaseBorgModuleMedical, BaseProviderBorgModule ] + name: advanced surgery cyborg module + components: + - type: Sprite + layers: + - state: medical + - state: icon-advanced-surgery + - type: ItemBorgModule + items: + - EnergyScalpel + - EnergyCautery + - AdvancedRetractor + - BoneGel + - type: entity id: BorgModuleDefibrillator parent: [ BaseBorgModuleMedical, BaseProviderBorgModule ] diff --git a/Resources/Prototypes/Entities/Objects/Specific/Robotics/endoskeleton.yml b/Resources/Prototypes/Entities/Objects/Specific/Robotics/endoskeleton.yml index 98f953f6824..e1a2ff18476 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Robotics/endoskeleton.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Robotics/endoskeleton.yml @@ -223,3 +223,6 @@ - type: GuideHelp guides: - Cyborgs + - type: TwistedConstructionTarget + replacementProto: ConstructShell + doAfterDelay: 5 diff --git a/Resources/Prototypes/Entities/Objects/Specific/Robotics/mmi.yml b/Resources/Prototypes/Entities/Objects/Specific/Robotics/mmi.yml index 85333e98df5..ac125d36bd1 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Robotics/mmi.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Robotics/mmi.yml @@ -48,6 +48,10 @@ - type: GuideHelp guides: - Cyborgs + - type: LanguageSpeaker + - type: LanguageKnowledge + speaks: [TauCetiBasic, RobotTalk] + understands: [TauCetiBasic, RobotTalk] - type: entity parent: MMI @@ -124,3 +128,7 @@ guides: - Cyborgs - type: Organ # Estacao Pirata - IPCs + - type: LanguageSpeaker + - type: LanguageKnowledge + speaks: [RobotTalk] + understands: [RobotTalk] diff --git a/Resources/Prototypes/Entities/Objects/Specific/Service/barber.yml b/Resources/Prototypes/Entities/Objects/Specific/Service/barber.yml index 451230bbf1f..2a09c9ede91 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Service/barber.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Service/barber.yml @@ -1,4 +1,4 @@ -- type: entity +- type: entity id: BarberScissors name: barber scissors description: is able to reshape the hairstyle of any crew cut to your liking. @@ -28,3 +28,9 @@ Piercing: 6 soundHit: path: "/Audio/Weapons/bladeslice.ogg" + - type: DamageOtherOnHit + - type: EmbeddableProjectile + sound: /Audio/Weapons/star_hit.ogg + - type: EmbedPassiveDamage + - type: ThrowingAngle + angle: 225 diff --git a/Resources/Prototypes/Entities/Objects/Specific/Service/vending_machine_restock.yml b/Resources/Prototypes/Entities/Objects/Specific/Service/vending_machine_restock.yml index 953c05f107e..478aec4ce49 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Service/vending_machine_restock.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Service/vending_machine_restock.yml @@ -20,6 +20,11 @@ path: /Audio/Weapons/genhit2.ogg soundSwing: path: /Audio/Weapons/punchmiss.ogg + - type: DamageOtherOnHit + damage: + types: + Blunt: 11 + staminaCost: 15 - type: Item size: Normal - type: Damageable diff --git a/Resources/Prototypes/Entities/Objects/Specific/chemical-containers.yml b/Resources/Prototypes/Entities/Objects/Specific/chemical-containers.yml index 4bd71f898db..d6855d630c6 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/chemical-containers.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/chemical-containers.yml @@ -88,7 +88,7 @@ parent: Jug name: jug (carbon) id: JugCarbon - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Label currentLabel: reagent-name-carbon @@ -103,7 +103,7 @@ parent: Jug name: jug (iodine) id: JugIodine - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Label currentLabel: reagent-name-iodine @@ -118,7 +118,7 @@ parent: Jug name: jug (fluorine) id: JugFluorine - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Label currentLabel: reagent-name-fluorine @@ -133,7 +133,7 @@ parent: Jug name: jug (chlorine) id: JugChlorine - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Label currentLabel: reagent-name-chlorine @@ -148,7 +148,7 @@ parent: Jug name: jug (aluminium) id: JugAluminium - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Label currentLabel: reagent-name-aluminium @@ -163,7 +163,7 @@ parent: Jug name: jug (phosphorus) id: JugPhosphorus - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Label currentLabel: reagent-name-phosphorus @@ -178,7 +178,7 @@ parent: Jug name: jug (sulfur) id: JugSulfur - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Label currentLabel: reagent-name-sulfur @@ -193,7 +193,7 @@ parent: Jug name: jug (silicon) id: JugSilicon - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Label currentLabel: reagent-name-silicon @@ -208,7 +208,7 @@ parent: Jug name: jug (hydrogen) id: JugHydrogen - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Label currentLabel: reagent-name-hydrogen @@ -223,7 +223,7 @@ parent: Jug name: jug (lithium) id: JugLithium - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Label currentLabel: reagent-name-lithium @@ -238,7 +238,7 @@ parent: Jug name: jug (sodium) id: JugSodium - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Label currentLabel: reagent-name-sodium @@ -253,7 +253,7 @@ parent: Jug name: jug (potassium) id: JugPotassium - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Label currentLabel: reagent-name-potassium @@ -268,7 +268,7 @@ parent: Jug name: jug (radium) id: JugRadium - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Label currentLabel: reagent-name-radium @@ -283,7 +283,7 @@ parent: Jug name: jug (iron) id: JugIron - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Label currentLabel: reagent-name-iron @@ -298,7 +298,7 @@ parent: Jug name: jug (copper) id: JugCopper - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Label currentLabel: reagent-name-copper @@ -313,7 +313,7 @@ parent: Jug name: jug (gold) id: JugGold - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Label currentLabel: reagent-name-gold @@ -328,7 +328,7 @@ parent: Jug name: jug (mercury) id: JugMercury - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Label currentLabel: reagent-name-mercury @@ -343,7 +343,7 @@ parent: Jug name: jug (silver) id: JugSilver - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Label currentLabel: reagent-name-silver @@ -358,7 +358,7 @@ parent: Jug name: jug (ethanol) id: JugEthanol - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Label currentLabel: reagent-name-ethanol @@ -373,7 +373,7 @@ parent: Jug name: jug (sugar) id: JugSugar - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Label currentLabel: reagent-name-sugar @@ -388,7 +388,7 @@ parent: Jug name: jug (nitrogen) id: JugNitrogen - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Label currentLabel: reagent-name-nitrogen @@ -403,7 +403,7 @@ parent: Jug name: jug (oxygen) id: JugOxygen - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Label currentLabel: reagent-name-oxygen @@ -418,7 +418,7 @@ parent: Jug name: jug (Plant-B-Gone) id: JugPlantBGone - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Label currentLabel: reagent-name-plant-b-gone @@ -433,7 +433,7 @@ parent: Jug name: jug (welding fuel) id: JugWeldingFuel - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Label currentLabel: reagent-name-welding-fuel diff --git a/Resources/Prototypes/Entities/Objects/Tools/EmpFlashlight.yml b/Resources/Prototypes/Entities/Objects/Tools/EmpFlashlight.yml new file mode 100644 index 00000000000..1da304ba1ab --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Tools/EmpFlashlight.yml @@ -0,0 +1,26 @@ +- type: entity + parent: FlashlightLantern + id: FlashlightEmp + name: flashlight + description: It lights the way to freedom. + suffix: EMP + components: + - type: ItemSlots + slots: + cell_slot: + name: power-cell-clot-component-spot-name-default + startingItem: PowerCellHigh + - type: MeleeWeapon + wideAnimationRotation: -135 + damage: + types: + Blunt: 12 + angle: 60 + animation: WeaponArcThrust + - type: EmpOnHit + range: 0.1 + energyConsumption: 100000 + disableDuration: 100 + - type: LimitedCharges + - type: AutoRecharge + rechargeDuration: 60 diff --git a/Resources/Prototypes/Entities/Objects/Tools/cowtools.yml b/Resources/Prototypes/Entities/Objects/Tools/cowtools.yml index 87959ebef3d..399e14cc975 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/cowtools.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/cowtools.yml @@ -37,7 +37,7 @@ - type: Item sprite: Objects/Tools/Cowtools/moodriver.rsi - type: MeleeWeapon - attackRate: 1.5 + attackRate: .6666 damage: types: Blunt: 0.1 #poke poke poke @@ -60,7 +60,7 @@ - type: Item sprite: Objects/Tools/Cowtools/wronch.rsi - type: MeleeWeapon - attackRate: 1.5 + attackRate: .6666 damage: types: Blunt: 0.1 diff --git a/Resources/Prototypes/Entities/Objects/Tools/emag.yml b/Resources/Prototypes/Entities/Objects/Tools/emag.yml index 0117d44d6d7..4461d952c03 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/emag.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/emag.yml @@ -12,6 +12,13 @@ - type: Item sprite: Objects/Tools/emag.rsi storedRotation: -90 + - type: DamageOtherOnHit # An emag has sharp edges + damage: + types: + Slash: 5 + - type: EmbeddableProjectile + sound: /Audio/Weapons/star_hit.ogg + - type: EmbedPassiveDamage - type: entity parent: EmagUnlimited diff --git a/Resources/Prototypes/Entities/Objects/Tools/flashlights.yml b/Resources/Prototypes/Entities/Objects/Tools/flashlights.yml index cbb5dfee0a1..1e10cc7ba06 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/flashlights.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/flashlights.yml @@ -1,4 +1,4 @@ -- type: entity +- type: entity name: flashlight parent: BaseItem id: FlashlightLantern @@ -55,13 +55,15 @@ visible: false map: [ "light" ] - type: MeleeWeapon - attackRate: 0.8 + attackRate: 1.25 bluntStaminaDamageFactor: 1.5 damage: types: Blunt: 6 soundHit: collection: MetalThud + - type: DamageOtherOnHit + staminaCost: 3.5 - type: Item sprite: Objects/Tools/flashlight.rsi storedRotation: -90 @@ -117,7 +119,7 @@ map: [ "light" ] - type: MeleeWeapon wideAnimationRotation: 90 - attackRate: 0.8 + attackRate: 1.25 damage: types: Blunt: 6.5 diff --git a/Resources/Prototypes/Entities/Objects/Tools/fulton.yml b/Resources/Prototypes/Entities/Objects/Tools/fulton.yml index 5255e5f303b..49d8c18c7c1 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/fulton.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/fulton.yml @@ -88,7 +88,7 @@ - type: entity id: FultonEffect - noSpawn: true + categories: [ HideSpawnMenu ] name: fulton effect components: - type: TimedDespawn diff --git a/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml b/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml index 8590a32a6a6..c8e47b6fdae 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml @@ -33,17 +33,21 @@ maxIntensity: 20 - type: MeleeWeapon wideAnimationRotation: 45 - attackRate: 0.8 + attackRate: 1.25 range: 1.75 damage: types: Blunt: 8 bluntStaminaDamageFactor: 2.5 - heavyRateModifier: 0.8 + heavyRateModifier: 1.25 heavyDamageBaseModifier: 1.5 heavyStaminaCost: 10 maxTargets: 3 angle: 100 + soundHit: + path: /Audio/Weapons/smash.ogg + - type: DamageOtherOnHit + staminaCost: 8 - type: PhysicalComposition materialComposition: Steel: 185 @@ -111,6 +115,8 @@ damage: types: Blunt: 5 + - type: DamageOtherOnHit + staminaCost: 3.5 - type: PhysicalComposition materialComposition: Steel: 100 @@ -179,6 +185,8 @@ damage: types: Blunt: 7.5 + - type: DamageOtherOnHit + staminaCost: 5 - type: entity parent: DoubleEmergencyOxygenTank diff --git a/Resources/Prototypes/Entities/Objects/Tools/glowstick.yml b/Resources/Prototypes/Entities/Objects/Tools/glowstick.yml index 2320764d9ff..3081f60989e 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/glowstick.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/glowstick.yml @@ -115,7 +115,7 @@ name: light pulse test parent: BaseItem id: LightBehaviourTest1 - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Misc/glowstick.rsi @@ -146,7 +146,7 @@ name: color cycle test parent: BaseItem id: LightBehaviourTest2 - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Misc/glowstick.rsi @@ -178,7 +178,7 @@ name: multi-behaviour light test parent: BaseItem id: LightBehaviourTest3 - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Misc/glowstick.rsi @@ -218,7 +218,7 @@ name: light fade in test parent: BaseItem id: LightBehaviourTest4 - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Misc/glowstick.rsi @@ -249,7 +249,7 @@ name: light pulse radius test parent: BaseItem id: LightBehaviourTest5 - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Misc/glowstick.rsi @@ -280,7 +280,7 @@ name: light randomize radius test parent: BaseItem id: LightBehaviourTest6 - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Misc/glowstick.rsi diff --git a/Resources/Prototypes/Entities/Objects/Tools/jaws_of_life.yml b/Resources/Prototypes/Entities/Objects/Tools/jaws_of_life.yml index 936e832224f..3beb11f4238 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/jaws_of_life.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/jaws_of_life.yml @@ -44,20 +44,24 @@ changeSound: /Audio/Items/change_jaws.ogg - type: MeleeWeapon wideAnimationRotation: 90 - attackRate: 0.85 + attackRate: 1.17 range: 1.65 damage: types: Blunt: 10 Slash: 2 bluntStaminaDamageFactor: 2.0 - heavyRateModifier: 0.8 + heavyRateModifier: 1.25 heavyDamageBaseModifier: 1.5 heavyStaminaCost: 5 maxTargets: 1 angle: 20 soundHit: collection: MetalThud + - type: DamageOtherOnHit + staminaCost: 7 + - type: ThrowingAngle + angle: 90 - type: ReverseEngineering # Delta difficulty: 3 recipes: @@ -102,3 +106,4 @@ types: Blunt: 12 Slash: 2 + - type: DamageOtherOnHit diff --git a/Resources/Prototypes/Entities/Objects/Tools/jetpacks.yml b/Resources/Prototypes/Entities/Objects/Tools/jetpacks.yml index bd05b8d0f39..8ece2e1a862 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/jetpacks.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/jetpacks.yml @@ -1,6 +1,6 @@ - type: entity id: JetpackEffect - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TimedDespawn lifetime: 2 @@ -69,7 +69,7 @@ id: ActionToggleJetpack name: Toggle jetpack description: Toggles the jetpack, giving you movement outside the station. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: diff --git a/Resources/Prototypes/Entities/Objects/Tools/lighters.yml b/Resources/Prototypes/Entities/Objects/Tools/lighters.yml index d03cc725efe..52b224a61ef 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/lighters.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/lighters.yml @@ -16,6 +16,17 @@ activatedDamage: types: Heat: 1 + activatedSoundOnHit: + path: /Audio/Weapons/Guns/Hits/energy_meat1.ogg + params: + variation: 0.250 + volume: -15 + activatedSoundOnHitNoDamage: + path: /Audio/Weapons/Guns/Hits/energy_meat1.ogg + params: + variation: 0.250 + volume: -17 + - type: ItemToggleDamageOtherOnHit - type: ItemToggleSize activatedSize: Small - type: ItemToggleHot @@ -78,6 +89,7 @@ damage: types: Blunt: 0 + - type: DamageOtherOnHit - type: Welder fuelConsumption: 0.01 fuelLitCost: 0.1 @@ -87,6 +99,13 @@ netsync: false radius: 1.1 #smallest possible color: orange + - type: Cautery + speed: 0.45 + - type: SurgeryTool + startSound: + collection: lighterOnSounds + endSound: + collection: lighterOffSounds - type: entity name: cheap lighter @@ -152,6 +171,17 @@ activatedDamage: types: Heat: 1 + activatedSoundOnHit: + path: /Audio/Weapons/Guns/Hits/energy_meat1.ogg + params: + variation: 0.250 + volume: -15 + activatedSoundOnHitNoDamage: + path: /Audio/Weapons/Guns/Hits/energy_meat1.ogg + params: + variation: 0.250 + volume: -17 + - type: ItemToggleDamageOtherOnHit - type: ItemToggleSize activatedSize: Small - type: ItemToggleHot @@ -200,6 +230,7 @@ damage: types: Blunt: 1 # does a little bit of damage on hit when off + - type: DamageOtherOnHit - type: PointLight enabled: false netsync: false diff --git a/Resources/Prototypes/Entities/Objects/Tools/matches.yml b/Resources/Prototypes/Entities/Objects/Tools/matches.yml index 561e478d93a..1cdb207bb33 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/matches.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/matches.yml @@ -41,6 +41,13 @@ unlitIcon: match_unlit litIcon: match_lit burntIcon: match_burnt + - type: Cautery + speed: 0.2 + - type: SurgeryTool + startSound: + path: /Audio/Weapons/Guns/Hits/energy_meat1.ogg + endSound: + path: /Audio/Weapons/Guns/Hits/energy_meat1.ogg - type: entity parent: Matchstick diff --git a/Resources/Prototypes/Entities/Objects/Tools/toolbox.yml b/Resources/Prototypes/Entities/Objects/Tools/toolbox.yml index bfbb0573ca1..fcb41ceef39 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/toolbox.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/toolbox.yml @@ -21,7 +21,7 @@ - type: Item size: Ginormous - type: MeleeWeapon - attackRate: 0.9 + attackRate: 1.1 range: 1.75 damage: types: @@ -32,6 +32,9 @@ angle: 80.5 soundHit: path: "/Audio/Weapons/smash.ogg" + - type: DamageOtherOnHit + meleeDamageMultiplier: 1.33 + staminaCost: 12.5 - type: Tag tags: - Toolbox @@ -141,6 +144,10 @@ damage: types: Blunt: 11.5 + - type: DamageOtherOnHit + damage: + types: + Blunt: 15 - type: entity name: golden toolbox @@ -157,6 +164,10 @@ damage: types: Blunt: 12 + - type: DamageOtherOnHit + damage: + types: + Blunt: 16 - type: entity id: ToolboxThief diff --git a/Resources/Prototypes/Entities/Objects/Tools/tools.yml b/Resources/Prototypes/Entities/Objects/Tools/tools.yml index 1f1b67349f4..69af8e4741c 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/tools.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/tools.yml @@ -31,7 +31,7 @@ - state: cutters-cutty-thingy - type: MeleeWeapon wideAnimationRotation: -90 - attackRate: 0.9 + attackRate: 1.1 range: 1.6 damage: types: @@ -41,6 +41,12 @@ maxTargets: 4 soundHit: path: "/Audio/Items/wirecutter.ogg" + - type: DamageOtherOnHit + damage: + types: + Blunt: 4 + soundHit: + collection: MetalThud - type: Tool qualities: - Cutting @@ -59,6 +65,19 @@ Steel: 100 - type: StaticPrice price: 30 + - type: Retractor + speed: 0.35 + - type: Hemostat + speed: 0.6 + - type: SurgeryTool + startSound: + path: /Audio/Items/wirecutter.ogg + params: + variation: 0.125 + endSound: + path: /Audio/Items/wirecutter.ogg + params: + variation: 0.125 - type: entity name: screwdriver @@ -95,7 +114,7 @@ storedRotation: -90 - type: MeleeWeapon wideAnimationRotation: -90 - attackRate: 1.35 + attackRate: .74 damage: types: Piercing: 6 @@ -105,6 +124,14 @@ angle: 20 soundHit: path: "/Audio/Weapons/bladeslice.ogg" + - type: DamageOtherOnHit + staminaCost: 5 + - type: ThrowingAngle + angle: 270 + - type: EmbeddableProjectile + sound: /Audio/Weapons/star_hit.ogg + removalTime: 1 + - type: EmbedPassiveDamage - type: Tool qualities: - Screwing @@ -119,6 +146,15 @@ Steel: 100 - type: StaticPrice price: 30 + - type: Retractor + speed: 0.45 + - type: Tending + speed: 0.65 + - type: SurgeryTool + startSound: + collection: Screwdriver + endSound: + path: /Audio/Medical/Surgery/retractor2.ogg - type: entity name: wrench @@ -154,7 +190,7 @@ state: storage - type: MeleeWeapon wideAnimationRotation: 135 - attackRate: 0.9 + attackRate: 1.1 range: 1.6 damage: types: @@ -165,6 +201,7 @@ angle: 100 soundHit: collection: MetalThud + - type: DamageOtherOnHit - type: Tool qualities: - Anchoring @@ -211,7 +248,7 @@ state: storage - type: MeleeWeapon wideAnimationRotation: -135 - attackRate: 1.25 + attackRate: .8 damage: types: Blunt: 6 @@ -219,6 +256,8 @@ heavyStaminaCost: 5 soundHit: collection: MetalThud + - type: DamageOtherOnHit + staminaCost: 6 - type: Tool qualities: - Prying @@ -231,6 +270,10 @@ - type: StaticPrice price: 22 - type: Prying + - type: Tweezers + speed: 0.55 + - type: SurgeryTool + startSound: /Audio/Items/crowbar.ogg - type: entity parent: Crowbar @@ -269,7 +312,7 @@ - state: green-unlit shader: unshaded - type: MeleeWeapon - attackRate: 0.75 + attackRate: 1.3333 damage: types: Shock: 2 @@ -277,6 +320,7 @@ heavyDamageBaseModifier: 1.2 maxTargets: 1 angle: 20 + - type: DamageOtherOnHit - type: Item size: Small - type: Clothing @@ -412,7 +456,7 @@ price: 100 - type: MeleeWeapon wideAnimationRotation: -90 - attackRate: 0.9 + attackRate: 1.1 range: 1.4 damage: types: @@ -423,6 +467,13 @@ angle: 20 soundHit: path: "/Audio/Items/drill_hit.ogg" + - type: DamageOtherOnHit + damage: + types: + Blunt: 8 + staminaCost: 7.5 + soundHit: + collection: MetalThud - type: ReverseEngineering # Nyano difficulty: 2 recipes: @@ -634,7 +685,7 @@ state: icon - type: MeleeWeapon wideAnimationRotation: 45 - attackRate: 0.8 + attackRate: 1.25 range: 1.75 damage: types: @@ -646,6 +697,10 @@ angle: 100 soundHit: collection: MetalThud + - type: DamageOtherOnHit + staminaCost: 8.5 + - type: ThrowingAngle + angle: 45 - type: Item size: Normal sprite: Objects/Tools/shovel.rsi @@ -683,7 +738,7 @@ - Belt - type: MeleeWeapon wideAnimationRotation: -135 - attackRate: 0.9 + attackRate: 1.1 damage: types: Blunt: 7 @@ -694,6 +749,7 @@ angle: 20 soundHit: collection: MetalThud + - type: DamageOtherOnHit - type: Tool qualities: - Rolling diff --git a/Resources/Prototypes/Entities/Objects/Tools/welders.yml b/Resources/Prototypes/Entities/Objects/Tools/welders.yml index c501237b4c8..eae5cdbf46f 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/welders.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/welders.yml @@ -56,6 +56,11 @@ activatedDamage: types: Heat: 7 + - type: ItemToggleDamageOtherOnHit + activatedDamage: + types: + Heat: 4 + Blunt: 3 - type: ItemToggleSize activatedSize: Large - type: ItemToggleHot @@ -78,6 +83,7 @@ Blunt: 6 #i mean... i GUESS you could use it like that soundHit: collection: MetalThud + - type: DamageOtherOnHit - type: RefillableSolution solution: Welder - type: SolutionContainerManager @@ -114,6 +120,13 @@ Blunt: -15 Piercing: -15 Slash: -15 + - type: Cautery + speed: 0.7 + - type: SurgeryTool + startSound: + collection: Welder + endSound: + collection: WelderOff - type: entity name: industrial welding tool diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Bombs/funny.yml b/Resources/Prototypes/Entities/Objects/Weapons/Bombs/funny.yml index 630354f23d9..1aac4424149 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Bombs/funny.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Bombs/funny.yml @@ -52,7 +52,7 @@ - type: entity id: HotPotatoEffect - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TimedDespawn lifetime: 0.6 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/antimateriel.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/antimateriel.yml index 31d7b65fe8b..65b7dbc1655 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/antimateriel.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/antimateriel.yml @@ -1,5 +1,5 @@ - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseBullet id: BulletAntiMateriel name: bullet (.60 anti-materiel) diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/caseless_rifle.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/caseless_rifle.yml index 5ce0bf82fe9..f6a3ad590e4 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/caseless_rifle.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/caseless_rifle.yml @@ -2,7 +2,7 @@ id: BulletCaselessRifle name: bullet (.25 caseless) parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: @@ -13,7 +13,7 @@ id: BulletCaselessRiflePractice name: bullet (.25 caseless practice) parent: BaseBulletPractice - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: @@ -24,7 +24,7 @@ id: BulletCaselessRifleRubber name: bullet (.25 caseless rubber) parent: BaseBulletRubber - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/grenade.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/grenade.yml index 36d41e391ac..351e68a6200 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/grenade.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/grenade.yml @@ -1,7 +1,7 @@ - type: entity id: PelletClusterRubber name: pellet (ball, Rubber) - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseBullet components: - type: Sprite @@ -20,7 +20,7 @@ - type: entity id: PelletClusterLethal name: pellet (ball, Lethal) - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseBullet components: - type: Sprite @@ -37,7 +37,7 @@ - type: entity id: PelletClusterIncendiary name: pellet (ball, incendiary) - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseBulletIncendiary components: - type: Sprite diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/heavy_rifle.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/heavy_rifle.yml index be6a07e486d..d37555c3443 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/heavy_rifle.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/heavy_rifle.yml @@ -2,7 +2,7 @@ id: BulletHeavyRifle name: bullet (.20 rifle) parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: @@ -13,7 +13,7 @@ id: BulletMinigun name: minigun bullet (.10 rifle) parent: BulletHeavyRifle - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/light_rifle.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/light_rifle.yml index 3a0df2ac6c7..7e0a19c448d 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/light_rifle.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/light_rifle.yml @@ -2,7 +2,7 @@ id: BulletLightRifle name: bullet (.20 rifle) parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: @@ -13,7 +13,7 @@ id: BulletLightRiflePractice name: bullet (.20 rifle practice) parent: BaseBulletPractice - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: @@ -24,7 +24,7 @@ id: BulletLightRifleRubber name: bullet (.20 rifle rubber) parent: BaseBulletRubber - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: @@ -35,7 +35,7 @@ id: BulletLightRifleIncendiary parent: BaseBulletIncendiary name: bullet (.20 rifle incendiary) - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: @@ -47,7 +47,7 @@ id: BulletLightRifleUranium parent: BaseBulletUranium name: bullet (.20 rifle uranium) - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/magnum.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/magnum.yml index 1b5cf7890ba..ab45d6837f4 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/magnum.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/magnum.yml @@ -2,7 +2,7 @@ id: BulletMagnum name: bullet (.45 magnum) parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: @@ -13,7 +13,7 @@ id: BulletMagnumPractice name: bullet (.45 magnum practice) parent: BaseBulletPractice - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: @@ -24,7 +24,7 @@ id: BulletMagnumRubber name: bullet (.45 magnum rubber) parent: BaseBulletRubber - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: @@ -37,7 +37,7 @@ id: BulletMagnumIncendiary parent: BaseBulletIncendiary name: bullet (.45 magnum incendiary) - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: @@ -49,7 +49,7 @@ id: BulletMagnumAP name: bullet (.45 magnum armor-piercing) parent: BaseBulletAP - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: @@ -61,7 +61,7 @@ id: BulletMagnumUranium name: bullet (.45 magnum uranium) parent: BaseBulletUranium - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/pistol.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/pistol.yml index 086a8dc914f..ef3807700da 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/pistol.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/pistol.yml @@ -2,7 +2,7 @@ id: BulletPistol name: bullet (.35 auto) parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: @@ -13,7 +13,7 @@ id: BulletPistolPractice name: bullet (.35 auto practice) parent: BaseBulletPractice - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: @@ -24,7 +24,7 @@ id: BulletPistolRubber name: bullet (.35 auto rubber) parent: BaseBulletRubber - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: @@ -35,7 +35,7 @@ id: BulletPistolIncendiary parent: BaseBulletIncendiary name: bullet (.35 auto incendiary) - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: @@ -47,7 +47,7 @@ id: BulletPistolUranium parent: BaseBulletUranium name: bullet (.35 auto uranium) - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/rifle.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/rifle.yml index 2113916cf52..3e1d49ddc02 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/rifle.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/rifle.yml @@ -2,7 +2,7 @@ id: BulletRifle name: bullet (0.20 rifle) parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: @@ -13,7 +13,7 @@ id: BulletRiflePractice name: bullet (0.20 rifle practice) parent: BaseBulletPractice - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: @@ -24,7 +24,7 @@ id: BulletRifleRubber name: bullet (0.20 rifle rubber) parent: BaseBulletRubber - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: @@ -35,7 +35,7 @@ id: BulletRifleIncendiary parent: BaseBulletIncendiary name: bullet (0.20 rifle incendiary) - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: @@ -47,7 +47,7 @@ id: BulletRifleUranium parent: BaseBulletUranium name: bullet (0.20 rifle uranium) - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/shotgun.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/shotgun.yml index e119a846c9c..6e4570e1a16 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/shotgun.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/shotgun.yml @@ -1,7 +1,7 @@ - type: entity id: PelletShotgunSlug name: pellet (.50 slug) - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseBullet components: - type: Sprite @@ -15,7 +15,7 @@ - type: entity id: PelletShotgunBeanbag name: beanbag (.50) - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseBullet components: - type: Sprite @@ -31,7 +31,7 @@ - type: entity id: PelletShotgun name: pellet (.50) - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseBullet components: - type: Sprite @@ -45,7 +45,7 @@ - type: entity id: PelletShotgunIncendiary name: pellet (.50 incendiary) - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseBulletIncendiary components: - type: Sprite @@ -62,7 +62,7 @@ - type: entity id: PelletShotgunPractice name: pellet (.50 practice) - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseBulletPractice components: - type: Sprite @@ -76,7 +76,7 @@ - type: entity id: PelletShotgunImprovised name: improvised pellet - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseBullet components: - type: Sprite @@ -92,7 +92,7 @@ - type: entity id: PelletShotgunTranquilizer name: pellet (.50 tranquilizer) - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseBulletPractice components: - type: Sprite @@ -119,7 +119,7 @@ - type: entity id: PelletShotgunFlare name: pellet (.50 flare) - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Physics bodyType: Dynamic @@ -166,7 +166,7 @@ - type: entity id: PelletShotgunUranium name: pellet (.50 uranium) - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseBullet components: - type: Sprite @@ -181,7 +181,7 @@ - type: entity id: PelletGrapeshot #tally fucking ho name: grapeshot pellet - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseBullet components: - type: Sprite @@ -200,7 +200,7 @@ id: PelletGlass name: glass shard parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite noRot: false diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Basic/base_pka.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Basic/base_pka.yml index 93621bc3a28..4eec74f05a6 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Basic/base_pka.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Basic/base_pka.yml @@ -48,3 +48,20 @@ - Belt - type: UseDelay delay: 1 + - type: MeleeWeapon + attackRate: 1.3333 + damage: + types: + Blunt: 9.0 + swapKeys: true + disableHeavy: true + animation: WeaponArcThrust + wideAnimationRotation: 180 + soundHit: + collection: MetalThud + - type: IncreaseDamageOnWield + damage: + types: + Blunt: 2.5 + - type: DamageOtherOnHit + staminaCost: 8 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml index 8f062a8620b..62291cc2714 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml @@ -32,6 +32,29 @@ - type: Appearance - type: StaticPrice price: 500 + - type: Cautery + speed: 0.9 + - type: SurgeryTool + endSound: + path: /Audio/Weapons/Guns/Gunshots/laser.ogg + - type: MeleeWeapon + attackRate: 1.3333 + damage: + types: + Blunt: 8.5 + bluntStaminaDamageFactor: 1.25 + swapKeys: true + disableHeavy: true + animation: WeaponArcThrust + wideAnimationRotation: 180 + soundHit: + collection: MetalThud + - type: IncreaseDamageOnWield + damage: + types: + Blunt: 2.5 + - type: DamageOtherOnHit + staminaCost: 7 - type: entity id: BaseWeaponPowerCell @@ -68,6 +91,29 @@ - type: ContainerContainer containers: gun_magazine: !type:ContainerSlot + - type: Cautery + speed: 0.9 + - type: SurgeryTool + endSound: + path: /Audio/Weapons/Guns/Gunshots/laser.ogg + - type: MeleeWeapon + attackRate: 1.3333 + damage: + types: + Blunt: 9.0 + bluntStaminaDamageFactor: 1.25 + swapKeys: true + disableHeavy: true + animation: WeaponArcThrust + wideAnimationRotation: 180 + soundHit: + collection: MetalThud + - type: IncreaseDamageOnWield + damage: + types: + Blunt: 2.5 + - type: DamageOtherOnHit + staminaCost: 7 - type: entity id: BaseWeaponBatterySmall @@ -88,6 +134,15 @@ slots: - Belt - suitStorage + - type: MeleeWeapon + attackRate: 1.2 + damage: + types: + Blunt: 7.5 + bluntStaminaDamageFactor: 1.0 + wideAnimationRotation: 135 + - type: DamageOtherOnHit + staminaCost: 5 - type: entity id: BaseWeaponPowerCellSmall @@ -104,6 +159,15 @@ quickEquip: false slots: - Belt + - type: MeleeWeapon + attackRate: 1.2 + damage: + types: + Blunt: 7.5 + bluntStaminaDamageFactor: 1.0 + wideAnimationRotation: 135 + - type: DamageOtherOnHit + staminaCost: 5 - type: entity name: svalinn laser pistol @@ -238,6 +302,10 @@ fireCost: 62.5 - type: StaticPrice price: 300 + - type: MeleeWeapon + damage: + types: + Blunt: 4 - type: entity name: pulse pistol @@ -277,6 +345,15 @@ - type: StealTarget stealGroup: HoSAntiqueWeapon +- type: entity + name: captain's pulse pistol + parent: WeaponPulsePistol + id: WeaponPulsePistolCaptain + description: A rare and exotic handgun gifted to the station's Captain. Its ivory grip has been engraved with the words, "Glory to the Company, Glory to Mother Sol. Phoron will make us all rich." + components: + - type: StealTarget + stealGroup: WeaponCaptain + - type: entity name: pulse carbine parent: [BaseWeaponBattery, BaseGunWieldable] @@ -358,6 +435,14 @@ - type: HitscanBatteryAmmoProvider proto: RedHeavyLaser fireCost: 100 + - type: MeleeWeapon + attackRate: 1.4 + damage: + types: + Blunt: 10 + bluntStaminaDamageFactor: 1.3333 + - type: DamageOtherOnHit + staminaCost: 9.5 - type: entity name: portable particle decelerator @@ -389,6 +474,22 @@ - type: Battery maxCharge: 10000 startingCharge: 10000 + - type: MeleeWeapon + attackRate: 1.6 + damage: # This is super expensive, low attack rate, slows down the user and high stam cost so it can be high + types: + Blunt: 34 + Structural: 10 + swapKeys: false + disableHeavy: false + disableClick: true + bluntStaminaDamageFactor: 1.5 + heavyRateModifier: 1.0 + heavyDamageBaseModifier: 1.0 + heavyStaminaCost: 21 + wideAnimationRotation: 270 + - type: DamageOtherOnHit + staminaCost: 48 - type: entity name: x-ray cannon @@ -457,6 +558,12 @@ - type: GuideHelp guides: - Security + - type: MeleeWeapon + damage: + types: + Blunt: 5.0 + bluntStaminaDamageFactor: 2.5 + wideAnimationRotation: 135 - type: entity name: disabler SMG @@ -495,6 +602,12 @@ zeroVisible: true - type: StaticPrice price: 260 + - type: MeleeWeapon + damage: + types: + Blunt: 6.5 + bluntStaminaDamageFactor: 2.5 + wideAnimationRotation: 180 - type: entity name: practice disabler @@ -520,6 +633,11 @@ - type: ProjectileBatteryAmmoProvider proto: BulletDisablerPractice fireCost: 100 + - type: MeleeWeapon + damage: + types: + Blunt: 3 + bluntStaminaDamageFactor: 1.0 - type: entity name: taser @@ -595,7 +713,16 @@ - type: StaticPrice price: 750 - type: StealTarget - stealGroup: WeaponAntiqueLaser + stealGroup: WeaponCaptain + - type: MeleeWeapon + attackRate: 1.3333 + damage: + types: + Blunt: 9 + bluntStaminaDamageFactor: 1.25 + wideAnimationRotation: 135 + - type: DamageOtherOnHit + staminaCost: 5 - type: entity name: advanced laser pistol @@ -631,6 +758,12 @@ - type: Appearance - type: StaticPrice price: 63 + - type: MeleeWeapon + damage: + types: + Blunt: 8 + - type: DamageOtherOnHit + staminaCost: 6 - type: entity name: C.H.I.M.P. handcannon diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/HMGs/hmgs.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/HMGs/hmgs.yml index 9d685e1ddc0..72df09ac508 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/HMGs/hmgs.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/HMGs/hmgs.yml @@ -20,6 +20,20 @@ - type: StaticPrice price: 500 # No chamber because HMG may want its own + - type: MeleeWeapon + attackRate: 1.5 + damage: + types: + Blunt: 16 + bluntStaminaDamageFactor: 1.5 + swapKeys: true + disableHeavy: true + animation: WeaponArcThrust + wideAnimationRotation: 180 + soundHit: + collection: MetalThud + - type: DamageOtherOnHit + staminaCost: 16 - type: entity name: minigun diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/LMGs/lmgs.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/LMGs/lmgs.yml index f90cbb6e601..4b6e21a4922 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/LMGs/lmgs.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/LMGs/lmgs.yml @@ -62,6 +62,24 @@ price: 500 - type: UseDelay delay: 1 + - type: MeleeWeapon + attackRate: 1.4 + damage: + types: + Blunt: 11 + bluntStaminaDamageFactor: 1.3333 + swapKeys: true + disableHeavy: true + animation: WeaponArcThrust + wideAnimationRotation: 180 + soundHit: + collection: MetalThud + - type: IncreaseDamageOnWield + damage: + types: + Blunt: 3 + - type: DamageOtherOnHit + staminaCost: 12 - type: entity name: L6 SAW diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml index be4ea534d7d..dc49dce0f3a 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml @@ -19,6 +19,20 @@ containers: ballistic-ammo: !type:Container ents: [] + - type: MeleeWeapon + attackRate: 1.5 + damage: + types: + Blunt: 14 + bluntStaminaDamageFactor: 1.5 + swapKeys: true + disableHeavy: true + animation: WeaponArcThrust + wideAnimationRotation: 180 + soundHit: + collection: MetalThud + - type: DamageOtherOnHit + staminaCost: 14 - type: entity name: china lake diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Pistols/pistols.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Pistols/pistols.yml index c4b2082f387..fefc41ae865 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Pistols/pistols.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Pistols/pistols.yml @@ -66,6 +66,19 @@ - type: StaticPrice price: 500 - type: AmmoCounter + - type: MeleeWeapon + attackRate: 1.2 + damage: + types: + Blunt: 7.5 + swapKeys: true + disableHeavy: true + animation: WeaponArcThrust + wideAnimationRotation: 135 + soundHit: + collection: MetalThud + - type: DamageOtherOnHit + staminaCost: 5 - type: entity name: viper @@ -115,6 +128,9 @@ description: A small, easily concealable, but somewhat underpowered gun, produced by a bulk arms manufacturer now defunct for over a century. Uses .35 auto ammo. The serial number on the handguard marks this gun as belonging to an NT Security Officer. suffix: Security Loadouts + components: + - type: GuideHelp + guides: [ SecurityWeapons ] - type: entity id: WeaponPistolViperNonLethal @@ -149,6 +165,9 @@ suffix: Non-lethal, SecurityLoadouts description: A small, easily concealable, but somewhat underpowered gun, produced by a bulk arms manufacturer now defunct for over a century. Uses .35 auto ammo. The serial number on the handguard marks this gun as belonging to an NT Security Officer. + components: + - type: GuideHelp + guides: [ SecurityWeapons ] - type: entity name: cobra @@ -229,6 +248,9 @@ description: A cheap, ubiquitous sidearm, produced by a NanoTrasen subsidiary. Uses .35 auto ammo. The serial number on the handguard marks this gun as belonging to an NT Security Officer. suffix: Security Loadouts + components: + - type: GuideHelp + guides: [ SecurityWeapons ] - type: entity id: WeaponPistolMk58Nonlethal @@ -262,6 +284,9 @@ suffix: Non-lethal, Security Loadouts description: A cheap, ubiquitous sidearm, produced by a NanoTrasen subsidiary. Uses .35 auto ammo. The serial number on the handguard marks this gun as belonging to an NT Security Officer. + components: + - type: GuideHelp + guides: [ SecurityWeapons ] - type: entity name: N1984 @@ -315,6 +340,9 @@ description: The sidearm of any self respecting officer. Comes in .45 magnum, the lord's caliber. The serial number on the handguard marks this gun as belonging to an NT Security Officer. suffix: Security Loadouts + components: + - type: GuideHelp + guides: [ SecurityWeapons ] - type: entity name: N1984 @@ -350,3 +378,6 @@ description: The sidearm of any self respecting officer. Comes in .45 magnum, the lord's caliber. The serial number on the handguard marks this gun as belonging to an NT Security Officer. suffix: Security Loadouts + components: + - type: GuideHelp + guides: [ SecurityWeapons ] diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/arrows.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/arrows.yml index 6f925139fb1..bc041062678 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/arrows.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/arrows.yml @@ -28,6 +28,7 @@ - type: EmbeddableProjectile sound: /Audio/Weapons/star_hit.ogg embedOnThrow: false + - type: EmbedPassiveDamage - type: ThrowingAngle angle: 0 - type: Ammo diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml index 94cac9bcec3..a602f120813 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml @@ -1,7 +1,7 @@ # Used to animate the hitscan effects because effectsystem doesn't support it - type: entity id: HitscanEffect - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TimedDespawn lifetime: 2.0 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/impacts.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/impacts.yml index d70b05bf61d..9be9e43e943 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/impacts.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/impacts.yml @@ -1,6 +1,6 @@ - type: entity id: BulletImpactEffect - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TimedDespawn lifetime: 0.25 @@ -18,7 +18,7 @@ - type: entity id: BulletImpactEffectDisabler - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TimedDespawn lifetime: 0.2 @@ -36,7 +36,7 @@ - type: entity id: BulletImpactEffectOrangeDisabler - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TimedDespawn lifetime: 0.2 @@ -55,7 +55,7 @@ - type: entity id: BulletImpactEffectKinetic - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TimedDespawn lifetime: 0.2 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/magic.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/magic.yml index b3abbfdfd3f..a230673e907 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/magic.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/magic.yml @@ -3,7 +3,7 @@ name: fireball description: You better GITTAH WEIGH. parent: BulletRocket - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: PointLight color: "#E25822" @@ -31,7 +31,7 @@ fireStacks: 0.35 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseBulletTrigger id: ProjectileDragonsBreath name: dragon's breath @@ -68,7 +68,7 @@ name: fireball description: Hovering blob of flame. parent: ProjectileFireball - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TimedDespawn lifetime: 30 @@ -82,7 +82,7 @@ - type: entity id: ProjectilePolyboltBase parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Weapons/Guns/Projectiles/magic.rsi @@ -99,7 +99,7 @@ parent: ProjectilePolyboltBase name: carp polybolt description: Nooo, I don't wanna be fish! - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: PolymorphOnCollide polymorph: WizardForcedCarp @@ -112,7 +112,7 @@ parent: ProjectilePolyboltBase name: monkey polybolt description: Nooo, I don't wanna be monkey! - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: PolymorphOnCollide polymorph: WizardForcedMonkey @@ -125,7 +125,7 @@ parent: ProjectilePolyboltBase name: door polybolt description: Nooo, I don't wanna be door! - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Weapons/Guns/Projectiles/magic.rsi @@ -146,7 +146,7 @@ name: healing bolt description: I COMMAND YOU TO LIVE! parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Weapons/Guns/Projectiles/magic.rsi @@ -166,7 +166,7 @@ id: BulletInstakillMagic name: magical lead cylinder parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] description: This looks familiar. components: - type: Projectile @@ -180,7 +180,7 @@ parent: ProjectilePolyboltBase name: cluwne polybolt description: knoH KnoH! - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: PolymorphOnCollide polymorph: WizardForcedCluwne @@ -193,7 +193,7 @@ parent: BaseBullet name: Icicle description: Brrrrr. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Structures/Specific/Anomalies/ice_anom.rsi @@ -209,7 +209,7 @@ id: ProjectilePolyboltBread name: bread polybolt description: Nooo, I don't wanna be bread! - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: PolymorphOnCollide polymorph: BreadMorph diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/meteors.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/meteors.yml index 6bdac1e85f0..60154a4fea5 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/meteors.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/meteors.yml @@ -1,7 +1,7 @@ - type: entity id: MeteorLarge name: meteor - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite noRot: false diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml index 55e09014ec9..acf22532232 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml @@ -1,6 +1,6 @@ - type: entity id: MuzzleFlashEffect - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TimedDespawn lifetime: 0.4 @@ -69,7 +69,7 @@ - type: entity id: BaseBulletTrigger # Trigger-on-collide bullets parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TriggerOnCollide fixtureID: projectile @@ -93,7 +93,7 @@ id: BaseBulletPractice name: base bullet practice parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi @@ -108,7 +108,7 @@ id: BaseBulletRubber name: base bullet rubber parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi @@ -127,7 +127,7 @@ id: BaseBulletIncendiary name: base bullet incendiary parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: @@ -145,7 +145,7 @@ id: BaseBulletAP name: base bullet armor-piercing parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi @@ -161,7 +161,7 @@ id: BaseBulletUranium name: base bullet uranium parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi @@ -177,7 +177,7 @@ name: taser bolt id: BulletTaser parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: FlyBySound sound: @@ -219,7 +219,7 @@ name : disabler bolt id: BulletDisabler parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Reflective reflective: @@ -262,7 +262,7 @@ name : disabler bolt practice id: BulletDisablerPractice parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: FlyBySound sound: @@ -302,7 +302,7 @@ name: emitter bolt id: EmitterBolt parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Structures/Power/Generation/Singularity/emitter.rsi @@ -339,7 +339,7 @@ name: watcher bolt id: WatcherBolt parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: FlyBySound sound: @@ -379,7 +379,7 @@ name: magmawing watcher bolt id: WatcherBoltMagmawing parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Weapons/Guns/Projectiles/projectiles_tg.rsi @@ -398,7 +398,7 @@ id: BulletKinetic name: kinetic bolt parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] description: Not too bad, but you still don't want to get hit by it. components: - type: Reflective @@ -423,7 +423,7 @@ - type: entity id: BulletKineticShuttle parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite noRot: false @@ -451,7 +451,7 @@ id: BulletCharge name: charge bolt parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] description: Marks a target for additional damage. components: - type: Reflective @@ -485,7 +485,7 @@ parent: BaseBullet id: AnomalousParticleDelta name: delta particles - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: PointLight enabled: true @@ -526,7 +526,7 @@ - type: entity parent: AnomalousParticleDelta id: AnomalousParticleDeltaStrong - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: AnomalousParticle particleType: Delta @@ -539,7 +539,7 @@ parent: AnomalousParticleDelta id: AnomalousParticleEpsilon name: epsilon particles - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: PointLight enabled: true @@ -556,7 +556,7 @@ - type: entity parent: AnomalousParticleEpsilon id: AnomalousParticleEpsilonStrong - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: AnomalousParticle particleType: Epsilon @@ -569,7 +569,7 @@ parent: AnomalousParticleDelta id: AnomalousParticleZeta name: zeta particles - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: PointLight enabled: true @@ -586,7 +586,7 @@ - type: entity parent: AnomalousParticleZeta id: AnomalousParticleZetaStrong - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: AnomalousParticle particleType: Zeta @@ -599,7 +599,7 @@ parent: AnomalousParticleDelta id: AnomalousParticleOmegaStrong name: omega particles - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: PointLight enabled: true @@ -628,7 +628,7 @@ parent: AnomalousParticleDelta id: AnomalousParticleSigma name: sigma particles - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: PointLight enabled: true @@ -646,7 +646,7 @@ parent: AnomalousParticleSigma id: AnomalousParticleSigmaStrong name: sigma particles - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: AnomalousParticle particleType: Sigma @@ -656,7 +656,7 @@ id: BulletRocket name: rocket parent: BaseBulletTrigger - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi @@ -678,7 +678,7 @@ id: BulletWeakRocket name: weak rocket parent: BaseBulletTrigger - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi @@ -700,7 +700,7 @@ id: BulletGrenadeBaton name: baton grenade parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi @@ -720,7 +720,7 @@ id: BulletGrenadeBlast name: blast grenade parent: BaseBulletTrigger - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi @@ -737,7 +737,7 @@ id: BulletGrenadeFlash name: flash grenade parent: BaseBulletTrigger - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi @@ -756,7 +756,7 @@ id: BulletGrenadeFrag name: frag grenade parent: BaseBulletTrigger - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi @@ -773,7 +773,7 @@ id: BulletGrenadeEMP name: EMP rocket parent: BaseBulletTrigger - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi @@ -794,7 +794,7 @@ id: BulletCap name: cap bullet parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Fun/toys.rsi @@ -810,7 +810,7 @@ id: BulletAcid name: acid spit parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Projectile damage: @@ -826,7 +826,7 @@ - type: entity id: BulletWaterShot name: water - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Clickable - type: Physics @@ -869,7 +869,7 @@ id: BulletCannonBall name: cannonball parent: BaseBulletTrigger - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi @@ -890,7 +890,7 @@ - type: entity id: GrapplingHook name: grappling hook - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: EmbeddableProjectile deleteOnRemove: true @@ -926,7 +926,7 @@ name : disabler bolt smg id: BulletDisablerSmg parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Reflective reflective: @@ -969,7 +969,7 @@ name: tesla gun lightning id: TeslaGunBullet parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: TimedDespawn lifetime: 5 @@ -1006,7 +1006,7 @@ name: energy bolt id: BulletEnergyGunLaser parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Reflective reflective: diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml index 6c598987414..c85ce56974b 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Revolvers/revolvers.yml @@ -50,6 +50,19 @@ path: /Audio/Weapons/Guns/MagIn/revolver_magin.ogg - type: StaticPrice price: 500 + - type: MeleeWeapon + attackRate: 1.2 + damage: + types: + Blunt: 7 + swapKeys: true + disableHeavy: true + animation: WeaponArcThrust + wideAnimationRotation: 135 + soundHit: + collection: MetalThud + - type: DamageOtherOnHit + staminaCost: 5 - type: entity name: Deckard @@ -85,6 +98,9 @@ id: WeaponRevolverDeckardSecurity description: A rare, custom-built revolver. Use when there is no time for Voight-Kampff test. Uses .45 magnum ammo. The serial number on the handguard marks this gun as belonging to an NT Security Officer. + components: + - type: GuideHelp + guides: [ SecurityWeapons ] - type: entity name: Deckard @@ -99,6 +115,8 @@ - CartridgeMagnum - SpeedLoaderMagnum proto: CartridgeMagnumRubber + - type: GuideHelp + guides: [ SecurityWeapons ] - type: entity name: Inspector @@ -121,6 +139,9 @@ id: WeaponRevolverInspectorSecurity description: A detective's best friend. Uses .45 magnum ammo. The serial number on the handguard marks this gun as belonging to an NT Security Officer. + components: + - type: GuideHelp + guides: [ SecurityWeapons ] - type: entity name: Inspector @@ -135,6 +156,8 @@ - CartridgeMagnum - SpeedLoaderMagnum proto: CartridgeMagnumRubber + - type: GuideHelp + guides: [ SecurityWeapons ] - type: entity name: Mateba @@ -178,6 +201,9 @@ id: WeaponRevolverPythonSecurity description: An iconic large-framed revolver of ancient Sol' design. It is commonly manufactured by many companies all over the colonies. Uses .45 magnum ammo. The serial number on the handguard marks this gun as belonging to an NT Security Officer. + components: + - type: GuideHelp + guides: [ SecurityWeapons ] - type: entity name: Python @@ -197,6 +223,8 @@ path: /Audio/Weapons/Guns/MagOut/revolver_magout.ogg soundInsert: path: /Audio/Weapons/Guns/MagIn/revolver_magin.ogg + - type: GuideHelp + guides: [ SecurityWeapons ] - type: entity name: Python diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml index 61df2b857ea..0aa281b95c0 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml @@ -51,6 +51,24 @@ gun_chamber: !type:ContainerSlot - type: StaticPrice price: 500 + - type: MeleeWeapon + attackRate: 1.3333 + damage: + types: + Blunt: 8.5 + bluntStaminaDamageFactor: 1.25 + swapKeys: true + disableHeavy: true + animation: WeaponArcThrust + wideAnimationRotation: 180 + soundHit: + collection: MetalThud + - type: IncreaseDamageOnWield + damage: + types: + Blunt: 2.5 + - type: DamageOtherOnHit + staminaCost: 7.5 - type: entity name: AKMS diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml index b448ddea3e4..8d43953a07b 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml @@ -54,6 +54,24 @@ gun_chamber: !type:ContainerSlot - type: StaticPrice price: 500 + - type: MeleeWeapon + attackRate: 1.3333 + damage: + types: + Blunt: 9.0 + bluntStaminaDamageFactor: 1.25 + swapKeys: true + disableHeavy: true + animation: WeaponArcThrust + wideAnimationRotation: 180 + soundHit: + collection: MetalThud + - type: IncreaseDamageOnWield + damage: + types: + Blunt: 2.5 + - type: DamageOtherOnHit + staminaCost: 8 - type: entity name: Atreides diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Shotguns/shotguns.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Shotguns/shotguns.yml index 44ee4a08c1b..40c85374123 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Shotguns/shotguns.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Shotguns/shotguns.yml @@ -43,6 +43,24 @@ ents: [] - type: StaticPrice price: 500 + - type: MeleeWeapon + attackRate: 1.4 + damage: + types: + Blunt: 10 + bluntStaminaDamageFactor: 1.3333 + swapKeys: true + disableHeavy: true + animation: WeaponArcThrust + wideAnimationRotation: 180 + soundHit: + collection: MetalThud + - type: IncreaseDamageOnWield + damage: + types: + Blunt: 2.5 + - type: DamageOtherOnHit + staminaCost: 9.5 - type: entity name: Bulldog @@ -102,6 +120,24 @@ - type: Appearance - type: StaticPrice price: 500 + - type: MeleeWeapon + attackRate: 1.4 + damage: + types: + Blunt: 10 + bluntStaminaDamageFactor: 1.3333 + swapKeys: true + disableHeavy: true + animation: WeaponArcThrust + wideAnimationRotation: 180 + soundHit: + collection: MetalThud + - type: IncreaseDamageOnWield + damage: + types: + Blunt: 2.5 + - type: DamageOtherOnHit + staminaCost: 9.5 - type: entity name: antique Bulldog @@ -136,6 +172,12 @@ graph: ShotgunSawn node: start deconstructionTarget: null + - type: MeleeWeapon + damage: + types: + Blunt: 8.5 + - type: DamageOtherOnHit + staminaCost: 7.5 - type: entity name: double-barreled shotgun @@ -162,6 +204,13 @@ - type: BallisticAmmoProvider - type: Wieldable - type: GunRequiresWield + - type: MeleeWeapon + attackRate: 1.4 + damage: + types: + Blunt: 9 + - type: DamageOtherOnHit + staminaCost: 8.0 - type: entity parent: WeaponShotgunEnforcer @@ -216,6 +265,13 @@ graph: ShotgunSawn node: shotgunsawn deconstructionTarget: null + - type: MeleeWeapon + attackRate: 1.2 + damage: + types: + Blunt: 7.5 + - type: DamageOtherOnHit + staminaCost: 6 - type: entity name: sawn-off shogun @@ -255,6 +311,14 @@ deconstructionTarget: null - type: StaticPrice price: 0 + - type: MeleeWeapon + attackRate: 1.2 + damage: + types: + Blunt: 7.5 + wideAnimationRotation: 135 + - type: DamageOtherOnHit + staminaCost: 5 - type: entity name: blunderbuss diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Snipers/snipers.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Snipers/snipers.yml index 88c00bedbd5..86b90f2bdea 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Snipers/snipers.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Snipers/snipers.yml @@ -39,12 +39,30 @@ ents: [] - type: StaticPrice price: 500 + - type: MeleeWeapon + attackRate: 1.3333 + damage: + types: + Blunt: 8.0 + bluntStaminaDamageFactor: 1.25 + swapKeys: true + disableHeavy: true + wideAnimationRotation: 135 + animation: WeaponArcThrust + soundHit: + collection: MetalThud + - type: IncreaseDamageOnWield + damage: + types: + Blunt: 2.5 + - type: DamageOtherOnHit + staminaCost: 7.5 - type: entity name: Kardashev-Mosin parent: [BaseWeaponSniper, BaseGunWieldable] id: WeaponSniperMosin - description: A weapon for hunting, or endless trench warfare. Uses .30 rifle ammo. + description: A weapon for hunting, or endless trench warfare, with a bayonet attached at the barrel. Uses .30 rifle ammo. components: - type: Sprite sprite: Objects/Weapons/Guns/Snipers/bolt_gun_wood.rsi @@ -56,6 +74,30 @@ soundGunshot: path: /Audio/Weapons/Guns/Gunshots/sniper.ogg fireOnDropChance: 1 + - type: MeleeWeapon + range: 1.75 + damage: + types: + Piercing: 5 + Slash: 3.5 + wideAnimationRotation: -135 + soundHit: + path: /Audio/Weapons/bladeslice.ogg + - type: IncreaseDamageOnWield + damage: + types: + Piercing: 4 + Slash: 2 + - type: DamageOtherOnHit + damage: + types: + Piercing: 8 + Slash: 3 + - type: EmbeddableProjectile + removalTime: 3.5 + - type: EmbedPassiveDamage + - type: ThrowingAngle + angle: 225 - type: entity name: Kardashev-Mosin @@ -114,15 +156,29 @@ capacity: 1 proto: CartridgeAntiMateriel - type: MeleeWeapon - wideAnimationRotation: -135 + range: 1.75 damage: types: - Piercing: 15 #you fucking stab em - Bloodloss: 2 #no way to apply bleed, triangular bayonet wounds are hard to fix(source:that one copypasta) - angle: 0 - animation: WeaponArcThrust + Piercing: 5 + Slash: 3.5 + wideAnimationRotation: -135 soundHit: path: /Audio/Weapons/bladeslice.ogg + - type: IncreaseDamageOnWield + damage: + types: + Piercing: 4 + Slash: 2 + - type: DamageOtherOnHit + damage: + types: + Piercing: 8 + Slash: 3 + - type: EmbeddableProjectile + removalTime: 3.5 + - type: EmbedPassiveDamage + - type: ThrowingAngle + angle: 225 - type: entity name: flintlock pistol @@ -152,4 +208,12 @@ proto: CartridgeAntiMateriel - type: StaticPrice price: 0 - + - type: MeleeWeapon + attackRate: 1.2 + damage: + types: + Blunt: 7.5 + bluntStaminaDamageFactor: 1.0 + wideAnimationRotation: 135 + - type: DamageOtherOnHit + staminaCost: 5 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/flare_gun.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/flare_gun.yml index 9b046a7aae6..0ad30e9ed6e 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/flare_gun.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/flare_gun.yml @@ -37,3 +37,16 @@ slots: - Belt - suitStorage + - type: MeleeWeapon + attackRate: 1.2 + damage: + types: + Blunt: 6.5 + swapKeys: true + disableHeavy: true + animation: WeaponArcThrust + wideAnimationRotation: 135 + soundHit: + collection: MetalThud + - type: DamageOtherOnHit + staminaCost: 4.5 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/pneumatic_cannon.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/pneumatic_cannon.yml index 12511729460..2f1527d3592 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/pneumatic_cannon.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/pneumatic_cannon.yml @@ -61,6 +61,19 @@ storagebase: !type:Container ents: [] gas_tank: !type:ContainerSlot + - type: MeleeWeapon + attackRate: 1.33 + damage: + types: + Blunt: 9 + swapKeys: true + disableHeavy: true + animation: WeaponArcThrust + wideAnimationRotation: 180 + soundHit: + collection: MetalThud + - type: DamageOtherOnHit + staminaCost: 8 - type: entity name: pie cannon diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/armblade.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/armblade.yml index 497876f3596..de22ef22c74 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/armblade.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/armblade.yml @@ -10,7 +10,7 @@ state: icon - type: MeleeWeapon wideAnimationRotation: 90 - attackRate: 0.75 + attackRate: 1.3333 damage: types: Slash: 25 @@ -22,3 +22,10 @@ qualities: - Prying - type: Prying + - type: Scalpel + speed: 0.3 + - type: BoneSaw + speed: 0.75 + - type: SurgeryTool + startSound: + path: /Audio/Medical/Surgery/saw.ogg diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/baseball_bat.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/baseball_bat.yml index 60f599af934..60ba7aa2c30 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/baseball_bat.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/baseball_bat.yml @@ -15,7 +15,7 @@ Blunt: 7.5 Structural: 5 bluntStaminaDamageFactor: 2.0 - heavyRateModifier: 0.5 + heavyRateModifier: 2 heavyDamageBaseModifier: 1.75 heavyStaminaCost: 10 maxTargets: 2 @@ -28,6 +28,8 @@ types: Blunt: 4 Structural: 10 + - type: DamageOtherOnHit + staminaCost: 10 - type: Item size: Normal - type: Tool diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/cane.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/cane.yml index 5c26020d72c..c2b9ac7a76c 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/cane.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/cane.yml @@ -16,6 +16,7 @@ damage: types: Blunt: 5 + - type: DamageOtherOnHit - type: StaminaDamageOnHit damage: 5 - type: Wieldable @@ -38,7 +39,7 @@ state: icon - type: MeleeWeapon wideAnimationRotation: 65 - attackRate: 1.5 + attackRate: .6666 damage: types: Slash: 14 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/chainsaw.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/chainsaw.yml index b2727b334c6..9fb4af58fec 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/chainsaw.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/chainsaw.yml @@ -16,13 +16,13 @@ - type: MeleeWeapon autoAttack: true wideAnimationRotation: -135 - attackRate: 4 + attackRate: .25 damage: types: Slash: 2 Blunt: 2 Structural: 4 - heavyRateModifier: 0.5 + heavyRateModifier: 2 heavyDamageBaseModifier: 1.0 heavyStaminaCost: 15 maxTargets: 20 @@ -51,3 +51,10 @@ maxVol: 300 - type: UseDelay delay: 1 + - type: BoneSaw + speed: 0.5 # TODO: arm-mounted version becomes 0.65 - We dont have that though??? + - type: SurgeryTool + startSound: + path: /Audio/Weapons/chainsawwield.ogg + endSound: + path: /Audio/Weapons/chainsaw.ogg diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/cult.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/cult.yml index a681ef52ebf..c32563623a7 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/cult.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/cult.yml @@ -1,60 +1,3 @@ -- type: entity - name: ritual dagger - parent: BaseItem - id: RitualDagger - description: A strange dagger used by sinister groups for rituals and sacrifices. - components: - - type: Sharp - - type: Sprite - sprite: Objects/Weapons/Melee/cult_dagger.rsi - state: icon - - type: MeleeWeapon - wideAnimationRotation: -135 - attackRate: 1.25 - range: 1.5 - damage: - types: - Slash: 8 - heavyRateModifier: 0.9 - heavyDamageBaseModifier: 1.2 - heavyStaminaCost: 5 - - type: Item - size: Normal - - type: Clothing - sprite: Objects/Weapons/Melee/cult_dagger.rsi - slots: - - back - - type: DisarmMalus - -- type: entity - name: eldritch blade - parent: BaseItem - id: EldritchBlade - description: A sword humming with unholy energy. - components: - - type: Sharp - - type: Sprite - sprite: Objects/Weapons/Melee/cult_blade.rsi - state: icon - - type: MeleeWeapon - wideAnimationRotation: -135 - attackRate: 0.75 - range: 1.65 - damage: - types: - Slash: 12 - heavyDamageBaseModifier: 1.2 - heavyStaminaCost: 7.5 - maxTargets: 6 - angle: 90 - - type: Item - size: Normal - - type: Clothing - sprite: Objects/Weapons/Melee/cult_blade.rsi - slots: - - back - - type: DisarmMalus - - type: entity name: unholy halberd parent: BaseItem @@ -70,7 +13,7 @@ state: icon - type: MeleeWeapon wideAnimationRotation: -135 - attackRate: 0.85 + attackRate: 1.17 range: 1.75 damage: types: @@ -83,6 +26,11 @@ angle: 100 soundHit: collection: MetalThud + - type: DamageOtherOnHit + staminaCost: 9 + - type: EmbeddableProjectile + - type: ThrowingAngle + angle: 225 - type: Wieldable - type: IncreaseDamageOnWield damage: diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml index 37b2b03d9e7..59c6d63c6e1 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml @@ -38,6 +38,14 @@ Slash: 8 Heat: 10 Structural: 20 + - type: ItemToggleDamageOtherOnHit + activatedStaminaCost: 6 + - type: ItemToggleEmbedPassiveDamage + - type: ItemToggleEmbeddableProjectile + activatedEmbedOnThrow: true + - type: ItemToggleThrowingAngle + activatedAngle: 225 + deleteOnDeactivate: true - type: Sprite sprite: Objects/Weapons/Melee/e_sword.rsi layers: @@ -49,10 +57,14 @@ map: [ "blade" ] - type: MeleeWeapon wideAnimationRotation: -135 - attackRate: 1.25 + attackRate: .8 damage: types: Blunt: 4.5 + - type: DamageOtherOnHit + - type: EmbeddableProjectile + embedOnThrow: false + - type: EmbedPassiveDamage - type: Item size: Small sprite: DeltaV/Objects/Weapons/Melee/e_sword.rsi # Delta-V @@ -80,8 +92,22 @@ enabled: false reflectProb: 0.5 minReflectProb: 0.25 + - type: Tag + tags: + - NoPaint - type: IgnitionSource temperature: 700 + - type: Scalpel + speed: 0.75 + - type: Cautery + speed: 0.2 + - type: SurgeryTool + startSound: + path: /Audio/Weapons/ebladehum.ogg + endSound: + path: /Audio/Weapons/eblade1.ogg + params: + variation: 0.250 - type: entity name: antique energy sword @@ -131,6 +157,12 @@ volume: -6 - type: ItemToggleDisarmMalus activatedDisarmMalus: 0.4 + - type: ItemToggleEmbeddableProjectile + activatedOffset: 0.0,0.0 + activatedRemovalTime: 3 + - type: ItemToggleThrowingAngle + activatedAngle: 135 + deleteOnDeactivate: false - type: Sprite sprite: Objects/Weapons/Melee/e_dagger.rsi layers: @@ -147,6 +179,21 @@ damage: types: Blunt: 1 + - type: DamageOtherOnHit + damage: + types: + Piercing: 3 + staminaCost: 3.5 + - type: EmbeddableProjectile + offset: 0.3,0.0 + removalTime: 0.0 + embedOnThrow: true + - type: EmbedPassiveDamage + damage: + types: + Blunt: 0 + - type: ThrowingAngle + angle: 315 - type: Item size: Tiny sprite: Objects/Weapons/Melee/e_dagger.rsi @@ -171,6 +218,7 @@ - type: Tag tags: - Write + - NoPaint - type: DisarmMalus malus: 0 @@ -273,7 +321,7 @@ - type: Wieldable - type: MeleeWeapon wideAnimationRotation: -135 - attackRate: 1.5 + attackRate: .6666 angle: 100 damage: types: diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/fireaxe.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/fireaxe.yml index 6630a22ea7d..df060c2503e 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/fireaxe.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/fireaxe.yml @@ -14,7 +14,7 @@ - type: MeleeWeapon wideAnimationRotation: 135 swingLeft: true - attackRate: 0.75 + attackRate: 1.3333 damage: types: # axes are kinda like sharp hammers, you know? @@ -26,6 +26,11 @@ angle: 100 soundHit: collection: MetalThud + - type: DamageOtherOnHit + meleeDamageMultiplier: 1.5 + staminaCost: 18 + - type: EmbeddableProjectile + - type: EmbedPassiveDamage - type: Wieldable - type: IncreaseDamageOnWield damage: @@ -52,6 +57,13 @@ stealGroup: FireAxe - type: IgniteOnMeleeHit fireStacks: -4 + - type: Scalpel + speed: 0.3 + - type: BoneSaw + speed: 0.5 + - type: SurgeryTool + startSound: + path: /Audio/Medical/Surgery/saw.ogg - type: entity id: FireAxeFlaming diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/home_run_bat.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/home_run_bat.yml index 43a4fb6c59b..75e0e0764c0 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/home_run_bat.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/home_run_bat.yml @@ -18,6 +18,9 @@ angle: 120 soundHit: collection: ExplosionSmall + - type: DamageOtherOnHit + soundHit: + collection: MetalThud # A throw won't knock them back so it's just a normal thud - type: MeleeRequiresWield # You can't hit a home run with one hand, jimbo. - type: MeleeThrowOnHit speed: 30 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml index 5502f752892..8d6496e013f 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml @@ -12,17 +12,22 @@ - Knife - type: MeleeWeapon wideAnimationRotation: -135 - attackRate: 1.25 + attackRate: .8 range: 1.5 damage: types: Slash: 8 - heavyRateModifier: 0.8 + heavyRateModifier: 1.25 heavyDamageBaseModifier: 1.2 maxTargets: 3 angle: 40 soundHit: path: /Audio/Weapons/bladeslice.ogg + - type: DamageOtherOnHit + staminaCost: 5 + - type: EmbeddableProjectile + sound: /Audio/Weapons/star_hit.ogg + - type: EmbedPassiveDamage - type: Sprite - type: Item size: Small @@ -31,6 +36,13 @@ - Slicing useSound: path: /Audio/Items/Culinary/chop.ogg + - type: Scalpel + speed: 0.65 + - type: SurgeryTool + startSound: + path: /Audio/Medical/Surgery/scalpel1.ogg + endSound: + path: /Audio/Medical/Surgery/scalpel2.ogg - type: entity name: kitchen knife @@ -45,6 +57,8 @@ - type: Sprite sprite: Objects/Weapons/Melee/kitchen_knife.rsi state: icon + - type: ThrowingAngle + angle: 225 - type: Item sprite: Objects/Weapons/Melee/kitchen_knife.rsi - type: GuideHelp @@ -71,6 +85,10 @@ types: Slash: 8 Blunt: 1 + - type: DamageOtherOnHit + staminaCost: 7.5 + - type: ThrowingAngle + angle: 245 - type: Item size: Normal sprite: Objects/Weapons/Melee/cleaver.rsi @@ -93,16 +111,12 @@ state: icon - type: MeleeWeapon wideAnimationRotation: -135 - attackRate: 1.5 - damage: - types: - Slash: 9 - - type: EmbeddableProjectile - sound: /Audio/Weapons/star_hit.ogg - - type: DamageOtherOnHit + attackRate: .6666 damage: types: Slash: 9 + - type: ThrowingAngle + angle: 225 - type: Item sprite: Objects/Weapons/Melee/combat_knife.rsi - type: DisarmMalus @@ -119,10 +133,12 @@ state: icon - type: MeleeWeapon wideAnimationRotation: -135 - attackRate: 1.25 + attackRate: .8 damage: types: Slash: 8 + - type: ThrowingAngle + angle: 225 - type: Item sprite: Objects/Weapons/Melee/survival_knife.rsi @@ -141,6 +157,8 @@ damage: types: Slash: 10 + - type: ThrowingAngle + angle: 225 - type: Item sprite: Objects/Weapons/Melee/kukri_knife.rsi @@ -156,14 +174,14 @@ node: icon - type: MeleeWeapon wideAnimationRotation: 90 - attackRate: 1.2 + attackRate: .83 damage: types: Slash: 5 - type: DamageOtherOnHit - damage: - types: - Slash: 10 + staminaCost: 5 + - type: EmbeddableProjectile + - type: EmbedPassiveDamage - type: Sprite sprite: Clothing/Head/Hats/greyflatcap.rsi - type: Clothing @@ -200,11 +218,13 @@ sprite: Objects/Weapons/Melee/shiv.rsi state: icon - type: MeleeWeapon - attackRate: 1.75 + attackRate: .57 range: 1.4 damage: types: Slash: 5.5 + - type: ThrowingAngle + angle: 200 - type: Item sprite: Objects/Weapons/Melee/shiv.rsi - type: DisarmMalus @@ -280,12 +300,10 @@ state: icon - type: MeleeWeapon wideAnimationRotation: -135 - attackRate: 2 + attackRate: .5 damage: types: Slash: 5 - - type: EmbeddableProjectile - sound: /Audio/Weapons/star_hit.ogg - type: DamageOtherOnHit ignoreResistances: true damage: diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/mining.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/mining.yml index 38a203ce908..900950cb9ec 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/mining.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/mining.yml @@ -57,6 +57,8 @@ angle: 120 soundHit: collection: MetalThud + - type: DamageOtherOnHit + staminaCost: 8 - type: Wieldable - type: IncreaseDamageOnWield damage: @@ -94,6 +96,12 @@ heavyDamageBaseModifier: 1.2 maxTargets: 2 angle: 20 + - type: DamageOtherOnHit + staminaCost: 5 + - type: EmbeddableProjectile + - type: EmbedPassiveDamage + - type: ThrowingAngle + angle: 225 - type: Tag tags: - Knife @@ -114,6 +122,10 @@ groups: Brute: -21 - type: MeleeWeapon + - type: EmbeddableProjectile + - type: EmbedPassiveDamage + - type: ThrowingAngle + angle: 225 - type: Tag tags: - Pickaxe diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/needle.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/needle.yml index 11efeba5f8c..7ebbf3bf11a 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/needle.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/needle.yml @@ -12,6 +12,11 @@ damage: types: Piercing: 1 + - type: DamageOtherOnHit + - type: EmbeddableProjectile + removalTime: 0 + - type: ThrowingAngle + angle: 225 - type: Item size: Tiny - type: BalloonPopper diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/pickaxe.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/pickaxe.yml index fb1eb3d7fe9..ff01e5692eb 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/pickaxe.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/pickaxe.yml @@ -11,7 +11,7 @@ sprite: Objects/Weapons/Melee/pickaxe.rsi state: pickaxe - type: MeleeWeapon - attackRate: 0.85 + attackRate: 1.17 range: 1.5 wideAnimationRotation: -135 soundHit: @@ -21,11 +21,13 @@ damage: types: Blunt: 6 - Pierce: 3 + Piercing: 3 bluntStaminaDamageFactor: 2.0 heavyDamageBaseModifier: 1.75 maxTargets: 5 angle: 80 + - type: DamageOtherOnHit + staminaCost: 5 - type: Wieldable - type: IncreaseDamageOnWield damage: @@ -60,7 +62,7 @@ wideAnimationRotation: -90 soundHit: path: "/Audio/Items/drill_hit.ogg" - attackRate: 1.2 + attackRate: .83 range: 1.5 damage: types: @@ -72,6 +74,10 @@ heavyRangeModifier: 2 heavyDamageBaseModifier: 1 angle: 20 + - type: DamageOtherOnHit + staminaCost: 8 + - type: ThrowingAngle + angle: 270 - type: ReverseEngineering # Nyano difficulty: 2 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/sledgehammer.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/sledgehammer.yml index ffe791ce0c4..99592e6a0fc 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/sledgehammer.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/sledgehammer.yml @@ -9,7 +9,7 @@ state: icon - type: MeleeWeapon wideAnimationRotation: -135 - attackRate: 0.75 + attackRate: 1.3333 range: 1.75 damage: types: @@ -23,6 +23,8 @@ angle: 120 soundHit: collection: MetalThud + - type: DamageOtherOnHit + staminaCost: 10 - type: Wieldable - type: IncreaseDamageOnWield damage: diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/spear.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/spear.yml index 576d0b2a0ce..ca5efc2daf4 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/spear.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/spear.yml @@ -6,6 +6,7 @@ components: - type: EmbeddableProjectile offset: 0.15,0.15 + - type: EmbedPassiveDamage - type: ThrowingAngle angle: 225 - type: Tag @@ -40,7 +41,7 @@ types: Piercing: 7 Slash: 1 - heavyRateModifier: 0.75 + heavyRateModifier: 1.3 heavyRangeModifier: 1.25 heavyDamageBaseModifier: 1.0 heavyStaminaCost: 5 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/stunprod.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/stunprod.yml index 5214358ff96..6680c2a2c00 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/stunprod.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/stunprod.yml @@ -26,6 +26,7 @@ activatedDamage: types: Shock: 5 + - type: ItemToggleDamageOtherOnHit - type: Stunbaton energyPerUse: 120 - type: MeleeWeapon @@ -36,9 +37,10 @@ types: Blunt: 7.5 bluntStaminaDamageFactor: 2.0 - heavyRateModifier: 0.8 + heavyRateModifier: 1.25 heavyDamageBaseModifier: 1.2 animation: WeaponArcThrust + - type: DamageOtherOnHit - type: StaminaDamageOnHit damage: 22 sound: /Audio/Weapons/egloves.ogg diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml index 046e9f76f7f..2da3d3bb92e 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/sword.yml @@ -10,19 +10,25 @@ state: icon - type: MeleeWeapon wideAnimationRotation: -135 - attackRate: 1.25 + attackRate: .8 range: 1.75 soundHit: path: /Audio/SimpleStation14/Weapons/Melee/rapierhit.ogg damage: types: Slash: 15 - heavyRateModifier: 0.8 + heavyRateModifier: 1.25 heavyRangeModifier: 1 heavyDamageBaseModifier: 1 heavyStaminaCost: 5 maxTargets: 7 angle: 80 + - type: DamageOtherOnHit + staminaCost: 5 + - type: EmbeddableProjectile + - type: EmbedPassiveDamage + - type: ThrowingAngle + angle: 225 - type: Reflect enabled: true # Design intent: a robust captain or tot can sacrifice movement to make the most of this weapon, but they have to @@ -55,18 +61,24 @@ state: icon - type: MeleeWeapon wideAnimationRotation: -135 - attackRate: 1.5 + attackRate: .6666 soundHit: path: /Audio/SimpleStation14/Weapons/Melee/rapierhit.ogg damage: types: Slash: 12 - heavyRateModifier: 0.5 + heavyRateModifier: 2 heavyRangeModifier: 2.75 #Superior Japanese folded steel heavyDamageBaseModifier: 1.25 heavyStaminaCost: 15 maxTargets: 1 angle: 20 + - type: DamageOtherOnHit + staminaCost: 10 + - type: EmbeddableProjectile + - type: EmbedPassiveDamage + - type: ThrowingAngle + angle: 225 - type: Item size: Normal sprite: DeltaV/Objects/Weapons/Melee/katana.rsi #DeltaV @@ -86,6 +98,8 @@ damage: types: Slash: 25 + - type: ThrowingAngle + angle: 300 - type: Item size: Normal sprite: Objects/Weapons/Melee/energykatana.rsi @@ -121,17 +135,23 @@ state: icon - type: MeleeWeapon wideAnimationRotation: -135 - attackRate: 0.8 + attackRate: 1.25 damage: types: Slash: 15 - heavyRateModifier: 0.8 + heavyRateModifier: 1.25 heavyRangeModifier: 1.25 heavyDamageBaseModifier: 1.2 heavyStaminaCost: 7.5 angle: 80 soundHit: path: /Audio/Weapons/bladeslice.ogg + - type: DamageOtherOnHit + staminaCost: 5 + - type: EmbeddableProjectile + - type: EmbedPassiveDamage + - type: ThrowingAngle + angle: 225 - type: Item size: Normal sprite: Objects/Weapons/Melee/machete.rsi @@ -149,14 +169,14 @@ state: icon - type: MeleeWeapon wideAnimationRotation: -135 - attackRate: 0.65 + attackRate: 1.53 range: 1.85 damage: types: Slash: 19 Blunt: 1 bluntStaminaDamageFactor: 25.0 - heavyRateModifier: 0.5 + heavyRateModifier: 2 heavyRangeModifier: 1 heavyDamageBaseModifier: 1 heavyStaminaCost: 15 @@ -164,6 +184,12 @@ angle: 200 soundHit: path: /Audio/Weapons/bladeslice.ogg + - type: DamageOtherOnHit + staminaCost: 18 + - type: EmbeddableProjectile + - type: EmbedPassiveDamage + - type: ThrowingAngle + angle: 225 - type: Item size: Normal - type: Clothing @@ -187,11 +213,11 @@ state: icon - type: MeleeWeapon wideAnimationRotation: -135 - attackRate: 1.25 + attackRate: .8 damage: types: Slash: 12 - heavyRateModifier: 0.8 + heavyRateModifier: 1.25 heavyRangeModifier: 1.2 heavyDamageBaseModifier: 1.2 heavyStaminaCost: 7.5 @@ -199,6 +225,12 @@ angle: 40 soundHit: path: /Audio/Weapons/bladeslice.ogg + - type: DamageOtherOnHit + staminaCost: 5 + - type: EmbeddableProjectile + - type: EmbedPassiveDamage + - type: ThrowingAngle + angle: 225 - type: Item size: Normal sprite: Objects/Weapons/Melee/cutlass.rsi @@ -216,7 +248,7 @@ state: icon - type: MeleeWeapon wideAnimationRotation: -135 - attackRate: 10 + attackRate: .1 damage: types: Structural: 150 @@ -227,6 +259,7 @@ Radiation: 10 soundHit: path: /Audio/Effects/explosion_small1.ogg + - type: DamageOtherOnHit - type: Reflect enabled: true reflectProb: 0.5 # In robust hands, deflects as well as an e-sword diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/telescopic_baton.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/telescopic_baton.yml index 5e797c85361..7851a9403b4 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/telescopic_baton.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/telescopic_baton.yml @@ -1,4 +1,4 @@ -- type: entity +- type: entity id: TelescopicBaton parent: BaseItem name: telescopic baton @@ -26,6 +26,7 @@ activatedDamage: types: Blunt: 12 + - type: ItemToggleDamageOtherOnHit - type: ItemToggleSize activatedSize: Normal - type: UseDelay @@ -35,7 +36,7 @@ duration: 1.5 dropHeldItemsBehavior: NoDrop - type: MeleeWeapon - attackRate: 0.8 + attackRate: 1.25 bluntStaminaDamageFactor: 1.5 heavyDamageBaseModifier: 1.2 heavyStaminaCost: 5 @@ -44,6 +45,8 @@ damage: types: Blunt: 1 + - type: DamageOtherOnHit + staminaCost: 6 - type: Appearance - type: GenericVisualizer visuals: @@ -64,7 +67,7 @@ - type: KnockdownOnHit duration: 60 # - type: MeleeWeapon - attackRate: 1.2 + attackRate: .83 - type: ItemToggleMeleeWeapon activatedDamage: types: diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/weapon_toolbox.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/weapon_toolbox.yml index 240a17a0a44..408e3c65628 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/weapon_toolbox.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/weapon_toolbox.yml @@ -13,7 +13,7 @@ sprite: Objects/Tools/Toolboxes/toolbox_red.rsi - type: MeleeWeapon wideAnimationRotation: -135 - attackRate: 1.5 + attackRate: .6 damage: types: Blunt: 20 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/white_cane.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/white_cane.yml index 123de813cbd..ec744764bec 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/white_cane.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/white_cane.yml @@ -12,18 +12,19 @@ sprite: Objects/Weapons/Melee/white_cane.rsi - type: MeleeWeapon wideAnimationRotation: 45 - attackRate: 0.9 + attackRate: 1.1 range: 1.6 damage: types: Blunt: 6 bluntStaminaDamageFactor: 2.5 - heavyRateModifier: 0.5 + heavyRateModifier: 2 heavyRangeModifier: 1.75 heavyDamageBaseModifier: 1.2 heavyStaminaCost: 0 maxTargets: 1 angle: 20 + - type: DamageOtherOnHit - type: Wieldable - type: IncreaseDamageOnWield damage: @@ -31,4 +32,3 @@ Blunt: 2 - type: UseDelay delay: 1 - diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml index acbaac29222..b39303d9ede 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml @@ -83,7 +83,7 @@ - type: entity id: GrenadeFlashEffect - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: PointLight enabled: true @@ -125,7 +125,7 @@ description: Go out on your own terms! parent: GrenadeBase id: SelfDestructSeq - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: ExplodeOnTrigger - type: Explosive diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/throwing_stars.yml b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/throwing_stars.yml index c68feff0b5c..293d284d526 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/throwing_stars.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/throwing_stars.yml @@ -36,6 +36,7 @@ types: Slash: 8 Piercing: 10 + - type: EmbedPassiveDamage - type: StaminaDamageOnCollide damage: 45 - type: StaminaDamageOnEmbed diff --git a/Resources/Prototypes/Entities/Objects/Weapons/security.yml b/Resources/Prototypes/Entities/Objects/Weapons/security.yml index 1b07eab9faf..561af78a56c 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/security.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/security.yml @@ -29,6 +29,7 @@ activatedDamage: types: Blunt: 0 + - type: ItemToggleDamageOtherOnHit - type: MeleeWeapon wideAnimationRotation: -135 damage: @@ -39,6 +40,7 @@ heavyDamageBaseModifier: 1.75 heavyStaminaCost: 1 animation: WeaponArcSlash + - type: DamageOtherOnHit - type: StaminaDamageOnHit damage: 35 sound: /Audio/Weapons/egloves.ogg @@ -109,10 +111,12 @@ heavyRateModifier: 1 heavyDamageBaseModifier: 1.2 heavyStaminaCost: 7.5 + - type: DamageOtherOnHit + staminaCost: 9 - type: Item size: Normal - type: Tag - tags: + tags: - Truncheon - type: Clothing sprite: Objects/Weapons/Melee/truncheon.rsi diff --git a/Resources/Prototypes/Entities/Stations/nanotrasen.yml b/Resources/Prototypes/Entities/Stations/nanotrasen.yml index 329542a267a..9f4adce96ae 100644 --- a/Resources/Prototypes/Entities/Stations/nanotrasen.yml +++ b/Resources/Prototypes/Entities/Stations/nanotrasen.yml @@ -27,7 +27,7 @@ - BaseStationNanotrasen - BaseRandomStation - BaseStationMail # Nyano component, required for station mail to function - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Transform @@ -37,7 +37,7 @@ - BaseStation - BaseStationAlertLevels - BaseStationNanotrasen - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Transform @@ -48,7 +48,7 @@ - BaseStationJobsSpawning - BaseStationRecords - BaseStationNanotrasen - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Transform @@ -73,6 +73,6 @@ - BaseStationNanotrasen - BaseRandomStation - BaseStationMail - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Transform diff --git a/Resources/Prototypes/Entities/Stations/syndicate.yml b/Resources/Prototypes/Entities/Stations/syndicate.yml index a6494169146..c863ef73523 100644 --- a/Resources/Prototypes/Entities/Stations/syndicate.yml +++ b/Resources/Prototypes/Entities/Stations/syndicate.yml @@ -11,6 +11,6 @@ parent: - BaseStation - BaseStationSyndicate - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Transform diff --git a/Resources/Prototypes/Entities/Stations/test.yml b/Resources/Prototypes/Entities/Stations/test.yml index 0f2e40537a2..9eec6979e7a 100644 --- a/Resources/Prototypes/Entities/Stations/test.yml +++ b/Resources/Prototypes/Entities/Stations/test.yml @@ -6,6 +6,6 @@ - BaseStationJobsSpawning - BaseStationRecords - BaseStationAlertLevels - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Transform diff --git a/Resources/Prototypes/Entities/Structures/Decoration/bonfire.yml b/Resources/Prototypes/Entities/Structures/Decoration/bonfire.yml index cc69a6304d1..0876502e675 100644 --- a/Resources/Prototypes/Entities/Structures/Decoration/bonfire.yml +++ b/Resources/Prototypes/Entities/Structures/Decoration/bonfire.yml @@ -31,6 +31,9 @@ sound: path: /Audio/Ambience/Objects/fireplace.ogg - type: AlwaysHot + - type: Tag + tags: + - NoPaint - type: entity id: LegionnaireBonfire diff --git a/Resources/Prototypes/Entities/Structures/Decoration/floordecor.yml b/Resources/Prototypes/Entities/Structures/Decoration/floordecor.yml new file mode 100644 index 00000000000..2ed9c186eeb --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/Decoration/floordecor.yml @@ -0,0 +1,720 @@ +- type: entity + id: DecorFloorBase + abstract: true + placement: + mode: SnapgridCenter + components: + - type: Sprite + sprite: Structures/Decoration/cave_decor.rsi + netsync: false + noRot: true + drawdepth: FloorObjects + - type: Damageable + damageModifierSet: Wood + damageContainer: Inorganic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 50 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: WoodDestroy + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Transform + anchored: true + - type: Physics + bodyType: Static + canCollide: false + - type: Clickable + - type: InteractionOutline +# No fixture on this base, inherit from further down for fixture + +# Cave Decor +- type: entity + parent: DecorFloorBase + id: DecorFloorBoard1 + name: floor board + description: Keep the mud off your feet. + components: + - type: Sprite + state: boards_drought_ns-1 + +- type: entity + parent: DecorFloorBase + id: DecorFloorBoard2 + name: floor board + description: Keep the mud off your feet. + components: + - type: Sprite + state: boards_drought_ns-2 + +- type: entity + parent: DecorFloorBase + id: DecorFloorBoard3 + name: floor board + description: Keep the mud off your feet. + components: + - type: Sprite + state: boards_drought_ns-3 + +- type: entity + parent: DecorFloorBase + id: DecorFloorBoard4 + name: floor board + description: Keep the mud off your feet. + components: + - type: Sprite + state: boards_drought_ns-4 + +- type: entity + parent: DecorFloorBase + id: DecorFloorBoard5 + name: floor board + description: Keep the mud off your feet. + components: + - type: Sprite + state: boards_drought_ns-5 + +- type: entity + parent: DecorFloorBase + id: DecorFloorBoard6 + name: floor board + description: Keep the mud off your feet. + components: + - type: Sprite + state: boards_drought_ns-6 + +- type: entity + parent: DecorFloorBase + id: DecorFloorBoard7 + name: floor board + description: Keep the mud off your feet. + components: + - type: Sprite + state: boards_drought_we-1 + +- type: entity + parent: DecorFloorBase + id: DecorFloorBoard8 + name: floor board + description: Keep the mud off your feet. + components: + - type: Sprite + state: boards_drought_we-2 + +- type: entity + parent: DecorFloorBase + id: DecorFloorBoard9 + name: floor board + description: Keep the mud off your feet. + components: + - type: Sprite + state: boards_drought_we-3 + +- type: entity + parent: DecorFloorBase + id: DecorFloorBoard10 + name: floor board + description: Keep the mud off your feet. + components: + - type: Sprite + state: boards_drought_we-4 + +- type: entity + parent: DecorFloorBase + id: DecorFloorBoard11 + name: floor board + description: Keep the mud off your feet. + components: + - type: Sprite + state: boards_drought_we-5 + +- type: entity + parent: DecorFloorBase + id: DecorFloorBoard12 + name: floor board + description: Keep the mud off your feet. + components: + - type: Sprite + state: boards_drought_we-6 + +- type: entity + parent: DecorFloorBase + id: DecorFloorBoard13 + name: floor board + description: Keep the mud off your feet. + components: + - type: Sprite + state: boards_mammoth_ns-1 + +- type: entity + parent: DecorFloorBase + id: DecorFloorBoard14 + name: floor board + description: Keep the mud off your feet. + components: + - type: Sprite + state: boards_mammoth_ns-2 + +- type: entity + parent: DecorFloorBase + id: DecorFloorBoard15 + name: floor board + description: Keep the mud off your feet. + components: + - type: Sprite + state: boards_mammoth_ns-3 + +- type: entity + parent: DecorFloorBase + id: DecorFloorBoard16 + name: floor board + description: Keep the mud off your feet. + components: + - type: Sprite + state: boards_mammoth_ns-4 + +- type: entity + parent: DecorFloorBase + id: DecorFloorBoard17 + name: floor board + description: Keep the mud off your feet. + components: + - type: Sprite + state: boards_mammoth_ns-5 + +- type: entity + parent: DecorFloorBase + id: DecorFloorBoard18 + name: floor board + description: Keep the mud off your feet. + components: + - type: Sprite + state: boards_mammoth_ns-6 + +- type: entity + parent: DecorFloorBase + id: DecorFloorBoard19 + name: floor board + description: Keep the mud off your feet. + components: + - type: Sprite + state: boards_mammoth_we-1 + +- type: entity + parent: DecorFloorBase + id: DecorFloorBoard20 + name: floor board + description: Keep the mud off your feet. + components: + - type: Sprite + state: boards_mammoth_we-2 + +- type: entity + parent: DecorFloorBase + id: DecorFloorBoard21 + name: floor board + description: Keep the mud off your feet. + components: + - type: Sprite + state: boards_mammoth_we-3 + +- type: entity + parent: DecorFloorBase + id: DecorFloorBoard22 + name: floor board + description: Keep the mud off your feet. + components: + - type: Sprite + state: boards_mammoth_we-4 + +- type: entity + parent: DecorFloorBase + id: DecorFloorBoard23 + name: floor board + description: Keep the mud off your feet. + components: + - type: Sprite + state: boards_mammoth_we-5 + +- type: entity + parent: DecorFloorBase + id: DecorFloorBoard24 + name: floor board + description: Keep the mud off your feet. + components: + - type: Sprite + state: boards_mammoth_we-6 + +- type: entity + parent: DecorFloorBase + id: DecorStalagmite1 + name: stalagmite + description: Pointy rocks! Mites go up, tites come... + components: + - type: Sprite + state: stalagmite + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.20 + density: 1000 + mask: + - MachineMask + layer: + - MachineLayer + +- type: entity + parent: DecorStalagmite1 + id: DecorStalagmite2 + components: + - type: Sprite + state: stalagmite1 + +- type: entity + parent: DecorStalagmite1 + id: DecorStalagmite3 + components: + - type: Sprite + state: stalagmite2 + +- type: entity + parent: DecorStalagmite1 + id: DecorStalagmite4 + components: + - type: Sprite + state: stalagmite3 + +- type: entity + parent: DecorStalagmite1 + id: DecorStalagmite5 + components: + - type: Sprite + state: stalagmite4 + +- type: entity + parent: DecorStalagmite1 + id: DecorStalagmite6 + components: + - type: Sprite + state: stalagmite5 + +- type: entity + parent: DecorStalagmite1 + id: DecorMinecart + name: minecrart + description: It seems to have fallen over... + components: + - type: Sprite + state: minecart_fallen + +- type: entity + parent: DecorFloorBase + id: DecorSignLeftMine + name: sign + description: A sign, for a mine, pointing li...left + components: + - type: Sprite + state: sign_left + +- type: entity + parent: DecorFloorBase + id: DecorSignRightMine + name: sign + description: A sign, pointing right. + components: + - type: Sprite + state: sign_right + +# World Decor +- type: entity + parent: DecorFloorBase + id: DecorFloorWorldBase + abstract: true + components: + - type: Sprite + sprite: Structures/Decoration/world.rsi + +- type: entity + parent: DecorFloorWorldBase + id: DecorFloorPaper + name: scattered paper + description: A mess of papers + suffix: 8 states + components: + - type: Sprite + sprite: Structures/Decoration/world.rsi + state: scattered_papers + # add destruction drop for materials + +- type: entity + parent: DecorFloorWorldBase + id: DecorFloorPaper1 + suffix: 4 states + name: scattered paper + description: A mess of papers + components: + - type: Sprite + state: papers_1 + +- type: entity + parent: DecorFloorPaper1 + id: DecorFloorPaper2 + components: + - type: Sprite + state: papers_2 + +- type: entity + parent: DecorFloorPaper1 + id: DecorFloorPaper3 + components: + - type: Sprite + state: papers_3 + +- type: entity + parent: DecorFloorWorldBase + id: DecorFloorScrapwood + name: wood scraps + description: wood scraps + suffix: 6 states + components: + - type: Sprite + state: woodscrap + +- type: entity + parent: DecorFloorWorldBase + id: DecorFloorBrickrubble + name: brick rubble + description: brick rubble + suffix: "6 states" + components: + - type: Sprite + state: brickrubble + +- type: entity + parent: DecorFloorWorldBase + id: DecorFloorCardboard + name: cardboard boxes + description: cardboard scrap boxes + suffix: "6 states" + components: + - type: Sprite + state: cardboard + # add destruction drop for materials + +- type: entity + parent: DecorFloorWorldBase + id: DecorFloorPallet + name: pallet + description: a wooden pallet. + suffix: "2 states" + components: + - type: Sprite + state: pallet + # add destruction drop for materials + +- type: entity + parent: DecorFloorWorldBase + id: DecorFloorPalletStack + name: pallet stack + description: a stack of wooden pallets + suffix: "2 states" + components: + - type: Sprite + state: pallet_stack + # add destruction drop for materials + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.20 + density: 1000 + mask: + - MachineMask + layer: + - MachineLayer + +- type: entity + parent: DecorFloorPalletStack + id: DecorFloorBrickStack + name: brick stack + description: a neat stack of bricks + components: + - type: Sprite + state: brickpile + +- type: entity + parent: DecorFloorWorldBase + id: DecorFloorBookstack1 + name: book stack + description: a stack of books + components: + - type: Sprite + state: bookstack_1 + # add destruction drop for materials + +- type: entity + parent: DecorFloorBookstack1 + id: DecorFloorBookstack2 + components: + - type: Sprite + state: bookstack_2 + +- type: entity + parent: DecorFloorBookstack1 + id: DecorFloorBookstack3 + components: + - type: Sprite + state: bookstack_3 + +- type: entity + parent: DecorFloorWorldBase + id: DecorFloorBookPile1 + name: book pile + description: a pile of books + components: + - type: Sprite + state: bookpile_1 + # add destruction drop for materials + +- type: entity + parent: DecorFloorBookPile1 + id: DecorFloorBookPile2 + components: + - type: Sprite + state: bookpile_2 + +- type: entity + parent: DecorFloorBookPile1 + id: DecorFloorBookPile3 + components: + - type: Sprite + state: bookpile_3 + +- type: entity + parent: DecorFloorBookPile1 + id: DecorFloorBookPile4 + components: + - type: Sprite + state: bookpile_4 + +- type: entity + parent: DecorFloorBookPile1 + id: DecorFloorBookPile5 + components: + - type: Sprite + state: bookpile_5 + +- type: entity + parent: DecorFloorBookPile1 + id: DecorFloorBookPile6 + components: + - type: Sprite + state: bookpile_6 + +- type: entity + parent: DecorFloorWorldBase + id: DecorFloorFood1 + name: food stuff + description: some old food stuff + components: + - type: Sprite + state: foodstuff_1 + +- type: entity + parent: DecorFloorFood1 + id: DecorFloorFood2 + components: + - type: Sprite + state: foodstuff_2 + +- type: entity + parent: DecorFloorFood1 + id: DecorFloorFood3 + components: + - type: Sprite + state: foodstuff_3 + +- type: entity + parent: DecorFloorFood1 + id: DecorFloorFood4 + components: + - type: Sprite + state: foodstuff_4 + +- type: entity + parent: DecorFloorFood1 + id: DecorFloorFood5 + components: + - type: Sprite + state: foodstuff_5 + +- type: entity + parent: DecorFloorFood1 + id: DecorFloorFood6 + components: + - type: Sprite + state: foodstuff_6 + +- type: entity + parent: DecorFloorWorldBase + id: DecorFloorTrashbags1 + name: trash bags + description: some old trash bags + components: + - type: Sprite + state: trashbags_1 + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.20 + density: 1000 + mask: + - MachineMask + layer: + - MachineLayer + +- type: entity + parent: DecorFloorTrashbags1 + id: DecorFloorTrashbags2 + components: + - type: Sprite + state: trashbags_2 + +- type: entity + parent: DecorFloorTrashbags1 + id: DecorFloorTrashbags3 + components: + - type: Sprite + state: trashbags_3 + +- type: entity + parent: DecorFloorTrashbags1 + id: DecorFloorTrashbags4 + components: + - type: Sprite + state: trashbags_4 + +- type: entity + parent: DecorFloorTrashbags1 + id: DecorFloorTrashbags5 + components: + - type: Sprite + state: trashbags_5 + +- type: entity + parent: DecorFloorTrashbags1 + id: DecorFloorTrashbags6 + components: + - type: Sprite + state: trashbags_6 + +- type: entity + parent: DecorFloorWorldBase + id: DecorFloorGlass1 + name: glass bottles + description: some old glass scraps + components: + - type: Sprite + state: glass_1 + # add glass shard destruction + +- type: entity + parent: DecorFloorGlass1 + id: DecorFloorGlass2 + components: + - type: Sprite + state: glass_2 + +- type: entity + parent: DecorFloorGlass1 + id: DecorFloorGlass3 + components: + - type: Sprite + state: glass_3 + +- type: entity + parent: DecorFloorGlass1 + id: DecorFloorGlass4 + components: + - type: Sprite + state: glass_4 + +- type: entity + parent: DecorFloorGlass1 + id: DecorFloorGlass5 + components: + - type: Sprite + state: glass_5 + +- type: entity + parent: DecorFloorGlass1 + id: DecorFloorGlass6 + components: + - type: Sprite + state: glass_6 + +- type: entity + parent: DecorFloorWorldBase + id: DecorSignMines + name: mines + description: danger of mines and death... + components: + - type: Sprite + state: mine_sign + +- type: entity + parent: DecorFloorWorldBase + id: DecorFloorSkeleton + name: skeleton + description: looks a little worse for wear + components: + - type: Sprite + state: skeleton + +- type: entity + parent: DecorFloorWorldBase + id: DecorBarrels + name: barrels + description: a bunch of old rusty barrels. + components: + - type: Sprite + layers: + - state: barrels1 + map: [ "body" ] + - type: RandomSprite + available: + - body: + barrels1: "" + barrels2: "" + barrels3: "" + barrels4: "" + barrels5: "" + barrels6: "" + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.3 + density: 1000 + mask: + - MachineMask + layer: + - MachineLayer + +- type: entity + parent: DecorFloorSkeleton + id: DecorFloorSkeletonOver + suffix: draws over objects + components: + - type: Sprite + drawdepth: Mobs diff --git a/Resources/Prototypes/Entities/Structures/Decoration/rails.yml b/Resources/Prototypes/Entities/Structures/Decoration/rails.yml new file mode 100644 index 00000000000..a41b474622a --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/Decoration/rails.yml @@ -0,0 +1,95 @@ +- type: entity + id: Rails + name: railway + placement: + mode: SnapgridCenter + components: + - type: Sprite + sprite: Structures/Decoration/rails64.rsi + state: rails + netsync: false + drawdepth: FloorObjects + - type: Damageable + damageModifierSet: Wood + damageContainer: Inorganic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 200 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: WoodDestroy + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Transform + anchored: true + - type: Physics + bodyType: Static + canCollide: false + - type: Clickable + +- type: entity + parent: Rails + id: RailsJunctionRightTop + suffix: junction right top + components: + - type: Sprite + state: junction-right-top + +- type: entity + parent: Rails + id: RailsJunctionLeftTop + suffix: junction left top + components: + - type: Sprite + state: junction-left-top + +- type: entity + parent: Rails + id: RailsJunctionRightBottom + suffix: junction right bottom + components: + - type: Sprite + state: junction-right-bottom + +- type: entity + parent: Rails + id: RailsJunctionLeftBottom + suffix: junction left bottom + components: + - type: Sprite + state: junction-left-bottom + +- type: entity + parent: Rails + id: RailsTurnWS + suffix: turn west-south + components: + - type: Sprite + state: turn-WS + +- type: entity + parent: Rails + id: RailsTurnNW + suffix: turn north-west + components: + - type: Sprite + state: turn-NW + +- type: entity + parent: Rails + id: RailsTurnNE + suffix: turn north-east + components: + - type: Sprite + state: turn-NE + +- type: entity + parent: Rails + id: RailsTurnSE + suffix: turn south-east + components: + - type: Sprite + state: turn-SE diff --git a/Resources/Prototypes/Entities/Structures/Decoration/torches.yml b/Resources/Prototypes/Entities/Structures/Decoration/torches.yml new file mode 100644 index 00000000000..1646ec9f707 --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/Decoration/torches.yml @@ -0,0 +1,73 @@ +- type: entity + id: Torch2 + name: torch + suffix: floor + description: A flaming torch for lighting an area. + placement: + mode: SnapgridCenter + components: + - type: Transform + anchored: true + - type: Clickable + - type: InteractionOutline + - type: Physics + bodyType: Static + canCollide: false + - type: Sprite + netsync: false + noRot: true + sprite: Structures/Decoration/torches.rsi + state: torch_unlit + - type: Appearance + - type: Reactive + groups: + Flammable: [ Touch ] + Extinguish: [ Touch ] + - type: ExtinguishOnInteract + extinguishAttemptSound: + path: /Audio/Items/candle_blowing.ogg + params: + variation: 0.05 + volume: 10 + - type: UseDelay + - type: Flammable + fireSpread: false + canResistFire: false + alwaysCombustible: true + canExtinguish: true + firestacksOnIgnite: 3.0 + firestackFade: -0.01 + damage: + types: + Heat: 0.1 + - type: FireVisuals + sprite: Structures/Decoration/torches.rsi + normalState: torch_lit + - type: Damageable + damageModifierSet: Wood + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 50 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: ToggleableLightVisuals + spriteLayer: null + - type: PointLight + color: "#e39c40" + radius: 5 + power: 16 + +- type: entity + parent: Torch2 + id: TorchWall + suffix: wall + components: + - type: Sprite + noRot: false + state: wall_torch_unlit + - type: FireVisuals + sprite: Structures/Decoration/torches.rsi + normalState: wall_torch_lit diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml index 586902bd776..97a6d8e076e 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/base_structureairlocks.yml @@ -153,6 +153,9 @@ - type: InteractionVerbs allowedVerbs: - KnockOn + - type: TwistedConstructionTarget + replacementProto: CultDoor + doAfterDelay: 10 placement: mode: SnapgridCenter diff --git a/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml b/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml index 074c981da25..a1451f7a8c0 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Firelocks/firelock.yml @@ -109,6 +109,7 @@ - type: DoorBolt - type: AccessReader access: [ [ "Engineering" ] ] + - type: NavMapDoor - type: entity id: Firelock diff --git a/Resources/Prototypes/Entities/Structures/Furniture/Tables/base_structuretables.yml b/Resources/Prototypes/Entities/Structures/Furniture/Tables/base_structuretables.yml index dbef5a7504a..7a926d66d37 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/Tables/base_structuretables.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/Tables/base_structuretables.yml @@ -40,7 +40,8 @@ footstepSoundCollection: collection: FootstepHull - type: RequireProjectileTarget - + - type: ThrownItemImmune + - type: entity id: CounterBase parent: TableBase diff --git a/Resources/Prototypes/Entities/Structures/Furniture/Tables/operating_table.yml b/Resources/Prototypes/Entities/Structures/Furniture/Tables/operating_table.yml index 75cffd91f54..45423cc2d4d 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/Tables/operating_table.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/Tables/operating_table.yml @@ -2,7 +2,7 @@ id: OperatingTable parent: Bed name: operating table - description: Special medical table for surgery. This one just seems to be a useless prop, though. + description: Used for advanced medical procedures. components: - type: Sprite sprite: Structures/Furniture/Tables/optable.rsi @@ -11,3 +11,4 @@ - type: Icon sprite: Structures/Furniture/Tables/optable.rsi state: operating_table + - type: OperatingTable \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Structures/Furniture/chairs.yml b/Resources/Prototypes/Entities/Structures/Furniture/chairs.yml index 14b3270ba88..d65d652ff42 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/chairs.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/chairs.yml @@ -358,6 +358,8 @@ components: - type: Foldable folded: true + - type: Strap + enabled: False - type: entity name: steel bench diff --git a/Resources/Prototypes/Entities/Structures/Furniture/rollerbeds.yml b/Resources/Prototypes/Entities/Structures/Furniture/rollerbeds.yml index 161ea25bc43..e09997720d2 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/rollerbeds.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/rollerbeds.yml @@ -54,7 +54,7 @@ position: Down rotation: -90 buckleOffset: "0,0.15" - unbuckleOffset: "0,0.15" + buckleOnInteractHand: False - type: Appearance - type: GenericVisualizer visuals: @@ -79,6 +79,8 @@ components: - type: Foldable folded: true + - type: Strap + enabled: False - type: entity id: CheapRollerBed @@ -105,6 +107,8 @@ components: - type: Foldable folded: true + - type: Strap + enabled: False - type: entity id: EmergencyRollerBed @@ -131,3 +135,5 @@ components: - type: Foldable folded: true + - type: Strap + enabled: False diff --git a/Resources/Prototypes/Entities/Structures/Holographic/projections.yml b/Resources/Prototypes/Entities/Structures/Holographic/projections.yml index f9bf81695e9..7d5870bb019 100644 --- a/Resources/Prototypes/Entities/Structures/Holographic/projections.yml +++ b/Resources/Prototypes/Entities/Structures/Holographic/projections.yml @@ -25,6 +25,9 @@ behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] + - type: Tag + tags: + - NoPaint - type: entity id: HoloFan diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 72c6dc3743f..27717049050 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -285,6 +285,9 @@ - CryostasisBeaker - SyringeCryostasis - Syringe + - EnergyScalpel + - EnergyCautery + - AdvancedRetractor - Implanter - PillCanister - ChemistryEmptyBottle01 @@ -487,6 +490,7 @@ - SolarTrackerElectronics - TurboItemRechargerCircuitboard - PowerComputerCircuitboard + - AlertsComputerCircuitboard - AutolatheHyperConvectionMachineCircuitboard - ProtolatheHyperConvectionMachineCircuitboard - CircuitImprinterHyperConvectionMachineCircuitboard @@ -602,6 +606,7 @@ - BorgModuleConstruction - BorgModuleService - BorgModuleTreatment + - BorgModuleSurgery - BorgModuleCleaning - CyborgEndoskeleton - LeftArmBorg @@ -658,6 +663,12 @@ - BorgModuleDiagnosis - BorgModuleDefibrillator - BorgModuleAdvancedTreatment + - BorgModuleAdvancedSurgery + - JawsOfLifeLeftArm + - JawsOfLifeRightArm + - SpeedLeftLeg + - SpeedRightLeg + - BasicCyberneticEyes - RipleyHarness - RipleyLArm - RipleyRArm @@ -898,6 +909,8 @@ - MagazineBoxSpecialIncendiary - MagazineBoxSpecialUranium - MagazineBoxSpecialMindbreaker + - SecurityCyberneticEyes + - MedicalCyberneticEyes - type: MaterialStorage whitelist: tags: @@ -1012,6 +1025,7 @@ - MedkitRadiation - MedkitCombat - Scalpel + - BoneGel - Retractor - Cautery - Drill @@ -1026,6 +1040,11 @@ - ClothingEyesHudMedical # Nyano - ChemicalPayload # Nyano - SyringeCryostasis + - EnergyScalpel + - EnergyCautery + - AdvancedRetractor + - OmnimedTool + - MedicalCyberneticEyes - type: Machine board: MedicalTechFabCircuitboard - type: StealTarget @@ -1498,3 +1517,50 @@ whitelist: tags: - PrizeTicket + +- type: entity + id: MedicalBiofabricator + parent: BaseLathe + name: medical biofabricator + description: Produces organs and other organic matter that can be surgically grafted onto patients with biomass. + components: + - type: Sprite + sprite: Structures/Machines/limbgrower.rsi + snapCardinals: true + layers: + - state: limbgrower_idleoff + map: ["enum.LatheVisualLayers.IsRunning"] +# - state: limbgrower_idleoff +# shader: unshaded +# map: ["enum.PowerDeviceVisualLayers.Powered"] +# - state: inserting +# map: ["enum.MaterialStorageVisualLayers.Inserting"] +# - state: panel +# map: ["enum.WiresVisualLayers.MaintenancePanel"] + - type: Machine + board: MedicalBiofabMachineBoard + - type: MaterialStorage + whitelist: + tags: + - Sheet + - RawMaterial + - type: Lathe + idleState: limbgrower_idleoff + runningState: limbgrower_idleon + staticRecipes: + - SynthLiver + - SynthHeart + - SynthLungs + - SynthEyes + - SynthLeftLeg + - SynthRightLeg + - SynthLeftFoot + - SynthRightFoot + - SynthLeftArm + - SynthRightArm + - SynthLeftHand + - SynthRightHand + - type: EmagLatheRecipes + emagStaticRecipes: + - PizzaLeftArm + - PizzaRightArm diff --git a/Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml b/Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml index 7aee5896472..3c1334169d8 100644 --- a/Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml +++ b/Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml @@ -61,7 +61,7 @@ - type: entity id: DisposalHolder - noSpawn: true + categories: [ HideSpawnMenu ] name: disposal holder components: - type: DisposalHolder diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/PA/particles.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/PA/particles.yml index 8d889ee5cbb..9d3ce9c931f 100644 --- a/Resources/Prototypes/Entities/Structures/Power/Generation/PA/particles.yml +++ b/Resources/Prototypes/Entities/Structures/Power/Generation/PA/particles.yml @@ -3,7 +3,7 @@ description: Accelerated particles. id: ParticlesProjectile parent: BaseBullet - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite layers: @@ -54,7 +54,7 @@ description: Accelerated negative particles. id: AntiParticlesProjectile parent: ParticlesProjectile - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite layers: diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/ame.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/ame.yml index 4e4ef8bdbcf..b7d6b5a128d 100644 --- a/Resources/Prototypes/Entities/Structures/Power/Generation/ame.yml +++ b/Resources/Prototypes/Entities/Structures/Power/Generation/ame.yml @@ -108,7 +108,7 @@ mediumVoltageNode: ame - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: AmeController id: AmeControllerUnanchored suffix: Unanchored diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/generators.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/generators.yml index ed70b310915..1faee965d4e 100644 --- a/Resources/Prototypes/Entities/Structures/Power/Generation/generators.yml +++ b/Resources/Prototypes/Entities/Structures/Power/Generation/generators.yml @@ -144,7 +144,7 @@ # Construction Frames - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] id: BaseGeneratorWallmountFrame name: wallmount generator frame description: A construction frame for a wallmount generator. diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/solar.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/solar.yml index 601c7c360a5..382846938b2 100644 --- a/Resources/Prototypes/Entities/Structures/Power/Generation/solar.yml +++ b/Resources/Prototypes/Entities/Structures/Power/Generation/solar.yml @@ -1,6 +1,6 @@ - type: entity id: SolarPanelBasePhysSprite - noSpawn: true + categories: [ HideSpawnMenu ] name: solar panel placement: mode: SnapgridCenter diff --git a/Resources/Prototypes/Entities/Structures/Power/Generation/teg.yml b/Resources/Prototypes/Entities/Structures/Power/Generation/teg.yml index 9a378c26a44..0245839e466 100644 --- a/Resources/Prototypes/Entities/Structures/Power/Generation/teg.yml +++ b/Resources/Prototypes/Entities/Structures/Power/Generation/teg.yml @@ -183,7 +183,7 @@ - # Spawned by the client-side circulator examine code to indicate the inlet/outlet direction. type: entity id: TegCirculatorArrow - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite sprite: Markers/teg_arrow.rsi diff --git a/Resources/Prototypes/Entities/Structures/Power/apc.yml b/Resources/Prototypes/Entities/Structures/Power/apc.yml index 01147f439f3..9412d454476 100644 --- a/Resources/Prototypes/Entities/Structures/Power/apc.yml +++ b/Resources/Prototypes/Entities/Structures/Power/apc.yml @@ -1,5 +1,5 @@ - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] id: BaseAPC name: APC description: A control terminal for the area's electrical systems. @@ -143,7 +143,7 @@ # APC under construction - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] id: APCFrame name: APC frame description: A control terminal for the area's electrical systems, lacking the electronics. diff --git a/Resources/Prototypes/Entities/Structures/Power/substation.yml b/Resources/Prototypes/Entities/Structures/Power/substation.yml index 489cfff6597..f96ef97187f 100644 --- a/Resources/Prototypes/Entities/Structures/Power/substation.yml +++ b/Resources/Prototypes/Entities/Structures/Power/substation.yml @@ -117,7 +117,7 @@ # Compact Wall Substation Base - type: entity id: BaseSubstationWall - noSpawn: true + categories: [ HideSpawnMenu ] name: wallmount substation description: A substation designed for compact shuttles and spaces. placement: @@ -260,7 +260,7 @@ # Construction Frame - type: entity id: BaseSubstationWallFrame - noSpawn: true + categories: [ HideSpawnMenu ] name: wallmount substation frame description: A substation frame for construction placement: diff --git a/Resources/Prototypes/Entities/Structures/Storage/Canisters/gas_canisters.yml b/Resources/Prototypes/Entities/Structures/Storage/Canisters/gas_canisters.yml index 1d184ad45eb..a773bef2334 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Canisters/gas_canisters.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Canisters/gas_canisters.yml @@ -698,7 +698,7 @@ - type: entity parent: GasCanisterBrokenBase id: StorageCanisterBroken - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite state: yellow-1 @@ -706,7 +706,7 @@ - type: entity parent: GasCanisterBrokenBase id: AirCanisterBroken - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite state: grey-1 @@ -714,7 +714,7 @@ - type: entity parent: GasCanisterBrokenBase id: OxygenCanisterBroken - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite state: blue-1 @@ -722,7 +722,7 @@ - type: entity parent: GasCanisterBrokenBase id: NitrogenCanisterBroken - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite state: red-1 @@ -730,7 +730,7 @@ - type: entity parent: GasCanisterBrokenBase id: CarbonDioxideCanisterBroken - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite state: black-1 @@ -738,7 +738,7 @@ - type: entity parent: GasCanisterBrokenBase id: PlasmaCanisterBroken - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite state: orange-1 @@ -746,7 +746,7 @@ - type: entity parent: GasCanisterBrokenBase id: TritiumCanisterBroken - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite state: green-1 @@ -755,7 +755,7 @@ parent: GasCanisterBrokenBase id: WaterVaporCanisterBroken name: broken water vapor canister - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite state: water_vapor-1 @@ -763,7 +763,7 @@ - type: entity parent: GasCanisterBrokenBase id: AmmoniaCanisterBroken - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite state: greenys-1 @@ -771,7 +771,7 @@ - type: entity parent: GasCanisterBrokenBase id: NitrousOxideCanisterBroken - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite state: redws-1 @@ -779,7 +779,7 @@ - type: entity parent: GasCanisterBrokenBase id: FrezonCanisterBroken - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite state: frezon-1 diff --git a/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/base_structurelockers.yml b/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/base_structurelockers.yml index 7d7bc94bb32..787421556db 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/base_structurelockers.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/base_structurelockers.yml @@ -49,6 +49,11 @@ node: done containers: - entity_storage + - type: DamageOtherOnHit + damage: + types: + Blunt: 10 + staminaCost: 35 - type: entity id: LockerBaseSecure diff --git a/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/lockers.yml b/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/lockers.yml index c1efc5a63f8..aa1d53a065d 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/lockers.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/lockers.yml @@ -43,6 +43,11 @@ stateBaseClosed: secure stateDoorOpen: secure_open stateDoorClosed: secure_door + - type: DamageOtherOnHit + damage: + types: + Blunt: 15 + staminaCost: 50 # Cargo - type: entity diff --git a/Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml b/Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml index e966a41780c..9d89f86a7a5 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml @@ -98,6 +98,11 @@ stateDoorClosed: generic_door - type: StaticPrice price: 50 + - type: DamageOtherOnHit + damage: + types: + Blunt: 10 + staminaCost: 35 # steel closet base (that can be constructed/deconstructed) - type: entity @@ -109,6 +114,11 @@ node: done containers: - entity_storage + - type: DamageOtherOnHit + damage: + types: + Blunt: 15 + staminaCost: 50 #Wall Closet - type: entity diff --git a/Resources/Prototypes/Entities/Structures/Storage/Crates/base_structurecrates.yml b/Resources/Prototypes/Entities/Structures/Storage/Crates/base_structurecrates.yml index 01c226cb0fd..52deca8e096 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Crates/base_structurecrates.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Crates/base_structurecrates.yml @@ -1,7 +1,7 @@ - type: entity parent: BaseStructureDynamic id: CrateGeneric - noSpawn: true + categories: [ HideSpawnMenu ] name: crate description: A large container for items. components: @@ -94,7 +94,7 @@ - type: entity parent: CrateGeneric id: CrateBaseWeldable - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Weldable - type: ResistLocker diff --git a/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml b/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml index bd76a87f557..bd8281f1949 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml @@ -12,6 +12,11 @@ - Energy reflectProb: 0.2 spread: 90 + - type: DamageOtherOnHit + damage: + types: + Blunt: 16 + staminaCost: 45 - type: entity parent: CrateBaseWeldable @@ -29,6 +34,11 @@ - entity_storage - type: StaticPrice price: 80 + - type: DamageOtherOnHit + damage: + types: + Blunt: 10 + staminaCost: 30 - type: entity parent: CratePlastic @@ -140,7 +150,7 @@ map: ["enum.StorageVisualLayers.Door"] - state: paper sprite: Structures/Storage/Crates/labels.rsi - map: ["enum.PaperLabelVisuals.Layer"] + map: ["enum.PaperLabelVisuals.Layer"] - type: Construction graph: WebStructures node: crate @@ -338,7 +348,7 @@ - state: paper sprite: Structures/Storage/Crates/labels.rsi offset: "-0.25,0.625" - map: ["enum.PaperLabelVisuals.Layer"] + map: ["enum.PaperLabelVisuals.Layer"] - type: Icon sprite: Structures/Storage/Crates/livestock.rsi state: base @@ -393,7 +403,7 @@ - state: paper sprite: Structures/Storage/Crates/labels.rsi offset: "0.0,0.125" - map: ["enum.PaperLabelVisuals.Layer"] + map: ["enum.PaperLabelVisuals.Layer"] - type: Icon sprite: Structures/Storage/Crates/cage.rsi - type: Destructible @@ -495,7 +505,7 @@ - state: closed map: ["enum.StorageVisualLayers.Door"] - state: paper - map: ["enum.PaperLabelVisuals.Layer"] + map: ["enum.PaperLabelVisuals.Layer"] - type: Icon sprite: Structures/Storage/Crates/coffin.rsi state: base @@ -537,7 +547,7 @@ - state: paper sprite: Structures/Storage/Crates/labels.rsi offset: "-0.28125,0.625" - map: ["enum.PaperLabelVisuals.Layer"] + map: ["enum.PaperLabelVisuals.Layer"] - type: Icon sprite: Structures/Storage/Crates/wooden_grave.rsi state: base @@ -585,7 +595,7 @@ - state: paper sprite: Structures/Storage/Crates/labels.rsi offset: "-0.3125,0.5625" - map: ["enum.PaperLabelVisuals.Layer"] + map: ["enum.PaperLabelVisuals.Layer"] - type: Icon sprite: Structures/Storage/Crates/stone_grave.rsi state: base diff --git a/Resources/Prototypes/Entities/Structures/Storage/Tanks/base_structuretanks.yml b/Resources/Prototypes/Entities/Structures/Storage/Tanks/base_structuretanks.yml index 7b56e6d36b5..243f51ca6fa 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Tanks/base_structuretanks.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Tanks/base_structuretanks.yml @@ -82,4 +82,4 @@ mask: - MachineMask layer: - - WallLayer \ No newline at end of file + - WallLayer diff --git a/Resources/Prototypes/Entities/Structures/Storage/barrels.yml b/Resources/Prototypes/Entities/Structures/Storage/barrels.yml new file mode 100644 index 00000000000..0cbbb2ede8b --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/Storage/barrels.yml @@ -0,0 +1,287 @@ +# Barrels +# Base +- type: entity + parent: BaseStructureDynamic + id: BaseBarrel + name: barrel + description: This barrel looks like it could contain something. + categories: [ HideSpawnMenu ] + components: + - type: Sprite + sprite: Structures/Storage/barrels.rsi + state: blue-closed + netsync: false + noRot: true + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.2,-0.2,0.2,0.45" + density: 50 + mask: + - MachineMask + layer: + - WallLayer + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Metallic + - type: Destructible + thresholds: + - trigger: + !type:DamageTypeTrigger + damageType: Heat + damage: 5 + behaviors: + - !type:SolutionExplosionBehavior + solution: barrel + - trigger: + !type:DamageTypeTrigger + damageType: Piercing + damage: 5 + behaviors: + - !type:SolutionExplosionBehavior + solution: barrel + - trigger: + !type:DamageTrigger + damage: 50 + behaviors: + - !type:SpillBehavior + solution: barrel + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + - !type:DoActsBehavior + acts: ["Destruction"] + +# Base Open +- type: entity + parent: BaseBarrel + id: BaseBarrelOpen + suffix: open + categories: [ HideSpawnMenu ] + components: + - type: SolutionContainerManager + solutions: + barrel: + maxVol: 500 + - type: DrainableSolution + solution: barrel + - type: ReagentTank + +# Closed +- type: entity + parent: BaseBarrel + id: BlackBarrel + name: black barrel + description: A worn out black barrel. The label is torn off. + components: + - type: Sprite + sprite: Structures/Storage/barrels.rsi + state: black-closed + +- type: entity + parent: BaseBarrel + id: BlueBarrel + name: blue barrel + description: A blue barrel with a warning sign of. Maybe it contains water? + components: + - type: Sprite + sprite: Structures/Storage/barrels.rsi + state: blue-closed + +- type: entity + parent: BaseBarrel + id: RedBarrel + name: red barrel + description: A red barrel with an explosive warning sign on. Better be careful. + components: + - type: Sprite + sprite: Structures/Storage/barrels.rsi + state: red-closed + - type: Explosive + explosionType: Default + totalIntensity: 120 # ~ 5 tile radius + +- type: entity + parent: BaseBarrel + id: YellowBarrel + name: yellow barrel + description: A yellow barrel with a radiation warning sign on. Better be careful. + components: + - type: Sprite + sprite: Structures/Storage/barrels.rsi + state: yellow-closed + - type: RadiationSource + intensity: 2 + slope: 1 + +# Open +- type: entity + parent: BaseBarrelOpen + id: BlackBarrelOpen + suffix: open + name: black barrel + description: A worn out black barrel. The label is torn off. The lid is off and you can see inside. + components: + - type: Sprite + sprite: Structures/Storage/barrels.rsi + state: black-open + +- type: entity + parent: BaseBarrelOpen + id: BlueBarrelOpen + suffix: open + name: blue barrel + description: A blue barrel with a warning sign of. The lid is off and you can see inside. + components: + - type: Sprite + sprite: Structures/Storage/barrels.rsi + state: blue-open + +- type: entity + parent: BaseBarrelOpen + id: RedBarrelOpen + suffix: open + name: red barrel + description: A red barrel with an explosive warning sign on. The lid is off and you can see inside. + components: + - type: Sprite + sprite: Structures/Storage/barrels.rsi + state: red-open + +- type: entity + parent: BaseBarrelOpen + id: YellowBarrelOpen + suffix: open + name: yellow barrel + description: A yellow barrel with a radiation warning sign on. The lid is off and you can see inside but it still makes you twitch. + components: + - type: Sprite + sprite: Structures/Storage/barrels.rsi + state: yellow-open + - type: RadiationSource + intensity: 1 + slope: 1 + +# Full barrels +- type: entity + parent: BlackBarrelOpen + id: BlackBarrelFull + suffix: full + description: A worn out black barrel. This one looks full of some dark liquid. + components: + - type: Sprite + sprite: Structures/Storage/barrels.rsi + state: black-full + # TODO - fill with some sort of waste product? Maybe just dirty water. + +- type: entity + parent: RedBarrelOpen + id: RedBarrelFull + suffix: full + description: A red barrel with an explosive warning sign on. It has a golden liquid inside. + components: + - type: Sprite + sprite: Structures/Storage/barrels.rsi + state: red-full + - type: SolutionContainerManager + solutions: + barrel: + reagents: + - ReagentId: WeldingFuel + Quantity: 500 + - type: DamageOnToolInteract + tools: + - Welding + weldingDamage: + types: + Heat: 10 + - type: Explosive + explosionType: Default + totalIntensity: 120 # ~ 5 tile radius + +- type: entity + parent: YellowBarrelOpen + id: YellowBarrelFull + suffix: full + description: A yellow barrel with a radiation warning sign on. You can see the glowing goo bubble. + components: + - type: Sprite + sprite: Structures/Storage/barrels.rsi + state: yellow-full + - type: RadiationSource + intensity: 3 + slope: 1 + - type: PointLight + netsync: false + radius: 1.5 + energy: 1.6 + color: "#3db83b" + castShadows: false + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 1000 + behaviors: + - !type:SpillBehavior + solution: barrel + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + - !type:DoActsBehavior + acts: ["Destruction"] + # TODO - fill with some sort of radioactive waste reagent. + +# Burning Barrels +- type: entity + parent: BaseStructureDynamic + id: BurningBarrel + name: burnt barrel + description: This barrel looks like it once contained a fire. + components: + - type: Sprite + sprite: Structures/Storage/burningbarrel.rsi + state: burnbarrel + netsync: false + noRot: true + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.2 + density: 50 + mask: + - MachineMask + layer: + - MidImpassable + - LowImpassable + +- type: entity + parent: BurningBarrel + id: BurningBarrelLit + name: burning barrel + description: This barrel is smoldering. Toasty + components: + - type: Sprite + sprite: Structures/Storage/burningbarrel.rsi + state: burnbarrel_lit + netsync: false + - type: PointLight + color: "#E25822" + radius: 1.0 + energy: 5.0 + netsync: false + - type: LightBehaviour + behaviours: + - !type:RandomizeBehaviour # immediately make it bright and flickery + id: burnbarrel_lit + interpolate: Nearest + minDuration: 0.02 + maxDuration: 0.06 + startValue: 6.0 + endValue: 9.0 + property: Energy + isLooped: true diff --git a/Resources/Prototypes/Entities/Structures/Storage/closets.yml b/Resources/Prototypes/Entities/Structures/Storage/closets.yml new file mode 100644 index 00000000000..394840caf48 --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/Storage/closets.yml @@ -0,0 +1,228 @@ +# TODO:RESET:TIMEDSTORAGEFILL + +# Metal Closets +- type: entity + parent: ClosetBase + id: ClosetBase2 + abstract: true + components: + - type: Sprite + sprite: Structures/Storage/Closets/closet.rsi + layers: + - state: closet + map: ["enum.StorageVisualLayers.Base"] + - state: closet_door + map: ["enum.StorageVisualLayers.Door"] + - type: EntityStorageVisuals + stateBaseClosed: closet + stateDoorOpen: closet_open + stateDoorClosed: closet_door + - type: Transform + anchored: true + noRot: true + - type: Physics + bodyType: Static + - type: Anchorable # Makes the anchoring near impossible due to high time requirement + delay: 3600 + +- type: entity + parent: ClosetBase2 + id: ClosetBaseW + name: closet + description: A basic closet for storing things. + components: + - type: Weldable + - type: Sprite + noRot: true + netsync: false + sprite: Structures/Storage/Closets/closet.rsi + layers: + - state: closet + map: ["enum.StorageVisualLayers.Base"] + - state: closet_door + map: ["enum.StorageVisualLayers.Door"] + - state: welded + visible: false + map: ["enum.WeldableLayers.BaseWelded"] + - type: EntityStorageVisuals + stateBaseClosed: closet + stateDoorOpen: closet_open + stateDoorClosed: closet_door + + +- type: entity + parent: ClosetBaseW + id: ClosetGrey1 + components: + - type: Sprite + sprite: Structures/Storage/Closets/closetgrey.rsi + - type: Weldable + +- type: entity + id: ClosetGrey2 + parent: ClosetBaseW + components: + - type: Sprite + sprite: Structures/Storage/Closets/closetgrey2.rsi + +- type: entity + parent: ClosetBaseW + id: ClosetRusty + name: rusty closet + description: A rusty old closet for storing things. + components: + - type: Sprite + sprite: Structures/Storage/Closets/closetold.rsi + +- type: entity + parent: ClosetBaseW + id: ClosetGunCabinet + name: gun cabinet + description: A secure cabinet for storing guns. + components: + - type: Sprite + sprite: Structures/Storage/Closets/guncabinet.rsi + +- type: entity + parent: ClosetBaseW + id: ClosetFridgeDirty + name: fridge + description: A dirty old fridge for keeping food fresh + components: + - type: Sprite + sprite: Structures/Storage/Closets/fridgedirty.rsi + - type: ExplosionResistance + damageCoefficient: 0.90 + - type: AntiRottingContainer + +- type: entity + parent: ClosetBaseW + id: ClosetFridgeWideDirty + name: fridge + description: A dirty old fridge for keeping food fresh + components: + - type: Sprite + sprite: Structures/Storage/Closets/fridgewidedirty.rsi + - type: ExplosionResistance + damageCoefficient: 0.90 + - type: AntiRottingContainer + +- type: entity + parent: ClosetBaseW + id: ClosetDouble + name: double closet + description: A double closet for holding twice the things. + components: + - type: Sprite + sprite: Structures/Storage/Closets/doublecloset.rsi + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.15,-0.45,0.45,0.45" + density: 145 + mask: + - MachineMask + layer: + - MachineLayer + +# Wooden Closets + +- type: entity + parent: ClosetBase2 + id: ClosetCabinetWood + name: cabinet + description: An old pre-war wooden cabinet. + components: + - type: Sprite + sprite: Structures/Storage/Closets/cabinet.rsi + - type: Damageable + damageModifierSet: Wood + damageContainer: Inorganic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 30 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: WoodDestroy + - !type:SpawnEntitiesBehavior + spawn: + MaterialWoodPlank: + min: 0 + max: 1 + - !type:DoActsBehavior + acts: ["Destruction"] + - type: Tag + tags: + - Wooden + +- type: entity + parent: ClosetBaseW + id: ClosetGeneric + suffix: generic roller + components: + - type: Sprite + sprite: Structures/Storage/Closets/closetgeneric.rsi + +# Wallmounted Closets +- type: entity + id: ClosetWallMedicabinet + placement: + mode: SnapgridCenter + name: medicabinet + description: A medicabinet mounted on the wall. + components: + - type: InteractionOutline + - type: Clickable + - type: ResistLocker + - type: Weldable + - type: WallMount + arc: 180 + - type: Transform + noRot: false + - type: Sprite + drawdepth: WallMountedItems + netsync: false + noRot: false + sprite: Structures/Storage/Closets/medicabinet.rsi + layers: + - state: closet + - state: closet_door + map: ["enum.StorageVisualLayers.Door"] + - state: welded + visible: false + map: ["enum.WeldableLayers.BaseWelded"] + - type: EntityStorage + isCollidableWhenOpen: true + enteringOffset: 0, -0.75 + closeSound: + path: /Audio/Items/deconstruct.ogg + openSound: + path: /Audio/Items/deconstruct.ogg + - type: ContainerContainer + containers: + entity_storage: !type:Container + ents: [] + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Metallic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 150 + behaviors: + - !type:DoActsBehavior + acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + - !type:SpawnEntitiesBehavior + spawn: + SheetSteel1: + min: 1 + max: 1 diff --git a/Resources/Prototypes/Entities/Structures/Storage/crates.yml b/Resources/Prototypes/Entities/Structures/Storage/crates.yml new file mode 100644 index 00000000000..e6292912b09 --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/Storage/crates.yml @@ -0,0 +1,227 @@ +- type: entity + parent: CrateGenericSteel + id: CrateFootlocker + name: footlocker + description: A footlocker for someones equipment. + components: + - type: Icon + sprite: Structures/Storage/Crates/footlocker.rsi + - type: Sprite + sprite: Structures/Storage/Crates/footlocker.rsi + - type: Reflect + reflects: + - Energy + reflectProb: 0.2 + spread: 90 + +- type: entity + parent: CrateGenericSteel + id: CrateAluminium + name: aluminium crate + description: An aluminium crate for storing stuff. + components: + - type: Icon + sprite: Structures/Storage/Crates/aluminiumcrate.rsi + - type: Sprite + sprite: Structures/Storage/Crates/aluminiumcrate.rsi + +- type: entity + parent: CrateGenericSteel + id: CrateArmy + name: army crate + description: A crate with a US Army star on. + components: + - type: Icon + sprite: Structures/Storage/Crates/armycrate.rsi + - type: Sprite + sprite: Structures/Storage/Crates/armycrate.rsi + +- type: entity + parent: CrateGenericSteel + id: CrateMedical2 + name: medical crate + description: A metal crate for storing medical equipment. + components: + - type: Icon + sprite: Structures/Storage/Crates/medicalcrate.rsi + - type: Sprite + sprite: Structures/Storage/Crates/medicalcrate.rsi + +- type: entity + parent: CrateGenericSteel + id: CrateRed + name: red crate + description: A faded red crate for storing stuff. + components: + - type: Icon + sprite: Structures/Storage/Crates/redcrate.rsi + - type: Sprite + sprite: Structures/Storage/Crates/redcrate.rsi + +- type: entity + parent: CrateGeneric + id: Trashbin + name: trash bin + description: A trash bin for putting rubbish in. + components: + - type: Icon + sprite: Structures/Storage/Crates/trashbin.rsi + - type: Sprite + sprite: Structures/Storage/Crates/trashbin.rsi + layers: + - state: base + map: ["enum.StorageVisualLayers.Base"] + - state: closed + map: ["enum.StorageVisualLayers.Door"] + +- type: entity + parent: CrateFootlocker + id: CrateTrashcart + name: trash cart + description: A trash cart for transporting waste. + components: + - type: Icon + sprite: Structures/Storage/Crates/trashcart.rsi + - type: Sprite + sprite: Structures/Storage/Crates/trashcart.rsi + - type: TileFrictionModifier + modifier: 0.4 + +- type: entity + parent: CrateGeneric + id: CrateFreezer2 + name: freezer + description: A freezer for keeping things cool. + components: + - type: Icon + sprite: Structures/Storage/Crates/freezer.rsi + - type: Sprite + sprite: Structures/Storage/Crates/freezer.rsi + layers: + - state: base + map: ["enum.StorageVisualLayers.Base"] + - state: closed + map: ["enum.StorageVisualLayers.Door"] + - type: AntiRottingContainer + +# Wooden +- type: entity + parent: CrateGeneric + id: CrateWooden + name: wooden crate + components: + - type: Icon + sprite: Structures/Storage/Crates/cratewooden.rsi + state: icon + - type: Sprite + sprite: Structures/Storage/Crates/cratewooden.rsi + layers: + - state: base + map: ["enum.StorageVisualLayers.Base"] + - state: closed + map: ["enum.StorageVisualLayers.Door"] + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.4,-0.4,0.4,0.29" + density: 50 + mask: + - SmallMobMask #this is so they can go under plastic flaps + layer: + - MachineLayer + +- type: entity + parent: CrateWooden + id: CrateMilitary + name: military crate + description: An old wooden crate. Looks like it might have some supplies in. + components: + - type: Icon + sprite: Structures/Storage/Crates/cratemilitary.rsi + - type: Sprite + sprite: Structures/Storage/Crates/cratemilitary.rsi + +# Breakable Crates (deconstruct or destroy) +- type: entity + parent: BaseStructureDynamic + id: CrateBreakBase + name: wooden crate + description: A wooden crate for storage. + abstract: true + components: + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Wood + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 75 + behaviors: + - !type:DoActsBehavior + acts: ["Destruction"] + - !type:PlaySoundBehavior + sound: + collection: WoodDestroy + - !type:SpawnEntitiesBehavior + spawn: + MaterialWoodPlank: + min: 0 + max: 1 + - !type:EmptyAllContainersBehaviour + - type: Sprite + sprite: Structures/Storage/Crates/woodencrates.rsi + - type: Storage + grid: + - 0,0,6,3 + maxItemSize: Huge + - type: UserInterface + interfaces: + enum.StorageUiKey.Key: + type: StorageBoundUserInterface + - type: ContainerContainer + containers: + storagebase: !type:Container + ents: [] + +- type: entity + parent: CrateBreakBase + id: CrateBreakWood + suffix: wood + components: + - type: Sprite + state: wood_crate + +- type: entity + parent: CrateBreakBase + id: CrateBreakPlain + suffix: plain + components: + - type: Sprite + state: plain_crate + +- type: entity + parent: CrateBreakBase + id: CrateBreakPlainDamaged + suffix: plain damaged + components: + - type: Sprite + state: plain_crate-1 # TODO: Make this random between states -1, -2 and -3 + +- type: entity + parent: CrateBreakBase + id: CrateBreakArmy + name: army crate + components: + - type: Sprite + state: army_crate + +- type: entity + parent: CrateBreakArmy + id: CrateBreakArmyDamaged + suffix: damaged + components: + - type: Sprite + state: army_crate-1 # TODO: Make this random between states -1 and -2 diff --git a/Resources/Prototypes/Entities/Structures/Storage/furniture.yml b/Resources/Prototypes/Entities/Structures/Storage/furniture.yml new file mode 100644 index 00000000000..6ea2a5e5649 --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/Storage/furniture.yml @@ -0,0 +1,49 @@ +# Washing Machines +- type: entity + parent: ClosetBase + id: FurnitureWashingmachine + name: washing machine + description: wishy washy. + components: + - type: Sprite + sprite: Structures/Storage/Furniture/washingmachine.rsi + layers: + - state: generic + map: ["enum.StorageVisualLayers.Base"] + - state: generic_door + map: ["enum.StorageVisualLayers.Door"] + - type: EntityStorageVisuals + stateBaseClosed: generic + stateDoorOpen: generic_open + stateDoorClosed: generic_door + - type: Transform + anchored: true + noRot: false + - type: Physics + bodyType: Static + +- type: entity + parent: FurnitureWashingmachine + id: FurnitureWashingmachineIndustrial + suffix: Industrial + components: + - type: Sprite + sprite: Structures/Storage/Furniture/washingmachine_industrial.rsi + +# Safes +- type: entity + parent: ClosetBaseW + id: ClosetSafe + name: safe + description: Might be filled with valuables. + components: + - type: Sprite + sprite: Structures/Storage/Furniture/safe.rsi + +- type: entity + parent: ClosetSafe + id: ClosetSafeSpinner + suffix: spinner + components: + - type: Sprite + sprite: Structures/Storage/Furniture/safespinner.rsi diff --git a/Resources/Prototypes/Entities/Structures/Storage/tanks.yml b/Resources/Prototypes/Entities/Structures/Storage/tanks.yml new file mode 100644 index 00000000000..41038fb74d1 --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/Storage/tanks.yml @@ -0,0 +1,182 @@ +# :TODO: Add the destroyed versions of these as a destruction spawn. + +- type: entity + parent: BaseStructure + id: StorageTankBase + name: storage tank + description: A liquids storage tank. + abstract: true + components: + - type: Sprite + noRot: true + - type: InteractionOutline + - type: Physics + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Metallic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 100 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTypeTrigger + damageType: Heat + damage: 5 + behaviors: + - !type:SolutionExplosionBehavior + solution: tank + - trigger: + !type:DamageTypeTrigger + damageType: Piercing + damage: 5 + behaviors: + - !type:SolutionExplosionBehavior + solution: tank + - trigger: + !type:DamageTrigger + damage: 10 + behaviors: + - !type:SpillBehavior + solution: tank + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + - !type:DoActsBehavior + acts: ["Destruction"] + - type: SolutionContainerManager + solutions: + tank: + maxVol: 1500 + - type: DrainableSolution + solution: tank + - type: ReagentTank + - type: Transform + noRot: true + +# In use +- type: entity + id: StorageTankWide + parent: StorageTankBase + name: fuel tank + description: A fuel tank. It's used to store high amounts of fuel. + suffix: Empty + components: + - type: Sprite + sprite: Structures/Storage/tanksx64.rsi + layers: + - state: chemical_container + # - state: chemical_container + # map: ["enum.SolutionContainerLayers.Fill"] + # visible: false + - type: Appearance + # - type: SolutionContainerVisuals + # maxFillLevels: 3 + # fillBaseName: fueltank-2- + - type: ExaminableSolution + solution: tank + - type: ReagentTank + tankType: Fuel + - type: DamageOnToolInteract + tools: + - Welding + weldingDamage: + types: + Heat: 10 + - type: PacifismDangerousAttack + - type: Explosive + explosionType: Default + totalIntensity: 120 # ~ 5 tile radius + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.9,-0.5,0.9,0.2" + density: 155 + mask: + - MachineMask + layer: + - WallLayer + +- type: entity + parent: StorageTankWide + id: StorageTankWideFullFuel + suffix: Full + components: + - type: SolutionContainerManager + solutions: + tank: + reagents: + - ReagentId: WeldingFuel + Quantity: 2000 + + +- type: entity + parent: StorageTankWide + id: StorageTank2 + suffix: Empty + components: + - type: Sprite + sprite: Structures/Storage/tanksx64.rsi + layers: + - state: largetank_chemical + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.9,-0.7,-0.1,0.4" + density: 155 + mask: + - MachineMask + layer: + - WallLayer + +- type: entity + id: StorageTankFullFuel + parent: StorageTank2 + suffix: Full + components: + - type: SolutionContainerManager + solutions: + tank: + reagents: + - ReagentId: WeldingFuel + Quantity: 1500 + +- type: entity + id: StorageTankHuge + parent: StorageTankWide + suffix: Empty + components: + - type: Sprite + sprite: Structures/Storage/tanksx64.rsi + layers: + - state: largetank_chemical_huge + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.7,-0.7,0.2,0.6" + density: 155 + mask: + - MachineMask + layer: + - WallLayer + +- type: entity + id: StorageTankHugeFullFuel + parent: StorageTankHuge + suffix: Full + components: + - type: SolutionContainerManager + solutions: + tank: + reagents: + - ReagentId: WeldingFuel + Quantity: 2000 diff --git a/Resources/Prototypes/Entities/Structures/Wallmount/adverts.yml b/Resources/Prototypes/Entities/Structures/Wallmount/adverts.yml new file mode 100644 index 00000000000..53c2cb05f3c --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/Wallmount/adverts.yml @@ -0,0 +1,19 @@ +- type: entity + parent: BaseSign + id: SignBase # for non directional signs otherwise remove snapCardinals: true + abstract: true + components: + - type: WallMount + arc: 360 + - type: Sprite + drawdepth: Overdoors + sprite: Structures/Wallmounts/signs_32x32.rsi + state: bar + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 100 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] diff --git a/Resources/Prototypes/Entities/Structures/Wallmount/base_lighting.yml b/Resources/Prototypes/Entities/Structures/Wallmount/base_lighting.yml new file mode 100644 index 00000000000..bdbce362f42 --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/Wallmount/base_lighting.yml @@ -0,0 +1,43 @@ +#Small lights +- type: entity + parent: SmallLight + id: LightSmallAlwayson + name: small light + suffix: Always on + description: "An always powered light." + components: + - type: Sprite + sprite: Structures/Wallmounts/lightbulbcaged.rsi + state: base + drawdepth: Overdoors + offset: 0, 1 # 0.75 is better but breaks for east west placement + - type: PointLight + energy: 1.0 + radius: 6 + softness: 1.1 + enabled: true + - type: WallMount + +- type: entity + parent: PoweredSmallLightEmpty + id: LightSmallEmpty + name: small light + description: "A light fixture. Draws power and produces light when equipped with a light bulb." + suffix: Empty + components: + - type: Sprite + sprite: Structures/Wallmounts/lightbulbcaged.rsi + state: empty + offset: 0, 1 + - type: WallMount + +- type: entity + parent: PoweredSmallLight + id: LightSmall + suffix: "" + components: + - type: Sprite + sprite: Structures/Wallmounts/lightbulbcaged.rsi + state: base + offset: 0, 1 + - type: WallMount diff --git a/Resources/Prototypes/Entities/Structures/Wallmount/monitors_televisions.yml b/Resources/Prototypes/Entities/Structures/Wallmount/monitors_televisions.yml new file mode 100644 index 00000000000..6cda440adae --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/Wallmount/monitors_televisions.yml @@ -0,0 +1,54 @@ +- type: entity + parent: BaseComputer + id: ComputerVDU + name: VDU + description: A wall mounted video display unit. + components: + - type: Sprite + drawdepth: Overdoors + sprite: Structures/Wallmounts/vdu.rsi + layers: + - map: ["computerLayerBody"] + state: VDU + - map: ["computerLayerKeyboard"] + state: keyboard + - map: ["computerLayerScreen"] + state: screen + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.20,-0.10,0.25,0.35" + density: 250 + mask: + - FullTileMask + layer: + - WallLayer + - type: WallMount + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Metallic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 200 + behaviors: #excess damage, don't spawn entities. + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 50 + behaviors: + - !type:SpawnEntitiesBehavior + spawn: + SheetSteel1: + min: 1 + max: 1 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Transform + anchored: true + +# See terminals for more wall mounted versions diff --git a/Resources/Prototypes/Entities/Structures/Wallmount/noticeboard.yml b/Resources/Prototypes/Entities/Structures/Wallmount/noticeboard.yml new file mode 100644 index 00000000000..c02f56e249c --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/Wallmount/noticeboard.yml @@ -0,0 +1,63 @@ +- type: entity + id: NoticeBoard2 + name: notice board + description: Something important to post? + placement: + mode: SnapgridCenter + components: + - type: WallMount + - type: Sprite + sprite: Structures/Wallmounts/noticeboard.rsi + layers: + - state: noticeboard + - state: notice-0 + - map: ["enum.StorageFillLayers.Fill"] + - type: StorageFillVisualizer + maxFillLevels: 6 + fillBaseName: notice + - type: Appearance + - type: InteractionOutline + - type: Clickable + - type: Transform + anchored: true + - type: Damageable + damageModifierSet: Wood + damageContainer: Inorganic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 30 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: WoodDestroy + - !type:SpawnEntitiesBehavior + spawn: + MaterialWoodPlank: + min: 1 + max: 2 + - !type:DoActsBehavior + acts: ["Destruction"] + - type: Storage + grid: + - 0,0,4,3 + maxItemSize: Small + whitelist: + tags: + - Folder + - Document + - Write + - type: UserInterface + interfaces: + enum.StorageUiKey.Key: + type: StorageBoundUserInterface + - type: ContainerContainer + containers: + storagebase: !type:Container + - type: Tag + tags: + - Wooden + - type: Construction + graph: NoticeBoard + node: noticeBoard diff --git a/Resources/Prototypes/Entities/Structures/Wallmount/signs.yml b/Resources/Prototypes/Entities/Structures/Wallmount/signs.yml new file mode 100644 index 00000000000..b7ea2004a67 --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/Wallmount/signs.yml @@ -0,0 +1,154 @@ +# see adverts for sign base +# see street_furniture for floor signs + +# 32x32 +- type: entity + parent: SignBase + id: SignBar2 + name: bar sign + description: Bar! Get drunk here. + components: + - type: Sprite + sprite: Structures/Wallmounts/signs_32x32.rsi + state: bar + +- type: entity + parent: SignBar2 + id: SignClinic + name: clinic sign + description: A clinic sign. Hopefully they have meds. + components: + - type: Sprite + state: clinic + - type: PointLight + radius: 3 + energy: 1 + color: '#00ff00' + +- type: entity + parent: SignBar2 + id: SignOpen1 + name: open sign + description: Open for business. Maybe. + components: + - type: Sprite + state: open + - type: PointLight + radius: 3 + energy: 1 + color: '#ff0000' + +- type: entity + parent: SignOpen1 + id: SignOpen2 + components: + - type: Sprite + state: open_bar + +- type: entity + parent: SignOpen1 + id: SignOpenOn1 + components: + - type: Sprite + state: open_on + +- type: entity + parent: SignOpen1 + id: SignOpenOn2 + components: + - type: Sprite + state: open_bar_on + +- type: entity + parent: SignBase + id: SignForRent + name: for rent sign + description: A sign advertising a place for rent. + components: + - type: Sprite + sprite: Structures/Wallmounts/signs_32x32.rsi + state: rent + +- type: entity + parent: SignBase + id: SignNotice + name: notice sign + description: NOTICE! + components: + - type: Sprite + sprite: Structures/Wallmounts/walldecor.rsi + state: notice_sign + +- type: entity + parent: SignNotice + id: SignDanger2 + name: danger sign + description: Danger. + components: + - type: Sprite + state: danger_sign + +- type: entity + parent: SignNotice + id: WallDecorExitsign + name: exit sign + description: A sign that says EXIT. I wonder what it means. + components: + - type: Sprite + state: exit + noRot: true + +# 64x32 +- type: entity + parent: SignBar2 + id: SignBazaarOn + name: bazaar sign + description: A sign for a bazaar. How bizarre. + components: + - type: Sprite + sprite: Structures/Wallmounts/signs_64x32.rsi + state: bazaar_on + - type: PointLight + radius: 2 + energy: 1 + color: '#ff8000' + +- type: entity + parent: SignBazaarOn + id: SignHotel + name: hotel sign + description: A sign for a hotel. Get a room! + components: + - type: Sprite + state: hotel + +- type: entity + parent: SignBazaarOn + id: SignPrivateProperty + name: private property sign + description: A private property sign. + components: + - type: Sprite + state: private + +- type: entity + parent: SignBazaarOn + id: SignOpenBig + name: open sign + description: We are open sign. I hope so. + components: + - type: Sprite + state: we_open_open + - type: PointLight + radius: 2 + energy: 1 + color: '#ff0000' + +- type: entity + parent: SignBazaarOn + id: SignWorkersOnly + name: workers only sign + description: No tresspassing! + components: + - type: Sprite + state: workers diff --git a/Resources/Prototypes/Entities/Structures/Wallmount/wallmounts.yml b/Resources/Prototypes/Entities/Structures/Wallmount/wallmounts.yml new file mode 100644 index 00000000000..9946e6b2db5 --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/Wallmount/wallmounts.yml @@ -0,0 +1,45 @@ +# For wallmount things that don't fit in any other file. + +# Safes + +# Vents +- type: entity + parent: BaseSign + id: WallmountVent + name: vent + description: An airvent. Could be a good stash. + components: + - type: WallMount + arc: 360 + - type: Sprite + drawdepth: Overdoors + sprite: Structures/Storage/storage.rsi + state: vent + - type: SecretStash + secretPartName: secret-stash-part-vent + maxItemSize: Normal + - type: ContainerContainer + containers: + stash: !type:ContainerSlot {} + - type: PottedPlantHide # TODO: This needs changed to be generic stash hide? + +- type: entity + parent: WallmountVent + id: WallmountVentDamaged + suffix: damaged + components: + - type: Sprite + sprite: Structures/Storage/storage.rsi + state: vent-damaged + +- type: entity + parent: WallmountVent + id: WallmountVentOpen + suffix: open + components: + - type: Sprite + sprite: Structures/Storage/storage.rsi + state: vent-open + + +# First Aid diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/bar_sign.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/bar_sign.yml index 8e957abfe7f..2f644f373d4 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/bar_sign.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/Signs/bar_sign.yml @@ -36,7 +36,7 @@ #- type: entity # id: LargeBarSign # name: large bar sign -# noSpawn: true +# categories: [ HideSpawnMenu ] # components: # - type: Clickable # - type: InteractionOutline diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/mirror.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/mirror.yml index d02bce020da..1fe3318ef55 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/mirror.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/mirror.yml @@ -11,7 +11,12 @@ - type: Clickable - type: Transform anchored: true - - type: MagicMirror + - type: MagicMirror #instant and silent + changeHairSound: null + addSlotTime: 0 + removeSlotTime: 0 + selectSlotTime: 0 + changeSlotTime: 0 - type: ActivatableUI key: enum.MagicMirrorUiKey.Key - type: UserInterface diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/switch.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/switch.yml index 8fe6064b951..dbcb0763442 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/switch.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/switch.yml @@ -224,7 +224,7 @@ id: LockableButton name: lockable button parent: SignalButtonDirectional - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Appearance - type: Lock @@ -484,7 +484,7 @@ - type: entity id: ButtonFrame name: button frame - noSpawn: true + categories: [ HideSpawnMenu ] description: It's a frame to help distinguish switches visually. placement: mode: SnapgridCenter diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/timer.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/timer.yml index dd7eb5bea82..8e6b0863d67 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/timer.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/timer.yml @@ -83,7 +83,7 @@ # Construction Frame - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] id: TimerFrame name: timer frame description: A construction frame for a timer. diff --git a/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml b/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml index 0728d2a9113..7b8d145e624 100644 --- a/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml +++ b/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml @@ -419,7 +419,7 @@ noRot: true - type: SoundOnGather - type: Gatherable - whitelist: + toolWhitelist: tags: - Pickaxe - type: Damageable diff --git a/Resources/Prototypes/Entities/Structures/Walls/walls.yml b/Resources/Prototypes/Entities/Structures/Walls/walls.yml index 675de3dab55..b3ea345681a 100644 --- a/Resources/Prototypes/Entities/Structures/Walls/walls.yml +++ b/Resources/Prototypes/Entities/Structures/Walls/walls.yml @@ -191,6 +191,7 @@ parent: BaseWall id: WallCult name: cult wall + description: Keeps the cult in and the crew out. components: - type: Tag tags: @@ -215,6 +216,9 @@ - type: IconSmooth key: walls base: cult + - type: Construction + graph: CultGirder + node: wall - type: entity parent: BaseWall diff --git a/Resources/Prototypes/Entities/Structures/base_structure.yml b/Resources/Prototypes/Entities/Structures/base_structure.yml index 71971a66243..207881894b8 100644 --- a/Resources/Prototypes/Entities/Structures/base_structure.yml +++ b/Resources/Prototypes/Entities/Structures/base_structure.yml @@ -25,6 +25,11 @@ - type: Tag tags: - Structure + - type: DamageOtherOnHit + damage: + types: + Blunt: 8 + staminaCost: 50 - type: entity # This means that it's not anchored on spawn. diff --git a/Resources/Prototypes/Entities/Structures/hydro_tray.yml b/Resources/Prototypes/Entities/Structures/hydro_tray.yml index 68a0cbd38e4..82a19211fcf 100644 --- a/Resources/Prototypes/Entities/Structures/hydro_tray.yml +++ b/Resources/Prototypes/Entities/Structures/hydro_tray.yml @@ -91,6 +91,9 @@ - type: GuideHelp guides: - Botany + - type: Tag + tags: + - NoPaint - type: entity parent: hydroponicsTray diff --git a/Resources/Prototypes/Entities/Surgery/surgeries.yml b/Resources/Prototypes/Entities/Surgery/surgeries.yml new file mode 100644 index 00000000000..2db9782b67e --- /dev/null +++ b/Resources/Prototypes/Entities/Surgery/surgeries.yml @@ -0,0 +1,713 @@ +- type: entity + id: SurgeryBase + categories: [ HideSpawnMenu ] + +- type: entity + parent: SurgeryBase + id: SurgeryOpenIncision + name: Open Incision + categories: [ HideSpawnMenu ] + components: + - type: Surgery + steps: + - SurgeryStepOpenIncisionScalpel + - SurgeryStepRetractSkin + - SurgeryStepClampBleeders + - type: SurgeryPartPresentCondition + +- type: entity + parent: SurgeryBase + id: SurgeryCloseIncision + name: Close Incision + categories: [ HideSpawnMenu ] + components: + - type: Surgery + priority: 1 + steps: + - SurgeryStepCloseBones + - SurgeryStepMendRibcage + - SurgeryStepCloseIncision + - type: SurgeryPartPresentCondition + +- type: entity + parent: SurgeryBase + id: SurgeryOpenRibcage + name: Open Ribcage + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenIncision + steps: + - SurgeryStepSawBones + - SurgeryStepPriseOpenBones + - type: SurgeryPartCondition + part: Torso + +- type: entity + parent: SurgeryBase + id: SurgeryLobotomize + name: Lobotomize + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenIncision + steps: + - SurgeryStepLobotomize + - SurgeryStepCloseIncision + - type: SurgeryPartCondition + part: Head + - type: SurgeryOrganCondition + organ: + - type: Brain + - type: SurgeryOrganOnAddCondition + components: + brain: + - type: OhioAccent + - type: RatvarianLanguage + - type: Clumsy + clumsyDamage: # Placeholder values to be able to initialize the component + types: + Blunt: 0 + inverse: true + +- type: entity + parent: SurgeryBase + id: SurgeryMendBrainTissue + name: Mend brain tissue + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenIncision + steps: + - SurgeryStepMendBrainTissue + - SurgeryStepCloseIncision + - type: SurgeryPartCondition + part: Head + - type: SurgeryOrganCondition + organ: + - type: Brain + - type: SurgeryOrganOnAddCondition + components: + brain: + - type: OhioAccent + - type: RatvarianLanguage + - type: Clumsy + clumsyDamage: + types: + Blunt: 0 + +- type: entity + parent: SurgeryBase + id: SurgeryRemovePart + name: Remove Part + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenIncision + steps: + - SurgeryStepSawFeature + - SurgeryStepClampInternalBleeders + - SurgeryStepRemoveFeature + - type: SurgeryPartCondition + part: Torso + inverse: true + +# I fucking hate hardcoding all of this shit to accomodate for surgery BUI. +# If anyone can give me pointers on how to make it better I'd be incredibly grateful. + +- type: entity + parent: SurgeryBase + id: SurgeryAttachHead + name: Attach Head + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenIncision + steps: + - SurgeryStepInsertFeature + - SurgeryStepSealWounds + - type: SurgeryPartCondition + part: Torso + - type: SurgeryPartRemovedCondition + connection: head + part: Head + +- type: entity + parent: SurgeryBase + id: SurgeryAttachLeftArm + name: Attach Left Arm + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenIncision + steps: + - SurgeryStepInsertFeature + - SurgeryStepSealWounds + - type: SurgeryPartCondition + part: Torso + - type: SurgeryPartRemovedCondition + connection: left arm + part: Arm + symmetry: Left + +- type: entity + parent: SurgeryBase + id: SurgeryAttachRightArm + name: Attach Right Arm + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenIncision + steps: + - SurgeryStepInsertFeature + - SurgeryStepSealWounds + - type: SurgeryPartCondition + part: Torso + - type: SurgeryPartRemovedCondition + connection: right arm + part: Arm + symmetry: Right + +- type: entity + parent: SurgeryBase + id: SurgeryAttachLeftLeg + name: Attach Left Leg + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenIncision + steps: + - SurgeryStepInsertFeature + - SurgeryStepSealWounds + - type: SurgeryPartCondition + part: Torso + - type: SurgeryPartRemovedCondition + connection: left leg + part: Leg + symmetry: Left + +- type: entity + parent: SurgeryBase + id: SurgeryAttachRightLeg + name: Attach Right Leg + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenIncision + steps: + - SurgeryStepInsertFeature + - SurgeryStepSealWounds + - type: SurgeryPartCondition + part: Torso + - type: SurgeryPartRemovedCondition + connection: right leg + part: Leg + symmetry: Right + +- type: entity + parent: SurgeryBase + id: SurgeryAttachLeftHand + name: Attach Left Hand + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenIncision + steps: + - SurgeryStepInsertFeature + - SurgeryStepSealWounds + - type: SurgeryPartCondition + part: Arm + symmetry: Left + - type: SurgeryPartRemovedCondition + connection: left hand + part: Hand + symmetry: Left + +- type: entity + parent: SurgeryBase + id: SurgeryAttachRightHand + name: Attach Right Hand + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenIncision + steps: + - SurgeryStepInsertFeature + - SurgeryStepSealWounds + - type: SurgeryPartCondition + part: Arm + symmetry: Right + - type: SurgeryPartRemovedCondition + connection: right hand + part: Hand + symmetry: Right + +- type: entity + parent: SurgeryBase + id: SurgeryAttachLeftFoot + name: Attach Left Foot + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenIncision + steps: + - SurgeryStepInsertFeature + - SurgeryStepSealWounds + - type: SurgeryPartCondition + part: Leg + symmetry: Left + - type: SurgeryPartRemovedCondition + connection: left foot + part: Foot + symmetry: Left + +- type: entity + parent: SurgeryBase + id: SurgeryAttachRightFoot + name: Attach Right Foot + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenIncision + steps: + - SurgeryStepInsertFeature + - SurgeryStepSealWounds + - type: SurgeryPartCondition + part: Leg + symmetry: Right + - type: SurgeryPartRemovedCondition + connection: right foot + part: Foot + symmetry: Right + +# Surgery for animals - They have a single legs/hands entity. + +- type: entity + parent: SurgeryBase + id: SurgeryAttachLegs + name: Attach Legs + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenIncision + steps: + - SurgeryStepInsertFeature + - SurgeryStepSealWounds + - type: SurgeryPartCondition + part: Torso + - type: SurgeryPartRemovedCondition + connection: legs + part: Leg + symmetry: None + +- type: entity + parent: SurgeryBase + id: SurgeryAttachHands + name: Attach Hands + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenIncision + steps: + - SurgeryStepInsertFeature + - SurgeryStepSealWounds + - type: SurgeryPartCondition + part: Torso + - type: SurgeryPartRemovedCondition + connection: hands + part: Hand + symmetry: Left # shitcode i guess because of ui icons + +- type: entity + parent: SurgeryBase + id: SurgeryAttachFeet + name: Attach Feet + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenIncision + steps: + - SurgeryStepInsertFeature + - SurgeryStepSealWounds + - type: SurgeryPartCondition + part: Torso + - type: SurgeryPartRemovedCondition + connection: feet + part: Foot + symmetry: None + +- type: entity + parent: SurgeryBase + id: SurgeryAttachTail + name: Attach Tail + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenIncision + steps: + - SurgeryStepInsertFeature + - SurgeryStepSealWounds + - type: SurgeryPartCondition + part: Torso + - type: SurgeryPartRemovedCondition + connection: tail + part: Tail + symmetry: None + +#- type: entity +# parent: SurgeryBase +# id: SurgeryAlienEmbryoRemoval +# name: Alien Embryo Removal +# description: Removal of an alien embryo from the body. +# categories: [ HideSpawnMenu ] +# components: +# - type: Surgery +# priority: -1 +# requirement: SurgeryOpenRibcage +# steps: +# - SurgeryStepCutLarvaRoots +# - SurgeryStepRemoveLarva +# - type: SurgeryLarvaCondition +# - type: SurgeryPartCondition +# part: Torso + +- type: entity + parent: SurgeryBase + id: SurgeryTendWoundsBrute + name: Tend Bruise Wounds + categories: [ HideSpawnMenu ] + components: + - type: Surgery + steps: + - SurgeryStepCarefulIncisionScalpel + - SurgeryStepRepairBruteTissue + - SurgeryStepSealTendWound + - type: SurgeryWoundedCondition + +- type: entity + parent: SurgeryBase + id: SurgeryTendWoundsBurn + name: Tend Burn Wounds + categories: [ HideSpawnMenu ] + components: + - type: Surgery + steps: + - SurgeryStepCarefulIncisionScalpel + - SurgeryStepRepairBurnTissue + - SurgeryStepSealTendWound + - type: SurgeryWoundedCondition + +- type: entity + parent: SurgeryBase + id: SurgeryInsertItem + name: Cavity Implant + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenRibcage + steps: + - SurgeryStepInsertItem + - SurgeryStepRemoveItem + - type: SurgeryPartCondition + part: Torso + +# Note for any Organ manipulation surgeries. Most of the organs are only defined on the server. +# I added some of them to the client too, but we should probably move them to a shared +# prototype at some point. + +- type: entity + parent: SurgeryBase + id: SurgeryRemoveBrain + name: Remove Brain + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenIncision + steps: + - SurgeryStepSawBones + - SurgeryStepClampInternalBleeders + - SurgeryStepRemoveOrgan + - type: SurgeryPartCondition + part: Head + - type: SurgeryOrganCondition + organ: + - type: Brain + +- type: entity + parent: SurgeryBase + id: SurgeryInsertBrain + name: Insert Brain + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenIncision + steps: + - SurgeryStepSawBones + - SurgeryStepInsertOrgan + - SurgeryStepSealOrganWound + - type: SurgeryPartCondition + part: Head + - type: SurgeryOrganCondition + organ: + - type: Brain + inverse: true + reattaching: true + + +- type: entity + parent: SurgeryBase + id: SurgeryRemoveHeart + name: Remove Heart + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenRibcage + steps: + - SurgeryStepSawBones + - SurgeryStepClampInternalBleeders + - SurgeryStepRemoveOrgan + - type: SurgeryPartCondition + part: Torso + - type: SurgeryOrganCondition + organ: + - type: Heart + +- type: entity + parent: SurgeryBase + id: SurgeryInsertHeart + name: Insert Heart + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenRibcage + steps: + - SurgeryStepSawBones + - SurgeryStepInsertHeart + - SurgeryStepSealOrganWound + - type: SurgeryPartCondition + part: Torso + - type: SurgeryOrganCondition + organ: + - type: Heart + inverse: true + reattaching: true + +- type: entity + parent: SurgeryBase + id: SurgeryRemoveLiver + name: Remove Liver + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenRibcage + steps: + - SurgeryStepSawBones + - SurgeryStepClampInternalBleeders + - SurgeryStepRemoveOrgan + - type: SurgeryPartCondition + part: Torso + - type: SurgeryOrganCondition + organ: + - type: Liver + +- type: entity + parent: SurgeryBase + id: SurgeryInsertLiver + name: Insert Liver + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenRibcage + steps: + - SurgeryStepSawBones + - SurgeryStepInsertLiver + - SurgeryStepSealOrganWound + - type: SurgeryPartCondition + part: Torso + - type: SurgeryOrganCondition + organ: + - type: Liver + inverse: true + reattaching: true + +- type: entity + parent: SurgeryBase + id: SurgeryRemoveLungs + name: Remove Lungs + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenRibcage + steps: + - SurgeryStepSawBones + - SurgeryStepClampInternalBleeders + - SurgeryStepRemoveOrgan + - type: SurgeryPartCondition + part: Torso + - type: SurgeryOrganCondition + organ: + - type: Lung + +- type: entity + parent: SurgeryBase + id: SurgeryInsertLungs + name: Insert Lungs + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenRibcage + steps: + - SurgeryStepSawBones + - SurgeryStepInsertLungs + - SurgeryStepSealOrganWound + - type: SurgeryPartCondition + part: Torso + - type: SurgeryOrganCondition + organ: + - type: Lung + inverse: true + reattaching: true + +- type: entity + parent: SurgeryBase + id: SurgeryRemoveStomach + name: Remove Stomach + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenRibcage + steps: + - SurgeryStepSawBones + - SurgeryStepClampInternalBleeders + - SurgeryStepRemoveOrgan + - type: SurgeryPartCondition + part: Torso + - type: SurgeryOrganCondition + organ: + - type: Stomach + +- type: entity + parent: SurgeryBase + id: SurgeryInsertStomach + name: Insert Stomach + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenRibcage + steps: + - SurgeryStepSawBones + - SurgeryStepInsertStomach + - SurgeryStepSealOrganWound + - type: SurgeryPartCondition + part: Torso + - type: SurgeryOrganCondition + organ: + - type: Stomach + inverse: true + reattaching: true + +- type: entity + parent: SurgeryBase + id: SurgeryRemoveEyes + name: Remove Eyes + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenIncision + steps: + - SurgeryStepSawBones + - SurgeryStepClampInternalBleeders + - SurgeryStepRemoveOrgan + - type: SurgeryPartCondition + part: Head + - type: SurgeryOrganCondition + organ: + - type: Eyes + +- type: entity + parent: SurgeryBase + id: SurgeryInsertEyes + name: Insert Eyes + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenIncision + steps: + - SurgeryStepSawBones + - SurgeryStepInsertEyes + - SurgeryStepSealOrganWound + - type: SurgeryPartCondition + part: Head + - type: SurgeryOrganCondition + organ: + - type: Eyes + inverse: true + reattaching: true + +# Fluff/Joke Surgeries + +#- type: entity +# parent: SurgeryBase +# id: SurgeryAddFelinidEars +# name: Add cat ears +# categories: [ HideSpawnMenu ] +# components: +# - type: Surgery +# #requirement: SurgeryOpenIncision +# steps: +# - SurgeryStepAddFelinidEars +# - type: SurgeryPartCondition +# part: Head +# - type: SurgeryMarkingCondition +# markingCategory: HeadTop +# matchString: FelinidEars +# inverse: true + +#- type: entity +# parent: SurgeryBase +# id: SurgeryRemoveFelinidEars +# name: Remove cat ears +# categories: [ HideSpawnMenu ] +# components: +# - type: Surgery +# requirement: SurgeryOpenIncision +# steps: +# - SurgeryStepRemoveFelinidEars +# - type: SurgeryPartCondition +# part: Head +# - type: SurgeryMarkingCondition +# markingCategory: HeadTop +# matchString: FelinidEars + +#- type: entity +# parent: SurgeryBase +# id: SurgeryAddFelinidTail +# name: Add cat tail +# categories: [ HideSpawnMenu ] +# components: +# - type: Surgery +# requirement: SurgeryOpenIncision +# steps: +# - SurgeryStepAddFelinidTail +# - type: SurgeryPartCondition +# part: Torso +# - type: SurgeryMarkingCondition +# markingCategory: Tail +# matchString: FelinidTail +# inverse: true + +#- type: entity +# parent: SurgeryBase +# id: SurgeryRemoveFelinidTail +# name: Remove cat tail +# categories: [ HideSpawnMenu ] +# components: +# - type: Surgery +# requirement: SurgeryOpenIncision +# steps: +# - SurgeryStepRemoveFelinidTail +# - type: SurgeryPartCondition +# part: Torso +# - type: SurgeryMarkingCondition +# markingCategory: Tail +# matchString: FelinidTail diff --git a/Resources/Prototypes/Entities/Surgery/surgery_steps.yml b/Resources/Prototypes/Entities/Surgery/surgery_steps.yml new file mode 100644 index 00000000000..c2e213670e2 --- /dev/null +++ b/Resources/Prototypes/Entities/Surgery/surgery_steps.yml @@ -0,0 +1,653 @@ +- type: entity + id: SurgeryStepBase + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + +- type: entity + parent: SurgeryStepBase + id: SurgeryStepOpenIncisionScalpel + name: Cut with a scalpel + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + tool: + - type: Scalpel + add: + - type: IncisionOpen + duration: 2 + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/scalpel.rsi + state: scalpel + - type: SurgeryDamageChangeEffect + damage: + types: + Bloodloss: 10 + sleepModifier: 0.5 + - type: SurgeryStepEmoteEffect + +- type: entity + parent: SurgeryStepBase + id: SurgeryStepClampBleeders + name: Clamp the bleeders + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + tool: + - type: Hemostat + add: + - type: BleedersClamped + duration: 2 + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/hemostat.rsi + state: hemostat + - type: SurgeryDamageChangeEffect + damage: + types: + Bloodloss: -5 + sleepModifier: 2 + +- type: entity + parent: SurgeryStepBase + id: SurgeryStepRetractSkin + name: Retract the skin + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + tool: + - type: Retractor + add: + - type: SkinRetracted + duration: 2 + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/retractor.rsi + state: retractor + +- type: entity + parent: SurgeryStepBase + id: SurgeryStepSawBones + name: Saw through bones + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + tool: + - type: BoneSaw + add: + - type: RibcageSawed + duration: 4 + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/saw.rsi + state: saw + - type: SurgeryStepEmoteEffect + +- type: entity + parent: SurgeryStepBase + id: SurgeryStepPriseOpenBones + name: Prise the bones open + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + tool: + - type: Retractor + add: + - type: RibcageOpen + duration: 2 + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/retractor.rsi + state: retractor + +#- type: entity +# parent: SurgeryStepBase +# id: SurgeryStepCutLarvaRoots +# name: Cut larva roots +# categories: [ HideSpawnMenu ] +# components: +# - type: SurgeryStep +# skill: 2 +# tool: +# - type: Scalpel +# - type: SurgeryCutLarvaRootsStep +# - type: Sprite +# sprite: Objects/Specific/Medical/Surgery/scalpel.rsi +# state: scalpel +# - type: SurgeryOperatingTableCondition + +#- type: entity +# parent: SurgeryStepBase +# id: SurgeryStepRemoveLarva +# name: Remove larva +# categories: [ HideSpawnMenu ] +# components: +# - type: SurgeryStep +# skill: 2 +# tool: +# - type: Hemostat +# bodyRemove: +# - type: VictimInfected +# - type: Sprite +# sprite: Objects/Specific/Medical/Surgery/hemostat.rsi +# state: hemostat +# - type: SurgeryOperatingTableCondition +# - type: SurgeryStepSpawnEffect +# entity: XenoEmbryo + +- type: entity + parent: SurgeryStepBase + id: SurgeryStepCloseBones + name: Close bones + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + tool: + - type: Retractor + remove: + - type: RibcageOpen + duration: 2 + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/retractor.rsi + state: retractor + +- type: entity + parent: SurgeryStepBase + id: SurgeryStepMendRibcage + name: Mend ribcage + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + tool: + - type: BoneGel + remove: + - type: RibcageSawed + duration: 2 + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/bone-gel.rsi + state: bone-gel + +- type: entity + parent: SurgeryStepBase + id: SurgeryStepCloseIncision + name: Close incision + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + tool: + - type: Cautery + remove: + # This surgery removes a bunch of components that might be leftover from other surgeries in unintended cases. + # Essentially a bit of a fallback for endusers :) + - type: SkinRetracted + - type: BleedersClamped + - type: IncisionOpen + - type: BodyPartReattached + - type: InternalBleedersClamped + duration: 2 + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/cautery.rsi + state: cautery + - type: SurgeryDamageChangeEffect + damage: + types: + Heat: -5 + sleepModifier: 2 + - type: SurgeryStepEmoteEffect + +# Feature Insertion + +- type: entity + parent: SurgeryStepBase + id: SurgeryStepInsertFeature + name: Insert part + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + tool: + - type: BodyPart + duration: 6 + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/manipulation.rsi + state: insertion + - type: SurgeryAddPartStep + +- type: entity + parent: SurgeryStepBase + id: SurgeryStepSealWounds + name: Seal wounds + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + tool: + - type: Cautery + remove: + - type: SkinRetracted + - type: BleedersClamped + - type: IncisionOpen + - type: InternalBleedersClamped + duration: 2 + - type: SurgeryAffixPartStep + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/cautery.rsi + state: cautery + - type: SurgeryStepEmoteEffect + - type: SurgeryDamageChangeEffect + damage: + types: + Heat: -5 + sleepModifier: 2 + +# Feature Removal + +- type: entity + parent: SurgeryStepBase + id: SurgeryStepSawFeature + name: Saw through bones + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + tool: + - type: BoneSaw + add: + - type: BodyPartSawed + duration: 4 + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/saw.rsi + state: saw + - type: SurgeryStepEmoteEffect + +- type: entity + parent: SurgeryStepBase + id: SurgeryStepClampInternalBleeders + name: Clamp internal bleeders + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + tool: + - type: Hemostat + add: + - type: InternalBleedersClamped + duration: 2 + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/hemostat.rsi + state: hemostat + - type: SurgeryDamageChangeEffect + damage: + types: + Bloodloss: -5 + sleepModifier: 2 + +- type: entity + parent: SurgeryStepBase + id: SurgeryStepRemoveFeature + name: Amputate part + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + tool: + - type: BoneSaw + remove: + # We remove these components to force people to go through all the steps again lol, otherwise you can just keep chopping. + - type: SkinRetracted + - type: BleedersClamped + - type: InternalBleedersClamped + - type: IncisionOpen + duration: 8 + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/saw.rsi + state: saw + - type: SurgeryRemovePartStep + - type: SurgeryStepEmoteEffect + +# Tend Wounds + +- type: entity + parent: SurgeryStepBase + id: SurgeryStepCarefulIncisionScalpel + name: Make a careful incision + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + tool: + - type: Scalpel + add: + - type: IncisionOpen + duration: 3 + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/scalpel.rsi + state: scalpel + - type: SurgeryStepEmoteEffect + +- type: entity + parent: SurgeryStepBase + id: SurgeryStepRepairBruteTissue + name: Repair damaged tissue + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + tool: + - type: Tending + duration: 1 + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/hemostat.rsi + state: hemostat + - type: SurgeryTendWoundsEffect + damage: + groups: + Brute: -5 + - type: SurgeryRepeatableStep + +- type: entity + parent: SurgeryStepBase + id: SurgeryStepRepairBurnTissue + name: Repair burnt tissue + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + tool: + - type: Tending + duration: 1 + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/hemostat.rsi + state: hemostat + - type: SurgeryTendWoundsEffect + mainGroup: Burn + damage: + groups: + Burn: -5 + - type: SurgeryRepeatableStep + +- type: entity + parent: SurgeryStepBase + id: SurgeryStepSealTendWound + name: Seal the wound + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + tool: + - type: Cautery + remove: + - type: IncisionOpen + duration: 2 + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/cautery.rsi + state: cautery + - type: SurgeryDamageChangeEffect + damage: + types: + Heat: -5 + sleepModifier: 2 + - type: SurgeryStepEmoteEffect + +# Cavity Implanting + +- type: entity + parent: SurgeryStepBase + id: SurgeryStepInsertItem + name: Insert item into cavity + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + duration: 4 + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/manipulation.rsi + state: insertion + - type: SurgeryStepCavityEffect + action: Insert + - type: SurgeryStepEmoteEffect + +- type: entity + parent: SurgeryStepBase + id: SurgeryStepRemoveItem + name: Remove item from cavity + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + duration: 4 + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/manipulation.rsi + state: insertion + - type: SurgeryStepCavityEffect + action: Remove + - type: SurgeryStepEmoteEffect + +# Organ Manipulation + +- type: entity + parent: SurgeryStepBase + id: SurgeryStepRemoveOrgan + name: Remove organ + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + tool: + - type: Tweezers + duration: 8 + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/retractor.rsi + state: retractor + - type: SurgeryRemoveOrganStep + - type: SurgeryStepEmoteEffect + +- type: entity + parent: SurgeryStepBase + id: SurgeryStepInsertOrgan + name: Add organ + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + tool: + - type: Organ + duration: 6 + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/manipulation.rsi + state: insertion + - type: SurgeryAddOrganStep + - type: SurgeryStepEmoteEffect + +- type: entity + parent: SurgeryStepInsertOrgan + id: SurgeryStepInsertLungs + name: Add lungs + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + duration: 6 + - type: SurgeryDamageChangeEffect + damage: + types: + Asphyxiation: -2147483648 # Literally the max 32 bit value, if your patient has gone higher than this, maybe it's time to restart the round. + sleepModifier: 1 + isConsumable: true + +- type: entity + parent: SurgeryStepInsertOrgan + id: SurgeryStepInsertLiver + name: Add liver + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + duration: 6 + - type: SurgeryDamageChangeEffect + damage: + types: + Poison: -2147483648 # Literally the max 32 bit value, if your patient has gone higher than this, maybe it's time to restart the round. + sleepModifier: 1 + isConsumable: true + +- type: entity + parent: SurgeryStepInsertOrgan + id: SurgeryStepInsertEyes + name: Add eyes + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + duration: 6 + +- type: entity + parent: SurgeryStepInsertOrgan + id: SurgeryStepInsertHeart + name: Add heart + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + duration: 6 + - type: SurgerySpecialDamageChangeEffect + damageType: Rot + isConsumable: true + +# Doesn't serve much of a purpose right now. Just here for completeness-sake. +- type: entity + parent: SurgeryStepInsertOrgan + id: SurgeryStepInsertStomach + name: Add stomach + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + duration: 6 + +- type: entity + parent: SurgeryStepBase + id: SurgeryStepSealOrganWound + name: Seal wounds + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + tool: + - type: Cautery + duration: 2 + - type: SurgeryAffixOrganStep + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/cautery.rsi + state: cautery + - type: SurgeryStepEmoteEffect + - type: SurgeryDamageChangeEffect + damage: + types: + Heat: -5 + sleepModifier: 2 + +- type: entity + parent: SurgeryStepBase + id: SurgeryStepLobotomize + name: Lobotomize patient + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + tool: + - type: Scalpel + addOrganOnAdd: + brain: + - type: OhioAccent + - type: RatvarianLanguage + - type: Clumsy + clumsyDamage: + types: + Blunt: 5 + Piercing: 4 + groups: + Burn: 3 + duration: 5 + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/scalpel.rsi + state: scalpel + - type: SurgeryStepEmoteEffect + - type: SurgeryDamageChangeEffect + damage: + types: + Piercing: 10 + +- type: entity + parent: SurgeryStepBase + id: SurgeryStepMendBrainTissue + name: Mend brain tissue + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + tool: + - type: Hemostat + duration: 4 + removeOrganOnAdd: + brain: + - type: OhioAccent + - type: RatvarianLanguage + - type: Clumsy + clumsyDamage: + types: + Blunt: 0 + - type: Sprite + sprite: Objects/Specific/Medical/Surgery/hemostat.rsi + state: hemostat + - type: SurgeryStepEmoteEffect + +# The lengths I go to just for a joke... I HATE HARDCODING AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +# Maybe I should modify species prototypes to include tails and ears properly... + +#- type: entity +# parent: SurgeryStepBase +# id: SurgeryStepAddFelinidEars +# name: Add cat ears +# categories: [ HideSpawnMenu ] +# components: +# - type: SurgeryStep +# tool: +# - type: Organ +# - type: SurgeryAddMarkingStep +# marking: FelinidEarsBasic +# markingCategory: HeadTop +# matchString: FelinidEars +# organ: +# - type: Ears +# accent: +# - type: OwOAccent +# - type: Sprite +# sprite: Objects/Specific/Medical/Surgery/manipulation.rsi +# state: insertion + +#- type: entity +# parent: SurgeryStepBase +# id: SurgeryStepAddFelinidTail +# name: Add cat tail +# categories: [ HideSpawnMenu ] +# components: +# - type: SurgeryStep +# tool: +# - type: Organ +# - type: SurgeryAddMarkingStep +# marking: FelinidTailBasic +# markingCategory: Tail +# matchString: FelinidTail +# organ: +# - type: Tail +# - type: Sprite +# sprite: Objects/Specific/Medical/Surgery/manipulation.rsi +# state: insertion + +#- type: entity +# parent: SurgeryStepBase +# id: SurgeryStepRemoveFelinidEars +# name: Remove cat ears +# categories: [ HideSpawnMenu ] +# components: +# - type: SurgeryStep +# tool: +# - type: Organ +# - type: SurgeryRemoveMarkingStep +# markingCategory: HeadTop +# matchString: FelinidEars +# - type: Sprite +# sprite: Objects/Specific/Medical/Surgery/manipulation.rsi +# state: insertion + +#- type: entity +# parent: SurgeryStepBase +# id: SurgeryStepRemoveFelinidTail +# name: Remove cat tail +# categories: [ HideSpawnMenu ] +# components: +# - type: SurgeryStep +# tool: +# - type: Organ +# - type: SurgeryRemoveMarkingStep +# markingCategory: Tail +# matchString: FelinidTail +# - type: Sprite +# sprite: Objects/Specific/Medical/Surgery/manipulation.rsi +# state: insertion diff --git a/Resources/Prototypes/Entities/Virtual/beam.yml b/Resources/Prototypes/Entities/Virtual/beam.yml index 7ded09c3fff..fa249f0dd3d 100644 --- a/Resources/Prototypes/Entities/Virtual/beam.yml +++ b/Resources/Prototypes/Entities/Virtual/beam.yml @@ -2,7 +2,7 @@ - type: entity id: VirtualBeamEntityController name: BEAM ENTITY YOU SHOULD NOT SEE THIS - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Beam - type: TimedDespawn diff --git a/Resources/Prototypes/Entities/Virtual/electrocution.yml b/Resources/Prototypes/Entities/Virtual/electrocution.yml index ac65245191e..c45e0b3ca9e 100644 --- a/Resources/Prototypes/Entities/Virtual/electrocution.yml +++ b/Resources/Prototypes/Entities/Virtual/electrocution.yml @@ -12,7 +12,7 @@ - type: entity id: VirtualElectrocutionLoadHVPower parent: VirtualElectrocutionLoadBase - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: NodeContainer nodes: @@ -26,7 +26,7 @@ - type: entity id: VirtualElectrocutionLoadMVPower parent: VirtualElectrocutionLoadBase - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: NodeContainer nodes: @@ -40,7 +40,7 @@ - type: entity id: VirtualElectrocutionLoadApc parent: VirtualElectrocutionLoadBase - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: NodeContainer nodes: diff --git a/Resources/Prototypes/Entities/Virtual/stripping_hidden.yml b/Resources/Prototypes/Entities/Virtual/stripping_hidden.yml index 538e502a402..6e46340f973 100644 --- a/Resources/Prototypes/Entities/Virtual/stripping_hidden.yml +++ b/Resources/Prototypes/Entities/Virtual/stripping_hidden.yml @@ -5,7 +5,7 @@ id: StrippingHiddenEntity name: Hidden Entity description: There is something in this pocket. #Or maybe they ar... nah... too obvious a joke. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite texture: Interface/VerbIcons/information.svg.192dpi.png diff --git a/Resources/Prototypes/Entities/Virtual/tether.yml b/Resources/Prototypes/Entities/Virtual/tether.yml index ce953854d65..9459fd20887 100644 --- a/Resources/Prototypes/Entities/Virtual/tether.yml +++ b/Resources/Prototypes/Entities/Virtual/tether.yml @@ -1,6 +1,6 @@ - type: entity id: TetherEntity - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Physics bodyType: Dynamic diff --git a/Resources/Prototypes/Entities/Virtual/virtual_item.yml b/Resources/Prototypes/Entities/Virtual/virtual_item.yml index ed742435501..20f311db704 100644 --- a/Resources/Prototypes/Entities/Virtual/virtual_item.yml +++ b/Resources/Prototypes/Entities/Virtual/virtual_item.yml @@ -2,7 +2,7 @@ - type: entity id: VirtualItem name: VIRTUAL ITEM YOU SHOULD NOT SEE THIS - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Item - type: VirtualItem diff --git a/Resources/Prototypes/Entities/World/Debris/asteroids.yml b/Resources/Prototypes/Entities/World/Debris/asteroids.yml index 061288d010b..1541190cd21 100644 --- a/Resources/Prototypes/Entities/World/Debris/asteroids.yml +++ b/Resources/Prototypes/Entities/World/Debris/asteroids.yml @@ -55,7 +55,7 @@ id: AsteroidDebrisSmall parent: BaseAsteroidDebris name: Asteroid Debris Small - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: MapGrid - type: BlobFloorPlanBuilder @@ -65,7 +65,7 @@ id: AsteroidDebrisMedium parent: BaseAsteroidDebris name: Asteroid Debris Medium - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: MapGrid - type: BlobFloorPlanBuilder @@ -75,7 +75,7 @@ id: AsteroidDebrisLarge parent: BaseAsteroidDebris name: Asteroid Debris Large - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: MapGrid - type: BlobFloorPlanBuilder @@ -85,7 +85,7 @@ id: AsteroidDebrisLarger parent: BaseAsteroidDebris name: Asteroid Debris Larger - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: MapGrid - type: BlobFloorPlanBuilder @@ -96,7 +96,7 @@ id: AsteroidSalvageSmall parent: BaseAsteroidDebris name: Salvage Asteroid Small - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: MapGrid - type: BlobFloorPlanBuilder @@ -108,7 +108,7 @@ id: AsteroidSalvageMedium parent: BaseAsteroidDebris name: Salvage Asteroid Medium - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: MapGrid - type: BlobFloorPlanBuilder @@ -120,7 +120,7 @@ id: AsteroidSalvageLarge parent: BaseAsteroidDebris name: Salvage Asteroid Large - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: MapGrid - type: BlobFloorPlanBuilder @@ -132,7 +132,7 @@ id: AsteroidSalvageHuge parent: BaseAsteroidDebris name: Salvage Asteroid Huge - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: MapGrid - type: BlobFloorPlanBuilder diff --git a/Resources/Prototypes/Entities/World/Debris/wrecks.yml b/Resources/Prototypes/Entities/World/Debris/wrecks.yml index 4c5a3be48f7..743d92e1bac 100644 --- a/Resources/Prototypes/Entities/World/Debris/wrecks.yml +++ b/Resources/Prototypes/Entities/World/Debris/wrecks.yml @@ -53,7 +53,7 @@ id: ScrapDebrisSmall parent: BaseScrapDebris name: Scrap Debris Small - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: MapGrid - type: BlobFloorPlanBuilder @@ -63,7 +63,7 @@ id: ScrapDebrisMedium parent: BaseScrapDebris name: Scrap Debris Medium - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: MapGrid - type: BlobFloorPlanBuilder @@ -73,7 +73,7 @@ id: ScrapDebrisLarge parent: BaseScrapDebris name: Scrap Debris Large - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: MapGrid - type: BlobFloorPlanBuilder diff --git a/Resources/Prototypes/Entities/World/chunk.yml b/Resources/Prototypes/Entities/World/chunk.yml index b60fd0d91be..c7052662674 100644 --- a/Resources/Prototypes/Entities/World/chunk.yml +++ b/Resources/Prototypes/Entities/World/chunk.yml @@ -5,7 +5,7 @@ description: | It's rude to stare. It's also a bit odd you're looking at the abstract representation of the grid of reality. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: WorldChunk - type: Sprite diff --git a/Resources/Prototypes/EntityLists/Tools/surgery.yml b/Resources/Prototypes/EntityLists/Tools/surgery.yml index 20f689d272d..072a754c501 100644 --- a/Resources/Prototypes/EntityLists/Tools/surgery.yml +++ b/Resources/Prototypes/EntityLists/Tools/surgery.yml @@ -1,10 +1,14 @@ - type: entityList id: surgerytools entities: + - Scalpel - Cautery - Drill - ScalpelLaser - Retractor - Hemostat - - SawAdvanced -# - Drapes + - SawElectric + - Bonesetter + - BoneGel + - Saw +# - Drapes \ No newline at end of file diff --git a/Resources/Prototypes/GameRules/cargo_gifts.yml b/Resources/Prototypes/GameRules/cargo_gifts.yml index 3787f4e6034..e74ce0cb65e 100644 --- a/Resources/Prototypes/GameRules/cargo_gifts.yml +++ b/Resources/Prototypes/GameRules/cargo_gifts.yml @@ -1,7 +1,7 @@ - type: entity id: GiftsPizzaPartySmall parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent weight: 5 @@ -21,7 +21,7 @@ - type: entity id: GiftsPizzaPartyLarge parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent weight: 2 @@ -40,7 +40,7 @@ - type: entity id: GiftsEngineering parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent weight: 5 @@ -63,7 +63,7 @@ - type: entity id: GiftsVendingRestock parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent weight: 4 @@ -86,7 +86,7 @@ - type: entity id: GiftsJanitor parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent weight: 6 @@ -106,7 +106,7 @@ - type: entity id: GiftsMedical parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent weight: 8 @@ -128,7 +128,7 @@ - type: entity id: GiftsSpacingSupplies parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent weight: 4 @@ -150,7 +150,7 @@ - type: entity id: GiftsFireProtection parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent weight: 4 @@ -170,7 +170,7 @@ - type: entity id: GiftsSecurityGuns parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent weight: 3 @@ -191,7 +191,7 @@ - type: entity id: GiftsSecurityRiot parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent weight: 4 diff --git a/Resources/Prototypes/GameRules/events.yml b/Resources/Prototypes/GameRules/events.yml index 4923e399dd0..801dcc4b859 100644 --- a/Resources/Prototypes/GameRules/events.yml +++ b/Resources/Prototypes/GameRules/events.yml @@ -1,7 +1,7 @@ - type: entity id: AnomalySpawn parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent weight: 8 @@ -12,7 +12,7 @@ - type: entity id: BluespaceArtifact parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent weight: 8 @@ -23,7 +23,7 @@ - type: entity id: BluespaceLocker parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent weight: 2 @@ -35,7 +35,7 @@ - type: entity id: BreakerFlip parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent weight: 7 @@ -46,7 +46,7 @@ - type: entity id: BureaucraticError parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent startAnnouncement: true @@ -58,7 +58,7 @@ - type: entity id: ClericalError parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent startAnnouncement: true @@ -70,7 +70,7 @@ - type: entity parent: BaseGameRule id: ClosetSkeleton - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent weight: 5 @@ -82,7 +82,7 @@ - type: entity parent: BaseGameRule id: DragonSpawn - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent weight: 6.5 @@ -96,7 +96,7 @@ - type: entity parent: BaseGameRule id: NinjaSpawn - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent weight: 6 @@ -109,7 +109,7 @@ - type: entity parent: BaseGameRule id: RevenantSpawn - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent weight: 7.5 @@ -123,7 +123,7 @@ #- type: entity # id: FalseAlarm # parent: BaseGameRule -# noSpawn: true +# categories: [ HideSpawnMenu ] # components: # - type: StationEvent # weight: 15 @@ -133,7 +133,7 @@ - type: entity id: GasLeak parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent startAnnouncement: true @@ -145,7 +145,7 @@ - type: entity id: KudzuGrowth parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent earliestStart: 15 @@ -158,7 +158,7 @@ - type: entity id: MeteorSwarm parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent earliestStart: 30 @@ -173,7 +173,7 @@ - type: entity id: MouseMigration parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent startAnnouncement: true @@ -198,7 +198,7 @@ - type: entity id: CockroachMigration parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent startAnnouncement: true @@ -215,7 +215,7 @@ - type: entity id: PowerGridCheck parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent weight: 5 @@ -229,7 +229,7 @@ - type: entity id: RandomSentience parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent weight: 6 @@ -240,7 +240,7 @@ - type: entity parent: BaseGameRule id: SolarFlare - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent weight: 8 @@ -267,7 +267,7 @@ - type: entity id: VentClog parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent startAnnouncement: true @@ -281,7 +281,7 @@ - type: entity id: SlimesSpawn parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent startAnnouncement: true @@ -302,7 +302,7 @@ - type: entity id: SpiderSpawn parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent startAnnouncement: true @@ -319,7 +319,7 @@ - type: entity id: SpiderClownSpawn parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent startAnnouncement: false @@ -336,7 +336,7 @@ - type: entity id: ZombieOutbreak parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent earliestStart: 50 @@ -370,7 +370,7 @@ - type: entity id: LoneOpsSpawn parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent earliestStart: 35 @@ -404,7 +404,7 @@ - type: entity id: SleeperAgentsRule parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent earliestStart: 25 @@ -427,7 +427,7 @@ - type: entity id: MassHallucinations parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent weight: 7 @@ -444,7 +444,7 @@ - type: entity id: ImmovableRodSpawn parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent startAnnouncement: false @@ -455,7 +455,7 @@ - type: ImmovableRodRule - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseGameRule id: IonStorm components: @@ -468,7 +468,7 @@ - type: entity id: MimicVendorRule parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent earliestStart: 0 diff --git a/Resources/Prototypes/GameRules/midround.yml b/Resources/Prototypes/GameRules/midround.yml index db1a76adc08..fca0073b4e5 100644 --- a/Resources/Prototypes/GameRules/midround.yml +++ b/Resources/Prototypes/GameRules/midround.yml @@ -3,7 +3,7 @@ - type: entity id: Ninja parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: GenericAntagRule agentName: ninja-round-end-agent-name @@ -19,7 +19,7 @@ # stores configuration for dragon - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseGameRule id: Dragon components: @@ -30,7 +30,7 @@ - DragonSurviveObjective - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseGameRule id: Thief components: @@ -55,7 +55,7 @@ sound: "/Audio/Misc/thief_greeting.ogg" #- type: entity -# noSpawn: true +# categories: [ HideSpawnMenu ] # parent: BaseGameRule # id: Exterminator # components: diff --git a/Resources/Prototypes/GameRules/roundstart.yml b/Resources/Prototypes/GameRules/roundstart.yml index 39bea004d02..4ae53c9b37a 100644 --- a/Resources/Prototypes/GameRules/roundstart.yml +++ b/Resources/Prototypes/GameRules/roundstart.yml @@ -1,12 +1,12 @@ - type: entity id: BaseGameRule abstract: true - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: GameRule - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseGameRule id: SubGamemodesRule components: @@ -18,7 +18,7 @@ - type: entity id: DeathMatch31 parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: DeathMatchRule rewardSpawns: @@ -48,7 +48,7 @@ - type: entity id: InactivityTimeRestart parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InactivityRule inactivityMaxTime: 600 @@ -57,7 +57,7 @@ - type: entity id: MaxTimeRestart parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: MaxTimeRestartRule roundMaxTime: 300 @@ -66,7 +66,7 @@ - type: entity id: Nukeops parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: GameRule minPlayers: 35 @@ -136,7 +136,7 @@ - type: entity id: Traitor parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: GameRule minPlayers: 5 @@ -157,7 +157,7 @@ - type: entity id: Revolutionary parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: GameRule minPlayers: 15 @@ -182,21 +182,21 @@ - type: entity id: Sandbox parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: SandboxRule - type: entity id: Secret parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: SecretRule - type: entity id: Zombie parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: GameRule minPlayers: 20 @@ -229,21 +229,21 @@ - type: entity id: BasicStationEventScheduler parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: BasicStationEventScheduler - type: entity id: RampingStationEventScheduler parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: RampingStationEventScheduler - type: entity id: HellshiftStationEventScheduler parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: RampingStationEventScheduler chaosModifier: 4 # By default, one event each 30-10 seconds after two hours. Changing CVars will cause this to deviate. @@ -253,7 +253,7 @@ - type: entity id: IrregularStationEventScheduler parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: OscillatingStationEventScheduler minChaos: 0.8 @@ -266,7 +266,7 @@ - type: entity id: IrregularExtendedStationEventScheduler parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: OscillatingStationEventScheduler minChaos: 0.8 @@ -281,7 +281,7 @@ - type: entity id: BasicRoundstartVariation parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: RoundstartStationVariationRule rules: diff --git a/Resources/Prototypes/GameRules/unknown_shuttles.yml b/Resources/Prototypes/GameRules/unknown_shuttles.yml index f44bbdcaaab..db9d4756a89 100644 --- a/Resources/Prototypes/GameRules/unknown_shuttles.yml +++ b/Resources/Prototypes/GameRules/unknown_shuttles.yml @@ -1,7 +1,7 @@ - type: entity id: UnknownShuttleCargoLost parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent startAnnouncement: false @@ -14,7 +14,7 @@ - type: entity id: UnknownShuttleTravelingCuisine parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent startAnnouncement: false @@ -27,7 +27,7 @@ - type: entity id: UnknownShuttleDisasterEvacPod parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent startAnnouncement: false @@ -40,7 +40,7 @@ - type: entity id: UnknownShuttleHonki parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent startAnnouncement: false @@ -53,7 +53,7 @@ - type: entity id: UnknownShuttleSyndieEvacPod parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent startAnnouncement: false diff --git a/Resources/Prototypes/GameRules/variation.yml b/Resources/Prototypes/GameRules/variation.yml index 2884d5f9d6f..4e0d917176a 100644 --- a/Resources/Prototypes/GameRules/variation.yml +++ b/Resources/Prototypes/GameRules/variation.yml @@ -4,7 +4,7 @@ id: BaseVariationPass parent: BaseGameRule abstract: true - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationVariationPassRule @@ -13,14 +13,14 @@ - type: entity id: BasicPoweredLightVariationPass parent: BaseVariationPass - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: PoweredLightVariationPass - type: entity id: SolidWallRustingVariationPass parent: BaseVariationPass - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: WallReplaceVariationPass - type: EntityReplaceVariationPass @@ -32,7 +32,7 @@ - type: entity id: ReinforcedWallRustingVariationPass parent: BaseVariationPass - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: ReinforcedWallReplaceVariationPass - type: EntityReplaceVariationPass @@ -44,7 +44,7 @@ - type: entity id: BasicTrashVariationPass parent: BaseVariationPass - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: EntitySpawnVariationPass tilesPerEntityAverage: 35 @@ -105,7 +105,7 @@ - type: entity id: BasicPuddleMessVariationPass parent: BaseVariationPass - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: PuddleMessVariationPass randomPuddleSolutionFill: RandomFillTrashPuddle @@ -113,7 +113,7 @@ - type: entity id: BloodbathPuddleMessVariationPass parent: BaseVariationPass - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: PuddleMessVariationPass tilesPerSpillAverage: 150 @@ -123,7 +123,7 @@ - type: entity id: CutWireVariationPass parent: BaseVariationPass - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: CutWireVariationPass wireCutChance: 0.01 diff --git a/Resources/Prototypes/Guidebook/Loadouts/loadoutInfo.yml b/Resources/Prototypes/Guidebook/Loadouts/loadoutInfo.yml new file mode 100644 index 00000000000..8d9df2b8ea5 --- /dev/null +++ b/Resources/Prototypes/Guidebook/Loadouts/loadoutInfo.yml @@ -0,0 +1,17 @@ +- type: guideEntry + id: LoadoutInfo + name: guide-entry-loadout-info + text: "/ServerInfo/Guidebook/LoadoutInfo/LoadoutInfo.xml" + children: + - LoadoutInfoLoadoutEyesEyepatch + - SecurityWeapons + +- type: guideEntry + id: LoadoutInfoLoadoutEyesEyepatch + name: guide-entry-loadout-eyes-eyepatch + text: "/ServerInfo/Guidebook/LoadoutInfo/Eyes/LoadoutInfoLoadoutEyesEyepatch.xml" + +- type: guideEntry + id: SecurityWeapons + name: guide-entry-loadout-info-security-weapons + text: "/ServerInfo/Guidebook/LoadoutInfo/Security/SecurityWeapons.xml" diff --git a/Resources/Prototypes/Guidebook/Lore/settinglore.yml b/Resources/Prototypes/Guidebook/Lore/settinglore.yml new file mode 100644 index 00000000000..ccf940bcd33 --- /dev/null +++ b/Resources/Prototypes/Guidebook/Lore/settinglore.yml @@ -0,0 +1,66 @@ +- type: guideEntry + id: SettingLore + name: guide-entry-setting-lore + text: "/ServerInfo/Guidebook/Lore/SettingLore.xml" + children: + - Corporations + +- type: guideEntry + id: Corporations + name: guide-entry-corporations + text: "/ServerInfo/Guidebook/Lore/Corporations/Corporations.xml" + children: + - IdrisIncorporated + - EinsteinEngines + - StellarCorporateConglomerate + - NanoTrasen + - OrionExpress + - ZengHuPharmaceuticals + - HephaestusIndustries + - ZavodskoiInterstellar + - PrivateMilitaryContractingGroup + +- type: guideEntry + id: IdrisIncorporated + name: guide-entry-idris-incorporated + text: "/ServerInfo/Guidebook/Lore/Corporations/IdrisIncorporated.xml" + +- type: guideEntry + id: EinsteinEngines + name: guide-entry-einstein-engines + text: "/ServerInfo/Guidebook/Lore/Corporations/EinsteinEngines.xml" + +- type: guideEntry + id: StellarCorporateConglomerate + name: guide-entry-stellar-corporate-conglomerate + text: "/ServerInfo/Guidebook/Lore/Corporations/StellarCorporateConglomerate.xml" + +- type: guideEntry + id: NanoTrasen + name: guide-entry-nanotrasen + text: "/ServerInfo/Guidebook/Lore/Corporations/NanoTrasen.xml" + +- type: guideEntry + id: OrionExpress + name: guide-entry-orion-express + text: "/ServerInfo/Guidebook/Lore/Corporations/OrionExpress.xml" + +- type: guideEntry + id: ZengHuPharmaceuticals + name: guide-entry-zeng-hu-pharmaceuticals + text: "/ServerInfo/Guidebook/Lore/Corporations/ZengHuPharmaceuticals.xml" + +- type: guideEntry + id: HephaestusIndustries + name: guide-entry-hephaestus-industries + text: "/ServerInfo/Guidebook/Lore/Corporations/HephaestusIndustries.xml" + +- type: guideEntry + id: ZavodskoiInterstellar + name: guide-entry-zavodskoi-interstellar + text: "/ServerInfo/Guidebook/Lore/Corporations/ZavodskoiInterstellar.xml" + +- type: guideEntry + id: PrivateMilitaryContractingGroup + name: guide-entry-private-military-contracting-group + text: "/ServerInfo/Guidebook/Lore/Corporations/PrivateMilitaryContractingGroup.xml" diff --git a/Resources/Prototypes/Guidebook/antagonist.yml b/Resources/Prototypes/Guidebook/antagonist.yml index 081ff7ef0ab..4b275446800 100644 --- a/Resources/Prototypes/Guidebook/antagonist.yml +++ b/Resources/Prototypes/Guidebook/antagonist.yml @@ -9,6 +9,7 @@ - Revolutionaries - MinorAntagonists - SpaceNinja + - BloodCult - type: guideEntry id: Traitors @@ -39,3 +40,8 @@ id: SpaceNinja name: guide-entry-space-ninja text: "/ServerInfo/Guidebook/Antagonist/SpaceNinja.xml" + +- type: guideEntry + id: BloodCult + name: guide-entry-blood-cult + text: "/ServerInfo/Guidebook/Antagonist/BloodCult.xml" diff --git a/Resources/Prototypes/Guidebook/medical.yml b/Resources/Prototypes/Guidebook/medical.yml index 95a4f1ca75f..8a6a02a69c5 100644 --- a/Resources/Prototypes/Guidebook/medical.yml +++ b/Resources/Prototypes/Guidebook/medical.yml @@ -7,6 +7,7 @@ - Chemist - Cloning - Cryogenics + - Surgery - type: guideEntry id: Medical Doctor @@ -48,3 +49,31 @@ id: AdvancedBrute name: guide-entry-brute text: "/ServerInfo/Guidebook/Medical/AdvancedBrute.xml" + +- type: guideEntry + id: Surgery + name: guide-entry-surgery + text: "/ServerInfo/Guidebook/Medical/Surgery.xml" + children: + - Part Manipulation + - Organ Manipulation + - Utility Surgeries + +- type: guideEntry + id: Part Manipulation + name: guide-entry-partmanipulation + text: "/ServerInfo/Guidebook/Medical/PartManipulation.xml" + filterEnabled: true + +- type: guideEntry + id: Organ Manipulation + name: guide-entry-organmanipulation + text: "/ServerInfo/Guidebook/Medical/OrganManipulation.xml" + filterEnabled: true + +- type: guideEntry + id: Utility Surgeries + name: guide-entry-utilitysurgeries + text: "/ServerInfo/Guidebook/Medical/UtilitySurgeries.xml" + filterEnabled: true + diff --git a/Resources/Prototypes/Guidebook/rules.yml b/Resources/Prototypes/Guidebook/rules.yml new file mode 100644 index 00000000000..162cdba7703 --- /dev/null +++ b/Resources/Prototypes/Guidebook/rules.yml @@ -0,0 +1,32 @@ +- type: guideEntry # Default for forks and stuff. Should not be listed anywhere if the server is using a custom ruleset. + id: DefaultRuleset + name: guide-entry-rules + text: "/ServerInfo/Guidebook/ServerRules/DefaultRuleset.xml" + +- type: guideEntry + id: SpaceLaw + name: guide-entry-rules-space-law + priority: 60 + text: "/ServerInfo/Guidebook/ServerRules/SpaceLaw/SpaceLaw.xml" + children: + - SpaceLawControlledSubstances + - SpaceLawRestrictedGear + - SpaceLawRestrictedWeapons + +- type: guideEntry + id: SpaceLawControlledSubstances + name: guide-entry-rules-sl-controlled-substances + priority: 20 + text: "/ServerInfo/Guidebook/ServerRules/SpaceLaw/SLControlledSubstances.xml" + +- type: guideEntry + id: SpaceLawRestrictedGear + name: guide-entry-rules-sl-restricted-gear + priority: 30 + text: "/ServerInfo/Guidebook/ServerRules/SpaceLaw/SLRestrictedGear.xml" + +- type: guideEntry + id: SpaceLawRestrictedWeapons + name: guide-entry-rules-sl-restricted-weapons + priority: 40 + text: "/ServerInfo/Guidebook/ServerRules/SpaceLaw/SLRestrictedWeapons.xml" diff --git a/Resources/Prototypes/Guidebook/ss14.yml b/Resources/Prototypes/Guidebook/ss14.yml index c1017fefcae..cb55cd9c0f5 100644 --- a/Resources/Prototypes/Guidebook/ss14.yml +++ b/Resources/Prototypes/Guidebook/ss14.yml @@ -3,6 +3,7 @@ name: guide-entry-ss14 text: "/ServerInfo/Guidebook/SpaceStation14.xml" children: + - SpaceLaw - Controls - Jobs - Survival @@ -11,6 +12,8 @@ - Species - Writing - Glossary + - LoadoutInfo + - SettingLore - type: guideEntry id: Writing @@ -21,5 +24,3 @@ id: Glossary name: guide-entry-glossary text: "/ServerInfo/Guidebook/Glossary.xml" - - diff --git a/Resources/Prototypes/Language/FactionSpecific/blood_cult.yml b/Resources/Prototypes/Language/FactionSpecific/blood_cult.yml new file mode 100644 index 00000000000..6d336743520 --- /dev/null +++ b/Resources/Prototypes/Language/FactionSpecific/blood_cult.yml @@ -0,0 +1,159 @@ +# Used by followers of Nar'Sie +- type: language + id: Eldritch + speech: + color: "#dc143c" + obfuscation: + !type:SyllableObfuscation + minSyllables: 2 # Replacements are really short + maxSyllables: 7 + replacement: + - "'ra" + - so + - at + - il + - "'ta" + - gh + - sh + - ya + - "'te" + - sh + - ol + - ma + - om + - ig + - ni + - in + - sha + - mir + - sas + - mah + - zar + - tok + - lyr + - nqa + - nap + - olt + - val + - qha + - fwe + - ath + - yro + - eth + - gal + - gib + - bar + - jin + - kla + - atu + - kal + - lig + - yoka + - drak + - loso + - arta + - weyh + - ines + - toth + - fara + - amar + - nyag + - eske + - reth + - dedo + - btoh + - nikt + - neth + - kanas + - garis + - uloft + - tarat + - khari + - thnor + - rekka + - ragga + - rfikk + - harfr + - andid + - ethra + - dedol + - totum + - ntrath + - keriam + - sha + - mir + - sas + - mah + - hra + - zar + - "'tok" + - lyr + - nqa + - nap + - olt + - val + - yam + - qha + - fel + - det + - fwe + - mah + - erl + - ath + - yro + - eth + - gal + - mud + - gib + - bar + - tea + - fuu + - jin + - kla + - atu + - kal + - lig + - yoka + - drak + - loso + - arta + - weyh + - ines + - toth + - fara + - amar + - nyag + - eske + - reth + - dedo + - btoh + - nikt + - neth + - abis + - kanas + - garis + - uloft + - tarat + - khari + - thnor + - rekka + - ragga + - rfikk + - harfr + - andid + - ethra + - dedol + - totum + - verbot + - pleggh + - ntrath + - barhah + - pasnar + - keriam + - usinar + - savrae + - amutan + - tannin + - remium + - barada + - forbici diff --git a/Resources/Prototypes/Language/animal.yml b/Resources/Prototypes/Language/animal.yml index 46178200011..82f4d627497 100644 --- a/Resources/Prototypes/Language/animal.yml +++ b/Resources/Prototypes/Language/animal.yml @@ -184,3 +184,16 @@ - iss - ss - is + +- type: language + id: Penguin + obfuscation: + !type:SyllableObfuscation + minSyllables: 2 + maxSyllables: 3 + replacement: # I'm out of ideas + - pen + - peng + - won + - wonk + - wong diff --git a/Resources/Prototypes/Loadouts/Categories/categories.yml b/Resources/Prototypes/Loadouts/Categories/categories.yml index bfda095b193..48de355a517 100644 --- a/Resources/Prototypes/Loadouts/Categories/categories.yml +++ b/Resources/Prototypes/Loadouts/Categories/categories.yml @@ -31,47 +31,222 @@ root: true subCategories: - JobsAUncategorized - - JobsCargo - JobsCommand - JobsEngineering + - JobsEpistemics + - JobsLogistics - JobsMedical - - JobsScience - JobsSecurity - JobsService - type: loadoutCategory id: JobsAUncategorized +# Command +# Only Captain and HoP, Department Specific roles are under their respective Departments. +# If we ever added Centcomm or Blueshield, that would go here. - type: loadoutCategory - id: JobsCargo + id: JobsCommand + subCategories: + - JobsCommandAUncategorized + - JobsCommandCaptain + - JobsCommandHeadOfPersonnel - type: loadoutCategory - id: JobsCommand + id: JobsCommandAUncategorized + +- type: loadoutCategory + id: JobsCommandCaptain + +- type: loadoutCategory + id: JobsCommandHeadOfPersonnel +# Engineering - type: loadoutCategory id: JobsEngineering + subCategories: + - JobsEngineeringAAUncategorized + - JobsEngineeringAtmosphericTechnician + - JobsEngineeringChiefEngineer + - JobsEngineeringSeniorEngineer + - JobsEngineeringStationEngineer + - JobsEngineeringTechnicalAssistant + +- type: loadoutCategory + id: JobsEngineeringAAUncategorized + +- type: loadoutCategory + id: JobsEngineeringAtmosphericTechnician + +- type: loadoutCategory + id: JobsEngineeringChiefEngineer + +- type: loadoutCategory + id: JobsEngineeringSeniorEngineer + +- type: loadoutCategory + id: JobsEngineeringStationEngineer + +- type: loadoutCategory + id: JobsEngineeringTechnicalAssistant + +# Epistemics +- type: loadoutCategory + id: JobsEpistemics + subCategories: + - JobsEpistemicsAAUncategorized + - JobsEpistemicsAcolyte + - JobsEpistemicsCataloger + - JobsEpistemicsChaplain + - JobsEpistemicsGolemancer + - JobsEpistemicsMystagogue + - JobsEpistemicsMystic + - JobsEpistemicsNoviciate + - JobsEpistemicsPsionicMantis + +- type: loadoutCategory + id: JobsEpistemicsAAUncategorized + +- type: loadoutCategory + id: JobsEpistemicsAcolyte + +- type: loadoutCategory + id: JobsEpistemicsCataloger + +- type: loadoutCategory + id: JobsEpistemicsChaplain + +- type: loadoutCategory + id: JobsEpistemicsGolemancer + +- type: loadoutCategory + id: JobsEpistemicsMystagogue + +- type: loadoutCategory + id: JobsEpistemicsMystic + +- type: loadoutCategory + id: JobsEpistemicsNoviciate + +- type: loadoutCategory + id: JobsEpistemicsPsionicMantis + +# Logistics +- type: loadoutCategory + id: JobsLogistics + subCategories: + - JobsLogisticsAUncategorized + - JobsLogisticsCargoTechnician + - JobsLogisticsCourier + - JobsLogisticsLogisticsOfficer + - JobsLogisticsSalvageSpecialist + +- type: loadoutCategory + id: JobsLogisticsAUncategorized + +- type: loadoutCategory + id: JobsLogisticsCargoTechnician +- type: loadoutCategory + id: JobsLogisticsCourier + +- type: loadoutCategory + id: JobsLogisticsLogisticsOfficer + +- type: loadoutCategory + id: JobsLogisticsSalvageSpecialist + +# Medical - type: loadoutCategory id: JobsMedical + subCategories: + - JobsMedicalAUncategorized + - JobsMedicalChemist + - JobsMedicalChiefMedicalOfficer + - JobsMedicalMedicalDoctor + - JobsMedicalMedicalIntern + - JobsMedicalParamedic + - JobsMedicalPsychologist + - JobsMedicalSeniorPhysician + +- type: loadoutCategory + id: JobsMedicalAUncategorized + +- type: loadoutCategory + id: JobsMedicalChemist + +- type: loadoutCategory + id: JobsMedicalChiefMedicalOfficer + +- type: loadoutCategory + id: JobsMedicalMedicalDoctor + +- type: loadoutCategory + id: JobsMedicalMedicalIntern + +- type: loadoutCategory + id: JobsMedicalParamedic + +- type: loadoutCategory + id: JobsMedicalPsychologist - type: loadoutCategory - id: JobsScience + id: JobsMedicalSeniorPhysician +# Security - type: loadoutCategory id: JobsSecurity + subCategories: + - JobsSecurityAUncategorized + - JobsSecurityCadet + - JobsSecurityCorpsman + - JobsSecurityDetective + - JobsSecurityHeadOfSecurity + - JobsSecuritySecurityOfficer + - JobsSecuritySeniorOfficer + - JobsSecurityWarden + +- type: loadoutCategory + id: JobsSecurityAUncategorized +- type: loadoutCategory + id: JobsSecurityCadet + +- type: loadoutCategory + id: JobsSecurityCorpsman + +- type: loadoutCategory + id: JobsSecurityDetective + +- type: loadoutCategory + id: JobsSecurityHeadOfSecurity + +- type: loadoutCategory + id: JobsSecuritySecurityOfficer + +- type: loadoutCategory + id: JobsSecuritySeniorOfficer + +- type: loadoutCategory + id: JobsSecurityWarden + +# Service - type: loadoutCategory id: JobsService subCategories: - - JobsServiceUncategorized + - JobsServiceAUncategorized - JobsServiceBartender - JobsServiceBotanist - JobsServiceChef + - JobsServiceClown - JobsServiceJanitor + - JobsServiceLawyer + - JobsServiceMime - JobsServiceMusician + - JobsServiceReporter - type: loadoutCategory - id: JobsServiceUncategorized + id: JobsServiceAUncategorized - type: loadoutCategory id: JobsServiceBartender @@ -82,12 +257,26 @@ - type: loadoutCategory id: JobsServiceChef +- type: loadoutCategory + id: JobsServiceClown + - type: loadoutCategory id: JobsServiceJanitor +- type: loadoutCategory + id: JobsServiceLawyer + +- type: loadoutCategory + id: JobsServiceMime + - type: loadoutCategory id: JobsServiceMusician +- type: loadoutCategory + id: JobsServiceReporter + +# Now Leaving: Jobs Category + - type: loadoutCategory id: Mask root: true diff --git a/Resources/Prototypes/Loadouts/Generic/backpacks.yml b/Resources/Prototypes/Loadouts/Generic/backpacks.yml new file mode 100644 index 00000000000..dbc26f876e2 --- /dev/null +++ b/Resources/Prototypes/Loadouts/Generic/backpacks.yml @@ -0,0 +1,45 @@ +- type: loadout + id: LoadoutBackpack + category: Backpacks + cost: 0 + exclusive: true + customColorTint: true + items: + - ClothingBackpack + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBackpacks + +- type: loadout + id: LoadoutBackpackHydroponics + category: Backpacks + cost: 0 + exclusive: true + items: + - ClothingBackpackHydroponics + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBackpacks + - !type:CharacterDepartmentRequirement + departments: + - Civilian + +- type: loadout + id: LoadoutBackpackMerc + category: Backpacks + cost: 0 + exclusive: true + items: + - ClothingBackpackMerc + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBackpacks + - !type:CharacterLogicOrRequirement + requirements: + - !type:CharacterDepartmentRequirement + departments: + - Security + - Civilian + - !type:CharacterJobRequirement + jobs: + - SalvageSpecialist diff --git a/Resources/Prototypes/Loadouts/Generic/duffelbags.yml b/Resources/Prototypes/Loadouts/Generic/duffelbags.yml new file mode 100644 index 00000000000..757cc8434a2 --- /dev/null +++ b/Resources/Prototypes/Loadouts/Generic/duffelbags.yml @@ -0,0 +1,25 @@ +- type: loadout + id: LoadoutBackpackDuffel + category: Backpacks + cost: 0 + exclusive: true + customColorTint: true + items: + - ClothingBackpackDuffel + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBackpacks + +- type: loadout + id: LoadoutBackpackDuffelHydroponics + category: Backpacks + cost: 0 + exclusive: true + items: + - ClothingBackpackDuffelHydroponics + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBackpacks + - !type:CharacterDepartmentRequirement + departments: + - Civilian diff --git a/Resources/Prototypes/Loadouts/eyes.yml b/Resources/Prototypes/Loadouts/Generic/eyes.yml similarity index 95% rename from Resources/Prototypes/Loadouts/eyes.yml rename to Resources/Prototypes/Loadouts/Generic/eyes.yml index e0d5636c5fb..b48f825528e 100644 --- a/Resources/Prototypes/Loadouts/eyes.yml +++ b/Resources/Prototypes/Loadouts/Generic/eyes.yml @@ -2,6 +2,7 @@ id: LoadoutEyesEyepatch category: Eyes cost: 0 + canBeHeirloom: true items: - ClothingEyesEyepatch requirements: @@ -12,6 +13,7 @@ id: LoadoutEyesGlasses category: Eyes cost: 0 + customColorTint: true items: - ClothingEyesGlasses requirements: @@ -23,6 +25,7 @@ category: Eyes cost: 1 exclusive: true + customColorTint: true items: - ClothingEyesGlassesJamjar requirements: diff --git a/Resources/Prototypes/Loadouts/Generic/hands.yml b/Resources/Prototypes/Loadouts/Generic/hands.yml new file mode 100644 index 00000000000..2a35910a17c --- /dev/null +++ b/Resources/Prototypes/Loadouts/Generic/hands.yml @@ -0,0 +1,73 @@ +- type: loadout + id: LoadoutHandsColorWhite + category: Hands + cost: 0 + exclusive: true + customColorTint: true + canBeHeirloom: true + items: + - ClothingHandsGlovesColorWhite + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutGloves + +- type: loadout + id: LoadoutHandsColorYellowBudget + category: Hands + cost: 3 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterJobRequirement + jobs: + - Passenger + - !type:CharacterItemGroupRequirement + group: LoadoutGloves + items: + - ClothingHandsGlovesColorYellowBudget + +- type: loadout + id: LoadoutHandsGlovesLeather + category: Hands + cost: 0 + exclusive: true + items: + - ClothingHandsGlovesLeather + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutGloves + +- type: loadout + id: LoadoutHandsGlovesPowerglove + category: Hands + cost: 1 + exclusive: true + canBeHeirloom: true + items: + - ClothingHandsGlovesPowerglove + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutGloves + +- type: loadout + id: LoadoutHandsGlovesRobohands + category: Hands + cost: 0 + exclusive: true + items: + - ClothingHandsGlovesRobohands + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutGloves + +- type: loadout + id: LoadoutHandsGlovesFingerlessWhite + category: Hands + cost: 0 + exclusive: true + customColorTint: true + items: + - ClothingHandsGlovesFingerlessWhite + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutGloves diff --git a/Resources/Prototypes/Loadouts/Generic/head.yml b/Resources/Prototypes/Loadouts/Generic/head.yml new file mode 100644 index 00000000000..3efef2fac4a --- /dev/null +++ b/Resources/Prototypes/Loadouts/Generic/head.yml @@ -0,0 +1,335 @@ +# Hats +- type: loadout + id: LoadoutHeadBeaverHat + category: Head + cost: 1 + exclusive: true + items: + - ClothingHeadHatBeaverHat + requirements: + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - !type:CharacterItemGroupRequirement + group: LoadoutHead + +- type: loadout + id: LoadoutHeadTophat + category: Head + cost: 1 + exclusive: true + items: + - ClothingHeadHatTophat + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHead + +- type: loadout + id: LoadoutHeadFedoraWhite + category: Head + cost: 1 + exclusive: true + customColorTint: true + items: + - ClothingHeadHatFedoraWhite + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHead + +- type: loadout + id: LoadoutHeadFlatBlack + category: Head + cost: 1 + exclusive: true + items: + - ClothingHeadHatFlatBlack + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHead + +- type: loadout + id: LoadoutHeadFlatBrown + category: Head + cost: 1 + exclusive: true + items: + - ClothingHeadHatFlatBrown + requirements: + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - !type:CharacterItemGroupRequirement + group: LoadoutHead + +- type: loadout + id: LoadoutHeadHatCowboyWhite + category: Head + cost: 1 + exclusive: true + customColorTint: true + items: + - ClothingHeadHatCowboyWhite + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHead + +- type: loadout + id: LoadoutHeadHatCowboyBountyHunter + category: Head + cost: 1 + exclusive: true + canBeHeirloom: true + items: + - ClothingHeadHatCowboyBountyHunter + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHead + +- type: loadout + id: LoadoutHeadTinfoil + category: Head + cost: 2 + exclusive: true + customColorTint: true + canBeHeirloom: true + items: + - ClothingHeadTinfoil + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHead + +- type: loadout + id: LoadoutHeadBellhop + category: Head + cost: 1 + exclusive: true + items: + - ClothingHeadHatBellhop + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHead + +- type: loadout + id: LoadoutHeadPoppy + category: Head + cost: 0 + exclusive: true + items: + - FoodPoppy + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHead + +- type: loadout + id: LoadoutHeadPoppyWhite + category: Head + cost: 0 + exclusive: true + customColorTint: true + items: + - FoodPoppyWhite + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHead + +# Color Hats +- type: loadout + id: LoadoutHeadHatCorpsoft + category: Head + cost: 0 + exclusive: true + items: + - ClothingHeadHatCorpsoft + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHead + +- type: loadout + id: LoadoutHeadHatCorpsoftFlipped + category: Head + cost: 0 + exclusive: true + items: + - ClothingHeadHatCorpsoftFlipped + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHead + +- type: loadout + id: LoadoutHeadHatMimesoft + category: Head + cost: 0 + exclusive: true + customColorTint: true + items: + - ClothingHeadHatMimesoft + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHead + +- type: loadout + id: LoadoutHeadHatMimesoftFlipped + category: Head + cost: 0 + exclusive: true + customColorTint: true + items: + - ClothingHeadHatMimesoftFlipped + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHead + +# Headbands +- type: loadout + id: LoadoutHeadBandWhite + category: Head + cost: 0 + exclusive: true + customColorTint: true + items: + - ClothingHeadBandWhite + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHead + +- type: loadout + id: LoadoutHeadBandSkull + category: Head + cost: 0 + exclusive: true + canBeHeirloom: true + items: + - ClothingHeadBandSkull + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHead + +- type: loadout + id: LoadoutHeadFishCap + category: Head + cost: 1 + exclusive: true + items: + - ClothingHeadFishCap + requirements: + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - !type:CharacterItemGroupRequirement + group: LoadoutHead + +- type: loadout + id: LoadoutHeadRastaHat + category: Head + cost: 2 + exclusive: true + items: + - ClothingHeadRastaHat + requirements: + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - !type:CharacterItemGroupRequirement + group: LoadoutHead + +- type: loadout + id: LoadoutHeadFez + category: Head + cost: 1 + exclusive: true + items: + - ClothingHeadHatFez + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHead + +- type: loadout + id: LoadoutHeadBowlerHat + category: Head + cost: 1 + exclusive: true + items: + - ClothingHeadHatBowlerHat + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHead + +# Flatcaps +- type: loadout + id: LoadoutHeadGreyFlatcap + category: Head + cost: 1 + exclusive: true + items: + - ClothingHeadHatGreyFlatcap + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHead + +- type: loadout + id: LoadoutHeadBrownFlatcap + category: Head + cost: 1 + exclusive: true + items: + - ClothingHeadHatBrownFlatcap + requirements: + - !type:CharacterDepartmentRequirement + inverted: true + departments: + - Security + - !type:CharacterItemGroupRequirement + group: LoadoutHead + +# Berets +- type: loadout + id: LoadoutHeadBeretWhite + category: Head + cost: 1 + exclusive: true + customColorTint: true + items: + - ClothingHeadHatBeretWhite + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHead + +- type: loadout + id: LoadoutHeadHijabColorable + category: Head + cost: 0 + exclusive: true + customColorTint: true + items: + - ClothingHeadHatHijabColorable + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHead + +- type: loadout + id: LoadoutHeadTurbanColorable + category: Head + cost: 0 + exclusive: true + customColorTint: true + items: + - ClothingHeadHatTurbanColorable + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHead + +- type: loadout + id: LoadoutHeadKippahColorable + category: Head + cost: 0 + exclusive: true + customColorTint: true + items: + - ClothingHeadHatKippahColorable + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHead diff --git a/Resources/Prototypes/Loadouts/items.yml b/Resources/Prototypes/Loadouts/Generic/items.yml similarity index 92% rename from Resources/Prototypes/Loadouts/items.yml rename to Resources/Prototypes/Loadouts/Generic/items.yml index d992c93fa09..2c42955c08f 100644 --- a/Resources/Prototypes/Loadouts/items.yml +++ b/Resources/Prototypes/Loadouts/Generic/items.yml @@ -73,6 +73,7 @@ id: LoadoutItemLighter category: Items cost: 1 + customColorTint: true items: - Lighter requirements: @@ -83,6 +84,7 @@ id: LoadoutItemLighterCheap category: Items cost: 0 + customColorTint: true items: - CheapLighter requirements: @@ -93,6 +95,7 @@ id: LoadoutItemLighterFlippo category: Items cost: 2 + customColorTint: true items: - FlippoLighter requirements: @@ -340,6 +343,7 @@ id: LoadoutItemsEmergencyCrowbar category: Items cost: 3 + canBeHeirloom: true items: - CrowbarRed @@ -680,6 +684,7 @@ id: LoadoutItemPAI category: Items cost: 3 + canBeHeirloom: true items: - PersonalAI @@ -741,6 +746,8 @@ id: LoadoutItemDrinkShinyFlask category: Items cost: 1 + customColorTint: true + canBeHeirloom: true items: - DrinkShinyFlask @@ -748,6 +755,7 @@ id: LoadoutItemDrinkLithiumFlask category: Items cost: 1 + customColorTint: true items: - DrinkLithiumFlask @@ -755,5 +763,59 @@ id: LoadoutItemDrinkVacuumFlask category: Items cost: 1 + customColorTint: true items: - DrinkVacuumFlask + +# Pets +- type: loadout + id: LoadoutItemPetMouse + category: Items + cost: 2 + canBeHeirloom: true + items: + - MobMousePet + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutPets + functions: + - !type:LoadoutMakeFollower + +- type: loadout + id: LoadoutItemPetHamster + category: Items + cost: 2 + canBeHeirloom: true + items: + - MobHamsterPet + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutPets + functions: + - !type:LoadoutMakeFollower + +- type: loadout + id: LoadoutItemPetMothroach + category: Items + cost: 2 + canBeHeirloom: true + items: + - MobMothroachPet + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutPets + functions: + - !type:LoadoutMakeFollower + +- type: loadout + id: LoadoutItemPetCockroach + category: Items + cost: 2 + canBeHeirloom: true + items: + - MobCockroachPet + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutPets + functions: + - !type:LoadoutMakeFollower diff --git a/Resources/Prototypes/Loadouts/Generic/mask.yml b/Resources/Prototypes/Loadouts/Generic/mask.yml new file mode 100644 index 00000000000..6445071d548 --- /dev/null +++ b/Resources/Prototypes/Loadouts/Generic/mask.yml @@ -0,0 +1,72 @@ +- type: loadout + id: LoadoutMaskSterile + category: Mask + cost: 0 + exclusive: true + customColorTint: true + items: + - ClothingMaskSterile + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMasks + +- type: loadout + id: LoadoutMaskMuzzle + category: Mask + cost: 1 + exclusive: true + items: + - ClothingMaskMuzzle + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMasks + +- type: loadout + id: LoadoutMaskGas + category: Mask + cost: 1 + exclusive: true + canBeHeirloom: true + items: + - ClothingMaskGas + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMasks + +# Maskbands +- type: loadout + id: LoadoutMaskBandWhite + category: Mask + cost: 0 + exclusive: true + customColorTint: true + items: + - ClothingMaskBandWhite + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMasks + +- type: loadout + id: LoadoutMaskBandSkull + category: Mask + cost: 0 + exclusive: true + canBeHeirloom: true + items: + - ClothingMaskBandSkull + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMasks + +# Gaiters +- type: loadout + id: LoadoutMaskNeckGaiterWhite + category: Mask + cost: 1 + exclusive: true + customColorTint: true + items: + - ClothingMaskNeckGaiterWhite + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMasks diff --git a/Resources/Prototypes/Loadouts/neck.yml b/Resources/Prototypes/Loadouts/Generic/neck.yml similarity index 58% rename from Resources/Prototypes/Loadouts/neck.yml rename to Resources/Prototypes/Loadouts/Generic/neck.yml index e5f1442efe7..c18c33984fb 100644 --- a/Resources/Prototypes/Loadouts/neck.yml +++ b/Resources/Prototypes/Loadouts/Generic/neck.yml @@ -25,6 +25,8 @@ category: Neck cost: 0 exclusive: true + customColorTint: true + canBeHeirloom: true items: - ClothingNeckOldMantle requirements: @@ -36,6 +38,8 @@ category: Neck cost: 0 exclusive: true + customColorTint: true + canBeHeirloom: true items: - ClothingNeckUnathiMantle requirements: @@ -143,61 +147,19 @@ group: LoadoutNeck # Ties -- type: loadout - id: LoadoutNeckTieRed - category: Neck - cost: 0 - exclusive: true - items: - - ClothingNeckTieRed - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutNeck - - type: loadout id: LoadoutNeckTieWhite category: Neck cost: 0 exclusive: true + customColorTint: true + canBeHeirloom: true items: - ClothingNeckTieWhite requirements: - !type:CharacterItemGroupRequirement group: LoadoutNeck -- type: loadout - id: LoadoutNeckTieBlack - category: Neck - cost: 0 - exclusive: true - items: - - ClothingNeckTieBlack - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutNeck - -- type: loadout - id: LoadoutNeckTieBlue - category: Neck - cost: 0 - exclusive: true - items: - - ClothingNeckTieBlue - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutNeck - -- type: loadout - id: LoadoutNeckTieGreen - category: Neck - cost: 0 - exclusive: true - items: - - ClothingNeckTieGreen - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutNeck - #Pride Accessories - type: loadout id: LoadoutItemsPrideLGBTPin @@ -299,65 +261,12 @@ group: LoadoutNeck # Bedsheets -- type: loadout - id: LoadoutNeckBedsheetBlack - category: Neck - cost: 1 - exclusive: true - items: - - BedsheetBlack - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutNeck - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutNeckBedsheetBlue - category: Neck - cost: 1 - exclusive: true - items: - - BedsheetBlue - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutNeck - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutNeckBedsheetBrown - category: Neck - cost: 1 - exclusive: true - items: - - BedsheetBrown - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutNeck - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - - type: loadout id: LoadoutNeckBedsheetCosmos category: Neck cost: 2 exclusive: true + canBeHeirloom: true items: - BedsheetCosmos requirements: @@ -371,80 +280,6 @@ departments: - Command -- type: loadout - id: LoadoutNeckBedsheetGreen - category: Neck - cost: 1 - exclusive: true - items: - - BedsheetGreen - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutNeck - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutNeckBedsheetGrey - category: Neck - cost: 1 - exclusive: true - items: - - BedsheetGrey - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutNeck - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutNeckBedsheetOrange - category: Neck - cost: 1 - exclusive: true - items: - - BedsheetOrange - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutNeck - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - Logistics - - !type:CharacterJobRequirement - inverted: true - jobs: - - HeadOfPersonnel # Need to blacklist HoP and not command so other heads can wear this bedsheet - -- type: loadout - id: LoadoutNeckBedsheetPurple - category: Neck - cost: 1 - exclusive: true - items: - - BedsheetPurple - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutNeck - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - Epistemics - - !type:CharacterJobRequirement - inverted: true - jobs: - - HeadOfPersonnel # Need to blacklist HoP and not command so other heads can wear this bedsheet - - type: loadout id: LoadoutNeckBedsheetRainbow category: Neck @@ -463,30 +298,12 @@ departments: - Command -- type: loadout - id: LoadoutNeckBedsheetRed - category: Neck - cost: 1 - exclusive: true - items: - - BedsheetRed - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutNeck - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - Security - - !type:CharacterJobRequirement - inverted: true - jobs: - - HeadOfPersonnel # Need to blacklist HoP and not command so other heads can wear this bedsheet - - type: loadout id: LoadoutNeckBedsheetWhite category: Neck cost: 1 exclusive: true + customColorTint: true items: - BedsheetWhite requirements: @@ -500,25 +317,6 @@ departments: - Command -- type: loadout - id: LoadoutNeckBedsheetYellow - category: Neck - cost: 1 - exclusive: true - items: - - BedsheetYellow - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutNeck - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - Engineering - - !type:CharacterJobRequirement - inverted: true - jobs: - - HeadOfPersonnel # Need to blacklist HoP and not command so other heads can wear this bedsheet - - type: loadout id: LoadoutNeckBedsheetNT category: Neck diff --git a/Resources/Prototypes/Loadouts/outerClothing.yml b/Resources/Prototypes/Loadouts/Generic/outerClothing.yml similarity index 96% rename from Resources/Prototypes/Loadouts/outerClothing.yml rename to Resources/Prototypes/Loadouts/Generic/outerClothing.yml index 8411b4c40f8..57f8b35132a 100644 --- a/Resources/Prototypes/Loadouts/outerClothing.yml +++ b/Resources/Prototypes/Loadouts/Generic/outerClothing.yml @@ -2,6 +2,7 @@ id: LoadoutOuterCoatBomberjacket category: Outer cost: 1 + customColorTint: true items: - ClothingOuterCoatBomber requirements: @@ -22,6 +23,7 @@ id: LoadoutOuterCoatHoodieGrey category: Outer cost: 0 + customColorTint: true items: - ClothingOuterHoodieGrey requirements: @@ -32,6 +34,7 @@ id: LoadoutOuterCoatWinterCoat category: Outer cost: 1 + customColorTint: true items: - ClothingOuterWinterCoat requirements: @@ -42,6 +45,7 @@ id: LoadoutOuterCoatHyenhSweater category: Outer cost: 1 + customColorTint: true items: - ClothingOuterCoatHyenhSweater requirements: @@ -52,6 +56,7 @@ id: LoadoutOuterWinterCoatLong category: Outer cost: 1 + customColorTint: true items: - ClothingOuterWinterCoatLong requirements: @@ -114,6 +119,7 @@ id: LoadoutOuterCoatMNKWhiteHoodie category: Outer cost: 1 + customColorTint: true items: - ClothingOuterCoatMNKWhiteHoodie requirements: @@ -145,6 +151,7 @@ id: LoadoutOuterCorporateJacket category: Outer cost: 0 + guideEntry: NanoTrasen items: - ClothingOuterCorporateJacket requirements: @@ -165,6 +172,7 @@ id: LoadoutOuterEeCorporateJacket category: Outer cost: 0 + guideEntry: EinsteinEngines items: - ClothingOuterEeCorporateJacket requirements: @@ -175,6 +183,7 @@ id: LoadoutOuterHiCorporateJacket category: Outer cost: 0 + guideEntry: HephaestusIndustries items: - ClothingOuterHiCorporateJacket requirements: @@ -245,6 +254,7 @@ id: LoadoutOuterZhCorporateJacket category: Outer cost: 0 + guideEntry: ZengHuPharmaceuticals items: - ClothingOuterZhCorporateJacket requirements: diff --git a/Resources/Prototypes/Loadouts/Generic/satchels.yml b/Resources/Prototypes/Loadouts/Generic/satchels.yml new file mode 100644 index 00000000000..d3bcb7abd3f --- /dev/null +++ b/Resources/Prototypes/Loadouts/Generic/satchels.yml @@ -0,0 +1,38 @@ +- type: loadout + id: LoadoutBackpackSatchel + category: Backpacks + cost: 0 + exclusive: true + customColorTint: true + items: + - ClothingBackpackSatchel + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBackpacks + +- type: loadout + id: LoadoutItemBackpackSatchelLeather + category: Backpacks + cost: 1 + exclusive: true + items: + - ClothingBackpackSatchelLeather + requirements: + - !type:CharacterJobRequirement + inverted: true + jobs: + - Prisoner + +- type: loadout + id: LoadoutBackpackSatchelHydroponics + category: Backpacks + cost: 0 + exclusive: true + items: + - ClothingBackpackSatchelHydroponics + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBackpacks + - !type:CharacterDepartmentRequirement + departments: + - Civilian diff --git a/Resources/Prototypes/Loadouts/shoes.yml b/Resources/Prototypes/Loadouts/Generic/shoes.yml similarity index 65% rename from Resources/Prototypes/Loadouts/shoes.yml rename to Resources/Prototypes/Loadouts/Generic/shoes.yml index 38ca6bab6ca..fb8487981bd 100644 --- a/Resources/Prototypes/Loadouts/shoes.yml +++ b/Resources/Prototypes/Loadouts/Generic/shoes.yml @@ -1,103 +1,16 @@ # Colored -- type: loadout - id: LoadoutShoesBlack - category: Shoes - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutShoes - items: - - ClothingShoesColorBlack - -- type: loadout - id: LoadoutShoesBlue - category: Shoes - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutShoes - items: - - ClothingShoesColorBlue - -- type: loadout - id: LoadoutShoesBrown - category: Shoes - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutShoes - items: - - ClothingShoesColorBrown - -- type: loadout - id: LoadoutShoesGreen - category: Shoes - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutShoes - items: - - ClothingShoesColorGreen - -- type: loadout - id: LoadoutShoesOrange - category: Shoes - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutShoes - items: - - ClothingShoesColorOrange - -- type: loadout - id: LoadoutShoesPurple - category: Shoes - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutShoes - items: - - ClothingShoesColorPurple - -- type: loadout - id: LoadoutShoesRed - category: Shoes - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutShoes - items: - - ClothingShoesColorRed - - type: loadout id: LoadoutShoesWhite category: Shoes cost: 0 exclusive: true + customColorTint: true requirements: - !type:CharacterItemGroupRequirement group: LoadoutShoes items: - ClothingShoesColorWhite -- type: loadout - id: LoadoutShoesYellow - category: Shoes - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutShoes - items: - - ClothingShoesColorYellow - - type: loadout id: LoadoutShoesGeta category: Shoes @@ -133,7 +46,7 @@ - ClothingShoesBootsWork - type: loadout - id: LoadoutShoesBootsLaceup + id: LoadoutShoesBootsJackFake category: Shoes cost: 1 exclusive: true @@ -141,21 +54,10 @@ - !type:CharacterItemGroupRequirement group: LoadoutShoes items: - - ClothingShoesBootsLaceup - -- type: loadout - id: LoadoutShoesBootsWinter - category: Shoes - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutShoes - items: - - ClothingShoesBootsWinter + - ClothingShoesBootsJackFake - type: loadout - id: LoadoutShoesBootsCowboyBrown + id: LoadoutShoesBootsLaceup category: Shoes cost: 1 exclusive: true @@ -163,24 +65,26 @@ - !type:CharacterItemGroupRequirement group: LoadoutShoes items: - - ClothingShoesBootsCowboyBrown + - ClothingShoesBootsLaceup - type: loadout - id: LoadoutShoesBootsCowboyBlack + id: LoadoutShoesBootsWinter category: Shoes - cost: 1 + cost: 0 exclusive: true requirements: - !type:CharacterItemGroupRequirement group: LoadoutShoes items: - - ClothingShoesBootsCowboyBlack + - ClothingShoesBootsWinter - type: loadout id: LoadoutShoesBootsCowboyWhite category: Shoes cost: 1 exclusive: true + customColorTint: true + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement group: LoadoutShoes @@ -192,6 +96,8 @@ category: Shoes cost: 1 exclusive: true + customColorTint: true + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement group: LoadoutShoes @@ -215,6 +121,7 @@ category: Shoes cost: 1 exclusive: true + canBeHeirloom: true items: - ClothingShoeSlippersDuck requirements: @@ -240,6 +147,7 @@ category: Shoes cost: 0 exclusive: true + customColorTint: true requirements: - !type:CharacterItemGroupRequirement group: LoadoutShoes @@ -285,6 +193,7 @@ category: Shoes cost: 0 exclusive: true + customColorTint: true requirements: - !type:CharacterItemGroupRequirement group: LoadoutShoes diff --git a/Resources/Prototypes/Loadouts/species.yml b/Resources/Prototypes/Loadouts/Generic/species.yml similarity index 100% rename from Resources/Prototypes/Loadouts/species.yml rename to Resources/Prototypes/Loadouts/Generic/species.yml diff --git a/Resources/Prototypes/Loadouts/uniform.yml b/Resources/Prototypes/Loadouts/Generic/uniform.yml similarity index 65% rename from Resources/Prototypes/Loadouts/uniform.yml rename to Resources/Prototypes/Loadouts/Generic/uniform.yml index f0f29cf8b1d..960f70b54c0 100644 --- a/Resources/Prototypes/Loadouts/uniform.yml +++ b/Resources/Prototypes/Loadouts/Generic/uniform.yml @@ -3,6 +3,8 @@ category: Uniform cost: 1 exclusive: true + customColorTint: true + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement group: LoadoutUniformsCivilian @@ -14,234 +16,12 @@ # Colored jumpsuits # Someone please alphabetically order these... - -- type: loadout - id: LoadoutUniformJumpsuitColorBlack - category: Uniform - cost: 0 - exclusive: true - items: - - ClothingUniformJumpsuitColorBlack - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsCivilian - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - Security - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutUniformJumpskirtColorBlack - category: Uniform - cost: 0 - exclusive: true - items: - - ClothingUniformJumpskirtColorBlack - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsCivilian - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - Security - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutUniformJumpsuitColorBlue - category: Uniform - cost: 0 - exclusive: true - items: - - ClothingUniformJumpsuitColorBlue - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsCivilian - - !type:CharacterDepartmentRequirement - departments: - - Medical - - Civilian - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutUniformJumpskirtColorBlue - category: Uniform - cost: 0 - exclusive: true - items: - - ClothingUniformJumpskirtColorBlue - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsCivilian - - !type:CharacterDepartmentRequirement - departments: - - Medical - - Civilian - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutUniformJumpsuitColorGreen - category: Uniform - cost: 0 - exclusive: true - items: - - ClothingUniformJumpsuitColorGreen - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsCivilian - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutUniformJumpskirtColorGreen - category: Uniform - cost: 0 - exclusive: true - items: - - ClothingUniformJumpskirtColorGreen - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsCivilian - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutUniformJumpsuitColorOrange - category: Uniform - cost: 0 - exclusive: true - items: - - ClothingUniformJumpsuitColorOrange - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsCivilian - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutUniformJumpskirtColorOrange - category: Uniform - cost: 0 - exclusive: true - items: - - ClothingUniformJumpskirtColorOrange - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsCivilian - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutUniformJumpsuitColorPink - category: Uniform - cost: 0 - exclusive: true - items: - - ClothingUniformJumpsuitColorPink - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsCivilian - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutUniformJumpskirtColorPink - category: Uniform - cost: 0 - exclusive: true - items: - - ClothingUniformJumpskirtColorPink - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsCivilian - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutUniformJumpsuitColorRed - category: Uniform - cost: 0 - exclusive: true - items: - - ClothingUniformJumpsuitColorRed - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsCivilian - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - Security - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutUniformJumpskirtColorRed - category: Uniform - cost: 0 - exclusive: true - items: - - ClothingUniformJumpskirtColorRed - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsCivilian - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - Security - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - - type: loadout id: LoadoutUniformJumpsuitColorWhite category: Uniform cost: 0 exclusive: true + customColorTint: true items: - ClothingUniformJumpsuitColorWhite requirements: @@ -262,6 +42,7 @@ category: Uniform cost: 0 exclusive: true + customColorTint: true items: - ClothingUniformJumpskirtColorWhite requirements: @@ -277,298 +58,6 @@ departments: - Command -- type: loadout - id: LoadoutUniformJumpsuitColorYellow - category: Uniform - cost: 0 - exclusive: true - items: - - ClothingUniformJumpsuitColorYellow - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsCivilian - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - Engineering - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutUniformJumpskirtColorYellow - category: Uniform - cost: 0 - exclusive: true - items: - - ClothingUniformJumpskirtColorYellow - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsCivilian - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - Engineering - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutUniformJumpsuitColorDarkBlue - category: Uniform - cost: 0 - exclusive: true - items: - - ClothingUniformJumpsuitColorDarkBlue - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsCivilian - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutUniformJumpskirtColorDarkBlue - category: Uniform - cost: 0 - exclusive: true - items: - - ClothingUniformJumpskirtColorDarkBlue - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsCivilian - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutUniformJumpsuitColorTeal - category: Uniform - cost: 0 - exclusive: true - items: - - ClothingUniformJumpsuitColorTeal - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsCivilian - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutUniformJumpskirtColorTeal - category: Uniform - cost: 0 - exclusive: true - items: - - ClothingUniformJumpskirtColorTeal - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsCivilian - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutUniformJumpsuitColorPurple - category: Uniform - cost: 0 - exclusive: true - items: - - ClothingUniformJumpsuitColorPurple - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsCivilian - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - Epistemics - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutUniformJumpskirtColorPurple - category: Uniform - cost: 0 - exclusive: true - items: - - ClothingUniformJumpskirtColorPurple - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsCivilian - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - Epistemics - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutUniformJumpsuitColorDarkGreen - category: Uniform - cost: 0 - exclusive: true - items: - - ClothingUniformJumpsuitColorDarkGreen - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsCivilian - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutUniformJumpskirtColorDarkGreen - category: Uniform - cost: 0 - exclusive: true - items: - - ClothingUniformJumpskirtColorDarkGreen - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsCivilian - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutUniformJumpsuitColorLightBrown - category: Uniform - cost: 0 - exclusive: true - items: - - ClothingUniformJumpsuitColorLightBrown - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsCivilian - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutUniformJumpskirtColorLightBrown - category: Uniform - cost: 0 - exclusive: true - items: - - ClothingUniformJumpskirtColorLightBrown - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsCivilian - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutUniformJumpsuitColorBrown - category: Uniform - cost: 0 - exclusive: true - items: - - ClothingUniformJumpsuitColorBrown - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsCivilian - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutUniformJumpskirtColorBrown - category: Uniform - cost: 0 - exclusive: true - items: - - ClothingUniformJumpskirtColorBrown - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsCivilian - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutUniformJumpsuitColorMaroon - category: Uniform - cost: 0 - exclusive: true - items: - - ClothingUniformJumpsuitColorMaroon - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsCivilian - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - -- type: loadout - id: LoadoutUniformJumpskirtColorMaroon - category: Uniform - cost: 0 - exclusive: true - items: - - ClothingUniformJumpskirtColorMaroon - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsCivilian - - !type:CharacterDepartmentRequirement - departments: - - Civilian - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Command - - type: loadout id: LoadoutUniformJumpsuitFlannel category: Uniform @@ -998,6 +487,7 @@ category: Uniform cost: 1 exclusive: true + canBeHeirloom: true items: - ClothingUniformKendoHakama requirements: @@ -1013,6 +503,8 @@ category: Uniform cost: 1 exclusive: true + customColorTint: true + canBeHeirloom: true items: - ClothingUniformMartialGi requirements: @@ -1030,6 +522,8 @@ category: Uniform cost: 1 exclusive: true + customColorTint: true + canBeHeirloom: true items: - ClothingUniformJumpsuitKimono requirements: @@ -1046,6 +540,7 @@ category: Uniform cost: 1 exclusive: true + canBeHeirloom: true items: - ClothingKimonoBlue requirements: @@ -1062,6 +557,7 @@ category: Uniform cost: 1 exclusive: true + canBeHeirloom: true items: - ClothingKimonoPink requirements: @@ -1078,6 +574,7 @@ category: Uniform cost: 1 exclusive: true + canBeHeirloom: true items: - ClothingKimonoPurple requirements: @@ -1094,6 +591,7 @@ category: Uniform cost: 1 exclusive: true + canBeHeirloom: true items: - ClothingKimonoSky requirements: @@ -1110,6 +608,7 @@ category: Uniform cost: 1 exclusive: true + canBeHeirloom: true items: - ClothingKimonoGreen requirements: @@ -1127,6 +626,7 @@ category: Uniform cost: 1 exclusive: true + canBeHeirloom: true items: - ClothingUniformSchoolGakuranBlack requirements: @@ -1302,6 +802,7 @@ category: Uniform cost: 1 exclusive: true + customColorTint: true items: - ClothingUniformMNKOfficeSkirt requirements: @@ -1317,6 +818,7 @@ category: Uniform cost: 1 exclusive: true + customColorTint: true items: - ClothingUniformMNKUnderGarment requirements: @@ -1332,6 +834,7 @@ category: Uniform cost: 1 exclusive: true + customColorTint: true items: - ClothingUniformMNKGymBra requirements: @@ -1499,6 +1002,7 @@ category: Uniform cost: 1 exclusive: true + customColorTint: true items: - ClothingUniformJumpsuitSuitWhite requirements: @@ -1515,6 +1019,7 @@ category: Uniform cost: 1 exclusive: true + customColorTint: true items: - ClothingUniformJumpsuitSuitWhiteAlt requirements: @@ -1530,6 +1035,7 @@ category: Uniform cost: 1 exclusive: true + customColorTint: true items: - ClothingUniformJumpsuitSuitWhiteMob requirements: diff --git a/Resources/Prototypes/Loadouts/Jobs/Command/captain.yml b/Resources/Prototypes/Loadouts/Jobs/Command/captain.yml new file mode 100644 index 00000000000..b64ad384ef4 --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Command/captain.yml @@ -0,0 +1,497 @@ +# Captain +# Backpacks +- type: loadout + id: LoadoutBackpackCaptain + category: JobsCommandCaptain + cost: 0 + exclusive: true + items: + - ClothingBackpackCaptain + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainBackpacks + - !type:CharacterJobRequirement + jobs: + - Captain + +- type: loadout + id: LoadoutBackpackSatchelCaptain + category: JobsCommandCaptain + cost: 0 + exclusive: true + items: + - ClothingBackpackSatchelCaptain + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainBackpacks + - !type:CharacterJobRequirement + jobs: + - Captain + +- type: loadout + id: LoadoutBackpackDuffelCaptain + category: JobsCommandCaptain + cost: 0 + exclusive: true + items: + - ClothingBackpackDuffelCaptain + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainBackpacks + - !type:CharacterJobRequirement + jobs: + - Captain + +- type: loadout + id: LoadoutBackpackCaptainFilled + category: JobsCommandCaptain + cost: 0 + exclusive: true + items: + - ClothingBackpackCaptainFilled + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainBackpacks + - !type:CharacterJobRequirement + jobs: + - Captain + +- type: loadout + id: LoadoutBackpackSatchelCaptainFilled + category: JobsCommandCaptain + cost: 0 + exclusive: true + items: + - ClothingBackpackSatchelCaptainFilled + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainBackpacks + - !type:CharacterJobRequirement + jobs: + - Captain + +- type: loadout + id: LoadoutBackpackDuffelCaptainFilled + category: JobsCommandCaptain + cost: 0 + exclusive: true + items: + - ClothingBackpackDuffelCaptainFilled + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainBackpacks + - !type:CharacterJobRequirement + jobs: + - Captain + +# Belt +- type: loadout + id: LoadoutCaptainSwordSheath + category: JobsCommandCaptain + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainBelt + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - ClothingBeltSheathFilled + +# Ears + +# Equipment +- type: loadout + id: LoadoutCaptainDrinkFlask + category: JobsCommandCaptain + cost: 0 + canBeHeirloom: true + customColorTint: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainTrinkets + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - DrinkFlask + +- type: loadout + id: LoadoutCaptainMedalCase + category: JobsCommandCaptain + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainTrinkets + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - MedalCase + +- type: loadout + id: LoadoutCaptainSpaceCash1000 + category: JobsCommandCaptain + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainTrinkets + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - SpaceCash1000 + +- type: loadout + id: LoadoutCaptainCigarCase + category: JobsCommandCaptain + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainTrinkets + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - CigarGoldCase + +- type: loadout + id: LoadoutCaptainAntiqueLaserPistol + category: JobsCommandCaptain + cost: 0 + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainWeapon + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - WeaponAntiqueLaser + +- type: loadout + id: LoadoutCaptainPulsePistol + category: JobsCommandCaptain + cost: 0 + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainWeapon + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - WeaponPulsePistolCaptain + +# Eyes +- type: loadout + id: LoadoutCaptainEyesSunglasses + category: JobsCommandCaptain + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainEyes + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - ClothingEyesGlassesSunglasses + +# Gloves +- type: loadout + id: LoadoutCaptainGlovesCapGloves + category: JobsCommandCaptain + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainGloves + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - ClothingHandsGlovesCaptain + +- type: loadout + id: LoadoutCaptainGlovesInspection + category: JobsCommandCaptain + cost: 0 + exclusive: true + customColorTint: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainGloves + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - ClothingHandsGlovesInspection + +# Head +- type: loadout + id: LoadoutCommandCapHat + category: JobsCommandCaptain + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainHead + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - ClothingHeadHatCaptain + +- type: loadout + id: LoadoutCommandCapHatCapcap + category: JobsCommandCaptain + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainHead + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - ClothingHeadHatCapcap + +- type: loadout + id: LoadoutCommandCapHatBeret + category: JobsCommandCaptain + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainHead + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - ClothingHeadHatBeretCap + +# Id +- type: loadout + id: LoadoutCaptainNTPDA + category: JobsCommandCaptain + cost: 0 + exclusive: true + requirements: + - !type:CharacterPlaytimeRequirement + tracker: JobCaptain + min: 36000 # 10 hours + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainId + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - CaptainNTPDA + +# Neck +- type: loadout + id: LoadoutCommandCapNeckMantle + category: JobsCommandCaptain + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainNeck + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - ClothingNeckMantleCap + +- type: loadout + id: LoadoutCommandCapNeckCloak + category: JobsCommandCaptain + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainNeck + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - ClothingNeckCloakCap + +- type: loadout + id: LoadoutCommandCapNeckCloakFormal + category: JobsCommandCaptain + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainNeck + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - ClothingNeckCloakCapFormal + +- type: loadout + id: LoadoutCaptainNeckGoldMedal + category: JobsCommandCaptain + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainNeck + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - ClothingNeckGoldmedal + +# Mask +- type: loadout + id: LoadoutCommandCapMaskGas + category: JobsCommandCaptain + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainMask + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - ClothingMaskGasCaptain + +# Outer +- type: loadout + id: LoadoutCommandCapOuterWinter + category: JobsCommandCaptain + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainOuter + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - ClothingOuterWinterCap + +- type: loadout + id: LoadoutCaptainOuterCarapace + category: JobsCommandCaptain + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainOuter + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - ClothingOuterArmorCaptainCarapace + +# Shoes +- type: loadout + id: LoadoutCaptainShoesLaceup + category: JobsCommandCaptain + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainShoes + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - ClothingShoesBootsLaceup + +- type: loadout + id: LoadoutCaptainShoesLeather + category: JobsCommandCaptain + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainShoes + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - ClothingShoesLeather + +- type: loadout + id: LoadoutCaptainShoesWinter + category: JobsCommandCaptain + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainShoes + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - ClothingShoesBootsWinterCap + +- type: loadout + id: LoadoutCaptainShoesCombat + category: JobsCommandCaptain + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainShoes + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - ClothingShoesBootsCombatFilled + +# Uniforms +- type: loadout + id: LoadoutCommandCapJumpsuit + category: JobsCommandCaptain + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainUniforms + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - ClothingUniformJumpsuitCaptain + +- type: loadout + id: LoadoutCommandCapJumpskirt + category: JobsCommandCaptain + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainUniforms + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - ClothingUniformJumpskirtCaptain + +- type: loadout + id: LoadoutCommandCapJumpsuitFormal + category: JobsCommandCaptain + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainUniforms + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - ClothingUniformJumpsuitCapFormal + +- type: loadout + id: LoadoutCommandCapJumpskirtFormal + category: JobsCommandCaptain + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCaptainUniforms + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - ClothingUniformJumpskirtCapFormalDress diff --git a/Resources/Prototypes/Loadouts/Jobs/Command/headOfPersonnel.yml b/Resources/Prototypes/Loadouts/Jobs/Command/headOfPersonnel.yml new file mode 100644 index 00000000000..0de2d88e71b --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Command/headOfPersonnel.yml @@ -0,0 +1,413 @@ +# Head Of Personnel +# Backpacks +- type: loadout + id: LoadoutHeadOfPersonnelBackpacksBackpackFilled + category: JobsCommandHeadOfPersonnel + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfPersonnelBackpacks + - !type:CharacterJobRequirement + jobs: + - HeadOfPersonnel + items: + - ClothingBackpackHOPFilled + +- type: loadout + id: LoadoutHeadOfPersonnelBackpacksSatchelFilled + category: JobsCommandHeadOfPersonnel + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfPersonnelBackpacks + - !type:CharacterJobRequirement + jobs: + - HeadOfPersonnel + items: + - ClothingBackpackSatchelHOPFilled + +- type: loadout + id: LoadoutHeadOfPersonnelBackpacksDuffelFilled + category: JobsCommandHeadOfPersonnel + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfPersonnelBackpacks + - !type:CharacterJobRequirement + jobs: + - HeadOfPersonnel + items: + - ClothingBackpackDuffelHOPFilled + +- type: loadout + id: LoadoutCommandHOPBackIan + category: JobsCommandHeadOfPersonnel + cost: 0 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfPersonnelBackpacks + - !type:CharacterJobRequirement + jobs: + - HeadOfPersonnel + items: + - ClothingBackpackIan + +- type: loadout + id: LoadoutCommandHOPBackIanFilled + category: JobsCommandHeadOfPersonnel + cost: 0 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfPersonnelBackpacks + - !type:CharacterJobRequirement + jobs: + - HeadOfPersonnel + items: + - ClothingBackpackIanFilled + +# Belt +- type: loadout + id: LoadoutHeadOfPersonnelBeltClipboard + category: JobsCommandHeadOfPersonnel + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfPersonnelBelt + - !type:CharacterJobRequirement + jobs: + - HeadOfPersonnel + items: + - BoxFolderClipboard + +# Ears + +# Equipment +- type: loadout + id: LoadoutHeadOfPersonnelCigarCase + category: JobsCommandHeadOfPersonnel + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfPersonnelTrinkets + - !type:CharacterJobRequirement + jobs: + - HeadOfPersonnel + items: + - CigarGoldCase + +- type: loadout + id: LoadoutHeadOfPersonnelBookIanDossier + category: JobsCommandHeadOfPersonnel + cost: 0 + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfPersonnelTrinkets + - !type:CharacterJobRequirement + jobs: + - HeadOfPersonnel + items: + - BookIanDossier + +# Eyes + +# Gloves +- type: loadout + id: LoadoutHeadOfPersonnelGlovesHoP + category: JobsCommandHeadOfPersonnel + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfPersonnelGloves + - !type:CharacterJobRequirement + jobs: + - HeadOfPersonnel + items: + - ClothingHandsGlovesHop + +- type: loadout + id: LoadoutHeadOfPersonnelGlovesInspection + category: JobsCommandHeadOfPersonnel + cost: 0 + exclusive: true + customColorTint: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfPersonnelGloves + - !type:CharacterJobRequirement + jobs: + - HeadOfPersonnel + items: + - ClothingHandsGlovesInspection + +# Head +- type: loadout + id: LoadoutCommandHOPHatCap + category: JobsCommandHeadOfPersonnel + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfPersonnelHead + - !type:CharacterJobRequirement + jobs: + - HeadOfPersonnel + items: + - ClothingHeadHatHopcap + +# Id +- type: loadout + id: LoadoutHeadOfPersonnelNTPDA + category: JobsCommandHeadOfPersonnel + cost: 0 + exclusive: true + requirements: + - !type:CharacterPlaytimeRequirement + tracker: JobHeadOfPersonnel + min: 36000 # 10 hours + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfPersonnelId + - !type:CharacterJobRequirement + jobs: + - HeadOfPersonnel + items: + - HoPNTPDA + +# Neck +- type: loadout + id: LoadoutCommandHOPNeckMantle + category: JobsCommandHeadOfPersonnel + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfPersonnelNeck + - !type:CharacterJobRequirement + jobs: + - HeadOfPersonnel + items: + - ClothingNeckMantleHOP + +- type: loadout + id: LoadoutCommandHOPNeckCloak + category: JobsCommandHeadOfPersonnel + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfPersonnelNeck + - !type:CharacterJobRequirement + jobs: + - HeadOfPersonnel + items: + - ClothingNeckCloakHop + +- type: loadout + id: LoadoutCommandHOPBedsheetIan + category: JobsCommandHeadOfPersonnel + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfPersonnelNeck + - !type:CharacterJobRequirement + jobs: + - HeadOfPersonnel + items: + - BedsheetIan + +- type: loadout + id: LoadoutHeadOfPersonnelNeckGoldMedal + category: JobsCommandHeadOfPersonnel + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfPersonnelNeck + - !type:CharacterJobRequirement + jobs: + - HeadOfPersonnel + items: + - ClothingNeckGoldmedal + +# Mask + +# Outer +- type: loadout + id: LoadoutcommandHOPOuterCoatFormal + category: JobsCommandHeadOfPersonnel + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfPersonnelOuter + - !type:CharacterJobRequirement + jobs: + - HeadOfPersonnel + items: + - ClothingOuterCoatHoPFormal + +- type: loadout + id: LoadoutHeadOfPersonnelOuterWinter + category: JobsCommandHeadOfPersonnel + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfPersonnelOuter + - !type:CharacterJobRequirement + jobs: + - HeadOfPersonnel + items: + - ClothingOuterWinterHoP + +- type: loadout + id: LoadoutHeadOfPersonnelOuterArmoredCoat + category: JobsCommandHeadOfPersonnel + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfPersonnelOuter + - !type:CharacterJobRequirement + jobs: + - HeadOfPersonnel + items: + - ClothingOuterCoatHoPArmored + +- type: loadout + id: LoadoutHeadOfPersonnelOuterDuraVest + category: JobsCommandHeadOfPersonnel + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfPersonnelOuter + - !type:CharacterJobRequirement + jobs: + - HeadOfPersonnel + items: + - ClothingOuterArmorDuraVest + +# Shoes +- type: loadout + id: LoadoutHeadOfPersonnelShoesLaceup + category: JobsCommandHeadOfPersonnel + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfPersonnelShoes + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - ClothingShoesBootsLaceup + +- type: loadout + id: LoadoutHeadOfPersonnelShoesLeather + category: JobsCommandHeadOfPersonnel + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfPersonnelShoes + - !type:CharacterJobRequirement + jobs: + - Captain + items: + - ClothingShoesLeather + +- type: loadout + id: LoadoutCommandHOPShoesBootsWinter + category: JobsCommandHeadOfPersonnel + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfPersonnelShoes + - !type:CharacterJobRequirement + jobs: + - HeadOfPersonnel + items: + - ClothingShoesBootsWinterHeadOfPersonel + +# Uniforms +- type: loadout + id: LoadoutHeadOfPersonnelUniformJumpsuit + category: JobsCommandHeadOfPersonnel + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfPersonnelUniforms + - !type:CharacterJobRequirement + jobs: + - HeadOfPersonnel + items: + - ClothingUniformJumpsuitHoP + +- type: loadout + id: LoadoutHeadOfPersonnelUniformJumpskirt + category: JobsCommandHeadOfPersonnel + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfPersonnelUniforms + - !type:CharacterJobRequirement + jobs: + - HeadOfPersonnel + items: + - ClothingUniformJumpskirtHoP + +- type: loadout + id: LoadoutCommandHOPJumpsuitTurtleneckBoatswain + category: JobsCommandHeadOfPersonnel + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfPersonnelUniforms + - !type:CharacterJobRequirement + jobs: + - HeadOfPersonnel + items: + - ClothingUniformJumpsuitBoatswain + +- type: loadout + id: LoadoutCommandHOPJumpsuitMess + category: JobsCommandHeadOfPersonnel + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfPersonnelUniforms + - !type:CharacterJobRequirement + jobs: + - HeadOfPersonnel + items: + - ClothingUniformJumpsuitHoPMess + +- type: loadout + id: LoadoutCommandHOPJumpskirtMess + category: JobsCommandHeadOfPersonnel + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfPersonnelUniforms + - !type:CharacterJobRequirement + jobs: + - HeadOfPersonnel + items: + - ClothingUniformJumpskirtHoPMess diff --git a/Resources/Prototypes/Loadouts/Jobs/Command/uncategorized.yml b/Resources/Prototypes/Loadouts/Jobs/Command/uncategorized.yml new file mode 100644 index 00000000000..05628a1053b --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Command/uncategorized.yml @@ -0,0 +1,82 @@ +# Uncategorized +# Backpacks + +# Belt + +# Ears + +# Equipment +- type: loadout + id: LoadoutCommandTelescopicBaton + category: JobsCommandAUncategorized + cost: 3 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCommandSelfDefense + - !type:CharacterDepartmentRequirement + departments: + - Command + items: + - TelescopicBaton + +- type: loadout + id: LoadoutCommandDisabler + category: JobsCommandAUncategorized + cost: 2 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCommandSelfDefense + - !type:CharacterDepartmentRequirement + departments: + - Command + items: + - WeaponDisabler + +- type: loadout + id: LoadoutCommandStunBaton + category: JobsCommandAUncategorized + cost: 1 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCommandSelfDefense + - !type:CharacterDepartmentRequirement + departments: + - Command + items: + - Stunbaton + +- type: loadout + id: LoadoutCommandFlash + category: JobsCommandAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCommandSelfDefense + - !type:CharacterDepartmentRequirement + departments: + - Command + items: + - Flash + +# Eyes + +# Gloves + +# Head + +# Id + +# Neck + +# Mask + +# Outer + +# Shoes + +# Uniforms diff --git a/Resources/Prototypes/Loadouts/Jobs/Engineering/atmosphericTechnician.yml b/Resources/Prototypes/Loadouts/Jobs/Engineering/atmosphericTechnician.yml new file mode 100644 index 00000000000..67fe8a6c1d9 --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Engineering/atmosphericTechnician.yml @@ -0,0 +1,370 @@ +# Atmospheric Technician +# Backpacks +- type: loadout + id: LoadoutAtmosphericTechnicianBackpackBackpack + category: JobsEngineeringAtmosphericTechnician + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAtmosphericTechnicianBackpacks + - !type:CharacterJobRequirement + jobs: + - AtmosphericTechnician + items: + - ClothingBackpackAtmospherics + +- type: loadout + id: LoadoutAtmosphericTechnicianBackpackSatchel + category: JobsEngineeringAtmosphericTechnician + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAtmosphericTechnicianBackpacks + - !type:CharacterJobRequirement + jobs: + - AtmosphericTechnician + items: + - ClothingBackpackSatchelAtmospherics + +- type: loadout + id: LoadoutAtmosphericTechnicianBackpackDuffel + category: JobsEngineeringAtmosphericTechnician + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAtmosphericTechnicianBackpacks + - !type:CharacterJobRequirement + jobs: + - AtmosphericTechnician + items: + - ClothingBackpackDuffelAtmospherics + +# Belt +- type: loadout + id: LoadoutAtmosphericTechnicianBeltUtility + category: JobsEngineeringAtmosphericTechnician + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAtmosphericTechnicianBelt + - !type:CharacterJobRequirement + jobs: + - AtmosphericTechnician + items: + - ClothingBeltUtility + +- type: loadout + id: LoadoutAtmosphericTechnicianBeltUtilityAtmos + category: JobsEngineeringAtmosphericTechnician + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAtmosphericTechnicianBelt + - !type:CharacterJobRequirement + jobs: + - AtmosphericTechnician + items: + - ClothingBeltUtilityAtmos + +# Ears + +# Equipment +- type: loadout + id: LoadoutAtmosphericTechnicianEquipmentBoxInflatable + category: JobsEngineeringAtmosphericTechnician + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAtmosphericTechnicianEquipment + - !type:CharacterJobRequirement + jobs: + - AtmosphericTechnician + items: + - BoxInflatable + +- type: loadout + id: LoadoutAtmosphericTechnicianEquipmentMedkitOxygen + category: JobsEngineeringAtmosphericTechnician + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAtmosphericTechnicianEquipment + - !type:CharacterJobRequirement + jobs: + - AtmosphericTechnician + items: + - MedkitOxygenFilled + +- type: loadout + id: LoadoutAtmosphericTechnicianEquipmentRCD + category: JobsEngineeringAtmosphericTechnician + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAtmosphericTechnicianEquipment + - !type:CharacterJobRequirement + jobs: + - AtmosphericTechnician + items: + - RCD + - RCDAmmo + +- type: loadout + id: LoadoutAtmosphericTechnicianEquipmentPowerDrill + category: JobsEngineeringAtmosphericTechnician + cost: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAtmosphericTechnicianEquipment + - !type:CharacterJobRequirement + jobs: + - AtmosphericTechnician + items: + - PowerDrill + +- type: loadout + id: LoadoutAtmosphericTechnicianEquipmentSheetSteel + category: JobsEngineeringAtmosphericTechnician + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAtmosphericTechnicianEquipment + - !type:CharacterJobRequirement + jobs: + - AtmosphericTechnician + items: + - SheetSteel + +- type: loadout + id: LoadoutAtmosphericTechnicianEquipmentSheetSteel10 + category: JobsEngineeringAtmosphericTechnician + cost: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAtmosphericTechnicianEquipment + - !type:CharacterJobRequirement + jobs: + - AtmosphericTechnician + items: + - SheetSteel10 + +- type: loadout + id: LoadoutAtmosphericTechnicianEquipmentSheetPlasteel + category: JobsEngineeringAtmosphericTechnician + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAtmosphericTechnicianEquipment + - !type:CharacterJobRequirement + jobs: + - AtmosphericTechnician + items: + - SheetPlasteel + +- type: loadout + id: LoadoutAtmosphericTechnicianEquipmentSheetPlasteel10 + category: JobsEngineeringAtmosphericTechnician + cost: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAtmosphericTechnicianEquipment + - !type:CharacterJobRequirement + jobs: + - AtmosphericTechnician + items: + - SheetPlasteel10 + +- type: loadout + id: LoadoutAtmosphericTechnicianEquipmentSheetGlass + category: JobsEngineeringAtmosphericTechnician + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAtmosphericTechnicianEquipment + - !type:CharacterJobRequirement + jobs: + - AtmosphericTechnician + items: + - SheetGlass + +- type: loadout + id: LoadoutAtmosphericTechnicianEquipmentSheetGlass10 + category: JobsEngineeringAtmosphericTechnician + cost: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAtmosphericTechnicianEquipment + - !type:CharacterJobRequirement + jobs: + - AtmosphericTechnician + items: + - SheetGlass10 + +- type: loadout + id: LoadoutAtmosphericTechnicianEquipmentMaterialWoodPlank + category: JobsEngineeringAtmosphericTechnician + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAtmosphericTechnicianEquipment + - !type:CharacterJobRequirement + jobs: + - AtmosphericTechnician + items: + - MaterialWoodPlank + +- type: loadout + id: LoadoutAtmosphericTechnicianEquipmentMaterialWoodPlank10 + category: JobsEngineeringAtmosphericTechnician + cost: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAtmosphericTechnicianEquipment + - !type:CharacterJobRequirement + jobs: + - AtmosphericTechnician + items: + - MaterialWoodPlank10 + +- type: loadout + id: LoadoutAtmosphericTechnicianEquipmentSheetPlastic + category: JobsEngineeringAtmosphericTechnician + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAtmosphericTechnicianEquipment + - !type:CharacterJobRequirement + jobs: + - AtmosphericTechnician + items: + - SheetPlastic + +- type: loadout + id: LoadoutAtmosphericTechnicianEquipmentSheetPlastic10 + category: JobsEngineeringAtmosphericTechnician + cost: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAtmosphericTechnicianEquipment + - !type:CharacterJobRequirement + jobs: + - AtmosphericTechnician + items: + - SheetPlastic10 + +# Eyes + +# Gloves + +# Head +- type: loadout + id: LoadoutAtmosphericTechnicianChickenhead + category: JobsEngineeringAtmosphericTechnician + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAtmosphericTechnicianHead + - !type:CharacterJobRequirement + jobs: + - AtmosphericTechnician + items: + - ClothingHeadHatChickenhead +# Id + +# Neck + +# Mask +- type: loadout + id: LoadoutAtmosphericTechnicianMaskGasAtmos + category: JobsEngineeringAtmosphericTechnician + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAtmosphericTechnicianMask + - !type:CharacterJobRequirement + jobs: + - AtmosphericTechnician + items: + - ClothingMaskGasAtmos + +# Outer +- type: loadout + id: LoadoutAtmosphericTechnicianChickenSuit + category: JobsEngineeringAtmosphericTechnician + cost: 0 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAtmosphericTechnicianOuter + - !type:CharacterJobRequirement + jobs: + - AtmosphericTechnician + items: + - ClothingOuterSuitChicken + +# Shoes +- type: loadout + id: LoadoutAtmosphericTechnicianShoesWhite + category: JobsEngineeringAtmosphericTechnician + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAtmosphericTechnicianShoes + - !type:CharacterJobRequirement + jobs: + - AtmosphericTechnician + items: + - ClothingShoesColorWhite + +- type: loadout + id: LoadoutAtmosphericTechnicianShoesWork + category: JobsEngineeringAtmosphericTechnician + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAtmosphericTechnicianShoes + - !type:CharacterJobRequirement + jobs: + - AtmosphericTechnician + items: + - ClothingShoesBootsWork + +# Uniforms +- type: loadout + id: LoadingEngineeringAtmosUniformSuit + category: JobsEngineeringAtmosphericTechnician + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAtmosphericTechnicianUniforms + - !type:CharacterJobRequirement + jobs: + - AtmosphericTechnician + items: + - ClothingUniformJumpsuitAtmos + +- type: loadout + id: LoadingEngineeringAtmosUniformSkirt + category: JobsEngineeringAtmosphericTechnician + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAtmosphericTechnicianUniforms + - !type:CharacterJobRequirement + jobs: + - AtmosphericTechnician + items: + - ClothingUniformJumpskirtAtmos + diff --git a/Resources/Prototypes/Loadouts/Jobs/Engineering/chiefEngineer.yml b/Resources/Prototypes/Loadouts/Jobs/Engineering/chiefEngineer.yml new file mode 100644 index 00000000000..ab68d9b421b --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Engineering/chiefEngineer.yml @@ -0,0 +1,542 @@ +# Chief Engineer +# Backpacks +- type: loadout + id: LoadoutEngineeringChiefEngineerBackpackBackpack + category: JobsEngineeringChiefEngineer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerBackpack + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - ClothingBackpackChiefEngineerFilled + +- type: loadout + id: LoadoutEngineeringChiefEngineerBackpackSatchel + category: JobsEngineeringChiefEngineer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerBackpack + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - ClothingBackpackSatchelChiefEngineerFilled + +- type: loadout + id: LoadoutEngineeringChiefEngineerBackpackDuffel + category: JobsEngineeringChiefEngineer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerBackpack + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - ClothingBackpackDuffelChiefEngineerFilled + +# Belt +- type: loadout + id: LoadoutChiefEngineerBelt + category: JobsEngineeringChiefEngineer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerBelt + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - ClothingBeltChiefEngineer + +- type: loadout + id: LoadoutChiefEngineerBeltFilled + category: JobsEngineeringChiefEngineer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerBelt + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - ClothingBeltChiefEngineerFilled + +# Ears + +# Equipment +- type: loadout + id: LoadoutChiefEngineerEquipmentBoxInflatable + category: JobsEngineeringChiefEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - BoxInflatable + +- type: loadout + id: LoadoutChiefEngineerEquipmentMedkitOxygen + category: JobsEngineeringChiefEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - MedkitOxygenFilled + +- type: loadout + id: LoadoutChiefEngineerEquipmentRCD + category: JobsEngineeringChiefEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - RCD + - RCDAmmo + +- type: loadout + id: LoadoutChiefEngineerEquipmentRCDAmmoSpare + category: JobsEngineeringChiefEngineer + cost: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - RCDAmmo + - RCDAmmo + +- type: loadout + id: LoadoutChiefEngineerEquipmentSheetSteel + category: JobsEngineeringChiefEngineer + cost: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - SheetSteel + +- type: loadout + id: LoadoutChiefEngineerEquipmentSheetSteel10 + category: JobsEngineeringChiefEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - SheetSteel10 + +- type: loadout + id: LoadoutChiefEngineerEquipmentSheetPlasteel + category: JobsEngineeringChiefEngineer + cost: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - SheetPlasteel + +- type: loadout + id: LoadoutChiefEngineerEquipmentSheetPlasteel10 + category: JobsEngineeringChiefEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - SheetPlasteel10 + +- type: loadout + id: LoadoutChiefEngineerEquipmentSheetGlass + category: JobsEngineeringChiefEngineer + cost: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - SheetGlass + +- type: loadout + id: LoadoutChiefEngineerEquipmentSheetGlass10 + category: JobsEngineeringChiefEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - SheetGlass10 + +- type: loadout + id: LoadoutChiefEngineerEquipmentMaterialWoodPlank + category: JobsEngineeringChiefEngineer + cost: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - MaterialWoodPlank + +- type: loadout + id: LoadoutChiefEngineerEquipmentMaterialWoodPlank10 + category: JobsEngineeringChiefEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - MaterialWoodPlank10 + +- type: loadout + id: LoadoutChiefEngineerEquipmentSheetRGlass + category: JobsEngineeringChiefEngineer + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - SheetRGlass + +- type: loadout + id: LoadoutChiefEngineerEquipmentSheetRGlass10 + category: JobsEngineeringChiefEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - SheetRGlass10 + +- type: loadout + id: LoadoutChiefEngineerEquipmentSheetUGlass + category: JobsEngineeringChiefEngineer + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - SheetUGlass + +- type: loadout + id: LoadoutChiefEngineerEquipmentSheetUGlass10 + category: JobsEngineeringChiefEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - SheetUGlass10 + +- type: loadout + id: LoadoutChiefEngineerEquipmentSheetRUGlass + category: JobsEngineeringChiefEngineer + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - SheetRUGlass + +- type: loadout + id: LoadoutChiefEngineerEquipmentSheetRUGlass10 + category: JobsEngineeringChiefEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - SheetRUGlass10 + +- type: loadout + id: LoadoutChiefEngineerEquipmentSheetPGlass + category: JobsEngineeringChiefEngineer + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - SheetPGlass + +- type: loadout + id: LoadoutChiefEngineerEquipmentSheetPGlass10 + category: JobsEngineeringChiefEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - SheetPGlass10 + +- type: loadout + id: LoadoutChiefEngineerEquipmentSheetRPGlass + category: JobsEngineeringChiefEngineer + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - SheetRPGlass + +- type: loadout + id: LoadoutChiefEngineerEquipmentSheetRPGlass10 + category: JobsEngineeringChiefEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - SheetRPGlass10 + +- type: loadout + id: LoadoutChiefEngineerEquipmentSheetClockworkGlass + category: JobsEngineeringChiefEngineer + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - SheetClockworkGlass + +- type: loadout + id: LoadoutChiefEngineerEquipmentSheetClockworkGlass10 + category: JobsEngineeringChiefEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - SheetClockworkGlass10 + +- type: loadout + id: LoadoutChiefEngineerEquipmentSheetPlastic + category: JobsEngineeringChiefEngineer + cost: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - SheetPlastic + +- type: loadout + id: LoadoutChiefEngineerEquipmentSheetPlastic10 + category: JobsEngineeringChiefEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - SheetPlastic10 + +# Eyes + +# Gloves + +# Head + +# Id +- type: loadout + id: LoadoutChiefEngineerNTPDA + category: JobsEngineeringChiefEngineer + cost: 0 + exclusive: true + requirements: + - !type:CharacterPlaytimeRequirement + tracker: JobChiefEngineer + min: 36000 # 10 hours + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerId + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - CENTPDA + +# Neck +- type: loadout + id: LoadoutEngineeringChiefEngineerNeckMantle + category: JobsEngineeringChiefEngineer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerNeck + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - ClothingNeckMantleCE + +- type: loadout + id: LoadoutEngineeringChiefEngineerNeckCloak + category: JobsEngineeringChiefEngineer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerNeck + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - ClothingNeckCloakCe + +- type: loadout + id: LoadoutEngineeringChiefEngineerNeckEngineerMedal + category: JobsEngineeringChiefEngineer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerNeck + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - ClothingNeckEngineermedal + +# Mask + +# Outer +- type: loadout + id: LoadoutCommandCEOuterWinter + category: JobsEngineeringChiefEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerOuter + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - ClothingOuterWinterCE + +# Shoes +- type: loadout + id: LoadoutChiefEngineerShoesBootsWinter + category: JobsEngineeringChiefEngineer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerShoes + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - ClothingShoesBootsWinterChiefEngineer + +# Uniforms +- type: loadout + id: LoadoutChiefEngineerUniformSuit + category: JobsEngineeringChiefEngineer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerUniforms + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - ClothingUniformJumpsuitChiefEngineer + +- type: loadout + id: LoadoutEngineeringChiefEngineerUniformSkirt + category: JobsEngineeringChiefEngineer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefEngineerUniforms + - !type:CharacterJobRequirement + jobs: + - ChiefEngineer + items: + - ClothingUniformJumpskirtChiefEngineer diff --git a/Resources/Prototypes/Loadouts/Jobs/Engineering/seniorEngineer.yml b/Resources/Prototypes/Loadouts/Jobs/Engineering/seniorEngineer.yml new file mode 100644 index 00000000000..53a1cf3cc86 --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Engineering/seniorEngineer.yml @@ -0,0 +1,458 @@ +# Senior Engineer +# Backpacks + +# Belt +- type: loadout + id: LoadoutSeniorEngineerBeltUtility + category: JobsEngineeringSeniorEngineer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerBelt + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - ClothingBeltUtility + +- type: loadout + id: LoadoutSeniorEngineerBeltUtilityEngineering + category: JobsEngineeringSeniorEngineer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerBelt + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - ClothingBeltUtilityEngineering + +- type: loadout + id: LoadoutSeniorEngineerBeltUtilityAtmos + category: JobsEngineeringSeniorEngineer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerBelt + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - ClothingBeltUtilityAtmos + +# Ears + +# Equipment +- type: loadout + id: LoadoutSeniorEngineerEquipmentBoxInflatable + category: JobsEngineeringSeniorEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - BoxInflatable + +- type: loadout + id: LoadoutSeniorEngineerEquipmentMedkitOxygen + category: JobsEngineeringSeniorEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - MedkitOxygenFilled + +- type: loadout + id: LoadoutSeniorEngineerEquipmentRCD + category: JobsEngineeringSeniorEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - RCD + - RCDAmmo + +- type: loadout + id: LoadoutSeniorEngineerEquipmentRCDAmmo1 + category: JobsEngineeringSeniorEngineer + cost: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - RCDAmmo + +- type: loadout + id: LoadoutSeniorEngineerEquipmentRCDAmmo2 + category: JobsEngineeringSeniorEngineer + cost: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - RCDAmmo + +- type: loadout + id: LoadoutSeniorEngineerEquipmentPowerDrill + category: JobsEngineeringSeniorEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - PowerDrill + +- type: loadout + id: LoadoutSeniorEngineerEquipmentSheetSteel + category: JobsEngineeringSeniorEngineer + cost: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - SheetSteel + +- type: loadout + id: LoadoutSeniorEngineerEquipmentSheetSteel10 + category: JobsEngineeringSeniorEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - SheetSteel10 + +- type: loadout + id: LoadoutSeniorEngineerEquipmentSheetPlasteel + category: JobsEngineeringSeniorEngineer + cost: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - SheetPlasteel + +- type: loadout + id: LoadoutSeniorEngineerEquipmentSheetPlasteel10 + category: JobsEngineeringSeniorEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - SheetPlasteel10 + +- type: loadout + id: LoadoutSeniorEngineerEquipmentSheetGlass + category: JobsEngineeringSeniorEngineer + cost: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - SheetGlass + +- type: loadout + id: LoadoutSeniorEngineerEquipmentSheetGlass10 + category: JobsEngineeringSeniorEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - SheetGlass10 + +- type: loadout + id: LoadoutSeniorEngineerEquipmentMaterialWoodPlank + category: JobsEngineeringSeniorEngineer + cost: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - MaterialWoodPlank + +- type: loadout + id: LoadoutSeniorEngineerEquipmentMaterialWoodPlank10 + category: JobsEngineeringSeniorEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - MaterialWoodPlank10 + +- type: loadout + id: LoadoutSeniorEngineerEquipmentSheetRGlass + category: JobsEngineeringSeniorEngineer + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - SheetRGlass + +- type: loadout + id: LoadoutSeniorEngineerEquipmentSheetRGlass10 + category: JobsEngineeringSeniorEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - SheetRGlass10 + +- type: loadout + id: LoadoutSeniorEngineerEquipmentSheetUGlass + category: JobsEngineeringSeniorEngineer + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - SheetUGlass + +- type: loadout + id: LoadoutSeniorEngineerEquipmentSheetUGlass10 + category: JobsEngineeringSeniorEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - SheetUGlass10 + +- type: loadout + id: LoadoutSeniorEngineerEquipmentSheetRUGlass + category: JobsEngineeringSeniorEngineer + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - SheetRUGlass + +- type: loadout + id: LoadoutSeniorEngineerEquipmentSheetRUGlass10 + category: JobsEngineeringSeniorEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - SheetRUGlass10 + +- type: loadout + id: LoadoutSeniorEngineerEquipmentSheetPGlass + category: JobsEngineeringSeniorEngineer + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - SheetPGlass + +- type: loadout + id: LoadoutSeniorEngineerEquipmentSheetPGlass10 + category: JobsEngineeringSeniorEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - SheetPGlass10 + +- type: loadout + id: LoadoutSeniorEngineerEquipmentSheetRPGlass + category: JobsEngineeringSeniorEngineer + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - SheetRPGlass + +- type: loadout + id: LoadoutSeniorEngineerEquipmentSheetRPGlass10 + category: JobsEngineeringSeniorEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - SheetRPGlass10 + +- type: loadout + id: LoadoutSeniorEngineerEquipmentSheetClockworkGlass + category: JobsEngineeringSeniorEngineer + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - SheetClockworkGlass + +- type: loadout + id: LoadoutSeniorEngineerEquipmentSheetClockworkGlass10 + category: JobsEngineeringSeniorEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - SheetClockworkGlass10 + +- type: loadout + id: LoadoutSeniorEngineerEquipmentSheetPlastic + category: JobsEngineeringSeniorEngineer + cost: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - SheetPlastic + +- type: loadout + id: LoadoutSeniorEngineerEquipmentSheetPlastic10 + category: JobsEngineeringSeniorEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - SheetPlastic10 + +# Eyes + +# Gloves + +# Head + +# Id + +# Mask + +# Neck + +# Outer + +# Shoes + +# Uniforms +- type: loadout + id: LoadoutEngineeringUniformJumpskirtSenior + category: JobsEngineeringSeniorEngineer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerUniforms + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - ClothingUniformJumpskirtSeniorEngineer + +- type: loadout + id: LoadoutEngineeringUniformJumpsuitSenior + category: JobsEngineeringSeniorEngineer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorEngineerUniforms + - !type:CharacterJobRequirement + jobs: + - SeniorEngineer + items: + - ClothingUniformJumpsuitSeniorEngineer diff --git a/Resources/Prototypes/Loadouts/Jobs/Engineering/stationEngineer.yml b/Resources/Prototypes/Loadouts/Jobs/Engineering/stationEngineer.yml new file mode 100644 index 00000000000..96f89379ccf --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Engineering/stationEngineer.yml @@ -0,0 +1,220 @@ +# Station Engineer +# Backpack + +# Belt + +# Ears + +# Equipment +- type: loadout + id: LoadoutStationEngineerEquipmentBoxInflatable + category: JobsEngineeringStationEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutStationEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - StationEngineer + items: + - BoxInflatable + +- type: loadout + id: LoadoutStationEngineerEquipmentRCD + category: JobsEngineeringStationEngineer + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutStationEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - StationEngineer + items: + - RCD + - RCDAmmo + +- type: loadout + id: LoadoutStationEngineerEquipmentPowerDrill + category: JobsEngineeringStationEngineer + cost: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutStationEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - StationEngineer + items: + - PowerDrill + +- type: loadout + id: LoadoutStationEngineerEquipmentSheetSteel + category: JobsEngineeringStationEngineer + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutStationEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - StationEngineer + items: + - SheetSteel + +- type: loadout + id: LoadoutStationEngineerEquipmentSheetSteel10 + category: JobsEngineeringStationEngineer + cost: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutStationEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - StationEngineer + items: + - SheetSteel10 + +- type: loadout + id: LoadoutStationEngineerEquipmentSheetPlasteel + category: JobsEngineeringStationEngineer + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutStationEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - StationEngineer + items: + - SheetPlasteel + +- type: loadout + id: LoadoutStationEngineerEquipmentSheetPlasteel10 + category: JobsEngineeringStationEngineer + cost: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutStationEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - StationEngineer + items: + - SheetPlasteel10 + +- type: loadout + id: LoadoutStationEngineerEquipmentSheetGlass + category: JobsEngineeringStationEngineer + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutStationEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - StationEngineer + items: + - SheetGlass + +- type: loadout + id: LoadoutStationEngineerEquipmentSheetGlass10 + category: JobsEngineeringStationEngineer + cost: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutStationEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - StationEngineer + items: + - SheetGlass10 + +- type: loadout + id: LoadoutStationEngineerEquipmentMaterialWoodPlank + category: JobsEngineeringStationEngineer + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutStationEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - StationEngineer + items: + - MaterialWoodPlank + +- type: loadout + id: LoadoutStationEngineerEquipmentMaterialWoodPlank10 + category: JobsEngineeringStationEngineer + cost: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutStationEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - StationEngineer + items: + - MaterialWoodPlank10 + +- type: loadout + id: LoadoutStationEngineerEquipmentSheetPlastic + category: JobsEngineeringStationEngineer + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutStationEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - StationEngineer + items: + - SheetPlastic + +- type: loadout + id: LoadoutStationEngineerEquipmentSheetPlastic10 + category: JobsEngineeringStationEngineer + cost: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutStationEngineerEquipment + - !type:CharacterJobRequirement + jobs: + - StationEngineer + items: + - SheetPlastic10 + +# Eyes + +# Gloves + +# Head + +# Id + +# Neck + +# Mask + +# Outer + +# Shoes + +# Uniforms +- type: loadout + id: LoadoutStationEngineerUniformsSuit + category: JobsEngineeringStationEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutStationEngineerUniforms + - !type:CharacterJobRequirement + jobs: + - StationEngineer + items: + - ClothingUniformJumpsuitEngineering + +- type: loadout + id: LoadoutStationEngineerUniformsSkirt + category: JobsEngineeringStationEngineer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutStationEngineerUniforms + - !type:CharacterJobRequirement + jobs: + - StationEngineer + items: + - ClothingUniformJumpskirtEngineering diff --git a/Resources/Prototypes/Loadouts/Jobs/Engineering/technicalAssistant.yml b/Resources/Prototypes/Loadouts/Jobs/Engineering/technicalAssistant.yml new file mode 100644 index 00000000000..9d7f88d40ef --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Engineering/technicalAssistant.yml @@ -0,0 +1,131 @@ +# Technical Assistant +# Backpacks + +# Belt + +# Ears + +# Equipment +- type: loadout + id: LoadoutTechnicalAssistantEquipmentBoxInflatable + category: JobsEngineeringTechnicalAssistant + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutTechnicalAssistantEquipment + - !type:CharacterJobRequirement + jobs: + - TechnicalAssistant + items: + - BoxInflatable + +- type: loadout + id: LoadoutTechnicalAssistantEquipmentSheetSteel10 + category: JobsEngineeringTechnicalAssistant + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutTechnicalAssistantEquipment + - !type:CharacterJobRequirement + jobs: + - TechnicalAssistant + items: + - SheetSteel10 + +- type: loadout + id: LoadoutTechnicalAssistantEquipmentSheetPlasteel10 + category: JobsEngineeringTechnicalAssistant + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutTechnicalAssistantEquipment + - !type:CharacterJobRequirement + jobs: + - TechnicalAssistant + items: + - SheetPlasteel10 + +- type: loadout + id: LoadoutTechnicalAssistantEquipmentSheetGlass10 + category: JobsEngineeringTechnicalAssistant + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutTechnicalAssistantEquipment + - !type:CharacterJobRequirement + jobs: + - TechnicalAssistant + items: + - SheetGlass10 + +- type: loadout + id: LoadoutTechnicalAssistantEquipmentMaterialWoodPlank10 + category: JobsEngineeringTechnicalAssistant + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutTechnicalAssistantEquipment + - !type:CharacterJobRequirement + jobs: + - TechnicalAssistant + items: + - MaterialWoodPlank10 + + +- type: loadout + id: LoadoutTechnicalAssistantEquipmentSheetPlastic10 + category: JobsEngineeringTechnicalAssistant + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutTechnicalAssistantEquipment + - !type:CharacterJobRequirement + jobs: + - TechnicalAssistant + items: + - SheetPlastic10 + +# Eyes + +# Gloves + +# Head + +# Id + +# Neck + +# Mask + +# Outer + +# Shoes + +# Uniforms +- type: loadout + id: LoadoutTechnicalAssistantSuit + category: JobsEngineeringTechnicalAssistant + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutTechnicalAssistantUniforms + - !type:CharacterJobRequirement + jobs: + - TechnicalAssistant + items: + - ClothingUniformJumpsuitColorYellow + +- type: loadout + id: LoadoutTechnicalAssistantSkirt + category: JobsEngineeringTechnicalAssistant + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutTechnicalAssistantUniforms + - !type:CharacterJobRequirement + jobs: + - TechnicalAssistant + items: + - ClothingUniformJumpskirtColorYellow diff --git a/Resources/Prototypes/Loadouts/Jobs/Engineering/uncategorized.yml b/Resources/Prototypes/Loadouts/Jobs/Engineering/uncategorized.yml new file mode 100644 index 00000000000..391aa975e52 --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Engineering/uncategorized.yml @@ -0,0 +1,258 @@ +# All Engineering Department Jobs +# Backpacks +- type: loadout + id: LoadoutBackpackEngineering + category: JobsEngineeringAAUncategorized + cost: 0 + exclusive: true + items: + - ClothingBackpackEngineering + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEngineeringBackpacks + - !type:CharacterDepartmentRequirement + departments: + - Engineering + +- type: loadout + id: LoadoutBackpackSatchelEngineering + category: JobsEngineeringAAUncategorized + cost: 0 + exclusive: true + items: + - ClothingBackpackSatchelEngineering + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEngineeringBackpacks + - !type:CharacterDepartmentRequirement + departments: + - Engineering + +- type: loadout + id: LoadoutBackpackDuffelEngineering + category: JobsEngineeringAAUncategorized + cost: 0 + exclusive: true + items: + - ClothingBackpackDuffelEngineering + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEngineeringBackpacks + - !type:CharacterDepartmentRequirement + departments: + - Engineering +# Belt + +# Ears + +# Equipment + +# Eyes +- type: loadout + id: LoadoutEngineeringEyesMeson + category: JobsEngineeringAAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEyesEngineering + - !type:CharacterDepartmentRequirement + departments: + - Engineering + items: + - ClothingEyesGlassesMeson + +# Gloves +- type: loadout + id: LoadoutEngineeringGlovesInsulated + category: JobsEngineeringAAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEngineeringGloves + - !type:CharacterDepartmentRequirement + departments: + - Engineering + items: + - ClothingHandsGlovesColorYellow + +- type: loadout + id: LoadoutEngineeringGlovesCombat + category: JobsEngineeringAAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEngineeringGloves + - !type:CharacterDepartmentRequirement + departments: + - Engineering + items: + - ClothingHandsGlovesCombat + +- type: loadout + id: LoadoutEngineeringGlovesMerc + category: JobsEngineeringAAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEngineeringGloves + - !type:CharacterDepartmentRequirement + departments: + - Engineering + items: + - ClothingHandsMercGlovesCombat + +# Head +- type: loadout + id: LoadoutEngineeringHeadBeret + category: JobsEngineeringAAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEngineeringHead + - !type:CharacterDepartmentRequirement + departments: + - Engineering + items: + - ClothingHeadHatBeretEngineering + +- type: loadout + id: LoadoutEngineeringHeadHardhatBlue + category: JobsEngineeringAAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEngineeringHead + - !type:CharacterDepartmentRequirement + departments: + - Engineering + items: + - ClothingHeadHatHardhatBlue + +- type: loadout + id: LoadoutEngineeringHeadHardhatOrange + category: JobsEngineeringAAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEngineeringHead + - !type:CharacterDepartmentRequirement + departments: + - Engineering + items: + - ClothingHeadHatHardhatOrange + +- type: loadout + id: LoadoutEngineeringHeadHardhatYellow + category: JobsEngineeringAAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEngineeringHead + - !type:CharacterDepartmentRequirement + departments: + - Engineering + items: + - ClothingHeadHatHardhatYellow + +- type: loadout + id: LoadoutEngineeringHeadHardhatWhite + category: JobsEngineeringAAUncategorized + cost: 0 + exclusive: true + customColorTint: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEngineeringHead + - !type:CharacterDepartmentRequirement + departments: + - Engineering + items: + - ClothingHeadHatHardhatWhite + +- type: loadout + id: LoadoutEngineeringHeadHardhatRed + category: JobsEngineeringAAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEngineeringHead + - !type:CharacterDepartmentRequirement + departments: + - Engineering + items: + - ClothingHeadHatHardhatRed + +# Id + +# Neck + +# Mask + +# Outer +- type: loadout + id: LoadoutEngineeringOuterHazard + category: JobsEngineeringAAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEngineeringOuter + - !type:CharacterDepartmentRequirement + departments: + - Engineering + items: + - ClothingOuterVestHazard + +# Shoes + +# Uniforms +- type: loadout + id: LoadoutEngineeringUniformSuit + category: JobsEngineeringAAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEngineeringUniforms + - !type:CharacterJobRequirement + jobs: + - StationEngineer + items: + - ClothingUniformJumpsuitEngineering + +- type: loadout + id: LoadoutEngineeringUniformSkirt + category: JobsEngineeringAAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEngineeringUniforms + - !type:CharacterJobRequirement + jobs: + - StationEngineer + items: + - ClothingUniformJumpskirtEngineering + +- type: loadout + id: LoadoutEngineeringUniformHazard + category: JobsEngineeringAAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEngineeringUniforms + - !type:CharacterJobRequirement + jobs: + - StationEngineer + items: + - ClothingUniformJumpsuitEngineeringHazard diff --git a/Resources/Prototypes/Loadouts/Jobs/Epistemics/acolyte.yml b/Resources/Prototypes/Loadouts/Jobs/Epistemics/acolyte.yml new file mode 100644 index 00000000000..2f14ad3ef28 --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Epistemics/acolyte.yml @@ -0,0 +1,91 @@ +# Acolyte +# Backpacks + +# Belt + +# Ears + +# Equipment +- type: loadout + id: LoadoutAcolyteEquipmentCandles + category: JobsEpistemicsAcolyte + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAcolyteEquipment + - !type:CharacterJobRequirement + jobs: + - Scientist + items: + - BoxCandle + +- type: loadout + id: LoadoutAcolyteEquipmentCandlesSmall + category: JobsEpistemicsAcolyte + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAcolyteEquipment + - !type:CharacterJobRequirement + jobs: + - Scientist + items: + - BoxCandleSmall + +- type: loadout + id: LoadoutAcolytePillCanisterSpaceDrugs + category: JobsEpistemicsAcolyte + cost: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAcolyteEquipment + - !type:CharacterJobRequirement + jobs: + - Scientist + items: + - PillCanisterSpaceDrugs + +# Eyes + +# Gloves + +# Head + +# Id + +# Neck + +# Mask + +# Outer + +# Shoes + +# Uniforms +- type: loadout + id: LoadoutAcolyteUniformSuit + category: JobsEpistemicsAcolyte + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAcolyteUniforms + - !type:CharacterJobRequirement + jobs: + - Scientist + items: + - ClothingUniformJumpsuitScientist + +- type: loadout + id: LoadoutAcolyteUniformSkirt + category: JobsEpistemicsAcolyte + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutAcolyteUniforms + - !type:CharacterJobRequirement + jobs: + - Scientist + items: + - ClothingUniformJumpskirtScientist diff --git a/Resources/Prototypes/Loadouts/Jobs/Epistemics/cataloger.yml b/Resources/Prototypes/Loadouts/Jobs/Epistemics/cataloger.yml new file mode 100644 index 00000000000..a2deba33abc --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Epistemics/cataloger.yml @@ -0,0 +1,202 @@ +# Cataloger +# Backpacks + +# Belt + +# Ears + +# Equipment +#- type: loadout +# id: LoadoutCatalogerEquipmentPotentiometer +# category: JobsEpistemicsCataloger +# cost: 0 +# requirements: +# - !type:CharacterItemGroupRequirement +# group: LoadoutCataloguerUniforms +# - !type:CharacterJobRequirement +# jobs: +# - Librarian +# items: +# - PsiPotentiometerHandheld + +- type: loadout + id: LoadoutCatalogerEquipmentCandles + category: JobsEpistemicsCataloger + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCatalogerEquipment + - !type:CharacterJobRequirement + jobs: + - Librarian + items: + - BoxCandle + +- type: loadout + id: LoadoutCatalogerEquipmentCandlesSmall + category: JobsEpistemicsCataloger + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCatalogerEquipment + - !type:CharacterJobRequirement + jobs: + - Librarian + items: + - BoxCandleSmall + +- type: loadout + id: LoadoutCatalogerPillCanisterSpaceDrugs + category: JobsEpistemicsCataloger + cost: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCatalogerEquipment + - !type:CharacterJobRequirement + jobs: + - Librarian + items: + - PillCanisterSpaceDrugs + +# Eyes + +# Gloves + +# Head + +# Id + +# Neck + +# Mask + +# Outer + +# Shoes + +# Uniforms +- type: loadout + id: LoadoutScienceJumpsuitLibrarianNt + category: JobsEpistemicsCataloger + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCatalogerUniforms + - !type:CharacterJobRequirement + jobs: + - Librarian + items: + - ClothingUniformJumpsuitLibrarianNt + +- type: loadout + id: LoadoutScienceJumpsuitLibrarianIdris + category: JobsEpistemicsCataloger + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCatalogerUniforms + - !type:CharacterJobRequirement + jobs: + - Librarian + items: + - ClothingUniformJumpsuitLibrarianIdris + +- type: loadout + id: LoadoutScienceJumpsuitLibrarianOrion + category: JobsEpistemicsCataloger + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCatalogerUniforms + - !type:CharacterJobRequirement + jobs: + - Librarian + items: + - ClothingUniformJumpsuitLibrarianOrion + +- type: loadout + id: LoadoutScienceJumpsuitLibrarianHeph + category: JobsEpistemicsCataloger + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCatalogerUniforms + - !type:CharacterJobRequirement + jobs: + - Librarian + items: + - ClothingUniformJumpsuitLibrarianHeph + +- type: loadout + id: LoadoutScienceJumpsuitLibrarianPMCG + category: JobsEpistemicsCataloger + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCatalogerUniforms + - !type:CharacterJobRequirement + jobs: + - Librarian + items: + - ClothingUniformJumpsuitLibrarianPMCG + +- type: loadout + id: LoadoutScienceJumpsuitLibrarianZav + category: JobsEpistemicsCataloger + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCatalogerUniforms + - !type:CharacterJobRequirement + jobs: + - Librarian + items: + - ClothingUniformJumpsuitLibrarianZav + +- type: loadout + id: LoadoutScienceJumpsuitLibrarianZeng + category: JobsEpistemicsCataloger + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCatalogerUniforms + - !type:CharacterJobRequirement + jobs: + - Librarian + items: + - ClothingUniformJumpsuitLibrarianZeng + +- type: loadout + id: LoadoutScienceJumpsuitLibrarian + category: JobsEpistemicsCataloger + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCatalogerUniforms + - !type:CharacterJobRequirement + jobs: + - Librarian + items: + - ClothingUniformJumpsuitLibrarian + +- type: loadout + id: LoadoutScienceJumpskirtLibrarian + category: JobsEpistemicsCataloger + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCatalogerUniforms + - !type:CharacterJobRequirement + jobs: + - Librarian + items: + - ClothingUniformJumpskirtLibrarian diff --git a/Resources/Prototypes/Loadouts/Jobs/Epistemics/chaplain.yml b/Resources/Prototypes/Loadouts/Jobs/Epistemics/chaplain.yml new file mode 100644 index 00000000000..05e01148b22 --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Epistemics/chaplain.yml @@ -0,0 +1,286 @@ +# Chaplain +# Backpacks + +# Belt + +# Ears + +# Equipment +- type: loadout + id: LoadoutChaplainBible + category: JobsEpistemicsChaplain + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChaplainEquipment + - !type:CharacterJobRequirement + jobs: + - Chaplain + items: + - Bible + +- type: loadout + id: LoadoutChaplainStamp + category: JobsEpistemicsChaplain + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChaplainEquipment + - !type:CharacterJobRequirement + jobs: + - Chaplain + items: + - RubberStampChaplain + +- type: loadout + id: LoadoutChaplainEquipmentCandles + category: JobsEpistemicsChaplain + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChaplainEquipment + - !type:CharacterJobRequirement + jobs: + - Chaplain + items: + - BoxCandle + +- type: loadout + id: LoadoutChaplainEquipmentCandlesSmall + category: JobsEpistemicsChaplain + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChaplainEquipment + - !type:CharacterJobRequirement + jobs: + - Chaplain + items: + - BoxCandleSmall + +- type: loadout + id: LoadoutChaplainPillCanisterSpaceDrugs + category: JobsEpistemicsChaplain + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChaplainEquipment + - !type:CharacterJobRequirement + jobs: + - Chaplain + items: + - PillCanisterSpaceDrugs + +# Eyes + +# Gloves + +# Head +- type: loadout + id: LoadoutScienceHeadHatHoodNunHood + category: JobsEpistemicsChaplain + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChaplainHead + - !type:CharacterJobRequirement + jobs: + - Chaplain + items: + - ClothingHeadHatHoodNunHood + +- type: loadout + id: LoadoutScienceHeadHatPlaguedoctor + category: JobsEpistemicsChaplain + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChaplainHead + - !type:CharacterJobRequirement + jobs: + - Chaplain + items: + - ClothingHeadHatPlaguedoctor + +- type: loadout + id: LoadoutScienceHeadHatWitch + category: JobsEpistemicsChaplain + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChaplainHead + - !type:CharacterJobRequirement + jobs: + - Chaplain + items: + - ClothingHeadHatWitch + +- type: loadout + id: LoadoutScienceHeadHatWitch1 + category: JobsEpistemicsChaplain + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChaplainHead + - !type:CharacterJobRequirement + jobs: + - Chaplain + items: + - ClothingHeadHatWitch1 + +# Id + +# Neck +- type: loadout + id: LoadoutScienceNeckStoleChaplain + category: JobsEpistemicsChaplain + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChaplainNeck + - !type:CharacterJobRequirement + jobs: + - Chaplain + items: + - ClothingNeckStoleChaplain + +# Mask +- type: loadout + id: LoadoutScienceMaskPlague + category: JobsEpistemicsChaplain + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChaplainMask + - !type:CharacterJobRequirement + jobs: + - Chaplain + items: + - ClothingMaskPlague + +# Outer +- type: loadout + id: LoadoutScienceOuterPlagueSuit + category: JobsEpistemicsChaplain + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChaplainOuter + - !type:CharacterJobRequirement + jobs: + - Chaplain + items: + - ClothingOuterPlagueSuit + +- type: loadout + id: LoadoutScienceOuterNunRobe + category: JobsEpistemicsChaplain + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChaplainOuter + - !type:CharacterJobRequirement + jobs: + - Chaplain + items: + - ClothingOuterNunRobe + +- type: loadout + id: LoadoutScienceOuterHoodieBlack + category: JobsEpistemicsChaplain + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChaplainOuter + - !type:CharacterJobRequirement + jobs: + - Chaplain + items: + - ClothingOuterHoodieBlack + +- type: loadout + id: LoadoutScienceOuterHoodieChaplain + category: JobsEpistemicsChaplain + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChaplainOuter + - !type:CharacterJobRequirement + jobs: + - Chaplain + items: + - ClothingOuterHoodieChaplain + +# Shoes + +# Uniforms +- type: loadout + id: LoadoutChaplainJumpsuit + category: JobsEpistemicsChaplain + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChaplainUniforms + - !type:CharacterJobRequirement + jobs: + - Chaplain + items: + - ClothingUniformJumpsuitChaplain + +- type: loadout + id: LoadoutChaplainJumpskirt + category: JobsEpistemicsChaplain + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChaplainUniforms + - !type:CharacterJobRequirement + jobs: + - Chaplain + items: + - ClothingUniformJumpskirtChaplain + +- type: loadout + id: LoadoutScienceUniformJumpsuitMonasticRobeDark + category: JobsEpistemicsChaplain + cost: 0 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChaplainUniforms + - !type:CharacterJobRequirement + jobs: + - Chaplain + items: + - ClothingUniformJumpsuitMonasticRobeDark + +- type: loadout + id: LoadoutScienceUniformJumpsuitMonasticRobeLight + category: JobsEpistemicsChaplain + cost: 0 + exclusive: true + customColorTint: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChaplainUniforms + - !type:CharacterJobRequirement + jobs: + - Chaplain + items: + - ClothingUniformJumpsuitMonasticRobeLight diff --git a/Resources/Prototypes/Loadouts/Jobs/Epistemics/golemancer.yml b/Resources/Prototypes/Loadouts/Jobs/Epistemics/golemancer.yml new file mode 100644 index 00000000000..73063a3dc5b --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Epistemics/golemancer.yml @@ -0,0 +1,133 @@ +# Golemancer +# Backpacks +- type: loadout + id: LoadoutBackpackRobotics + category: JobsEpistemicsGolemancer + cost: 0 + exclusive: true + items: + - ClothingBackpackRobotics + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutGolemancerBackpacks + - !type:CharacterJobRequirement + jobs: + - Roboticist + +- type: loadout + id: LoadoutBackpackSatchelRobotics + category: JobsEpistemicsGolemancer + cost: 0 + exclusive: true + items: + - ClothingBackpackSatchelRobotics + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutGolemancerBackpacks + - !type:CharacterJobRequirement + jobs: + - Roboticist + +- type: loadout + id: LoadoutBackpackDuffelRobotics + category: Backpacks + cost: 0 + exclusive: true + items: + - ClothingBackpackDuffelRobotics + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutGolemancerBackpacks + - !type:CharacterJobRequirement + jobs: + - Roboticist + + +# Belt + +# Ears + +# Equipment +- type: loadout + id: LoadoutGolemancerEquipmentCandles + category: JobsEpistemicsGolemancer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutGolemancerEquipment + - !type:CharacterJobRequirement + jobs: + - Roboticist + items: + - BoxCandle + +- type: loadout + id: LoadoutGolemancerEquipmentCandlesSmall + category: JobsEpistemicsGolemancer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutGolemancerEquipment + - !type:CharacterJobRequirement + jobs: + - Roboticist + items: + - BoxCandleSmall + +- type: loadout + id: LoadoutGolemancerPillCanisterSpaceDrugs + category: JobsEpistemicsGolemancer + cost: 1 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutGolemancerEquipment + - !type:CharacterJobRequirement + jobs: + - Roboticist + items: + - PillCanisterSpaceDrugs + +# Eyes + +# Gloves + +# Head + +# Id + +# Neck + +# Mask + +# Outer + +# Shoes + +# Uniforms +- type: loadout + id: LoadoutScienceUniformJumpskirtRoboticist + category: JobsEpistemicsGolemancer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutGolemancerUniforms + - !type:CharacterJobRequirement + jobs: + - Roboticist + items: + - ClothingUniformJumpskirtRoboticist + +- type: loadout + id: LoadoutScienceUniformJumpsuitRoboticist + category: JobsEpistemicsGolemancer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutGolemancerUniforms + - !type:CharacterJobRequirement + jobs: + - Roboticist + items: + - ClothingUniformJumpsuitRoboticist diff --git a/Resources/Prototypes/Loadouts/Jobs/Epistemics/mystagogue.yml b/Resources/Prototypes/Loadouts/Jobs/Epistemics/mystagogue.yml new file mode 100644 index 00000000000..efa4a861445 --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Epistemics/mystagogue.yml @@ -0,0 +1,268 @@ +# Mystagogue +# Backpacks +- type: loadout + id: LoadoutMystagogueBackpacksBackpack + category: JobsEpistemicsMystagogue + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMystagogueBackpacks + - !type:CharacterJobRequirement + jobs: + - ResearchDirector + items: + - ClothingBackpackResearchDirectorFilled + +- type: loadout + id: LoadoutMystagogueBackpacksSatchel + category: JobsEpistemicsMystagogue + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMystagogueBackpacks + - !type:CharacterJobRequirement + jobs: + - ResearchDirector + items: + - ClothingBackpackSatchelResearchDirectorFilled + +- type: loadout + id: LoadoutMystagogueBackpacksDuffel + category: JobsEpistemicsMystagogue + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMystagogueBackpacks + - !type:CharacterJobRequirement + jobs: + - ResearchDirector + items: + - ClothingBackpackDuffelResearchDirectorFilled + +# Belt + +# Ears + +# Equipment +- type: loadout + id: LoadoutMystagogueEquipmentCandles + category: JobsEpistemicsMystagogue + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMystagogueEquipment + - !type:CharacterJobRequirement + jobs: + - ResearchDirector + items: + - BoxCandle + +- type: loadout + id: LoadoutMystagogueEquipmentCandlesSmall + category: JobsEpistemicsMystagogue + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMystagogueEquipment + - !type:CharacterJobRequirement + jobs: + - ResearchDirector + items: + - BoxCandleSmall + +- type: loadout + id: LoadoutMystagoguePillCanisterSpaceDrugs + category: JobsEpistemicsMystagogue + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMystagogueEquipment + - !type:CharacterJobRequirement + jobs: + - ResearchDirector + items: + - PillCanisterSpaceDrugs + +# Eyes + +# Gloves + +# Head +- type: loadout + id: LoadoutCommandRDHeadHatBeretMysta + category: JobsEpistemicsMystagogue + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMystagogueHead + - !type:CharacterJobRequirement + jobs: + - ResearchDirector + items: + - ClothingHeadHatBeretMysta + +- type: loadout + id: LoadoutCommandRDHeadHoodMysta + category: JobsEpistemicsMystagogue + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMystagogueHead + - !type:CharacterJobRequirement + jobs: + - ResearchDirector + items: + - ClothingHeadHoodMysta + +# Id +- type: loadout + id: LoadoutMystagogueNTPDA + category: JobsEpistemicsMystagogue + cost: 0 + exclusive: true + requirements: + - !type:CharacterPlaytimeRequirement + tracker: JobResearchDirector + min: 36000 # 10 hours + - !type:CharacterItemGroupRequirement + group: LoadoutMystagogueId + - !type:CharacterJobRequirement + jobs: + - ResearchDirector + items: + - RnDNTPDA + +# Neck +- type: loadout + id: LoadoutCommandRDNeckMantle + category: JobsEpistemicsMystagogue + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMystagogueNeck + - !type:CharacterJobRequirement + jobs: + - ResearchDirector + items: + - ClothingNeckMantleRD + +- type: loadout + id: LoadoutCommandRDNeckCloak + category: JobsEpistemicsMystagogue + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMystagogueNeck + - !type:CharacterJobRequirement + jobs: + - ResearchDirector + items: + - ClothingNeckCloakRd + +- type: loadout + id: LoadoutCommandRDNeckCloakMystagogue + category: JobsEpistemicsMystagogue + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMystagogueNeck + - !type:CharacterJobRequirement + jobs: + - ResearchDirector + items: + - ClothingNeckCloakMystagogue + +- type: loadout + id: LoadoutMystagogueNeckSciencemedal + category: JobsEpistemicsMystagogue + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMystagogueNeck + - !type:CharacterJobRequirement + jobs: + - ResearchDirector + items: + - ClothingNeckSciencemedal + +# Mask + +# Outer +- type: loadout + id: LoadoutCommandRDOuterWinter + category: JobsEpistemicsMystagogue + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMystagogueOuter + - !type:CharacterJobRequirement + jobs: + - ResearchDirector + items: + - ClothingOuterWinterRD + +- type: loadout + id: LoadoutCommandRDOuterMysta + category: JobsEpistemicsMystagogue + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMystagogueOuter + - !type:CharacterJobRequirement + jobs: + - ResearchDirector + items: + - ClothingOuterCoatRndMysta + +# Shoes +- type: loadout + id: LoadoutCommandRDShoesBootsWinter + category: JobsEpistemicsMystagogue + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMystagogueShoes + - !type:CharacterJobRequirement + jobs: + - ResearchDirector + items: + - ClothingShoesBootsWinterMystagogue + +# Uniforms +- type: loadout + id: LoadoutMystagogueUniformJumpsuit + category: JobsEpistemicsMystagogue + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMystagogueUniforms + - !type:CharacterJobRequirement + jobs: + - ResearchDirector + items: + - ClothingUniformJumpsuitResearchDirector + +- type: loadout + id: LoadoutMystagogueUniformJumpskirt + category: JobsEpistemicsMystagogue + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMystagogueUniforms + - !type:CharacterJobRequirement + jobs: + - ResearchDirector + items: + - ClothingUniformJumpskirtResearchDirector diff --git a/Resources/Prototypes/Loadouts/Jobs/Epistemics/mystic.yml b/Resources/Prototypes/Loadouts/Jobs/Epistemics/mystic.yml new file mode 100644 index 00000000000..cc8422b9289 --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Epistemics/mystic.yml @@ -0,0 +1,105 @@ +# Mystic +# Backpacks + +# Belt + +# Ears + +# Equipment +- type: loadout + id: LoadoutMysticEquipmentCandles + category: JobsEpistemicsMystic + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMysticEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorResearcher + items: + - BoxCandle + +- type: loadout + id: LoadoutMysticEquipmentCandlesSmall + category: JobsEpistemicsMystic + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMysticEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorResearcher + items: + - BoxCandleSmall + +- type: loadout + id: LoadoutMysticPillCanisterSpaceDrugs + category: JobsEpistemicsMystic + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMysticEquipment + - !type:CharacterJobRequirement + jobs: + - SeniorResearcher + items: + - PillCanisterSpaceDrugs + +# Eyes + +# Gloves + +# Head + +# Id + +# Neck + +# Mask + +# Outer +- type: loadout + id: LoadoutScienceOuterLabcoatSeniorResearcher + category: JobsEpistemicsAAUncategorized + cost: 0 + exclusive: true + customColorTint: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMysticOuter + - !type:CharacterJobRequirement + jobs: + - SeniorResearcher + items: + - ClothingOuterCoatLabSeniorResearcher + +# Shoes + +# Uniforms +- type: loadout + id: LoadoutScienceUniformJumpskirtSenior + category: JobsEpistemicsMystic + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMysticUniforms + - !type:CharacterJobRequirement + jobs: + - SeniorResearcher + items: + - ClothingUniformJumpskirtSeniorResearcher + +- type: loadout + id: LoadoutScienceUniformJumpsuitSenior + category: JobsEpistemicsMystic + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMysticUniforms + - !type:CharacterJobRequirement + jobs: + - SeniorResearcher + items: + - ClothingUniformJumpsuitSeniorResearcher diff --git a/Resources/Prototypes/Loadouts/Jobs/Epistemics/noviciate.yml b/Resources/Prototypes/Loadouts/Jobs/Epistemics/noviciate.yml new file mode 100644 index 00000000000..f6aa0535d12 --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Epistemics/noviciate.yml @@ -0,0 +1,91 @@ +# Noviciate +# Backpacks + +# Belt + +# Ears + +# Equipment +- type: loadout + id: LoadoutNoviciateEquipmentCandles + category: JobsEpistemicsNoviciate + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutNoviciateEquipment + - !type:CharacterJobRequirement + jobs: + - ResearchAssistant + items: + - BoxCandle + +- type: loadout + id: LoadoutNoviciateEquipmentCandlesSmall + category: JobsEpistemicsNoviciate + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutNoviciateEquipment + - !type:CharacterJobRequirement + jobs: + - ResearchAssistant + items: + - BoxCandleSmall + +- type: loadout + id: LoadoutNoviciatePillCanisterSpaceDrugs + category: JobsEpistemicsNoviciate + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutNoviciateEquipment + - !type:CharacterJobRequirement + jobs: + - ResearchAssistant + items: + - PillCanisterSpaceDrugs + +# Eyes + +# Gloves + +# Head + +# Id + +# Neck + +# Mask + +# Outer + +# Shoes + +# Uniforms +- type: loadout + id: LoadoutNoviciateUniformSuit + category: JobsEpistemicsNoviciate + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutNoviciateUniforms + - !type:CharacterJobRequirement + jobs: + - ResearchAssistant + items: + - ClothingUniformJumpsuitColorWhite + +- type: loadout + id: LoadoutNoviciateUniformSkirt + category: JobsEpistemicsNoviciate + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutNoviciateUniforms + - !type:CharacterJobRequirement + jobs: + - ResearchAssistant + items: + - ClothingUniformJumpskirtColorWhite diff --git a/Resources/Prototypes/Loadouts/Jobs/Epistemics/psionicMantis.yml b/Resources/Prototypes/Loadouts/Jobs/Epistemics/psionicMantis.yml new file mode 100644 index 00000000000..68140732f4b --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Epistemics/psionicMantis.yml @@ -0,0 +1,118 @@ +# Psionic Mantis +# Backpacks + +# Belt + +# Ears + +# Equipment +- type: loadout + id: LoadoutPsionicMantisEquipmentCandles + category: JobsEpistemicsPsionicMantis + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutPsionicMantisEquipment + - !type:CharacterJobRequirement + jobs: + - ForensicMantis + items: + - BoxCandle + +- type: loadout + id: LoadoutPsionicMantisEquipmentCandlesSmall + category: JobsEpistemicsPsionicMantis + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutPsionicMantisEquipment + - !type:CharacterJobRequirement + jobs: + - ForensicMantis + items: + - BoxCandleSmall + +- type: loadout + id: LoadoutPsionicMantisPillCanisterSpaceDrugs + category: JobsEpistemicsPsionicMantis + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutPsionicMantisEquipment + - !type:CharacterJobRequirement + jobs: + - ForensicMantis + items: + - PillCanisterSpaceDrugs + +- type: loadout + id: LoadoutPsionicMantisPillCanisterCryptobiolin + category: JobsEpistemicsPsionicMantis + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutPsionicMantisEquipment + - !type:CharacterJobRequirement + jobs: + - ForensicMantis + items: + - PillCanisterCryptobiolin + +# Eyes + +# Gloves + +# Head + +# Id + +# Neck + +# Mask + +# Outer +- type: loadout + id: LoadoutScienceOuterWinterCoatMantis + category: JobsEpistemicsPsionicMantis + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutPsionicMantisOuter + - !type:CharacterJobRequirement + jobs: + - ForensicMantis + items: + - ClothingOuterWinterCoatMantis + + +# Shoes + +# Uniforms +- type: loadout + id: LoadoutPsionicMantisUniformSuit + category: JobsEpistemicsPsionicMantis + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutPsionicMantisUniforms + - !type:CharacterJobRequirement + jobs: + - ForensicMantis + items: + - ClothingUniformJumpsuitMantis + +- type: loadout + id: LoadoutPsionicMantisUniformSkirt + category: JobsEpistemicsPsionicMantis + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutPsionicMantisUniforms + - !type:CharacterJobRequirement + jobs: + - ForensicMantis + items: + - ClothingUniformSkirtMantis diff --git a/Resources/Prototypes/Loadouts/Jobs/Epistemics/uncategorized.yml b/Resources/Prototypes/Loadouts/Jobs/Epistemics/uncategorized.yml new file mode 100644 index 00000000000..19132e02bfe --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Epistemics/uncategorized.yml @@ -0,0 +1,315 @@ +# Uniforms +# Backpacks +- type: loadout + id: LoadoutBackpackScience + category: JobsEpistemicsAAUncategorized + cost: 0 + exclusive: true + items: + - ClothingBackpackScience + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEpistemicsBackpacks + - !type:CharacterDepartmentRequirement + departments: + - Epistemics + +- type: loadout + id: LoadoutBackpackSatchelScience + category: JobsEpistemicsAAUncategorized + cost: 0 + exclusive: true + items: + - ClothingBackpackSatchelScience + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEpistemicsBackpacks + - !type:CharacterDepartmentRequirement + departments: + - Epistemics + +- type: loadout + id: LoadoutBackpackDuffelScience + category: JobsEpistemicsAAUncategorized + cost: 0 + exclusive: true + items: + - ClothingBackpackDuffelScience + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEpistemicsBackpacks + - !type:CharacterDepartmentRequirement + departments: + - Epistemics + +# Belt + +# Ears + +# Equipment + +# Eyes +- type: loadout + id: LoadoutScienceEyesHudDiagnostic + category: JobsEpistemicsAAUncategorized + cost: 1 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEpistemicsEyes + - !type:CharacterDepartmentRequirement + departments: + - Epistemics + items: + - ClothingEyesHudDiagnostic + +- type: loadout + id: LoadoutScienceEyesEyepatchHudDiag + category: JobsEpistemicsAAUncategorized + cost: 1 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEpistemicsEyes + - !type:CharacterDepartmentRequirement + departments: + - Epistemics + items: + - ClothingEyesEyepatchHudDiag + +# Gloves +- type: loadout + id: LoadoutScienceHandsGlovesColorPurple + category: JobsEpistemicsAAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEpistemicsGloves + - !type:CharacterDepartmentRequirement + departments: + - Epistemics + items: + - ClothingHandsGlovesColorPurple + +- type: loadout + id: LoadoutScienceHandsGlovesLatex + category: JobsEpistemicsAAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEpistemicsGloves + - !type:CharacterDepartmentRequirement + departments: + - Epistemics + items: + - ClothingHandsGlovesLatex + +- type: loadout + id: LoadoutScienceHandsGlovesRobohands + category: JobsEpistemicsAAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEpistemicsGloves + - !type:CharacterDepartmentRequirement + departments: + - Epistemics + items: + - ClothingHandsGlovesRobohands + +# Head +- type: loadout + id: LoadoutScienceHeadHatBeret + category: JobsEpistemicsAAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEpistemicsHead + - !type:CharacterDepartmentRequirement + departments: + - Epistemics + items: + - ClothingHeadHatBeretRND + +- type: loadout + id: LoadoutScienceHeadHatFez + category: JobsEpistemicsAAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEpistemicsHead + - !type:CharacterDepartmentRequirement + departments: + - Epistemics + items: + - ClothingHeadHatFez + +- type: loadout + id: LoadoutHeadHoodTechPriest + category: Head + cost: 0 + exclusive: true + items: + - ClothingHeadTechPriest + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEpistemicsHead + - !type:CharacterDepartmentRequirement + departments: + - Epistemics + +# Id + +# Neck +- type: loadout + id: LoadoutScienceNeckTieSci + category: JobsEpistemicsAAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEpistemicsNeck + - !type:CharacterDepartmentRequirement + departments: + - Epistemics + items: + - ClothingNeckTieSci + +- type: loadout + id: LoadoutScienceNeckScarfStripedPurple + category: JobsEpistemicsAAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEpistemicsNeck + - !type:CharacterDepartmentRequirement + departments: + - Epistemics + items: + - ClothingNeckScarfStripedPurple + +- type: loadout + id: LoadoutScienceNeckScarfStripedBlack + category: JobsEpistemicsAAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEpistemicsNeck + - !type:CharacterDepartmentRequirement + departments: + - Epistemics + items: + - ClothingNeckScarfStripedBlack + +# Mask + +# Outer +- type: loadout + id: LoadoutScienceOuterCoat + category: JobsEpistemicsAAUncategorized + cost: 0 + exclusive: true + customColorTint: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEpistemicsOuter + - !type:CharacterDepartmentRequirement + departments: + - Epistemics + items: + - ClothingOuterCoatRnd + +- type: loadout + id: LoadoutScienceOuterLabcoat + category: JobsEpistemicsAAUncategorized + cost: 0 + exclusive: true + customColorTint: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEpistemicsOuter + - !type:CharacterDepartmentRequirement + departments: + - Epistemics + items: + - ClothingOuterCoatLab + +- type: loadout + id: LoadoutScienceOuterCoatRobo + category: JobsEpistemicsAAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEpistemicsOuter + - !type:CharacterDepartmentRequirement + departments: + - Epistemics + items: + - ClothingOuterCoatRobo + +- type: loadout + id: LoadoutScienceOuterWinterSci + category: JobsEpistemicsAAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEpistemicsOuter + - !type:CharacterDepartmentRequirement + departments: + - Epistemics + items: + - ClothingOuterWinterSci + +- type: loadout + id: LoadoutScienceOuterExplorerLabcoat + category: JobsEpistemicsAAUncategorized + cost: 0 + exclusive: true + customColorTint: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEpistemicsOuter + - !type:CharacterDepartmentRequirement + departments: + - Epistemics + items: + - ClothingOuterExplorerCoat + +- type: loadout + id: LoadoutOuterRobeTechPriest + category: Outer + cost: 0 + items: + - ClothingOuterRobeTechPriest + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEpistemicsOuter + - !type:CharacterDepartmentRequirement + departments: + - Epistemics + +# Shoes +- type: loadout + id: LoadoutScienceShoesBootsWinterSci + category: JobsEpistemicsAAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutEpistemicsShoes + - !type:CharacterDepartmentRequirement + departments: + - Epistemics + items: + - ClothingShoesBootsWinterSci + +# Uniforms diff --git a/Resources/Prototypes/Loadouts/Jobs/Heads/captain.yml b/Resources/Prototypes/Loadouts/Jobs/Heads/captain.yml deleted file mode 100644 index 47e4310fdf9..00000000000 --- a/Resources/Prototypes/Loadouts/Jobs/Heads/captain.yml +++ /dev/null @@ -1,148 +0,0 @@ -- type: loadout - id: LoadoutCommandCapNeckMantle - category: JobsCommand - cost: 0 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - Captain - items: - - ClothingNeckMantleCap - -- type: loadout - id: LoadoutCommandCapNeckCloak - category: JobsCommand - cost: 0 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - Captain - items: - - ClothingNeckCloakCap - -- type: loadout - id: LoadoutCommandCapNeckCloakFormal - category: JobsCommand - cost: 0 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - Captain - items: - - ClothingNeckCloakCapFormal - -- type: loadout - id: LoadoutCommandCapJumpsuitFormal - category: JobsCommand - cost: 0 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - Captain - items: - - ClothingUniformJumpsuitCapFormal - -- type: loadout - id: LoadoutCommandCapJumpskirtFormal - category: JobsCommand - cost: 0 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - Captain - items: - - ClothingUniformJumpskirtCapFormalDress - -- type: loadout - id: LoadoutCommandCapOuterWinter - category: JobsCommand - cost: 1 - requirements: - - !type:CharacterJobRequirement - jobs: - - Captain - items: - - ClothingOuterWinterCap - -- type: loadout - id: LoadoutCommandCapGloves - category: JobsCommand - cost: 0 - requirements: - - !type:CharacterJobRequirement - jobs: - - Captain - items: - - ClothingHandsGlovesCaptain - -- type: loadout - id: LoadoutCommandCapHat - category: JobsCommand - cost: 0 - requirements: - - !type:CharacterJobRequirement - jobs: - - Captain - items: - - ClothingHeadHatCaptain - -- type: loadout - id: LoadoutCommandCapHatCapcap - category: JobsCommand - cost: 0 - requirements: - - !type:CharacterJobRequirement - jobs: - - Captain - items: - - ClothingHeadHatCapcap - -- type: loadout - id: LoadoutCommandCapHatBeret - category: JobsCommand - cost: 0 - requirements: - - !type:CharacterJobRequirement - jobs: - - Captain - items: - - ClothingHeadHatBeretCap - -- type: loadout - id: LoadoutCommandCapMaskGas - category: JobsCommand - cost: 0 - requirements: - - !type:CharacterJobRequirement - jobs: - - Captain - items: - - ClothingMaskGasCaptain - -- type: loadout - id: LoadoutCommandCapShoesBootsWinter - category: JobsCommand - cost: 0 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - Captain - items: - - ClothingShoesBootsWinterCap - -- type: loadout - id: LoadoutCommandCapItemDrinkFlask - category: JobsCommand - cost: 1 - requirements: - - !type:CharacterJobRequirement - jobs: - - Captain - items: - - DrinkFlask diff --git a/Resources/Prototypes/Loadouts/Jobs/Heads/chiefEngineer.yml b/Resources/Prototypes/Loadouts/Jobs/Heads/chiefEngineer.yml deleted file mode 100644 index bfddc6e383e..00000000000 --- a/Resources/Prototypes/Loadouts/Jobs/Heads/chiefEngineer.yml +++ /dev/null @@ -1,46 +0,0 @@ -- type: loadout - id: LoadoutCommandCENeckMantle - category: JobsCommand - cost: 0 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - ChiefEngineer - items: - - ClothingNeckMantleCE - -- type: loadout - id: LoadoutCommandCENeckCloak - category: JobsCommand - cost: 0 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - ChiefEngineer - items: - - ClothingNeckCloakCe - -- type: loadout - id: LoadoutCommandCEOuterWinter - category: JobsCommand - cost: 1 - requirements: - - !type:CharacterJobRequirement - jobs: - - ChiefEngineer - items: - - ClothingOuterWinterCE - -- type: loadout - id: LoadoutCommandCEShoesBootsWinter - category: JobsCommand - cost: 0 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - ChiefEngineer - items: - - ClothingShoesBootsWinterChiefEngineer diff --git a/Resources/Prototypes/Loadouts/Jobs/Heads/chiefMedicalOfficer.yml b/Resources/Prototypes/Loadouts/Jobs/Heads/chiefMedicalOfficer.yml deleted file mode 100644 index 0c46af70137..00000000000 --- a/Resources/Prototypes/Loadouts/Jobs/Heads/chiefMedicalOfficer.yml +++ /dev/null @@ -1,68 +0,0 @@ -- type: loadout - id: LoadoutCommandCMONeckMantle - category: JobsCommand - cost: 0 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - ChiefMedicalOfficer - items: - - ClothingNeckMantleCMO - -- type: loadout - id: LoadoutCommandCMONeckCloak - category: JobsCommand - cost: 0 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - ChiefMedicalOfficer - items: - - ClothingCloakCmo - -- type: loadout - id: LoadoutCommandCMOOuterWinter - category: JobsCommand - cost: 1 - requirements: - - !type:CharacterJobRequirement - jobs: - - ChiefMedicalOfficer - items: - - ClothingOuterWinterCMO - -- type: loadout - id: LoadoutCommandCMOOuterLab - category: JobsCommand - cost: 0 - requirements: - - !type:CharacterJobRequirement - jobs: - - ChiefMedicalOfficer - items: - - ClothingOuterCoatLabCmo - -- type: loadout - id: LoadoutCommandCMOHatBeret - category: JobsCommand - cost: 0 - requirements: - - !type:CharacterJobRequirement - jobs: - - ChiefMedicalOfficer - items: - - ClothingHeadHatBeretCmo - -- type: loadout - id: LoadoutCommandCMOShoesBootsWinter - category: JobsCommand - cost: 0 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - ChiefMedicalOfficer - items: - - ClothingShoesBootsWinterChiefMedicalOfficer diff --git a/Resources/Prototypes/Loadouts/Jobs/Heads/command.yml b/Resources/Prototypes/Loadouts/Jobs/Heads/command.yml deleted file mode 100644 index ccc791460b6..00000000000 --- a/Resources/Prototypes/Loadouts/Jobs/Heads/command.yml +++ /dev/null @@ -1,24 +0,0 @@ -- type: loadout - id: LoadoutCommandGlovesInspection - category: JobsCommand - cost: 1 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - HeadOfPersonnel - - Captain - items: - - ClothingHandsGlovesInspection - -- type: loadout - id: LoadoutCommandTelescopicBaton - category: JobsCommand - cost: 3 - exclusive: true - requirements: - - !type:CharacterDepartmentRequirement - departments: - - Command - items: - - TelescopicBaton diff --git a/Resources/Prototypes/Loadouts/Jobs/Heads/headOfPersonnel.yml b/Resources/Prototypes/Loadouts/Jobs/Heads/headOfPersonnel.yml deleted file mode 100644 index 7bb265dd7b1..00000000000 --- a/Resources/Prototypes/Loadouts/Jobs/Heads/headOfPersonnel.yml +++ /dev/null @@ -1,116 +0,0 @@ -- type: loadout - id: LoadoutCommandHOPNeckMantle - category: JobsCommand - cost: 0 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - HeadOfPersonnel - items: - - ClothingNeckMantleHOP - -- type: loadout - id: LoadoutCommandHOPNeckCloak - category: JobsCommand - cost: 0 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - HeadOfPersonnel - items: - - ClothingNeckCloakHop - -- type: loadout - id: LoadoutCommandHOPJumpsuitTurtleneckBoatswain - category: JobsCommand - cost: 0 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - HeadOfPersonnel - items: - - ClothingUniformJumpsuitBoatswain - -- type: loadout - id: LoadoutCommandHOPJumpsuitMess - category: JobsCommand - cost: 0 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - HeadOfPersonnel - items: - - ClothingUniformJumpsuitHoPMess - -- type: loadout - id: LoadoutCommandHOPJumpskirtMess - category: JobsCommand - cost: 0 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - HeadOfPersonnel - items: - - ClothingUniformJumpskirtHoPMess - -- type: loadout - id: LoadoutcommandHOPOuterCoatFormal - category: JobsCommand - cost: 0 - requirements: - - !type:CharacterJobRequirement - jobs: - - HeadOfPersonnel - items: - - ClothingOuterCoatHoPFormal - -- type: loadout - id: LoadoutCommandHOPBackIan - category: JobsCommand - cost: 2 - requirements: - - !type:CharacterJobRequirement - jobs: - - HeadOfPersonnel - items: - - ClothingBackpackIan - -- type: loadout - id: LoadoutCommandHOPHatCap - category: JobsCommand - cost: 0 - requirements: - - !type:CharacterJobRequirement - jobs: - - HeadOfPersonnel - items: - - ClothingHeadHatHopcap - -- type: loadout - id: LoadoutCommandHOPShoesBootsWinter - category: JobsCommand - cost: 0 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - HeadOfPersonnel - items: - - ClothingShoesBootsWinterHeadOfPersonel - -- type: loadout - id: LoadoutCommandHOPBedsheetIan - category: JobsCommand - cost: 0 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - HeadOfPersonnel - items: - - BedsheetIan diff --git a/Resources/Prototypes/Loadouts/Jobs/Heads/quarterMaster.yml b/Resources/Prototypes/Loadouts/Jobs/Heads/quarterMaster.yml deleted file mode 100644 index 0dd45eb3f5f..00000000000 --- a/Resources/Prototypes/Loadouts/Jobs/Heads/quarterMaster.yml +++ /dev/null @@ -1,71 +0,0 @@ -# What? This isn't a thing?? :( -# - type: loadout -# id: LoadoutCommandQMNeckMantle -# category: JobsCommand -# cost: 2 -# exclusive: true -# requirements: -# - !type:CharacterJobRequirement -# jobs: -# - Quartermaster -# items: -# - ClothingNeckMantleQM - -- type: loadout - id: LoadoutCommandQMNeckCloak - category: JobsCommand - cost: 0 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - Quartermaster - items: - - ClothingNeckCloakQm - -- type: loadout - id: LoadoutCommandQMUniformTurtleneck - category: JobsCommand - cost: 0 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - Quartermaster - items: - - ClothingUniformJumpsuitQMTurtleneck - -- type: loadout - id: LoadoutCommandQMUniformTurtleneckSkirt - category: JobsCommand - cost: 0 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - Quartermaster - items: - - ClothingUniformJumpskirtQMTurtleneck - -- type: loadout - id: LoadoutCommandQMHeadSoft - category: JobsCommand - cost: 0 - requirements: - - !type:CharacterJobRequirement - jobs: - - Quartermaster - items: - - ClothingHeadHatQMsoft - -- type: loadout - id: LoadoutCommandQMShoesBootsWinter - category: JobsCommand - cost: 0 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - Quartermaster - items: - - ClothingShoesBootsWinterLogisticsOfficer diff --git a/Resources/Prototypes/Loadouts/Jobs/Heads/researchDirector.yml b/Resources/Prototypes/Loadouts/Jobs/Heads/researchDirector.yml deleted file mode 100644 index 0ec43fc3a77..00000000000 --- a/Resources/Prototypes/Loadouts/Jobs/Heads/researchDirector.yml +++ /dev/null @@ -1,101 +0,0 @@ -# Outer - -- type: loadout - id: LoadoutCommandRDOuterWinter - category: JobsCommand - cost: 1 - requirements: - - !type:CharacterJobRequirement - jobs: - - ResearchDirector - items: - - ClothingOuterWinterRD - -- type: loadout - id: LoadoutCommandRDOuterMysta - category: JobsCommand - cost: 0 - requirements: - - !type:CharacterJobRequirement - jobs: - - ResearchDirector - items: - - ClothingOuterCoatRndMysta - -# Head - -- type: loadout - id: LoadoutCommandRDHeadHatBeretMysta - category: JobsCommand - cost: 0 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - ResearchDirector - items: - - ClothingHeadHatBeretMysta - -- type: loadout - id: LoadoutCommandRDHeadHoodMysta - category: JobsCommand - cost: 0 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - ResearchDirector - items: - - ClothingHeadHoodMysta - -# Neck - -- type: loadout - id: LoadoutCommandRDNeckMantle - category: JobsCommand - cost: 0 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - ResearchDirector - items: - - ClothingNeckMantleRD - -- type: loadout - id: LoadoutCommandRDNeckCloak - category: JobsCommand - cost: 0 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - ResearchDirector - items: - - ClothingNeckCloakRd - -- type: loadout - id: LoadoutCommandRDNeckCloakMystagogue - category: JobsCommand - cost: 0 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - ResearchDirector - items: - - ClothingNeckCloakMystagogue - -# Shoes - -- type: loadout - id: LoadoutCommandRDShoesBootsWinter - category: JobsCommand - cost: 0 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - ResearchDirector - items: - - ClothingShoesBootsWinterMystagogue diff --git a/Resources/Prototypes/Loadouts/Jobs/cargo.yml b/Resources/Prototypes/Loadouts/Jobs/Logistics/cargoTechnician.yml similarity index 52% rename from Resources/Prototypes/Loadouts/Jobs/cargo.yml rename to Resources/Prototypes/Loadouts/Jobs/Logistics/cargoTechnician.yml index 7e9c525e409..250fe5ddfd7 100644 --- a/Resources/Prototypes/Loadouts/Jobs/cargo.yml +++ b/Resources/Prototypes/Loadouts/Jobs/Logistics/cargoTechnician.yml @@ -1,72 +1,79 @@ # Cargo technician +# Backpacks + +# Belt + +# Ears + +# Equipment + +# Eyes + +# Gloves + +# Head + +# Id + +# Neck + +# Mask + +# Outer - type: loadout id: LoadoutCargoOuterWinterCargo - category: JobsCargo + category: JobsLogisticsAUncategorized cost: 1 exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutOuterCargo + group: LoadoutCargoTechnicianOuter - !type:CharacterJobRequirement jobs: - CargoTechnician items: - ClothingOuterWinterCargo +# Shoes - type: loadout id: LoadoutCargoShoesBootsWinterCargo - category: JobsCargo + category: JobsLogisticsAUncategorized cost: 0 exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutShoesCargo + group: LoadoutCargoTechnicianShoes - !type:CharacterJobRequirement jobs: - CargoTechnician items: - ClothingShoesBootsWinterCargo -# Salvage specialist - +# Uniforms - type: loadout - id: LoadoutCargoOuterWinterMiner - category: JobsCargo - cost: 1 + id: LoadoutCargoTechnicianUniformSuit + category: JobsLogisticsCargoTechnician + cost: 0 exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutOuterCargo + group: LoadoutCargoTechnicianUniforms - !type:CharacterJobRequirement jobs: - - SalvageSpecialist + - CargoTechnician items: - - ClothingOuterWinterMiner + - ClothingUniformJumpsuitCargo - type: loadout - id: LoadoutCargoNeckGoliathCloak - category: JobsCargo + id: LoadoutCargoTechnicianUniformSkirt + category: JobsLogisticsCargoTechnician cost: 0 exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutNeckCargo - - !type:CharacterJobRequirement - jobs: - - SalvageSpecialist - - !type:CharacterPlaytimeRequirement - tracker: JobSalvageSpecialist - min: 36000 # 10 hours - items: - - ClothingNeckCloakGoliathCloak - -- type: loadout - id: LoadoutCargoWeaponsCrusherDagger - category: JobsCargo - cost: 2 - requirements: + group: LoadoutCargoTechnicianUniforms - !type:CharacterJobRequirement jobs: - - SalvageSpecialist + - CargoTechnician items: - - WeaponCrusherDagger + - ClothingUniformJumpskirtCargo diff --git a/Resources/Prototypes/Loadouts/Jobs/Logistics/courier.yml b/Resources/Prototypes/Loadouts/Jobs/Logistics/courier.yml new file mode 100644 index 00000000000..2af937ef1a1 --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Logistics/courier.yml @@ -0,0 +1,107 @@ +# Courier +# Backpacks + +# Belt + +# Ears + +# Equipment + +# Eyes + +# Gloves + +# Head +- type: loadout + id: LoadoutCourierHeadMail + category: JobsLogisticsCourier + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCourierHead + - !type:CharacterJobRequirement + jobs: + - MailCarrier + items: + - ClothingHeadMailCarrier + +# Id + +# Neck + +# Mask + +# Outer +- type: loadout + id: LoadoutCourierOuterMail + category: JobsLogisticsCourier + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCourierOuter + - !type:CharacterJobRequirement + jobs: + - MailCarrier + items: + - ClothingOuterWinterCoatMail + +# Shoes + +# Uniforms +- type: loadout + id: LoadoutCourierUniformSuit + category: JobsLogisticsCourier + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCourierUniforms + - !type:CharacterJobRequirement + jobs: + - MailCarrier + items: + - ClothingUniformCourier + +- type: loadout + id: LoadoutCourierUniformSkirt + category: JobsLogisticsCourier + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCourierUniforms + - !type:CharacterJobRequirement + jobs: + - MailCarrier + items: + - ClothingUniformSkirtCourier + +- type: loadout + id: LoadoutCourierUniformMailSuit + category: JobsLogisticsCourier + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCourierUniforms + - !type:CharacterJobRequirement + jobs: + - MailCarrier + items: + - ClothingUniformMailCarrier + +- type: loadout + id: LoadoutCourierUniformMailSkirt + category: JobsLogisticsCourier + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCourierUniforms + - !type:CharacterJobRequirement + jobs: + - MailCarrier + items: + - ClothingUniformSkirtMailCarrier diff --git a/Resources/Prototypes/Loadouts/Jobs/Logistics/logisticsOfficer.yml b/Resources/Prototypes/Loadouts/Jobs/Logistics/logisticsOfficer.yml new file mode 100644 index 00000000000..190c7467b54 --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Logistics/logisticsOfficer.yml @@ -0,0 +1,107 @@ +# Logistics Officer +# Backpacks + +# Belt + +# Ears + +# Equipment + +# Eyes + +# Gloves + +# Head +- type: loadout + id: LoadoutCommandQMHeadSoft + category: JobsLogisticsLogisticsOfficer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutLogisticsOfficerHead + - !type:CharacterJobRequirement + jobs: + - Quartermaster + items: + - ClothingHeadHatQMsoft + +# Id +- type: loadout + id: LoadoutLogisticsOfficerNTPDA + category: JobsLogisticsLogisticsOfficer + cost: 0 + exclusive: true + requirements: + - !type:CharacterPlaytimeRequirement + tracker: JobQuartermaster + min: 36000 # 10 hours + - !type:CharacterItemGroupRequirement + group: LoadoutLogisticsOfficerId + - !type:CharacterJobRequirement + jobs: + - Quartermaster + items: + - QuartermasterNTPDA + +# Neck +- type: loadout + id: LoadoutCommandQMNeckCloak + category: JobsLogisticsLogisticsOfficer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutLogisticsOfficerNeck + - !type:CharacterJobRequirement + jobs: + - Quartermaster + items: + - ClothingNeckCloakQm + +# Mask + +# Outer + +# Shoes +- type: loadout + id: LoadoutCommandQMShoesBootsWinter + category: JobsLogisticsLogisticsOfficer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutLogisticsOfficerShoes + - !type:CharacterJobRequirement + jobs: + - Quartermaster + items: + - ClothingShoesBootsWinterLogisticsOfficer + +# Uniforms +- type: loadout + id: LoadoutCommandQMUniformTurtleneck + category: JobsLogisticsLogisticsOfficer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutLogisticsOfficerUniforms + - !type:CharacterJobRequirement + jobs: + - Quartermaster + items: + - ClothingUniformJumpsuitQMTurtleneck + +- type: loadout + id: LoadoutCommandQMUniformTurtleneckSkirt + category: JobsLogisticsLogisticsOfficer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutLogisticsOfficerUniforms + - !type:CharacterJobRequirement + jobs: + - Quartermaster + items: + - ClothingUniformJumpskirtQMTurtleneck diff --git a/Resources/Prototypes/Loadouts/Jobs/Logistics/salvageSpecialist.yml b/Resources/Prototypes/Loadouts/Jobs/Logistics/salvageSpecialist.yml new file mode 100644 index 00000000000..0b56ef3c912 --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Logistics/salvageSpecialist.yml @@ -0,0 +1,332 @@ +# Salvage Specialist +# Backpacks +- type: loadout + id: LoadoutSalvageBackpackBackpack + category: JobsLogisticsSalvageSpecialist + cost: 0 + exclusive: true + customColorTint: true + items: + - ClothingBackpackSalvage + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistBackpacks + - !type:CharacterJobRequirement + jobs: + - SalvageSpecialist + +- type: loadout + id: LoadoutSalvageBackpackSatchel + category: JobsLogisticsSalvageSpecialist + cost: 0 + exclusive: true + customColorTint: true + items: + - ClothingBackpackSatchelSalvage + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistBackpacks + - !type:CharacterJobRequirement + jobs: + - SalvageSpecialist + +- type: loadout + id: LoadoutSalvageBackpackDuffel + category: JobsLogisticsSalvageSpecialist + cost: 0 + exclusive: true + customColorTint: true + items: + - ClothingBackpackDuffelSalvage + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistBackpacks + - !type:CharacterJobRequirement + jobs: + - SalvageSpecialist + +# Belt +- type: loadout + id: LoadoutSalvageBeltMercWebbing + category: JobsLogisticsSalvageSpecialist + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistBelt + - !type:CharacterJobRequirement + jobs: + - SalvageSpecialist + items: + - ClothingBeltMercWebbing + +- type: loadout + id: LoadoutSalvageBeltSalvageWebbing + category: JobsLogisticsSalvageSpecialist + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistBelt + - !type:CharacterJobRequirement + jobs: + - SalvageSpecialist + items: + - ClothingBeltSalvageWebbing + +- type: loadout + id: LoadoutSalvageBeltMilitaryWebbing + category: JobsLogisticsSalvageSpecialist + cost: 0 + customColorTint: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistBelt + - !type:CharacterJobRequirement + jobs: + - SalvageSpecialist + items: + - ClothingBeltMilitaryWebbing + +# Ears + +# Equipment +- type: loadout + id: LoadoutCargoWeaponsCrusherDagger + category: JobsLogisticsSalvageSpecialist + cost: 2 + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistWeapons + - !type:CharacterJobRequirement + jobs: + - SalvageSpecialist + items: + - WeaponCrusherDagger + +- type: loadout + id: LoadoutSalvageWeaponsCombatKnife + category: JobsLogisticsSalvageSpecialist + cost: 0 + canBeHeirloom: true + customColorTint: true # Go read Neuromancer + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistWeapons + - !type:CharacterJobRequirement + jobs: + - SalvageSpecialist + items: + - CombatKnife + +- type: loadout + id: LoadoutSalvageWeaponsKitchenKnife + category: JobsLogisticsSalvageSpecialist + cost: 0 + canBeHeirloom: true + customColorTint: true # Go read Neuromancer + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistWeapons + - !type:CharacterJobRequirement + jobs: + - SalvageSpecialist + items: + - KitchenKnife + +- type: loadout + id: LoadoutSalvageWeaponsSurvivalKnife + category: JobsLogisticsSalvageSpecialist + cost: 0 + canBeHeirloom: true + customColorTint: true # Go read Neuromancer + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistWeapons + - !type:CharacterJobRequirement + jobs: + - SalvageSpecialist + items: + - SurvivalKnife + +- type: loadout + id: LoadoutSalvageWeaponsKukriKnife + category: JobsLogisticsSalvageSpecialist + cost: 0 + canBeHeirloom: true + customColorTint: true # Go read Neuromancer + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistWeapons + - !type:CharacterJobRequirement + jobs: + - SalvageSpecialist + items: + - KukriKnife + +- type: loadout + id: LoadoutSalvageWeaponsCleaver + category: JobsLogisticsSalvageSpecialist + cost: 0 + canBeHeirloom: true + customColorTint: true # Go read Neuromancer + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistWeapons + - !type:CharacterJobRequirement + jobs: + - SalvageSpecialist + items: + - ButchCleaver + +- type: loadout + id: LoadoutSalvageWeaponsThrowingKnife + category: JobsLogisticsSalvageSpecialist + cost: 1 + canBeHeirloom: true + customColorTint: true # Go read Neuromancer + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistWeapons + - !type:CharacterJobRequirement + jobs: + - SalvageSpecialist + items: + - ThrowingKnife + - ThrowingKnife + - ThrowingKnife + +- type: loadout + id: LoadoutSalvageWeaponsMachete + category: JobsLogisticsSalvageSpecialist + cost: 1 + canBeHeirloom: true + customColorTint: true # Go read Neuromancer + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistWeapons + - !type:CharacterJobRequirement + jobs: + - SalvageSpecialist + items: + - Machete + +- type: loadout + id: LoadoutSalvageWeaponsCutlass + category: JobsLogisticsSalvageSpecialist + cost: 2 + canBeHeirloom: true + customColorTint: true # Go read Neuromancer + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistWeapons + - !type:CharacterJobRequirement + jobs: + - SalvageSpecialist + items: + - Cutlass + +- type: loadout + id: LoadoutSalvageWeaponsKatana + category: JobsLogisticsSalvageSpecialist + cost: 2 + canBeHeirloom: true + customColorTint: true # Go read Neuromancer + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistWeapons + - !type:CharacterJobRequirement + jobs: + - SalvageSpecialist + items: + - Katana + +- type: loadout + id: LoadoutSalvageWeaponsWakizashi + category: JobsLogisticsSalvageSpecialist + cost: 1 + canBeHeirloom: true + customColorTint: true # Go read Neuromancer + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistWeapons + - !type:CharacterJobRequirement + jobs: + - SalvageSpecialist + items: + - Wakizashi + +# Eyes + +# Gloves + +# Head + +# Id + +# Neck +- type: loadout + id: LoadoutCargoNeckGoliathCloak + category: JobsLogisticsSalvageSpecialist + cost: 0 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistNeck + - !type:CharacterJobRequirement + jobs: + - SalvageSpecialist + - !type:CharacterPlaytimeRequirement + tracker: JobSalvageSpecialist + min: 36000 # 10 hours + items: + - ClothingNeckCloakGoliathCloak + +- type: loadout + id: LoadoutSalvageNeckCloakMiner + category: JobsLogisticsSalvageSpecialist + cost: 0 + exclusive: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistNeck + - !type:CharacterJobRequirement + jobs: + - SalvageSpecialist + items: + - ClothingNeckCloakMiner + +# Mask + +# Outer +- type: loadout + id: LoadoutCargoOuterWinterMiner + category: JobsLogisticsSalvageSpecialist + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistOuter + - !type:CharacterJobRequirement + jobs: + - SalvageSpecialist + items: + - ClothingOuterWinterMiner + +# Shoes + +# Uniforms +- type: loadout + id: LoadoutSalvageSpecialistUniformSuit + category: JobsLogisticsSalvageSpecialist + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSalvageSpecialistUniforms + - !type:CharacterJobRequirement + jobs: + - SalvageSpecialist + items: + - ClothingUniformJumpsuitSalvageSpecialist diff --git a/Resources/Prototypes/Loadouts/Jobs/Logistics/uncategorized.yml b/Resources/Prototypes/Loadouts/Jobs/Logistics/uncategorized.yml new file mode 100644 index 00000000000..fe6d664e287 --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Logistics/uncategorized.yml @@ -0,0 +1,67 @@ +# Uncategorized +# Backpacks +- type: loadout + id: LoadoutBackpackCargo + category: JobsLogisticsAUncategorized + cost: 0 + exclusive: true + items: + - ClothingBackpackCargo + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutLogisticsBackpacks + - !type:CharacterDepartmentRequirement + departments: + - Logistics + +- type: loadout + id: LoadoutBackpackSatchelCargo + category: JobsLogisticsAUncategorized + cost: 0 + exclusive: true + items: + - ClothingBackpackSatchelCargo + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutLogisticsBackpacks + - !type:CharacterDepartmentRequirement + departments: + - Logistics + +- type: loadout + id: LoadoutBackpackDuffelCargo + category: JobsLogisticsAUncategorized + cost: 0 + exclusive: true + items: + - ClothingBackpackDuffelCargo + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutLogisticsBackpacks + - !type:CharacterDepartmentRequirement + departments: + - Logistics + +# Belt + +# Ears + +# Equipment + +# Eyes + +# Gloves + +# Head + +# Id + +# Neck + +# Mask + +# Outer + +# Shoes + +# Uniforms diff --git a/Resources/Prototypes/Loadouts/Jobs/Medical/chemist.yml b/Resources/Prototypes/Loadouts/Jobs/Medical/chemist.yml new file mode 100644 index 00000000000..cb5b872928c --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Medical/chemist.yml @@ -0,0 +1,343 @@ +# Chemist +# Backpacks +- type: loadout + id: LoadoutChemistryBackpackBackpack + category: JobsMedicalChemist + cost: 0 + exclusive: true + items: + - ClothingBackpackSatchelChemistry + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChemistBackpacks + - !type:CharacterJobRequirement + jobs: + - Chemist + +- type: loadout + id: LoadoutBackpackSatchelChemistry + category: JobsMedicalChemist + cost: 0 + exclusive: true + items: + - ClothingBackpackSatchelChemistry + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChemistBackpacks + - !type:CharacterJobRequirement + jobs: + - Chemist + +- type: loadout + id: LoadoutBackpackDuffelChemistry + category: JobsMedicalChemist + cost: 0 + exclusive: true + items: + - ClothingBackpackDuffelChemistry + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChemistBackpacks + - !type:CharacterJobRequirement + jobs: + - Chemist + +# Belt +- type: loadout + id: LoadoutChemistBeltChemBag + category: JobsMedicalChemist + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChemistBelt + - !type:CharacterJobRequirement + jobs: + - Chemist + items: + - ChemBag + +# Ears + +# Equipment +- type: loadout + id: LoadoutMedicalItemHandLabeler + category: JobsMedicalChemist + cost: 0 + requirements: + - !type:CharacterJobRequirement + jobs: + - Chemist + items: + - HandLabeler + +- type: loadout + id: LoadoutChemistPillCanisterKelotane + category: JobsMedicalChemist + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChemistEquipment + - !type:CharacterJobRequirement + jobs: + - Chemist + items: + - PillCanisterKelotane + +- type: loadout + id: LoadoutChemistPillCanisterTricordrazine + category: JobsMedicalChemist + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChemistEquipment + - !type:CharacterJobRequirement + jobs: + - Chemist + items: + - PillCanisterTricordrazine + +- type: loadout + id: LoadoutChemistPillCanisterHyronalin + category: JobsMedicalChemist + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChemistEquipment + - !type:CharacterJobRequirement + jobs: + - Chemist + items: + - PillCanisterHyronalin + +- type: loadout + id: LoadoutChemistPillCanisterBicaridine + category: JobsMedicalChemist + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChemistEquipment + - !type:CharacterJobRequirement + jobs: + - Chemist + items: + - PillCanisterBicaridine + +- type: loadout + id: LoadoutChemistPillCanisterDermaline + category: JobsMedicalChemist + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChemistEquipment + - !type:CharacterJobRequirement + jobs: + - Chemist + items: + - PillCanisterDermaline + +- type: loadout + id: LoadoutChemistPillCanisterDylovene + category: JobsMedicalChemist + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChemistEquipment + - !type:CharacterJobRequirement + jobs: + - Chemist + items: + - PillCanisterDylovene + +- type: loadout + id: LoadoutChemistPillCanisterDexalin + category: JobsMedicalChemist + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChemistEquipment + - !type:CharacterJobRequirement + jobs: + - Chemist + items: + - PillCanisterDexalin + +- type: loadout + id: LoadoutChemistPillCanisterSpaceDrugs + category: JobsMedicalChemist + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChemistEquipment + - !type:CharacterJobRequirement + jobs: + - Chemist + items: + - PillCanisterSpaceDrugs + +# Eyes +- type: loadout + id: LoadoutMedicalEyesGlassesChemicalBudget + category: JobsMedicalChemist + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChemistEyes + - !type:CharacterJobRequirement + jobs: + - Chemist + items: + - ClothingEyesGlassesChemicalBudget + +- type: loadout + id: LoadoutMedicalEyesGlassesChemical + category: JobsMedicalChemist + cost: 2 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChemistEyes + - !type:CharacterJobRequirement + jobs: + - Chemist + items: + - ClothingEyesGlassesChemical + +- type: loadout + id: LoadoutMedicalEyesGlassesChemist + category: JobsMedicalChemist + cost: 1 # These provide caustic armor, oddly enough. + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChemistEyes + - !type:CharacterJobRequirement + jobs: + - Chemist + items: + - ClothingEyesGlassesChemist + +# Gloves +- type: loadout + id: LoadoutMedicalHandsGlovesChemist + category: JobsMedicalChemist + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChemistGloves + - !type:CharacterJobRequirement + jobs: + - Chemist + items: + - ClothingHandsGlovesChemist + +# Head + +# Id + +# Neck +- type: loadout + id: LoadoutMedicalNeckTieChem + category: JobsMedicalChemist + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChemistNeck + - !type:CharacterJobRequirement + jobs: + - Chemist + items: + - ClothingNeckTieChem + +# Mask + +# Outer +- type: loadout + id: LoadoutMedicalOuterLabcoatChem + category: JobsMedicalChemist + cost: 0 + exclusive: true + customColorTint: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChemistOuter + - !type:CharacterJobRequirement + jobs: + - Chemist + items: + - ClothingOuterCoatLabChem + +- type: loadout + id: LoadoutMedicalOuterApronChemist + category: JobsMedicalChemist + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChemistOuter + - !type:CharacterJobRequirement + jobs: + - Chemist + items: + - ClothingOuterApronChemist + +# Shoes +- type: loadout + id: LoadoutMedicalShoesEnclosedChem + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChemistShoes + - !type:CharacterJobRequirement + jobs: + - Chemist + items: + - ClothingShoesEnclosedChem + +# Uniforms +- type: loadout + id: LoadoutMedicalUniformJumpsuitChemShirt + category: JobsMedicalChemist + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChemistUniforms + - !type:CharacterJobRequirement + jobs: + - Chemist + items: + - ClothingUniformJumpsuitChemShirt + +- type: loadout + id: LoadoutMedicalUniformJumpsuitChemistry + category: JobsMedicalChemist + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChemistUniforms + - !type:CharacterJobRequirement + jobs: + - Chemist + items: + - ClothingUniformJumpsuitChemistry + +- type: loadout + id: LoadoutMedicalUniformJumpskirtChemistry + category: JobsMedicalChemist + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChemistUniforms + - !type:CharacterJobRequirement + jobs: + - Chemist + items: + - ClothingUniformJumpskirtChemistry diff --git a/Resources/Prototypes/Loadouts/Jobs/Medical/chiefMedicalOfficer.yml b/Resources/Prototypes/Loadouts/Jobs/Medical/chiefMedicalOfficer.yml new file mode 100644 index 00000000000..b5e82749cec --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Medical/chiefMedicalOfficer.yml @@ -0,0 +1,214 @@ +# Chief Medical Officer +# Backpacks + +# Belt +- type: loadout + id: LoadoutChiefMedicalOfficerBeltMedical + category: JobsMedicalChiefMedicalOfficer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefMedicalOfficerBelt + - !type:CharacterJobRequirement + jobs: + - ChiefMedicalOfficer + items: + - ClothingBeltMedical + +- type: loadout + id: LoadoutChiefMedicalOfficerBeltMedicalAdvancedFilled + category: JobsMedicalChiefMedicalOfficer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefMedicalOfficerBelt + - !type:CharacterJobRequirement + jobs: + - ChiefMedicalOfficer + items: + - ClothingBeltMedicalAdvancedFilled + +# Ears + +# Equipment + +# Eyes + +# Gloves + +# Head +- type: loadout + id: LoadoutCommandCMOHatBeret + category: JobsMedicalChiefMedicalOfficer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefMedicalOfficerHead + - !type:CharacterJobRequirement + jobs: + - ChiefMedicalOfficer + items: + - ClothingHeadHatBeretCmo + +# Id +- type: loadout + id: LoadoutChiefMedicalOfficerNTPDA + category: JobsMedicalChiefMedicalOfficer + cost: 0 + exclusive: true + requirements: + - !type:CharacterPlaytimeRequirement + tracker: JobChiefMedicalOfficer + min: 36000 # 10 hours + - !type:CharacterItemGroupRequirement + group: LoadoutChiefMedicalOfficerId + - !type:CharacterJobRequirement + jobs: + - ChiefMedicalOfficer + items: + - CMONTPDA + +# Neck +- type: loadout + id: LoadoutCommandCMONeckMantle + category: JobsMedicalChiefMedicalOfficer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefMedicalOfficerNeck + - !type:CharacterJobRequirement + jobs: + - ChiefMedicalOfficer + items: + - ClothingNeckMantleCMO + +- type: loadout + id: LoadoutCommandCMONeckCloak + category: JobsMedicalChiefMedicalOfficer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefMedicalOfficerNeck + - !type:CharacterJobRequirement + jobs: + - ChiefMedicalOfficer + items: + - ClothingCloakCmo + +- type: loadout + id: LoadoutChiefMedicalOfficerNeckMedalMedical + category: JobsMedicalChiefMedicalOfficer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefMedicalOfficerNeck + - !type:CharacterJobRequirement + jobs: + - ChiefMedicalOfficer + items: + - ClothingNeckMedicalmedal + +# Mask + +# Outer +- type: loadout + id: LoadoutCommandCMOOuterWinter + category: JobsMedicalChiefMedicalOfficer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefMedicalOfficerOuter + - !type:CharacterJobRequirement + jobs: + - ChiefMedicalOfficer + items: + - ClothingOuterWinterCMO + +- type: loadout + id: LoadoutCommandCMOOuterLab + category: JobsMedicalChiefMedicalOfficer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefMedicalOfficerOuter + - !type:CharacterJobRequirement + jobs: + - ChiefMedicalOfficer + items: + - ClothingOuterCoatLabCmo + +# Shoes +- type: loadout + id: LoadoutCommandCMOShoesBootsWinter + category: JobsMedicalChiefMedicalOfficer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefMedicalOfficerShoes + - !type:CharacterJobRequirement + jobs: + - ChiefMedicalOfficer + items: + - ClothingShoesBootsWinterChiefMedicalOfficer + +- type: loadout + id: LoadoutChiefMedicalOfficerShoesLaceup + category: JobsCommandCaptain + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefMedicalOfficerShoes + - !type:CharacterJobRequirement + jobs: + - ChiefMedicalOfficer + items: + - ClothingShoesBootsLaceup + +- type: loadout + id: LoadoutChiefMedicalOfficerShoesLeather + category: JobsCommandCaptain + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefMedicalOfficerShoes + - !type:CharacterJobRequirement + jobs: + - ChiefMedicalOfficer + items: + - ClothingShoesLeather + +# Uniforms +- type: loadout + id: LoadoutChiefMedicalOfficerJumpsuit + category: JobsMedicalChiefMedicalOfficer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefMedicalOfficerUniforms + - !type:CharacterJobRequirement + jobs: + - ChiefMedicalOfficer + items: + - ClothingUniformJumpsuitCMO + +- type: loadout + id: LoadoutChiefMedicalOfficerJumpskirt + category: JobsMedicalChiefMedicalOfficer + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChiefMedicalOfficerUniforms + - !type:CharacterJobRequirement + jobs: + - ChiefMedicalOfficer + items: + - ClothingUniformJumpskirtCMO diff --git a/Resources/Prototypes/Loadouts/Jobs/Medical/medicalDoctor.yml b/Resources/Prototypes/Loadouts/Jobs/Medical/medicalDoctor.yml new file mode 100644 index 00000000000..9aba4313287 --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Medical/medicalDoctor.yml @@ -0,0 +1,105 @@ +# Medical Doctor +# Backpacks + +# Belt +- type: loadout + id: LoadoutMedicalDoctorBeltMedical + category: JobsMedicalMedicalDoctor + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalDoctorBelt + - !type:CharacterJobRequirement + jobs: + - MedicalDoctor + items: + - ClothingBeltMedical + +- type: loadout + id: LoadoutMedicalDoctorBeltMedicalFilled + category: JobsMedicalMedicalDoctor + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalDoctorBelt + - !type:CharacterJobRequirement + jobs: + - MedicalDoctor + items: + - ClothingBeltMedicalFilled + +- type: loadout + id: LoadoutMedicalDoctorBeltMedicalAdvancedFilled + category: JobsMedicalMedicalDoctor + cost: 2 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalDoctorBelt + - !type:CharacterJobRequirement + jobs: + - MedicalDoctor + items: + - ClothingBeltMedicalAdvancedFilled + +# Ears + +# Equipment + +# Eyes + +# Gloves + +# Head +- type: loadout + id: LoadoutMedicalHeadNurse + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalDoctorHead + - !type:CharacterJobRequirement + jobs: + - MedicalDoctor + items: + - ClothingHeadNurseHat + +# Id + +# Neck + +# Mask + +# Outer + +# Shoes + +# Uniforms +- type: loadout + id: LoadoutMedicalDoctorJumpsuit + category: JobsMedicalMedicalDoctor + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalDoctorUniforms + - !type:CharacterJobRequirement + jobs: + - MedicalDoctor + items: + - ClothingUniformJumpsuitMedicalDoctor + +- type: loadout + id: LoadoutMedicalDoctorJumpskirt + category: JobsMedicalMedicalDoctor + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalDoctorUniforms + - !type:CharacterJobRequirement + jobs: + - MedicalDoctor + items: + - ClothingUniformJumpskirtMedicalDoctor diff --git a/Resources/Prototypes/Loadouts/Jobs/Medical/medicalIntern.yml b/Resources/Prototypes/Loadouts/Jobs/Medical/medicalIntern.yml new file mode 100644 index 00000000000..9c0f5fc9ecc --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Medical/medicalIntern.yml @@ -0,0 +1,53 @@ +# Medical Intern +# Backpacks + +# Belt +- type: loadout + id: LoadoutMedicalInternBeltMedical + category: JobsMedicalMedicalIntern + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalInternBelt + - !type:CharacterJobRequirement + jobs: + - MedicalIntern + items: + - ClothingBeltMedical + +- type: loadout + id: LoadoutMedicalInternBeltMedicalFilled + category: JobsMedicalMedicalIntern + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalInternBelt + - !type:CharacterJobRequirement + jobs: + - MedicalIntern + items: + - ClothingBeltMedicalFilled + +# Ears + +# Equipment + +# Eyes + +# Gloves + +# Head + +# Id + +# Neck + +# Mask + +# Outer + +# Shoes + +# Uniforms diff --git a/Resources/Prototypes/Loadouts/Jobs/Medical/paramedic.yml b/Resources/Prototypes/Loadouts/Jobs/Medical/paramedic.yml new file mode 100644 index 00000000000..56082d35edd --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Medical/paramedic.yml @@ -0,0 +1,53 @@ +# Paramedic +# Backpacks + +# Belt + +# Ears + +# Equipment + +# Eyes + +# Gloves + +# Head + +# Id + +# Neck + +# Mask + +# Outer + +# Shoes + +# Uniforms +- type: loadout + id: LoadoutMedicalUniformParamedicJumpsuit + category: JobsMedicalParamedic + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutParamedicUniforms + - !type:CharacterJobRequirement + jobs: + - Paramedic + items: + - ClothingUniformJumpsuitParamedic + +- type: loadout + id: LoadoutMedicalUniformParamedicJumpskirt + category: JobsMedicalParamedic + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutParamedicUniforms + - !type:CharacterJobRequirement + jobs: + - Paramedic + items: + - ClothingUniformJumpskirtParamedic diff --git a/Resources/Prototypes/Loadouts/Jobs/Medical/psychologist.yml b/Resources/Prototypes/Loadouts/Jobs/Medical/psychologist.yml new file mode 100644 index 00000000000..9414b687dac --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Medical/psychologist.yml @@ -0,0 +1,146 @@ +# Psychologist +# Backpacks +- type: loadout + id: LoadoutPsychologistBackpackBackpack + category: JobsMedicalPsychologist + cost: 0 + exclusive: true + items: + - ClothingBackpackPsychologistFilled + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutPsychologistBackpacks + - !type:CharacterDepartmentRequirement + departments: + - Medical + +- type: loadout + id: LoadoutPsychologistBackpackSatchel + category: JobsMedicalPsychologist + cost: 0 + exclusive: true + items: + - ClothingBackpackSatchelPsychologistFilled + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutPsychologistBackpacks + - !type:CharacterDepartmentRequirement + departments: + - Medical + +- type: loadout + id: LoadoutPsychologistBackpackDuffel + category: JobsMedicalPsychologist + cost: 0 + exclusive: true + items: + - ClothingBackpackDuffelPsychologistFilled + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutPsychologistBackpacks + - !type:CharacterDepartmentRequirement + departments: + - Medical + +# Belt + +# Ears + +# Equipment +# The Psychologist chooses freely from drugs that change the mind. +# If we ever get more mind-affecting drugs, add them here. +- type: loadout + id: LoadoutPsychologistPillCanisterSpaceDrugs + category: JobsMedicalPsychologist + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutPsychologistEquipment + - !type:CharacterJobRequirement + jobs: + - Psychologist + items: + - PillCanisterSpaceDrugs + +- type: loadout + id: LoadoutPsychologistPillCanisterPax + category: JobsMedicalPsychologist + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutPsychologistEquipment + - !type:CharacterJobRequirement + jobs: + - Psychologist + items: + - PillCanisterPax + +- type: loadout + id: LoadoutPsychologistPillCanisterCryptobiolin + category: JobsMedicalPsychologist + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutPsychologistEquipment + - !type:CharacterJobRequirement + jobs: + - Psychologist + items: + - PillCanisterCryptobiolin + +# Yes this one is a little dangerous. Keeps the job interesting. :) +- type: loadout + id: LoadoutPsychologistPillCanisterChloralHydrate + category: JobsMedicalPsychologist + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutPsychologistEquipment + - !type:CharacterJobRequirement + jobs: + - Psychologist + items: + - PillCanisterChloralHydrate + +# Eyes + +# Gloves + +# Head + +# Id + +# Neck + +# Mask + +# Outer + +# Shoes + +# Uniforms +- type: loadout + id: LoadoutPsychologistJumpsuit + category: JobsMedicalPsychologist + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutPsychologistUniforms + - !type:CharacterJobRequirement + jobs: + - Psychologist + items: + - ClothingUniformJumpsuitPsychologist + +- type: loadout + id: LoadoutPsychologistJumpskirt + category: JobsMedicalPsychologist + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutPsychologistUniforms + - !type:CharacterJobRequirement + jobs: + - Psychologist + items: + - ClothingUniformJumpsuitPsychologist diff --git a/Resources/Prototypes/Loadouts/Jobs/Medical/seniorPhysician.yml b/Resources/Prototypes/Loadouts/Jobs/Medical/seniorPhysician.yml new file mode 100644 index 00000000000..a8937cc2f0e --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Medical/seniorPhysician.yml @@ -0,0 +1,93 @@ +# Senior Physician +# Backpacks + +# Belt + +# Ears + +# Equipment +- type: loadout + id: LoadoutSeniorPhysicianBeltMedical + category: JobsMedicalSeniorPhysician + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorPhysicianBelt + - !type:CharacterJobRequirement + jobs: + - MedicalDoctor + items: + - ClothingBeltMedical + +- type: loadout + id: LoadoutSeniorPhysicianBeltMedicalAdvancedFilled + category: JobsMedicalSeniorPhysician + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorPhysicianBelt + - !type:CharacterJobRequirement + jobs: + - SeniorPhysician + items: + - ClothingBeltMedicalAdvancedFilled + +# Eyes + +# Gloves + +# Head +- type: loadout + id: LoadoutMedicalHeadBeretSeniorPhysician + category: JobsMedicalSeniorPhysician + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorPhysicianHead + - !type:CharacterJobRequirement + jobs: + - SeniorPhysician + items: + - ClothingHeadHatBeretSeniorPhysician + +# Id + +# Neck + +# Mask + +# Outer + +# Shoes + +# Uniforms +- type: loadout + id: LoadoutMedicalUniformJumpskirtSenior + category: JobsMedicalSeniorPhysician + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorPhysicianUniforms + - !type:CharacterJobRequirement + jobs: + - SeniorPhysician + items: + - ClothingUniformJumpskirtSeniorPhysician + +- type: loadout + id: LoadoutMedicalUniformJumpsuitSenior + category: JobsMedicalSeniorPhysician + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorPhysicianUniforms + - !type:CharacterJobRequirement + jobs: + - SeniorPhysician + items: + - ClothingUniformJumpsuitSeniorPhysician diff --git a/Resources/Prototypes/Loadouts/Jobs/Medical/uncategorized.yml b/Resources/Prototypes/Loadouts/Jobs/Medical/uncategorized.yml new file mode 100644 index 00000000000..cc653a0593b --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Medical/uncategorized.yml @@ -0,0 +1,522 @@ +# Uncategorized +# Backpacks +- type: loadout + id: LoadoutBackpackMedical + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + items: + - ClothingBackpackMedical + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalBackpacks + - !type:CharacterDepartmentRequirement + departments: + - Medical + +- type: loadout + id: LoadoutBackpackVirology + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + items: + - ClothingBackpackVirology + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalBackpacks + - !type:CharacterDepartmentRequirement + departments: + - Medical + +- type: loadout + id: LoadoutBackpackGenetics + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + items: + - ClothingBackpackGenetics + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalBackpacks + - !type:CharacterDepartmentRequirement + departments: + - Medical + +- type: loadout + id: LoadoutBackpackSatchelMedical + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + items: + - ClothingBackpackSatchelMedical + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalBackpacks + - !type:CharacterDepartmentRequirement + departments: + - Medical + +- type: loadout + id: LoadoutBackpackSatchelVirology + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + items: + - ClothingBackpackSatchelVirology + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalBackpacks + - !type:CharacterDepartmentRequirement + departments: + - Medical + +- type: loadout + id: LoadoutBackpackSatchelGenetics + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + items: + - ClothingBackpackSatchelGenetics + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalBackpacks + - !type:CharacterDepartmentRequirement + departments: + - Medical + +- type: loadout + id: LoadoutBackpackDuffelMedical + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + items: + - ClothingBackpackDuffelMedical + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalBackpacks + - !type:CharacterDepartmentRequirement + departments: + - Medical + +- type: loadout + id: LoadoutBackpackDuffelVirology + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + items: + - ClothingBackpackDuffelVirology + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalBackpacks + - !type:CharacterDepartmentRequirement + departments: + - Medical + +- type: loadout + id: LoadoutBackpackDuffelGenetics + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + items: + - ClothingBackpackDuffelGenetics + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalBackpacks + - !type:CharacterDepartmentRequirement + departments: + - Medical + +- type: loadout + id: LoadoutBackpackMedicalDuffelSurgeryFilled + category: JobsMedicalAUncategorized + cost: 3 + exclusive: true + items: + - ClothingBackpackDuffelSurgeryFilled + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalBackpacks + - !type:CharacterDepartmentRequirement + departments: + - Medical + +# Belt + +# Ears + +# Equipment + +# Eyes +- type: loadout + id: LoadoutMedicalEyesHudMedical + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalEyes + - !type:CharacterDepartmentRequirement + departments: + - Medical + items: + - ClothingEyesHudMedical + +- type: loadout + id: LoadoutMedicalEyesEyepatchHudMedical + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalEyes + - !type:CharacterDepartmentRequirement + departments: + - Medical + items: + - ClothingEyesEyepatchHudMedical + +- type: loadout + id: LoadoutMedicalEyesHudMedicalPrescription + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalEyes + - !type:CharacterDepartmentRequirement + departments: + - Medical + - !type:CharacterTraitRequirement + traits: + - Nearsighted + items: + - ClothingEyesPrescriptionMedHud + +# Gloves +- type: loadout + id: LoadoutMedicalGlovesNitrile + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalGloves + - !type:CharacterDepartmentRequirement + departments: + - Medical + items: + - ClothingHandsGlovesNitrile + +- type: loadout + id: LoadoutMedicalGlovesLatex + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalGloves + - !type:CharacterDepartmentRequirement + departments: + - Medical + items: + - ClothingHandsGlovesLatex + +# Head +- type: loadout + id: LoadoutMedicalHeadSurgcapBlue + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalHead + - !type:CharacterDepartmentRequirement + departments: + - Medical + items: + - ClothingHeadHatSurgcapBlue + +- type: loadout + id: LoadoutMedicalHeadSurgcapPurple + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalHead + - !type:CharacterDepartmentRequirement + departments: + - Medical + items: + - ClothingHeadHatSurgcapPurple + +- type: loadout + id: LoadoutMedicalHeadSurgcapGreen + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalHead + - !type:CharacterDepartmentRequirement + departments: + - Medical + items: + - ClothingHeadHatSurgcapGreen + +- type: loadout + id: LoadoutMedicalHeadSurgcapCyan + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalHead + - !type:CharacterDepartmentRequirement + departments: + - Medical + items: + - ClothingHeadHatSurgcapCyan + +- type: loadout + id: LoadoutMedicalHeadSurgcapBlack + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalHead + - !type:CharacterDepartmentRequirement + departments: + - Medical + items: + - ClothingHeadHatSurgcapBlack + +- type: loadout + id: LoadoutMedicalHeadSurgcapPink + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalHead + - !type:CharacterDepartmentRequirement + departments: + - Medical + items: + - ClothingHeadHatSurgcapPink + +- type: loadout + id: LoadoutMedicalHeadSurgcapWhite + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + customColorTint: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalHead + - !type:CharacterDepartmentRequirement + departments: + - Medical + items: + - ClothingHeadHatSurgcapWhite + +- type: loadout + id: LoadoutMedicalHeadSurgcapCybersun + category: JobsMedicalAUncategorized + cost: 1 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalHead + - !type:CharacterJobRequirement + jobs: + - MedicalDoctor + - Chemist + - Paramedic + items: + - ClothingHeadHatSurgcapCybersun + +# Id + +# Neck +- type: loadout + id: LoadoutMedicalNeckStethoscope + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalNeck + - !type:CharacterDepartmentRequirement + departments: + - Medical + items: + - ClothingNeckStethoscope + +- type: loadout + id: LoadoutMedicalBedsheetMedical + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalNeck + - !type:CharacterDepartmentRequirement + departments: + - Medical + items: + - BedsheetMedical + +# Mask + +# Outer +- type: loadout + id: LoadoutMedicalOuterLabcoat + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + customColorTint: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalOuter + - !type:CharacterJobRequirement + jobs: + - MedicalDoctor + - Chemist + items: + - ClothingOuterCoatLab + +- type: loadout + id: LoadoutMedicalOuterCybersunWindbreaker + category: JobsMedicalAUncategorized + cost: 3 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalOuter + - !type:CharacterJobRequirement + jobs: + - MedicalDoctor + - Chemist + - Paramedic + items: + - ClothingOuterCoatCybersunWindbreaker + +# Shoes + +# Uniforms +- type: loadout + id: LoadoutMedicalUniformScrubsBlue + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalUniforms + - !type:CharacterDepartmentRequirement + departments: + - Medical + items: + - UniformScrubsColorBlue + +- type: loadout + id: LoadoutMedicalUniformScrubsGreen + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalUniforms + - !type:CharacterDepartmentRequirement + departments: + - Medical + items: + - UniformScrubsColorGreen + +- type: loadout + id: LoadoutMedicalUniformScrubsPurple + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalUniforms + - !type:CharacterDepartmentRequirement + departments: + - Medical + items: + - UniformScrubsColorPurple + +- type: loadout + id: LoadoutMedicalUniformScrubsCyan + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalUniforms + - !type:CharacterDepartmentRequirement + departments: + - Medical + items: + - UniformScrubsColorCyan + +- type: loadout + id: LoadoutMedicalUniformScrubsBlack + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalUniforms + - !type:CharacterDepartmentRequirement + departments: + - Medical + items: + - UniformScrubsColorBlack + +- type: loadout + id: LoadoutMedicalUniformScrubsPink + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalUniforms + - !type:CharacterDepartmentRequirement + departments: + - Medical + items: + - UniformScrubsColorPink + +- type: loadout + id: LoadoutMedicalUniformScrubsCybersun + category: JobsMedicalAUncategorized + cost: 1 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalUniforms + - !type:CharacterJobRequirement + jobs: + - MedicalDoctor + - Chemist + - Paramedic + items: + - UniformScrubsColorCybersun + +- type: loadout + id: LoadoutMedicalUniformScrubsWhite + category: JobsMedicalAUncategorized + cost: 0 + exclusive: true + customColorTint: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMedicalUniforms + - !type:CharacterDepartmentRequirement + departments: + - Medical + items: + - UniformScrubsColorWhite diff --git a/Resources/Prototypes/Loadouts/Jobs/Security/cadet.yml b/Resources/Prototypes/Loadouts/Jobs/Security/cadet.yml new file mode 100644 index 00000000000..5450f362cf9 --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Security/cadet.yml @@ -0,0 +1,26 @@ +# Cadet +# Backpacks + +# Belt + +# Ears + +# Equipment + +# Eyes + +# Gloves + +# Head + +# Id + +# Neck + +# Mask + +# Outer + +# Shoes + +# Uniforms diff --git a/Resources/Prototypes/Loadouts/Jobs/Security/corpsman.yml b/Resources/Prototypes/Loadouts/Jobs/Security/corpsman.yml new file mode 100644 index 00000000000..5f7781e74ce --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Security/corpsman.yml @@ -0,0 +1,133 @@ +# Corpsman +# Backpacks +- type: loadout + id: LoadoutCorpsmanBackpackBackpack + category: JobsSecurityCorpsman + cost: 0 + exclusive: true + items: + - ClothingBackpackBrigmedicFilled + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCorpsmanBackpacks + - !type:CharacterJobRequirement + jobs: + - Brigmedic + +- type: loadout + id: LoadoutCorpsmanBackpackSatchel + category: JobsSecurityCorpsman + cost: 0 + exclusive: true + items: + - ClothingBackpackSatchelBrigmedicFilled + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCorpsmanBackpacks + - !type:CharacterJobRequirement + jobs: + - Brigmedic + +- type: loadout + id: LoadoutCorpsmanBackpackDuffel + category: JobsSecurityCorpsman + cost: 0 + exclusive: true + items: + - ClothingBackpackDuffelBrigmedicFilled + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCorpsmanBackpacks + - !type:CharacterJobRequirement + jobs: + - Brigmedic + +# Belt +- type: loadout + id: LoadoutClothingBeltCorpsmanWebbing + category: JobsSecurityCorpsman + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCorpsmanBelt + - !type:CharacterJobRequirement + jobs: + - Brigmedic + items: + - ClothingBeltCorpsmanWebbingFilled + +# Ears + +# Equipment + +# Eyes + +# Gloves +- type: loadout + id: LoadoutClothingHandsGlovesNitrile + category: JobsSecurityCorpsman + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCorpsmanGloves + - !type:CharacterJobRequirement + jobs: + - Brigmedic + items: + - ClothingHandsGlovesNitrile + +# Head +- type: loadout + id: LoadoutClothingHeadHatBeretBrigmedic + category: JobsSecurityCorpsman + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCorpsmanHead + - !type:CharacterJobRequirement + jobs: + - Brigmedic + items: + - ClothingHeadHatBeretBrigmedic + +- type: loadout + id: LoadoutClothingHeadHatBeretCorpsman + category: JobsSecurityCorpsman + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCorpsmanHead + - !type:CharacterJobRequirement + jobs: + - Brigmedic + items: + - ClothingHeadHatBeretCorpsman + +# Id + +# Neck +- type: loadout + id: LoadoutBedsheetBrigmedic + category: JobsSecurityCorpsman + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutCorpsmanNeck + - !type:CharacterJobRequirement + jobs: + - Brigmedic + items: + - BedsheetBrigmedic + +# Mask + +# Outer + +# Shoes + +# Uniforms diff --git a/Resources/Prototypes/Loadouts/Jobs/Security/detective.yml b/Resources/Prototypes/Loadouts/Jobs/Security/detective.yml new file mode 100644 index 00000000000..e68b63a57a1 --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Security/detective.yml @@ -0,0 +1,53 @@ +# Detective +# Backpacks + +# Belt + +# Ears + +# Equipment + +# Eyes + +# Gloves + +# Head + +# Id + +# Neck + +# Mask + +# Outer +- type: loadout + id: LoadoutClothingOuterCoatDetective + category: JobsSecurityDetective + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutDetectiveOuter + - !type:CharacterJobRequirement + jobs: + - Detective + items: + - ClothingOuterCoatDetective + +- type: loadout + id: LoadoutOuterVestDetective + category: JobsSecurityDetective + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutDetectiveOuter + - !type:CharacterJobRequirement + jobs: + - Detective + items: + - ClothingOuterVestDetective + +# Shoes + +# Uniforms diff --git a/Resources/Prototypes/Loadouts/Jobs/Heads/headOfSecurity.yml b/Resources/Prototypes/Loadouts/Jobs/Security/headOfSecurity.yml similarity index 56% rename from Resources/Prototypes/Loadouts/Jobs/Heads/headOfSecurity.yml rename to Resources/Prototypes/Loadouts/Jobs/Security/headOfSecurity.yml index bd2a03f214f..7954e5d4449 100644 --- a/Resources/Prototypes/Loadouts/Jobs/Heads/headOfSecurity.yml +++ b/Resources/Prototypes/Loadouts/Jobs/Security/headOfSecurity.yml @@ -1,128 +1,200 @@ +# Head Of Security +# Backpacks + +# Belt + +# Ears + +# Equipment +# Head of Security Weapon Selection +# Most of these mirror the unique weapons that were previously map-specific items placed in the HoS Office. +# Or are weapons that fit a similar theme of "Rare weapons not normally seen by Security" - type: loadout - id: LoadoutCommandHOSNeckMantle - category: JobsCommand + id: LoadoutCommandHoSPulsePistol + category: JobsSecurityHeadOfSecurity cost: 0 - exclusive: true + canBeHeirloom: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfSecurityWeapon - !type:CharacterJobRequirement jobs: - HeadOfSecurity items: - - ClothingNeckMantleHOS + - WeaponPulsePistolHoS - type: loadout - id: LoadoutCommandHOSNeckCloak - category: JobsCommand + id: LoadoutCommandHoSWt550 + category: JobsSecurityHeadOfSecurity cost: 0 - exclusive: true + canBeHeirloom: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfSecurityWeapon - !type:CharacterJobRequirement jobs: - HeadOfSecurity items: - - ClothingNeckCloakHos + - WeaponSubMachineGunWt550HoS - type: loadout - id: LoadoutCommandHOSJumpsuitAlt - category: JobsCommand + id: LoadoutCommandHoSKatanaSheath + category: JobsSecurityHeadOfSecurity cost: 0 - exclusive: true + canBeHeirloom: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfSecurityWeapon - !type:CharacterJobRequirement jobs: - HeadOfSecurity items: - - ClothingUniformJumpsuitHoSAlt + - ClothingBeltKatanaSheathFilledHoS - type: loadout - id: LoadoutCommandHOSJumpsuitBlue - category: JobsCommand + id: LoadoutCommandHoSC20r + category: JobsSecurityHeadOfSecurity cost: 0 - exclusive: true + canBeHeirloom: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfSecurityWeapon - !type:CharacterJobRequirement jobs: - HeadOfSecurity items: - - ClothingUniformJumpsuitHoSBlue + - WeaponSubMachineGunC20rHoS - type: loadout - id: LoadoutCommandHOSJumpsuitGrey - category: JobsCommand + id: LoadoutCommandHoSBulldog + category: JobsSecurityHeadOfSecurity cost: 0 - exclusive: true + canBeHeirloom: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfSecurityWeapon - !type:CharacterJobRequirement jobs: - HeadOfSecurity items: - - ClothingUniformJumpsuitHoSGrey + - WeaponShotgunBulldogHoS - type: loadout - id: LoadoutCommandHOSJumpsuitParade - category: JobsCommand + id: LoadoutCommandHoSEnergySword + category: JobsSecurityHeadOfSecurity cost: 0 - exclusive: true + canBeHeirloom: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfSecurityWeapon - !type:CharacterJobRequirement jobs: - HeadOfSecurity items: - - ClothingUniformJumpsuitHoSParadeMale + - EnergySwordHoS - type: loadout - id: LoadoutCommandHOSJumpsuitFormal - category: JobsCommand + id: LoadoutCommandHoSEnergyGun + category: JobsSecurityHeadOfSecurity cost: 0 - exclusive: true + canBeHeirloom: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfSecurityWeapon - !type:CharacterJobRequirement jobs: - HeadOfSecurity items: - - ClothingUniformJumpsuitHosFormal + - WeaponEnergyGunMultiphase + +# Eyes +# Gloves + +# Head - type: loadout - id: LoadoutCommandHOSJumpskirtAlt - category: JobsCommand + id: LoadoutCommandHOSHatBeret + category: JobsSecurityHeadOfSecurity + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfSecurityHead + - !type:CharacterJobRequirement + jobs: + - HeadOfSecurity + items: + - ClothingHeadHatBeretHoS + +- type: loadout + id: LoadoutCommandHOSHatHoshat + category: JobsSecurityHeadOfSecurity + cost: 0 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfSecurityHead + - !type:CharacterJobRequirement + jobs: + - HeadOfSecurity + items: + - ClothingHeadHatHoshat + +# Id +- type: loadout + id: LoadoutHeadOfSecurityNTPDA + category: JobsSecurityHeadOfSecurity cost: 0 exclusive: true requirements: + - !type:CharacterPlaytimeRequirement + tracker: JobHeadOfSecurity + min: 36000 # 10 hours + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfSecurityId - !type:CharacterJobRequirement jobs: - HeadOfSecurity items: - - ClothingUniformJumpskirtHoSAlt + - HoSNTPDA +# Neck - type: loadout - id: LoadoutCommandHOSJumpskirtParade - category: JobsCommand + id: LoadoutCommandHOSNeckMantle + category: JobsSecurityHeadOfSecurity cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfSecurityNeck - !type:CharacterJobRequirement jobs: - HeadOfSecurity items: - - ClothingUniformJumpskirtHoSParadeMale + - ClothingNeckMantleHOS - type: loadout - id: LoadoutCommandHOSJumpskirtFormal - category: JobsCommand + id: LoadoutCommandHOSNeckCloak + category: JobsSecurityHeadOfSecurity cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfSecurityNeck - !type:CharacterJobRequirement jobs: - HeadOfSecurity items: - - ClothingUniformJumpskirtHosFormal + - ClothingNeckCloakHos +# Mask + +# Outer - type: loadout id: LoadoutCommandHOSOuterWinter - category: JobsCommand - cost: 1 + category: JobsSecurityHeadOfSecurity + cost: 0 requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfSecurityOuter - !type:CharacterJobRequirement jobs: - HeadOfSecurity @@ -131,139 +203,169 @@ - type: loadout id: LoadoutCommandHOSOuterTrench - category: JobsCommand - cost: 1 + category: JobsSecurityHeadOfSecurity + cost: 0 requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfSecurityOuter - !type:CharacterJobRequirement jobs: - HeadOfSecurity items: - ClothingOuterCoatHoSTrench +# Shoes - type: loadout - id: LoadoutCommandHOSHatBeret - category: JobsCommand + id: LoadoutCommandHOSShoesBootsWinter + category: JobsSecurityHeadOfSecurity cost: 0 + exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfSecurityShoes - !type:CharacterJobRequirement jobs: - HeadOfSecurity items: - - ClothingHeadHatBeretHoS + - ClothingShoesBootsWinterHeadOfSecurity +# Uniforms - type: loadout - id: LoadoutCommandHOSHatHoshat - category: JobsCommand + id: LoadoutUniformJumpskirtHoSBlue + category: JobsSecurityHeadOfSecurity cost: 0 + exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfSecurityUniforms - !type:CharacterJobRequirement jobs: - HeadOfSecurity items: - - ClothingHeadHatHoshat + - ClothingUniformJumpskirtHoSBlue - type: loadout - id: LoadoutCommandHOSShoesBootsWinter - category: JobsCommand + id: LoadoutUniformJumpskirtHoSGrey + category: JobsSecurityHeadOfSecurity cost: 0 exclusive: true requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfSecurityUniforms - !type:CharacterJobRequirement jobs: - HeadOfSecurity items: - - ClothingShoesBootsWinterHeadOfSecurity + - ClothingUniformJumpskirtHoSGrey -# Head of Security Weapon Selection -# Most of these mirror the unique weapons that were previously map-specific items placed in the HoS Office. -# Or are weapons that fit a similar theme of "Rare weapons not normally seen by Security" - type: loadout - id: LoadoutCommandHoSPulsePistol - category: JobsCommand + id: LoadoutCommandHOSJumpsuitAlt + category: JobsSecurityHeadOfSecurity cost: 0 + exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutHoSWeapon + group: LoadoutHeadOfSecurityUniforms - !type:CharacterJobRequirement jobs: - HeadOfSecurity items: - - WeaponPulsePistolHoS + - ClothingUniformJumpsuitHoSAlt - type: loadout - id: LoadoutCommandHoSWt550 - category: JobsCommand + id: LoadoutCommandHOSJumpsuitBlue + category: JobsSecurityHeadOfSecurity cost: 0 + exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutHoSWeapon + group: LoadoutHeadOfSecurityUniforms - !type:CharacterJobRequirement jobs: - HeadOfSecurity items: - - WeaponSubMachineGunWt550HoS + - ClothingUniformJumpsuitHoSBlue - type: loadout - id: LoadoutCommandHoSKatanaSheath - category: JobsCommand + id: LoadoutCommandHOSJumpsuitGrey + category: JobsSecurityHeadOfSecurity cost: 0 + exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutHoSWeapon + group: LoadoutHeadOfSecurityUniforms - !type:CharacterJobRequirement jobs: - HeadOfSecurity items: - - ClothingBeltKatanaSheathFilledHoS + - ClothingUniformJumpsuitHoSGrey - type: loadout - id: LoadoutCommandHoSC20r - category: JobsCommand + id: LoadoutCommandHOSJumpsuitParade + category: JobsSecurityHeadOfSecurity cost: 0 + exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutHoSWeapon + group: LoadoutHeadOfSecurityUniforms - !type:CharacterJobRequirement jobs: - HeadOfSecurity items: - - WeaponSubMachineGunC20rHoS + - ClothingUniformJumpsuitHoSParadeMale - type: loadout - id: LoadoutCommandHoSBulldog - category: JobsCommand + id: LoadoutCommandHOSJumpsuitFormal + category: JobsSecurityHeadOfSecurity cost: 0 + exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutHoSWeapon + group: LoadoutHeadOfSecurityUniforms - !type:CharacterJobRequirement jobs: - HeadOfSecurity items: - - WeaponShotgunBulldogHoS + - ClothingUniformJumpsuitHosFormal - type: loadout - id: LoadoutCommandHoSEnergySword - category: JobsCommand + id: LoadoutCommandHOSJumpskirtAlt + category: JobsSecurityHeadOfSecurity + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutHeadOfSecurityUniforms + - !type:CharacterJobRequirement + jobs: + - HeadOfSecurity + items: + - ClothingUniformJumpskirtHoSAlt + +- type: loadout + id: LoadoutCommandHOSJumpskirtParade + category: JobsSecurityHeadOfSecurity cost: 0 + exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutHoSWeapon + group: LoadoutHeadOfSecurityUniforms - !type:CharacterJobRequirement jobs: - HeadOfSecurity items: - - EnergySwordHoS + - ClothingUniformJumpskirtHoSParadeMale - type: loadout - id: LoadoutCommandHoSEnergyGun - category: JobsCommand + id: LoadoutCommandHOSJumpskirtFormal + category: JobsSecurityHeadOfSecurity cost: 0 + exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutHoSWeapon + group: LoadoutHeadOfSecurityUniforms - !type:CharacterJobRequirement jobs: - HeadOfSecurity items: - - WeaponEnergyGunMultiphase + - ClothingUniformJumpskirtHosFormal diff --git a/Resources/Prototypes/Loadouts/Jobs/Security/securityOfficer.yml b/Resources/Prototypes/Loadouts/Jobs/Security/securityOfficer.yml new file mode 100644 index 00000000000..36ce1874aa9 --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Security/securityOfficer.yml @@ -0,0 +1,26 @@ +# Security Officer +# Backpacks + +# Belt + +# Ears + +# Equipment + +# Eyes + +# Gloves + +# Head + +# Id + +# Neck + +# Mask + +# Outer + +# Shoes + +# Uniforms diff --git a/Resources/Prototypes/Loadouts/Jobs/Security/seniorOfficer.yml b/Resources/Prototypes/Loadouts/Jobs/Security/seniorOfficer.yml new file mode 100644 index 00000000000..69e47019c3a --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Security/seniorOfficer.yml @@ -0,0 +1,53 @@ +# Senior Officer +# Backpacks + +# Belt + +# Ears + +# Equipment + +# Eyes + +# Gloves + +# Head + +# Id + +# Neck + +# Mask + +# Outer + +# Shoes + +# Uniforms +- type: loadout + id: LoadoutSecurityUniformJumpskirtSenior + category: JobsSecuritySeniorOfficer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorOfficerUniforms + - !type:CharacterJobRequirement + jobs: + - SeniorOfficer + items: + - ClothingUniformJumpskirtSeniorOfficer + +- type: loadout + id: LoadoutSecurityUniformJumpsuitSenior + category: JobsSecuritySeniorOfficer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSeniorOfficerUniforms + - !type:CharacterJobRequirement + jobs: + - SeniorOfficer + items: + - ClothingUniformJumpsuitSeniorOfficer diff --git a/Resources/Prototypes/Loadouts/Jobs/security.yml b/Resources/Prototypes/Loadouts/Jobs/Security/uncategorized.yml similarity index 63% rename from Resources/Prototypes/Loadouts/Jobs/security.yml rename to Resources/Prototypes/Loadouts/Jobs/Security/uncategorized.yml index f2587b4d14d..dbef5c35f71 100644 --- a/Resources/Prototypes/Loadouts/Jobs/security.yml +++ b/Resources/Prototypes/Loadouts/Jobs/Security/uncategorized.yml @@ -1,1329 +1,1057 @@ -# Uniforms +# Uncategorized +# Backpack - type: loadout - id: LoadoutSecurityUniformJumpsuitBlue - category: JobsSecurity + id: LoadoutClothingBackSecurity + category: JobsSecurityAUncategorized cost: 0 exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutUniformsSecurity + group: LoadoutSecurityBackpacks - !type:CharacterDepartmentRequirement departments: - Security items: - - ClothingUniformJumpsuitSecBlue + - ClothingBackpackSecurity - type: loadout - id: LoadoutSecurityUniformJumpsuitGrey - category: JobsSecurity + id: LoadoutClothingBackSecuritySatchel + category: JobsSecurityAUncategorized cost: 0 exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutUniformsSecurity + group: LoadoutSecurityBackpacks - !type:CharacterDepartmentRequirement departments: - Security items: - - ClothingUniformJumpsuitSecGrey + - ClothingBackpackSatchelSecurity - type: loadout - id: LoadoutSecurityUniformJumpskirtGrey - category: JobsSecurity + id: LoadoutClothingBackSecurityDuffel + category: JobsSecurityAUncategorized cost: 0 exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutUniformsSecurity + group: LoadoutSecurityBackpacks - !type:CharacterDepartmentRequirement departments: - Security items: - - ClothingUniformJumpskirtSecGrey + - ClothingBackpackDuffelSecurity +# Belt - type: loadout - id: LoadoutSecurityUniformJumpskirtBlue - category: JobsSecurity + id: LoadoutSecurityBeltWebbing + category: JobsSecurityAUncategorized cost: 0 exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutUniformsSecurity + group: LoadoutSecurityBelt - !type:CharacterDepartmentRequirement departments: - Security items: - - ClothingUniformJumpskirtSecBlue - -- type: loadout - id: LoadoutSecurityUniformJumpskirtSenior - category: JobsSecurity - cost: 1 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsSecurity - - !type:CharacterJobRequirement - jobs: - - SecurityOfficer - - !type:CharacterPlaytimeRequirement - tracker: JobWarden - min: 21600 # 6 hours - - !type:CharacterPlaytimeRequirement - tracker: JobDetective - min: 7200 # 2 hours - - !type:CharacterPlaytimeRequirement - tracker: JobSecurityOfficer - min: 21600 # 6 hours - - !type:CharacterDepartmentTimeRequirement - department: Security - min: 216000 # 60 hours - items: - - ClothingUniformJumpskirtSeniorOfficer - -- type: loadout - id: LoadoutSecurityUniformJumpsuitSenior - category: JobsSecurity - cost: 1 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsSecurity - - !type:CharacterJobRequirement - jobs: - - SecurityOfficer - - !type:CharacterPlaytimeRequirement - tracker: JobWarden - min: 21600 # 6 hours - - !type:CharacterPlaytimeRequirement - tracker: JobDetective - min: 7200 # 2 hours - - !type:CharacterPlaytimeRequirement - tracker: JobSecurityOfficer - min: 21600 # 6 hours - - !type:CharacterDepartmentTimeRequirement - department: Security - min: 216000 # 60 hours - items: - - ClothingUniformJumpsuitSeniorOfficer - -- type: loadout - id: LoadoutUniformJumpsuitWardenBlue - category: JobsSecurity - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsSecurity - - !type:CharacterJobRequirement - jobs: - - Warden - items: - - ClothingUniformJumpsuitWardenBlue - -- type: loadout - id: LoadoutUniformJumpsuitWardenGrey - category: JobsSecurity - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsSecurity - - !type:CharacterJobRequirement - jobs: - - Warden - items: - - ClothingUniformJumpsuitWardenGrey - -- type: loadout - id: LoadoutUniformJumpskirtWardenBlue - category: JobsSecurity - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsSecurity - - !type:CharacterJobRequirement - jobs: - - Warden - items: - - ClothingUniformJumpskirtWardenBlue - -- type: loadout - id: LoadoutUniformJumpskirtWardenGrey - category: JobsSecurity - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsSecurity - - !type:CharacterJobRequirement - jobs: - - Warden - items: - - ClothingUniformJumpskirtWardenGrey - -- type: loadout - id: LoadoutUniformJumpskirtHoSBlue - category: JobsSecurity - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsSecurity - - !type:CharacterJobRequirement - jobs: - - HeadOfSecurity - items: - - ClothingUniformJumpskirtHoSBlue - -- type: loadout - id: LoadoutUniformJumpskirtHoSGrey - category: JobsSecurity - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsSecurity - - !type:CharacterJobRequirement - jobs: - - HeadOfSecurity - items: - - ClothingUniformJumpskirtHoSGrey + - ClothingBeltSecurityWebbingFilled - type: loadout - id: LoadoutUniformJumpsuitSecFormal - category: JobsSecurity + id: LoadoutClothingBeltSecurity + category: JobsSecurityAUncategorized cost: 0 exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutUniformsSecurity + group: LoadoutSecurityBelt - !type:CharacterDepartmentRequirement departments: - Security items: - - ClothingUniformJumpsuitSecFormal + - ClothingBeltSecurityFilled - type: loadout - id: LoadoutUniformJumpsuitSecSummer - category: JobsSecurity + id: LoadoutClothingBeltHolster + category: JobsSecurityAUncategorized cost: 0 exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutUniformsSecurity + group: LoadoutSecurityBelt - !type:CharacterDepartmentRequirement departments: - Security items: - - ClothingUniformJumpsuitSecSummer + - ClothingBeltHolster -# Mask -- type: loadout - id: LoadoutSecurityMaskGasSwat - category: JobsSecurity - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutMaskSecurity - - !type:CharacterJobRequirement - jobs: - - Warden - - HeadOfSecurity - items: - - ClothingMaskGasSwat +# Ears -# Shoes +# Equipment +# Equipment, limit 3 selections +# Duplicate "Spare" equipment exists and shares the ItemGroup, for those officers who like to pack a spare magazine in their pocket, outside of what was issued to them. +# I knew a lot of people in my time working IRL Armed security that did this. - type: loadout - id: LoadoutSecurityShoesJackboots - category: JobsSecurity + id: LoadoutSecurityCombatKnife + category: JobsSecurityAUncategorized cost: 0 - exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutShoesSecurity + group: LoadoutSecurityEquipment - !type:CharacterDepartmentRequirement departments: - Security items: - - ClothingShoesBootsJack + - CombatKnife - type: loadout - id: LoadoutClothingShoesBootsCombat - category: JobsSecurity + id: LoadoutSecurityFlash + category: JobsSecurityAUncategorized cost: 0 - exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutShoesSecurity + group: LoadoutSecurityEquipment - !type:CharacterDepartmentRequirement departments: - Security items: - - ClothingShoesBootsCombatFilled + - Flash -# Eyes - type: loadout - id: LoadoutSecurityEyesHudSecurity - category: JobsSecurity + id: LoadoutMagazinePistol + category: JobsSecurityAUncategorized cost: 0 - exclusive: true requirements: + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutEyesSecurity + group: LoadoutSecurityEquipment - !type:CharacterDepartmentRequirement departments: - Security items: - - ClothingEyesHudSecurity + - MagazinePistol - type: loadout - id: ClothingEyesGlassesSunglasses - category: JobsSecurity - cost: 0 - exclusive: true + id: LoadoutMagazinePistolSpare + category: JobsSecurityAUncategorized + cost: 2 requirements: + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutEyesSecurity + group: LoadoutSecurityEquipment - !type:CharacterDepartmentRequirement departments: - Security items: - - ClothingEyesGlassesSunglasses + - MagazinePistol - type: loadout - id: LoadoutSecurityEyesEyepatchHudSecurity - category: JobsSecurity + id: LoadoutMagazinePistolRubber + category: JobsSecurityAUncategorized cost: 0 - exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutEyesSecurity + group: LoadoutSecurityEquipment - !type:CharacterDepartmentRequirement departments: - Security items: - - ClothingEyesEyepatchHudSecurity + - MagazinePistolRubber - type: loadout - id: LoadoutSecurityEyesHudSecurityPrescription - category: JobsSecurity - cost: 0 - exclusive: true + id: LoadoutMagazinePistolRubberSpare + category: JobsSecurityAUncategorized + cost: 2 requirements: - !type:CharacterItemGroupRequirement - group: LoadoutEyesSecurity + group: LoadoutSecurityEquipment - !type:CharacterDepartmentRequirement departments: - Security - - !type:CharacterTraitRequirement - traits: - - Nearsighted items: - - ClothingEyesPrescriptionHudSecurity + - MagazinePistolRubber - type: loadout - id: LoadoutClothingEyesGlassesSecurity - category: JobsSecurity + id: LoadoutSpeedLoaderMagnum + category: JobsSecurityAUncategorized cost: 2 exclusive: true requirements: + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutEyesSecurity + group: LoadoutSecurityEquipment - !type:CharacterDepartmentRequirement departments: - Security items: - - ClothingEyesGlassesSecurity + - SpeedLoaderMagnum -#Backpack - type: loadout - id: LoadoutClothingBackSecurity - category: JobsSecurity - cost: 0 + id: LoadoutSpeedLoaderMagnumSpare + category: JobsSecurityAUncategorized + cost: 4 exclusive: true requirements: + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutBackSecurity + group: LoadoutSecurityEquipment - !type:CharacterDepartmentRequirement departments: - Security items: - - ClothingBackpackSecurity + - SpeedLoaderMagnum - type: loadout - id: LoadoutClothingBackSecuritySatchel - category: JobsSecurity - cost: 0 + id: LoadoutSpeedLoaderMagnumRubber + category: JobsSecurityAUncategorized + cost: 2 exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutBackSecurity + group: LoadoutSecurityEquipment - !type:CharacterDepartmentRequirement departments: - Security items: - - ClothingBackpackSatchelSecurity + - SpeedLoaderMagnumRubber - type: loadout - id: LoadoutClothingBackSecurityDuffel - category: JobsSecurity - cost: 0 + id: LoadoutSpeedLoaderMagnumRubberSpare + category: JobsSecurityAUncategorized + cost: 4 exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutBackSecurity + group: LoadoutSecurityEquipment - !type:CharacterDepartmentRequirement departments: - Security items: - - ClothingBackpackDuffelSecurity + - SpeedLoaderMagnumRubber -# Head - type: loadout - id: LoadoutSecurityHeadHatBeret - category: JobsSecurity - cost: 0 + id: LoadoutMagazineMagnum + category: JobsSecurityAUncategorized + cost: 4 exclusive: true requirements: + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutHeadSecurity + group: LoadoutSecurityEquipment - !type:CharacterDepartmentRequirement departments: - Security items: - - ClothingHeadHatBeretSecurity + - MagazineMagnum - type: loadout - id: LoadoutClothingHeadHelmetBasic - category: JobsSecurity - cost: 0 + id: LoadoutMagazineMagnumRubber + category: JobsSecurityAUncategorized + cost: 4 exclusive: true requirements: + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutHeadSecurity + group: LoadoutSecurityEquipment - !type:CharacterDepartmentRequirement departments: - Security items: - - ClothingHeadHelmetBasic - -- type: loadout - id: LoadoutClothingHeadHatBeretBrigmedic - category: JobsSecurity - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHeadSecurity - - !type:CharacterJobRequirement - jobs: - - Brigmedic - items: - - ClothingHeadHatBeretBrigmedic - -- type: loadout - id: LoadoutClothingHeadHatBeretCorpsman - category: JobsSecurity - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHeadSecurity - - !type:CharacterJobRequirement - jobs: - - Brigmedic - items: - - ClothingHeadHatBeretCorpsman - -- type: loadout - id: LoadoutClothingHeadHatBeretWarden - category: JobsSecurity - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHeadSecurity - - !type:CharacterJobRequirement - jobs: - - Warden - items: - - ClothingHeadHatBeretWarden + - MagazineMagnumRubber - type: loadout - id: LoadoutClothingHeadHatBeretHoS - category: JobsSecurity - cost: 0 + id: LoadoutMagazineMagnumSpare + category: JobsSecurityAUncategorized + cost: 4 exclusive: true requirements: + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutHeadSecurity - - !type:CharacterJobRequirement - jobs: - - HeadOfSecurity - items: - - ClothingHeadHatBeretHoS - -- type: loadout - id: LoadoutSecurityHeadHelmetInsulated - category: JobsSecurity - cost: 1 - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHeadSecurity + group: LoadoutSecurityEquipment - !type:CharacterDepartmentRequirement departments: - Security items: - - ClothingHeadHelmetInsulated + - MagazineMagnum -# Belt - type: loadout - id: LoadoutSecurityBeltWebbing - category: JobsSecurity - cost: 0 + id: LoadoutMagazineMagnumRubberSpare + category: JobsSecurityAUncategorized + cost: 4 exclusive: true requirements: + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutBeltSecurity + group: LoadoutSecurityEquipment - !type:CharacterDepartmentRequirement departments: - Security items: - - ClothingBeltSecurityWebbingFilled - -- type: loadout - id: LoadoutClothingBeltCorpsmanWebbing - category: JobsSecurity - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBeltSecurity - - !type:CharacterJobRequirement - jobs: - - Brigmedic - items: - - ClothingBeltCorpsmanWebbingFilled + - MagazineMagnumRubber +# Service Weapon, limit 1 selection. +# Security no longer spawns with a weapon automatically, instead they have a free choice of security appropriate Duty Pistol in their loadouts. +# This category is universal to the entire security department by special request, so that players can choose their preferred Duty Pistol even if they aren't playing a security role. +# All lethal options come with a 1 hour security department playtime, as a basic shitter protection. - type: loadout - id: LoadoutClothingBeltSecurity - category: JobsSecurity + id: LoadoutSecurityDisabler + category: JobsSecurityAUncategorized cost: 0 - exclusive: true + canBeHeirloom: true + guideEntry: SecurityWeapons requirements: - !type:CharacterItemGroupRequirement - group: LoadoutBeltSecurity + group: LoadoutSecurityWeapons - !type:CharacterDepartmentRequirement departments: - Security items: - - ClothingBeltSecurityFilled + - WeaponDisabler - type: loadout - id: LoadoutClothingBeltHolster - category: JobsSecurity + id: LoadoutSecurityMk58 + category: JobsSecurityAUncategorized cost: 0 - exclusive: true + canBeHeirloom: true + guideEntry: SecurityWeapons requirements: + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutBeltSecurity + group: LoadoutSecurityWeapons - !type:CharacterDepartmentRequirement departments: - Security items: - - ClothingBeltHolster - -#Gloves - -- type: loadout - id: LoadoutClothingHandsGlovesNitrile - category: JobsSecurity - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutGlovesSecurity - - !type:CharacterJobRequirement - jobs: - - Brigmedic - items: - - ClothingHandsGlovesNitrile - -# Outerwear + - WeaponPistolMk58Security - type: loadout - id: LoadoutClothingOuterArmorPlateCarrier - category: JobsSecurity + id: LoadoutSecurityMk58NonLethal + category: JobsSecurityAUncategorized cost: 0 - exclusive: true + canBeHeirloom: true + guideEntry: SecurityWeapons requirements: - !type:CharacterItemGroupRequirement - group: LoadoutOuterSecurity + group: LoadoutSecurityWeapons - !type:CharacterDepartmentRequirement departments: - Security items: - - ClothingOuterArmorPlateCarrier + - WeaponPistolMk58SecurityNonlethal - type: loadout - id: LoadoutClothingOuterArmorDuraVest - category: JobsSecurity + id: LoadoutSecurityRevolver + category: JobsSecurityAUncategorized cost: 0 - exclusive: true + canBeHeirloom: true + guideEntry: SecurityWeapons requirements: + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutOuterSecurity + group: LoadoutSecurityWeapons - !type:CharacterDepartmentRequirement departments: - Security items: - - ClothingOuterArmorDuraVest + - WeaponRevolverInspectorSecurity - type: loadout - id: LoadoutClothingOuterArmorBasic - category: JobsSecurity + id: LoadoutSecurityRevolverNonLethal + category: JobsSecurityAUncategorized cost: 0 - exclusive: true + canBeHeirloom: true + guideEntry: SecurityWeapons requirements: - !type:CharacterItemGroupRequirement - group: LoadoutOuterSecurity + group: LoadoutSecurityWeapons - !type:CharacterDepartmentRequirement departments: - Security items: - - ClothingOuterArmorBasic + - WeaponRevolverInspectorNonLethalSecurity - type: loadout - id: LoadoutClothingOuterArmorSlim - category: JobsSecurity - cost: 0 - exclusive: true + id: LoadoutSecurityRevolverDeckard + category: JobsSecurityAUncategorized + cost: 1 + canBeHeirloom: true + guideEntry: SecurityWeapons requirements: + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutOuterSecurity + group: LoadoutSecurityWeapons - !type:CharacterDepartmentRequirement departments: - Security items: - - ClothingOuterArmorBasicSlim - -- type: loadout - id: LoadoutClothingOuterCoatDetective - category: JobsSecurity - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutOuterSecurity - - !type:CharacterJobRequirement - jobs: - - Detective - items: - - ClothingOuterCoatDetective - -- type: loadout - id: LoadoutOuterVestDetective - category: JobsSecurity - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutOuterSecurity - - !type:CharacterJobRequirement - jobs: - - Detective - items: - - ClothingOuterVestDetective - -- type: loadout - id: LoadoutClothingOuterCoatWarden - category: JobsSecurity - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutOuterSecurity - - !type:CharacterJobRequirement - jobs: - - Warden - items: - - ClothingOuterCoatWarden - -- type: loadout - id: LoadoutClothingOuterCoatHoSTrench - category: JobsSecurity - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutOuterSecurity - - !type:CharacterJobRequirement - jobs: - - HeadOfSecurity - items: - - ClothingOuterCoatHoSTrench - -- type: loadout - id: LoadoutClothingOuterWinterHoS - category: JobsSecurity - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutOuterSecurity - - !type:CharacterJobRequirement - jobs: - - HeadOfSecurity - items: - - ClothingOuterWinterHoS - -# Neck -- type: loadout - id: LoadoutClothingNeckCloakHos - category: JobsSecurity - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutNeckSecurity - - !type:CharacterJobRequirement - jobs: - - HeadOfSecurity - items: - - ClothingNeckCloakHos - -- type: loadout - id: LoadoutClothingNeckMantleHOS - category: JobsSecurity - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutNeckSecurity - - !type:CharacterJobRequirement - jobs: - - HeadOfSecurity - items: - - ClothingNeckMantleHOS + - WeaponRevolverDeckardSecurity - type: loadout - id: LoadoutBedsheetBrigmedic - category: JobsSecurity - cost: 0 - exclusive: true + id: LoadoutSecurityRevolverDeckardNonLethal + category: JobsSecurityAUncategorized + cost: 1 + canBeHeirloom: true + guideEntry: SecurityWeapons requirements: - !type:CharacterItemGroupRequirement - group: LoadoutNeckSecurity - - !type:CharacterJobRequirement - jobs: - - Brigmedic + group: LoadoutSecurityWeapons + - !type:CharacterDepartmentRequirement + departments: + - Security items: - - BedsheetBrigmedic + - WeaponRevolverDeckardNonLethalSecurity -# Equipment, limit 3 selections -# Duplicate "Spare" equipment exists and shares the ItemGroup, for those officers who like to pack a spare magazine in their pocket, outside of what was issued to them. -# I knew a lot of people in my time working IRL Armed security that did this. - type: loadout - id: LoadoutSecurityCombatKnife - category: JobsSecurity - cost: 0 + id: LoadoutSecurityPistolN1984 + category: JobsSecurityAUncategorized + cost: 5 + canBeHeirloom: true + guideEntry: SecurityWeapons requirements: + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutEquipmentSecurity + group: LoadoutSecurityWeapons - !type:CharacterDepartmentRequirement departments: - Security items: - - CombatKnife + - WeaponPistolN1984Security - type: loadout - id: LoadoutSecurityFlash - category: JobsSecurity - cost: 0 + id: LoadoutSecurityPistolN1984NonLethal + category: JobsSecurityAUncategorized + cost: 5 + canBeHeirloom: true + guideEntry: SecurityWeapons requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutSecurityWeapons - !type:CharacterDepartmentRequirement departments: - Security items: - - Flash + - WeaponPistolN1984SecurityNonLethal - type: loadout - id: LoadoutMagazinePistol - category: JobsSecurity - cost: 0 + id: LoadoutSecurityPistolViper + category: JobsSecurityAUncategorized + cost: 2 + canBeHeirloom: true + guideEntry: SecurityWeapons requirements: - !type:CharacterDepartmentTimeRequirement department: Security min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutEquipmentSecurity + group: LoadoutSecurityWeapons - !type:CharacterDepartmentRequirement departments: - Security items: - - MagazinePistol + - WeaponPistolViperSecurity - type: loadout - id: LoadoutMagazinePistolSpare - category: JobsSecurity + id: LoadoutSecurityPistolViperNonLethal + category: JobsSecurityAUncategorized cost: 2 + canBeHeirloom: true + guideEntry: SecurityWeapons requirements: - - !type:CharacterDepartmentTimeRequirement - department: Security - min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutEquipmentSecurity + group: LoadoutSecurityWeapons - !type:CharacterDepartmentRequirement departments: - Security items: - - MagazinePistol + - WeaponPistolViperSecurityNonLethal - type: loadout - id: LoadoutMagazinePistolRubber - category: JobsSecurity - cost: 0 + id: LoadoutSecurityPistolViperWood + category: JobsSecurityAUncategorized + cost: 2 + canBeHeirloom: true + guideEntry: SecurityWeapons requirements: + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 108000 # 30 hours - !type:CharacterItemGroupRequirement - group: LoadoutEquipmentSecurity + group: LoadoutSecurityWeapons - !type:CharacterDepartmentRequirement departments: - Security items: - - MagazinePistolRubber + - WeaponPistolViperWoodSecurity - type: loadout - id: LoadoutMagazinePistolRubberSpare - category: JobsSecurity - cost: 2 + id: LoadoutSecurityEquipmentTruncheon + category: JobsSecurityAUncategorized + cost: 3 + canBeHeirloom: true + guideEntry: SecurityWeapons requirements: + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutEquipmentSecurity + group: LoadoutSecurityWeapons - !type:CharacterDepartmentRequirement departments: - Security + - !type:CharacterSpeciesRequirement + species: + - Oni items: - - MagazinePistolRubber + - Truncheon - type: loadout - id: LoadoutSpeedLoaderMagnum - category: JobsSecurity - cost: 0 - exclusive: true + id: LoadoutSecurityPistolSvalin + category: JobsSecurityAUncategorized + cost: 1 + canBeHeirloom: true + guideEntry: SecurityWeapons requirements: - !type:CharacterDepartmentTimeRequirement department: Security min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutEquipmentSecurity + group: LoadoutSecurityWeapons - !type:CharacterDepartmentRequirement departments: - Security items: - - SpeedLoaderMagnum + - WeaponLaserSvalinn - type: loadout - id: LoadoutSpeedLoaderMagnumSpare - category: JobsSecurity + id: LoadoutSecurityEnergyGunMini + category: JobsSecurityAUncategorized cost: 2 - exclusive: true + canBeHeirloom: true + guideEntry: SecurityWeapons requirements: - !type:CharacterDepartmentTimeRequirement department: Security min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutEquipmentSecurity + group: LoadoutSecurityWeapons - !type:CharacterDepartmentRequirement departments: - Security items: - - SpeedLoaderMagnum + - WeaponEnergyGunMiniSecurity - type: loadout - id: LoadoutSpeedLoaderMagnumRubber - category: JobsSecurity - cost: 0 - exclusive: true + id: LoadoutSecurityEnergyGunPistol + category: JobsSecurityAUncategorized + cost: 2 + canBeHeirloom: true + guideEntry: SecurityWeapons requirements: + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutEquipmentSecurity + group: LoadoutSecurityWeapons - !type:CharacterDepartmentRequirement departments: - Security items: - - SpeedLoaderMagnumRubber + - WeaponEnergyGunPistolSecurity - type: loadout - id: LoadoutSpeedLoaderMagnumRubberSpare - category: JobsSecurity - cost: 2 - exclusive: true + id: LoadoutSecurityPistolPollock + category: JobsSecurityAUncategorized + cost: 1 + canBeHeirloom: true + guideEntry: SecurityWeapons requirements: + - !type:CharacterDepartmentTimeRequirement + department: Security + min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutEquipmentSecurity + group: LoadoutSecurityWeapons - !type:CharacterDepartmentRequirement departments: - Security items: - - SpeedLoaderMagnumRubber + - WeaponPistolPollockSecurity - type: loadout - id: LoadoutMagazineMagnum - category: JobsSecurity - cost: 2 - exclusive: true + id: LoadoutSecurityPistolPollockNonlethal + category: JobsSecurityAUncategorized + cost: 1 + canBeHeirloom: true + guideEntry: SecurityWeapons requirements: - - !type:CharacterDepartmentTimeRequirement - department: Security - min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutEquipmentSecurity + group: LoadoutSecurityWeapons - !type:CharacterDepartmentRequirement departments: - Security items: - - MagazineMagnum + - WeaponPistolPollockNonlethalSecurity - type: loadout - id: LoadoutMagazineMagnumRubber - category: JobsSecurity - cost: 2 - exclusive: true + id: LoadoutSecurityRevolverSnub + category: JobsSecurityAUncategorized + cost: 3 + canBeHeirloom: true + guideEntry: SecurityWeapons requirements: - !type:CharacterDepartmentTimeRequirement department: Security min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutEquipmentSecurity + group: LoadoutSecurityWeapons - !type:CharacterDepartmentRequirement departments: - Security items: - - MagazineMagnumRubber + - WeaponRevolverSnubSecurity - type: loadout - id: LoadoutMagazineMagnumSpare - category: JobsSecurity - cost: 2 - exclusive: true + id: LoadoutSecurityRevolverSnubNonlethal + category: JobsSecurityAUncategorized + cost: 3 + canBeHeirloom: true + guideEntry: SecurityWeapons requirements: - - !type:CharacterDepartmentTimeRequirement - department: Security - min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutEquipmentSecurity + group: LoadoutSecurityWeapons - !type:CharacterDepartmentRequirement departments: - Security items: - - MagazineMagnum + - WeaponRevolverSnubNonlethalSecurity - type: loadout - id: LoadoutMagazineMagnumRubberSpare - category: JobsSecurity - cost: 2 - exclusive: true + id: LoadoutSecurityRevolverK38Master + category: JobsSecurityAUncategorized + cost: 1 + canBeHeirloom: true + guideEntry: SecurityWeapons requirements: - !type:CharacterDepartmentTimeRequirement department: Security min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutEquipmentSecurity + group: LoadoutSecurityWeapons - !type:CharacterDepartmentRequirement departments: - Security items: - - MagazineMagnumRubber + - WeaponRevolverK38MasterSecurity -# Service Weapon, limit 1 selection. -# Security no longer spawns with a weapon automatically, instead they have a free choice of security appropriate Duty Pistol in their loadouts. -# This category is universal to the entire security department by special request, so that players can choose their preferred Duty Pistol even if they aren't playing a security role. -# All lethal options come with a 1 hour security department playtime, as a basic shitter protection. - type: loadout - id: LoadoutSecurityDisabler - category: JobsSecurity - cost: 0 + id: LoadoutSecurityRevolverK38MasterNonlethal + category: JobsSecurityAUncategorized + cost: 1 + canBeHeirloom: true + guideEntry: SecurityWeapons requirements: - !type:CharacterItemGroupRequirement - group: LoadoutWeaponSecurity + group: LoadoutSecurityWeapons - !type:CharacterDepartmentRequirement departments: - Security items: - - WeaponDisabler + - WeaponRevolverK38MasterNonlethalSecurity - type: loadout - id: LoadoutSecurityMk58 - category: JobsSecurity - cost: 0 + id: LoadoutSecurityRevolverFitz + category: JobsSecurityAUncategorized + cost: 2 + canBeHeirloom: true + guideEntry: SecurityWeapons requirements: - !type:CharacterDepartmentTimeRequirement department: Security min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutWeaponSecurity + group: LoadoutSecurityWeapons - !type:CharacterDepartmentRequirement departments: - Security items: - - WeaponPistolMk58Security + - WeaponRevolverFitzSecurity - type: loadout - id: LoadoutSecurityMk58NonLethal - category: JobsSecurity - cost: 0 + id: LoadoutSecurityRevolverFitzNonlethal + category: JobsSecurityAUncategorized + cost: 2 + canBeHeirloom: true + guideEntry: SecurityWeapons requirements: - !type:CharacterItemGroupRequirement - group: LoadoutWeaponSecurity + group: LoadoutSecurityWeapons - !type:CharacterDepartmentRequirement departments: - Security items: - - WeaponPistolMk58SecurityNonlethal + - WeaponRevolverFitzNonlethalSecurity - type: loadout - id: LoadoutSecurityRevolver - category: JobsSecurity - cost: 0 + id: LoadoutSecurityRevolverPython + category: JobsSecurityAUncategorized + cost: 5 + canBeHeirloom: true + guideEntry: SecurityWeapons requirements: - !type:CharacterDepartmentTimeRequirement department: Security min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutWeaponSecurity + group: LoadoutSecurityWeapons - !type:CharacterDepartmentRequirement departments: - Security items: - - WeaponRevolverInspectorSecurity + - WeaponRevolverPythonSecurity - type: loadout - id: LoadoutSecurityRevolverNonLethal - category: JobsSecurity - cost: 0 + id: LoadoutSecurityRevolverPythonNonlethal + category: JobsSecurityAUncategorized + cost: 5 + canBeHeirloom: true + guideEntry: SecurityWeapons requirements: - !type:CharacterItemGroupRequirement - group: LoadoutWeaponSecurity + group: LoadoutSecurityWeapons - !type:CharacterDepartmentRequirement departments: - Security items: - - WeaponRevolverInspectorNonLethalSecurity + - WeaponRevolverPythonNonlethalSecurity +# Eyes - type: loadout - id: LoadoutSecurityRevolverDeckard - category: JobsSecurity - cost: 1 + id: LoadoutSecurityEyesHudSecurity + category: JobsSecurityAUncategorized + cost: 0 + exclusive: true requirements: - - !type:CharacterDepartmentTimeRequirement - department: Security - min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutWeaponSecurity + group: LoadoutSecurityEyes - !type:CharacterDepartmentRequirement departments: - Security items: - - WeaponRevolverDeckardSecurity + - ClothingEyesHudSecurity - type: loadout - id: LoadoutSecurityRevolverDeckardNonLethal - category: JobsSecurity - cost: 1 + id: ClothingEyesGlassesSunglasses + category: JobsSecurityAUncategorized + cost: 0 + exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutWeaponSecurity + group: LoadoutSecurityEyes - !type:CharacterDepartmentRequirement departments: - Security items: - - WeaponRevolverDeckardNonLethalSecurity + - ClothingEyesGlassesSunglasses - type: loadout - id: LoadoutSecurityPistolN1984 - category: JobsSecurity - cost: 2 + id: LoadoutSecurityEyesEyepatchHudSecurity + category: JobsSecurityAUncategorized + cost: 0 + exclusive: true requirements: - - !type:CharacterDepartmentTimeRequirement - department: Security - min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutWeaponSecurity + group: LoadoutSecurityEyes - !type:CharacterDepartmentRequirement departments: - Security items: - - WeaponPistolN1984Security + - ClothingEyesEyepatchHudSecurity - type: loadout - id: LoadoutSecurityPistolN1984NonLethal - category: JobsSecurity - cost: 2 + id: LoadoutSecurityEyesHudSecurityPrescription + category: JobsSecurityAUncategorized + cost: 0 + exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutWeaponSecurity + group: LoadoutSecurityEyes - !type:CharacterDepartmentRequirement departments: - Security + - !type:CharacterTraitRequirement + traits: + - Nearsighted items: - - WeaponPistolN1984SecurityNonLethal + - ClothingEyesPrescriptionHudSecurity - type: loadout - id: LoadoutSecurityPistolViper - category: JobsSecurity + id: LoadoutClothingEyesGlassesSecurity + category: JobsSecurityAUncategorized cost: 2 + exclusive: true requirements: - - !type:CharacterDepartmentTimeRequirement - department: Security - min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutWeaponSecurity + group: LoadoutSecurityEyes - !type:CharacterDepartmentRequirement departments: - Security items: - - WeaponPistolViperSecurity + - ClothingEyesGlassesSecurity + +# Gloves +# Head - type: loadout - id: LoadoutSecurityPistolViperNonLethal - category: JobsSecurity - cost: 2 + id: LoadoutSecurityHeadHatBeret + category: JobsSecurityAUncategorized + cost: 0 + exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutWeaponSecurity + group: LoadoutSecurityHead - !type:CharacterDepartmentRequirement departments: - Security items: - - WeaponPistolViperSecurityNonLethal + - ClothingHeadHatBeretSecurity - type: loadout - id: LoadoutSecurityPistolViperWood - category: JobsSecurity - cost: 2 + id: LoadoutClothingHeadHelmetBasic + category: JobsSecurityAUncategorized + cost: 0 + exclusive: true requirements: - - !type:CharacterDepartmentTimeRequirement - department: Security - min: 108000 # 30 hours - !type:CharacterItemGroupRequirement - group: LoadoutWeaponSecurity + group: LoadoutSecurityHead - !type:CharacterDepartmentRequirement departments: - Security items: - - WeaponPistolViperWoodSecurity + - ClothingHeadHelmetBasic - type: loadout - id: LoadoutSecurityEquipmentTruncheon - category: JobsSecurity - cost: 3 + id: LoadoutSecurityHeadHelmetInsulated + category: JobsSecurityAUncategorized + cost: 1 requirements: - - !type:CharacterDepartmentTimeRequirement - department: Security - min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutWeaponSecurity + group: LoadoutSecurityHead - !type:CharacterDepartmentRequirement departments: - Security - - !type:CharacterSpeciesRequirement - species: - - Oni items: - - Truncheon + - ClothingHeadHelmetInsulated +# Id + +# Neck + +# Mask - type: loadout - id: LoadoutSecurityPistolSvalin - category: JobsSecurity - cost: 1 + id: LoadoutSecurityMaskGasSwat + category: JobsSecurityAUncategorized + cost: 0 + exclusive: true requirements: - - !type:CharacterDepartmentTimeRequirement - department: Security - min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutWeaponSecurity - - !type:CharacterDepartmentRequirement - departments: - - Security + group: LoadoutSecurityMask + - !type:CharacterJobRequirement + jobs: + - Warden + - HeadOfSecurity items: - - WeaponLaserSvalinn + - ClothingMaskGasSwat +# Outer - type: loadout - id: LoadoutSecurityEnergyGunMini - category: JobsSecurity - cost: 2 + id: LoadoutClothingOuterArmorPlateCarrier + category: JobsSecurityAUncategorized + cost: 0 + exclusive: true requirements: - - !type:CharacterDepartmentTimeRequirement - department: Security - min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutWeaponSecurity + group: LoadoutSecurityOuter - !type:CharacterDepartmentRequirement departments: - Security items: - - WeaponEnergyGunMiniSecurity + - ClothingOuterArmorPlateCarrier - type: loadout - id: LoadoutSecurityEnergyGunPistol - category: JobsSecurity - cost: 2 + id: LoadoutClothingOuterArmorDuraVest + category: JobsSecurityAUncategorized + cost: 0 + exclusive: true requirements: - - !type:CharacterDepartmentTimeRequirement - department: Security - min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutWeaponSecurity + group: LoadoutSecurityOuter - !type:CharacterDepartmentRequirement departments: - Security items: - - WeaponEnergyGunPistolSecurity + - ClothingOuterArmorDuraVest - type: loadout - id: LoadoutSecurityPistolPollock - category: JobsSecurity - cost: 1 + id: LoadoutClothingOuterArmorBasic + category: JobsSecurityAUncategorized + cost: 0 + exclusive: true requirements: - - !type:CharacterDepartmentTimeRequirement - department: Security - min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutWeaponSecurity + group: LoadoutSecurityOuter - !type:CharacterDepartmentRequirement departments: - Security items: - - WeaponPistolPollockSecurity + - ClothingOuterArmorBasic - type: loadout - id: LoadoutSecurityPistolPollockNonlethal - category: JobsSecurity - cost: 1 + id: LoadoutClothingOuterArmorSlim + category: JobsSecurityAUncategorized + cost: 0 + exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutWeaponSecurity + group: LoadoutSecurityOuter - !type:CharacterDepartmentRequirement departments: - Security items: - - WeaponPistolPollockNonlethalSecurity + - ClothingOuterArmorBasicSlim +# Shoes - type: loadout - id: LoadoutSecurityRevolverSnub - category: JobsSecurity - cost: 2 + id: LoadoutSecurityShoesJackboots + category: JobsSecurityAUncategorized + cost: 0 + exclusive: true requirements: - - !type:CharacterDepartmentTimeRequirement - department: Security - min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutWeaponSecurity + group: LoadoutSecurityShoes - !type:CharacterDepartmentRequirement departments: - Security items: - - WeaponRevolverSnubSecurity + - ClothingShoesBootsJack - type: loadout - id: LoadoutSecurityRevolverSnubNonlethal - category: JobsSecurity - cost: 2 + id: LoadoutClothingShoesBootsCombat + category: JobsSecurityAUncategorized + cost: 0 + exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutWeaponSecurity + group: LoadoutSecurityShoes - !type:CharacterDepartmentRequirement departments: - Security items: - - WeaponRevolverSnubNonlethalSecurity + - ClothingShoesBootsCombatFilled +# Uniforms - type: loadout - id: LoadoutSecurityRevolverK38Master - category: JobsSecurity - cost: 1 + id: LoadoutSecurityUniformJumpsuitBlue + category: JobsSecurityAUncategorized + cost: 0 + exclusive: true requirements: - - !type:CharacterDepartmentTimeRequirement - department: Security - min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutWeaponSecurity + group: LoadoutSecurityUniforms - !type:CharacterDepartmentRequirement departments: - Security items: - - WeaponRevolverK38MasterSecurity + - ClothingUniformJumpsuitSecBlue - type: loadout - id: LoadoutSecurityRevolverK38MasterNonlethal - category: JobsSecurity - cost: 1 + id: LoadoutSecurityUniformJumpsuitGrey + category: JobsSecurityAUncategorized + cost: 0 + exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutWeaponSecurity + group: LoadoutSecurityUniforms - !type:CharacterDepartmentRequirement departments: - Security items: - - WeaponRevolverK38MasterNonlethalSecurity + - ClothingUniformJumpsuitSecGrey - type: loadout - id: LoadoutSecurityRevolverFitz - category: JobsSecurity - cost: 1 + id: LoadoutSecurityUniformJumpskirtGrey + category: JobsSecurityAUncategorized + cost: 0 + exclusive: true requirements: - - !type:CharacterDepartmentTimeRequirement - department: Security - min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutWeaponSecurity + group: LoadoutSecurityUniforms - !type:CharacterDepartmentRequirement departments: - Security items: - - WeaponRevolverFitzSecurity + - ClothingUniformJumpskirtSecGrey - type: loadout - id: LoadoutSecurityRevolverFitzNonlethal - category: JobsSecurity - cost: 1 + id: LoadoutSecurityUniformJumpskirtBlue + category: JobsSecurityAUncategorized + cost: 0 + exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutWeaponSecurity + group: LoadoutSecurityUniforms - !type:CharacterDepartmentRequirement departments: - Security items: - - WeaponRevolverFitzNonlethalSecurity + - ClothingUniformJumpskirtSecBlue - type: loadout - id: LoadoutSecurityRevolverPython - category: JobsSecurity - cost: 3 + id: LoadoutUniformJumpsuitSecFormal + category: JobsSecurityAUncategorized + cost: 0 + exclusive: true requirements: - - !type:CharacterDepartmentTimeRequirement - department: Security - min: 3600 # 1 hours - !type:CharacterItemGroupRequirement - group: LoadoutWeaponSecurity + group: LoadoutSecurityUniforms - !type:CharacterDepartmentRequirement departments: - Security items: - - WeaponRevolverPythonSecurity + - ClothingUniformJumpsuitSecFormal - type: loadout - id: LoadoutSecurityRevolverPythonNonlethal - category: JobsSecurity - cost: 3 + id: LoadoutUniformJumpsuitSecSummer + category: JobsSecurityAUncategorized + cost: 0 + exclusive: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutWeaponSecurity + group: LoadoutSecurityUniforms - !type:CharacterDepartmentRequirement departments: - Security items: - - WeaponRevolverPythonNonlethalSecurity + - ClothingUniformJumpsuitSecSummer diff --git a/Resources/Prototypes/Loadouts/Jobs/Security/warden.yml b/Resources/Prototypes/Loadouts/Jobs/Security/warden.yml new file mode 100644 index 00000000000..45ef25e326a --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Security/warden.yml @@ -0,0 +1,107 @@ +# Warden +# Backpacks + +# Belt + +# Ears + +# Equipment + +# Eyes + +# Gloves + +# Head +- type: loadout + id: LoadoutClothingHeadHatBeretWarden + category: JobsSecurityWarden + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutWardenHead + - !type:CharacterJobRequirement + jobs: + - Warden + items: + - ClothingHeadHatBeretWarden + +# Id + +# Neck + +# Mask + +# Outer +- type: loadout + id: LoadoutClothingOuterCoatWarden + category: JobsSecurityWarden + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutWardenOuter + - !type:CharacterJobRequirement + jobs: + - Warden + items: + - ClothingOuterCoatWarden + +# Shoes + +# Uniforms +- type: loadout + id: LoadoutUniformJumpsuitWardenBlue + category: JobsSecurityWarden + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutWardenUniforms + - !type:CharacterJobRequirement + jobs: + - Warden + items: + - ClothingUniformJumpsuitWardenBlue + +- type: loadout + id: LoadoutUniformJumpsuitWardenGrey + category: JobsSecurityWarden + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutWardenUniforms + - !type:CharacterJobRequirement + jobs: + - Warden + items: + - ClothingUniformJumpsuitWardenGrey + +- type: loadout + id: LoadoutUniformJumpskirtWardenBlue + category: JobsSecurityWarden + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutWardenUniforms + - !type:CharacterJobRequirement + jobs: + - Warden + items: + - ClothingUniformJumpskirtWardenBlue + +- type: loadout + id: LoadoutUniformJumpskirtWardenGrey + category: JobsSecurityWarden + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutWardenUniforms + - !type:CharacterJobRequirement + jobs: + - Warden + items: + - ClothingUniformJumpskirtWardenGrey diff --git a/Resources/Prototypes/Loadouts/Jobs/Service/bartender.yml b/Resources/Prototypes/Loadouts/Jobs/Service/bartender.yml new file mode 100644 index 00000000000..e2b21a63dfa --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Service/bartender.yml @@ -0,0 +1,232 @@ +# Bartender +# Backpacks + +# Belt + +# Ears + +# Equipment +- type: loadout + id: LoadoutServiceBartenderBoxBeanbags + category: JobsServiceBartender + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBartenderAmmo + - !type:CharacterJobRequirement + jobs: + - Bartender + items: + - BoxBeanbag + +- type: loadout + id: LoadoutServiceBartenderBoxLightRifleRubber + category: JobsServiceBartender + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBartenderAmmo + - !type:CharacterJobRequirement + jobs: + - Bartender + items: + - MagazineBoxLightRifleRubber + +- type: loadout + id: LoadoutServiceBartenderShotgunDoubleBarreledRubber + category: JobsServiceBartender + cost: 0 + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBartenderWeapon + - !type:CharacterJobRequirement + jobs: + - Bartender + items: + - WeaponShotgunDoubleBarreledRubber + +- type: loadout + id: LoadoutServiceBartenderMosinRubber + category: JobsServiceBartender + cost: 0 + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBartenderWeapon + - !type:CharacterJobRequirement + jobs: + - Bartender + items: + - WeaponSniperMosinRubber + +# Eyes + +# Gloves + +# Head +- type: loadout + id: LoadoutServiceHeadBartenderNt + category: JobsServiceBartender + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBartenderHead + - !type:CharacterJobRequirement + jobs: + - Bartender + items: + - ClothingHeadHatFlatcapBartenderNanotrasen + +- type: loadout + id: LoadoutServiceHeadBartenderIdris + category: JobsServiceBartender + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBartenderHead + - !type:CharacterJobRequirement + jobs: + - Bartender + items: + - ClothingHeadHatFlatcapBartenderIdris + +- type: loadout + id: LoadoutServiceHeadBartenderOrion + category: JobsServiceBartender + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBartenderHead + - !type:CharacterJobRequirement + jobs: + - Bartender + items: + - ClothingHeadHatFlatcapBartenderOrion + +# Id + +# Neck + +# Mask + +# Outer +- type: loadout + id: LoadoutServiceBartenderArmorDuraVest + category: JobsServiceBartender + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBartenderOuter + - !type:CharacterJobRequirement + jobs: + - Bartender + items: + - ClothingOuterArmorDuraVest + +- type: loadout + id: LoadoutServiceOuterBartenderNt + category: JobsServiceBartender + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBartenderOuter + - !type:CharacterJobRequirement + jobs: + - Bartender + items: + - ClothingOuterVestNt + +- type: loadout + id: LoadoutServiceOuterBartenderIdris + category: JobsServiceBartender + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBartenderOuter + - !type:CharacterJobRequirement + jobs: + - Bartender + items: + - ClothingOuterVestIdris + +- type: loadout + id: LoadoutServiceOuterBartenderOrion + category: JobsServiceBartender + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBartenderOuter + - !type:CharacterJobRequirement + jobs: + - Bartender + items: + - ClothingOuterVestOrion + +# Shoes + +# Uniforms +- type: loadout + id: LoadoutServiceBartenderUniformPurple + category: JobsServiceBartender + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBartenderUniforms + - !type:CharacterJobRequirement + jobs: + - Bartender + items: + - ClothingUniformJumpsuitBartenderPurple + +- type: loadout + id: LoadoutServiceJumpsuitBartenderNt + category: JobsServiceBartender + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBartenderUniforms + - !type:CharacterJobRequirement + jobs: + - Bartender + items: + - ClothingUniformJumpsuitBartenderNt + +- type: loadout + id: LoadoutServiceJumpsuitBartenderIdris + category: JobsServiceBartender + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBartenderUniforms + - !type:CharacterJobRequirement + jobs: + - Bartender + items: + - ClothingUniformJumpsuitBartenderIdris + +- type: loadout + id: LoadoutServiceJumpsuitBartenderOrion + category: JobsServiceBartender + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBartenderUniforms + - !type:CharacterJobRequirement + jobs: + - Bartender + items: + - ClothingUniformJumpsuitBartenderOrion diff --git a/Resources/Prototypes/Loadouts/Jobs/Service/botanist.yml b/Resources/Prototypes/Loadouts/Jobs/Service/botanist.yml new file mode 100644 index 00000000000..c34eb3f55ab --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Service/botanist.yml @@ -0,0 +1,81 @@ +# Botanist +# Backpacks + +# Belt + +# Ears + +# Equipment + +# Eyes + +# Gloves + +# Head + +# Id + +# Neck + +# Mask + +# Outer + +# Shoes + +# Uniforms +- type: loadout + id: LoadoutServiceBotanistUniformOveralls + category: JobsServiceBotanist + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBotanistUniforms + - !type:CharacterJobRequirement + jobs: + - Botanist + items: + - ClothingUniformOveralls + +- type: loadout + id: LoadoutServiceJumpsuitHydroponicsNt + category: JobsServiceBotanist + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBotanistUniforms + - !type:CharacterJobRequirement + jobs: + - Botanist + items: + - ClothingUniformJumpsuitHydroponicsNt + +- type: loadout + id: LoadoutServiceJumpsuitHydroponicsIdris + category: JobsServiceBotanist + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBotanistUniforms + - !type:CharacterJobRequirement + jobs: + - Botanist + items: + - ClothingUniformJumpsuitHydroponicsIdris + +- type: loadout + id: LoadoutServiceJumpsuitHydroponicsOrion + category: JobsServiceBotanist + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutBotanistUniforms + - !type:CharacterJobRequirement + jobs: + - Botanist + items: + - ClothingUniformJumpsuitHydroponicsOrion diff --git a/Resources/Prototypes/Loadouts/Jobs/Service/chef.yml b/Resources/Prototypes/Loadouts/Jobs/Service/chef.yml new file mode 100644 index 00000000000..abdbbea5b40 --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Service/chef.yml @@ -0,0 +1,149 @@ +# Chef +# Backpacks + +# Belt + +# Ears + +# Equipment + +# Eyes + +# Gloves + +# Head +- type: loadout + id: LoadoutServiceHeadChefNt + category: JobsServiceChef + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChefHead + - !type:CharacterJobRequirement + jobs: + - Chef + items: + - ClothingHeadHatChefNt + +- type: loadout + id: LoadoutServiceHeadChefIdris + category: JobsServiceChef + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChefHead + - !type:CharacterJobRequirement + jobs: + - Chef + items: + - ClothingHeadHatChefIdris + +- type: loadout + id: LoadoutServiceHeadChefOrion + category: JobsServiceChef + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChefHead + - !type:CharacterJobRequirement + jobs: + - Chef + items: + - ClothingHeadHatChefOrion + +# Id + +# Neck + +# Mask + +# Outer +- type: loadout + id: LoadoutServiceOuterChefNt + category: JobsServiceChef + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChefOuter + - !type:CharacterJobRequirement + jobs: + - Chef + items: + - ClothingOuterJacketChefNt + +- type: loadout + id: LoadoutServiceOuterChefIdris + category: JobsServiceChef + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChefOuter + - !type:CharacterJobRequirement + jobs: + - Chef + items: + - ClothingOuterJacketChefIdris + +- type: loadout + id: LoadoutServiceOuterChefOrion + category: JobsServiceChef + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChefOuter + - !type:CharacterJobRequirement + jobs: + - Chef + items: + - ClothingOuterJacketChefOrion + +# Shoes + +# Uniforms +- type: loadout + id: LoadoutServiceJumpsuitChefNt + category: JobsServiceChef + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChefUniforms + - !type:CharacterJobRequirement + jobs: + - Chef + items: + - ClothingUniformJumpsuitChefNt + +- type: loadout + id: LoadoutServiceJumpsuitChefIdris + category: JobsServiceChef + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChefUniforms + - !type:CharacterJobRequirement + jobs: + - Chef + items: + - ClothingUniformJumpsuitChefIdris + +- type: loadout + id: LoadoutServiceJumpsuitChefOrion + category: JobsServiceChef + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutChefUniforms + - !type:CharacterJobRequirement + jobs: + - Chef + items: + - ClothingUniformJumpsuitChefOrion diff --git a/Resources/Prototypes/Loadouts/Jobs/Service/clown.yml b/Resources/Prototypes/Loadouts/Jobs/Service/clown.yml new file mode 100644 index 00000000000..666fddd9c95 --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Service/clown.yml @@ -0,0 +1,184 @@ +# Clown +# Backpacks +- type: loadout + id: LoadoutBackpackClown + category: JobsServiceClown + cost: 0 + exclusive: true + customColorTint: true + canBeHeirloom: true + items: + - ClothingBackpackClown + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutClownBackpacks + - !type:CharacterJobRequirement + jobs: + - Clown + +- type: loadout + id: LoadoutBackpackSatchelClown + category: JobsServiceClown + cost: 0 + exclusive: true + customColorTint: true + canBeHeirloom: true + items: + - ClothingBackpackSatchelClown + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutClownBackpacks + - !type:CharacterJobRequirement + jobs: + - Clown + +- type: loadout + id: LoadoutBackpackDuffelClown + category: JobsServiceClown + cost: 0 + exclusive: true + customColorTint: true + canBeHeirloom: true + items: + - ClothingBackpackDuffelClown + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutClownBackpacks + - !type:CharacterJobRequirement + jobs: + - Clown + +# Belt + +# Ears + +# Equipment + +# Eyes + +# Gloves + +# Head + +# Id + +# Neck +- type: loadout + id: LoadoutServiceClownBedsheetClown + category: JobsServiceClown + cost: 0 + exclusive: true + customColorTint: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutClownNeck + - !type:CharacterJobRequirement + jobs: + - Clown + items: + - BedsheetClown + +# Mask +- type: loadout + id: LoadoutServiceClownMaskSexy + category: JobsServiceClown + cost: 0 + exclusive: true + customColorTint: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutClownMask + - !type:CharacterJobRequirement + jobs: + - Clown + items: + - ClothingMaskSexyClown + +# Outer +- type: loadout + id: LoadoutServiceClownOuterWinter + category: JobsServiceClown + cost: 1 + exclusive: true + customColorTint: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutClownOuter + - !type:CharacterJobRequirement + jobs: + - Clown + items: + - ClothingOuterWinterClown + +- type: loadout + id: LoadoutServiceClownOuterClownPriest + category: JobsServiceClown + cost: 0 + exclusive: true + customColorTint: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutClownOuter + - !type:CharacterJobRequirement + jobs: + - Clown + items: + - ClothingOuterClownPriest + +# Shoes +- type: loadout + id: LoadoutServiceClownBootsWinter + category: JobsServiceClown + cost: 0 + exclusive: true + customColorTint: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutClownShoes + - !type:CharacterJobRequirement + jobs: + - Clown + items: + - ClothingShoesBootsWinterClown + +# Uniforms +- type: loadout + id: LoadoutServiceClownOutfitJester + category: JobsServiceClown + cost: 0 + exclusive: true + customColorTint: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutClownUniforms + - !type:CharacterJobRequirement + jobs: + - Clown + items: + - ClothingUniformJumpsuitJester + - ClothingHeadHatJester + - ClothingShoesJester + +- type: loadout + id: LoadoutServiceClownOutfitJesterAlt + category: JobsServiceClown + cost: 0 + exclusive: true + customColorTint: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutClownUniforms + - !type:CharacterJobRequirement + jobs: + - Clown + items: + - ClothingUniformJumpsuitJesterAlt + - ClothingHeadHatJesterAlt + - ClothingShoesJester diff --git a/Resources/Prototypes/Loadouts/Jobs/Service/janitor.yml b/Resources/Prototypes/Loadouts/Jobs/Service/janitor.yml new file mode 100644 index 00000000000..b8a2909e209 --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Service/janitor.yml @@ -0,0 +1,67 @@ +# Janitor +# Backpacks + +# Belt + +# Ears + +# Equipment + +# Eyes + +# Gloves + +# Head + +# Id + +# Neck + +# Mask + +# Outer + +# Shoes + +# Uniforms +- type: loadout + id: LoadoutServiceJumpsuitJanitorNt + category: JobsServiceJanitor + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutJanitorUniforms + - !type:CharacterJobRequirement + jobs: + - Janitor + items: + - ClothingUniformJumpsuitJanitorNt + +- type: loadout + id: LoadoutServiceJumpsuitJanitorIdris + category: JobsServiceJanitor + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutJanitorUniforms + - !type:CharacterJobRequirement + jobs: + - Janitor + items: + - ClothingUniformJumpsuitJanitorIdris + +- type: loadout + id: LoadoutServiceJumpsuitJanitorOrion + category: JobsServiceJanitor + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutJanitorUniforms + - !type:CharacterJobRequirement + jobs: + - Janitor + items: + - ClothingUniformJumpsuitJanitorOrion diff --git a/Resources/Prototypes/Loadouts/Jobs/Service/lawyer.yml b/Resources/Prototypes/Loadouts/Jobs/Service/lawyer.yml new file mode 100644 index 00000000000..d2dd0393cdc --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Service/lawyer.yml @@ -0,0 +1,137 @@ +# Lawyer +# Backpacks + +# Belt + +# Ears + +# Equipment + +# Eyes + +# Gloves + +# Head + +# Id + +# Neck + +# Mask + +# Outer + +# Shoes + +# Uniforms +- type: loadout + id: LoadoutServiceLawyerUniformBlueSuit + category: JobsServiceLawyer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutLawyerUniforms + - !type:CharacterJobRequirement + jobs: + - Lawyer + items: + - ClothingUniformJumpsuitLawyerBlue + +- type: loadout + id: LoadoutServiceLawyerUniformBlueSkirt + category: JobsServiceLawyer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutLawyerUniforms + - !type:CharacterJobRequirement + jobs: + - Lawyer + items: + - ClothingUniformJumpskirtLawyerBlue + +- type: loadout + id: LoadoutServiceLawyerUniformRedSuit + category: JobsServiceLawyer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutLawyerUniforms + - !type:CharacterJobRequirement + jobs: + - Lawyer + items: + - ClothingUniformJumpsuitLawyerRed + +- type: loadout + id: LoadoutServiceLawyerUniformRedSkirt + category: JobsServiceLawyer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutLawyerUniforms + - !type:CharacterJobRequirement + jobs: + - Lawyer + items: + - ClothingUniformJumpskirtLawyerRed + +- type: loadout + id: LoadoutServiceLawyerUniformPurpleSuit + category: JobsServiceLawyer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutLawyerUniforms + - !type:CharacterJobRequirement + jobs: + - Lawyer + items: + - ClothingUniformJumpsuitLawyerPurple + +- type: loadout + id: LoadoutServiceLawyerUniformPurpleSkirt + category: JobsServiceLawyer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutLawyerUniforms + - !type:CharacterJobRequirement + jobs: + - Lawyer + items: + - ClothingUniformJumpskirtLawyerPurple + +- type: loadout + id: LoadoutServiceLawyerUniformGoodSuit + category: JobsServiceLawyer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutLawyerUniforms + - !type:CharacterJobRequirement + jobs: + - Lawyer + items: + - ClothingUniformJumpsuitLawyerGood + +- type: loadout + id: LoadoutServiceLawyerUniformGoodSkirt + category: JobsServiceLawyer + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutLawyerUniforms + - !type:CharacterJobRequirement + jobs: + - Lawyer + items: + - ClothingUniformJumpskirtLawyerGood diff --git a/Resources/Prototypes/Loadouts/Jobs/Service/mime.yml b/Resources/Prototypes/Loadouts/Jobs/Service/mime.yml new file mode 100644 index 00000000000..72499d5f2e8 --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Service/mime.yml @@ -0,0 +1,159 @@ +# Mime +# Backpacks +- type: loadout + id: LoadoutBackpackMime + category: JobsServiceMime + cost: 0 + exclusive: true + items: + - ClothingBackpackMime + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMimeBackpacks + - !type:CharacterJobRequirement + jobs: + - Mime + +- type: loadout + id: LoadoutBackpackSatchelMime + category: JobsServiceMime + cost: 0 + exclusive: true + items: + - ClothingBackpackSatchelMime + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMimeBackpacks + - !type:CharacterJobRequirement + jobs: + - Mime + +- type: loadout + id: LoadoutBackpackDuffelMime + category: JobsServiceMime + cost: 0 + exclusive: true + items: + - ClothingBackpackDuffelMime + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMimeBackpacks + - !type:CharacterJobRequirement + jobs: + - Mime + +# Belt + +# Ears + +# Equipment + +# Eyes + +# Gloves + +# Head + +# Id + +# Neck +- type: loadout + id: LoadoutServiceMimeBedsheetMime + category: JobsServiceMime + cost: 0 + exclusive: true + customColorTint: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMimeNeck + - !type:CharacterJobRequirement + jobs: + - Mime + items: + - BedsheetMime + + +# Mask +- type: loadout + id: LoadoutServiceMimeMaskSad + category: JobsServiceMime + cost: 0 + exclusive: true + customColorTint: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMimeMask + - !type:CharacterJobRequirement + jobs: + - Mime + items: + - ClothingMaskSadMime + +- type: loadout + id: LoadoutServiceMimeMaskScared + category: JobsServiceMime + cost: 0 + exclusive: true + customColorTint: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMimeMask + - !type:CharacterJobRequirement + jobs: + - Mime + items: + - ClothingMaskScaredMime + +- type: loadout + id: LoadoutServiceMimeMaskSexy + category: JobsServiceMime + cost: 0 + exclusive: true + customColorTint: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMimeMask + - !type:CharacterJobRequirement + jobs: + - Mime + items: + - ClothingMaskSexyMime + +# Outer +- type: loadout + id: LoadoutServiceMimeOuterWinter + category: JobsServiceMime + cost: 1 + exclusive: true + customColorTint: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMimeOuter + - !type:CharacterJobRequirement + jobs: + - Mime + items: + - ClothingOuterWinterMime + +# Shoes +- type: loadout + id: LoadoutServiceMimeShoesBootsWinter + category: JobsServiceMime + cost: 0 + exclusive: true + customColorTint: true + canBeHeirloom: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutMimeShoes + - !type:CharacterJobRequirement + jobs: + - Mime + items: + - ClothingShoesBootsWinterMime +# Uniforms diff --git a/Resources/Prototypes/Loadouts/Jobs/Service/musician.yml b/Resources/Prototypes/Loadouts/Jobs/Service/musician.yml index 5bf5471697b..4fe668d9209 100644 --- a/Resources/Prototypes/Loadouts/Jobs/Service/musician.yml +++ b/Resources/Prototypes/Loadouts/Jobs/Service/musician.yml @@ -1,13 +1,21 @@ # Musician +# Backpacks + +# Belt + +# Ears + +# Equipment # Musician Instruments # Brass Instruments - type: loadout id: LoadoutItemTrumpetInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -18,9 +26,10 @@ id: LoadoutItemTromboneInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -31,9 +40,11 @@ id: LoadoutItemFrenchHornInstrumentMusician category: JobsServiceMusician cost: 0 + customColorTint: true + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -44,9 +55,11 @@ id: LoadoutItemEuphoniumInstrumentMusician category: JobsServiceMusician cost: 0 + customColorTint: true + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -58,9 +71,10 @@ id: LoadoutItemSeashellInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -71,9 +85,10 @@ id: LoadoutItemBirdToyInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -86,9 +101,10 @@ id: LoadoutItemGlockenspielInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -99,9 +115,10 @@ id: LoadoutItemMusicBoxInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -112,9 +129,10 @@ id: LoadoutItemXylophoneInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -125,9 +143,10 @@ id: LoadoutItemMicrophoneInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -138,9 +157,10 @@ id: LoadoutItemSynthesizerInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -151,9 +171,10 @@ id: LoadoutItemKalimbaInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -164,9 +185,10 @@ id: LoadoutItemWoodblockInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -178,9 +200,10 @@ id: LoadoutItemElectricGuitarInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -191,9 +214,10 @@ id: LoadoutItemBassGuitarInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -204,9 +228,10 @@ id: LoadoutItemRockGuitarInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -217,9 +242,10 @@ id: LoadoutItemAcousticGuitarInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -230,9 +256,10 @@ id: LoadoutItemBanjoInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -243,9 +270,10 @@ id: LoadoutItemViolinInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -256,9 +284,10 @@ id: LoadoutItemViolaInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -269,9 +298,10 @@ id: LoadoutItemCelloInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -283,9 +313,10 @@ id: LoadoutItemPianoInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -296,9 +327,10 @@ id: LoadoutItemUprightPianoInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -309,9 +341,10 @@ id: LoadoutItemVibraphoneInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -322,9 +355,10 @@ id: LoadoutItemMarimbaInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -335,9 +369,10 @@ id: LoadoutItemChurchOrganInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -348,9 +383,10 @@ id: LoadoutItemTubaInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -361,9 +397,10 @@ id: LoadoutItemHarpInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -374,9 +411,10 @@ id: LoadoutItemTimpaniInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -387,9 +425,10 @@ id: LoadoutItemTaikoInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -400,9 +439,10 @@ id: LoadoutItemContrabassInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -413,9 +453,10 @@ id: LoadoutItemMinimoogInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -426,9 +467,10 @@ id: LoadoutItemTomDrumsInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -440,9 +482,10 @@ id: LoadoutItemSaxophoneInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -453,9 +496,10 @@ id: LoadoutItemAccordionInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -466,9 +510,10 @@ id: LoadoutItemHarmonicaInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -479,9 +524,10 @@ id: LoadoutItemClarinetInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -492,9 +538,11 @@ id: LoadoutItemFluteInstrumentMusician category: JobsServiceMusician cost: 0 + customColorTint: true + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -505,9 +553,11 @@ id: LoadoutItemRecorderInstrumentMusician category: JobsServiceMusician cost: 0 + customColorTint: true + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -518,9 +568,10 @@ id: LoadoutItemPanFluteInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -531,9 +582,11 @@ id: LoadoutItemOcarinaInstrumentMusician category: JobsServiceMusician cost: 0 + customColorTint: true + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician @@ -544,11 +597,30 @@ id: LoadoutItemBagpipeInstrumentMusician category: JobsServiceMusician cost: 0 + canBeHeirloom: true requirements: - !type:CharacterItemGroupRequirement - group: LoadoutMusicianInstruments + group: LoadoutMusicianEquipment - !type:CharacterJobRequirement jobs: - Musician items: - BagpipeInstrument + +# Eyes + +# Gloves + +# Head + +# Id + +# Neck + +# Mask + +# Outer + +# Shoes + +# Uniforms diff --git a/Resources/Prototypes/Loadouts/Jobs/Service/reporter.yml b/Resources/Prototypes/Loadouts/Jobs/Service/reporter.yml new file mode 100644 index 00000000000..d03b95b3a0c --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Service/reporter.yml @@ -0,0 +1,67 @@ +# Reporter +# Backpacks + +# Belt + +# Ears + +# Equipment + +# Eyes + +# Gloves + +# Head + +# Id + +# Neck + +# Mask + +# Outer + +# Shoes + +# Uniforms +- type: loadout + id: LoadoutServiceReporterUniformDetectivesuit + category: JobsServiceReporter + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutReporterUniforms + - !type:CharacterJobRequirement + jobs: + - Reporter + items: + - ClothingUniformJumpsuitDetective + +- type: loadout + id: LoadoutServiceReporterUniformDetectiveskirt + category: JobsServiceReporter + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutReporterUniforms + - !type:CharacterJobRequirement + jobs: + - Reporter + items: + - ClothingUniformJumpskirtDetective + +- type: loadout + id: LoadoutServiceReporterUniformJournalist + category: JobsServiceReporter + cost: 0 + exclusive: true + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutReporterUniforms + - !type:CharacterJobRequirement + jobs: + - Reporter + items: + - ClothingUniformJumpsuitJournalist diff --git a/Resources/Prototypes/Loadouts/Jobs/Service/uncategorized.yml b/Resources/Prototypes/Loadouts/Jobs/Service/uncategorized.yml new file mode 100644 index 00000000000..fe03506dad9 --- /dev/null +++ b/Resources/Prototypes/Loadouts/Jobs/Service/uncategorized.yml @@ -0,0 +1,72 @@ +# Uncategorized +# Backpacks + +# Belt + +# Ears + +# Equipment +# For the most part we dont want people to take this item, so its used as an example of all the things +# you can do with requirements. Point someone to this thing if they ask "how tf do loadout requirements work?" +- type: loadout + id: LoadoutServiceClownCowToolboxFilled + category: JobsServiceAUncategorized + cost: 2 + requirements: + - !type:CharacterItemGroupRequirement + group: LoadoutServiceEquipment + - !type:CharacterLogicXorRequirement + requirements: + - !type:CharacterLogicAndRequirement + requirements: + - !type:CharacterSexRequirement + sex: Male + - !type:CharacterSpeciesRequirement + species: + - Felinid + - !type:CharacterHeightRequirement + min: 110 + max: 122 + - !type:CharacterGenderRequirement + gender: Female + - !type:CharacterTraitRequirement + traits: + - HeavyweightDrunk + - !type:CharacterLogicAndRequirement + requirements: + - !type:CharacterSpeciesRequirement + species: + - Harpy + - !type:CharacterHeightRequirement + min: 170 + - !type:CharacterWeightRequirement + min: 20 + - !type:CharacterSexRequirement + sex: Male + - !type:CharacterJobRequirement + inverted: true # This is the equivalent of !(condition) + jobs: + - Clown + - !type:CharacterJobRequirement + jobs: + - Clown + items: + - CowToolboxFilled + +# Eyes + +# Gloves + +# Head + +# Id + +# Neck + +# Mask + +# Outer + +# Shoes + +# Uniforms diff --git a/Resources/Prototypes/Loadouts/Jobs/engineering.yml b/Resources/Prototypes/Loadouts/Jobs/engineering.yml deleted file mode 100644 index 2bf857c85fb..00000000000 --- a/Resources/Prototypes/Loadouts/Jobs/engineering.yml +++ /dev/null @@ -1,194 +0,0 @@ -- type: loadout - id: LoadoutEngineeringUniformHazard - category: JobsEngineering - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsEngineering - - !type:CharacterJobRequirement - jobs: - - StationEngineer - items: - - ClothingUniformJumpsuitEngineeringHazard - -- type: loadout - id: LoadoutEngineeringOuterHazard - category: JobsEngineering - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutOuterEngineering - - !type:CharacterJobRequirement - jobs: - - StationEngineer - items: - - ClothingOuterVestHazard - -- type: loadout - id: LoadoutEngineeringUniformJumpskirtSenior - category: JobsEngineering - cost: 1 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsEngineering - - !type:CharacterJobRequirement - jobs: - - StationEngineer - - !type:CharacterPlaytimeRequirement - tracker: JobAtmosphericTechnician - min: 21600 # 6 hours - - !type:CharacterPlaytimeRequirement - tracker: JobStationEngineer - min: 21600 # 6 hours - - !type:CharacterDepartmentTimeRequirement - department: Engineering - min: 216000 # 60 hours - items: - - ClothingUniformJumpskirtSeniorEngineer - -- type: loadout - id: LoadoutEngineeringUniformJumpsuitSenior - category: JobsEngineering - cost: 1 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsEngineering - - !type:CharacterJobRequirement - jobs: - - StationEngineer - - !type:CharacterPlaytimeRequirement - tracker: JobAtmosphericTechnician - min: 21600 # 6 hours - - !type:CharacterPlaytimeRequirement - tracker: JobStationEngineer - min: 21600 # 6 hours - - !type:CharacterDepartmentTimeRequirement - department: Engineering - min: 216000 # 60 hours - items: - - ClothingUniformJumpsuitSeniorEngineer - -- type: loadout - id: LoadoutEngineeringChickenSuit # :) - category: JobsEngineering - cost: 1 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutOuterEngineering - - !type:CharacterJobRequirement - jobs: - - AtmosphericTechnician - items: - - ClothingOuterSuitChicken - - ClothingHeadHatChickenhead - -- type: loadout - id: LoadoutEngineeringEyesMeson - category: JobsEngineering - cost: 1 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutEyesEngineering - - !type:CharacterJobRequirement - jobs: - - StationEngineer - - AtmosphericTechnician - items: - - ClothingEyesGlassesMeson - -- type: loadout - id: LoadoutEngineeringHeadBeret - category: JobsEngineering - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHeadEngineering - - !type:CharacterJobRequirement - jobs: - - StationEngineer - - AtmosphericTechnician - - ChiefEngineer - items: - - ClothingHeadHatBeretEngineering - -- type: loadout - id: LoadoutEngineeringHeadHardhatBlue - category: JobsEngineering - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHeadEngineering - - !type:CharacterJobRequirement - jobs: - - StationEngineer - - AtmosphericTechnician - items: - - ClothingHeadHatHardhatBlue - -- type: loadout - id: LoadoutEngineeringHeadHardhatOrange - category: JobsEngineering - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHeadEngineering - - !type:CharacterJobRequirement - jobs: - - StationEngineer - - AtmosphericTechnician - items: - - ClothingHeadHatHardhatOrange - -- type: loadout - id: LoadoutEngineeringHeadHardhatYellow - category: JobsEngineering - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHeadEngineering - - !type:CharacterJobRequirement - jobs: - - StationEngineer - - AtmosphericTechnician - items: - - ClothingHeadHatHardhatYellow - -- type: loadout - id: LoadoutEngineeringHeadHardhatWhite - category: JobsEngineering - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHeadEngineering - - !type:CharacterJobRequirement - jobs: - - StationEngineer - - AtmosphericTechnician - items: - - ClothingHeadHatHardhatWhite - -- type: loadout - id: LoadoutEngineeringHeadHardhatRed - category: JobsEngineering - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHeadEngineering - - !type:CharacterJobRequirement - jobs: - - StationEngineer - - AtmosphericTechnician - items: - - ClothingHeadHatHardhatRed diff --git a/Resources/Prototypes/Loadouts/Jobs/medical.yml b/Resources/Prototypes/Loadouts/Jobs/medical.yml deleted file mode 100644 index 6a2d5fb9d2e..00000000000 --- a/Resources/Prototypes/Loadouts/Jobs/medical.yml +++ /dev/null @@ -1,632 +0,0 @@ -- type: loadout - id: LoadoutMedicalGlovesNitrile - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutGlovesMedical - - !type:CharacterJobRequirement - jobs: - - MedicalDoctor - - Paramedic - - ChiefMedicalOfficer - - MedicalIntern - - Chemist - items: - - ClothingHandsGlovesNitrile - -- type: loadout - id: LoadoutMedicalOuterLabcoat - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutOuterMedical - - !type:CharacterJobRequirement - jobs: - - MedicalDoctor - - Chemist - items: - - ClothingOuterCoatLab - -- type: loadout - id: LoadoutMedicalNeckStethoscope - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutNeckMedical - - !type:CharacterJobRequirement - jobs: - - MedicalDoctor - - ChiefMedicalOfficer - - MedicalIntern - items: - - ClothingNeckStethoscope - -- type: loadout - id: LoadoutMedicalUniformScrubsBlue - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsMedical - - !type:CharacterJobRequirement - jobs: - - MedicalDoctor - - Chemist - - Paramedic - - MedicalIntern - items: - - UniformScrubsColorBlue - -- type: loadout - id: LoadoutMedicalUniformScrubsGreen - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsMedical - - !type:CharacterJobRequirement - jobs: - - MedicalDoctor - - Chemist - - Paramedic - - MedicalIntern - items: - - UniformScrubsColorGreen - -- type: loadout - id: LoadoutMedicalUniformScrubsPurple - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsMedical - - !type:CharacterJobRequirement - jobs: - - MedicalDoctor - - Chemist - - Paramedic - - MedicalIntern - items: - - UniformScrubsColorPurple - -- type: loadout - id: LoadoutMedicalUniformScrubsCyan - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsMedical - - !type:CharacterJobRequirement - jobs: - - MedicalDoctor - - Chemist - - Paramedic - - MedicalIntern - items: - - UniformScrubsColorCyan - -- type: loadout - id: LoadoutMedicalUniformScrubsBlack - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsMedical - - !type:CharacterJobRequirement - jobs: - - MedicalDoctor - - Chemist - - Paramedic - - MedicalIntern - items: - - UniformScrubsColorBlack - -- type: loadout - id: LoadoutMedicalUniformScrubsPink - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsMedical - - !type:CharacterJobRequirement - jobs: - - MedicalDoctor - - Chemist - - Paramedic - - MedicalIntern - items: - - UniformScrubsColorPink - -- type: loadout - id: LoadoutMedicalUniformScrubsCybersun - category: JobsMedical - cost: 1 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsMedical - - !type:CharacterJobRequirement - jobs: - - MedicalDoctor - - Chemist - - Paramedic - items: - - UniformScrubsColorCybersun - -- type: loadout - id: LoadoutMedicalOuterCybersunWindbreaker - category: JobsMedical - cost: 3 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutOuterMedical - - !type:CharacterJobRequirement - jobs: - - MedicalDoctor - - Chemist - - Paramedic - items: - - ClothingOuterCoatCybersunWindbreaker - -- type: loadout - id: LoadoutMedicalOuterLabcoatChem - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutOuterMedical - - !type:CharacterJobRequirement - jobs: - - Chemist - items: - - ClothingOuterCoatLabChem - -- type: loadout - id: LoadoutMedicalItemHandLabeler - category: JobsMedical - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - Chemist - items: - - HandLabeler - -- type: loadout - id: LoadoutMedicalUniformParamedicJumpsuit - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsMedical - - !type:CharacterJobRequirement - jobs: - - Paramedic - items: - - ClothingUniformJumpsuitParamedic - -- type: loadout - id: LoadoutMedicalUniformParamedicJumpskirt - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsMedical - - !type:CharacterJobRequirement - jobs: - - Paramedic - items: - - ClothingUniformJumpskirtParamedic - -- type: loadout - id: LoadoutMedicalUniformJumpskirtSenior - category: JobsMedical - cost: 1 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsMedical - - !type:CharacterJobRequirement - jobs: - - MedicalDoctor - - Chemist - - Paramedic - - ChiefMedicalOfficer - - !type:CharacterPlaytimeRequirement - tracker: JobChemist - min: 21600 # 6 hours - - !type:CharacterPlaytimeRequirement - tracker: JobMedicalDoctor - min: 21600 # 6 hours - - !type:CharacterDepartmentTimeRequirement - department: Medical - min: 216000 # 60 hours - items: - - ClothingUniformJumpskirtSeniorPhysician - -- type: loadout - id: LoadoutMedicalUniformJumpsuitSenior - category: JobsMedical - cost: 1 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsMedical - - !type:CharacterJobRequirement - jobs: - - MedicalDoctor - - Chemist - - Paramedic - - ChiefMedicalOfficer - - !type:CharacterPlaytimeRequirement - tracker: JobChemist - min: 21600 # 6 hours - - !type:CharacterPlaytimeRequirement - tracker: JobMedicalDoctor - min: 21600 # 6 hours - - !type:CharacterDepartmentTimeRequirement - department: Medical - min: 216000 # 60 hours - items: - - ClothingUniformJumpsuitSeniorPhysician - -- type: loadout - id: LoadoutMedicalHeadNurse - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHeadMedical - - !type:CharacterJobRequirement - jobs: - - MedicalDoctor - items: - - ClothingHeadNurseHat - -- type: loadout - id: LoadoutMedicalHeadBeretSeniorPhysician - category: JobsMedical - cost: 1 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHeadMedical - - !type:CharacterJobRequirement - jobs: - - MedicalDoctor - - Chemist - - Paramedic - - ChiefMedicalOfficer - - !type:CharacterPlaytimeRequirement - tracker: JobChemist - min: 21600 # 6 hours - - !type:CharacterPlaytimeRequirement - tracker: JobMedicalDoctor - min: 21600 # 6 hours - - !type:CharacterDepartmentTimeRequirement - department: Medical - min: 216000 # 60 hours - items: - - ClothingHeadHatBeretSeniorPhysician - -- type: loadout - id: LoadoutMedicalHeadSurgcapBlue - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHeadMedical - - !type:CharacterJobRequirement - jobs: - - MedicalDoctor - - Chemist - - Paramedic - - MedicalIntern - items: - - ClothingHeadHatSurgcapBlue - -- type: loadout - id: LoadoutMedicalHeadSurgcapPurple - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHeadMedical - - !type:CharacterJobRequirement - jobs: - - MedicalDoctor - - Chemist - - Paramedic - - MedicalIntern - items: - - ClothingHeadHatSurgcapPurple - -- type: loadout - id: LoadoutMedicalHeadSurgcapGreen - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHeadMedical - - !type:CharacterJobRequirement - jobs: - - MedicalDoctor - - Chemist - - Paramedic - - MedicalIntern - items: - - ClothingHeadHatSurgcapGreen - -- type: loadout - id: LoadoutMedicalHeadSurgcapCyan - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHeadMedical - - !type:CharacterJobRequirement - jobs: - - MedicalDoctor - - Chemist - - Paramedic - - MedicalIntern - items: - - ClothingHeadHatSurgcapCyan - -- type: loadout - id: LoadoutMedicalHeadSurgcapBlack - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHeadMedical - - !type:CharacterJobRequirement - jobs: - - MedicalDoctor - - Chemist - - Paramedic - - MedicalIntern - items: - - ClothingHeadHatSurgcapBlack - -- type: loadout - id: LoadoutMedicalHeadSurgcapPink - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHeadMedical - - !type:CharacterJobRequirement - jobs: - - MedicalDoctor - - Chemist - - Paramedic - - MedicalIntern - items: - - ClothingHeadHatSurgcapPink - -- type: loadout - id: LoadoutMedicalHeadSurgcapWhite - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHeadMedical - - !type:CharacterJobRequirement - jobs: - - MedicalDoctor - - Chemist - - Paramedic - - MedicalIntern - items: - - ClothingHeadHatSurgcapWhite - -- type: loadout - id: LoadoutMedicalHeadSurgcapCybersun - category: JobsMedical - cost: 1 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHeadMedical - - !type:CharacterJobRequirement - jobs: - - MedicalDoctor - - Chemist - - Paramedic - items: - - ClothingHeadHatSurgcapCybersun - -- type: loadout - id: LoadoutMedicalEyesHudMedical - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutEyesMedical - - !type:CharacterJobRequirement - jobs: - - MedicalDoctor - - Paramedic - - ChiefMedicalOfficer - - MedicalIntern - - Brigmedic - items: - - ClothingEyesHudMedical - -- type: loadout - id: LoadoutMedicalEyesEyepatchHudMedical - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutEyesMedical - - !type:CharacterJobRequirement - jobs: - - MedicalDoctor - - Paramedic - - ChiefMedicalOfficer - - MedicalIntern - - Brigmedic - items: - - ClothingEyesEyepatchHudMedical - -- type: loadout - id: LoadoutMedicalEyesHudMedicalPrescription - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutEyesMedical - - !type:CharacterJobRequirement - jobs: - - MedicalDoctor - - Paramedic - - ChiefMedicalOfficer - - MedicalIntern - - Brigmedic - - !type:CharacterTraitRequirement - traits: - - Nearsighted - items: - - ClothingEyesPrescriptionMedHud - -- type: loadout - id: LoadoutMedicalEyesGlassesChemical - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutEyesMedical - - !type:CharacterJobRequirement - jobs: - - Chemist - items: - - ClothingEyesGlassesChemical - -- type: loadout - id: LoadoutMedicalBedsheetMedical - category: JobsMedical - cost: 1 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutNeckMedical - - !type:CharacterDepartmentRequirement - departments: - - Medical - items: - - BedsheetMedical - -# Chemist PPE gear -- type: loadout - id: LoadoutMedicalUniformJumpsuitChemShirt - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsMedical - - !type:CharacterJobRequirement - jobs: - - Chemist - items: - - ClothingUniformJumpsuitChemShirt - -- type: loadout - id: LoadoutMedicalNeckTieChem - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutNeckMedical - - !type:CharacterJobRequirement - jobs: - - Chemist - items: - - ClothingNeckTieChem - -- type: loadout - id: LoadoutMedicalShoesEnclosedChem - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutShoesMedical - - !type:CharacterJobRequirement - jobs: - - Chemist - items: - - ClothingShoesEnclosedChem - -- type: loadout - id: LoadoutMedicalOuterApronChemist - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutOuterMedical - - !type:CharacterJobRequirement - jobs: - - Chemist - items: - - ClothingOuterApronChemist - -- type: loadout - id: LoadoutMedicalEyesGlassesChemist - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutEyesMedical - - !type:CharacterJobRequirement - jobs: - - Chemist - items: - - ClothingEyesGlassesChemist - -- type: loadout - id: LoadoutMedicalHandsGlovesChemist - category: JobsMedical - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutGlovesMedical - - !type:CharacterJobRequirement - jobs: - - Chemist - items: - - ClothingHandsGlovesChemist diff --git a/Resources/Prototypes/Loadouts/Jobs/science.yml b/Resources/Prototypes/Loadouts/Jobs/science.yml deleted file mode 100644 index 3f376ec872d..00000000000 --- a/Resources/Prototypes/Loadouts/Jobs/science.yml +++ /dev/null @@ -1,713 +0,0 @@ -# Uniforms - -- type: loadout - id: LoadoutScienceUniformJumpskirtSenior - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsScience - - !type:CharacterDepartmentRequirement - departments: - - Epistemics - - !type:CharacterDepartmentTimeRequirement - department: Epistemics - min: 216000 # 60 hours - items: - - ClothingUniformJumpskirtSeniorResearcher - -- type: loadout - id: LoadoutScienceUniformJumpsuitSenior - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsScience - - !type:CharacterDepartmentRequirement - departments: - - Epistemics - - !type:CharacterDepartmentTimeRequirement - department: Epistemics - min: 216000 # 60 hours - items: - - ClothingUniformJumpsuitSeniorResearcher - -- type: loadout - id: LoadoutScienceUniformJumpskirtRoboticist - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsScience - - !type:CharacterDepartmentRequirement - departments: - - Epistemics - items: - - ClothingUniformJumpskirtRoboticist - -- type: loadout - id: LoadoutScienceUniformJumpsuitRoboticist - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsScience - - !type:CharacterDepartmentRequirement - departments: - - Epistemics - items: - - ClothingUniformJumpsuitRoboticist - -- type: loadout - id: LoadoutScienceUniformJumpsuitMonasticRobeDark - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsScience - - !type:CharacterJobRequirement - jobs: - - Chaplain - items: - - ClothingUniformJumpsuitMonasticRobeDark - -- type: loadout - id: LoadoutScienceUniformJumpsuitMonasticRobeLight - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsScience - - !type:CharacterJobRequirement - jobs: - - Chaplain - items: - - ClothingUniformJumpsuitMonasticRobeLight - -# Outer - -- type: loadout - id: LoadoutScienceOuterCoat - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutOuterScience - - !type:CharacterDepartmentRequirement - departments: - - Epistemics - items: - - ClothingOuterCoatRnd - -- type: loadout - id: LoadoutScienceOuterLabcoat - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutOuterScience - - !type:CharacterDepartmentRequirement - departments: - - Epistemics - items: - - ClothingOuterCoatLab - -- type: loadout - id: LoadoutSciencegOuterCoatRobo - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutOuterScience - - !type:CharacterDepartmentRequirement - departments: - - Epistemics - items: - - ClothingOuterCoatRobo - -- type: loadout - id: LoadoutScienceOuterWinterSci - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutOuterScience - - !type:CharacterDepartmentRequirement - departments: - - Epistemics - items: - - ClothingOuterWinterSci - -- type: loadout - id: LoadoutScienceOuterLabcoatSeniorResearcher - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutOuterScience - - !type:CharacterDepartmentRequirement - departments: - - Epistemics - - !type:CharacterDepartmentTimeRequirement - department: Epistemics - min: 216000 # 60 hours - items: - - ClothingOuterCoatLabSeniorResearcher - -- type: loadout - id: LoadoutScienceOuterExplorerLabcoat - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutOuterScience - - !type:CharacterDepartmentRequirement - departments: - - Epistemics - items: - - ClothingOuterExplorerCoat - -- type: loadout - id: LoadoutScienceOuterPlagueSuit - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutOuterScience - - !type:CharacterJobRequirement - jobs: - - Chaplain - items: - - ClothingOuterPlagueSuit - -- type: loadout - id: LoadoutScienceOuterNunRobe - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutOuterScience - - !type:CharacterJobRequirement - jobs: - - Chaplain - items: - - ClothingOuterNunRobe - -- type: loadout - id: LoadoutScienceOuterHoodieBlack - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutOuterScience - - !type:CharacterJobRequirement - jobs: - - Chaplain - items: - - ClothingOuterHoodieBlack - -- type: loadout - id: LoadoutScienceOuterHoodieChaplain - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutOuterScience - - !type:CharacterJobRequirement - jobs: - - Chaplain - items: - - ClothingOuterHoodieChaplain - -- type: loadout - id: LoadoutScienceOuterWinterCoatMantis - category: JobsScience - cost: 1 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutOuterScience - - !type:CharacterJobRequirement - jobs: - - ForensicMantis - items: - - ClothingOuterWinterCoatMantis - -# Gloves - -- type: loadout - id: LoadoutScienceHandsGlovesColorPurple - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutGlovesScience - - !type:CharacterDepartmentRequirement - departments: - - Epistemics - items: - - ClothingHandsGlovesColorPurple - -- type: loadout - id: LoadoutScienceHandsGlovesLatex - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutGlovesScience - - !type:CharacterDepartmentRequirement - departments: - - Epistemics - items: - - ClothingHandsGlovesLatex - -- type: loadout - id: LoadoutScienceHandsGlovesRobohands - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutGlovesScience - - !type:CharacterDepartmentRequirement - departments: - - Epistemics - items: - - ClothingHandsGlovesRobohands - -# Neck - -- type: loadout - id: LoadoutScienceNeckTieSci - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutNeckScience - - !type:CharacterDepartmentRequirement - departments: - - Epistemics - items: - - ClothingNeckTieSci - -- type: loadout - id: LoadoutScienceNeckScarfStripedPurple - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutNeckScience - - !type:CharacterDepartmentRequirement - departments: - - Epistemics - items: - - ClothingNeckScarfStripedPurple - -- type: loadout - id: LoadoutScienceNeckStoleChaplain - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutNeckScience - - !type:CharacterJobRequirement - jobs: - - Chaplain - items: - - ClothingNeckStoleChaplain - -- type: loadout - id: LoadoutScienceNeckScarfStripedBlack - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutNeckScience - - !type:CharacterDepartmentRequirement - departments: - - Epistemics - items: - - ClothingNeckScarfStripedBlack - -# Mask - -- type: loadout - id: LoadoutScienceMaskPlague - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutMaskScience - - !type:CharacterJobRequirement - jobs: - - Chaplain - items: - - ClothingMaskPlague - -# Head - -- type: loadout - id: LoadoutScienceHeadHatBeret - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHeadScience - - !type:CharacterDepartmentRequirement - departments: - - Epistemics - items: - - ClothingHeadHatBeretRND - -- type: loadout - id: LoadoutScienceHeadHatFez - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHeadScience - - !type:CharacterDepartmentRequirement - departments: - - Epistemics - items: - - ClothingHeadHatFez - -- type: loadout - id: LoadoutScienceHeadHatHoodNunHood - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHeadScience - - !type:CharacterJobRequirement - jobs: - - Chaplain - items: - - ClothingHeadHatHoodNunHood - -- type: loadout - id: LoadoutScienceHeadHatPlaguedoctor - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHeadScience - - !type:CharacterJobRequirement - jobs: - - Chaplain - items: - - ClothingHeadHatPlaguedoctor - -- type: loadout - id: LoadoutScienceHeadHatWitch - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHeadScience - - !type:CharacterJobRequirement - jobs: - - Chaplain - items: - - ClothingHeadHatWitch - -- type: loadout - id: LoadoutScienceHeadHatWitch1 - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHeadScience - - !type:CharacterJobRequirement - jobs: - - Chaplain - items: - - ClothingHeadHatWitch1 - -# Eyes - -- type: loadout - id: LoadoutScienceEyesHudDiagnostic - category: JobsScience - cost: 1 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutEyesScience - - !type:CharacterDepartmentRequirement - departments: - - Epistemics - items: - - ClothingEyesHudDiagnostic - -- type: loadout - id: LoadoutScienceEyesEyepatchHudDiag - category: JobsScience - cost: 1 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutEyesScience - - !type:CharacterDepartmentRequirement - departments: - - Epistemics - items: - - ClothingEyesEyepatchHudDiag - -# Shoes - -- type: loadout - id: LoadoutScienceShoesBootsWinterSci - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutShoesScience - - !type:CharacterDepartmentRequirement - departments: - - Epistemics - items: - - ClothingShoesBootsWinterSci - -# Robes - -- type: loadout - id: LoadoutOuterRobeTechPriest - category: Outer - cost: 0 - items: - - ClothingOuterRobeTechPriest - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutOuterScience - - !type:CharacterDepartmentRequirement - departments: - - Epistemics - -- type: loadout - id: LoadoutHeadHoodTechPriest - category: Head - cost: 0 - exclusive: true - items: - - ClothingHeadTechPriest - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHeadScience - - !type:CharacterDepartmentRequirement - departments: - - Epistemics - -# Cataloguer -- type: loadout - id: LoadoutScienceJumpsuitLibrarianNt - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutCataloguerUniforms - - !type:CharacterJobRequirement - jobs: - - Librarian - items: - - ClothingUniformJumpsuitLibrarianNt - -- type: loadout - id: LoadoutScienceJumpsuitLibrarianIdris - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutCataloguerUniforms - - !type:CharacterJobRequirement - jobs: - - Librarian - items: - - ClothingUniformJumpsuitLibrarianIdris - -- type: loadout - id: LoadoutScienceJumpsuitLibrarianOrion - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutCataloguerUniforms - - !type:CharacterJobRequirement - jobs: - - Librarian - items: - - ClothingUniformJumpsuitLibrarianOrion - -- type: loadout - id: LoadoutScienceJumpsuitLibrarianHeph - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutCataloguerUniforms - - !type:CharacterJobRequirement - jobs: - - Librarian - items: - - ClothingUniformJumpsuitLibrarianHeph - -- type: loadout - id: LoadoutScienceJumpsuitLibrarianPMCG - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutCataloguerUniforms - - !type:CharacterJobRequirement - jobs: - - Librarian - items: - - ClothingUniformJumpsuitLibrarianPMCG - -- type: loadout - id: LoadoutScienceJumpsuitLibrarianZav - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutCataloguerUniforms - - !type:CharacterJobRequirement - jobs: - - Librarian - items: - - ClothingUniformJumpsuitLibrarianZav - -- type: loadout - id: LoadoutScienceJumpsuitLibrarianZeng - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutCataloguerUniforms - - !type:CharacterJobRequirement - jobs: - - Librarian - items: - - ClothingUniformJumpsuitLibrarianZeng - -- type: loadout - id: LoadoutScienceJumpsuitLibrarian - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutCataloguerUniforms - - !type:CharacterJobRequirement - jobs: - - Librarian - items: - - ClothingUniformJumpsuitLibrarian - -- type: loadout - id: LoadoutScienceJumpskirtLibrarian - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutCataloguerUniforms - - !type:CharacterJobRequirement - jobs: - - Librarian - items: - - ClothingUniformJumpskirtLibrarian - -# Chaplain -- type: loadout - id: LoadoutChaplainJumpsuit - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutChaplainUniforms - - !type:CharacterJobRequirement - jobs: - - Chaplain - items: - - ClothingUniformJumpsuitChaplain - -- type: loadout - id: LoadoutChaplainJumpskirt - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutChaplainUniforms - - !type:CharacterJobRequirement - jobs: - - Chaplain - items: - - ClothingUniformJumpskirtChaplain - -- type: loadout - id: LoadoutChaplainBible - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutChaplainEquipment - - !type:CharacterJobRequirement - jobs: - - Chaplain - items: - - Bible - -- type: loadout - id: LoadoutChaplainStamp - category: JobsScience - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutChaplainEquipment - - !type:CharacterJobRequirement - jobs: - - Chaplain - items: - - RubberStampChaplain diff --git a/Resources/Prototypes/Loadouts/Jobs/service.yml b/Resources/Prototypes/Loadouts/Jobs/service.yml deleted file mode 100644 index c0f04ef151a..00000000000 --- a/Resources/Prototypes/Loadouts/Jobs/service.yml +++ /dev/null @@ -1,829 +0,0 @@ -# Clown -- type: loadout - id: LoadoutServiceClownOutfitJester - category: JobsServiceUncategorized - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsService - - !type:CharacterJobRequirement - jobs: - - Clown - items: - - ClothingUniformJumpsuitJester - - ClothingHeadHatJester - - ClothingShoesJester - -- type: loadout - id: LoadoutServiceClownOutfitJesterAlt - category: JobsServiceUncategorized - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsService - - !type:CharacterJobRequirement - jobs: - - Clown - items: - - ClothingUniformJumpsuitJesterAlt - - ClothingHeadHatJesterAlt - - ClothingShoesJester - -- type: loadout - id: LoadoutServiceClownOuterWinter - category: JobsServiceUncategorized - cost: 1 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutOuterService - - !type:CharacterJobRequirement - jobs: - - Clown - items: - - ClothingOuterWinterClown - -- type: loadout - id: LoadoutServiceClownOuterClownPriest - category: JobsServiceUncategorized - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutOuterService - - !type:CharacterJobRequirement - jobs: - - Clown - items: - - ClothingOuterClownPriest - -- type: loadout - id: LoadoutServiceClownBootsWinter - category: JobsServiceUncategorized - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutShoesService - - !type:CharacterJobRequirement - jobs: - - Clown - items: - - ClothingShoesBootsWinterClown - -- type: loadout - id: LoadoutServiceClownMaskSexy - category: JobsServiceUncategorized - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutMaskService - - !type:CharacterJobRequirement - jobs: - - Clown - items: - - ClothingMaskSexyClown - -- type: loadout - id: LoadoutServiceClownBedsheetClown - category: JobsServiceUncategorized - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutNeckService - - !type:CharacterJobRequirement - jobs: - - Clown - items: - - BedsheetClown - -# For the most part we dont want people to take this item, so its used as an example of all the things -# you can do with requirements. Point someone to this thing if they ask "how tf do loadout requirements work?" - -- type: loadout - id: LoadoutServiceClownCowToolboxFilled - category: JobsServiceUncategorized - cost: 2 - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutEquipmentService - - !type:CharacterLogicXorRequirement - requirements: - - !type:CharacterLogicAndRequirement - requirements: - - !type:CharacterSexRequirement - sex: Male - - !type:CharacterSpeciesRequirement - species: - - Felinid - - !type:CharacterHeightRequirement - min: 110 - max: 122 - - !type:CharacterGenderRequirement - gender: Female - - !type:CharacterTraitRequirement - traits: - - HeavyweightDrunk - - !type:CharacterLogicAndRequirement - requirements: - - !type:CharacterSpeciesRequirement - species: - - Harpy - - !type:CharacterHeightRequirement - min: 170 - - !type:CharacterWeightRequirement - min: 20 - - !type:CharacterSexRequirement - sex: Male - - !type:CharacterJobRequirement - inverted: true # This is the equivalent of !(condition) - jobs: - - Clown - - !type:CharacterJobRequirement - jobs: - - Clown - items: - - CowToolboxFilled - -# Mime -- type: loadout - id: LoadoutServiceMimeOuterWinter - category: JobsServiceUncategorized - cost: 1 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutOuterService - - !type:CharacterJobRequirement - jobs: - - Mime - items: - - ClothingOuterWinterMime - -- type: loadout - id: LoadoutServiceMimeMaskSad - category: JobsServiceUncategorized - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutMaskService - - !type:CharacterJobRequirement - jobs: - - Mime - items: - - ClothingMaskSadMime - -- type: loadout - id: LoadoutServiceMimeMaskScared - category: JobsServiceUncategorized - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutMaskService - - !type:CharacterJobRequirement - jobs: - - Mime - items: - - ClothingMaskScaredMime - -- type: loadout - id: LoadoutServiceMimeMaskSexy - category: JobsServiceUncategorized - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutMaskService - - !type:CharacterJobRequirement - jobs: - - Mime - items: - - ClothingMaskSexyMime - -- type: loadout - id: LoadoutServiceMimeShoesBootsWinter - category: JobsServiceUncategorized - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutShoesService - - !type:CharacterJobRequirement - jobs: - - Mime - items: - - ClothingShoesBootsWinterMime - -- type: loadout - id: LoadoutServiceMimeBedsheetMime - category: JobsServiceUncategorized - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutNeckService - - !type:CharacterJobRequirement - jobs: - - Mime - items: - - BedsheetMime - -# Bartender -- type: loadout - id: LoadoutServiceBartenderUniformPurple - category: JobsServiceBartender - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsService - - !type:CharacterJobRequirement - jobs: - - Bartender - items: - - ClothingUniformJumpsuitBartenderPurple - -- type: loadout - id: LoadoutServiceBartenderArmorDuraVest - category: JobsServiceBartender - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBartenderOuterwear - - !type:CharacterJobRequirement - jobs: - - Bartender - items: - - ClothingOuterArmorDuraVest - -- type: loadout - id: LoadoutServiceBartenderBoxBeanbags - category: JobsServiceBartender - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBartenderAmmo - - !type:CharacterJobRequirement - jobs: - - Bartender - items: - - BoxBeanbag - -- type: loadout - id: LoadoutServiceBartenderBoxLightRifleRubber - category: JobsServiceBartender - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBartenderAmmo - - !type:CharacterJobRequirement - jobs: - - Bartender - items: - - MagazineBoxLightRifleRubber - -- type: loadout - id: LoadoutServiceBartenderShotgunDoubleBarreledRubber - category: JobsServiceBartender - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBartenderWeapon - - !type:CharacterJobRequirement - jobs: - - Bartender - items: - - WeaponShotgunDoubleBarreledRubber - -- type: loadout - id: LoadoutServiceBartenderMosinRubber - category: JobsServiceBartender - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBartenderWeapon - - !type:CharacterJobRequirement - jobs: - - Bartender - items: - - WeaponSniperMosinRubber - -- type: loadout - id: LoadoutServiceJumpsuitBartenderNt - category: JobsServiceBartender - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBartenderUniforms - - !type:CharacterJobRequirement - jobs: - - Bartender - items: - - ClothingUniformJumpsuitBartenderNt - -- type: loadout - id: LoadoutServiceJumpsuitBartenderIdris - category: JobsServiceBartender - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBartenderUniforms - - !type:CharacterJobRequirement - jobs: - - Bartender - items: - - ClothingUniformJumpsuitBartenderIdris - -- type: loadout - id: LoadoutServiceJumpsuitBartenderOrion - category: JobsServiceBartender - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBartenderUniforms - - !type:CharacterJobRequirement - jobs: - - Bartender - items: - - ClothingUniformJumpsuitBartenderOrion - -- type: loadout - id: LoadoutServiceHeadBartenderNt - category: JobsServiceBartender - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBartenderHead - - !type:CharacterJobRequirement - jobs: - - Bartender - items: - - ClothingHeadHatFlatcapBartenderNanotrasen - -- type: loadout - id: LoadoutServiceHeadBartenderIdris - category: JobsServiceBartender - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBartenderHead - - !type:CharacterJobRequirement - jobs: - - Bartender - items: - - ClothingHeadHatFlatcapBartenderIdris - -- type: loadout - id: LoadoutServiceHeadBartenderOrion - category: JobsServiceBartender - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBartenderHead - - !type:CharacterJobRequirement - jobs: - - Bartender - items: - - ClothingHeadHatFlatcapBartenderOrion - -- type: loadout - id: LoadoutServiceOuterBartenderNt - category: JobsServiceBartender - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBartenderOuterwear - - !type:CharacterJobRequirement - jobs: - - Bartender - items: - - ClothingOuterVestNt - -- type: loadout - id: LoadoutServiceOuterBartenderIdris - category: JobsServiceBartender - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBartenderOuterwear - - !type:CharacterJobRequirement - jobs: - - Bartender - items: - - ClothingOuterVestIdris - -- type: loadout - id: LoadoutServiceOuterBartenderOrion - category: JobsServiceBartender - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBartenderOuterwear - - !type:CharacterJobRequirement - jobs: - - Bartender - items: - - ClothingOuterVestOrion - -# Botanist -- type: loadout - id: LoadoutServiceBotanistUniformOveralls - category: JobsServiceBotanist - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsService - - !type:CharacterJobRequirement - jobs: - - Botanist - items: - - ClothingUniformOveralls - -- type: loadout - id: LoadoutServiceJumpsuitHydroponicsNt - category: JobsServiceBotanist - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBotanistUniforms - - !type:CharacterJobRequirement - jobs: - - Botanist - items: - - ClothingUniformJumpsuitHydroponicsNt - -- type: loadout - id: LoadoutServiceJumpsuitHydroponicsIdris - category: JobsServiceBotanist - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBotanistUniforms - - !type:CharacterJobRequirement - jobs: - - Botanist - items: - - ClothingUniformJumpsuitHydroponicsIdris - -- type: loadout - id: LoadoutServiceJumpsuitHydroponicsOrion - category: JobsServiceBotanist - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBotanistUniforms - - !type:CharacterJobRequirement - jobs: - - Botanist - items: - - ClothingUniformJumpsuitHydroponicsOrion - -# Lawyer -- type: loadout - id: LoadoutServiceLawyerUniformBlueSuit - category: JobsServiceUncategorized - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsService - - !type:CharacterJobRequirement - jobs: - - Lawyer - items: - - ClothingUniformJumpsuitLawyerBlue - -- type: loadout - id: LoadoutServiceLawyerUniformBlueSkirt - category: JobsServiceUncategorized - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsService - - !type:CharacterJobRequirement - jobs: - - Lawyer - items: - - ClothingUniformJumpskirtLawyerBlue - -- type: loadout - id: LoadoutServiceLawyerUniformRedSuit - category: JobsServiceUncategorized - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsService - - !type:CharacterJobRequirement - jobs: - - Lawyer - items: - - ClothingUniformJumpsuitLawyerRed - -- type: loadout - id: LoadoutServiceLawyerUniformRedSkirt - category: JobsServiceUncategorized - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsService - - !type:CharacterJobRequirement - jobs: - - Lawyer - items: - - ClothingUniformJumpskirtLawyerRed - -- type: loadout - id: LoadoutServiceLawyerUniformPurpleSuit - category: JobsServiceUncategorized - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsService - - !type:CharacterJobRequirement - jobs: - - Lawyer - items: - - ClothingUniformJumpsuitLawyerPurple - -- type: loadout - id: LoadoutServiceLawyerUniformPurpleSkirt - category: JobsServiceUncategorized - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsService - - !type:CharacterJobRequirement - jobs: - - Lawyer - items: - - ClothingUniformJumpskirtLawyerPurple - -- type: loadout - id: LoadoutServiceLawyerUniformGoodSuit - category: JobsServiceUncategorized - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsService - - !type:CharacterJobRequirement - jobs: - - Lawyer - items: - - ClothingUniformJumpsuitLawyerGood - -- type: loadout - id: LoadoutServiceLawyerUniformGoodSkirt - category: JobsServiceUncategorized - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsService - - !type:CharacterJobRequirement - jobs: - - Lawyer - items: - - ClothingUniformJumpskirtLawyerGood - -- type: loadout - id: LoadoutServiceReporterUniformJournalist - category: JobsServiceUncategorized - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsService - - !type:CharacterJobRequirement - jobs: - - Reporter - items: - - ClothingUniformJumpsuitJournalist - -# Reporter -- type: loadout - id: LoadoutServiceReporterUniformDetectivesuit - category: JobsServiceUncategorized - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsService - - !type:CharacterJobRequirement - jobs: - - Reporter - items: - - ClothingUniformJumpsuitDetective - -- type: loadout - id: LoadoutServiceReporterUniformDetectiveskirt - category: JobsServiceUncategorized - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutUniformsService - - !type:CharacterJobRequirement - jobs: - - Reporter - items: - - ClothingUniformJumpskirtDetective - -# Chef -- type: loadout - id: LoadoutServiceJumpsuitChefNt - category: JobsServiceChef - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutChefUniforms - - !type:CharacterJobRequirement - jobs: - - Chef - items: - - ClothingUniformJumpsuitChefNt - -- type: loadout - id: LoadoutServiceJumpsuitChefIdris - category: JobsServiceChef - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutChefUniforms - - !type:CharacterJobRequirement - jobs: - - Chef - items: - - ClothingUniformJumpsuitChefIdris - -- type: loadout - id: LoadoutServiceJumpsuitChefOrion - category: JobsServiceChef - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutChefUniforms - - !type:CharacterJobRequirement - jobs: - - Chef - items: - - ClothingUniformJumpsuitChefOrion - -- type: loadout - id: LoadoutServiceHeadChefNt - category: JobsServiceChef - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutChefHead - - !type:CharacterJobRequirement - jobs: - - Chef - items: - - ClothingHeadHatChefNt - -- type: loadout - id: LoadoutServiceHeadChefIdris - category: JobsServiceChef - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutChefHead - - !type:CharacterJobRequirement - jobs: - - Chef - items: - - ClothingHeadHatChefIdris - -- type: loadout - id: LoadoutServiceHeadChefOrion - category: JobsServiceChef - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutChefHead - - !type:CharacterJobRequirement - jobs: - - Chef - items: - - ClothingHeadHatChefOrion - -- type: loadout - id: LoadoutServiceOuterChefNt - category: JobsServiceChef - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutChefOuter - - !type:CharacterJobRequirement - jobs: - - Chef - items: - - ClothingOuterJacketChefNt - -- type: loadout - id: LoadoutServiceOuterChefIdris - category: JobsServiceChef - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutChefOuter - - !type:CharacterJobRequirement - jobs: - - Chef - items: - - ClothingOuterJacketChefIdris - -- type: loadout - id: LoadoutServiceOuterChefOrion - category: JobsServiceChef - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutChefOuter - - !type:CharacterJobRequirement - jobs: - - Chef - items: - - ClothingOuterJacketChefOrion - -# Janitor -- type: loadout - id: LoadoutServiceJumpsuitJanitorNt - category: JobsServiceJanitor - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutJanitorUniforms - - !type:CharacterJobRequirement - jobs: - - Janitor - items: - - ClothingUniformJumpsuitJanitorNt - -- type: loadout - id: LoadoutServiceJumpsuitJanitorIdris - category: JobsServiceJanitor - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutJanitorUniforms - - !type:CharacterJobRequirement - jobs: - - Janitor - items: - - ClothingUniformJumpsuitJanitorIdris - -- type: loadout - id: LoadoutServiceJumpsuitJanitorOrion - category: JobsServiceJanitor - cost: 0 - exclusive: true - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutJanitorUniforms - - !type:CharacterJobRequirement - jobs: - - Janitor - items: - - ClothingUniformJumpsuitJanitorOrion diff --git a/Resources/Prototypes/Loadouts/backpacks.yml b/Resources/Prototypes/Loadouts/backpacks.yml deleted file mode 100644 index 5fd812380c5..00000000000 --- a/Resources/Prototypes/Loadouts/backpacks.yml +++ /dev/null @@ -1,268 +0,0 @@ -- type: loadout - id: LoadoutBackpack - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpack - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - -- type: loadout - id: LoadoutBackpackClown - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackClown - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterJobRequirement - jobs: - - Clown - -- type: loadout - id: LoadoutBackpackIan - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackIan - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterJobRequirement - jobs: - - HeadOfPersonnel - -- type: loadout - id: LoadoutBackpackSecurity - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackSecurity - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Security - -- type: loadout - id: LoadoutBackpackBrigmedic - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackBrigmedic - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterJobRequirement - jobs: - - Brigmedic - -- type: loadout - id: LoadoutBackpackEngineering - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackEngineering - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Engineering - -- type: loadout - id: LoadoutBackpackAtmospherics - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackAtmospherics - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Engineering - -- type: loadout - id: LoadoutBackpackMedical - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackMedical - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Medical - -- type: loadout - id: LoadoutBackpackCaptain - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackCaptain - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterJobRequirement - jobs: - - Captain - -- type: loadout - id: LoadoutBackpackMime - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackMime - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterJobRequirement - jobs: - - Mime - -- type: loadout - id: LoadoutBackpackChemistry - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackChemistry - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Medical - -- type: loadout - id: LoadoutBackpackHydroponics - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackHydroponics - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Civilian - -- type: loadout - id: LoadoutBackpackScience - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackScience - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Epistemics - -- type: loadout - id: LoadoutBackpackRobotics - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackRobotics - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Epistemics - -- type: loadout - id: LoadoutBackpackVirology - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackVirology - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Medical - -- type: loadout - id: LoadoutBackpackGenetics - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackGenetics - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Medical - -- type: loadout - id: LoadoutBackpackCargo - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackCargo - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Logistics - -- type: loadout - id: LoadoutBackpackSalvage - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackSalvage - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Logistics - -- type: loadout - id: LoadoutBackpackMerc - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackMerc - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterLogicOrRequirement - requirements: - - !type:CharacterDepartmentRequirement - departments: - - Security - - Civilian - - !type:CharacterJobRequirement - jobs: - - SalvageSpecialist diff --git a/Resources/Prototypes/Loadouts/duffelbags.yml b/Resources/Prototypes/Loadouts/duffelbags.yml deleted file mode 100644 index 89997326f1a..00000000000 --- a/Resources/Prototypes/Loadouts/duffelbags.yml +++ /dev/null @@ -1,234 +0,0 @@ -- type: loadout - id: LoadoutBackpackDuffel - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackDuffel - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - -- type: loadout - id: LoadoutBackpackDuffelClown - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackDuffelClown - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterJobRequirement - jobs: - - Clown - -- type: loadout - id: LoadoutBackpackDuffelSecurity - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackDuffelSecurity - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Security - -- type: loadout - id: LoadoutBackpackDuffelBrigmedic - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackDuffelBrigmedic - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterJobRequirement - jobs: - - Brigmedic - -- type: loadout - id: LoadoutBackpackDuffelEngineering - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackDuffelEngineering - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Engineering - -- type: loadout - id: LoadoutBackpackDuffelAtmospherics - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackDuffelAtmospherics - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Engineering - -- type: loadout - id: LoadoutBackpackDuffelMedical - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackDuffelMedical - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Medical - -- type: loadout - id: LoadoutBackpackDuffelCaptain - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackDuffelCaptain - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterJobRequirement - jobs: - - Captain - -- type: loadout - id: LoadoutBackpackDuffelMime - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackDuffelMime - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterJobRequirement - jobs: - - Mime - -- type: loadout - id: LoadoutBackpackDuffelChemistry - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackDuffelChemistry - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Medical - -- type: loadout - id: LoadoutBackpackDuffelHydroponics - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackDuffelHydroponics - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Civilian - -- type: loadout - id: LoadoutBackpackDuffelScience - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackDuffelScience - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Epistemics - -- type: loadout - id: LoadoutBackpackDuffelRobotics - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackDuffelRobotics - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Epistemics - -- type: loadout - id: LoadoutBackpackDuffelVirology - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackDuffelVirology - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Medical - -- type: loadout - id: LoadoutBackpackDuffelGenetics - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackDuffelGenetics - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Medical - -- type: loadout - id: LoadoutBackpackDuffelCargo - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackDuffelCargo - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Logistics - -- type: loadout - id: LoadoutBackpackDuffelSalvage - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackDuffelSalvage - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Logistics diff --git a/Resources/Prototypes/Loadouts/hands.yml b/Resources/Prototypes/Loadouts/hands.yml deleted file mode 100644 index 3861b180b19..00000000000 --- a/Resources/Prototypes/Loadouts/hands.yml +++ /dev/null @@ -1,167 +0,0 @@ -- type: loadout - id: LoadoutHandsColorPurple - category: Hands - cost: 0 - exclusive: true - items: - - ClothingHandsGlovesColorPurple - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutGloves - -- type: loadout - id: LoadoutHandsColorRed - category: Hands - cost: 0 - exclusive: true - items: - - ClothingHandsGlovesColorRed - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutGloves - -- type: loadout - id: LoadoutHandsColorBlack - category: Hands - cost: 0 - exclusive: true - items: - - ClothingHandsGlovesColorBlack - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutGloves - -- type: loadout - id: LoadoutHandsColorBlue - category: Hands - cost: 0 - exclusive: true - items: - - ClothingHandsGlovesColorBlue - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutGloves - -- type: loadout - id: LoadoutHandsColorBrown - category: Hands - cost: 0 - exclusive: true - items: - - ClothingHandsGlovesColorBrown - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutGloves - -- type: loadout - id: LoadoutHandsColorGray - category: Hands - cost: 0 - exclusive: true - items: - - ClothingHandsGlovesColorGray - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutGloves - -- type: loadout - id: LoadoutHandsColorGreen - category: Hands - cost: 0 - exclusive: true - items: - - ClothingHandsGlovesColorGreen - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutGloves - -- type: loadout - id: LoadoutHandsColorLightBrown - category: Hands - cost: 0 - exclusive: true - items: - - ClothingHandsGlovesColorLightBrown - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutGloves - -- type: loadout - id: LoadoutHandsColorOrange - category: Hands - cost: 0 - exclusive: true - items: - - ClothingHandsGlovesColorOrange - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutGloves - -- type: loadout - id: LoadoutHandsColorWhite - category: Hands - cost: 0 - exclusive: true - items: - - ClothingHandsGlovesColorWhite - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutGloves - -- type: loadout - id: LoadoutHandsColorYellowBudget - category: Hands - cost: 3 - exclusive: true - requirements: - - !type:CharacterJobRequirement - jobs: - - Passenger - - !type:CharacterItemGroupRequirement - group: LoadoutGloves - items: - - ClothingHandsGlovesColorYellowBudget - -- type: loadout - id: LoadoutHandsGlovesLeather - category: Hands - cost: 0 - exclusive: true - items: - - ClothingHandsGlovesLeather - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutGloves - -- type: loadout - id: LoadoutHandsGlovesPowerglove - category: Hands - cost: 1 - exclusive: true - items: - - ClothingHandsGlovesPowerglove - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutGloves - -- type: loadout - id: LoadoutHandsGlovesRobohands - category: Hands - cost: 0 - exclusive: true - items: - - ClothingHandsGlovesRobohands - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutGloves - -- type: loadout - id: LoadoutHandsGlovesFingerless - category: Hands - cost: 0 - exclusive: true - items: - - ClothingHandsGlovesFingerless - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutGloves diff --git a/Resources/Prototypes/Loadouts/head.yml b/Resources/Prototypes/Loadouts/head.yml deleted file mode 100644 index 27e2ea8e7da..00000000000 --- a/Resources/Prototypes/Loadouts/head.yml +++ /dev/null @@ -1,739 +0,0 @@ -# Hats -- type: loadout - id: LoadoutHeadBeaverHat - category: Head - cost: 1 - exclusive: true - items: - - ClothingHeadHatBeaverHat - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadTophat - category: Head - cost: 1 - exclusive: true - items: - - ClothingHeadHatTophat - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadFedoraBlack - category: Head - cost: 1 - exclusive: true - items: - - ClothingHeadHatFedoraBlack - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadFedoraBrown - category: Head - cost: 1 - exclusive: true - items: - - ClothingHeadHatFedoraBrown - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadFedoraGrey - category: Head - cost: 1 - exclusive: true - items: - - ClothingHeadHatFedoraGrey - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadFedoraChoc - category: Head - cost: 1 - exclusive: true - items: - - ClothingHeadHatFedoraChoc - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadFedoraWhite - category: Head - cost: 1 - exclusive: true - items: - - ClothingHeadHatFedoraWhite - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadFlatBlack - category: Head - cost: 1 - exclusive: true - items: - - ClothingHeadHatFlatBlack - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadFlatBrown - category: Head - cost: 1 - exclusive: true - items: - - ClothingHeadHatFlatBrown - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadHatCowboyBrown - category: Head - cost: 1 - exclusive: true - items: - - ClothingHeadHatCowboyBrown - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadHatCowboyBlack - category: Head - cost: 1 - exclusive: true - items: - - ClothingHeadHatCowboyBlack - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadHatCowboyGrey - category: Head - cost: 1 - exclusive: true - items: - - ClothingHeadHatCowboyGrey - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadHatCowboyRed - category: Head - cost: 1 - exclusive: true - items: - - ClothingHeadHatCowboyRed - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadHatCowboyWhite - category: Head - cost: 1 - exclusive: true - items: - - ClothingHeadHatCowboyWhite - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadHatCowboyBountyHunter - category: Head - cost: 1 - exclusive: true - items: - - ClothingHeadHatCowboyBountyHunter - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadTinfoil - category: Head - cost: 2 - exclusive: true - items: - - ClothingHeadTinfoil - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadBellhop - category: Head - cost: 1 - exclusive: true - items: - - ClothingHeadHatBellhop - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadPoppy - category: Head - cost: 0 - exclusive: true - items: - - FoodPoppy - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -# Color Hats -- type: loadout - id: LoadoutHeadHatBluesoft - category: Head - cost: 0 - exclusive: true - items: - - ClothingHeadHatBluesoft - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadHatBluesoftFlipped - category: Head - cost: 0 - exclusive: true - items: - - ClothingHeadHatBluesoftFlipped - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadHatCorpsoft - category: Head - cost: 0 - exclusive: true - items: - - ClothingHeadHatCorpsoft - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadHatCorpsoftFlipped - category: Head - cost: 0 - exclusive: true - items: - - ClothingHeadHatCorpsoftFlipped - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadHatGreensoft - category: Head - cost: 0 - exclusive: true - items: - - ClothingHeadHatGreensoft - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadHatGreensoftFlipped - category: Head - cost: 0 - exclusive: true - items: - - ClothingHeadHatGreensoftFlipped - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadHatGreysoft - category: Head - cost: 0 - exclusive: true - items: - - ClothingHeadHatGreysoft - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadHatGreysoftFlipped - category: Head - cost: 0 - exclusive: true - items: - - ClothingHeadHatGreysoftFlipped - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadHatMimesoft - category: Head - cost: 0 - exclusive: true - items: - - ClothingHeadHatMimesoft - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadHatMimesoftFlipped - category: Head - cost: 0 - exclusive: true - items: - - ClothingHeadHatMimesoftFlipped - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadHatOrangesoft - category: Head - cost: 0 - exclusive: true - items: - - ClothingHeadHatOrangesoft - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadHatOrangesoftFlipped - category: Head - cost: 0 - exclusive: true - items: - - ClothingHeadHatOrangesoftFlipped - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadHatPurplesoft - category: Head - cost: 0 - exclusive: true - items: - - ClothingHeadHatPurplesoft - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadHatPurplesoftFlipped - category: Head - cost: 0 - exclusive: true - items: - - ClothingHeadHatPurplesoftFlipped - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadHatRedsoft - category: Head - cost: 0 - exclusive: true - items: - - ClothingHeadHatRedsoft - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadHatRedsoftFlipped - category: Head - cost: 0 - exclusive: true - items: - - ClothingHeadHatRedsoftFlipped - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadHatYellowsoft - category: Head - cost: 0 - exclusive: true - items: - - ClothingHeadHatYellowsoft - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadHatYellowsoftFlipped - category: Head - cost: 0 - exclusive: true - items: - - ClothingHeadHatYellowsoftFlipped - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -# Headbands -- type: loadout - id: LoadoutHeadBandBlack - category: Head - cost: 0 - exclusive: true - items: - - ClothingHeadBandBlack - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadBandBlue - category: Head - cost: 0 - exclusive: true - items: - - ClothingHeadBandBlue - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadBandGold - category: Head - cost: 0 - exclusive: true - items: - - ClothingHeadBandGold - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadBandGreen - category: Head - cost: 0 - exclusive: true - items: - - ClothingHeadBandGreen - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadBandGrey - category: Head - cost: 0 - exclusive: true - items: - - ClothingHeadBandGrey - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadBandRed - category: Head - cost: 0 - exclusive: true - items: - - ClothingHeadBandRed - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadBandSkull - category: Head - cost: 0 - exclusive: true - items: - - ClothingHeadBandSkull - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadBandMerc - category: Head - cost: 1 - exclusive: true - items: - - ClothingHeadBandMerc - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadBandBrown - category: Head - cost: 0 - exclusive: true - items: - - ClothingHeadBandBrown - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadFishCap - category: Head - cost: 1 - exclusive: true - items: - - ClothingHeadFishCap - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadRastaHat - category: Head - cost: 2 - exclusive: true - items: - - ClothingHeadRastaHat - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadFez - category: Head - cost: 1 - exclusive: true - items: - - ClothingHeadHatFez - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadBowlerHat - category: Head - cost: 1 - exclusive: true - items: - - ClothingHeadHatBowlerHat - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -# Flatcaps -- type: loadout - id: LoadoutHeadGreyFlatcap - category: Head - cost: 1 - exclusive: true - items: - - ClothingHeadHatGreyFlatcap - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadBrownFlatcap - category: Head - cost: 1 - exclusive: true - items: - - ClothingHeadHatBrownFlatcap - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -# Berets -- type: loadout - id: LoadoutHeadBeret - category: Head - cost: 1 - exclusive: true - items: - - ClothingHeadHatBeret - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadBeretFrench - category: Head - cost: 1 - exclusive: true - items: - - ClothingHeadHatBeretFrench - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -# Cowboy hats -- type: loadout - id: LoadoutHeadCowboyBrown - category: Head - cost: 1 - exclusive: true - items: - - ClothingHeadHatCowboyBrown - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadCowboyBlack - category: Head - cost: 1 - exclusive: true - items: - - ClothingHeadHatCowboyBlack - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadCowboyWhite - category: Head - cost: 1 - exclusive: true - items: - - ClothingHeadHatCowboyWhite - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadCowboyGrey - category: Head - cost: 1 - exclusive: true - items: - - ClothingHeadHatCowboyGrey - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead - -- type: loadout - id: LoadoutHeadCowboyRed - category: Head - cost: 1 - exclusive: true - items: - - ClothingHeadHatCowboyRed - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutHead diff --git a/Resources/Prototypes/Loadouts/mask.yml b/Resources/Prototypes/Loadouts/mask.yml deleted file mode 100644 index 4ea27fd0fa2..00000000000 --- a/Resources/Prototypes/Loadouts/mask.yml +++ /dev/null @@ -1,179 +0,0 @@ -- type: loadout - id: LoadoutMaskSterile - category: Mask - cost: 0 - exclusive: true - items: - - ClothingMaskSterile - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutMasks - -- type: loadout - id: LoadoutMaskMuzzle - category: Mask - cost: 1 - exclusive: true - items: - - ClothingMaskMuzzle - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutMasks - -- type: loadout - id: LoadoutMaskGas - category: Mask - cost: 1 - exclusive: true - items: - - ClothingMaskGas - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutMasks - -# Maskbands -- type: loadout - id: LoadoutMaskBandBlack - category: Mask - cost: 0 - exclusive: true - items: - - ClothingMaskBandBlack - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutMasks - -- type: loadout - id: LoadoutMaskBandBlue - category: Mask - cost: 0 - exclusive: true - items: - - ClothingMaskBandBlue - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutMasks - -- type: loadout - id: LoadoutMaskBandGold - category: Mask - cost: 0 - exclusive: true - items: - - ClothingMaskBandGold - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutMasks - -- type: loadout - id: LoadoutMaskBandGreen - category: Mask - cost: 0 - exclusive: true - items: - - ClothingMaskBandGreen - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutMasks - -- type: loadout - id: LoadoutMaskBandGrey - category: Mask - cost: 0 - exclusive: true - items: - - ClothingMaskBandGrey - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutMasks - -- type: loadout - id: LoadoutMaskBandRed - category: Mask - cost: 0 - exclusive: true - items: - - ClothingMaskBandRed - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutMasks - -- type: loadout - id: LoadoutMaskBandSkull - category: Mask - cost: 0 - exclusive: true - items: - - ClothingMaskBandSkull - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutMasks - -- type: loadout - id: LoadoutMaskBandMerc - category: Mask - cost: 1 - exclusive: true - items: - - ClothingMaskBandMerc - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutMasks - -- type: loadout - id: LoadoutMaskBandBrown - category: Mask - cost: 0 - exclusive: true - items: - - ClothingMaskBandBrown - requirements: - - !type:CharacterDepartmentRequirement - inverted: true - departments: - - Security - - !type:CharacterItemGroupRequirement - group: LoadoutMasks - -# Gaiters -- type: loadout - id: LoadoutMaskNeckGaiter - category: Mask - cost: 1 - exclusive: true - items: - - ClothingMaskNeckGaiter - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutMasks - -- type: loadout - id: LoadoutMaskNeckGaiterRed - category: Mask - cost: 1 - exclusive: true - items: - - ClothingMaskNeckGaiterRed - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutMasks diff --git a/Resources/Prototypes/Loadouts/satchels.yml b/Resources/Prototypes/Loadouts/satchels.yml deleted file mode 100644 index 4f21dc7656f..00000000000 --- a/Resources/Prototypes/Loadouts/satchels.yml +++ /dev/null @@ -1,247 +0,0 @@ -- type: loadout - id: LoadoutBackpackSatchel - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackSatchel - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - -- type: loadout - id: LoadoutItemBackpackSatchelLeather - category: Backpacks - cost: 1 - exclusive: true - items: - - ClothingBackpackSatchelLeather - requirements: - - !type:CharacterJobRequirement - inverted: true - jobs: - - Prisoner - -- type: loadout - id: LoadoutBackpackSatchelClown - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackSatchelClown - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterJobRequirement - jobs: - - Clown - -- type: loadout - id: LoadoutBackpackSatchelSecurity - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackSatchelSecurity - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Security - -- type: loadout - id: LoadoutBackpackSatchelBrigmedic - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackSatchelBrigmedic - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterJobRequirement - jobs: - - Brigmedic - -- type: loadout - id: LoadoutBackpackSatchelEngineering - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackSatchelEngineering - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Engineering - -- type: loadout - id: LoadoutBackpackSatchelAtmospherics - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackSatchelAtmospherics - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Engineering - -- type: loadout - id: LoadoutBackpackSatchelMedical - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackSatchelMedical - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Medical - -- type: loadout - id: LoadoutBackpackSatchelCaptain - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackSatchelCaptain - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterJobRequirement - jobs: - - Captain - -- type: loadout - id: LoadoutBackpackSatchelMime - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackSatchelMime - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterJobRequirement - jobs: - - Mime - -- type: loadout - id: LoadoutBackpackSatchelChemistry - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackSatchelChemistry - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Medical - -- type: loadout - id: LoadoutBackpackSatchelHydroponics - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackSatchelHydroponics - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Civilian - -- type: loadout - id: LoadoutBackpackSatchelScience - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackSatchelScience - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Epistemics - -- type: loadout - id: LoadoutBackpackSatchelRobotics - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackSatchelRobotics - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Epistemics - -- type: loadout - id: LoadoutBackpackSatchelVirology - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackSatchelVirology - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Medical - -- type: loadout - id: LoadoutBackpackSatchelGenetics - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackSatchelGenetics - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Medical - -- type: loadout - id: LoadoutBackpackSatchelCargo - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackSatchelCargo - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Logistics - -- type: loadout - id: LoadoutBackpackSatchelSalvage - category: Backpacks - cost: 0 - exclusive: true - items: - - ClothingBackpackSatchelSalvage - requirements: - - !type:CharacterItemGroupRequirement - group: LoadoutBackpacks - - !type:CharacterDepartmentRequirement - departments: - - Logistics diff --git a/Resources/Prototypes/Magic/event_spells.yml b/Resources/Prototypes/Magic/event_spells.yml index e59e1b2db88..742c187d717 100644 --- a/Resources/Prototypes/Magic/event_spells.yml +++ b/Resources/Prototypes/Magic/event_spells.yml @@ -2,7 +2,7 @@ id: ActionSummonGhosts name: Summon Ghosts description: Makes all current ghosts permanently invisible - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction useDelay: 120 diff --git a/Resources/Prototypes/Magic/forcewall_spells.yml b/Resources/Prototypes/Magic/forcewall_spells.yml index d3d8fef7608..a047a4a6f77 100644 --- a/Resources/Prototypes/Magic/forcewall_spells.yml +++ b/Resources/Prototypes/Magic/forcewall_spells.yml @@ -2,7 +2,7 @@ id: ActionForceWall name: Forcewall description: Creates a magical barrier. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction useDelay: 10 diff --git a/Resources/Prototypes/Magic/knock_spell.yml b/Resources/Prototypes/Magic/knock_spell.yml index e2c3dcfd4c7..a0e22ec8f4b 100644 --- a/Resources/Prototypes/Magic/knock_spell.yml +++ b/Resources/Prototypes/Magic/knock_spell.yml @@ -2,7 +2,7 @@ id: ActionKnock name: Knock description: This spell opens nearby doors. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction useDelay: 10 diff --git a/Resources/Prototypes/Magic/projectile_spells.yml b/Resources/Prototypes/Magic/projectile_spells.yml index b8db7557bba..e2697c59b18 100644 --- a/Resources/Prototypes/Magic/projectile_spells.yml +++ b/Resources/Prototypes/Magic/projectile_spells.yml @@ -2,7 +2,7 @@ id: ActionFireball name: Fireball description: Fires an explosive fireball towards the clicked location. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Magic - type: WorldTargetAction @@ -29,7 +29,7 @@ parent: ActionFireball name: Fireball II description: Fires a fireball, but faster! - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: WorldTargetAction useDelay: 10 @@ -52,7 +52,7 @@ parent: ActionFireball name: Fireball III description: The fastest fireball in the west! - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: WorldTargetAction useDelay: 8 diff --git a/Resources/Prototypes/Magic/rune_spells.yml b/Resources/Prototypes/Magic/rune_spells.yml index 42022f57850..da072004b1f 100644 --- a/Resources/Prototypes/Magic/rune_spells.yml +++ b/Resources/Prototypes/Magic/rune_spells.yml @@ -2,7 +2,7 @@ id: ActionFlashRune name: Flash Rune description: Summons a rune that flashes if used. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction useDelay: 10 @@ -17,7 +17,7 @@ id: ActionExplosionRune name: Explosion Rune description: Summons a rune that explodes if used. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction useDelay: 20 @@ -32,7 +32,7 @@ id: ActionIgniteRune name: Ignite Rune description: Summons a rune that ignites if used. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction useDelay: 15 @@ -47,7 +47,7 @@ id: ActionStunRune name: Stun Rune description: Summons a rune that stuns if used. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction useDelay: 10 diff --git a/Resources/Prototypes/Magic/smite_spells.yml b/Resources/Prototypes/Magic/smite_spells.yml index e629e565058..a0875211307 100644 --- a/Resources/Prototypes/Magic/smite_spells.yml +++ b/Resources/Prototypes/Magic/smite_spells.yml @@ -2,7 +2,7 @@ id: ActionSmite name: Smite description: Instantly gibs a target. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: EntityTargetAction useDelay: 60 diff --git a/Resources/Prototypes/Magic/spawn_spells.yml b/Resources/Prototypes/Magic/spawn_spells.yml index 3f8148b83cb..2800499fcab 100644 --- a/Resources/Prototypes/Magic/spawn_spells.yml +++ b/Resources/Prototypes/Magic/spawn_spells.yml @@ -2,7 +2,7 @@ id: ActionSpawnMagicarpSpell name: Summon Magicarp description: This spell summons three Magi-Carp to your aid! May or may not turn on user. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: WorldTargetAction useDelay: 10 diff --git a/Resources/Prototypes/Magic/staves.yml b/Resources/Prototypes/Magic/staves.yml index ef94a3910fd..d9b71e39a85 100644 --- a/Resources/Prototypes/Magic/staves.yml +++ b/Resources/Prototypes/Magic/staves.yml @@ -34,7 +34,7 @@ - type: entity id: ActionRgbLight - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: EntityTargetAction whitelist: { components: [ PointLight ] } diff --git a/Resources/Prototypes/Magic/teleport_spells.yml b/Resources/Prototypes/Magic/teleport_spells.yml index cc89cf8ee0d..1439dcea17e 100644 --- a/Resources/Prototypes/Magic/teleport_spells.yml +++ b/Resources/Prototypes/Magic/teleport_spells.yml @@ -2,7 +2,7 @@ id: ActionBlink name: Blink description: Teleport to the clicked location. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: WorldTargetAction useDelay: 10 diff --git a/Resources/Prototypes/Magic/utility_spells.yml b/Resources/Prototypes/Magic/utility_spells.yml index dccdda37898..6c0b08d9b63 100644 --- a/Resources/Prototypes/Magic/utility_spells.yml +++ b/Resources/Prototypes/Magic/utility_spells.yml @@ -2,7 +2,7 @@ id: ActionChargeSpell name: Charge description: Adds a charge back to your wand - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction useDelay: 30 diff --git a/Resources/Prototypes/Maps/Pools/default.yml b/Resources/Prototypes/Maps/Pools/default.yml index c04d06471e6..0745a2d9197 100644 --- a/Resources/Prototypes/Maps/Pools/default.yml +++ b/Resources/Prototypes/Maps/Pools/default.yml @@ -16,3 +16,4 @@ - TheHive - Gax - Rad + - Europa diff --git a/Resources/Prototypes/Maps/europa.yml b/Resources/Prototypes/Maps/europa.yml new file mode 100644 index 00000000000..e2b7b301e8e --- /dev/null +++ b/Resources/Prototypes/Maps/europa.yml @@ -0,0 +1,64 @@ +- type: gameMap + id: Europa + mapName: 'Europa' + mapPath: /Maps/europa.yml + minPlayers: 0 + maxPlayers: 30 + stations: + Europa: + stationProto: StandardNanotrasenStation + components: + - type: StationNameSetup + mapNameTemplate: '{0} Europa Outpost {1}' + nameGenerator: + !type:NanotrasenNameGenerator + prefixCreator: 'B' + - type: StationJobs + overflowJobs: + - Passenger + availableJobs: + #service + Captain: [ 1, 1 ] + HeadOfPersonnel: [ 1, 1 ] + Bartender: [ 1, 1 ] + Botanist: [ 2, 2 ] + Boxer: [ 2, 2 ] + Chef: [ 1 , 1 ] + Clown: [ 1, 1 ] + Lawyer: [ 1, 1 ] + Musician: [ 1, 1 ] + Janitor: [ 1, 2 ] + Mime: [ 1, 1 ] + #engineering + ChiefEngineer: [ 1, 1 ] + AtmosphericTechnician: [ 1, 2 ] + StationEngineer: [ 2, 2 ] + TechnicalAssistant: [ 2, 2 ] + #medical + ChiefMedicalOfficer: [ 1, 1 ] + Chemist: [ 1, 1 ] + MedicalDoctor: [ 2, 3 ] + MedicalIntern: [ 2, 2 ] + Paramedic: [ 1, 1 ] + Psychologist: [ 1, 1 ] + #science + ResearchDirector: [ 1, 1 ] + Chaplain: [ 1, 1 ] + ForensicMantis: [ 1, 1 ] + Scientist: [ 2, 3 ] + ResearchAssistant: [ 2, 2 ] + Borg: [ 1, 1 ] + #security + HeadOfSecurity: [ 1, 1 ] + Warden: [ 1, 1 ] + Detective: [ 1, 1 ] + SecurityOfficer: [ 2, 2 ] + SecurityCadet: [ 1, 1 ] + Prisoner: [ 1, 2 ] + #supply + Quartermaster: [ 1, 1 ] + MailCarrier: [ 1, 2 ] + SalvageSpecialist: [ 2, 2 ] + CargoTechnician: [ 2, 3 ] + #civilian + Passenger: [ -1, -1 ] \ No newline at end of file diff --git a/Resources/Prototypes/Maps/saltern.yml b/Resources/Prototypes/Maps/saltern.yml index 154a35a16dc..9b26bbc3c17 100644 --- a/Resources/Prototypes/Maps/saltern.yml +++ b/Resources/Prototypes/Maps/saltern.yml @@ -53,8 +53,6 @@ Detective: [ 1, 1 ] SecurityOfficer: [ 4, 6 ] SecurityCadet: [ 4, 6 ] - Brigmedic: [ 1, 1 ] - Prisoner: [ 1, 2 ] #supply Quartermaster: [ 1, 1 ] SalvageSpecialist: [ 1, 3 ] diff --git a/Resources/Prototypes/Mood/categories.yml b/Resources/Prototypes/Mood/categories.yml index 8c03338ca8b..88a4652788b 100644 --- a/Resources/Prototypes/Mood/categories.yml +++ b/Resources/Prototypes/Mood/categories.yml @@ -2,8 +2,17 @@ - type: moodCategory id: Health +- type: moodCategory + id: Heirloom + - type: moodCategory id: Hunger - type: moodCategory - id: Thirst \ No newline at end of file + id: LotophagoiAddiction + +- type: moodCategory + id: NicotineAddiction + +- type: moodCategory + id: Thirst diff --git a/Resources/Prototypes/Mood/drugs.yml b/Resources/Prototypes/Mood/drugs.yml index 379dd960061..e7f718d6744 100644 --- a/Resources/Prototypes/Mood/drugs.yml +++ b/Resources/Prototypes/Mood/drugs.yml @@ -14,9 +14,6 @@ timeout: 600 #10 minutes category: "LotophagoiAddiction" -- type: moodCategory - id: LotophagoiAddiction - # Nicotine - type: moodEffect id: NicotineBenefit @@ -30,9 +27,6 @@ moodChange: -7 #No timeout category: "NicotineAddiction" -- type: moodCategory - id: NicotineAddiction - # Non-Addictive Drugs - type: moodEffect id: EthanolBenefit diff --git a/Resources/Prototypes/Mood/genericNeeds.yml b/Resources/Prototypes/Mood/genericNeeds.yml index e0b8c25c082..aeb43bcd3fd 100644 --- a/Resources/Prototypes/Mood/genericNeeds.yml +++ b/Resources/Prototypes/Mood/genericNeeds.yml @@ -60,4 +60,4 @@ - type: moodEffect id: HealthHeavyDamage moodChange: -20 - category: "Health" + category: "Health" \ No newline at end of file diff --git a/Resources/Prototypes/Mood/genericNegativeEffects.yml b/Resources/Prototypes/Mood/genericNegativeEffects.yml index 0e1014d9074..b83a5c2fc22 100644 --- a/Resources/Prototypes/Mood/genericNegativeEffects.yml +++ b/Resources/Prototypes/Mood/genericNegativeEffects.yml @@ -43,3 +43,14 @@ - type: moodEffect id: Dead moodChange: -1000 + +# Surgery +- type: moodEffect + id: SurgeryPain + moodChange: -30 # lol too lazy to make a category of ramping surgery moods, wonder how bad this will be. + timeout: 360 + +- type: moodEffect + id: HeirloomLost + moodChange: -15 + category: Heirloom diff --git a/Resources/Prototypes/Mood/genericPositiveEffects.yml b/Resources/Prototypes/Mood/genericPositiveEffects.yml index a4d5ae6ce05..3af8ec052a6 100644 --- a/Resources/Prototypes/Mood/genericPositiveEffects.yml +++ b/Resources/Prototypes/Mood/genericPositiveEffects.yml @@ -45,3 +45,10 @@ - type: moodEffect id: TraitSanguine moodChange: 15 + +- type: moodEffect + id: HeirloomSecure + category: Heirloom + moodChange: 5 + timeout: 60 # A bit of time before they realize it's gone + moodletOnEnd: HeirloomLost diff --git a/Resources/Prototypes/Nyanotrasen/Actions/types.yml b/Resources/Prototypes/Nyanotrasen/Actions/types.yml index cab8f4a1f4e..9bdb13397a6 100644 --- a/Resources/Prototypes/Nyanotrasen/Actions/types.yml +++ b/Resources/Prototypes/Nyanotrasen/Actions/types.yml @@ -2,7 +2,7 @@ id: ActionEatMouse name: action-name-eat-mouse description: action-description-eat-mouse - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction icon: Nyanotrasen/Icons/verbiconfangs.png @@ -12,7 +12,7 @@ id: ActionHairball name: action-name-hairball description: action-description-hairball - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction charges: 1 diff --git a/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Backpacks/StarterGear/backpack.yml b/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Backpacks/StarterGear/backpack.yml index 810f9ec03b6..c4843240ebb 100644 --- a/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Backpacks/StarterGear/backpack.yml +++ b/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Backpacks/StarterGear/backpack.yml @@ -1,5 +1,5 @@ - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackScience id: ClothingBackpackMantisFilled components: diff --git a/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Backpacks/StarterGear/duffelbag.yml b/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Backpacks/StarterGear/duffelbag.yml index 88e33cdd252..6f4e2fea626 100644 --- a/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Backpacks/StarterGear/duffelbag.yml +++ b/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Backpacks/StarterGear/duffelbag.yml @@ -1,5 +1,5 @@ - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackDuffelScience id: ClothingBackpackDuffelMantisFilled components: diff --git a/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Backpacks/StarterGear/satchel.yml b/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Backpacks/StarterGear/satchel.yml index e90759ac8fb..50106b11823 100644 --- a/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Backpacks/StarterGear/satchel.yml +++ b/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Backpacks/StarterGear/satchel.yml @@ -1,5 +1,5 @@ - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: ClothingBackpackSatchelScience id: ClothingBackpackSatchelMantisFilled components: diff --git a/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Books/lore.yml b/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Books/lore.yml index 6c3eb06108f..2a8173dbec2 100644 --- a/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Books/lore.yml +++ b/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Books/lore.yml @@ -2,7 +2,7 @@ name: epistemics book parent: BookRandom # placeholder id: BookSalvageEpistemics - noSpawn: true + categories: [ HideSpawnMenu ] description: 'A metallic hardcover book.' - type: entity diff --git a/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Paper/salvage_lore.yml b/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Paper/salvage_lore.yml index f37c3bbdb3e..dbccfd4484b 100644 --- a/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Paper/salvage_lore.yml +++ b/Resources/Prototypes/Nyanotrasen/Catalog/Fills/Paper/salvage_lore.yml @@ -18,7 +18,7 @@ - type: entity id: PaperWrittenSalvageLoreGaming1 - noSpawn: true # keep this from spamming spawn sheet + categories: [ HideSpawnMenu ] # keep this from spamming spawn sheet suffix: "Salvage: Lore: Gaming 1" parent: Paper components: @@ -31,7 +31,7 @@ - Alexander - type: entity id: PaperWrittenSalvageLoreGaming2 - noSpawn: true # keep this from spamming spawn sheet + categories: [ HideSpawnMenu ] # keep this from spamming spawn sheet suffix: "Salvage: Lore: Gaming 2" parent: Paper components: @@ -51,7 +51,7 @@ What even are you trying to do here, Leah? - Your Friendly DM - type: entity id: PaperWrittenSalvageLoreGaming3 - noSpawn: true # keep this from spamming spawn sheet + categories: [ HideSpawnMenu ] # keep this from spamming spawn sheet suffix: "Salvage: Lore: Gaming 3" parent: Paper components: @@ -65,7 +65,7 @@ Oh dear goodness they just started randomly killing everybody - type: entity id: PaperWrittenSalvageLoreGaming4 - noSpawn: true # keep this from spamming spawn sheet + categories: [ HideSpawnMenu ] # keep this from spamming spawn sheet suffix: "Salvage: Lore: Gaming 4" parent: Paper components: diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Body/Parts/spider.yml b/Resources/Prototypes/Nyanotrasen/Entities/Body/Parts/spider.yml index 7e71227dbcb..fbd45804dd2 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Body/Parts/spider.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Body/Parts/spider.yml @@ -5,7 +5,7 @@ abstract: true components: - type: Damageable - damageContainer: Biological + damageContainer: OrganicPart - type: BodyPart - type: ContainerContainer containers: diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Body/Prototypes/arachne.yml b/Resources/Prototypes/Nyanotrasen/Entities/Body/Prototypes/arachne.yml index 553391484e2..d8eb35629bf 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Body/Prototypes/arachne.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Body/Prototypes/arachne.yml @@ -16,6 +16,7 @@ - left arm - right arm - thorax + - head organs: heart: OrganHumanHeart lungs: OrganHumanLungs diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Body/Prototypes/felinid.yml b/Resources/Prototypes/Nyanotrasen/Entities/Body/Prototypes/felinid.yml index a09f3b6ab7f..1f397ad04e2 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Body/Prototypes/felinid.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Body/Prototypes/felinid.yml @@ -17,6 +17,7 @@ - left arm - right leg - left leg + - head organs: heart: OrganAnimalHeart lungs: OrganHumanLungs diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Clothing/Head/hardsuit-helmets.yml b/Resources/Prototypes/Nyanotrasen/Entities/Clothing/Head/hardsuit-helmets.yml index 3896cd1ef1b..9625ec95d6b 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Clothing/Head/hardsuit-helmets.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Clothing/Head/hardsuit-helmets.yml @@ -1,7 +1,7 @@ - type: entity parent: ClothingHeadHelmetHardsuitRd id: ClothingHeadHelmetHardsuitMystagogue - noSpawn: true + categories: [ HideSpawnMenu ] name: mystagogue's hardsuit helmet description: Lightweight hardsuit helmet that has a galaxy-first psionic passthrough system. components: @@ -15,7 +15,7 @@ - type: entity parent: ClothingHeadHelmetHardsuitSyndie id: ClothingHeadHelmetHardsuitSyndieReverseEngineered - noSpawn: true + categories: [ HideSpawnMenu ] name: SA-122 combat hardsuit helmet description: An advanced hardsuit helmet designed for work in special operations. components: @@ -27,7 +27,7 @@ - type: entity parent: ClothingHeadHelmetHardsuitCybersun id: ClothingHeadHelmetHardsuitJuggernautReverseEngineered - noSpawn: true + categories: [ HideSpawnMenu ] name: SA-126 combat hardsuit helmet description: An assault hardsuit helmet featuring a top-secret translucent polymer. components: diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Effects/lightning.yml b/Resources/Prototypes/Nyanotrasen/Entities/Effects/lightning.yml index 35f5ee06e94..e6a3a575a23 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Effects/lightning.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Effects/lightning.yml @@ -2,7 +2,7 @@ parent: BaseLightning id: LightningNoospheric name: noospheric lightning - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Electrified enabled: false diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/devices.yml b/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/devices.yml index abd4d86a1ef..fde726ed039 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/devices.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/Random/devices.yml @@ -30,6 +30,7 @@ - MicrowaveMachineCircuitboard - SurveillanceWirelessCameraMovableCircuitboard - PowerComputerCircuitboard + - AlertsComputerCircuitboard - ComputerTelevisionCircuitboard - SolarControlComputerCircuitboard - AirAlarmElectronics diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/ghost_roles.yml b/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/ghost_roles.yml index a21976fa7a5..d0207e362e3 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/ghost_roles.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Markers/Spawners/ghost_roles.yml @@ -3,7 +3,7 @@ name: ghost role spawn point suffix: Ifrit parent: MarkerBase - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: GhostRoleMobSpawner prototype: MobIfritFamiliar @@ -22,7 +22,7 @@ id: SpawnPointGhostFugitive name: ghost role spawn point parent: MarkerBase - noSpawn: true + categories: [ HideSpawnMenu ] components: # - type: GhostRoleMobSpawner # prototype: MobHumanFugitive # Todo @@ -56,7 +56,7 @@ # name: ghost role spawn point # suffix: Vampire spider # parent: MarkerBase -# noSpawn: true +# categories: [ HideSpawnMenu ] # components: # - type: GhostRoleMobSpawner # prototype: MobGiantSpiderVampireAngry diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Player/special.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Player/special.yml index 70628ec4e51..d133377e01b 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Player/special.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Player/special.yml @@ -2,7 +2,7 @@ id: MobObserverTelegnostic name: telegnostic projection description: Ominous. Placeholder sprite. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: Sprite overrideContainerOcclusion: true # Ghosts always show up regardless of where they're contained. diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/Oni.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/Oni.yml index 8a5663dce45..8ac15fd865c 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/Oni.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/Oni.yml @@ -53,5 +53,5 @@ name: Urist McOni parent: MobHumanDummy id: MobOniDummy - noSpawn: true + categories: [ HideSpawnMenu ] description: A dummy oni meant to be used in character setup. diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/felinid.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/felinid.yml index 44779fe9508..3b1776d044a 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/felinid.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/felinid.yml @@ -90,7 +90,7 @@ name: Urist McHands parent: MobHumanDummy id: MobFelinidDummy - noSpawn: true + categories: [ HideSpawnMenu ] description: A dummy felinid meant to be used in character setup. components: - type: HumanoidAppearance diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Consumable/Food/ration.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Consumable/Food/ration.yml index 177d6151ccb..bd08bec9ddc 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Consumable/Food/ration.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Consumable/Food/ration.yml @@ -1,6 +1,6 @@ # PSB, Prepacked Sustenance Bar. With variety. - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: FoodPacketTrash id: FoodPSBTrash name: psb wrapper diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Fun/instruments.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Fun/instruments.yml index 67978f89fe0..764ff9ed667 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Fun/instruments.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Fun/instruments.yml @@ -43,11 +43,12 @@ soundHit: path: /Audio/Nyanotrasen/Weapons/electricguitarhit.ogg bluntStaminaDamageFactor: 4.5 - attackRate: 1.25 + attackRate: .8 range: 1.85 damage: types: Blunt: 7 + - type: DamageOtherOnHit - type: Wieldable - type: IncreaseDamageOnWield damage: diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/base_mail.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/base_mail.yml index bee514917a3..320129fa554 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/base_mail.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/base_mail.yml @@ -103,11 +103,15 @@ reagents: - ReagentId: Nothing Quantity: 1 + - type: LanguageSpeaker + - type: LanguageKnowledge + speaks: [TauCetiBasic] # So that them foreigners can't understand what the broken mail is saying + understands: [] # This empty parcel is allowed to exist and evade the tests for the admin # mailto command. - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMail id: MailAdminFun suffix: adminfun diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Medical/pills.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Medical/pills.yml index 962f5351948..1b0bf68fb09 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Medical/pills.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Medical/pills.yml @@ -25,3 +25,43 @@ reagents: - ReagentId: Cryptobiolin Quantity: 20 + +- type: entity + name: pill canister (Cryptobiolin 20u) + parent: PillCanister + id: PillCanisterCryptobiolin + suffix: Cryptobiolin, 5 + components: + - type: Label + currentLabel: Cryptobiolin 20u + - type: StorageFill + contents: + - id: PillCryptobiolin + amount: 5 + +- type: entity + name: chloral-hydrate + parent: Pill + id: PillChloralHydrate + description: A powerful sedative. + components: + - type: SolutionContainerManager + solutions: + food: + maxVol: 20 + reagents: + - ReagentId: ChloralHydrate + Quantity: 20 + +- type: entity + name: pill canister (Chloral-Hydrate 20u) + parent: PillCanister + id: PillCanisterChloralHydrate + suffix: ChloralHydrate, 5 + components: + - type: Label + currentLabel: ChloralHydrate 20u + - type: StorageFill + contents: + - id: PillChloralHydrate + amount: 5 diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Guns/Projectiles/shotgun.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Guns/Projectiles/shotgun.yml index 42826c94cba..47d65ce8f7c 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Guns/Projectiles/shotgun.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Guns/Projectiles/shotgun.yml @@ -1,7 +1,7 @@ - type: entity id: PelletShotgunSoulbreaker name: pellet (.50 soulbreaker) - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseBulletPractice components: - type: Sprite diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Melee/blunt.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Melee/blunt.yml index a9a5a829377..f7b3dacb773 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Melee/blunt.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Melee/blunt.yml @@ -10,7 +10,7 @@ - type: Item size: Normal - type: MeleeWeapon - attackRate: 0.75 + attackRate: 1.3333 range: 1.75 damage: types: @@ -21,6 +21,8 @@ # - type: MeleeStaminaCost # swing: 10 # wieldCoefficient: 0.35 #if wielded you will only consume 3.5 stam its a weapon after all + - type: DamageOtherOnHit + staminaCost: 10 - type: Wieldable - type: IncreaseDamageOnWield damage: @@ -42,7 +44,7 @@ sprite: Nyanotrasen/Objects/Weapons/Melee/shinai.rsi state: icon - type: MeleeWeapon - attackRate: 1.25 + attackRate: .8 range: 1.75 bluntStaminaDamageFactor: 2.0 damage: @@ -52,10 +54,10 @@ collection: WoodDestroy # - type: MeleeStaminaCost # swing: 5 + - type: DamageOtherOnHit - type: StaminaDamageOnHit damage: 10 - type: Item size: Normal sprite: Nyanotrasen/Objects/Weapons/Melee/shinai.rsi - type: DisarmMalus - diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Melee/breaching_hammer.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Melee/breaching_hammer.yml index d019cee1360..2c6bba1cbef 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Melee/breaching_hammer.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Melee/breaching_hammer.yml @@ -10,7 +10,7 @@ - type: Item size: Huge - type: MeleeWeapon - attackRate: 0.75 + attackRate: 1.3333 range: 1.70 damage: types: @@ -23,6 +23,8 @@ # - type: MeleeStaminaCost # swing: 10 # wieldCoefficient: 0.5 #if wielded you will only consume 5 + - type: DamageOtherOnHit + staminaCost: 12 - type: Wieldable - type: IncreaseDamageOnWield damage: @@ -46,5 +48,3 @@ quickEquip: false slots: - back - - diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Melee/dulled.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Melee/dulled.yml index 9cab55f2a71..4fd986190fe 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Melee/dulled.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Melee/dulled.yml @@ -16,6 +16,10 @@ types: Blunt: 5 Slash: 1 + - type: DamageOtherOnHit + staminaCost: 10 + - type: ThrowingAngle + angle: 225 - type: Item size: Normal sprite: Objects/Weapons/Melee/katana.rsi @@ -31,11 +35,15 @@ sprite: Objects/Weapons/Melee/claymore.rsi state: icon - type: MeleeWeapon - attackRate: 0.75 + attackRate: 1.3333 damage: types: Blunt: 6 Slash: 1 + - type: DamageOtherOnHit + staminaCost: 18 + - type: ThrowingAngle + angle: 225 - type: Item size: Normal - type: Clothing diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Melee/knives.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Melee/knives.yml index 4ac4dacdc5c..b2ee1bcfdce 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Melee/knives.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Melee/knives.yml @@ -5,7 +5,7 @@ description: A special knife designed for killing psychics. components: - type: MeleeWeapon - attackRate: 1.5 + attackRate: .6666 damage: types: Slash: 10 diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Melee/sword.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Melee/sword.yml index f2604f044fd..8335bf53f51 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Melee/sword.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Weapons/Melee/sword.yml @@ -15,12 +15,16 @@ sprite: Nyanotrasen/Objects/Weapons/Melee/wakizashi.rsi state: icon - type: MeleeWeapon - attackRate: 2 + attackRate: .5 damage: types: Slash: 12 soundHit: path: /Audio/Weapons/bladeslice.ogg + - type: DamageOtherOnHit + staminaCost: 5 + - type: EmbeddableProjectile + - type: EmbedPassiveDamage - type: Item size: Normal sprite: Nyanotrasen/Objects/Weapons/Melee/wakizashi.rsi diff --git a/Resources/Prototypes/Nyanotrasen/GameRules/events.yml b/Resources/Prototypes/Nyanotrasen/GameRules/events.yml index de9ea15a699..8612fb0fec7 100644 --- a/Resources/Prototypes/Nyanotrasen/GameRules/events.yml +++ b/Resources/Prototypes/Nyanotrasen/GameRules/events.yml @@ -2,7 +2,7 @@ - type: entity id: NoosphericStorm parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent startAnnouncement: true @@ -25,7 +25,7 @@ - type: MidRoundAntagRule - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMidRoundAntag id: RatKingSpawn components: @@ -33,7 +33,7 @@ spawner: SpawnPointGhostRatKing - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseMidRoundAntag id: ParadoxAnomalySpawn components: @@ -44,7 +44,7 @@ - type: entity id: BaseGlimmerEvent parent: BaseGameRule - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent # Favor glimmer events just a little more than regular events. @@ -56,7 +56,7 @@ - type: entity id: MundaneDischarge parent: BaseGlimmerEvent - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent reoccurrenceDelay: 15 @@ -69,7 +69,7 @@ - type: entity id: NoosphericZap parent: BaseGlimmerEvent - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent weight: 25 # Guaranteed to happen every once in a while, but with intervals between incidents @@ -81,7 +81,7 @@ - type: entity id: NoosphericFry parent: BaseGlimmerEvent - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: GlimmerEvent minimumGlimmer: 550 @@ -91,7 +91,7 @@ - type: entity id: PsionicCatGotYourTongue parent: BaseGlimmerEvent - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: GlimmerEvent minimumGlimmer: 400 @@ -103,7 +103,7 @@ - type: entity id: MassMindSwap parent: BaseGlimmerEvent - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: GlimmerEvent minimumGlimmer: 900 @@ -116,7 +116,7 @@ abstract: true parent: BaseGlimmerEvent id: BaseGlimmerSignaturesEvent - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: GlimmerEvent minimumGlimmer: 300 @@ -126,7 +126,7 @@ - type: entity id: GlimmerWispSpawn parent: BaseGlimmerSignaturesEvent - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: GlimmerMobRule mobPrototype: MobGlimmerWisp @@ -134,7 +134,7 @@ - type: entity parent: BaseGlimmerSignaturesEvent id: FreeProber - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: FreeProberRule @@ -142,7 +142,7 @@ - type: entity parent: BaseGlimmerSignaturesEvent id: GlimmerRandomSentience - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: StationEvent weight: 7 @@ -158,7 +158,7 @@ - type: entity parent: BaseGlimmerSignaturesEvent id: GlimmerRevenantSpawn - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: GlimmerEvent minimumGlimmer: 450 @@ -170,7 +170,7 @@ - type: entity parent: BaseGlimmerSignaturesEvent id: GlimmerMiteSpawn - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: GlimmerEvent minimumGlimmer: 250 diff --git a/Resources/Prototypes/Nyanotrasen/Objectives/traitor.yml b/Resources/Prototypes/Nyanotrasen/Objectives/traitor.yml index e6e497003d5..f9304c4c3b8 100644 --- a/Resources/Prototypes/Nyanotrasen/Objectives/traitor.yml +++ b/Resources/Prototypes/Nyanotrasen/Objectives/traitor.yml @@ -1,5 +1,5 @@ - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseTraitorStealObjective id: MantisKnifeStealObjective components: @@ -14,7 +14,7 @@ # parent: BaseTraitorObjective # name: objective-condition-become-golem-title # description: objective-condition-become-golem-description. -# noSpawn: true +# categories: [ HideSpawnMenu ] # components: # - type: NotJobRequirement # job: Chaplain @@ -33,7 +33,7 @@ - type: entity id: RaiseGlimmerObjective parent: BaseTraitorObjective - noSpawn: true + categories: [ HideSpawnMenu ] name: Raise Glimmer. description: Get the glimmer above the specified amount. components: diff --git a/Resources/Prototypes/Nyanotrasen/Reagents/Consumable/Drink/drinks.yml b/Resources/Prototypes/Nyanotrasen/Reagents/Consumable/Drink/drinks.yml index 24d83be9431..8ba31c15d1b 100644 --- a/Resources/Prototypes/Nyanotrasen/Reagents/Consumable/Drink/drinks.yml +++ b/Resources/Prototypes/Nyanotrasen/Reagents/Consumable/Drink/drinks.yml @@ -67,42 +67,3 @@ - !type:AdjustReagent reagent: Nutriment amount: 0.1 - -- type: reagent - id: HolyWater - name: reagent-name-holywater - parent: BaseDrink - desc: reagent-name-holywater - physicalDesc: reagent-physical-desc-translucent - flavor: holy - color: "#75b1f0" - boilingPoint: 100.0 - meltingPoint: 0.0 - reactiveEffects: - Acidic: - methods: [ Touch ] - effects: - - !type:HealthChange - scaleByQuantity: true - ignoreResistances: false - damage: - types: - Holy: 0.5 - metabolisms: #Could nullify debuffs of feeding. - Drink: - effects: - - !type:SatiateThirst - factor: 3 - Medicine: - effects: - - !type:ModifyBloodLevel - amount: 0.1 - - !type:HealthChange - damage: - groups: - Burn: -0.5 - types: - Holy: 1 - plantMetabolism: #Heals plants a little with the holy power within it. - - !type:PlantAdjustHealth - amount: 0.1 diff --git a/Resources/Prototypes/Nyanotrasen/Recipes/Reactions/drink.yml b/Resources/Prototypes/Nyanotrasen/Recipes/Reactions/drink.yml index 5645b17a67e..66192e9ace8 100644 --- a/Resources/Prototypes/Nyanotrasen/Recipes/Reactions/drink.yml +++ b/Resources/Prototypes/Nyanotrasen/Recipes/Reactions/drink.yml @@ -143,15 +143,3 @@ amount: 1 products: GrapeSoda: 3 - -- type: reaction - id: HolyWater - reactants: - Water: - amount: 1 - Wine: - amount: 1 - Mercury: - amount: 1 - products: - HolyWater: 3 diff --git a/Resources/Prototypes/Nyanotrasen/Recipes/Reactions/single_reagent.yml b/Resources/Prototypes/Nyanotrasen/Recipes/Reactions/single_reagent.yml index 189ce2bb8d3..6cb548a51ac 100644 --- a/Resources/Prototypes/Nyanotrasen/Recipes/Reactions/single_reagent.yml +++ b/Resources/Prototypes/Nyanotrasen/Recipes/Reactions/single_reagent.yml @@ -1,5 +1,6 @@ - type: reaction id: BlessHolyWater + sound: /Audio/Effects/holy.ogg impact: Low requiredMixerCategories: - Holy diff --git a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/prisoner.yml b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/prisoner.yml index 0ca17947425..638aaecd2cf 100644 --- a/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/prisoner.yml +++ b/Resources/Prototypes/Nyanotrasen/Roles/Jobs/Wildcards/prisoner.yml @@ -22,6 +22,10 @@ - !type:CharacterTraitRequirement traits: - ShadowkinBlackeye + special: + - !type:AddComponentSpecial + components: + - type: Pacified - type: startingGear id: PrisonerGear diff --git a/Resources/Prototypes/Nyanotrasen/Species/Oni.yml b/Resources/Prototypes/Nyanotrasen/Species/Oni.yml index 4a306a7ce7f..79d7e2b86f8 100644 --- a/Resources/Prototypes/Nyanotrasen/Species/Oni.yml +++ b/Resources/Prototypes/Nyanotrasen/Species/Oni.yml @@ -32,8 +32,8 @@ required: true defaultMarkings: [ OniHornDoubleCurved ] HeadSide: - points: 1 - required: false + points: 3 + required: true defaultMarkings: [ PointyEarsUpwards ] Snout: points: 2 @@ -57,11 +57,11 @@ points: 2 required: false RightHand: - points: 2 + points: 3 required: false LeftArm: points: 2 required: false LeftHand: - points: 2 + points: 3 required: false diff --git a/Resources/Prototypes/Nyanotrasen/Species/felinid.yml b/Resources/Prototypes/Nyanotrasen/Species/felinid.yml index a0f8d2ad65c..ad92ea8046f 100644 --- a/Resources/Prototypes/Nyanotrasen/Species/felinid.yml +++ b/Resources/Prototypes/Nyanotrasen/Species/felinid.yml @@ -50,11 +50,11 @@ points: 2 required: false RightHand: - points: 2 + points: 3 required: false LeftArm: points: 2 required: false LeftHand: - points: 2 + points: 3 required: false diff --git a/Resources/Prototypes/Objectives/dragon.yml b/Resources/Prototypes/Objectives/dragon.yml index 2cf7eb292f7..70cb4643de8 100644 --- a/Resources/Prototypes/Objectives/dragon.yml +++ b/Resources/Prototypes/Objectives/dragon.yml @@ -13,7 +13,7 @@ - DragonRole - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseDragonObjective id: CarpRiftsObjective components: @@ -30,7 +30,7 @@ - type: CarpRiftsCondition - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: [BaseDragonObjective, BaseSurviveObjective] id: DragonSurviveObjective name: Survive diff --git a/Resources/Prototypes/Objectives/ninja.yml b/Resources/Prototypes/Objectives/ninja.yml index fb94f2b3788..864bff25c6f 100644 --- a/Resources/Prototypes/Objectives/ninja.yml +++ b/Resources/Prototypes/Objectives/ninja.yml @@ -13,7 +13,7 @@ - NinjaRole - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseNinjaObjective id: DoorjackObjective components: @@ -29,7 +29,7 @@ - type: DoorjackCondition - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseNinjaObjective id: StealResearchObjective description: Your gloves can be used to hack a research server and steal its precious data. If epistemics has been slacking you'll have to get to work. # DeltaV - Epistemics Department replacing Science @@ -45,7 +45,7 @@ - type: StealResearchCondition - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: [BaseNinjaObjective, BaseCodeObjective] id: SpiderChargeObjective description: This bomb can be detonated in a specific location. Note that the bomb will not work anywhere else! @@ -56,7 +56,7 @@ state: icon - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: [BaseNinjaObjective, BaseSurviveObjective] id: NinjaSurviveObjective name: Survive @@ -68,7 +68,7 @@ state: icon - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: [BaseNinjaObjective, BaseCodeObjective] id: TerrorObjective name: Call in a threat @@ -80,7 +80,7 @@ state: red_phone - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: [BaseNinjaObjective, BaseCodeObjective] id: MassArrestObjective name: Set everyone to wanted diff --git a/Resources/Prototypes/Objectives/objectiveGroups.yml b/Resources/Prototypes/Objectives/objectiveGroups.yml index 6929d1e1a47..fb4ce6f4a16 100644 --- a/Resources/Prototypes/Objectives/objectiveGroups.yml +++ b/Resources/Prototypes/Objectives/objectiveGroups.yml @@ -16,7 +16,7 @@ RDHardsuitStealObjective: 1 NukeDiskStealObjective: 1 MagbootsStealObjective: 1 - # CorgiMeatStealObjective: 1 # DeltaV - Disable the horrible murder of Ian as an objective + CorgiMeatStealObjective: 1 MantisKnifeStealObjective: 1 # Nyanotrasen - ForensicMantis steal objective, see Resources/Prototypes/Nyanotrasen/Objectives/traitor.yml ClipboardStealObjective: 1 CaptainGunStealObjective: 0.5 @@ -38,8 +38,8 @@ id: TraitorObjectiveGroupState weights: EscapeShuttleObjective: 1 - # DieObjective: 0.05 # DeltaV - Disable the lrp objective aka murderbone justification - #HijackShuttleObjective: 0.02 + DieObjective: 0.05 + HijackShuttleObjective: 0.02 - type: weightedRandom id: TraitorObjectiveGroupSocial @@ -48,7 +48,6 @@ RandomTraitorProgressObjective: 1 RaiseGlimmerObjective: 0.5 # Nyanotrasen - Raise glimmer to a target amount, see Resources/Prototypes/Nyanotrasen/Objectives/traitor.yml - #Thief groups - type: weightedRandom id: ThiefObjectiveGroups @@ -67,37 +66,35 @@ weights: ThiefObjectiveGroupEscape: 1 - - - type: weightedRandom id: ThiefObjectiveGroupCollection weights: - HeadCloakStealCollectionObjective: 1 #command + HeadCloakStealCollectionObjective: 1 #command HeadBedsheetStealCollectionObjective: 1 StampStealCollectionObjective: 1 DoorRemoteStealCollectionObjective: 1 - TechnologyDiskStealCollectionObjective: 1 #rnd - FigurineStealCollectionObjective: 0.3 #service + TechnologyDiskStealCollectionObjective: 1 #rnd + FigurineStealCollectionObjective: 0.3 #service IDCardsStealCollectionObjective: 1 LAMPStealCollectionObjective: 2 #only for moth - type: weightedRandom id: ThiefObjectiveGroupItem weights: - ForensicScannerStealObjective: 1 #sec + ForensicScannerStealObjective: 1 #sec FlippoEngravedLighterStealObjective: 0.5 ClothingHeadHatWardenStealObjective: 1 - ClothingOuterHardsuitVoidParamedStealObjective: 1 #med + ClothingOuterHardsuitVoidParamedStealObjective: 1 #med MedicalTechFabCircuitboardStealObjective: 1 ClothingHeadsetAltMedicalStealObjective: 1 - FireAxeStealObjective: 1 #eng + FireAxeStealObjective: 1 #eng AmePartFlatpackStealObjective: 1 - ExpeditionsCircuitboardStealObjective: 1 #sup + ExpeditionsCircuitboardStealObjective: 1 #sup CargoShuttleCircuitboardStealObjective: 1 SalvageShuttleCircuitboardStealObjective: 1 - ClothingEyesHudBeerStealObjective: 1 #srv + ClothingEyesHudBeerStealObjective: 1 #srv BibleStealObjective: 1 - ClothingNeckGoldmedalStealObjective: 1 #other + ClothingNeckGoldmedalStealObjective: 1 #other ClothingNeckClownmedalStealObjective: 0.5 - type: weightedRandom diff --git a/Resources/Prototypes/Objectives/stealTargetGroups.yml b/Resources/Prototypes/Objectives/stealTargetGroups.yml index 9c56881bd81..03d0e84c717 100644 --- a/Resources/Prototypes/Objectives/stealTargetGroups.yml +++ b/Resources/Prototypes/Objectives/stealTargetGroups.yml @@ -78,8 +78,8 @@ state: icon - type: stealTargetGroup - id: WeaponAntiqueLaser - name: antique laser pistol + id: WeaponCaptain + name: captain's weapon sprite: sprite: Objects/Weapons/Guns/Battery/antiquelasergun.rsi state: base diff --git a/Resources/Prototypes/Objectives/thief.yml b/Resources/Prototypes/Objectives/thief.yml index 18154850973..e556171a1fa 100644 --- a/Resources/Prototypes/Objectives/thief.yml +++ b/Resources/Prototypes/Objectives/thief.yml @@ -55,7 +55,7 @@ # Collections - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealCollectionObjective id: FigurineStealCollectionObjective components: @@ -67,7 +67,7 @@ difficulty: 0.25 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealCollectionObjective id: HeadCloakStealCollectionObjective components: @@ -79,7 +79,7 @@ difficulty: 1.5 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealCollectionObjective id: HeadBedsheetStealCollectionObjective components: @@ -91,7 +91,7 @@ difficulty: 1.0 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealCollectionObjective id: StampStealCollectionObjective components: @@ -103,7 +103,7 @@ difficulty: 1.0 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealCollectionObjective id: DoorRemoteStealCollectionObjective components: @@ -115,7 +115,7 @@ difficulty: 1.5 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealCollectionObjective id: TechnologyDiskStealCollectionObjective components: @@ -130,7 +130,7 @@ difficulty: 0.8 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealCollectionObjective id: IDCardsStealCollectionObjective components: @@ -145,7 +145,7 @@ - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealCollectionObjective id: LAMPStealCollectionObjective components: @@ -163,7 +163,7 @@ # steal item - type: entity #Security subgroup - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealObjective id: ForensicScannerStealObjective components: @@ -175,7 +175,7 @@ difficulty: 1 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealObjective id: FlippoEngravedLighterStealObjective components: @@ -187,7 +187,7 @@ difficulty: 0.8 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealObjective id: ClothingHeadHatWardenStealObjective components: @@ -197,7 +197,7 @@ difficulty: 1.2 - type: entity #Medical subgroup - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealObjective id: ClothingOuterHardsuitVoidParamedStealObjective components: @@ -209,7 +209,7 @@ difficulty: 1 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealObjective id: MedicalTechFabCircuitboardStealObjective components: @@ -221,7 +221,7 @@ difficulty: 1 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealObjective id: ClothingHeadsetAltMedicalStealObjective components: @@ -233,7 +233,7 @@ difficulty: 1 - type: entity #Engineering subgroup - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealObjective id: FireAxeStealObjective components: @@ -245,7 +245,7 @@ difficulty: 0.8 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealObjective id: AmePartFlatpackStealObjective components: @@ -257,7 +257,7 @@ difficulty: 1 - type: entity #Cargo subgroup - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealObjective id: ExpeditionsCircuitboardStealObjective components: @@ -269,7 +269,7 @@ difficulty: 0.7 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealObjective id: CargoShuttleCircuitboardStealObjective components: @@ -281,7 +281,7 @@ difficulty: 0.7 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealObjective id: SalvageShuttleCircuitboardStealObjective components: @@ -293,7 +293,7 @@ difficulty: 0.7 - type: entity #Service subgroup - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealObjective id: ClothingEyesHudBeerStealObjective components: @@ -305,7 +305,7 @@ difficulty: 0.3 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealObjective id: BibleStealObjective components: @@ -317,7 +317,7 @@ difficulty: 0.4 - type: entity #Other subgroup - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealObjective id: ClothingNeckGoldmedalStealObjective components: @@ -329,7 +329,7 @@ difficulty: 1 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealObjective id: ClothingNeckClownmedalStealObjective components: @@ -343,7 +343,7 @@ # Structures - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealStructureObjective id: NuclearBombStealObjective components: @@ -355,7 +355,7 @@ difficulty: 2.5 #Good luck - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealStructureObjective id: FaxMachineCaptainStealObjective components: @@ -367,7 +367,7 @@ difficulty: 2 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealStructureObjective id: ChemDispenserStealObjective components: @@ -379,7 +379,7 @@ difficulty: 1 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealStructureObjective id: XenoArtifactStealObjective components: @@ -391,7 +391,7 @@ difficulty: 0.5 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealStructureObjective id: FreezerHeaterStealObjective components: @@ -403,7 +403,7 @@ difficulty: 0.5 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealStructureObjective id: TegStealObjective components: @@ -415,7 +415,7 @@ difficulty: 1 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealStructureObjective id: BoozeDispenserStealObjective components: @@ -427,7 +427,7 @@ difficulty: 0.5 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealStructureObjective id: AltarNanotrasenStealObjective components: @@ -439,7 +439,7 @@ difficulty: 0.5 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealStructureObjective id: PlantRDStealObjective components: @@ -453,7 +453,7 @@ # Animal - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealAnimalObjective id: IanStealObjective components: @@ -465,7 +465,7 @@ difficulty: 2.5 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealAnimalObjective id: BingusStealObjective components: @@ -475,7 +475,7 @@ difficulty: 1 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealAnimalObjective id: McGriffStealObjective components: @@ -487,7 +487,7 @@ difficulty: 1 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealAnimalObjective id: WalterStealObjective components: @@ -499,7 +499,7 @@ difficulty: 1 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealAnimalObjective id: MortyStealObjective components: @@ -509,7 +509,7 @@ difficulty: 0.5 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealAnimalObjective id: RenaultStealObjective components: @@ -521,7 +521,7 @@ difficulty: 2 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealAnimalObjective id: ShivaStealObjective components: @@ -533,7 +533,7 @@ difficulty: 2 - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: BaseThiefStealAnimalObjective id: TropicoStealObjective components: @@ -547,7 +547,7 @@ # Escape - type: entity - noSpawn: true + categories: [ HideSpawnMenu ] parent: [BaseThiefObjective, BaseLivingObjective] id: EscapeThiefShuttleObjective name: Escape to centcom alive and unrestrained. diff --git a/Resources/Prototypes/Objectives/traitor.yml b/Resources/Prototypes/Objectives/traitor.yml index b00d12529af..f9dfe5c3109 100644 --- a/Resources/Prototypes/Objectives/traitor.yml +++ b/Resources/Prototypes/Objectives/traitor.yml @@ -34,7 +34,7 @@ limit: 2 # there is usually only 1 of each steal objective, have 2 max for drama - type: entity # Head of Security steal objective. - noSpawn: true + categories: [HideSpawnMenu] parent: BaseTraitorStealObjective id: HoSAntiqueWeaponStealObjective components: @@ -50,7 +50,7 @@ # state - type: entity - noSpawn: true + categories: [HideSpawnMenu] parent: [BaseTraitorObjective, BaseLivingObjective] id: EscapeShuttleObjective name: Escape to centcom alive and unrestrained. @@ -63,43 +63,43 @@ state: shuttle - type: EscapeShuttleCondition -##- type: entity # DeltaV -# noSpawn: true -# parent: BaseTraitorObjective -# id: DieObjective -# name: Die a glorious death -# description: Die. -# components: -# - type: Objective -# difficulty: 0.5 -# icon: -# sprite: Mobs/Ghosts/ghost_human.rsi -# state: icon -# - type: ObjectiveBlacklistRequirement -# blacklist: -# components: -# - EscapeShuttleCondition -# - StealCondition -# - type: DieCondition +- type: entity + categories: [HideSpawnMenu] + parent: BaseTraitorObjective + id: DieObjective + name: Die a glorious death + description: Die. + components: + - type: Objective + difficulty: 0.5 + icon: + sprite: Mobs/Ghosts/ghost_human.rsi + state: icon + - type: ObjectiveBlacklistRequirement + blacklist: + components: + - EscapeShuttleCondition + - StealCondition + - type: DieCondition -#- type: entity -# noSpawn: true -# parent: [BaseTraitorObjective, BaseLivingObjective] -# id: HijackShuttleObjective -# name: Hijack emergency shuttle -# description: Leave on the shuttle free and clear of the loyal Nanotrasen crew on board. Use ANY methods available to you. Syndicate agents, Nanotrasen enemies, and handcuffed hostages may remain alive on the shuttle. Ignore assistance from anyone other than a support agent. -# components: -# - type: Objective -# difficulty: 5 # insane, default config max difficulty -# icon: -# sprite: Objects/Tools/emag.rsi -# state: icon -# - type: HijackShuttleCondition +- type: entity + categories: [HideSpawnMenu] + parent: [BaseTraitorObjective, BaseLivingObjective] + id: HijackShuttleObjective + name: Hijack emergency shuttle + description: Leave on the shuttle free and clear of the loyal Nanotrasen crew on board. Use ANY methods available to you. Syndicate agents, Nanotrasen enemies, and handcuffed hostages may remain alive on the shuttle. Ignore assistance from anyone other than a support agent. + components: + - type: Objective + difficulty: 5 # insane, default config max difficulty + icon: + sprite: Objects/Tools/emag.rsi + state: icon + - type: HijackShuttleCondition # kill - type: entity - noSpawn: true + categories: [HideSpawnMenu] parent: [BaseTraitorObjective, BaseKillObjective] id: KillRandomPersonObjective description: Do it however you like, just make sure they don't make it to centcom. @@ -112,7 +112,7 @@ - type: PickRandomPerson - type: entity - noSpawn: true + categories: [HideSpawnMenu] parent: [BaseTraitorObjective, BaseKillObjective] id: KillRandomHeadObjective description: We need this head gone and you probably know why. Good luck, agent. @@ -133,7 +133,7 @@ # social - type: entity - noSpawn: true + categories: [HideSpawnMenu] parent: [BaseTraitorSocialObjective, BaseKeepAliveObjective] id: RandomTraitorAliveObjective description: Identify yourself at your own risk. We just need them alive. @@ -145,7 +145,7 @@ - type: RandomTraitorAlive - type: entity - noSpawn: true + categories: [HideSpawnMenu] parent: [BaseTraitorSocialObjective, BaseHelpProgressObjective] id: RandomTraitorProgressObjective description: Identify yourself at your own risk. We just need them to succeed. @@ -171,20 +171,23 @@ owner: job-name-cmo - type: entity - noSpawn: true + categories: [HideSpawnMenu] parent: BaseCMOStealObjective id: CMOHyposprayStealObjective components: - type: StealCondition stealGroup: Hypospray + verifyMapExistence: true -- type: entity - noSpawn: true - parent: BaseCMOStealObjective - id: CMOCrewMonitorStealObjective - components: - - type: StealCondition - stealGroup: HandheldCrewMonitor +# This is going back in Loadouts. Not worth fucking over Paramedics. +#- type: entity +# categories: [ HideSpawnMenu ] +# parent: BaseCMOStealObjective +# id: CMOCrewMonitorStealObjective +# components: +# - type: StealCondition +# stealGroup: HandheldCrewMonitor +# verifyMapExistence: true ## rd @@ -199,28 +202,30 @@ owner: job-name-rd - type: entity - noSpawn: true + categories: [HideSpawnMenu] parent: BaseRDStealObjective id: RDHardsuitStealObjective components: - type: StealCondition stealGroup: ClothingOuterHardsuitRd + verifyMapExistence: true - type: Objective # This item must be worn or stored in a slowing duffelbag, very hard to hide. difficulty: 3 - type: entity - noSpawn: true + categories: [HideSpawnMenu] parent: BaseRDStealObjective id: HandTeleporterStealObjective components: - type: StealCondition stealGroup: HandTeleporter + verifyMapExistence: true ## hos - type: entity - noSpawn: true + categories: [HideSpawnMenu] parent: BaseTraitorStealObjective id: SecretDocumentsStealObjective components: @@ -231,12 +236,13 @@ job: HeadOfSecurity - type: StealCondition stealGroup: BookSecretDocuments + verifyMapExistence: true owner: job-name-hos ## ce - type: entity - noSpawn: true + categories: [HideSpawnMenu] parent: BaseTraitorStealObjective id: MagbootsStealObjective components: @@ -244,12 +250,13 @@ job: ChiefEngineer - type: StealCondition stealGroup: ClothingShoesBootsMagAdv + verifyMapExistence: true owner: job-name-ce ## qm - type: entity - noSpawn: true + categories: [HideSpawnMenu] parent: BaseTraitorStealObjective id: ClipboardStealObjective components: @@ -257,12 +264,13 @@ job: Quartermaster - type: StealCondition stealGroup: BoxFolderQmClipboard + verifyMapExistence: true owner: job-name-qm ## hop - type: entity - noSpawn: true + categories: [HideSpawnMenu] parent: BaseTraitorStealObjective id: CorgiMeatStealObjective components: @@ -288,32 +296,35 @@ job: Captain - type: entity - noSpawn: true + categories: [HideSpawnMenu] parent: BaseCaptainObjective id: CaptainIDStealObjective components: - type: StealCondition stealGroup: CaptainIDCard + verifyMapExistence: true - type: entity - noSpawn: true + categories: [HideSpawnMenu] parent: BaseCaptainObjective id: CaptainJetpackStealObjective components: - type: StealCondition stealGroup: JetpackCaptainFilled + verifyMapExistence: true - type: entity - noSpawn: true + categories: [HideSpawnMenu] parent: BaseCaptainObjective id: CaptainGunStealObjective components: - type: StealCondition - stealGroup: WeaponAntiqueLaser + stealGroup: WeaponCaptain owner: job-name-captain + verifyMapExistence: true - type: entity - noSpawn: true + categories: [HideSpawnMenu] parent: BaseCaptainObjective id: NukeDiskStealObjective components: @@ -325,10 +336,11 @@ - type: NotCommandRequirement - type: StealCondition stealGroup: NukeDisk + verifyMapExistence: true owner: objective-condition-steal-station - type: entity - noSpawn: true + categories: [HideSpawnMenu] parent: BaseTraitorStealObjective id: StealSupermatterSliverObjective components: diff --git a/Resources/Prototypes/Parallaxes/planet.yml b/Resources/Prototypes/Parallaxes/planet.yml index 20adc9957c8..df1d075f50b 100644 --- a/Resources/Prototypes/Parallaxes/planet.yml +++ b/Resources/Prototypes/Parallaxes/planet.yml @@ -23,6 +23,16 @@ scale: "1, 1" shader: "" +- type: parallax + id: Desert + layers: + - texture: + !type:ImageParallaxTextureSource + path: "/Textures/Tiles/Planet/Desert/desert1.png" + slowness: 0 + scale: "1, 1" + shader: "" + - type: parallax id: Grass layers: diff --git a/Resources/Prototypes/Reagents/gases.yml b/Resources/Prototypes/Reagents/gases.yml index 06fb2b269b6..298bcb923eb 100644 --- a/Resources/Prototypes/Reagents/gases.yml +++ b/Resources/Prototypes/Reagents/gases.yml @@ -243,23 +243,13 @@ - !type:ReagentThreshold reagent: NitrousOxide min: 0.2 + max: 0.5 - !type:OrganType type: Slime shouldHave: false emote: Laugh showInChat: true probability: 0.1 - - !type:Emote - conditions: - - !type:ReagentThreshold - reagent: NitrousOxide - min: 0.2 - - !type:OrganType - type: Slime - shouldHave: false - emote: Scream - showInChat: true - probability: 0.01 - !type:PopupMessage conditions: - !type:ReagentThreshold @@ -286,13 +276,13 @@ conditions: - !type:ReagentThreshold reagent: NitrousOxide - min: 1.8 + min: 1 - !type:OrganType type: Slime shouldHave: false key: ForcedSleep component: ForcedSleeping - time: 3 + time: 200 # This reeks, but I guess it works LMAO type: Add - !type:HealthChange conditions: diff --git a/Resources/Prototypes/Reagents/medicine.yml b/Resources/Prototypes/Reagents/medicine.yml index 6b441711e1b..0c261b1dbf6 100644 --- a/Resources/Prototypes/Reagents/medicine.yml +++ b/Resources/Prototypes/Reagents/medicine.yml @@ -43,7 +43,7 @@ - !type:HealthChange damage: types: - Poison: -1 + Poison: -1.5 # Was 1, Slight Buff as it should heal for half the amount as Dip or Stelli - !type:HealthChange conditions: - !type:ReagentThreshold @@ -153,7 +153,7 @@ - !type:HealthChange damage: groups: - Brute: -2 + Brute: -2.5 # Was 2, Buffed due to limb damage changes - !type:HealthChange conditions: - !type:ReagentThreshold @@ -172,7 +172,7 @@ - !type:ReagentThreshold min: 15 - !type:Drunk - + - type: reagent id: Cryoxadone name: reagent-name-cryoxadone @@ -181,6 +181,7 @@ physicalDesc: reagent-physical-desc-fizzy flavor: medicine color: "#0091ff" + worksOnTheDead: true plantMetabolism: - !type:PlantAdjustToxins amount: -5 @@ -198,10 +199,9 @@ damage: # todo scale with temp like SS13 groups: - Airloss: -6 - Brute: -4 - Burn: -6 - Toxin: -4 + Airloss: -10 + - !type:ModifyBloodLevel + amount: 5 - type: reagent id: Doxarubixadone @@ -211,6 +211,7 @@ physicalDesc: reagent-physical-desc-bubbling flavor: medicine color: "#32cd32" + worksOnTheDead: true metabolisms: Medicine: effects: @@ -220,7 +221,9 @@ max: 213.0 damage: types: - Cellular: -2 + Cellular: -4 + groups: + Brute: 1 - type: reagent id: Dermaline @@ -236,9 +239,9 @@ - !type:HealthChange damage: types: - Heat: -1.5 - Shock: -1.5 - Cold: -1.5 + Heat: -2 + Shock: -2 + Cold: -2 # Was 1.5, Buffed due to limb damage changes - !type:HealthChange conditions: - !type:ReagentThreshold @@ -336,8 +339,8 @@ Asphyxiation: -3 Poison: -0.5 groups: - Brute: -0.5 - Burn: -0.5 + Brute: -1 + Burn: -1 # Was .5, Buffed due to limb damage changes - !type:HealthChange conditions: - !type:ReagentThreshold @@ -455,9 +458,9 @@ - !type:HealthChange damage: types: - Heat: -0.33 - Shock: -0.33 - Cold: -0.33 + Heat: -0.5 + Shock: -0.5 + Cold: -0.5 # Was .33, Buffed due to limb damage changes - !type:SatiateThirst factor: -10 conditions: @@ -492,12 +495,12 @@ - !type:AdjustTemperature conditions: - !type:Temperature - max: 293.15 + max: 288.15 amount: 100000 # thermal energy, not temperature! - !type:AdjustTemperature conditions: - !type:Temperature - min: 293.15 + min: 298.15 amount: -10000 - !type:PopupMessage type: Local @@ -778,9 +781,9 @@ Brute: -1 types: Poison: -0.5 ##Should be about what it was when it healed the toxin group - Heat: -0.33 - Shock: -0.33 - Cold: -0.33 + Heat: -0.5 + Shock: -0.5 + Cold: -0.5 # Was .33, Buffed due to limb damage changes - type: reagent id: Lipozine @@ -812,10 +815,10 @@ - !type:HealthChange damage: groups: - Burn: -2 - Toxin: -2 - Airloss: -2 - Brute: -2 + Burn: -3 + Toxin: -3 + Airloss: -3 + Brute: -3 # Was 2, Buffed due to limb damage changes - type: reagent id: Ultravasculine @@ -989,7 +992,7 @@ - !type:HealthChange damage: types: - Slash: -3 + Slash: -4 # Was 3, Buffed due to limb damage changes - !type:HealthChange conditions: - !type:ReagentThreshold @@ -1036,7 +1039,7 @@ - !type:HealthChange damage: types: - Blunt: -3.5 + Blunt: -4 # Was 3, Buffed due to limb damage changes(GoobStation) - !type:HealthChange conditions: - !type:ReagentThreshold @@ -1195,6 +1198,7 @@ types: Heat: -3.0 Shock: -3.0 + Cold: -3.0 Caustic: -1.0 - type: reagent @@ -1260,3 +1264,47 @@ - "psicodine-effect-anxieties-wash-away" - "psicodine-effect-at-peace" probability: 0.2 + +- type: reagent + id: HolyWater + name: reagent-name-holywater + group: Medicine + desc: reagent-desc-holywater + physicalDesc: reagent-physical-desc-translucent + flavor: holy + color: "#75b1f0" + boilingPoint: 100.0 + meltingPoint: 0.0 + reactiveEffects: + Acidic: + methods: [ Touch ] + effects: + - !type:HealthChange + scaleByQuantity: true + ignoreResistances: false + damage: + types: + Holy: 0.5 + metabolisms: #Could nullify debuffs of feeding. + Drink: + effects: + - !type:SatiateThirst + factor: 3 + Medicine: + effects: + - !type:ModifyBloodLevel + amount: 0.1 + - !type:HealthChange + damage: + groups: + Brute: -0.5 + Burn: -0.5 + types: + Holy: 1 + - !type:PurifyEvil + conditions: + - !type:ReagentThreshold + min: 15 + plantMetabolism: #Heals plants a little with the holy power within it. + - !type:PlantAdjustHealth + amount: 0.1 diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/clothing/mime_hardsuit.yml b/Resources/Prototypes/Recipes/Construction/Graphs/clothing/mime_hardsuit.yml index 4d9c55fbc63..a72a5ccc8c8 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/clothing/mime_hardsuit.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/clothing/mime_hardsuit.yml @@ -1,43 +1,43 @@ -#- type: constructionGraph # DeltaV - Nuh uh -# id: MimeHardsuit -# start: start -# graph: -# - node: start -# edges: -# - to: mimeHardsuit -# steps: -# - material: Cloth -# amount: 5 -# doAfter: 1 -# - tag: SuitEVA -# name: An EVA suit -# icon: -# sprite: Clothing/OuterClothing/Suits/eva.rsi -# state: icon -# doAfter: 1 -# - tag: HelmetEVA -# name: An EVA helmet -# icon: -# sprite: Clothing/Head/Helmets/eva.rsi -# state: icon -# doAfter: 1 -# - tag: CrayonRed -# name: red crayon -# icon: -# sprite: Objects/Fun/crayons.rsi -# state: red -# doAfter: 1 -# - tag: CrayonBlack -# name: black crayon -# icon: -# sprite: Objects/Fun/crayons.rsi -# state: black -# doAfter: 1 -# - tag: MimeBelt -# name: suspenders -# icon: -# sprite: Clothing/Belt/suspenders.rsi -# state: icon -# doAfter: 1 -# - node: mimeHardsuit -# entity: ClothingOuterHardsuitMime +- type: constructionGraph + id: MimeHardsuit + start: start + graph: + - node: start + edges: + - to: mimeHardsuit + steps: + - material: Cloth + amount: 5 + doAfter: 1 + - tag: SuitEVA + name: An EVA suit + icon: + sprite: Clothing/OuterClothing/Suits/eva.rsi + state: icon + doAfter: 1 + - tag: HelmetEVA + name: An EVA helmet + icon: + sprite: Clothing/Head/Helmets/eva.rsi + state: icon + doAfter: 1 + - tag: CrayonRed + name: red crayon + icon: + sprite: Objects/Fun/crayons.rsi + state: red + doAfter: 1 + - tag: CrayonBlack + name: black crayon + icon: + sprite: Objects/Fun/crayons.rsi + state: black + doAfter: 1 + - tag: MimeBelt + name: suspenders + icon: + sprite: Clothing/Belt/suspenders.rsi + state: icon + doAfter: 1 + - node: mimeHardsuit + entity: ClothingOuterHardsuitMime diff --git a/Resources/Prototypes/Recipes/Construction/clothing.yml b/Resources/Prototypes/Recipes/Construction/clothing.yml index ba0c0d6c59b..3036463fb03 100644 --- a/Resources/Prototypes/Recipes/Construction/clothing.yml +++ b/Resources/Prototypes/Recipes/Construction/clothing.yml @@ -1,24 +1,24 @@ -# - type: construction # DeltaV - Prevent clowns from making the hardsuit -# name: clown hardsuit -# id: ClownHardsuit -# graph: ClownHardsuit -# startNode: start -# targetNode: clownHardsuit -# category: construction-category-clothing -# description: A modified hardsuit fit for a clown. -# icon: { sprite: Clothing/OuterClothing/Hardsuits/clown.rsi, state: icon } -# objectType: Item +- type: construction + name: clown vacsuit + id: ClownHardsuit + graph: ClownHardsuit + startNode: start + targetNode: clownHardsuit + category: construction-category-clothing + description: A modified vacsuit fit for a clown. + icon: { sprite: Clothing/OuterClothing/Hardsuits/clown.rsi, state: icon } + objectType: Item -#- type: construction # DeltaV - No mimes either -# name: mime hardsuit -# id: MimeHardsuit -# graph: MimeHardsuit -# startNode: start -# targetNode: mimeHardsuit -# category: construction-category-clothing -# description: A modified hardsuit fit for a mime. -# icon: { sprite: Clothing/OuterClothing/Hardsuits/mime.rsi, state: icon } -# objectType: Item +- type: construction + name: mime vacsuit + id: MimeHardsuit + graph: MimeHardsuit + startNode: start + targetNode: mimeHardsuit + category: construction-category-clothing + description: A modified vacsuit fit for a mime. + icon: { sprite: Clothing/OuterClothing/Hardsuits/mime.rsi, state: icon } + objectType: Item - type: construction name: bone armor diff --git a/Resources/Prototypes/Recipes/Lathes/electronics.yml b/Resources/Prototypes/Recipes/Lathes/electronics.yml index af258ad31b0..d0e6f370948 100644 --- a/Resources/Prototypes/Recipes/Lathes/electronics.yml +++ b/Resources/Prototypes/Recipes/Lathes/electronics.yml @@ -697,6 +697,15 @@ Steel: 100 Glass: 500 +- type: latheRecipe + id: AlertsComputerCircuitboard + result: AlertsComputerCircuitboard + category: Circuitry + completetime: 4 + materials: + Steel: 100 + Glass: 500 + - type: latheRecipe id: CloningConsoleComputerCircuitboard result: CloningConsoleComputerCircuitboard diff --git a/Resources/Prototypes/Recipes/Lathes/medical.yml b/Resources/Prototypes/Recipes/Lathes/medical.yml index 822945de103..3867fa7fd18 100644 --- a/Resources/Prototypes/Recipes/Lathes/medical.yml +++ b/Resources/Prototypes/Recipes/Lathes/medical.yml @@ -70,6 +70,14 @@ Glass: 25 Plastic: 25 +- type: latheRecipe + id: BoneGel + result: BoneGel + completetime: 2 + materials: + Plastic: 200 + Plasma: 200 + - type: latheRecipe id: Gauze result: Gauze1 @@ -244,3 +252,52 @@ Steel: 600 Plastic: 300 +- type: latheRecipe + id: MedicalCyberneticEyes + result: MedicalCyberneticEyes + category: Robotics + completetime: 5 + materials: + Steel: 1000 + Glass: 500 + Plastic: 500 + Gold: 300 + Silver: 300 + +- type: latheRecipe + id: EnergyScalpel + result: EnergyScalpel + completetime: 2 + materials: + Steel: 600 + Glass: 150 + Gold: 150 + +- type: latheRecipe + id: AdvancedRetractor + result: AdvancedRetractor + completetime: 2 + materials: + Steel: 600 + Glass: 150 + Silver: 150 + +- type: latheRecipe + id: EnergyCautery + result: EnergyCautery + completetime: 2 + materials: + Steel: 600 + Glass: 150 + Plasma: 150 + +- type: latheRecipe + id: OmnimedTool + result: OmnimedTool + completetime: 2 + materials: + Steel: 600 + Glass: 150 + Gold: 150 + Silver: 150 + Plasma: 150 diff --git a/Resources/Prototypes/Recipes/Lathes/rehydrateable.yml b/Resources/Prototypes/Recipes/Lathes/rehydrateable.yml index c38259dd816..b0b3b908388 100644 --- a/Resources/Prototypes/Recipes/Lathes/rehydrateable.yml +++ b/Resources/Prototypes/Recipes/Lathes/rehydrateable.yml @@ -72,3 +72,101 @@ materials: # abominations are slow and essentially worse than even carp Biomass: 28 Plasma: 500 # more biomass but less plasma + +- type: latheRecipe + id: SynthHeart + result: BioSynthHeart + completetime: 30 + materials: + Biomass: 10 + +- type: latheRecipe + id: SynthLungs + result: BioSynthLungs + completetime: 30 + materials: + Biomass: 10 + +- type: latheRecipe + id: SynthLiver + result: BioSynthLiver + completetime: 30 + materials: + Biomass: 10 + +- type: latheRecipe + id: SynthEyes + result: BioSynthEyes + completetime: 30 + materials: + Biomass: 10 + +- type: latheRecipe + id: SynthLeftArm + result: BioSynthLeftArm + completetime: 30 + materials: + Biomass: 10 + +- type: latheRecipe + id: SynthLeftHand + result: BioSynthLeftHand + completetime: 30 + materials: + Biomass: 10 + +- type: latheRecipe + id: SynthRightArm + result: BioSynthRightArm + completetime: 30 + materials: + Biomass: 10 + +- type: latheRecipe + id: SynthRightHand + result: BioSynthRightHand + completetime: 30 + materials: + Biomass: 10 + +- type: latheRecipe + id: SynthLeftLeg + result: BioSynthLeftLeg + completetime: 30 + materials: + Biomass: 10 + +- type: latheRecipe + id: SynthRightLeg + result: BioSynthRightLeg + completetime: 30 + materials: + Biomass: 10 + +- type: latheRecipe + id: SynthLeftFoot + result: BioSynthLeftFoot + completetime: 30 + materials: + Biomass: 10 + +- type: latheRecipe + id: SynthRightFoot + result: BioSynthRightFoot + completetime: 30 + materials: + Biomass: 10 + +- type: latheRecipe + id: PizzaLeftArm + result: PizzaLeftArm + completetime: 30 + materials: + Biomass: 5 + +- type: latheRecipe + id: PizzaRightArm + result: PizzaRightArm + completetime: 30 + materials: + Biomass: 5 diff --git a/Resources/Prototypes/Recipes/Lathes/robotics.yml b/Resources/Prototypes/Recipes/Lathes/robotics.yml index 2dc0a65748e..3cf91c80a02 100644 --- a/Resources/Prototypes/Recipes/Lathes/robotics.yml +++ b/Resources/Prototypes/Recipes/Lathes/robotics.yml @@ -636,3 +636,83 @@ Gold: 100 Plasma: 1000 +- type: latheRecipe + id: BorgModuleSurgery + result: BorgModuleSurgery + category: Robotics + completetime: 3 + materials: + Steel: 250 + Glass: 250 + Plastic: 250 + +- type: latheRecipe + id: BorgModuleAdvancedSurgery + result: BorgModuleAdvancedSurgery + category: Robotics + completetime: 3 + materials: + Steel: 500 + Glass: 500 + Plastic: 250 + Gold: 50 + +- type: latheRecipe + id: JawsOfLifeLeftArm + result: JawsOfLifeLeftArm + category: Robotics + completetime: 5 + materials: + Steel: 1000 + Glass: 500 + Plastic: 500 + Gold: 300 + Silver: 300 + +- type: latheRecipe + id: JawsOfLifeRightArm + result: JawsOfLifeRightArm + category: Robotics + completetime: 5 + materials: + Steel: 1000 + Glass: 500 + Plastic: 500 + Gold: 300 + Silver: 300 + +- type: latheRecipe + id: SpeedLeftLeg + result: SpeedLeftLeg + category: Robotics + completetime: 5 + materials: + Steel: 1000 + Glass: 500 + Plastic: 500 + Gold: 300 + Silver: 300 + +- type: latheRecipe + id: SpeedRightLeg + result: SpeedRightLeg + category: Robotics + completetime: 5 + materials: + Steel: 1000 + Glass: 500 + Plastic: 500 + Gold: 300 + Silver: 300 + +- type: latheRecipe + id: BasicCyberneticEyes + result: BasicCyberneticEyes + category: Robotics + completetime: 5 + materials: + Steel: 1000 + Glass: 500 + Plastic: 500 + Gold: 300 + Silver: 300 diff --git a/Resources/Prototypes/Recipes/Lathes/security.yml b/Resources/Prototypes/Recipes/Lathes/security.yml index 4a2e737e153..594e6fcdb6f 100644 --- a/Resources/Prototypes/Recipes/Lathes/security.yml +++ b/Resources/Prototypes/Recipes/Lathes/security.yml @@ -888,3 +888,15 @@ completetime: 6 materials: Steel: 300 + +- type: latheRecipe + id: SecurityCyberneticEyes + result: SecurityCyberneticEyes + category: Robotics + completetime: 5 + materials: + Steel: 1000 + Glass: 500 + Plastic: 500 + Gold: 300 + Silver: 300 diff --git a/Resources/Prototypes/Research/civilianservices.yml b/Resources/Prototypes/Research/civilianservices.yml index 26b519e1efa..6bfb50a266c 100644 --- a/Resources/Prototypes/Research/civilianservices.yml +++ b/Resources/Prototypes/Research/civilianservices.yml @@ -133,16 +133,20 @@ - SyringeCryostasis - type: technology - id: MechanizedTreatment - name: research-technology-mechanized-treatment + id: AdvancedTreatment + name: research-technology-advanced-treatment icon: - sprite: Mobs/Silicon/chassis.rsi - state: medical + sprite: Objects/Specific/Medical/Surgery/e-scalpel.rsi + state: e-scalpel-on discipline: CivilianServices tier: 2 cost: 5000 recipeUnlocks: - BorgModuleAdvancedTreatment + - EnergyScalpel + - EnergyCautery + - AdvancedRetractor + - BorgModuleAdvancedSurgery - BorgModuleDefibrillator - type: technology @@ -203,6 +207,24 @@ recipeUnlocks: - CargoTelepadMachineCircuitboard +- type: technology + id: CyberneticEnhancements + name: research-technology-cybernetic-enhancements + icon: + sprite: Mobs/Species/IPC/organs.rsi + state: eyes + discipline: CivilianServices + tier: 2 + cost: 15000 + recipeUnlocks: + - JawsOfLifeLeftArm + - JawsOfLifeRightArm + - SpeedLeftLeg + - SpeedRightLeg + - BasicCyberneticEyes + - SecurityCyberneticEyes + - MedicalCyberneticEyes + # Tier 3 - type: technology @@ -217,6 +239,18 @@ recipeUnlocks: - ClothingShoesBootsSpeed +- type: technology + id: HighEndSurgery + name: research-technology-high-end-surgery + icon: + sprite: Objects/Specific/Medical/Surgery/omnimed.rsi + state: omnimed + discipline: CivilianServices + tier: 3 + cost: 10000 + recipeUnlocks: + - OmnimedTool + - type: technology id: BluespaceChemistry name: research-technology-bluespace-chemistry diff --git a/Resources/Prototypes/Research/industrial.yml b/Resources/Prototypes/Research/industrial.yml index 2e1e7f5b26d..c2b05a18abe 100644 --- a/Resources/Prototypes/Research/industrial.yml +++ b/Resources/Prototypes/Research/industrial.yml @@ -87,6 +87,7 @@ recipeUnlocks: - ThermomachineFreezerMachineCircuitBoard - GasRecyclerMachineCircuitboard + - AlertsComputerCircuitboard - type: technology id: RipleyAPLU diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml b/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml index 141f4d39b76..22b8cfd48ac 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/clown.yml @@ -23,10 +23,10 @@ Piercing: 4 groups: Burn: 3 -# DeltaV - Commenting out the clown snore sound because I am not fond of it (it makes me itchy and feral). By "I", I mean Leonardo_DaBepis. -# - type: SleepEmitSound -# snore: /Audio/Voice/Misc/silly_snore.ogg -# interval: 10 + - type: SleepEmitSound + snore: /Audio/Voice/Misc/silly_snore.ogg + interval: 10 + - type: Snoring # Necessary so SleepEmitSound sound effects play - !type:AddImplantSpecial implants: [ SadTromboneImplant ] diff --git a/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml b/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml index c7c659bc531..6aa6d02aecb 100644 --- a/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml +++ b/Resources/Prototypes/Roles/Jobs/Civilian/mime.yml @@ -41,7 +41,7 @@ id: ActionMimeInvisibleWall name: Create Invisible Wall description: Create an invisible wall in front of you, if placeable there. - noSpawn: true + categories: [ HideSpawnMenu ] components: - type: InstantAction priority: -1 diff --git a/Resources/Prototypes/Roles/Jobs/Command/captain.yml b/Resources/Prototypes/Roles/Jobs/Command/captain.yml index 219684cc7d7..7e4d4e19a9e 100644 --- a/Resources/Prototypes/Roles/Jobs/Command/captain.yml +++ b/Resources/Prototypes/Roles/Jobs/Command/captain.yml @@ -47,10 +47,6 @@ jumpsuit: ClothingUniformJumpsuitCaptain back: ClothingBackpackCaptainFilled shoes: ClothingShoesBootsLaceup - head: ClothingHeadHatCaptain - eyes: ClothingEyesGlassesSunglasses - gloves: ClothingHandsGlovesCaptain - outerClothing: ClothingOuterArmorCaptainCarapace id: CaptainPDA ears: ClothingHeadsetAltCommand innerClothingSkirt: ClothingUniformJumpskirtCaptain diff --git a/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml b/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml index 878b184b8bc..feda9c0f466 100644 --- a/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml +++ b/Resources/Prototypes/Roles/Jobs/Command/head_of_personnel.yml @@ -73,11 +73,8 @@ jumpsuit: ClothingUniformJumpsuitHoP back: ClothingBackpackHOPFilled shoes: ClothingShoesLeather # DeltaV - HoP needs something better than plebe shoes. - head: ClothingHeadHatHopcap id: HoPPDA - gloves: ClothingHandsGlovesHop ears: ClothingHeadsetHoP # DeltaV - HoP is now a service role, replaces their all channels headset. - belt: BoxFolderClipboard innerClothingSkirt: ClothingUniformJumpskirtHoP satchel: ClothingBackpackSatchelHOPFilled duffelbag: ClothingBackpackDuffelHOPFilled diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml b/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml index 1a6ddbc0c42..a3bba1547a4 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/atmospheric_technician.yml @@ -21,11 +21,9 @@ id: AtmosphericTechnicianGear equipment: jumpsuit: ClothingUniformJumpsuitAtmos - back: ClothingBackpackEngineeringFilled + back: ClothingBackpackAtmospherics shoes: ClothingShoesColorWhite - eyes: ClothingEyesGlassesMeson id: AtmosPDA - belt: ClothingBeltUtilityEngineering ears: ClothingHeadsetEngineering innerClothingSkirt: ClothingUniformJumpskirtAtmos satchel: ClothingBackpackSatchelEngineeringFilled diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml b/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml index 2690b9ba016..74ba2ae68d1 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/chief_engineer.yml @@ -43,9 +43,7 @@ back: ClothingBackpackChiefEngineerFilled shoes: ClothingShoesColorBrown id: CEPDA - eyes: ClothingEyesGlassesMeson ears: ClothingHeadsetCE - belt: ClothingBeltUtilityEngineering innerClothingSkirt: ClothingUniformJumpskirtChiefEngineer satchel: ClothingBackpackSatchelChiefEngineerFilled duffelbag: ClothingBackpackDuffelChiefEngineerFilled diff --git a/Resources/Prototypes/Roles/Jobs/Engineering/senior_engineer.yml b/Resources/Prototypes/Roles/Jobs/Engineering/senior_engineer.yml index 5106f1129c4..128779db94d 100644 --- a/Resources/Prototypes/Roles/Jobs/Engineering/senior_engineer.yml +++ b/Resources/Prototypes/Roles/Jobs/Engineering/senior_engineer.yml @@ -3,7 +3,6 @@ name: job-name-senior-engineer description: job-description-senior-engineer playTimeTracker: JobSeniorEngineer - setPreference: false # DeltaV - Disable Senior Roles round start selection requirements: - !type:CharacterPlaytimeRequirement tracker: JobAtmosphericTechnician diff --git a/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml b/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml index 66466352cbe..65ce8816e65 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/chemist.yml @@ -18,6 +18,8 @@ - !type:AddComponentSpecial components: - type: CPRTraining + - type: SurgerySpeedModifier + SpeedModifier: 1.75 - type: startingGear id: ChemistGear @@ -27,8 +29,6 @@ shoes: ClothingShoesColorWhite id: ChemistryPDA ears: ClothingHeadsetMedical - belt: ChemBag - # the purple glasses? innerClothingSkirt: ClothingUniformJumpskirtChemistry satchel: ClothingBackpackSatchelChemistryFilled duffelbag: ClothingBackpackDuffelChemistryFilled diff --git a/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml b/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml index 6b61fe856e7..a7c3f189835 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml @@ -52,6 +52,8 @@ - !type:AddComponentSpecial components: - type: CPRTraining + - type: SurgerySpeedModifier + SpeedModifier: 2.5 - type: startingGear id: CMOGear @@ -61,7 +63,6 @@ shoes: ClothingShoesColorBrown id: CMOPDA ears: ClothingHeadsetCMO - belt: ClothingBeltMedicalFilled innerClothingSkirt: ClothingUniformJumpskirtCMO satchel: ClothingBackpackSatchelCMOFilled duffelbag: ClothingBackpackDuffelCMOFilled diff --git a/Resources/Prototypes/Roles/Jobs/Medical/medical_doctor.yml b/Resources/Prototypes/Roles/Jobs/Medical/medical_doctor.yml index 627b0e17dc3..81c56a677fe 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/medical_doctor.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/medical_doctor.yml @@ -20,6 +20,8 @@ - !type:AddComponentSpecial components: - type: CPRTraining + - type: SurgerySpeedModifier + SpeedModifier: 1.75 - type: startingGear id: DoctorGear @@ -29,7 +31,6 @@ shoes: ClothingShoesColorWhite id: MedicalPDA ears: ClothingHeadsetMedical - belt: ClothingBeltMedicalFilled innerClothingSkirt: ClothingUniformJumpskirtMedicalDoctor satchel: ClothingBackpackSatchelMedicalFilled duffelbag: ClothingBackpackDuffelMedicalFilled diff --git a/Resources/Prototypes/Roles/Jobs/Medical/medical_intern.yml b/Resources/Prototypes/Roles/Jobs/Medical/medical_intern.yml index 003eab22d25..3d3ba15990d 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/medical_intern.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/medical_intern.yml @@ -19,6 +19,8 @@ - !type:AddComponentSpecial components: - type: CPRTraining + - type: SurgerySpeedModifier + SpeedModifier: 1.5 - type: startingGear id: MedicalInternGear @@ -28,7 +30,6 @@ shoes: ClothingShoesColorWhite id: MedicalInternPDA ears: ClothingHeadsetMedical - belt: ClothingBeltMedicalFilled pocket2: BookMedicalReferenceBook # innerClothingSkirt: ClothingUniformJumpskirtColorWhite # DeltaV satchel: ClothingBackpackSatchelMedicalFilled diff --git a/Resources/Prototypes/Roles/Jobs/Medical/paramedic.yml b/Resources/Prototypes/Roles/Jobs/Medical/paramedic.yml index 0937a4627ae..9114d21966f 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/paramedic.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/paramedic.yml @@ -27,18 +27,20 @@ - !type:AddComponentSpecial components: - type: CPRTraining + - type: SurgerySpeedModifier + SpeedModifier: 1.75 - type: startingGear id: ParamedicGear equipment: jumpsuit: ClothingUniformJumpsuitParamedic - back: ClothingBackpackParamedicFilledDV # DeltaV - Give Paramedics useful tools on spawn, see Resources/Prototypes/DeltaV/Catalog/Fills/Backpacks/StargerGear/backpack.yml + back: ClothingBackpackParamedicFilledDV shoes: ClothingShoesColorBlue id: ParamedicPDA ears: ClothingHeadsetMedical belt: ClothingBeltMedicalEMTFilled - pocket1: HandheldGPSBasic # DeltaV - Give Paramedics useful tools on spawn - pocket2: HandheldCrewMonitor # DeltaV - Give Paramedics useful tools on spawn + pocket1: HandheldGPSBasic + pocket2: HandheldCrewMonitor innerClothingSkirt: ClothingUniformJumpskirtParamedic - satchel: ClothingBackpackSatchelParamedicFilledDV # DeltaV - Give Paramedics useful tools on spawn, see Resources/Prototypes/DeltaV/Catalog/Fills/Backpacks/StargerGear/satchel.yml - duffelbag: ClothingBackpackDuffelParamedicFilledDV # DeltaV - Give Paramedics useful tools on spawn, see Resources/Prototypes/DeltaV/Catalog/Fills/Backpacks/StargerGear/duffelbag.yml + satchel: ClothingBackpackSatchelParamedicFilledDV + duffelbag: ClothingBackpackDuffelParamedicFilledDV diff --git a/Resources/Prototypes/Roles/Jobs/Medical/senior_physician.yml b/Resources/Prototypes/Roles/Jobs/Medical/senior_physician.yml index d13fd18afdd..01b57e11775 100644 --- a/Resources/Prototypes/Roles/Jobs/Medical/senior_physician.yml +++ b/Resources/Prototypes/Roles/Jobs/Medical/senior_physician.yml @@ -3,7 +3,6 @@ name: job-name-senior-physician description: job-description-senior-physician playTimeTracker: JobSeniorPhysician - setPreference: false # DeltaV - Disable Senior Roles round start selection requirements: - !type:CharacterPlaytimeRequirement tracker: JobChemist @@ -25,6 +24,8 @@ - !type:AddComponentSpecial components: - type: CPRTraining + - type: SurgerySpeedModifier + SpeedModifier: 2.0 - type: startingGear id: SeniorPhysicianGear diff --git a/Resources/Prototypes/Roles/Jobs/Science/senior_researcher.yml b/Resources/Prototypes/Roles/Jobs/Science/senior_researcher.yml index 25b170a46e6..ecb61b36f4a 100644 --- a/Resources/Prototypes/Roles/Jobs/Science/senior_researcher.yml +++ b/Resources/Prototypes/Roles/Jobs/Science/senior_researcher.yml @@ -3,7 +3,6 @@ name: job-name-senior-researcher description: job-description-senior-researcher playTimeTracker: JobSeniorResearcher - setPreference: true requirements: - !type:CharacterDepartmentTimeRequirement department: Epistemics # DeltaV - Epistemics Department replacing Science diff --git a/Resources/Prototypes/Species/arachne.yml b/Resources/Prototypes/Species/arachne.yml index 583fc442e7b..f7f06ac3fde 100644 --- a/Resources/Prototypes/Species/arachne.yml +++ b/Resources/Prototypes/Species/arachne.yml @@ -1,14 +1,12 @@ - type: species id: Arachne name: species-name-arachne - roundStart: true + roundStart: true # I'll kill these issues somehow. prototype: MobArachne sprites: MobArachneSprites markingLimits: MobArachneMarkingLimits dollPrototype: MobArachneDummy skinColoration: HumanToned - sexes: - - Female minAge: 60 youngAge: 150 oldAge: 400 @@ -20,6 +18,12 @@ Hair: points: 1 required: false + FacialHair: + points: 1 + required: false + HeadSide: + points: 3 + required: false Tail: points: 1 required: false @@ -30,13 +34,13 @@ points: 2 required: false RightHand: - points: 2 + points: 3 required: false LeftArm: points: 2 required: false LeftHand: - points: 2 + points: 3 required: false @@ -44,7 +48,10 @@ id: MobArachneSprites sprites: Head: MobHumanHead + HeadSide: MobHumanoidAnyMarking Hair: MobHumanoidAnyMarking + FacialHair: MobHumanoidAnyMarking + Snout: MobHumanoidAnyMarking Chest: MobHumanTorso Eyes: MobArachneEyes LArm: MobHumanLArm diff --git a/Resources/Prototypes/Species/arachnid.yml b/Resources/Prototypes/Species/arachnid.yml index a2d941028da..cdfd35c70f7 100644 --- a/Resources/Prototypes/Species/arachnid.yml +++ b/Resources/Prototypes/Species/arachnid.yml @@ -57,7 +57,7 @@ points: 1 required: false HeadSide: - points: 1 + points: 3 required: true defaultMarkings: [ ArachnidCheliceraeDownwards ] Chest: @@ -79,13 +79,13 @@ points: 2 required: false RightHand: - points: 2 + points: 3 required: false LeftArm: points: 2 required: false LeftHand: - points: 2 + points: 3 required: false - type: humanoidBaseSprite diff --git a/Resources/Prototypes/Species/cybernetic.yml b/Resources/Prototypes/Species/cybernetic.yml new file mode 100644 index 00000000000..745212424f3 --- /dev/null +++ b/Resources/Prototypes/Species/cybernetic.yml @@ -0,0 +1,47 @@ +- type: humanoidBaseSprite + id: MobCyberneticBishopLArm + baseSprite: + sprite: Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi + state: "l_arm-combined" + +- type: humanoidBaseSprite + id: MobCyberneticBishopRArm + baseSprite: + sprite: Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi + state: "r_arm-combined" + +- type: humanoidBaseSprite + id: MobCyberneticBishopLLeg + baseSprite: + sprite: Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi + state: "l_leg-combined" + +- type: humanoidBaseSprite + id: MobCyberneticBishopRLeg + baseSprite: + sprite: Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi + state: "r_leg-combined" + +- type: humanoidBaseSprite + id: MobCyberneticBishopLHand + baseSprite: + sprite: Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi + state: "l_hand" + +- type: humanoidBaseSprite + id: MobCyberneticBishopRHand + baseSprite: + sprite: Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi + state: "r_hand" + +- type: humanoidBaseSprite + id: MobCyberneticBishopLFoot + baseSprite: + sprite: Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi + state: "l_foot" + +- type: humanoidBaseSprite + id: MobCyberneticBishopRFoot + baseSprite: + sprite: Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi + state: "r_foot" diff --git a/Resources/Prototypes/Species/diona.yml b/Resources/Prototypes/Species/diona.yml index 9b7f6e2ee64..3d7cc927471 100644 --- a/Resources/Prototypes/Species/diona.yml +++ b/Resources/Prototypes/Species/diona.yml @@ -41,7 +41,7 @@ points: 1 required: false HeadSide: - points: 1 + points: 3 required: false Chest: points: 1 diff --git a/Resources/Prototypes/Species/harpy.yml b/Resources/Prototypes/Species/harpy.yml index cf9e044eee9..f585500d8f6 100644 --- a/Resources/Prototypes/Species/harpy.yml +++ b/Resources/Prototypes/Species/harpy.yml @@ -53,6 +53,9 @@ points: 1 required: true defaultMarkings: [ HarpyEarsDefault ] + HeadSide: + points: 3 + required: false Chest: points: 1 required: true diff --git a/Resources/Prototypes/Species/human.yml b/Resources/Prototypes/Species/human.yml index 0d40cbfb031..7f39048cfda 100644 --- a/Resources/Prototypes/Species/human.yml +++ b/Resources/Prototypes/Species/human.yml @@ -53,6 +53,9 @@ HeadTop: points: 1 required: false + HeadSide: + points: 4 + required: false Chest: points: 1 required: false @@ -72,13 +75,13 @@ points: 2 required: false RightHand: - points: 2 + points: 3 required: false LeftArm: points: 2 required: false LeftHand: - points: 2 + points: 3 required: false - type: humanoidBaseSprite diff --git a/Resources/Prototypes/Species/misc.yml b/Resources/Prototypes/Species/misc.yml new file mode 100644 index 00000000000..05f78bc2d44 --- /dev/null +++ b/Resources/Prototypes/Species/misc.yml @@ -0,0 +1,12 @@ +# This file is moreso for any base parts from Shitmed that dont fall under any particular umbrella. +- type: humanoidBaseSprite + id: MobPizzaLArm + baseSprite: + sprite: Mobs/Species/Misc/Pizza/parts.rsi + state: "l_arm" + +- type: humanoidBaseSprite + id: MobPizzaRArm + baseSprite: + sprite: Mobs/Species/Misc/Pizza/parts.rsi + state: "r_arm" diff --git a/Resources/Prototypes/Species/reptilian.yml b/Resources/Prototypes/Species/reptilian.yml index ec800b943d7..17e1579a738 100644 --- a/Resources/Prototypes/Species/reptilian.yml +++ b/Resources/Prototypes/Species/reptilian.yml @@ -59,7 +59,7 @@ points: 2 required: false HeadSide: - points: 1 + points: 2 required: false Chest: points: 1 @@ -80,13 +80,13 @@ points: 2 required: false RightHand: - points: 2 + points: 3 required: false LeftArm: points: 2 required: false LeftHand: - points: 2 + points: 3 required: false - type: humanoidBaseSprite diff --git a/Resources/Prototypes/Species/slime.yml b/Resources/Prototypes/Species/slime.yml index 72fe8534989..a78737321a1 100644 --- a/Resources/Prototypes/Species/slime.yml +++ b/Resources/Prototypes/Species/slime.yml @@ -13,6 +13,7 @@ id: MobSlimeSprites sprites: Head: MobSlimeHead + HeadSide: MobHumanoidAnyMarking Hair: MobSlimeMarkingFollowSkin FacialHair: MobSlimeMarkingFollowSkin Chest: MobSlimeTorso @@ -32,6 +33,9 @@ Hair: points: 1 required: false + HeadSide: + points: 2 + required: false FacialHair: points: 1 required: false diff --git a/Resources/Prototypes/Stacks/medical_stacks.yml b/Resources/Prototypes/Stacks/medical_stacks.yml index 9d2b77ec933..8a10e72d9a2 100644 --- a/Resources/Prototypes/Stacks/medical_stacks.yml +++ b/Resources/Prototypes/Stacks/medical_stacks.yml @@ -11,7 +11,7 @@ name: aloe cream icon: { sprite: "/Textures/Objects/Specific/Hydroponics/aloe.rsi", state: cream } spawn: AloeCream - maxCount: 10 + maxCount: 15 #Changed to 15 due to shitmed changes itemSize: 1 - type: stack @@ -19,7 +19,7 @@ name: gauze icon: { sprite: "/Textures/Objects/Specific/Medical/medical.rsi", state: gauze } spawn: Gauze - maxCount: 10 + maxCount: 15 #Changed to 15 due to shitmed changes itemSize: 1 - type: stack @@ -27,7 +27,7 @@ name: brutepack icon: { sprite: "/Textures/Objects/Specific/Medical/medical.rsi", state: gauze } spawn: Brutepack - maxCount: 10 + maxCount: 15 #Changed to 15 due to shitmed changes itemSize: 1 - type: stack @@ -35,7 +35,7 @@ name: bloodpack icon: { sprite: "/Textures/Objects/Specific/Medical/medical.rsi", state: bloodpack } spawn: Bloodpack - maxCount: 10 + maxCount: 15 #Changed to 15 due to shitmed changes itemSize: 1 - type: stack @@ -43,7 +43,7 @@ name: medicated-suture icon: {sprite: "/Textures/Objects/Specific/Medical/medical.rsi", state: medicated-suture } spawn: MedicatedSuture - maxCount: 10 + maxCount: 15 #Changed to 15 due to shitmed changes itemSize: 1 - type: stack @@ -51,7 +51,7 @@ name: regenerative-mesh icon: {sprite: "/Textures/Objects/Specific/Medical/medical.rsi", state: regenerative-mesh} spawn: RegenerativeMesh - maxCount: 10 + maxCount: 15 #Changed to 15 due to shitmed changes itemSize: 1 diff --git a/Resources/Prototypes/Traits/disabilities.yml b/Resources/Prototypes/Traits/disabilities.yml index efa77391013..83645e3a820 100644 --- a/Resources/Prototypes/Traits/disabilities.yml +++ b/Resources/Prototypes/Traits/disabilities.yml @@ -1,7 +1,7 @@ - type: trait id: Blindness category: Visual - points: 6 + points: 10 requirements: - !type:CharacterJobRequirement inverted: true @@ -245,7 +245,7 @@ - Vulpkanin # This trait functions exactly as-is for the Vulpkanin trait. - Shadowkin functions: - - !type:TraitAddComponent + - !type:TraitReplaceComponent components: - type: Flashable eyeDamageChance: 0.3 diff --git a/Resources/Prototypes/Traits/mental.yml b/Resources/Prototypes/Traits/mental.yml index 5b4fc56bf02..4d52c528241 100644 --- a/Resources/Prototypes/Traits/mental.yml +++ b/Resources/Prototypes/Traits/mental.yml @@ -280,3 +280,134 @@ - !type:TraitAddPsionics psionicPowers: - HighDampening + +- type: trait + id: DispelPower + category: Mental + points: -6 + requirements: + - !type:CharacterLogicOrRequirement + requirements: + - !type:CharacterTraitRequirement + traits: + - LatentPsychic + - !type:CharacterJobRequirement + jobs: + - Chaplain + - Librarian + - ForensicMantis + - !type:CharacterLogicOrRequirement + requirements: + - !type:CharacterSpeciesRequirement + inverted: true + species: + - IPC + - !type:CharacterTraitRequirement + traits: + - AnomalousPositronics + - !type:CharacterJobRequirement + inverted: true + jobs: + - ResearchDirector + functions: + - !type:TraitAddPsionics + psionicPowers: + - DispelPower + +- type: trait + id: MetapsionicPower + category: Mental + points: -4 + requirements: + - !type:CharacterLogicOrRequirement + requirements: + - !type:CharacterTraitRequirement + traits: + - LatentPsychic + - !type:CharacterJobRequirement + jobs: + - Chaplain + - Librarian + - !type:CharacterLogicOrRequirement + requirements: + - !type:CharacterSpeciesRequirement + inverted: true + species: + - IPC + - !type:CharacterTraitRequirement + traits: + - AnomalousPositronics + - !type:CharacterJobRequirement + inverted: true + jobs: + - ResearchDirector + - ForensicMantis + functions: + - !type:TraitAddPsionics + psionicPowers: + - MetapsionicPower + +- type: trait + id: XenoglossyPower + category: Mental + points: -10 + requirements: + - !type:CharacterLogicOrRequirement + requirements: + - !type:CharacterTraitRequirement + traits: + - LatentPsychic + - NaturalTelepath + - !type:CharacterJobRequirement + jobs: + - Chaplain + - ResearchDirector + - ForensicMantis + - !type:CharacterLogicOrRequirement + requirements: + - !type:CharacterSpeciesRequirement + inverted: true + species: + - IPC + - !type:CharacterTraitRequirement + traits: + - AnomalousPositronics + - !type:CharacterJobRequirement + inverted: true + jobs: + - Librarian + functions: + - !type:TraitAddPsionics + psionicPowers: + - XenoglossyPower + +- type: trait + id: PsychognomyPower + category: Mental + points: -3 + requirements: + - !type:CharacterLogicOrRequirement + requirements: + - !type:CharacterTraitRequirement + traits: + - LatentPsychic + - NaturalTelepath + - !type:CharacterJobRequirement + jobs: + - Chaplain + - ResearchDirector + - ForensicMantis + - Librarian + - !type:CharacterLogicOrRequirement + requirements: + - !type:CharacterSpeciesRequirement + inverted: true + species: + - IPC + - !type:CharacterTraitRequirement + traits: + - AnomalousPositronics + functions: + - !type:TraitAddPsionics + psionicPowers: + - PsychognomyPower diff --git a/Resources/Prototypes/Traits/physical.yml b/Resources/Prototypes/Traits/physical.yml index 083a91382f9..d8139800e1f 100644 --- a/Resources/Prototypes/Traits/physical.yml +++ b/Resources/Prototypes/Traits/physical.yml @@ -450,12 +450,18 @@ inverted: true jobs: - Prisoner # Bionics should be "Confiscated" from long term prisoners. + - Gladiator functions: - !type:TraitAddComponent components: - type: Prying speedModifier: 1 pryPowered: true + - !type:TraitPushDescription + descriptionExtensions: + - description: examine-bionic-arm-message + fontSize: 12 + requireDetailRange: true - type: trait id: PlateletFactories @@ -489,25 +495,26 @@ - type: trait id: DermalArmor category: Physical - points: -9 + points: -6 requirements: - !type:CharacterJobRequirement inverted: true jobs: - Prisoner # Bionics should be "Confiscated" from long term prisoners. - - !type:CharacterSpeciesRequirement - species: - - Human functions: - - !type:TraitReplaceComponent - components: - - type: Damageable - damageModifierSet: DermalArmor + - !type:TraitAddArmor + damageModifierSets: + - DermalArmor + - !type:TraitPushDescription + descriptionExtensions: + - description: examine-dermal-armor-message + fontSize: 12 + requireDetailRange: true - type: trait id: CyberEyes category: Physical - points: -8 + points: -4 requirements: - !type:CharacterJobRequirement inverted: true @@ -520,14 +527,34 @@ - Blindness - Nearsighted functions: - - !type:TraitRemoveComponent + - !type:TraitPushDescription + descriptionExtensions: + - description: examine-cybereyes-message + fontSize: 12 + requireDetailRange: true + - !type:TraitReplaceComponent components: - - type: Flashable + - type: Flashable # Effectively, removes any flash-vulnerability species traits. + + +- type: trait + id: FlareShielding + category: Physical + points: -4 + requirements: + - !type:CharacterJobRequirement + inverted: true + jobs: + - Prisoner # Bionics should be "Confiscated" from long term prisoners. + - !type:CharacterTraitRequirement + traits: + - CyberEyes + functions: - !type:TraitAddComponent components: - type: FlashImmunity - type: EyeProtection - - type: CyberEyes + - type: trait id: CyberEyesSecurity @@ -642,3 +669,43 @@ - Biological - Inorganic - Silicon + +- type: trait + id: Redshirt + category: Physical + points: 8 + requirements: + - !type:CharacterJobRequirement + inverted: true + jobs: + - Borg + - MedicalBorg + - !type:CharacterSpeciesRequirement + inverted: true + species: + - IPC + functions: + - !type:TraitReplaceComponent + components: + - type: DeadModifier + deadThresholdModifier: -100 + +- type: trait + id: BrittleBoneDisease + category: Physical + points: 10 + requirements: + - !type:CharacterJobRequirement + inverted: true + jobs: + - Borg + - MedicalBorg + - !type:CharacterSpeciesRequirement + inverted: true + species: + - IPC + functions: + - !type:TraitReplaceComponent + components: + - type: CritModifier + critThresholdModifier: -50 diff --git a/Resources/Locale/en-US/loadouts/neck.ftl b/Resources/Prototypes/WhiteDream/Entities/Actions/cult_constructs.yml similarity index 100% rename from Resources/Locale/en-US/loadouts/neck.ftl rename to Resources/Prototypes/WhiteDream/Entities/Actions/cult_constructs.yml diff --git a/Resources/Prototypes/WhiteDream/Entities/Actions/cult_items.yml b/Resources/Prototypes/WhiteDream/Entities/Actions/cult_items.yml new file mode 100644 index 00000000000..a134bf0486c --- /dev/null +++ b/Resources/Prototypes/WhiteDream/Entities/Actions/cult_items.yml @@ -0,0 +1,16 @@ +- type: entity + id: ActionBloodSpearRecall + name: Recall spear + description: Recalls your blood spear back to your hand. + categories: [ HideSpawnMenu ] + components: + - type: Sprite + sprite: WhiteDream/BloodCult/actions.rsi + state: stun + - type: InstantAction + itemIconStyle: BigAction + useDelay: 30 + icon: + sprite: WhiteDream/BloodCult/Entities/Items/Weapons/cult_spear.rsi + state: icon + event: !type:BloodSpearRecalledEvent diff --git a/Resources/Prototypes/WhiteDream/Entities/Actions/cult_leader.yml b/Resources/Prototypes/WhiteDream/Entities/Actions/cult_leader.yml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/Resources/Prototypes/WhiteDream/Entities/Actions/cultists.yml b/Resources/Prototypes/WhiteDream/Entities/Actions/cultists.yml new file mode 100644 index 00000000000..45e6217c602 --- /dev/null +++ b/Resources/Prototypes/WhiteDream/Entities/Actions/cultists.yml @@ -0,0 +1,372 @@ +- type: entity + id: ActionBloodCultStun + name: Stun + description: Empowers your hand to stun and mute a victim on contact. + categories: [ HideSpawnMenu ] + components: + - type: Sprite + sprite: WhiteDream/BloodCult/actions.rsi + state: stun + - type: EntityTargetAction + checkCanAccess: false + range: 3 + itemIconStyle: BigAction + charges: 1 + temporary: true + canTargetSelf: false + interactOnMiss: false + whitelist: + components: + - Body + icon: + sprite: WhiteDream/BloodCult/actions.rsi + state: stun + event: !type:BloodCultStunEvent + speech: "Fuu ma'jin!" + - type: BaseCultSpell + +- type: entity + id: ActionBloodCultTeleport + name: Teleport + description: Empowers your hand to teleport yourself or another cultist to a teleport rune on contact. + categories: [ HideSpawnMenu ] + components: + - type: Sprite + sprite: WhiteDream/BloodCult/actions.rsi + state: teleport + - type: EntityTargetAction + checkCanAccess: false + range: 3 + itemIconStyle: BigAction + charges: 1 + temporary: true + interactOnMiss: false + whitelist: + components: + - BloodCultist + icon: + sprite: WhiteDream/BloodCult/actions.rsi + state: teleport + event: !type:BloodCultTeleportEvent + speech: "Sas'so c'arta forbici" + - type: BaseCultSpell + +- type: entity + id: ActionBloodCultEmp + name: Electromagnetic Pulse + description: Emits a large electromagnetic pulse. + categories: [ HideSpawnMenu ] + components: + - type: Sprite + sprite: WhiteDream/BloodCult/actions.rsi + state: create_emp + - type: InstantAction + itemIconStyle: BigAction + charges: 1 + temporary: true + icon: + sprite: WhiteDream/BloodCult/actions.rsi + state: teleport + event: !type:BloodCultEmpEvent + speech: "Ta'gh fara'qha fel d'amar det!" + - type: BaseCultSpell + +- type: entity + id: ActionBloodCultShadowShackles + name: Shadow Shackles + description: Empowers your hand to handcuff a victim on contact, and mute them if successful. + categories: [ HideSpawnMenu ] + components: + - type: Sprite + sprite: WhiteDream/BloodCult/actions.rsi + state: shackles + - type: EntityTargetAction + checkCanAccess: false + range: 3 + itemIconStyle: BigAction + charges: 4 + temporary: true + canTargetSelf: false + interactOnMiss: false + whitelist: + components: + - Body + icon: + sprite: WhiteDream/BloodCult/actions.rsi + state: shackles + event: !type:BloodCultShacklesEvent + speech: "In'totum Lig'abis!" + - type: BaseCultSpell + +- type: entity + id: ActionBloodCultTwistedConstruction + name: Twisted Construction + description: Empowers your hand to corrupt certain metallic objects. + categories: [ HideSpawnMenu ] + components: + - type: Sprite + sprite: WhiteDream/BloodCult/actions.rsi + state: transmute + - type: EntityTargetAction + checkCanAccess: false + range: 3 + itemIconStyle: BigAction + charges: 1 + temporary: true + canTargetSelf: false + interactOnMiss: false + whitelist: + components: + - TwistedConstructionTarget + icon: + sprite: WhiteDream/BloodCult/actions.rsi + state: transmute + event: !type:BloodCultTwistedConstructionEvent + speech: "Ethra p'ni dedol!" + - type: BaseCultSpell + +- type: entity + id: ActionBloodCultSummonCombatEquipment + name: Summon Combat Equipment + description: Allows you to summon combat cult gear, including cult armor, a cult bola and a cult sword. + categories: [ HideSpawnMenu ] + components: + - type: Sprite + sprite: WhiteDream/BloodCult/actions.rsi + state: summon_combat_equipment + - type: InstantAction + itemIconStyle: BigAction + charges: 1 + temporary: true + icon: + sprite: WhiteDream/BloodCult/actions.rsi + state: summon_combat_equipment + event: !type:SummonEquipmentEvent + speech: "Wur d'dai leev'mai k'sagan!" + prototypes: + outerClothing: ClothingOuterCultArmor + hand1: EldritchLongsword + hand2: CultBola + - type: BaseCultSpell + +- type: entity + id: ActionBloodCultSummonRitualDagger + name: Summon Ritual Dagger + description: Allows you to summon a ritual dagger, in case you've lost the dagger that was given to you. + categories: [ HideSpawnMenu ] + components: + - type: Sprite + sprite: WhiteDream/BloodCult/actions.rsi + state: summon_dagger + - type: InstantAction + itemIconStyle: BigAction + charges: 1 + temporary: true + icon: + sprite: WhiteDream/BloodCult/actions.rsi + state: summon_dagger + event: !type:SummonEquipmentEvent + speech: "Wur d'dai leev'mai k'sagan!" + prototypes: + hand: RitualDagger + - type: BaseCultSpell + +- type: entity + id: ActionBloodCultBloodRites + name: Blood Rites + description: Empowers your hand to absorb blood to be used for advanced rites, or heal a cultist on contact. Use the spell in-hand to cast advanced rites + categories: [ HideSpawnMenu ] + components: + - type: Sprite + sprite: WhiteDream/BloodCult/actions.rsi + state: blood_rites + - type: InstantAction + itemIconStyle: BigAction + charges: 1 + useDelay: 3 + temporary: true + icon: + sprite: WhiteDream/BloodCult/actions.rsi + state: blood_rites + event: !type:SummonEquipmentEvent + speech: "Fel'th Dol Ab'orod!" + prototypes: + hand1: BloodRitesAura + - type: BaseCultSpell + +- type: entity + id: ActionSummonCultFloor + name: Summon Cult Floor + description: This spell constructs a cult floor. + categories: [ HideSpawnMenu ] + components: + - type: Sprite + sprite: WhiteDream/BloodCult/actions.rsi + state: create_cult_floor + - type: WorldTargetAction + useDelay: 10 + range: 5 + itemIconStyle: BigAction + checkCanAccess: false + icon: + sprite: WhiteDream/BloodCult/actions.rsi + state: create_cult_floor + event: !type:PlaceTileEntityEvent + tileId: CultFloor + audio: !type:SoundPathSpecifier + path: /Audio/WhiteDream/BloodCult/curse.ogg + - type: BaseCultSpell + +- type: entity + id: ActionLesserConstruction + name: Lesser Construction + description: This spell constructs a cult wall. + categories: [ HideSpawnMenu ] + components: + - type: Sprite + sprite: WhiteDream/BloodCult/actions.rsi + state: lesser_construct + - type: WorldTargetAction + useDelay: 20 + range: 5 + itemIconStyle: BigAction + checkCanAccess: false + icon: + sprite: WhiteDream/BloodCult/actions.rsi + state: lesser_construct + event: !type:PlaceTileEntityEvent + entity: WallCult + audio: !type:SoundPathSpecifier + path: /Audio/WhiteDream/BloodCult/curse.ogg + - type: BaseCultSpell + +- type: entity + id: ActionSummonCultDoor + name: Summon Cult Door + description: This spell constructs a cult door. + categories: [ HideSpawnMenu ] + components: + - type: Sprite + sprite: WhiteDream/BloodCult/actions.rsi + state: lesser_construct + - type: WorldTargetAction + useDelay: 30 + range: 5 + itemIconStyle: BigAction + checkCanAccess: false + icon: + sprite: WhiteDream/BloodCult/actions.rsi + state: lesser_construct + event: !type:PlaceTileEntityEvent + entity: CultDoor + audio: !type:SoundPathSpecifier + path: /Audio/WhiteDream/BloodCult/curse.ogg + - type: BaseCultSpell + +- type: entity + id: ActionSummonSoulStone + name: Summon Soulshard + description: This spell reaches into Nar'Sie's realm, summoning one of the legendary fragments across time and space. + categories: [ HideSpawnMenu ] + components: + - type: Sprite + sprite: WhiteDream/BloodCult/actions.rsi + state: create_soul_stone + - type: WorldTargetAction + useDelay: 30 + range: 5 + itemIconStyle: BigAction + checkCanAccess: false + icon: + sprite: WhiteDream/BloodCult/actions.rsi + state: create_soul_stone + event: !type:PlaceTileEntityEvent + entity: SoulShardGhost + audio: !type:SoundPathSpecifier + path: /Audio/WhiteDream/BloodCult/curse.ogg + - type: BaseCultSpell + +- type: entity + id: ActionSummonSoulStoneHoly + name: Summon Holy Soulshard + description: This spell reaches into Nar'Sie's realm, summoning one of the legendary fragments across time and space. + categories: [ HideSpawnMenu ] + components: + - type: Sprite + sprite: WhiteDream/BloodCult/actions.rsi + state: create_soul_stone + - type: WorldTargetAction + useDelay: 30 + range: 5 + itemIconStyle: BigAction + checkCanAccess: false + icon: + sprite: WhiteDream/BloodCult/actions.rsi + state: create_soul_stone + event: !type:PlaceTileEntityEvent + entity: SoulShardHolyGhost + audio: !type:SoundPathSpecifier + path: /Audio/WhiteDream/BloodCult/curse.ogg + - type: BaseCultSpell + +- type: entity + id: ActionForceWallCult + name: Shield + description: This spell creates a temporary forcefield to shield yourself and allies from incoming fire. + categories: [ HideSpawnMenu ] + components: + - type: Sprite + sprite: WhiteDream/BloodCult/actions.rsi + state: summon_force_wall + - type: InstantAction + useDelay: 40 + itemIconStyle: BigAction + sound: !type:SoundPathSpecifier + path: /Audio/Magic/forcewall.ogg + icon: + sprite: WhiteDream/BloodCult/actions.rsi + state: summon_force_wall + event: !type:InstantSpawnSpellEvent + prototype: WallForceCult + posData: !type:TargetInFront + - type: BaseCultSpell + +- type: entity + id: ActionPhaseShift + name: Phase Shift + description: This spell allows you to pass through walls. + categories: [ HideSpawnMenu ] + components: + - type: Sprite + sprite: WhiteDream/BloodCult/actions.rsi + state: phase_shift + - type: InstantAction + itemIconStyle: BigAction + useDelay: 30 + icon: + sprite: WhiteDream/BloodCult/actions.rsi + state: phase_shift + event: !type:PhaseShiftEvent + - type: BaseCultSpell + +- type: entity + id: ActionGauntletEcho + name: Gauntlet Echo + description: Channels energy into your gauntlet - firing its essence forward in a slow moving, yet devastating, attack + categories: [ HideSpawnMenu ] + components: + - type: WorldTargetAction + useDelay: 30 + itemIconStyle: BigAction + checkCanAccess: false + raiseOnUser: true + range: 15 + sound: !type:SoundPathSpecifier + path: /Audio/WhiteDream/BloodCult/resonator_blast.ogg + icon: + sprite: WhiteDream/BloodCult/actions.rsi + state: gauntlet_echo + event: !type:ProjectileSpellEvent + prototype: ProjectileGauntlet + projectileSpeed: 5 + - type: BaseCultSpell diff --git a/Resources/Prototypes/WhiteDream/Entities/Clothing/Cult/armor.yml b/Resources/Prototypes/WhiteDream/Entities/Clothing/Cult/armor.yml new file mode 100644 index 00000000000..ea8e22b80d9 --- /dev/null +++ b/Resources/Prototypes/WhiteDream/Entities/Clothing/Cult/armor.yml @@ -0,0 +1,123 @@ +- type: entity + parent: ClothingOuterHardsuitBase + id: ClothingOuterCultArmor + name: true nar'sien hardened armor + description: heavily-armored exosuit worn by warriors of the Nar'Sien cult. It can withstand hard vacuum. + components: + - type: Sprite + sprite: WhiteDream/BloodCult/Entities/Clothes/Outer/cult_armor.rsi + - type: Clothing + sprite: WhiteDream/BloodCult/Entities/Clothes/Outer/cult_armor.rsi + - type: PressureProtection + highPressureMultiplier: 0.02 + lowPressureMultiplier: 1000 + - type: ClothingSpeedModifier + walkModifier: 1.0 + sprintModifier: 1.0 + - type: Armor + modifiers: + coefficients: + Blunt: 0.5 + Slash: 0.6 + Piercing: 0.6 + Heat: 0.7 + Caustic: 0.2 + Radiation: 0.2 + - type: ExplosionResistance + damageCoefficient: 0.5 + - type: TemperatureProtection + coefficient: 0.001 + - type: ToggleableClothing + clothingPrototype: ClothingHeadHelmetCultArmor + - type: CultItem + +- type: entity + parent: ClothingHeadHardsuitBase + id: ClothingHeadHelmetCultArmor + categories: [ HideSpawnMenu ] + name: true nar'sien hardened helmet + description: A heavily-armored helmet worn by warriors of the Nar'Sien cult. It can withstand hard vacuum. + components: + - type: BreathMask + - type: Sprite + sprite: WhiteDream/BloodCult/Entities/Clothes/Helmet/cult_helmet.rsi + - type: Clothing + sprite: WhiteDream/BloodCult/Entities/Clothes/Helmet/cult_helmet.rsi + equipSound: /Audio/Effects/rustle1.ogg + unequipSound: /Audio/Effects/rustle2.ogg + - type: PressureProtection + highPressureMultiplier: 0.08 + lowPressureMultiplier: 1000 + +- type: entity + parent: ClothingOuterRobesCult + id: ClothingOuterRobesCultTrue + name: flagellant's robe + description: Blood-soaked robes infused with dark magic; allows the user to move at inhuman speeds, but at the cost of increased damage. + components: + - type: Sprite + sprite: WhiteDream/BloodCult/Entities/Clothes/Outer/cult_robe.rsi + - type: Clothing + sprite: WhiteDream/BloodCult/Entities/Clothes/Outer/cult_robe.rsi + - type: CultItem + - type: ClothingSpeedModifier + walkModifier: 1.25 + sprintModifier: 1.25 + - type: Armor + modifiers: + coefficients: + Blunt: 1.4 + Slash: 1.4 + Piercing: 1.4 + Heat: 1.4 + - type: ToggleableClothing + clothingPrototype: ClothingHeadHatHoodCultHoodTrue + - type: ContainerContainer + containers: + toggleable-clothing: !type:ContainerSlot { } + +- type: entity + parent: ClothingHeadHatHoodCulthood + id: ClothingHeadHatHoodCultHoodTrue + name: flagellant's hood + description: A blood-soaked hood infused with dark magic. + categories: [ HideSpawnMenu ] + components: + - type: Sprite + sprite: WhiteDream/BloodCult/Entities/Clothes/Helmet/cult_hood.rsi + - type: Clothing + sprite: WhiteDream/BloodCult/Entities/Clothes/Helmet/cult_hood.rsi + equipSound: /Audio/Effects/rustle1.ogg + unequipSound: /Audio/Effects/rustle2.ogg + - type: ClothingSpeedModifier + walkModifier: 1.25 + sprintModifier: 1.25 + - type: Armor + modifiers: + coefficients: + Blunt: 1.4 + Slash: 1.4 + Piercing: 1.4 + Heat: 1.4 + +- type: entity + parent: ClothingEyesBase + id: ClothingEyeCultBlindfold + name: zealot's blindfold + description: May Nar'Sie guide you through the darkness and shield you from the light + components: + - type: Sprite + sprite: Clothing/Eyes/Misc/blindfold.rsi + state: icon + - type: Clothing + sprite: Clothing/Eyes/Misc/blindfold.rsi + - type: FlashImmunity + - type: ShowHealthBars + damageContainers: + - Biological + - Inorganic + - type: ShowHealthIcons + damageContainers: + - Biological + # TODO: ADD NIGHT VISION + diff --git a/Resources/Prototypes/WhiteDream/Entities/Effects/cult.yml b/Resources/Prototypes/WhiteDream/Entities/Effects/cult.yml new file mode 100644 index 00000000000..cba21c51c38 --- /dev/null +++ b/Resources/Prototypes/WhiteDream/Entities/Effects/cult.yml @@ -0,0 +1,58 @@ +- type: entity + id: CultTileSpawnEffect + name: cult tile effect + placement: + mode: SnapgridCenter + components: + - type: TimedDespawn + lifetime: 0.5 + - type: Transform + noRot: true + anchored: true + - type: Sprite + layers: + - sprite: WhiteDream/BloodCult/Effects/tiles_spawn.rsi + state: floorglow + shader: unshaded + netsync: false + drawdepth: FloorObjects + - type: PointLight + color: "#FF0000" + +- type: entity + id: CultTeleportInEffect + name: Teleport in + components: + - type: TimedDespawn + lifetime: 0.8 + - type: Transform + noRot: true + anchored: true + - type: Sprite + layers: + - sprite: WhiteDream/BloodCult/Effects/cult_in_out.rsi + state: cult_in + shader: unshaded + netsync: false + drawdepth: Effects + - type: PointLight + color: "#FF0000" + +- type: entity + id: CultTeleportOutEffect + name: Teleport out + components: + - type: TimedDespawn + lifetime: 0.8 + - type: Transform + noRot: true + anchored: true + - type: Sprite + layers: + - sprite: WhiteDream/BloodCult/Effects/cult_in_out.rsi + state: cult_out + shader: unshaded + netsync: false + drawdepth: Effects + - type: PointLight + color: "#FF0000" diff --git a/Resources/Prototypes/WhiteDream/Entities/Objects/Cult/constructs.yml b/Resources/Prototypes/WhiteDream/Entities/Objects/Cult/constructs.yml new file mode 100644 index 00000000000..b6bc17a2239 --- /dev/null +++ b/Resources/Prototypes/WhiteDream/Entities/Objects/Cult/constructs.yml @@ -0,0 +1,364 @@ +- type: entity + id: ConstructShell + name: construct shell + description: empty construct shell + parent: BaseItem + components: + - type: Sprite + sprite: WhiteDream/BloodCult/Entities/Items/construct_shell.rsi + state: icon + - type: ItemSlots + - type: ConstructShell + shardSlot: + ejectOnBreak: true + whitelist: + components: + - SoulShard + - type: UserInterface + interfaces: + enum.RadialSelectorUiKey.Key: + type: RadialSelectorMenuBUI + - type: ContainerContainer + containers: + Shard: !type:ContainerSlot + - type: CultItem + - type: Examiner + skipChecks: true + +- type: entity + id: ConstructBase + abstract: true + categories: [ HideSpawnMenu ] + components: + - type: LagCompensation + - type: Input + context: "human" + - type: MobMover + - type: InputMover + - type: MovementSpeedModifier + baseWalkSpeed: 3 + baseSprintSpeed: 3 + - type: DamageOnHighSpeedImpact + damage: + types: + Blunt: 5 + soundHit: + path: /Audio/Effects/hit_kick.ogg + - type: Sprite + drawdepth: Mobs + sprite: WhiteDream/BloodCult/mobs.rsi + noRot: true + - type: Clickable + - type: InteractionOutline + - type: Physics + bodyType: KinematicController + - type: Construct + - type: Fixtures + fixtures: + fix1: + shape: !type:PhysShapeCircle + radius: 0.35 + density: 300 + mask: + - FlyingMobMask + layer: + - FlyingMobLayer + - type: Damageable + damageContainer: CorporealSpirit + damageModifierSet: CorporealSpirit + - type: MobThresholds + thresholds: + 0: Alive + 60: Dead + - type: MobState + allowedStates: + - Alive + - Dead + - type: CombatMode + canDisarm: false + - type: Internals + - type: Examiner + - type: Speech + - type: TypingIndicator + proto: guardian + - type: Puller + needsHands: false + - type: Visibility + - type: ContentEye + - type: Actions + - type: Hands + - type: IsDeadIC + - type: ShowHealthBars + damageContainers: + - Biological + - Inorganic + - type: ShowHealthIcons + damageContainers: + - Biological + - type: Tag + tags: + - CannotSuicide + - DoorBumpOpener + - type: Appearance + - type: LanguageKnowledge + speaks: + - TauCetiBasic + - Eldritch + understands: + - TauCetiBasic + - Eldritch + +- type: entity + id: ConstructJuggernaut + parent: ConstructBase + name: juggernaut + description: A massive, armored construct built to spearhead attacks and soak up enemy fire. + components: + - type: Sprite + layers: + - state: juggernaut + map: [ "enum.ConstructVisualsState.Sprite" ] + - state: glow_juggernaut_cult + map: [ "enum.ConstructVisualsState.Glow" ] + - type: MobThresholds + thresholds: + 0: Alive + 100: Dead + - type: Construct + actions: + - ActionForceWallCult + - ActionGauntletEcho + - type: MeleeWeapon + hidden: true + angle: 30 + animation: WeaponArcSmash + attackRate: 1 + damage: + types: + Structural: 90 + Blunt: 25 + soundHit: + path: /Audio/Nyanotrasen/Weapons/club.ogg + - type: GenericVisualizer + visuals: + enum.ConstructVisualsState.Transforming: + enum.ConstructVisualsState.Sprite: + True: { state: make_juggernaut_cult } + False: { state: juggernaut } + enum.ConstructVisualsState.Glow: + True: { visible: false } + False: { visible: true } + +- type: entity + parent: ConstructBase + id: ConstructArtificer + name: artificer + description: A bulbous construct dedicated to building and maintaining the Cult of Nar'Sie's armies. + components: + - type: Sprite + layers: + - state: artificer + map: [ "enum.ConstructVisualsState.Sprite" ] + - state: glow_artificer_cult + map: [ "enum.ConstructVisualsState.Glow" ] + - type: Construct + actions: + - ActionSummonCultFloor + - ActionLesserConstruction + - ActionSummonCultDoor + - ActionSummonSoulStone + - type: MovementIgnoreGravity + - type: MeleeWeapon + hidden: true + angle: 30 + animation: WeaponArcPunch + attackRate: 1 + damage: + types: + Blunt: 5 + Structural: 60 + - type: GenericVisualizer + visuals: + enum.ConstructVisualsState.Transforming: + enum.ConstructVisualsState.Sprite: + True: { state: make_artificer_cult } + False: { state: artificer } + enum.ConstructVisualsState.Glow: + True: { visible: false } + False: { visible: true } + - type: Pullable + +- type: entity + parent: ConstructBase + id: ConstructWraith + name: wraith + description: A wicked, clawed shell constructed to assassinate enemies and sow chaos behind enemy lines. + components: + - type: Sprite + layers: + - state: wraith + map: [ "enum.ConstructVisualsState.Sprite" ] + - state: glow_wraith_cult + map: [ "enum.ConstructVisualsState.Glow" ] + - type: MobThresholds + thresholds: + 0: Alive + 65: Dead + - type: Construct + actions: + - ActionPhaseShift + - type: MovementIgnoreGravity + - type: MovementSpeedModifier + baseWalkSpeed: 4 + baseSprintSpeed: 4 + - type: MeleeWeapon + hidden: true + angle: 30 + animation: WeaponArcSmash + attackRate: 1 + damage: + types: + Structural: 40 + Blunt: 20 + - type: GenericVisualizer + visuals: + enum.ConstructVisualsState.Transforming: + enum.ConstructVisualsState.Sprite: + True: { state: make_wraith_cult } + False: { state: wraith } + enum.ConstructVisualsState.Glow: + True: { visible: false } + False: { visible: true } + - type: StatusEffects + allowed: + - PhaseShifted + - type: Pullable + +- type: entity + id: ConstructHarvester + parent: ConstructBase + name: harvester + description: A long, thin construct built to herald Nar'Sie's rise. It'll be all over soon. + components: + - type: Sprite + layers: + - state: harvester + map: [ "enum.ConstructVisualsState.Sprite" ] + - state: glow_harvester_cult + map: [ "enum.ConstructVisualsState.Glow" ] + - type: MobThresholds + thresholds: + 0: Alive + 65: Dead + - type: Construct + - type: MovementSpeedModifier + baseWalkSpeed: 5 + baseSprintSpeed: 5 + - type: MeleeWeapon + hidden: true + angle: 30 + animation: WeaponArcSmash + attackRate: 1 + damage: + types: + Structural: 40 + Blunt: 50 + +- type: entity + id: ShadeCult + parent: ConstructBase # It's not technically a construct but it code wise? it is. + name: shade + description: A bound spirit. + components: + - type: Sprite + state: shade_cult + - type: MobThresholds + thresholds: + 0: Alive + 40: Dead + - type: MeleeWeapon + hidden: true + angle: 30 + animation: WeaponArcSmash + attackRate: 1 + damage: + types: + Blunt: 10 + - type: MovementSpeedModifier + baseWalkSpeed: 5.5 + baseSprintSpeed: 5.5 + +- type: entity + id: ConstructJuggernautHoly + parent: ConstructJuggernaut + name: purified juggernaut + components: + - type: Sprite + layers: + - state: juggernaut + map: [ "enum.ConstructVisualsState.Sprite" ] + - state: glow_juggernaut_holy + map: [ "enum.ConstructVisualsState.Glow" ] + - type: GenericVisualizer + visuals: + enum.ConstructVisualsState.Transforming: + enum.ConstructVisualsState.Sprite: + True: { state: make_juggernaut_holy } + False: { state: juggernaut } + enum.ConstructVisualsState.Glow: + True: { visible: false } + False: { visible: true } + +- type: entity + id: ConstructArtificerHoly + parent: ConstructArtificer + name: purified artificer + description: A bulbous construct dedicated to building and maintaining the holy armies. + components: + - type: Sprite + layers: + - state: artificer + map: [ "enum.ConstructVisualsState.Sprite" ] + - state: glow_artificer_holy + map: [ "enum.ConstructVisualsState.Glow" ] + - type: Construct + actions: + - ActionSummonSoulStoneHoly + - type: GenericVisualizer + visuals: + enum.ConstructVisualsState.Transforming: + enum.ConstructVisualsState.Sprite: + True: { state: make_artificer_holy } + False: { state: artificer } + enum.ConstructVisualsState.Glow: + True: { visible: false } + False: { visible: true } + +- type: entity + id: ConstructWraithHoly + parent: ConstructWraith + name: purified wraith + components: + - type: Sprite + layers: + - state: wraith + map: [ "enum.ConstructVisualsState.Sprite" ] + - state: glow_wraith_holy + map: [ "enum.ConstructVisualsState.Glow" ] + - type: GenericVisualizer + visuals: + enum.ConstructVisualsState.Transforming: + enum.ConstructVisualsState.Sprite: + True: { state: make_wraith_holy } + False: { state: wraith } + enum.ConstructVisualsState.Glow: + True: { visible: false } + False: { visible: true } + +- type: entity + id: ShadeHoly + parent: ShadeCult + name: purified shade + components: + - type: Sprite + state: shade_holy diff --git a/Resources/Prototypes/WhiteDream/Entities/Objects/Cult/souls_shards.yml b/Resources/Prototypes/WhiteDream/Entities/Objects/Cult/souls_shards.yml new file mode 100644 index 00000000000..ad3b2a84728 --- /dev/null +++ b/Resources/Prototypes/WhiteDream/Entities/Objects/Cult/souls_shards.yml @@ -0,0 +1,74 @@ +- type: entity + name: soul shard + description: Mysterious glowing shard. + parent: BaseItem + id: SoulShard + components: + - type: LagCompensation + - type: Sprite + sprite: WhiteDream/BloodCult/Entities/Items/soul_stone.rsi + layers: + - state: soul_stone + map: [ "enum.SoulShardVisualState.Sprite" ] + - state: soul_stone_glow + map: [ "enum.SoulShardVisualState.Glow" ] + visible: false + - type: MindContainer + - type: Examiner + skipChecks: true + - type: PointLight + color: Red + radius: 2 + softness: 1 + enabled: false + - type: Appearance + - type: GenericVisualizer + visuals: + enum.SoulShardVisualState.HasMind: + enum.SoulShardVisualState.Glow: + True: { visible: true } + False: { visible: false } + enum.SoulShardVisualState.Blessed: + enum.SoulShardVisualState.Sprite: + True: { state: "soul_stone_blessed" } + False: { state: "soul_stone" } + - type: Speech + - type: IsDeadIC + - type: SoulShard + - type: LanguageKnowledge + speaks: + - TauCetiBasic + - Eldritch + understands: + - TauCetiBasic + - Eldritch + +- type: entity + parent: SoulShard + id: SoulShardGhost + suffix: Ghost Role + components: + - type: GhostRole + allowMovement: true + name: ghost-role-information-soul-shard-name + description: ghost-role-information-soul-shard-description + rules: ghost-role-information-soul-shard-rules + - type: GhostTakeoverAvailable + +- type: entity + parent: SoulShard + id: SoulShardHoly + components: + - type: SoulShard + isBlessed: true + +- type: entity + parent: SoulShardHoly + id: SoulShardHolyGhost + components: + - type: GhostRole + allowMovement: true + name: ghost-role-information-soul-shard-holy-name + description: ghost-role-information-soul-shard-holy-description + rules: ghost-role-information-soul-shard-holy-rules + - type: GhostTakeoverAvailable diff --git a/Resources/Prototypes/WhiteDream/Entities/Objects/Items/cult.yml b/Resources/Prototypes/WhiteDream/Entities/Objects/Items/cult.yml new file mode 100644 index 00000000000..e85ee49f20e --- /dev/null +++ b/Resources/Prototypes/WhiteDream/Entities/Objects/Items/cult.yml @@ -0,0 +1,200 @@ +- type: entity + parent: BaseItem + id: ShuttleCurse + name: cursed orb + description: You peer within this smokey orb and glimpse terrible fates befalling the emergency escape shuttle. + components: + - type: Sprite + sprite: WhiteDream/BloodCult/Entities/Items/shuttle_curse.rsi + state: icon + - type: CultItem + - type: ShuttleCurse + +- type: entity + parent: BaseItem + id: WhetstoneCult + name: eldritch whetstone + description: A block, empowered by dark magic. Sharp weapons will be enhanced when used on the stone. + components: + - type: Sprite + sprite: WhiteDream/BloodCult/Entities/Items/whetstone_cult.rsi + layers: + - state: icon + map: [ "enum.GenericCultVisuals.Layer" ] + - type: CultItem + - type: Whetstone + whitelist: + components: + - Sharp + blacklist: + components: + - EnergySword + - type: Appearance + - type: GenericVisualizer + visuals: + enum.GenericCultVisuals.State: + enum.GenericCultVisuals.Layer: + True: { state: icon } + False: { state: icon_off } + +- type: entity + parent: BaseItem + id: VeilShifter + name: veil shifter + description: This relic instantly teleports you, and anything you're pulling, forward by a moderate distance. + components: + - type: Sprite + sprite: WhiteDream/BloodCult/Entities/Items/veil_shifter.rsi + layers: + - state: icon + map: [ "enum.GenericCultVisuals.Layer" ] + - type: CultItem + - type: VeilShifter + - type: Appearance + - type: GenericVisualizer + visuals: + enum.GenericCultVisuals.State: + enum.GenericCultVisuals.Layer: + True: { state: icon } + False: { state: icon_off } + +- type: entity + parent: BaseItem + id: VoidTorch + name: void torch + description: Used by veteran cultists to instantly transport items to their needful brethren + components: + - type: Sprite + sprite: WhiteDream/BloodCult/Entities/Items/void_torch.rsi + layers: + - state: icon + map: [ "enum.GenericCultVisuals.Layer" ] + - type: CultItem + - type: VoidTorch + - type: IgnitionSource + temperature: 400 + ignited: false + - type: PointLight + enabled: false + color: "#e33119" + radius: 1.0 + energy: 5.0 + netsync: false + - 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 + maxDuration: 8.0 + startValue: 1.0 + endValue: 6.0 + - !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 + maxDuration: 4.0 + startValue: 6.0 + endValue: 1.0 + - type: UserInterface + interfaces: + enum.ListViewSelectorUiKey.Key: + type: ListViewSelectorBUI + - type: Appearance + - type: GenericVisualizer + visuals: + enum.GenericCultVisuals.State: + enum.GenericCultVisuals.Layer: + True: { state: icon } + False: { state: icon_off } + - type: Tag + tags: + - Torch + +- type: entity + parent: BaseItem + id: ShadowShackles + name: shadow shackles + description: Shackles that bind the wrists with sinister magic. + components: + - type: Item + size: Small + storedRotation: 90 + - type: Handcuff + breakoutTime: 5 + breakOnRemove: true + cuffedRSI: Objects/Misc/cablecuffs.rsi + bodyIconState: body-overlay + color: black + - type: Sprite + sprite: WhiteDream/BloodCult/actions.rsi + state: cuff + +- type: entity + parent: BaseItem + id: MirrorShieldCult + name: mirror shield + description: An infamous shield used by Nar'Sien sects to confuse and disorient their enemies. Its edges are weighted for use as a throwing weapon - capable of disabling multiple foes with preternatural accuracy. + components: + - type: Sprite + sprite: WhiteDream/BloodCult/Entities/Items/mirror_shield.rsi + state: icon + - type: Item + size: Ginormous + - type: CultItem + - type: StunOnCollide + blacklist: + components: + - BloodCultist + - type: Reflect + reflectProb: 0.75 + innate: true + reflects: + - Energy + - type: Blocking + passiveBlockModifier: + coefficients: + Blunt: 0.8 + Slash: 0.8 + Piercing: 0.8 + Heat: 0.8 + activeBlockModifier: + coefficients: + Blunt: 0.8 + Slash: 0.8 + Piercing: 0.8 + Heat: 0.8 + flatReductions: + Blunt: 1 + Slash: 1 + Piercing: 1 + Heat: 1 + blockSound: !type:SoundPathSpecifier + path: /Audio/Effects/glass_step.ogg + - type: Damageable + damageContainer: Shield + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 100 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: GlassBreak diff --git a/Resources/Prototypes/WhiteDream/Entities/Objects/Materials/cult.yml b/Resources/Prototypes/WhiteDream/Entities/Objects/Materials/cult.yml new file mode 100644 index 00000000000..0f80d80c9e2 --- /dev/null +++ b/Resources/Prototypes/WhiteDream/Entities/Objects/Materials/cult.yml @@ -0,0 +1,78 @@ +- type: entity + parent: SheetOtherBase + id: RunedMetal + name: runic metal + description: An unusual sheet of metal with a pulsating rune. + suffix: Full + components: + - type: Sprite + sprite: WhiteDream/BloodCult/Entities/runic_metal.rsi + layers: + - state: runic_3 + map: [ "base" ] + - type: Tag + tags: + - Sheet + - type: Material + - type: PhysicalComposition + materialComposition: + RunedMetal: 100 + - type: Stack + stackType: RunedMetalSheets + baseLayer: base + layerStates: + - runic + - runic_2 + - runic_3 + - type: Appearance + - type: Item + size: Small + - type: CultItem + - type: UserInterface + interfaces: + enum.RadialSelectorUiKey.Key: + type: RadialSelectorMenuBUI + - type: ActivatableUI + inHandsOnly: true + key: enum.RadialSelectorUiKey.Key + userWhitelist: + components: + - BloodCultist + - type: ShortConstruction + entries: + - prototype: CultPylon + - prototype: CultFactoryArchives + - prototype: CultFactoryForge + - prototype: CultFactoryAltar + - prototype: CultGirder + - prototype: CultDoor + +- type: entity + parent: RunedMetal + id: RunedMetal1 + suffix: Single + components: + - type: Sprite + state: runic + - type: Stack + count: 1 + +- type: entity + parent: RunedMetal + id: RunedMetal4 + suffix: 4 + components: + - type: Sprite + state: runic + - type: Stack + count: 4 + +- type: entity + parent: RunedMetal + id: RunedMetal20 + suffix: 20 + components: + - type: Sprite + state: runic + - type: Stack + count: 20 diff --git a/Resources/Prototypes/WhiteDream/Entities/Objects/Runes/cult.yml b/Resources/Prototypes/WhiteDream/Entities/Objects/Runes/cult.yml new file mode 100644 index 00000000000..9580d2b224d --- /dev/null +++ b/Resources/Prototypes/WhiteDream/Entities/Objects/Runes/cult.yml @@ -0,0 +1,179 @@ +- type: entity + id: CultRuneBase + name: based rune + abstract: true + placement: + mode: SnapgridCenter + components: + - type: Fixtures + fixtures: + rune: + shape: + !type:PhysShapeAabb + bounds: "-0.4,-0.4,0.4,0.4" + hard: false + mask: + - ItemMask + layer: + - SlipLayer + - type: Physics + - type: Clickable + - type: Sprite + sprite: WhiteDream/BloodCult/Entities/Runes/regular.rsi + state: "offering" + - type: CultRuneBase + - type: Appearance + +- type: entity + parent: CultRuneBase + id: CultRuneOffering + name: rune of offering + description: Offers a noncultist above it to Nar'Sie, either converting them or sacrificing them. One cultists required for dead sacrifice, two for conversion and three for living sacrifices and sacrifice targets. + components: + - type: Sprite + state: "offering" + - type: CultRuneBase + invokePhrase: "Mah'weyh pleggh at e'ntrath!" + - type: CultRuneOffering + +- type: entity + parent: CultRuneBase + id: CultRuneEmpower + name: rune of empower + description: Allows cultists to prepare greater amounts of blood magic at far less of a cost. + components: + - type: Sprite + state: strength + - type: CultRuneBase + invokePhrase: "Qu'laris ver'don, thal'sorin mik'thar!" + - type: CultRuneEmpower + +- type: entity + parent: CultRuneBase + id: CultRuneTeleport + name: rune of teleportation + description: Warps everything above it to another chosen teleport rune + components: + - type: Sprite + state: teleport + - type: CultRuneBase + invokePhrase: "Sas'so c'arta forbici!" + - type: CultRuneTeleport + - type: UserInterface + interfaces: + enum.ListViewSelectorUiKey.Key: + type: ListViewSelectorBUI + enum.NameSelectorUiKey.Key: + type: NameSelectorBUI + +- type: entity + parent: CultRuneBase + id: CultRuneRevive + name: rune of rejuvenation + description: Requires a dead, mindless, or inactive cultist placed upon the rune. Provided there have been sufficient sacrifices, they will be given a new life. + components: + - type: Sprite + state: revive + - type: CultRuneBase + invokePhrase: "Pasnar val'keriam usinar. Savrae ines amutan. Yam'toth remium il'tarat!" + - type: CultRuneRevive + +- type: entity + parent: CultRuneBase + id: CultRuneBarrier + name: rune of barrier + description: When invoked, makes a temporary invisible wall to block passage. + components: + - type: Sprite + state: barrier + - type: CultRuneBase + invokePhrase: "Khari'd! Eske'te tannin!" + runeActivationRange: 1.5 + activationDamage: + types: + Slash: 5 + - type: CultRuneBarrier + +- type: entity + parent: CultRuneBase + id: CultRuneSummoning + name: rune of summoning + description: Summons a single cultist to the rune. Requires 2 invokers. + components: + - type: Sprite + state: summon + - type: CultRuneBase + requiredInvokers: 3 + invokePhrase: "N'ath reth sh'yro eth d'rekkathnor!" + - type: CultRuneSummon + - type: UserInterface + interfaces: + enum.ListViewSelectorUiKey.Key: + type: ListViewSelectorBUI + +- type: entity + parent: CultRuneBase + id: CultRuneBloodBoil + name: rune of boiling blood + description: Boils the blood of non-believers who can see the rune, rapidly dealing extreme amounts of damage. Requires 3 invokers. + components: + - type: Sprite + state: blood_boil + - type: CultRuneBase + invokePhrase: "N'Dedo ol'btoh!" + requiredInvokers: 3 + activationDamage: + types: + Slash: 35 + - type: CultRuneBloodBoil + +- type: entity + parent: CultRuneBase + id: CultRuneApocalypse + name: rune of apocalypse + description: Harbinger of the end times. Grows in strength with the cult's desperation - but at the risk of... side effects. Requires 3 invokers. + components: + - type: Sprite + sprite: WhiteDream/BloodCult/Entities/Runes/apocalypse.rsi + layers: + - state: icon + map: [ "enum.ApocalypseRuneVisuals.Layer" ] + - type: CultRuneBase + requiredInvokers: 3 + invokePhrase: "Ta'gh fara'qha fel d'amar det!" + triggerRendingMarkers: true + canBeErased: false + activationDamage: + types: + Slash: 35 + - type: CultRuneApocalypse + - type: GenericVisualizer + visuals: + enum.ApocalypseRuneVisuals.Used: + enum.ApocalypseRuneVisuals.Layer: + True: { color: "#696969" } + +- type: entity + parent: CultRuneBase + id: CultRuneDimensionalRending + name: rune of dimensional rending + description: Tears apart dimensional barriers, calling forth the Geometer. Requires 10 invokers + components: + - type: Sprite + sprite: WhiteDream/BloodCult/Entities/Runes/dimensional_rending.rsi + layers: + - state: rune + map: [ "enum.RendingRuneVisuals.Layer" ] + - type: CultRuneBase + requiredInvokers: 10 + invokeChatType: Speak + invokePhrase: "TOK-LYR RQA-NAP G'OLT-ULOFT!!!" + triggerRendingMarkers: true + canBeErased: false + - type: CultRuneRending + - type: GenericVisualizer + visuals: + enum.RendingRuneVisuals.Active: + enum.RendingRuneVisuals.Layer: + True: { state: "rune_animated" } + False: { state: "rune"} diff --git a/Resources/Prototypes/WhiteDream/Entities/Objects/Structures/Cult/airlock.yml b/Resources/Prototypes/WhiteDream/Entities/Objects/Structures/Cult/airlock.yml new file mode 100644 index 00000000000..188649d9aa8 --- /dev/null +++ b/Resources/Prototypes/WhiteDream/Entities/Objects/Structures/Cult/airlock.yml @@ -0,0 +1,54 @@ +- type: entity + id: CultDoor + parent: BaseMaterialDoor + name: runed door + description: It opens, it closes, and maybe crushes you. This one has a strange glowing rune on it. + placement: + mode: SnapgridCenter + components: + - type: Airtight + fixVacuum: true + noAirWhenFullyAirBlocked: false + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 200 + behaviors: + - !type:DoActsBehavior + acts: ["Destruction"] + - type: Door + bumpOpen: true + occludes: false + crushDamage: + types: + Blunt: 15 + openSound: + path: /Audio/Effects/stonedoor_openclose.ogg + closeSound: + path: /Audio/Effects/stonedoor_openclose.ogg + - type: Sprite + sprite: WhiteDream/BloodCult/Entities/Structures/cult_airlock.rsi + layers: + - state: closed + map: ["enum.DoorVisualLayers.Base"] + - type: MeleeSound + soundGroups: + Brute: + collection: GlassSmash + - type: Physics + bodyType: Static + - type: Occluder + enabled: false + - type: RadiationBlocker + resistance: 2 + - type: RCDDeconstructable + deconstructable: false + - type: RunedDoor + - type: Repulse + - type: RepulseOnTouch + - type: PlacementReplacement + key: walls + - type: Construction + graph: CultDoor + node: door diff --git a/Resources/Prototypes/WhiteDream/Entities/Objects/Structures/Cult/barrier.yml b/Resources/Prototypes/WhiteDream/Entities/Objects/Structures/Cult/barrier.yml new file mode 100644 index 00000000000..0fb137a40dc --- /dev/null +++ b/Resources/Prototypes/WhiteDream/Entities/Objects/Structures/Cult/barrier.yml @@ -0,0 +1,58 @@ +- type: entity + name: cult barrier + description: Can be destroyed with ritual dagger. + id: BloodCultBarrier + parent: BaseStructure + components: + - type: Transform + noRot: true + - type: Sprite + layers: + - sprite: WhiteDream/BloodCult/Entities/Structures/barrier.rsi + state: barrier + shader: unshaded + - type: Appearance + - type: InteractionOutline + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.45 + density: 75 + mask: + - MachineMask + layer: + - WallLayer + - type: Damageable + damageContainer: StructuralInorganic + damageModifierSet: Metallic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 200 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: PointLight + enabled: false + radius: 3 + color: red + - type: BloodCultBarrier + - type: Airtight + noAirWhenFullyAirBlocked: false + +- type: entity + id: WallForceCult + parent: WallForce + name: glowing wall + description: An unholy shield that blocks all attacks. + components: + - type: Sprite + sprite: WhiteDream/BloodCult/Entities/Structures/cult_shield.rsi + state: icon + - type: Icon + sprite: WhiteDream/BloodCult/Entities/Structures/cult_shield.rsi + state: icon + - type: Dispellable diff --git a/Resources/Prototypes/WhiteDream/Entities/Objects/Structures/Cult/factories.yml b/Resources/Prototypes/WhiteDream/Entities/Objects/Structures/Cult/factories.yml new file mode 100644 index 00000000000..052d92158d2 --- /dev/null +++ b/Resources/Prototypes/WhiteDream/Entities/Objects/Structures/Cult/factories.yml @@ -0,0 +1,109 @@ +- type: entity + id: CultFactoryBase + parent: BaseStructure + name: base cult factory + description: You can make things here. + abstract: true + components: + - type: Sprite + sprite: WhiteDream/BloodCult/Entities/Structures/altar.rsi + layers: + - state: icon + map: [ "enum.GenericCultVisuals.Layer" ] + - type: Transform + noRot: true + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.1,-0.3,0.1,0.3" + density: 55 + mask: + - TableMask + layer: + - TableLayer + - type: InteractionOutline + - type: Damageable + damageContainer: StructuralInorganic + damageModifierSet: Metallic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 100 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + - type: Appearance + - type: TimedFactory + - type: UserInterface + interfaces: + enum.RadialSelectorUiKey.Key: + type: RadialSelectorMenuBUI + - type: ActivatableUI + key: enum.RadialSelectorUiKey.Key + userWhitelist: + components: + - BloodCultist + - type: GenericVisualizer + visuals: + enum.GenericCultVisuals.State: + enum.GenericCultVisuals.Layer: + True: { state: "icon" } + False: { state: "icon_off" } + +- type: entity + id: CultFactoryAltar + parent: CultFactoryBase + name: altar + description: A bloodstained altar dedicated to Nar'Sie. + components: + - type: Sprite + sprite: WhiteDream/BloodCult/Entities/Structures/altar.rsi + - type: TimedFactory + entries: + - prototype: ConstructShell + - prototype: WhetstoneCult + - type: Construction + graph: CultFactoryAltar + node: altar + +- type: entity + id: CultFactoryForge + parent: CultFactoryBase + name: daemon forge + description: A forge used in crafting the unholy weapons used by the armies of Nar'Sie. + components: + - type: Sprite + sprite: WhiteDream/BloodCult/Entities/Structures/forge.rsi + - type: TimedFactory + entries: + - prototype: MirrorShieldCult + - prototype: EldritchLongsword + - prototype: ClothingOuterCultArmor + - prototype: ClothingOuterRobesCultTrue + - type: Construction + graph: CultFactoryForge + node: forge + +- type: entity + id: CultFactoryArchives + parent: CultFactoryBase + name: archives + description: A desk covered in arcane manuscripts and tomes in unknown languages. Looking at the text makes your skin crawl. + components: + - type: Sprite + sprite: WhiteDream/BloodCult/Entities/Structures/archives.rsi + - type: TimedFactory + entries: + - prototype: ShuttleCurse + - prototype: ClothingEyeCultBlindfold + - prototype: VeilShifter + - prototype: VoidTorch + - type: Construction + graph: CultFactoryArchives + node: archives diff --git a/Resources/Prototypes/WhiteDream/Entities/Objects/Structures/Cult/pylon.yml b/Resources/Prototypes/WhiteDream/Entities/Objects/Structures/Cult/pylon.yml new file mode 100644 index 00000000000..8068ad1ef92 --- /dev/null +++ b/Resources/Prototypes/WhiteDream/Entities/Objects/Structures/Cult/pylon.yml @@ -0,0 +1,71 @@ +- type: entity + id: CultPylon + parent: BaseStructure + name: pylon + description: A floating crystal that slowly heals those faithful to Nar'Sie. + components: + - type: Transform + noRot: true + - type: Fixtures + fixtures: + pylonFix: + shape: + !type:PhysShapeAabb + bounds: "-0.1,-0.3,0.1,0.3" + density: 190 + mask: + - TabletopMachineMask + layer: + - TabletopMachineLayer + - type: Sprite + noRot: true + sprite: WhiteDream/BloodCult/Entities/Structures/pylon.rsi + layers: + - state: icon + map: [ "enum.PylonVisuals.Layer" ] + - type: InteractionOutline + - type: Damageable + damageContainer: StructuralInorganic + damageModifierSet: Glass + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 50 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: GlassBreak + - !type:SpawnEntitiesBehavior + spawn: + ShardGlass: + min: 1 + max: 2 + - type: Appearance + - type: Pylon + healing: + groups: + Brute: -20 + Burn: -20 + Toxin: -10 + Genetic: -5 + Airloss: -20 + damageOnInteract: + groups: + Burn: 5 + - type: PointLight + color: "#FF0000" + radius: 2 + energy: 2 + enabled: true + - type: GenericVisualizer + visuals: + enum.PylonVisuals.Activated: + enum.PylonVisuals.Layer: + True: { state: "icon" } + False: { state: "icon_off" } + - type: Construction + graph: CultPylon + node: pylon diff --git a/Resources/Prototypes/WhiteDream/Entities/Objects/Structures/Cult/walls.yml b/Resources/Prototypes/WhiteDream/Entities/Objects/Structures/Cult/walls.yml new file mode 100644 index 00000000000..408eeb21fab --- /dev/null +++ b/Resources/Prototypes/WhiteDream/Entities/Objects/Structures/Cult/walls.yml @@ -0,0 +1,34 @@ +- type: entity + id: CultGirder + parent: Girder + name: runed girder + description: Framework made of a strange and shockingly cold metal. It doesn't seem to have any bolts + components: + - type: Construction + graph: CultGirder + node: girder + - type: Sprite + sprite: WhiteDream/BloodCult/Entities/Structures/cult_girder.rsi + state: icon + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 200 + behaviors: #excess damage, don't spawn entities. + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 50 + behaviors: + - !type:SpawnEntitiesBehavior + spawn: + SheetSteel1: + min: 1 + max: 1 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: MetalBreak diff --git a/Resources/Prototypes/WhiteDream/Entities/Objects/Weapons/Guns/Projectiles/magic.yml b/Resources/Prototypes/WhiteDream/Entities/Objects/Weapons/Guns/Projectiles/magic.yml new file mode 100644 index 00000000000..c4271eeb95f --- /dev/null +++ b/Resources/Prototypes/WhiteDream/Entities/Objects/Weapons/Guns/Projectiles/magic.yml @@ -0,0 +1,21 @@ +- type: entity + id: BloodBoilProjectile + parent: BaseBullet + name: Concentrated Blood + description: Oh no. + categories: [ HideSpawnMenu ] + components: + - type: Sprite + sprite: WhiteDream/BloodCult/Effects/blood_boil.rsi + state: bullet + - type: Projectile + damage: + groups: + Burn: 10 + Brute: 10 + - type: PointLight + enabled: true + color: "#ff4300" + radius: 2.0 + energy: 7.0 + - type: BloodBoilProjectile diff --git a/Resources/Prototypes/WhiteDream/Entities/Objects/Weapons/Melee/cult.yml b/Resources/Prototypes/WhiteDream/Entities/Objects/Weapons/Melee/cult.yml new file mode 100644 index 00000000000..b27e3454213 --- /dev/null +++ b/Resources/Prototypes/WhiteDream/Entities/Objects/Weapons/Melee/cult.yml @@ -0,0 +1,171 @@ +- type: entity + name: ritual dagger + parent: BaseKnife + id: RitualDagger + description: A strange dagger used by sinister groups for rituals and sacrifices. + components: + - type: Sprite + sprite: Objects/Weapons/Melee/cult_dagger.rsi + state: icon + - type: MeleeWeapon # TODO: It should have armor piercing effect (around 50%?) but we have no such system yet. Sucks. + wideAnimationRotation: -135 + maxTargets: 1 + heavyRateModifier: 0.95 + heavyStaminaCost: 5 + damage: + types: + Piercing: 15 + - type: DamageOtherOnHit + staminaCost: 5 + - type: EmbeddableProjectile + - type: EmbedPassiveDamage + - type: ThrowingAngle + angle: 225 + - type: Clothing + sprite: Objects/Weapons/Melee/cult_dagger.rsi + slots: + - back + - type: DisarmMalus + - type: CultItem + - type: RuneDrawer + - type: ActivatableUI + key: enum.RuneDrawerBuiKey.Key + inHandsOnly: true + userWhitelist: + components: + - BloodCultist + - type: UserInterface + interfaces: + enum.RuneDrawerBuiKey.Key: + type: RuneDrawerBUI + +- type: entity + name: eldritch longsword + parent: BaseItem + id: EldritchLongsword + description: A sword humming with unholy energy. It glows with a dim red light. + components: + - type: Sharp + - type: Sprite + sprite: WhiteDream/BloodCult/Entities/Items/Weapons/cult_blade.rsi + state: icon + - type: MeleeWeapon + wideAnimationRotation: -135 + attackRate: 1.3333 + range: 1.65 + damage: + types: + Slash: 24 + heavyDamageBaseModifier: 1.2 + heavyStaminaCost: 10 + maxTargets: 3 + angle: 90 + soundHit: + path: /Audio/Weapons/bladeslice.ogg + - type: DamageOtherOnHit + staminaCost: 8 + - type: EmbeddableProjectile + - type: EmbedPassiveDamage + - type: ThrowingAngle + angle: 225 + - type: Item + size: Normal + - type: Clothing + slots: + - back + - type: DisarmMalus + - type: CultItem + - type: PointLight + color: Red + radius: 2 + softness: 1 + +- type: entity + parent: BaseItem + id: BloodSpear + name: blood halberd + description: A sickening spear composed entirely of crystallized blood. + components: + - type: Sprite + sprite: WhiteDream/BloodCult/Entities/Items/Weapons/cult_spear.rsi + state: icon + - type: EmbeddableProjectile + offset: 0.15,0.15 + - type: EmbedPassiveDamage + - type: ThrowingAngle + angle: 225 + - type: Fixtures + fixtures: + fix1: + shape: !type:PolygonShape + vertices: + - -0.20,-0.10 + - -0.10,-0.20 + - 0.40,0.30 + - 0.30,0.40 + density: 20 + mask: + - BulletImpassable + restitution: 0.3 + friction: 0.2 + - type: Sharp + - type: MeleeWeapon + wideAnimationRotation: -135 + damage: + types: + Piercing: 26 + angle: 0 + animation: WeaponArcThrust + soundHit: + path: /Audio/Weapons/bladeslice.ogg + range: 2 + attackRate: 1.42 + - type: DamageOtherOnHit + damage: + types: + Piercing: 40 + staminaCost: 18 + - type: Item + sprite: WhiteDream/BloodCult/Entities/Items/Weapons/cult_spear.rsi + storedRotation: 44 + size: Huge + shape: + - 0,0,5,0 + - type: Clothing + slots: + - back + - suitStorage + - type: Wieldable + - type: IncreaseDamageOnWield + damage: + types: + Piercing: 10 + - type: UseDelay + - type: DisarmMalus + - type: CultItem + - type: BloodSpear + +- type: entity + parent: BaseItem + id: BloodRitesAura + name: blood rite aura + description: Absorbs blood from anything you touch. Touching cultists and constructs can heal them. Use in-hand to cast an advanced rite. + components: + - type: Sprite + sprite: WhiteDream/BloodCult/Entities/Items/rites.rsi + state: icon + - type: MeleeWeapon + damage: + types: + Blunt: 0 + heavyStaminaCost: 0 + maxTargets: 1 + - type: BloodRitesAura + - type: UserInterface + interfaces: + enum.BloodRitesUiKey.Key: + type: BloodRitesUi + - type: ActivatableUI + key: enum.BloodRitesUiKey.Key + inHandsOnly: true + requireActiveHand: false diff --git a/Resources/Prototypes/WhiteDream/Entities/Objects/Weapons/Projectiles/cult.yml b/Resources/Prototypes/WhiteDream/Entities/Objects/Weapons/Projectiles/cult.yml new file mode 100644 index 00000000000..69a007b90e3 --- /dev/null +++ b/Resources/Prototypes/WhiteDream/Entities/Objects/Weapons/Projectiles/cult.yml @@ -0,0 +1,20 @@ +- type: entity + id: ProjectileGauntlet + name: gauntlet + description: Oh no. + parent: BaseBulletTrigger + categories: [ HideSpawnMenu ] + components: + - type: PointLight + color: Red + radius: 2.0 + energy: 5.0 + - type: Projectile + ignoreResistances: true + damage: + types: + Blunt: 50 + - type: Sprite + sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi + layers: + - state: gauntlet_echo diff --git a/Resources/Prototypes/WhiteDream/Entities/Objects/Weapons/Throwable/cult.yml b/Resources/Prototypes/WhiteDream/Entities/Objects/Weapons/Throwable/cult.yml new file mode 100644 index 00000000000..05f9f8506bc --- /dev/null +++ b/Resources/Prototypes/WhiteDream/Entities/Objects/Weapons/Throwable/cult.yml @@ -0,0 +1,22 @@ +- type: entity + parent: [BaseBola] + id: CultBola + name: nar'sien bola + description: A strong bola, bound with dark magic that allows it to pass harmlessly through Nar'Sien cultists. Throw it to trip and slow your victim. + components: + - type: Sprite + sprite: WhiteDream/BloodCult/Entities/Items/bola.rsi + state: icon + - type: CultItem + - type: Ensnaring + freeTime: 2.0 + breakoutTime: 3.5 + walkSpeed: 0.7 + sprintSpeed: 0.7 + staminaDamage: 55 + canThrowTrigger: true + canMoveBreakout: true + destroyOnRemove: true + ignoredTargets: + components: + - BloodCultist diff --git a/Resources/Prototypes/WhiteDream/Entities/markers.yml b/Resources/Prototypes/WhiteDream/Entities/markers.yml new file mode 100644 index 00000000000..fce2225bc78 --- /dev/null +++ b/Resources/Prototypes/WhiteDream/Entities/markers.yml @@ -0,0 +1,13 @@ +- type: entity + id: RendingRunePlacementMarker + name: rending rune placement marker + description: Marker for rending rune placement. 5 should be enough for each map. + parent: MarkerBase + components: + - type: RendingRunePlacementMarker + - type: Sprite + sprite: Markers/jobs.rsi + layers: + - state: green + - sprite: WhiteDream/BloodCult/Entities/Runes/regular.rsi + state: revive diff --git a/Resources/Prototypes/WhiteDream/GameRules/roundstart.yml b/Resources/Prototypes/WhiteDream/GameRules/roundstart.yml new file mode 100644 index 00000000000..0ffe0220552 --- /dev/null +++ b/Resources/Prototypes/WhiteDream/GameRules/roundstart.yml @@ -0,0 +1,25 @@ +- type: entity + id: BloodCult + parent: BaseGameRule + categories: [ HideSpawnMenu ] + components: + - type: GameRule + minPlayers: 30 + - type: BloodCultRule + - type: AntagSelection + definitions: + - prefRoles: [ BloodCultist ] + max: 4 + min: 2 + playerRatio: 15 + briefing: + text: blood-cult-role-greeting + color: Red + sound: "/Audio/WhiteDream/BloodCult/blood_cult_greeting.ogg" + startingGear: BloodCultistGear + components: + - type: BloodCultist + - type: BloodCultSpellsHolder + mindComponents: + - type: BloodCultistRole + prototype: BloodCultist diff --git a/Resources/Prototypes/WhiteDream/Objectives/cult.yml b/Resources/Prototypes/WhiteDream/Objectives/cult.yml new file mode 100644 index 00000000000..835807bfce6 --- /dev/null +++ b/Resources/Prototypes/WhiteDream/Objectives/cult.yml @@ -0,0 +1,19 @@ +- type: entity + parent: BaseObjective + id: KillTargetCultObjective + description: This fool person should be sacrificed in the glory of our Goddess. + categories: [ HideSpawnMenu ] + components: + - type: Objective + issuer: The Geometer of Blood + unique: true + difficulty: 3 + icon: + sprite: Objects/Weapons/Melee/cult_dagger.rsi + state: icon + - type: RoleRequirement + roles: + components: + - BloodCultistRole + - type: KillTargetCult + title: objective-condition-kill-person-title diff --git a/Resources/Prototypes/WhiteDream/Pool/cult_powers_pool.yml b/Resources/Prototypes/WhiteDream/Pool/cult_powers_pool.yml new file mode 100644 index 00000000000..6da36a41f0c --- /dev/null +++ b/Resources/Prototypes/WhiteDream/Pool/cult_powers_pool.yml @@ -0,0 +1,11 @@ +- type: psionicPowerPool + id: BloodCultPowers + powers: + - ActionBloodCultStun + - ActionBloodCultTeleport + - ActionBloodCultEmp + - ActionBloodCultShadowShackles + - ActionBloodCultTwistedConstruction + - ActionBloodCultSummonCombatEquipment + - ActionBloodCultSummonRitualDagger + - ActionBloodCultBloodRites diff --git a/Resources/Prototypes/WhiteDream/Reagents/Materials/cult.yml b/Resources/Prototypes/WhiteDream/Reagents/Materials/cult.yml new file mode 100644 index 00000000000..e444df178e6 --- /dev/null +++ b/Resources/Prototypes/WhiteDream/Reagents/Materials/cult.yml @@ -0,0 +1,7 @@ +- type: material + id: RunedMetal + stackEntity: RunedMetal1 + name: materials-runed-metal + icon: { sprite: /Textures/WhiteDream/BloodCult/Entities/runic_metal.rsi, state: runic} + color: "#9d2b39" + price: 0.05 diff --git a/Resources/Prototypes/WhiteDream/Recipes/Construction/cult.yml b/Resources/Prototypes/WhiteDream/Recipes/Construction/cult.yml new file mode 100644 index 00000000000..a87edd40fb7 --- /dev/null +++ b/Resources/Prototypes/WhiteDream/Recipes/Construction/cult.yml @@ -0,0 +1,107 @@ +- type: construction + id: CultPylon + name: cult pylon + description: A floating crystal that slowly heals those faithful to Nar'Sie. + category: construction-category-structures + hide: true + graph: CultPylon + startNode: start + targetNode: pylon + icon: + sprite: WhiteDream/BloodCult/Entities/Structures/pylon.rsi + state: icon_off + objectType: Structure + placementMode: AlignPylonConstruction + canBuildInImpassable: false + conditions: + - !type:TileNotBlocked + +- type: construction + id: CultFactoryAltar + name: altar + description: A bloodstained altar dedicated to Nar'Sie. + category: construction-category-structures + hide: true + graph: CultFactoryAltar + startNode: start + targetNode: altar + icon: + sprite: WhiteDream/BloodCult/Entities/Structures/altar.rsi + state: icon_off + objectType: Structure + placementMode: SnapgridCenter + canBuildInImpassable: false + conditions: + - !type:TileNotBlocked + +- type: construction + id: CultFactoryForge + name: daemon forge + description: A forge used in crafting the unholy weapons used by the armies of Nar'Sie. + category: construction-category-structures + hide: true + graph: CultFactoryForge + startNode: start + targetNode: forge + icon: + sprite: WhiteDream/BloodCult/Entities/Structures/forge.rsi + state: icon_off + objectType: Structure + placementMode: SnapgridCenter + canBuildInImpassable: false + conditions: + - !type:TileNotBlocked + +- type: construction + id: CultFactoryArchives + name: archives + description: A desk covered in arcane manuscripts and tomes in unknown languages. Looking at the text makes your skin crawl. + category: construction-category-structures + hide: true + graph: CultFactoryArchives + startNode: start + targetNode: archives + icon: + sprite: WhiteDream/BloodCult/Entities/Structures/archives.rsi + state: icon_off + objectType: Structure + placementMode: SnapgridCenter + canBuildInImpassable: false + conditions: + - !type:TileNotBlocked + +- type: construction + id: CultDoor + name: runed door + description: It opens, it closes, and maybe crushes you. This one has a strange glowing rune on it. + category: construction-category-structures + hide: true + graph: CultDoor + startNode: start + targetNode: door + icon: + sprite: WhiteDream/BloodCult/Entities/Structures/cult_airlock.rsi + state: closed + objectType: Structure + placementMode: SnapgridCenter + canBuildInImpassable: false + conditions: + - !type:TileNotBlocked + +- type: construction + id: CultGirder + name: runed girder + description: Framework made of a strange and shockingly cold metal. It doesn't seem to have any bolts + category: construction-category-structures + hide: true + graph: CultGirder + startNode: start + targetNode: girder + icon: + sprite: WhiteDream/BloodCult/Entities/Structures/cult_girder.rsi + state: icon + objectType: Structure + placementMode: SnapgridCenter + canBuildInImpassable: false + conditions: + - !type:TileNotBlocked diff --git a/Resources/Prototypes/WhiteDream/Recipes/Construction/cult_graphs.yml b/Resources/Prototypes/WhiteDream/Recipes/Construction/cult_graphs.yml new file mode 100644 index 00000000000..8bb2dd84213 --- /dev/null +++ b/Resources/Prototypes/WhiteDream/Recipes/Construction/cult_graphs.yml @@ -0,0 +1,114 @@ +- type: constructionGraph + id: CultPylon + start: start + graph: + - node: start + edges: + - to: pylon + completed: + - !type:SnapToGrid + southRotation: true + steps: + - material: RunedMetalSheets + amount: 4 + doAfter: 3 + - node: pylon + entity: CultPylon + +- type: constructionGraph + id: CultFactoryAltar + start: start + graph: + - node: start + edges: + - to: altar + completed: + - !type:SnapToGrid + southRotation: true + steps: + - material: RunedMetalSheets + amount: 3 + doAfter: 3 + - node: altar + entity: CultFactoryAltar + +- type: constructionGraph + id: CultFactoryForge + start: start + graph: + - node: start + edges: + - to: forge + completed: + - !type:SnapToGrid + southRotation: true + steps: + - material: RunedMetalSheets + amount: 3 + doAfter: 3 + - node: forge + entity: CultFactoryForge + +- type: constructionGraph + id: CultFactoryArchives + start: start + graph: + - node: start + edges: + - to: archives + completed: + - !type:SnapToGrid + southRotation: true + steps: + - material: RunedMetalSheets + amount: 3 + doAfter: 3 + - node: archives + entity: CultFactoryArchives + +- type: constructionGraph + id: CultDoor + start: start + graph: + - node: start + edges: + - to: door + completed: + - !type:SnapToGrid + southRotation: true + steps: + - material: RunedMetalSheets + amount: 1 + doAfter: 3 + - node: door + entity: CultDoor + +- type: constructionGraph + id: CultGirder + start: start + graph: + - node: start + edges: + - to: girder + completed: + - !type:SnapToGrid + southRotation: true + steps: + - material: RunedMetalSheets + amount: 1 + doAfter: 3 + - node: girder + entity: CultGirder + edges: + - to: wall + completed: + - !type:SnapToGrid + southRotation: true + conditions: + - !type:EntityAnchored { } + steps: + - material: RunedMetalSheets + amount: 1 + doAfter: 2 + - node: wall + entity: WallCult diff --git a/Resources/Prototypes/WhiteDream/Roles/Antags/blood-cultist.yml b/Resources/Prototypes/WhiteDream/Roles/Antags/blood-cultist.yml new file mode 100644 index 00000000000..0e0e9b59438 --- /dev/null +++ b/Resources/Prototypes/WhiteDream/Roles/Antags/blood-cultist.yml @@ -0,0 +1,16 @@ +- type: antag + id: BloodCultist + name: roles-antag-blood-cultist-name + antagonist: true + setPreference: true + objective: roles-antag-blood-cultist-objective + requirements: + - !type:CharacterOverallTimeRequirement + min: 43200 + +- type: startingGear + id: BloodCultistGear + storage: + back: + - RitualDagger + - RunedMetal20 diff --git a/Resources/Prototypes/WhiteDream/Stacks/Materials/cult.yml b/Resources/Prototypes/WhiteDream/Stacks/Materials/cult.yml new file mode 100644 index 00000000000..d5674f13944 --- /dev/null +++ b/Resources/Prototypes/WhiteDream/Stacks/Materials/cult.yml @@ -0,0 +1,6 @@ +- type: stack + id: RunedMetalSheets + name: materials-runed-metal + icon: { sprite: /Textures/WhiteDream/BloodCult/Entities/runic_metal.rsi, state: runic} + spawn: RunedMetal1 + maxCount: 30 diff --git a/Resources/Prototypes/WhiteDream/StatusIcon/antag.yml b/Resources/Prototypes/WhiteDream/StatusIcon/antag.yml new file mode 100644 index 00000000000..9910ed6f4c0 --- /dev/null +++ b/Resources/Prototypes/WhiteDream/StatusIcon/antag.yml @@ -0,0 +1,15 @@ +- type: statusIcon + id: BloodCultMember + priority: 11 + locationPreference: left + icon: + sprite: /Textures/WhiteDream/BloodCult/cult_hud.rsi + state: cult_member + +- type: statusIcon + id: BloodCultLeader + priority: 11 + locationPreference: left + icon: + sprite: /Textures/WhiteDream/BloodCult/cult_hud.rsi + state: cult_leader diff --git a/Resources/Prototypes/WhiteDream/ai_factions.yml b/Resources/Prototypes/WhiteDream/ai_factions.yml new file mode 100644 index 00000000000..e7a68dcbb99 --- /dev/null +++ b/Resources/Prototypes/WhiteDream/ai_factions.yml @@ -0,0 +1,8 @@ +- type: npcFaction + id: GeometerOfBlood + hostile: + - NanoTrasen + - SimpleHostile + - Xeno + - PetsNT + - Zombie diff --git a/Resources/Prototypes/WhiteDream/alerts.yml b/Resources/Prototypes/WhiteDream/alerts.yml new file mode 100644 index 00000000000..f9693664b42 --- /dev/null +++ b/Resources/Prototypes/WhiteDream/alerts.yml @@ -0,0 +1,5 @@ +- type: alert + id: CultEmpowered + icons: [ /Textures/WhiteDream/BloodCult/Alerts/empowered.png ] + name: alerts-blood-cult-empowered-name + description: alerts-blood-cult-empowered-desc diff --git a/Resources/Prototypes/WhiteDream/game_presets.yml b/Resources/Prototypes/WhiteDream/game_presets.yml new file mode 100644 index 00000000000..fca12c7ded7 --- /dev/null +++ b/Resources/Prototypes/WhiteDream/game_presets.yml @@ -0,0 +1,12 @@ +- type: gamePreset + id: BloodCult + alias: + - bloodcult + name: blood-cult-title + showInVote: true + description: blood-cult-description + rules: + - BloodCult + - SubGamemodesRule + - BasicStationEventScheduler + - BasicRoundstartVariation diff --git a/Resources/Prototypes/WhiteDream/rune_selectors.yml b/Resources/Prototypes/WhiteDream/rune_selectors.yml new file mode 100644 index 00000000000..5eb0dfc16a6 --- /dev/null +++ b/Resources/Prototypes/WhiteDream/rune_selectors.yml @@ -0,0 +1,47 @@ +- type: runeSelector + id: CultRuneOffering + prototype: CultRuneOffering + +- type: runeSelector + id: CultRuneEmpower + prototype: CultRuneEmpower + +- type: runeSelector + id: CultRuneTeleport + prototype: CultRuneTeleport + +- type: runeSelector + id: CultRuneRevive + prototype: CultRuneRevive + +- type: runeSelector + id: CultRuneBarrier + prototype: CultRuneBarrier + +- type: runeSelector + id: CultRuneSummoning + prototype: CultRuneSummoning + +- type: runeSelector + id: CultRuneBloodBoil + prototype: CultRuneBloodBoil + +- type: runeSelector + id: CultRuneApocalypse + prototype: CultRuneApocalypse + requireTargetDead: true + requiredTotalCultists: 10 + drawTime: 40 + drawDamage: + types: + Slash: 20 + +- type: runeSelector + id: CultRuneDimensionalRending + prototype: CultRuneDimensionalRending + requireTargetDead: true + requiredTotalCultists: 10 + drawTime: 40 + drawDamage: + types: + Slash: 50 diff --git a/Resources/Prototypes/WhiteDream/tiles.yml b/Resources/Prototypes/WhiteDream/tiles.yml new file mode 100644 index 00000000000..67f8f15632e --- /dev/null +++ b/Resources/Prototypes/WhiteDream/tiles.yml @@ -0,0 +1,29 @@ +- type: tile + id: CultFloor + name: tiles-cult-floor + sprite: /Textures/WhiteDream/BloodCult/Tiles/cult_tile/cult.png + variants: 1 + baseTurf: Plating + isSubfloor: false + deconstructTools: [ Prying ] + footstepSounds: + collection: FootstepFloor + itemDrop: FloorTileItemSteel + heatCapacity: 10000 + +- type: tile + id: CultFloorConcealed + name: tiles-steel-floor + sprite: /Textures/WhiteDream/BloodCult/Tiles/cult_tile/concealed.png + variants: 3 + placementVariants: + - 1.0 + - 1.0 + - 1.0 + baseTurf: Plating + isSubfloor: false + deconstructTools: [ Prying ] + footstepSounds: + collection: FootstepFloor + itemDrop: FloorTileItemSteel + heatCapacity: 10000 diff --git a/Resources/Prototypes/ai_factions.yml b/Resources/Prototypes/ai_factions.yml index cdbbf868662..c0f7c7da6a0 100644 --- a/Resources/Prototypes/ai_factions.yml +++ b/Resources/Prototypes/ai_factions.yml @@ -44,6 +44,7 @@ - PetsNT - Zombie - Revolutionary + - GeometerOfBlood - type: npcFaction id: SimpleNeutral diff --git a/Resources/Prototypes/ore.yml b/Resources/Prototypes/ore.yml index d471a3ac964..41eeedcb5f3 100644 --- a/Resources/Prototypes/ore.yml +++ b/Resources/Prototypes/ore.yml @@ -1,9 +1,5 @@ # TODO: Kill ore veins # Split it into 2 components, 1 for "spawn XYZ on destruction" and 1 for "randomly select one of these for spawn on destruction" -# You could even just use an entityspawncollection instead. -- type: ore - id: SpaceShrooms - oreEntity: FoodSpaceshroom # High yields - type: ore diff --git a/Resources/Prototypes/secret_weights.yml b/Resources/Prototypes/secret_weights.yml index 4ad31cd1940..75954d5118a 100644 --- a/Resources/Prototypes/secret_weights.yml +++ b/Resources/Prototypes/secret_weights.yml @@ -1,9 +1,10 @@ - type: weightedRandom id: Secret weights: - Survival: 0.44 + Survival: 0.34 Nukeops: 0.14 Zombie: 0.03 - Traitor: 0.39 + Traitor: 0.34 + BloodCult: 0.15 #Pirates: 0.15 #ahoy me bucko diff --git a/Resources/Prototypes/status_effects.yml b/Resources/Prototypes/status_effects.yml index a991bf4035f..bed635c7026 100644 --- a/Resources/Prototypes/status_effects.yml +++ b/Resources/Prototypes/status_effects.yml @@ -59,3 +59,6 @@ - type: statusEffect id: StaminaModifier + +- type: statusEffect + id: PhaseShifted diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index 6cb813ba800..e7f20f8f47b 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -946,6 +946,9 @@ - type: Tag id: NoBlockAnchoring +- type: Tag + id: NoPaint + - type: Tag id: NozzleBackTank diff --git a/Resources/Prototypes/time_cycle_palletes.yml b/Resources/Prototypes/time_cycle_palletes.yml new file mode 100644 index 00000000000..e5f8e29e93d --- /dev/null +++ b/Resources/Prototypes/time_cycle_palletes.yml @@ -0,0 +1,30 @@ +- type: timeCyclePalette + id: DefaultTimeCycle + timeEntries: + 0: "#000000" # Night + 2: "#000000" # Late night + 4: "#02020b" # Very-Early-Morning + 6: "#312716" # Early-Dawn + 7: "#4E3D23" # Dawn + 8: "#58372d" # Sunrise + 9: "#876A42" # Early-Morning + 10: "#A08042" # Mid-Morning + 12: "#A88F73" # Noon + 14: "#C1A78A" # Early-Afternoon + 16: "#7D6244" # Afternoon + 18: "#8C6130" # Sunset + 20: "#543521" # Dusk + 22: "#02020b" # Early night + 24: "#000000" # Night + +- type: timeCyclePalette + id: Gothic + timeEntries: + 0: "#000000" # Night + 2: "#000000" # Late night + 6: "#11122c" # Sunrise + 12: "#d8b059" # Noon + 18: "#73586b" # Sunset + 20: "#11122c" # Dusk + 21: "#000000" # Early night + 24: "#000000" # Night diff --git a/Resources/ServerInfo/Guidebook/Antagonist/BloodCult.xml b/Resources/ServerInfo/Guidebook/Antagonist/BloodCult.xml new file mode 100644 index 00000000000..a0e8dcb5d87 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Antagonist/BloodCult.xml @@ -0,0 +1,184 @@ + + Be ware - this document is just almost a full copy of /tg/ station blood cult guide. + + # Blood Cult + + Even in the far future, some things are never quite understood. There are things that lurk in the darkness of space, + unspeakable horrors of ancient power that wish to bring ruin to the universe and to shape it into their image. They + reach out from the void, and turn the minds of mortal men and women in their favor in hopes that one day they shall be + brought once more into this plane of existence. + + The Geometer of Blood, Nar-Sie, has sent a number of her followers to Space Station 14. As a cultist, you have an + abundance of cult magics at your disposal, something for all situations. You must work with your brethren to summon an + avatar of your eldritch goddess! + + ## Objectives + + Your objective requires you to sacrifice a certain crewmember and summon Nar-Sie. + + The general path of action of the cult and those in it: + + - 1. From a discrete location, contact your allies. You can do it by speaking Eldritch language - everyone in the cult + can hear you when you speak it. + - 2. Find an area to convert into a base, usually accessible by one or more members of the cult, but well-hidden + enough that security or crew won't find it easily. + - 3. Setup a teleport rune, so all cultists can access it. + - 4. Setup an empowering rune and then prepare up to 4 blood spells. Stun spells are your bread and butter - but + diversifying with spells like EMP, Teleport, Blood Rites, etc. will ensure you're ready for anything. + - 5. Convert new members, or sacrifice implanted crew, on the offering rune. Combine the filled soul shard from + sacrificed humans to create powerful cult constructs! + - 6. Use teamwork to find your sacrifice target. + - 7. Kill the sacrifice target and place them on an offer rune with 3 cultists nearby. + - 8. Prepare to summon Nar-Sie. She can only be summoned in a few locations and the crew will fight desperately to + stop you! Make sure you have enough cultists and equipment to withstand their assault. + - 9. Gather 10 cultists on the final rune to summon Nar-Sie! + + ## Ritual Dagger + + + + + + Your dagger is your most important tool and has several functions: + + - You can draw runes with it. + - Hitting a non-cultist with it will result in you stabbing them (huh), dealing 15 piercing damage. + - Using it on the rune with erase it. + - Using it on the cult barrier will remove it. + + ## Minor Runes + + These are minor runes cultists can draw anywhere on the station. + + + + + + Can be used to convert or sacrifice targets on it. It takes two cultists to convert someone. + + [bold]REMINDER: One cultist is required to sacrifice a dead body and three for a live one, + standing adjacent to the rune. Each sacrifice will add to the Cult's total number of sacrifices, which are used + to revive deceased bretheren instantly over a Revival Rune.[/bold] + + + + + Grants a buff allowing cultists to prepare greater amounts of blood magic at far less of a cost. While you have + it, the spell count is capped at 4 instead of 1. Additionally, drawing runes takes far less time and you don't + lose as much blood while doing it. + + + + + This rune warps everything above it to another teleport rune when used. Creating a teleport rune will allow you to + set a tag for it. + + + + + Placing a cultist corpse on the rune and activating it will bring them back to life. Consumes one charge on use + and starts with three freebie revivals, so use it sparingly. . + + + + + When invoked, makes a temporary barrier to block passage. + + + + + This rune allows you to instantly summon any living cultist to the rune, consuming it afterward. Does not work on + restrained cultists who are buckled or being pulled. + + + + + When invoked, it saps some health from the invokers to send three damaging pulses to anyone who can see the + rune and ignites them. + + + ## Major runes + + These are the major runes cultists can draw once they meet certain conditions. They need a free 3x3 space, and can only + be summoned in 3 areas around the station (or have 3 global charges). Depleting all of them makes you unable to draw + them anymore. So be careful not to consume all of them with apocalypse runes or you'll never be able to summon + Nar'Sie! + + + + + + A harbinger of the end times. It scales depending on the crew's strength relative to the cult. Effect includes a + massive EMP, total blackout, solar flare and if the cult is doing poorly, certain events. If the cult makes up to + less than 15% of current players, and an apocalypse rune is activated, a random event will + occur: + - Immovable Rod x3 + - Mouse Migration x2 + - Meteor Swarm x2 + - Vent Crickets x3 + - Four Random Anomalies + - Kudzu Growth x2 + - Vendor Mimics x2 + + + + + This rune tears apart dimensional barriers, calling forth the Geometer. To start drawing it the requested target + must have already been sacrificed. Starting to draw this rune alarms the entire station of its location. The caster + must be defended for 45 seconds before it's complete. + After it's drawn, 10 cultists, constructs, or summoned ghosts must stand on the rune, which can then be invoked to + manifest Nar'Sie itself. + + ## Blood Spells + + Blood Spells are limited-use blood magic spells that dissipate after they're spent, and they're your bread and butter + when fighting the crew. Blood Spells can be created at any time via a menu when right clicking your character. + However, blood spells created without an Empowering Rune will take longer, cause significant blood loss, and + will cap your spell count at a measly one + + A good tip is to make sure to try and have a stun spell and a teleport spell with you to escape risky situations. This + will leave only two other options for spells though, so carefully choose what you think might help best for a + particular situation. + + + ## Constructs + + Shades and constructs are slaved to their masters will. They must follow the orders of their master at any cost. They + are capable of grasping intent, unlike synthetic beings. Constructs created by cultists automatically become cultists + themselves, allowing them to identify their team mates, and even count for the escape objective. + + + + + Shades are fragile, but being recaptured into their soul shard heals them. Useful if you quickly need someone to help + you activate a rune. + + + + + The artificer is the "drone" of the cult. It can construct cult-floors, walls and reinforced walls, as well as take + apart the station, but its main purpose is to provide the materials to construct additional constructs. It can create + new soul stones or shells after a certain time. + + + + + The wraith is a tiny bit more fragile than a human but has a strong melee attack. It can become invisible and travel + through closed doors and even walls by using it's phase shift ability. + + + + + Juggernauts are strong, slow and have lots of health. They can destroy any wall by simply punching it and do more + damage than Wraiths. They cannot be pushed or grabbed and even have a force-wall ability similar to the wizard spell. + + ## Tips + - Only cultists can know a rune's name and effects by examining it. + - Always be ready to summon a cultist in trouble. You can't summon them if they're already cuffed. + - Keeping a shade in a Soulstone Shard with you will allow you to use two-person runes by yourself, by releasing and + then recapturing the shade. + - Cultists often find a use for medibots. Having a single bot with a low threshold, backed up by brutepacks or pylons, + can keep your cult in fighting shape. + - The EMP spell and Apocalypse Rune are both incredibly useful. They can give you access almost anywhere, just don't + forget your crowbar! + diff --git a/Resources/ServerInfo/Guidebook/LoadoutInfo/Eyes/LoadoutInfoLoadoutEyesEyepatch.xml b/Resources/ServerInfo/Guidebook/LoadoutInfo/Eyes/LoadoutInfoLoadoutEyesEyepatch.xml new file mode 100644 index 00000000000..49d975cf746 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/LoadoutInfo/Eyes/LoadoutInfoLoadoutEyesEyepatch.xml @@ -0,0 +1,4 @@ + +Worn only by the greatest of pie rats... or those who have lost an eye in a pie fight. +Temporary document, left as an example and placeholder. + diff --git a/Resources/ServerInfo/Guidebook/LoadoutInfo/LoadoutInfo.xml b/Resources/ServerInfo/Guidebook/LoadoutInfo/LoadoutInfo.xml new file mode 100644 index 00000000000..7c569b2b0f4 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/LoadoutInfo/LoadoutInfo.xml @@ -0,0 +1,4 @@ + +This is a temporary document that tells you some information about Loadouts and what they are and how they work. +But there's no document yet, so go read the tooltips and figure it out. + diff --git a/Resources/ServerInfo/Guidebook/LoadoutInfo/Security/SecurityWeapons.xml b/Resources/ServerInfo/Guidebook/LoadoutInfo/Security/SecurityWeapons.xml new file mode 100644 index 00000000000..f52a7f14caf --- /dev/null +++ b/Resources/ServerInfo/Guidebook/LoadoutInfo/Security/SecurityWeapons.xml @@ -0,0 +1,54 @@ + + # Security Duty Weapons + + ## Foreword + While firearms of all varieties are incredibly common across known-space, the NanoTrasen Corporation does not permit + individuals without proper licenses to carry weapons onboard its stations. [color=#a40000]Carrying any weapon on NanoTrasen property + without proper authorization is a crime.[/color] The following job positions are assumed to be properly licensed and permitted to be armed: + + - [color=#a40000]All Security personnel[/color]: without any restrictions. + - [color=#4169e1]All NanoTrasen command staff[/color]: without any restrictions. + - [color=#228b22]Bartending personnel[/color]: Limited only to long-arms such as rifles and shotguns. Additionally, they may only be equipped with less-than-lethal ammunition. + - [color=#e2725b]Salvage personnel[/color]: Lethal weapons usage is permitted for those whom are expected to perform tasks that involve significant risk to life and + limb, such as ship breaking or planetary expeditions. + + ## What are Duty Weapons? + + + + + + + + Security characters are classified as Private Armed Security. As Private Armed Security, + they are entitled via special training and licensing to be equipped with lethal weaponry in their daily work. + Such weapons serve the purpose of protecting corporate assets, such as the Station or its Crew. + + This key piece of job equipment, typically a handgun of some variety, is called a "Duty Weapon" when used in the context of armed security work. + Duty Weapons are usually issued to the officer by their employer directly, but are not necessarily ones provided by the corporation. + In order to save money on equipping their station security, corporations typically allow security staff to buy appropriate firearms using their own paycheck. + + Any firearm that is listed without cost may be assumed to be provided by NanoTrasen directly. However for Duty Weapons that cost loadout points, + the assumption is different. These weapons are assumed to be owned by the security officer themself, and thus are a private possession of that + individual which was bought using their hard-earned paycheck. + + ## Why does this list include weapons typically used by Syndicate agents? + + + + + + + + Across known-space, there exist many corporations both large and small whom manufacture firearms for the consumer markets. A majority of all firearms + on the market are generic models that can be produced by anyone with the right equipment. As a result, the universe is full of weapons whose origin cannot + be readily traced to any one particular corporation. Companies like NanoTrasen will typically establish business deals with some manufacturers to supply their + security forces, but nothing compares to the cost savings that can be found by letting private security buy their own weapons. + + Firearms like the Mk58 are incredibly popular with corporations like NanoTrasen due to their astoundingly low cost. + Yet, the Mk58 is often reviled by security workers all across known-space. When given a choice, security workers will likely purchase + firearms that they actually like, or are more desirable to carry in their day-to-day work. Weapons such as the Viper may be used as a relatively + affordable option for officers looking to pack just a little bit more punch. Revolvers such as the Python are incredibly popular with security workers, + especially those that have a large and intimidating frame. + + diff --git a/Resources/ServerInfo/Guidebook/Lore/Corporations/Corporations.xml b/Resources/ServerInfo/Guidebook/Lore/Corporations/Corporations.xml new file mode 100644 index 00000000000..92cbf48ac15 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Lore/Corporations/Corporations.xml @@ -0,0 +1,3 @@ + + These are just a few of the corporations operating between the Sol Alliance, and the Fringes of Known-Space. + diff --git a/Resources/ServerInfo/Guidebook/Lore/Corporations/EinsteinEngines.xml b/Resources/ServerInfo/Guidebook/Lore/Corporations/EinsteinEngines.xml new file mode 100644 index 00000000000..15d2edea40b --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Lore/Corporations/EinsteinEngines.xml @@ -0,0 +1,116 @@ + + All Information included in this document is licensed under CC BY-SA 4.0, and is taken from https://wiki.aurorastation.org/index.php?title=Einstein_Engines with some modifications. + + # Einstein Engines + + - [bold]Slogan:[/bold] [italic] Lead by our history, leading our future[/italic] + - [bold]Headquarters:[/bold] Harmony City, Luna, Sol + - [bold]Official Languages:[/bold] Tau-Ceti Basic, Sol Common, Tradeband + - [bold]Official Colours:[/bold] [color=#777700]Olive Green (#777700)[/color], [color=#637C65]Sage Green (#637C65)[/color], [color=#DFE4ED]White (#DFE4ED)[/color], [color=#AB6F19]Orange (#AB6F19)[/color] + - [bold]Founded:[/bold] 2155 by the Standard Sol Calendar. + - [bold]Founder:[/bold] Zhong Hu + - [bold]Notable Branches:[/bold] Taipei Engineering Industrial, Terraneus Diagnostics + + Founded in Sol during the 2100s, Einstein Engines is a trans-stellar megacorporation that focuses on both warp travel technology and robotics, + and is said to have a monopoly on the former. Headed by the cutthroat Noelle Lopez-Zhang, Einstein Engines has found itself having been through + a combination of rigorous technological improvements in their warp drive designs that have found the megacorporation at an advantage due to the shortages of Phoron + across the Orion Spur, as well as careful expansion and dominance within the now collapsed Solarian Alliance. + Considered an antagonist to the goals of the Stellar Corporate Conglomerate, + Einstein Engines has managed on multiple occasions to outperform the corporations beneath its banner and continues to improve as each day passes. + + ## History + + Einstein Engines originated as a conglomerate of various aerospace companies who shared a joint research project for extrastellar travel. + As the project came into fruition, it was realized it would have immense consequences for the human race. + In the year 2130, a sustained, stable warp interface was formed. This development served to catapult the conglomerate to be a dominating economic + power across Sol. Their warp technology revolutionized space travel and led to the construction of micro-g orbital industrial stations around the equator. + This boom in industrial capabilities led to the great expansion of humanity across space. Warp-enabled probes traveled to nearby systems, + finding habitable worlds scattered across space. The power of Einstein Engines continued to grow throughout the following centuries, + eclipsing other interstellar corporations; however, this expansion was not to last. + + In 2417, a relatively young corporation, Nanotrasen, discovered a previously unknown material known as Phoron, + a substance with incredible energy density, far beyond that of conventional fusion or fission. + This energy source, along with the advent of the Skrell experimental, though superior, Bluespace drives burst the unending growth bubble of Einstein Engines. + As Nanotrasen grew into the present-day superpower it is, Einstein Engines fell inwards. Major restructuring was done to save the company, + leading to its modern form. + + Today, Einstein Engines still holds a significant power base despite the losses in the first half of the 25th century. + Continuing to serve its market, Einstein Engines produces many important spaceship components and continues to contend + with Nanotrasen over the efficiency of their different marques of Bluespace engine. The two giants awkwardly co-exist in human space, + with multiple copyright and trademark lawsuits bouncing between them on a monthly basis. + + As the phoron crisis began to worsen the conflict between Nanotrasen and Einstein Engines only began to heat up, + with EE managing to successfully defend itself against NT in a massive legal battle, as well as purchase the Biesel city of + Phoenixpoint from NT, with EE planning a massive restoration of the city. Due to their conflict with NT + Einstein Engines has elected not to support or join the SCC, being famously the only of the major megacorporations not to do so. + + To fight against the consolidation of power between the other major megacorporations with the establishment of the + SCC Einstein Engines has begun to seek trade partners in areas outside the influence the SCC, most notably the Nralakk Federation, + with EE managing to secure a contract to establish their Qerrbalak Branch. + + ## Influence + Einstein Engines wields considerable influence within the Sol Alliance, being founded more than three hundred years ago. + Its established reputation in the manufacturing of ship components and warp technology has solidified its place, + allowing it to survive as other corporations such as NanoTrasen continue to expand rapidly across the Spur. + Outside of the Sol Alliance, Einstein has made some progress in Tau Ceti with its recent acquisition of Phoenixport + and is currently revitalising the city as part of its plans for future operations within the system. + Einstein Engines has also made leeway with the Nralakk Federation and their Special Economic Zones, + winning the Qerrbalak contract over NanoTrasen and establishing a branch office there. + Despite its smaller operational scope compared to other megacorporations, + its marketing of warp technology as a safer and more cost-effective alternative to bluespace travel, + combined with its reputation as a reliable manufacturer, has allowed the company to have at least some influence across most of human space. + + The megacorporation also holds considerable sway in the field of artificial intelligence. + Although its competitors would never admit it, Einstein Engines consistently produces the most advanced positronic brains, + with many of their models surpassing and eclipsing that of other companies. + Furthermore, they remain the second-largest producer of positronic brains in the Spur, + providing for customers in the Sol Alliance as well as the Coalition. + The company also has lucrative defence contracts with the Sol Alliance, not only providing AI and engines for the Sol Navy but IPCs as well, + serving in both combat and non-combat roles. With relations between the Conglomerate and the Alliance at a record low, + Einsteins hold over the market can only grow. + + ## Internal Reputation + + Despite the common beliefs in the Republic of Biesel, the megacorporation is deemed as a fair employer with plenty of benefits, such as a full health plan, including dental care, and up to two weeks of vacation per year. Company cars are a common benefit amongst most members above a certain rank, and a healthy fraternal work environment is promoted. Those individuals that have worked with Nanotrasen before their employment in Einstein Engines will often quote these benefits as their main reason to change companies. + + While some may say that these features are due to the progressive work laws in the Sol Alliance, the standard was set by Einstein Engines shortly after a bonanza period, following the discovery of the warp engine. For Einstein Engines, their employees require to have their necessities covered so they can be happier and more productive. + + In the 25th century, the megacorporation has seen some setbacks due to the new phoron travel. As a consequence, the salaries remain more or less on par with those of their competitors, despite traditionally being higher. Nevertheless, the opportunity to grow inside the company and multiple bonuses offered per month, if a job is done right, still make up for these losses. + + ## Positronics and Einstein Engines + + Einstein Engines is one of the largest manufacturers of positronics within the Spur through their subsidiary Terraneus Diagnostics, the original creators of the positronic brain complex and shell IPC frame who maintains a large market share of both with a focus on the higher end of quality. + + Einstein Engines makes extensive use of synthetics within its corporate structure, however, synthetics are barred from holding leadership roles, be it that of managers in corporate facilities or commanders onboard corporate ships. Instead, synthetics are largely seen as tools to be used by organic employees. This attitude stems from Einstein Engines' heavy involvement with the Sol Alliance, as their view on synthetics is identical to that of the Alliance government. The company makes use of their own high end shell frames and cheaper, more available baseline frames primarily, though others are occasionally bought from other megacorporations. + + Synthetics owned by Einstein Engines are normally worked to the limit within their assigned position and are expected to greatly outperform organic employees due to their cost, and punishments such as memory wipes, retooling or scrapping are always on the table. That being said, Einstein Engines pursues a “quality over quantity” philosophy with their IPC, only using harsher methods such as memory wipes for repeat offenders. The company views the experience an older IPC might gain as having a value of its own. + + Freedom is only offered to synthetics in areas that require it to be an option, such as Biesel or Konyang, otherwise, they will be offered no legal chance at achieving it by the company and scrapping is often used to retire synthetics rather than selling them, although special treatment is given to its close partners and employees, who are often approached with an offer first. Attempts of synthetics to escape to freedom are not unheard of within the corporation, and those caught are immediately scrapped as punishment. + + It is expected for Shells owned by Einstein Engines to use simple one or two syllable first names such as “Joe” or “Robert” whilst other frames used by the company use the name format “EES-(Name/Designation)” where “EES” stands for Einstein Engines Synthetic. + + # Relations to Other Corporations + + ## Hephaestus Industries + Einstein is a major competitor for Hephaestus in the field of IPC manufacturing - in spite of this, however, the two megacorporations have long had a close working relationship, particularly in the Solarian shipbuilding industry. Many Hephaestus-manufactured civilian and military vessels in Sol are equipped with Einstein-made warp drives, especially after the refitting of the Solarian Navy to the Suzuki-Zhang Hammer Drive. If Hephaestus's membership in the Stellar Corporate Conglomerate has been a source of tension between the two megacorporations, little sign of this has been shown openly, with the industrial giant continuing to work with Einstein on many of its Solarian assets. Rumors of Einstein providing ships and weaponry to groups such as the Exclusionists in the region around Burzsia - or of Hephaestus-backed privateers targeting Einstein vessels in the former Human Wildlands - remain only rumors, and have had little impact on the two companies' shared business. + + ## Idris Incorporated + Idris and Einstein have a generally positive relationship, with little need for competition. The vast majority of Idris-owned Shell IPCs are manufactured by Einstein, and their robotics division has allegedly developed several enhanced combat modifications for higher-end Idris Reclamation Units. Idris vessels tend to favor Einstein-produced warp drives over NanoTrasen-produced bluespace drives, with the exception of some of their higher-end security vessels and luxury yachts which advertise speed of travel as a major bonus. Following Solarian nationalization efforts, Idris and Einstein are the two most influential corporations in the Alliance, with Idris having paid high fees to avoid nationalization of its assets. This has given the two corporations a mutual goal - maintaining their own prominence in Solarian affairs, and ensuring that future anti-corporate legislation remains directed at their rivals. Einstein and Idris have both heavily invested in their own PR within the Alliance, remaining invested in Sol's future development. + + ## NanoTrasen + NanoTrasen and Einstein have been rivals for decades, since the discovery of phoron in 2417 and the subsequent invention of the bluespace drive. As bluespace largely superseded warp as a means of faster-than-light travel, NanoTrasen's power rose as Einstein's waned. Since then, the two companies have been fierce competitors, contending in court constantly over various trademarks, patents, and other legal issues. The phoron scarcity beginning in 2462 has led to a reversal of fortunes, with Einstein rising massively in prominence as NanoTrasen's power fades - leading NanoTrasen to spearhead the formation of the Stellar Corporate Conglomerate to attempt to combat their old rivals. The two corporations continue to clash to this day, with Einstein having found a foothold in the city of Phoenixport, Biesel - setting up shop in the heart of NanoTrasen's power. Though Einstein holds the clear advantage for now, NanoTrasen has worked tirelessly to try and slow the meteoric growth of their rival corporation - so far, to little effect, as phoron prices continue to rise and NanoTrasen stock prices continue to fall. + + ## Orion Express + Einstein Engines and Orion have had little in the way of a working relationship, with the shipping corporation being formed largely from assets of their rivals at NanoTrasen. Einstein has reportedly advocated extensively for subjecting Orion to the same nationalization as faced by the other SCC corporations in the Sol Alliance - though so far to little effect, as Orion continues to operate freely within Solarian space. Outside of Sol, however, Einstein makes frequent use of Orion's shipping services, particularly within the Republic of Biesel and the Nralakk Federation - two nations where Orion is able to transport goods far more freely than Einstein. + + ## Zavodskoi Interstellar + Einstein Engines and Zavodskoi have a fairly neutral relationship - though the two do compete in the robotics sector, Zavodskoi has purchased many Einstein-made warp drives for its vessels over the years, and the two have both had generous supply contracts with the Solarian military in the past. In the modern day, Zavodskoi has lost a great deal of these contracts, while Einstein continues to hold many highly valuable government and military contracts - a factor which contributed to Zavodskoi's withdrawal of much of its Solarian business. In spite of this, it continues to purchase warp drives from Einstein frequently, due to the rising cost of phoron fuel and the easy availability of helium-3 from Zavodskoi's new home in the Empire of Dominia. + + ## Zeng-Hu Pharmaceuticals + The relationship between Zeng-Hu and Einstein is a generally positive one, with the two corporations cooperating extensively in several areas of mutual interest - their operations on the planet Konyang and mutual desire for expansion within the Nralakk Federation being the most noteworthy among these. Though Zeng-Hu's membership in the Stellar Corporate Conglomerate and Einstein's growing power within the Sol Alliance has led to a level of distrust between the two, their relationship has remained largely solid since the beginning of the phoron shortage. In 2466, Einstein and Zeng-Hu were both called upon by the government of Konyang to deal with the rampancy crisis, with Zeng-Hu's involvement leading to the wider Conglomerate working to address the problem. + + ## Spinward Fringe Syndicate + Despite sharing a common enemy in NanoTrasen, there is no love lost between Einstein Engines and the Syndicate. The Syndicate perceives Einstein Engines to be + not significantly different from NanoTrasen. The Syndicate believes that were Einstein Engines to gain a significant advantage over NanoTrasen, fate has it + that Einstein Engines would be the Syndicate's primary target instead. Einstein in turn views the Syndicate as a force fundamentally incompatible with their business dealings. + diff --git a/Resources/ServerInfo/Guidebook/Lore/Corporations/HephaestusIndustries.xml b/Resources/ServerInfo/Guidebook/Lore/Corporations/HephaestusIndustries.xml new file mode 100644 index 00000000000..44d1e7a7d33 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Lore/Corporations/HephaestusIndustries.xml @@ -0,0 +1,56 @@ + + All Information included in this document is licensed under CC BY-SA 4.0, and is taken from https://wiki.aurorastation.org/index.php?title=Hephaestus_Industries with some modifications. + + # Hephaestus Heavy Industries + + - [bold]Slogan:[/bold] [italic]The anvil on which the world is shaped[/italic] + - [bold]Headquarters:[/bold] Cua Song, New Hai Phong, Sol Alliance + - [bold]Official Languages:[/bold] Freespeak, Tau-Cetic Basic, Sol Common, Sinta'Unathi + - [bold]Official Colours:[/bold] [color=#ab6f19]Orange (#ab6f19)[/color], [color=#263e23]Green (#263e23)[/color] + - [bold]Founded:[/bold] 2137 by the Standard Sol Calendar. + - [bold]Founder:[/bold] Robert Claremont + - [bold]Notable Branches:[/bold] Xion Manufacturing Group, notable alliances with the Izweski Hegemony. + + Hephaestus Industries is one of the most prominent megacorporations within the Orion Spur. They are responsible for a large majority of the trans-stellar factions manufacturing capabilities, having facilities in the Coalition of Colonies, Republic of Biesel, Izweski Nation, and several other frontier colonies. They have managed to secure themselves a stable foundation, continually growing even in the face of the Solarian Collapse, Phoron Scarcity, and the supposed inevitable economic recession that stares the Orion Spur in the face. They make considerable contributions to the field of robotics, as well as starship research and development. + + ## History + + Originally founded in the year 2137, seven years after the advent of Warp technology, Hephaestus Aeronautics was formed out of a conglomeration of several failing aerospace companies. They combined their assets and expertise in an attempt to retain a niche in the FTL market. With humanity in a growing state of expansion and exploration, Hephaestus profits by designing and selling warp drives, with heavy competition between themselves and Einstein Engines. + + When the Second Great Depression struck in 2260, Hephaestus had no other option than to file for many massive bailouts. Barely saving their company from the pit of bankruptcy, they shifted their focus from warp travel to industrialization. As the years passed, they secured more and more industrial centres from many other small producers, both land-based and orbital. Recognizing Hephaestus’s presence along with the growing unrest in the frontier at the time, the Sol Alliance promised them commissions for providing them with machines of war; starships, arms, and armour. Hephaestus gladly obliged. Every handful of years, another smaller production company, and their assets are seized by Hephaestus. By 2400, Hephaestus Industries had become the number one producer in all of the inner colonies, owning almost one hundred percent of the heavy industry. Owning two gargantuan orbital factories in the Sol system, and another under construction in Tau Ceti, it was clear who the industrial powerhouse of Humanity was. Nanotrasen was quick to step up to the plate, however, and when they claimed the rights to the Romanovich cloud and discovered the pivotal resource Phoron, Hephaestus was forced to find another avenue of profit once again. + + After the discovery of the Skrell, and the introduction of artificial intelligence, Hephaestus began shifting its research focus from mineral processing and engine design to robotics. Dedicating several research stations to this project resulted in their facilities, mainly their factories, being overhauled to remove unnecessary systems and make way for streamlined central intelligence cores, as well as dedicating several lines of production to the creation of commercialized workforce robots. + + After the discovery of the Unathi, and the ascension of the Izweski Nation to the galactic stage, NanoTrasen as a corporation withdrew from the fledgling nation state, focusing instead on matters closer to humanity. Hephaestus filled this vacuum left by NanoTrasen, becoming the only Megacorporation to have a Hegemonic Guild Charter, which allowed them to operate within the nation. After years of floundering attempting to adapt to an antiquated feudal system of guilds used by the Hegemony, Hephaestus eventually stabalized, having adapted to the Guild system with the help of Yukal T’zakal, who was at the time sector administrator for the Hegemony. Slowly but surely the corporation worked its way into influencing the nation, until in 2465, in the midst of the phoron scarcity, it played its winning hand. Bailing out the rest of the Hegemonic Guilds in exchange for them becoming subsidiaries of Hephaestus Industries, the megacorporation gained a monopoly over the economy of the small nation, all while still in the name of helping it. + + The unveiling of the Stellar Corporate Conglomerate saw Hephaestus Industries as one of its prominent members, being the backbone of the colossal interstellar corporation’s heavy industry and adding to its fleets through Hephaestus Industries’ massive industrial division - however, the lack of cooperation with Einstein Engines has reduced productivity and forced the megacorporation to work with NanoTrasen and Zavodskoi Interstellar to recreate sub-light, warp drives and bluespace drives with diminished efficiency. + + Today, Hephaestus Industries is the largest provider of heavy industry for the Orion Spur, led by the charismatic and firm CEO Titanius Aeson. From New Hai Phong to Burzia, and now all the way to Tret, their factories ceaselessly work, constantly producing anything and almost everything used in the modern day. They are also supported by an advanced robotics division that produces new technology for artificial intelligence and commercialized robots for the working and military world. Recently, Hephaestus Industries has pledged to bring forth another wave of colonization of the frontier and promises support for struggling colonies. This isn’t coming from the bottoms of their hearts, of course. These colonies would be bound to provide resources to Hephaestus in trade for the company’s support. + + ## Influence + + Hephaestus Industries is the largest blanket commodity manufacturer in the known universe. Its reach extends across the Orion Spur and virtually all modern, and often antique, utilities owe their creation to it. It is the most sought-after fabricator of heavy-duty industrial equipment and starships. + + The sheer power of Hephaestus’s Influence can be seen most clearly in the Izweski Nation where Hephaestus has a stranglehold monopoly over the nation's economy, being the only legal exporter and importer, as well as holding all the Izweski Nation’s production in it’s fist. Everything that requires more than feudal peasants to produce, maintain, or construct is operated by Hephaestus Industries and its subsidiary companies. + + With Aeson's rise to the forefront, Hephaestus Industries as a workforce is the embodiment of the common worker, the family man, and loyalty to the company like a second family. As such, they are inclusive to every species, welcoming anyone willing to join the family, while "rewarding" hard and gritty work typically delegated to species besides humans and Skrell: these species are usually put in supervisory and logistics roles. Despite this, the intense loyalty of Unathi as a species and their strong sense of honor and family have made them quick favourites among the company, lending them to a rise of their own. Regardless of where you work, expect a generous benefits package in return: paid vacation time, sick leave, company insurance for on- and off-site protection, and a myriad of more localized items. + + The corporate structure works to the benefit of employees as well. Those that buy stock in the company and work from within, regardless of position, not only should expect the typical dividends that come with it, but also increased benefits that come on top of existing ones. Hephaestus is almost seen as a marvel when it comes to this. Supervisors often play up the worth of these shares and actively talk about them in more casual settings, authorizing an atmosphere of encouraging workers to buy into the company. The result is a single stock being worth much more than it probably is— and being unobtainable for most people on the bottom rung of the corporate ladder. + + Hephaestus is not without its flaws, however. Their generosity is often weaponized against its workers, claiming that disloyalty to the company is its biggest enemy. Supervisors actively encourage people to rat out others trying to unionize or otherwise undermine the company to encourage loyalty on the foreman's floor. Similarly, those found talking about the "Himeo" or "New Hai Phong Problems" typically find themselves summarily fired with a meagre severance package. Despite this, or perhaps because of all of this, they remain one of the largest and influential corporations in the Orion Spur. + + Additionally, Hephaestus has begun to score a nasty reputation as being the most destructive corporation for planet ecosystems. Himeo being perhaps the most egregious example, this megacorporation is willing to go to whatever ends it requires in order to keep the rust belt rolling. Other planets that find themselves catching up to this state of affairs include New Hai Phong, Eridani I, Burzsia, and more recently, Ouerea. Yet many more are finding their way towards being a new smog-covered member of this factory family. To make matters worse, Hephaestus gives little regard to the people of the planet in these positions outside of the company; Eridani I's denizens have to buy their own filtered air and masks when traversing the surface, and New Hai Phongers typically claustrophobia and asthma from the overcrowded and terrible air conditions on the planet. + + To put things simply, Hephaestus Industries is a unique case among corporations where respect and loyalty play a major role in climbing the ranks. One must earn their ties by ratting out others, investing in the company, or otherwise proving their loyalty to make any sort of drastic leap, making it a very linear corporate ladder. The higher ranking an individual is, the older they ought to be, with major executives either being the eldest among them. In this sense, Hephaestus is seen as the sturdiest foundation civilization has ever constructed with so much in the way of trust and age-old wisdom, their simple pursuit of corporate greed has, at least publicly, been long reformed into one of peace and prosperity. + + ## Positronics and Hephaestus Industries + Hephaestus Industries exercises vast authority over the second-hand production of almost all Integrated Positronic Chassis across the galaxy. Its titanic space factories are capable of printing full Positronic frames, although the installation of positronic brains is withheld to dedicated robotics labs. Almost every frame of any design can be contracted to Hephaestus Industries for its construction. Hephaestus Industries can dip its fingers into a huge portion of the IPC population’s lives by merit of financial involvement - Biesellite or otherwise. + + IPCs are present in every level of Hephaestus, from the simple mining unit on Burzsia, to the command decks onboard the Sidirourgeío. IPCs are in a unique position in the company due to their status as their largest producer, their tightly-knit corporate culture, and the large amount of Unathi employed by Hephaestus. Treatment of IPCs varies heavily depending on the local circumstances; for instance, in Biesel, a synthetic can achieve freedom after a long period of service, in accordance with that system’s law. On the other hand, a synthetic stuck in Burzsia may be constantly reset and owned until it eventually gets destroyed. The most common similarities are that IPCs are made to work very hard, expected to surpass their organic counterparts due to their natural advantages. + + In terms of assignment, they are often placed in one field and perform the associated jobs and tasks until they are sold, become free, or get destroyed. Reassignment may occur, typically when an urgent position needs to be filled. IPCs that gain their freedom are often offered their old jobs if the company deemed their performance while owned satisfactory, enticing them with maintenance and other such benefits. Renter Max and other Hephaestus IPCs are shining examples of IPCs who have overcome the challenge of survival. Positronics that rise to essential or high-ranking positions in the company are often treated with more equality by their organic counterparts. This can be owed to Hephaestus’ competitive, free-for-all environment and corporate ladder. + + Positronics working for Hephaestus Industries and their subsidiaries typically have Manufacturer Agents. A manufacturer agent is a designated business affiliate who monitors the IPCs in question and submits maintenance requests under a lifetime warranty which comes with all multi-million credit IPC purchases. Owned IPCs frequently benefit from this warranty, especially productive ones - seeing the swift response and mechanical assistance for breakdowns. Most Manufacturer Agents are known personally by these positronics and are often synthetics themselves. Although the lifetime warranty is theoretically available for all IPCs, limited resources mean executives are often forced to pick and choose who receives maintenance. Whereas some less notable IPC would receive the deathly response time of weeks to their warranty reports, some noteworthy or more productive one is likely to receive it instantly. Although bias in the system exists, an effective IPC reflects well on its manufacturer agent, accordingly, they are less likely to request urgent repairs or repairs that they feel are unearned. This system results in an easy way to weed out the less accomplished, and even those engaging in nepotism. After all, these warranties do not cover total reconstruction - and a disabled, unproductive IPC is one less to repair. + + Previously restricted to owned units, this system has been extended to free IPCs working for Hephaestus Industries itself, with positronics working for the Stellar Corporate Conglomerate having the option to apply for a lifetime warranty. Although maintenance is almost guaranteed, the wait times are ruinous, with free IPCs expected to work even harder than their counterparts to receive similar treatment. They are also required to handle the paperwork themselves, showing up in person at Hephaestus facilities for a chance at receiving repairs. + diff --git a/Resources/ServerInfo/Guidebook/Lore/Corporations/IdrisIncorporated.xml b/Resources/ServerInfo/Guidebook/Lore/Corporations/IdrisIncorporated.xml new file mode 100644 index 00000000000..5c2392b9242 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Lore/Corporations/IdrisIncorporated.xml @@ -0,0 +1,59 @@ + +All Information included in this document is licensed under CC BY-SA 4.0, and is taken from https://wiki.aurorastation.org/index.php?title=Idris_Incorporated with some modifications + + # Idris Incorporated + + - [bold]Slogan:[/bold] [italic] Astronomical Figures. Unlimited Power[/italic] + - [bold]Headquarters:[/bold] Abidjan, Ivory Coast, West African Union, Earth, Sol Alliance + - [bold]Official Languages:[/bold] Tau-Ceti Basic, Tradeband + - [bold]Official Colours:[/bold] [color=#3A6F6F]Teal (#3A6F6F)[/color], [color=#00d1d4]Cyan (#00d1d4)[/color], Black (#1e2221), [color=#E0F0F0]White (#E0F0F0)[/color] + - [bold]Founded:[/bold] 2152 by the Standard Sol Calendar. + - [bold]Founder:[/bold] William Idris + - [bold]Notable Branches:[/bold] Celestial Cruises, Caishen Jewellers, Le Soleil Royal + + Idris Incorporated is an interstellar corporate bank headquartered in the Sol Alliance, though after the Solarian Collapse its branch in the Republic of Biesel has grown to become its most prominent base of operations. Representing the largest banking institution in the Orion Spur, they hold a practical monopoly over banking and financial services throughout human space. Idris financial advice is regarded by millions of businesses as something short of divine guidance, the bank able to predict, influence and even control the flow of stock markets in Sol and beyond, power frequently used to bend situations and create favourable openings. Since providing secure credit storage for individuals, corporations and governments alike require a robust security presence, Idris fields one of the largest private security forces spread throughout its vast number of facilities, vaults, banks and commercial establishments. To that end, a sizable synthetic division has been developed to reinforce and partake in various activities, most notably debt reclamation. + + Furthermore, the company manages a number of luxury product chains, hotels and high-class entertainment centres in a multitude of worlds across the Spur, expanding their clientele and becoming the go-to provider for powerful and influential elites of all calibres and tastes. + + ## History + Idris Incorporated was founded in the Ivory Coast by the American-Ivorian investor William Idris in 2152, as pressure grew for a secure way to store credits and have them transferable across solar systems. Idris Trust was, at the time, one of the few banking institutions that offered interstellar services based in Sol, making them one of the most experimental, yet immensely convenient choices for business firms. Idris Trust was one of the first corporations to expand its base of operations to the extra-Solar colony of the Eridani Federation, contributing to a gradually-expanding trans-stellar range. + + Biesel's growing urbanization in the 2190s and beyond led to an increase in the personal wealth of its population. Many of these wealthy citizens were climate refugees from Earth, or high-ranking executives looking to carve out a piece of the newly-settled planet for themselves. NanoTrasen, Zeng-Hu Pharmaceuticals, and Necropolis Industries had cornered the markets on research and development, while Hephaestus Industries was a giant in the field of shipbuilding. But the migration of the wealthy elite and the relative lack of markets that catered to them led the Idris family to branch into luxury goods and customer service, purchasing several ship manufacturing contracts from Einstein Engines to create a fleet of luxury cruisers and yachts, and prepare their other vessels for shipping other products all over the known galaxy. + + Idris Trust rebranded to Idris Incorporated, meanwhile buying out or absorbing several smaller luxury brands into itself. Its new focuses made it a giant on Luna and Biesel. Through the power of branding, it quickly developed a reputation for legendarily thorough service courses that produced some of the finest chefs and mixologists in human space. All the while, every buyer was encouraged to use Idris banking, which spread across the Spur like wildfire and gave the megacorporation the title of the biggest bank in the known galaxy. + + Prior to the discovery of the positronic brain, Idris was one of the few corporations that eschewed simple robots to assist in service work. The company had managed to secure the loyalty (and fear) of many of its employees by luxurious paychecks or predatory loan contracts, and a point of its advertisement was that it relied on purely human service and no automation. But in the wake of the discovery of the positronic brain in 2407, Idris was one of the first megacorporations to adopt a line of "branded" IPCs, for security, service, and piloting. Still, the company is famed for its top-of-the-line human staff in the service sector, with many acclaimed chefs and mixologists to accompany the high brass on their business trips. + + In the modern day, Idris Incorporated is under the stewardship of the mysterious newcomer Alex Mason, acting as a member of the Stellar Corporate Conglomerate. While Mason seems to hold the reins, the Idris family still hangs behind the scenes, directing the company at their inscrutable and often nonsensical whims. + + The bank has begun offering hiring bonuses to those who work for other major interstellar corporations to draw people away from their competitors. However, they are still in a struggle with NanoTrasen due to its large employee base mainly using the company's bank as their method of storing funds, preventing Idris from having a large number of members. This has strained relationships between NanoTrasen and Idris Incorporated, though the relationship between Alex Mason and Miranda Trasen is allegedly as sunny as ever. + + ## Influence and Reputation + Idris Incorporated exercises authority over seven million major banks spread across human space and beyond, and has come to find itself in virtually every major power's pocket in some form or fashion. While not openly contesting NanoTrasen's net worth, Idris and its services can be found to extend as far as its looming superior can see. + + Idris possesses the financial information of nearly every human in the galaxy, and a significant amount of aliens as well. Because of this, it is an incredibly secretive corporation, and much of the information of its inner operations is behind NDAs given to every prospective employee. Idris employees are forbidden from even discussing their training, and there are rumours the company threatens or bribes those who speak negatively of the company's inner workings or management to keep the corporate image as spotless as possible. Employees who have proven themselves are often well-paid, and all Idris employees are well-trained. + + Behind the glossy, classy exterior, an "Idris loan" is almost universally understood to be a contract which it is incredibly difficult to break out of. Complex legal jargon and long terms of agreement are usually targeted at young, desperate, unfortunate, or all three; the few whispers of Idris' training programs point to them being harsh and exacting, with severe fines if one drops out early. This is to say nothing of the repute of Idris Security and Reclamation Units, who have stories floating around of causing broken bones and severe bruises to debtors. + + Any accusations of dubious conduct tends to fall apart or be settled out of court for ludicrous amounts of money. All the same, Idris' reputation preceeds it, meaning few would have the courage to stand against one of the most powerful megacorporations in the world... if they could find any evidence of it. + + ## Positronics and Idris Incorporated + While Idris rarely permits free IPCs with exemplary histories to be recruited to their service department, the most common positronic presence in the corporate are the "brands" of owned synthetics that operate within the various departments of the company. + + Idris synthetics are usually dressed in the teal and black of the company uniform, and if Shells, are usually distinguishable as non-human by stylized "seams" in the synthetic skin on their face and decorative antennae. On some occasions, they are designed to physically fit in with the populace of the planet they are manufactured on or assigned to. Idris shells usually wear teal makeup, such as facepaint, lipstick, and eyeliner. The chassis colour of non-shell units ranges from cream, to teal, to black. Most commonly, they are programmed with high-class Lunan or Silversun expatriate accents. Organic Idris Incorporated employees in the same field as an Idris unit (for example, a guard to an IRU, or a cruise director to an IAU) are always considered as possessing seniority to the IPC, and are expected to obey the orders of organic personnel except when it directly conflicts with their self-preservation drive, or if it may cause undue loss to the company. + + Idris Incorporated security synthetics are perhaps the most notorious aspect of the corporation; they act as loan sharks and cold, uncompromising asset protection and reclamation units. There are two types of synthetic; Idris Reclamation Units and Idris Security Units. Both kinds are maintained by human handlers, who will often coordinate "departments" of security units. Hierarchy between reclamation and security units is often determined on a case by case basis by the units’ handlers. This ensures orderly and efficient management in environments where IPCs may be without the immediate oversight of their human superiors, such as if the units are shipped to another facility for a contract. + + Both reclamation and security units are carefully monitored by their human handlers and undergo regular check-ins. Uniformity and obedience is expected, where behavior outside the norm often results in loss of any autonomy they may have, or even wiping. Idris Security and Reclamation units are expected to wear the “Idris Unit coat” found in the Loadout under the Xenowear - IPC tab. + + Idris Reclamation Units are Shell frames constructed and programmed to investigate, interrogate, and reclaim securities or assets from a client in arrears. They are also employed for corporate investigative work and can carry out information-gathering on "problematic" or "at-risk" employees. In the interest of carrying out their various directives, Reclamation Units are granted authorization for the usage of "reasonable force" against clients, "reasonable" meaning never trending towards irreparable injury or death. They typically operate in teams of two units, who may have themed names and appearances. Reclamation units are designated by the prefix IRU-[Name]. + + When security is needed for a VIP event or a vessel travelling into dangerous space, Idris Security Units are deployed. Security units are usually baseline or Hephaestus G2 models, though Shells and G1 models exist. These teams are accompanied by a human asset protection manager (who rarely engages directly with a threat), who will command the operation and make note of any lost assets or damages. IPC security teams consist of between 2-6 IPCs per human handler. Security units are designated by the prefix ISU-[Name]. + + Given the sensitive nature of their field, security synthetics are barred from purchasing their freedom, and have their positronic brain wiped when they are sold. Many IRUs and ISUs are sold second hand or loaned out to various corporations who usually utilize them for security or investigation work. + + Almost all service sector Idris IPCs are Shell frames, though some baselines and Bishop frames exist as backline chefs or pilots. They fill a wide variety of roles within Idris' company sector, from acting as bank tellers, to piloting cruise ships and tourism vessels, to serving customers as chefs and bartenders. Idris service units are designated by the prefix IAU-[Name] if a pilot, and ICSU-[Name] if otherwise. + + While it is in theory possible for an Idris service unit to purchase their own freedom, depending on their current stationing, this is incredibly rare and difficult. IPCs stationed in places where their freedom may be purchased are closely watched, and will usually be cycled out at a regular pace or have their contract adjusted to prevent their own purchase with gathered funds. + + diff --git a/Resources/ServerInfo/Guidebook/Lore/Corporations/NanoTrasen.xml b/Resources/ServerInfo/Guidebook/Lore/Corporations/NanoTrasen.xml new file mode 100644 index 00000000000..3e29437b473 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Lore/Corporations/NanoTrasen.xml @@ -0,0 +1,54 @@ + +All Information included in this document is licensed under CC BY-SA 4.0, and is taken from https://wiki.aurorastation.org/index.php?title=NanoTrasen_Corporation with some modifications + + # NanoTrasen Incorporated + + - [bold]Slogan:[/bold] [italic] The leader in all things phoron![/italic] + - [bold]Headquarters:[/bold] Mendell City, Biesel, Republic of Biesel + - [bold]Official Languages:[/bold] Tau-Ceti Basic, Sol Common, Tradeband + - [bold]Official Colours:[/bold] [color=#3d4f66]Navy blue (#3d4f66)[/color], Black (#282828), [color=#dfe4ed]White (#dfe4ed)[/color] + - [bold]Founded:[/bold] 2366 by the Standard Sol Calendar. + - [bold]Founder:[/bold] Xavier Trasen + - [bold]Notable Branches:[/bold] Getmore Corporation, Hazel Electromotive, Ingi Usang Entertainment, Nexus Corporate Security, Five Points Armory. + + Considered the largest megacorporation within the Orion Spur, many will find themselves doing the biddings of NanoTrasen -- be it direct or indirect. Initially a biotechnical research company, it rapidly grew in size after the discovery of Phoron. The corporations monopoly on the resource catapulted it into the limelight, where it has remained for the last forty-odd years. Its acceleration into the spotlight has prompted many prying eyes to uncover evidence of rather questionable actions, with rumours perpetuating that they’ve instigated wars on both Adhomai and Moghes in an attempt to exploit the species for a profit. + + NanoTrasens power has since begun to waver as their ability to supply Phoron dwindled -- resulting in their profit margins diminishing considerably. Whilst the corporation has attempted its best to hide its waning influence, the facade has begun to crumble with scrutinizing individuals being able to see its vulnerability. + + Despite the effects of the Phoron Scarcity on the megacorporation, NanoTrasen has managed to secure itself as a crucial member of the newly-founded Stellar Corporate Conglomerate (SCC) with Miranda Trasen serving as the Acting Director of Operations -- which has managed to bolster the company and secure themselves as the dominant corporate presence within the Orion Spur. + + ## History + Initially founded in 2366, the yet-to-be distinguished NanoTrasen was a small company revolving around genetic research and development on Mars. Xavier Trasen, Chief Executor of Operations for NanoTrasen (as well as its founder) managed to propel the fledgling corporation through the ranks after aggressively utilizing business tactics and effective patenting methods to buyout or destroy the local competition. By the end of the century, NanoTrasen had acquired enough capital to begin their operations on Biesel, even managing to secure mining rights in Tau Ceti. + + It wasnt until the discovery of Phoron in 2417 that NanoTrasen became a household name. The unearthing of the rosy crystals in the Romanovich Cloud, and the subsequent realization of its energy-producing potential, swiftly allowed for NanoTrasen to become a trans-stellar entity. Aggressively exploiting the new resources, as well as continued hostile business tactics, bolstered NanoTrasen’s position within Tau Ceti. Phoron’s capabilities made almost all other forms of travel obsolete, with the unveiling of the Bluespace Drive proving Warp to be slow, useless, and unprofitable in the face of this discovery. + + NanoTrasens newfound wealth was speedily employed to bankrupt, absorb or bribe their way to the top. NanoTrasens power and scope grew exponentially, with all types of assets (stations, facilities, ships) cropping up across the Orion Spur. Within the decade, NanoTrasen had managed to secure themselves as the most powerful megacorporation, with their influence felt almost anywhere. + + The declaration of independence by Biesel in 2452 has had a large impact on NanoTrasen, for the better that is. No longer under the purview or management of the Solarian Alliance, NanoTrasen capitalized on the planet’s vulnerability, successfully inserting themselves into the administration and its governance of the emerging republic. Whilst in recent times NanoTrasen has seen its influence wane slightly, they continue to reign supreme through tactical decisions and positionings. An example of such is its placement of their CEO Miranda Trasen as Acting Director of Operations for the Stellar Corporate Conglomerate. + + ## Influence + NanoTrasen has managed to intrude on all aspects of life, with its apparatus and employees being found in almost every nation-state across the Orion Spur -- be it their manufacturing, research, or orbital facilities. It is almost impossible to not know what, or who, NanoTrasen is in this day and age. Its monopoly on the supply of Phoron within the greater Orion Spur has resulted in controversial behaviour, with NanoTrasen managing to successfully scheme and insert themselves within positions of power, through either bribery or direct buying-out of politicians that hold authority. The Republic of Biesel is a good example of these measures, where it is all but said that NanoTrasen controls the administration of the Republic. + + ## Internal Reputation + NanoTrasen has managed to secure a variety of different work benefits for its employees, a common reason among many of the reasons for their employment with the megacorporation. These benefits go above and beyond the regular salary or wages and include insurance, flexible work schedules and other things. NanoTrasen further solidifies its increased work benefits through further education and training courses offered by the NanoTrasen Academy, with the only clause being to continue being employed at the megacorporation. Additionally, NanoTrasen also offers subsidised dental care. + + # Corporate Relations + + ## Einstein Engines + NanoTrasen and Einstein have been rivals for decades, since the discovery of phoron in 2417 and the subsequent invention of the bluespace drive. As bluespace largely superseded warp as a means of faster-than-light travel, NanoTrasen's power rose as Einstein's waned. Since then, the two companies have been fierce competitors, contending in court constantly over various trademarks, patents, and other legal issues. The phoron scarcity beginning in 2462 has led to a reversal of fortunes, with Einstein rising massively in prominence as NanoTrasen's power fades - leading NanoTrasen to spearhead the formation of the Stellar Corporate Conglomerate to attempt to combat their old rivals. The two corporations continue to clash to this day, with Einstein having found a foothold in the city of Phoenixport, Biesel - setting up shop in the heart of NanoTrasen's power. Though Einstein holds the clear advantage for now, NanoTrasen has worked tirelessly to try and slow the meteoric growth of their rival corporation - so far, to little effect, as phoron prices continue to rise and NanoTrasen stock prices continue to fall. + + ## Hephaestus Industries + NanoTrasen and Hephaestus Industries have never been particularly fierce competitors, with the phoron giant purchasing much of its equipment, vessels and IPC workers from Hephaestus factories. However, as the phoron scarcity continues and NanoTrasen's power wanes, Hephaestus has taken full advantage of their decline. Since the formation of the Stellar Corporate Conglomerate, Hephaestus has greatly expanded its presence in the Republic of Biesel, taking near-complete control of shipping on the moon of Valkyrie and moving its central headquarters to Mendell City. Hephaestus's expansion in the Izweski Hegemony - seizing a near-total monopoly of the kind NanoTrasen once held in Biesel - has allegedly been a source of great concern to NanoTrasen, who are rumored to be funding anti-Hegemony political movements on the planet Ouerea in order to weaken Hephaestus's position within the nation. + + ## Idris Incorporated + NanoTrasen and Idris have never been fierce rivals, though Idris's continued prominence in Sol and its expansion into Biesel has led to tension between the two megacorporations. As Idris expanded its banking operations into NanoTrasen's center of power, NanoTrasen attempted to hold onto their banking business in Tau Ceti, incentivizing its employees to only make use of NanoTrasen banking instead - despite the many advantages that Idris held as a competitor. So far, Idris has been gradually expanding its presence in the Republic's financial sector, with many NanoTrasen employees switching to the use of Idris banks despite their employer's wishes. Idris has begun offering hiring bonuses to NanoTrasen employees in an effort to further weaken their power over Biesel's financial sector, as well as establishing branches in many of the former Solarian worlds of the Corporate Reconstruction Zone, where NanoTrasen holds much less direct influence. Though NanoTrasen has issued little official response to this, Idris transport vessels seem to commonly come under attack by pirates in the Reconstruction Zone, with many speculating the phoron giant is attempting to undermine confidence in Idris's renowned security. + + ## Orion Express + NanoTrasen contributed the most resources to Orion Express's formation, and many of its executives are former NanoTrasen staff. As such, the relationship between the two companies has remained warm, with Orion taking over many NanoTrasen-held supply contracts across the Spur. Orion's continued operation in the Sol Alliance, and the fact that they continue to deal with Einstein Engines, has been a source of tension between the two megacorporations in recent years - but in spite of this, NanoTrasen and Orion continue to work together extensively across the Orion Spur. Though Orion's service industry has become a competitor to NanoTrasen's, this remains a small enough portion of both companies' business that it has not been a source of stress on the close relationship the two megacorporations share. + + ## Zavodskoi Interstellar + Zavodskoi and NanoTrasen maintain a decent relationship, with little open conflict between the two corporations. Since the beginning of the phoron scarcity, however, Zavodskoi has taken full advantage of NanoTrasen's waning power in the Republic of Biesel, expanding its arms industry into the Republic. Since the formation of the Tau Ceti Armed Forces and the negotiation of several new supply contracts with Biesel's government, Zavodskoi has managed to take a great deal of business from NanoTrasen - seizing NT's position as the Republic's main weapons supplier. Though NanoTrasen still holds onto their original contract for the Tau Ceti Foreign Legion, the Minutemen and Republican Fleet are both almost entirely outfitted with Zavodskoi-made weapons, armor, and voidsuits. NanoTrasen has attempted to counteract this influence through the recent appointment of Nathan Trasen as Secretary of Defense - but even with a Trasen in such a prestigious position, Zavodskoi has still managed to secure a solid grasp on the Republic's military industry. NanoTrasen has increased funding to Nexus Corporate Security several times in an effort to use their newly-formed PMC to undermine Zavodskoi's security business in the Corporate Reconstruction Zone, with some measure of success. + + ## Zeng-Hu Pharmaceuticals + Although NanoTrasen and Zeng-Hu work closely together, the two megacorporations have a rocky history. When NanoTrasen began, it was mainly operating in the biomedical field, which Zeng-Hu has historically been the frontrunner in - leading to NanoTrasen being outcompeted at seemingly every turn by the pharmaceutical giant. The discovery of phoron led to a rapid pivot in NanoTrasen's direction, and its many medicinal uses led to Zeng-Hu purchasing large quantities of phoron from NanoTrasen mining operations in the Romanovich Cloud. Despite this, Zeng-Hu CEO Liqin Hsiao-Li is rumored to still hold a grudge against NanoTrasen for their attempts to push into Zeng-Hu's sphere of influence decades ago, even as Zeng-Hu attempts to do the same in Biesel. Though NanoTrasen maintains its grasp on Tau Ceti's healthcare system, having blocked Zeng-Hu's expansions in the Republic's courts, Zeng-Hu has been increasingly expanding their operations in the wider Corporate Reconstruction Zone - having managed to seize the majority of the market share in the medical and pharmaceutical industries outside of Tau Ceti itself. Due to the many medical and pharmaceutical uses of phoron, Zeng-Hu remains one of NanoTrasen's largest purchasers of the increasingly rare element, and is reportedly one of NanoTrasen's closest allies within the Stellar Corporate Conglomerate. + diff --git a/Resources/ServerInfo/Guidebook/Lore/Corporations/OrionExpress.xml b/Resources/ServerInfo/Guidebook/Lore/Corporations/OrionExpress.xml new file mode 100644 index 00000000000..7d2da78a6b4 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Lore/Corporations/OrionExpress.xml @@ -0,0 +1,54 @@ + +All Information included in this document is licensed under CC BY-SA 4.0, and is taken from https://wiki.aurorastation.org/index.php?title=Orion_Express with some modification + + # Orion Express + + - [bold]Slogan:[/bold] [italic]Faster than light.[/italic] + - [bold]Headquarters:[/bold] Mendell City, Biesel, Republic of Biesel + - [bold]Official Languages:[/bold] Tau-Ceti Basic, Tradeband + - [bold]Official Colours:[/bold] Black (#414446), [color=#7a6347]Brown (#7a6347)[/color], [color=#c3c49e]Silver (#c3c49e)[/color] + - [bold]Founded:[/bold] 2464 by the Standard Sol Calendar. + - [bold]Founder:[/bold] Chin-hae Hong + - [bold]Notable Branches:[/bold] Zephyr Shipping Company, Meng Logistics Incorporated, Quick-E-Burger + + Founded in 2464, Orion Express is a manufactured megacorporation designed to handle logistics for the Stellar Corporate Conglomerate in the wake of the phoron scarcity, and the sudden entangling of supply lines that left the Conglomerate struggling for more resources. Its main branch is dedicated to cargo services and transport, but also features a fledgling robotics division mainly focused on industrial synthetics to aid in its logistics missions. The Orion Express is expected to become an integral part of the Stellar Corporate Conglomerate’s future through delivering supplies and merchandise throughout the Orion Spur. + + ## History + The creation of the Stellar Corporate Conglomerate suddenly brought several stations, offices, and installations under the control of a single group. While the megacorporation's supply channels were enough on their own, they were quickly overwhelmed by the sheer space they had to cover. Missing shipments, long delivery times, and overall chaos plagued the transport of goods between the different members of the Stellar Corporate Conglomerate. To solve this glaring issue, the corporations (with NanoTrasen contributing the most resources and manpower) united a portion of their cargo departments into a sole entity in 2464; Orion Express. + + Alongside handling the internal supply lines of the Stellar Corporate Conglomerate, the Orion Express also acquired the duty of delivering corporate goods to its buyers. The megacorporation Extranet shops were merged into one domain; the Orion Express Market. Thanks to this, anyone planning to purchase anything from the Stellar Corporate Conglomerate must go through a supplier who eliminates competition to guarantee maximum profit. Countless workers now toil in multiple warehouses, hangars and ships to deliver the orders in time. No region is too remote for the Orion Express' couriers. + + ## Influence + In spite of its recent unveiling, the Orion Express already wields considerable influence within the Orion Spur. Its fleets are a common sight within the Republic of Biesel, and its Corporate Reconstruction Zone, as well as anywhere with any SCC presence. Outside of these aforementioned zones, its influence is diminished, but has been growing substantially as time passes, the corporation taking steps to worm its way into shipping markets not already dominated by other corporations; mainly been small scale shipping, and shipping to more remote areas of the spur. + + It does this by using Orion Express Automated Stations, common sights all around the Spur; especially in the outer edges of the Coalition and the Frontier, where Orion Express services depends on ordinary people and ships picking up and delivering packages for each other, with Orion Express only delivering to the automated stations and other distribution points. Stations tend to be of the smaller variety, with very few facilities for crew. These stations have caused some friction between Orion and many frontier planets, as the corporation offers its services for vastly inflated prices, as it slowly builds a monopoly over transport of goods to isolated systems. + + ## Internal Reputation + Orion Express is known to employ many unskilled workers in its warehouses, cargo depots, and shipping vessels. The corporation advertises itself to potential employees as a "jumping off point" for those interested in the shipping industry, but lack the qualifications required for higher-level positions or even lower-level positions at other megacorporations in the Spur. + + While Orion Express does not pay as well as the other megacorporations or offer benefits such as overtime pay, employees are compensated by other means; flexible hours and TOIL (Time Off In Lieu) are common benefits provided to all workers. Those in more skilled fields such as machinists or pilots still receive competitive pay, but miss out on some of the benefits working for corporations such as Hephaestus or Zavodskoi provide. Despite this lack of pay and benefits compared to other megacorporations, Orion’s rock bottom hiring standards and recent founding attract people from across the spur who may not have been able to find work with a megacorporation or work at a megacorporation that did not have skeletons in the closet until Orion came along. Many employees have used their positions within Orion to secure livelihoods for themselves they’d be otherwise unable to, and praise the company for it despite its drawbacks, of which it has many, beyond the poor pay and benefits. + + As a result of its tumultuous birth within the SCC, Orion has quickly established a reputation within the Spur for its rapid-fire style of inner management and cohesion. Positions, orders and even salaries can change by the day, all serving to maximize delivery times and costs. To a low-ranking employee, this means a rapidly shifting work environment - to top officials, it means orchestrating a neverending seesaw of “controlled chaos”. Pilots, miners and service workers are given a surprising amount of autonomy to deliver on their orders as fast as possible, which they must, lest they risk being replaced by the countless eager applicants who may have drive and imagination where they lack credentials. Most of the time this is due to heavy demands from the other members of the SCC, who expect quick turnarounds on their orders, and are not afraid to threaten higher-ranking officials within the company. In the end, the leaders of Orion Express are just as fearful of being replaced as their workers are. + + Orion Express tries to promote a work environment that is internally competitive rather than externally, encouraging employees to beat quotas and set personal goals while discouraging interpersonal conflict while working in mixed facilities such as the SCCV Horizon. Since it owes its existence to the rest of the Chainlink, Orion Express’ bottom line is nearly always to support the Stellar Corporate Conglomerate, resulting in an atmosphere that constantly pushes its workers to improve and evolve, at all levels. Orion's policy is to expand into areas that the other megacorporations have little to no presence while avoiding direct competition in places where other corporations have a stranglehold. In the event they have to enter a market dominated by another SCC corporation, such as mining, Orion has a policy of cornering systems/areas that have proven too troublesome for other companies to take. On the surface, most operations seem to be operating at a loss - but in truth, millions of small, independently-led and created projects are what keep Orion Express’ earnings in the green. + + # Corporate Relations + + ## Einstein Engines + Einstein Engines and Orion have had little in the way of a working relationship, with the shipping corporation being formed largely from assets of their rivals at NanoTrasen. Einstein has reportedly advocated extensively for subjecting Orion to the same nationalization as faced by the other SCC corporations in the Sol Alliance - though so far to little effect, as Orion continues to operate freely within Solarian space. Outside of Sol, however, Einstein makes frequent use of Orion's shipping services, particularly within the Republic of Biesel and the Nralakk Federation - two nations where Orion is able to transport goods far more freely than Einstein. + + ## Hephaestus Industries + Despite competition in the mining industry, Hephaestus and Orion have little animosity between them. The two corporations cooperate frequently in the robotics field, as Orion's fledgling robotics division is not believed to be a serious threat to Hephaestus's investment in the same area. Since the formation of Orion Express, the two megacorporations have cooperated frequently in the Republic of Biesel, building several joint factories in orbit of the planet Reade in order to augment production there. Orion mining, however, has cut into Hephaestus's business, though so far this has remained a small detriment to the industrial titan. Prior to the Izweski Hegemony's economic collapse and Hephaestus's subsequent expansion, Orion worked closely with the Unathi Miners' Guild, with many of the Guild's leaders seeing involvement with Orion as a way to remain competitive with Hephaestus within the Hegemony. This arrangement came to an end with Hephaestus's acquisition of the Guild, however, with only those former guildsmen who refused to join Hephaestus still holding positions with Orion - for substantially less pay than before. + + ## Idris Incorporated + Orion and Idris have little in the way of competition - though Orion has expanded into the service sector, they have targeted a very different clientele than Idris aims for. Idris relied on Meng Logistics Incorporated for several deliveries to Silversun prior to the formation of Orion Express, and reportedly advocated for the Stellar Corporate Conglomerate's purchase of the small shipping company in 2463. Orion avoided the wave of Solarian nationalization by formed after the creation of the Solarian Corporate Authority, but Idris has wielded its remaining influence in Sol against the voices pushing for Orion to be subject to the same harsh penalties of the rest of the SCC - ensuring that, at least for now, Orion remains able to operate freely in Alliance space. + + ## NanoTrasen + NanoTrasen contributed the most resources to Orion Express's formation, and many of its executives are former NanoTrasen staff. As such, the relationship between the two companies has remained warm, with Orion taking over many NanoTrasen-held supply contracts across the Spur. Orion's continued operation in the Sol Alliance, and the fact that they continue to deal with Einstein Engines, has been a source of tension between the two megacorporations in recent years - but in spite of this, NanoTrasen and Orion continue to work together extensively across the Orion Spur. Though Orion's service industry has become a competitor to NanoTrasen's, this remains a small enough portion of both companies' business that it has not been a source of stress on the close relationship the two megacorporations share. + + ## Zavodskoi Interstellar + Zavodskoi contributed large portions of its logistics division to Orion Express, and has maintained a decent relationship with the logistics corporation. Though their Solarian business has been scaled back substantially, Zavodskoi still relies on Orion vessels for transport of its goods in the Alliance, and Orion has been known to favor Zavodskoi security when outside force is required for particularly troublesome work. Orion's ties to Hephaestus are the largest source of tension between the two corporations, and Zavodskoi is rumored to have attempted to seed several of its own agents within Orion-Hephaestus joint operations in order to gather intelligence on their rival. + + ## Zeng-Hu Pharmaceuticals + Since the formation of Orion Express, Zeng-Hu has made extensive use of the company's shipping services - Orion's operations within the Sol Alliance and Nralakk Federation proving highly beneficial to the keiretsu. Though Orion does operate in the robotics industry, its robotics division is viewed as insignificant and not posing any real threat to Zeng-Hu's own developments in the field. Many Zeng-Hu products are carried to destinations across the Orion Spur by Orion vessels, and the two megacorporations maintain a strong working relationship across the Spur. + diff --git a/Resources/ServerInfo/Guidebook/Lore/Corporations/PrivateMilitaryContractingGroup.xml b/Resources/ServerInfo/Guidebook/Lore/Corporations/PrivateMilitaryContractingGroup.xml new file mode 100644 index 00000000000..e91fd189965 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Lore/Corporations/PrivateMilitaryContractingGroup.xml @@ -0,0 +1,39 @@ + +All Information included in this document is licensed under CC BY-SA 4.0, and is taken from https://wiki.aurorastation.org/index.php?title=Private_Military_Contracting_Group with some modifications + + # Private Military Contracting Group + + - [bold]Slogan:[/bold] [italic]Always on guard, always on watch.[/italic] + - [bold]Headquarters:[/bold] Eridani III, Epsilon Eridani, Eridani Corporate Federation + - [bold]Official Languages:[/bold] Tau-Ceti Basic, Sol Common, Tradeband + - [bold]Official Colours:[/bold] [color=#b9bdcd]White (#b9bdcd)[/color], [color=#99ccff]Blue (#99ccff)[/color], [color=#3355ff]Dark Blue (#3355ff)[/color], Black (#363c43), [color=#c4a56e]Gold (#c4a56e)[/color] + - [bold]Founded:[/bold] 2463 by the Standard Sol Calendar. + - [bold]Founder:[/bold] Kubra Mobolaji + - [bold]Notable Branches:[/bold] None: PMCG contracts for all members of the Stellar Corporate Conglomerate. + + A coalition of security and medical contractors in service of the Stellar Corporate Conglomerate, the Private Military Contracting Group is one of the elements born from the necessity of protecting an ever-growing corporate empire. Gathering mercenaries from all across the spur, the Private Military Contracting Group deploys a diverse force to anywhere they are needed; from mere office buildings to outposts in the Corporate Reconstruction Zone. As the megacorporations expand, these contractors follow to secure their holdings. + + Unlike the other members of the Stellar Corporate Conglomerate, the Private Military Contracting Group has few employees of its own. Only some liaisons and bureaucrats work behind the scenes to hire and manage the contractors. The rest of its members are in fact part of several organizations contracted to supply the Private Military Contracting Group. + + ## History + Eridanian military contractors as a whole originate in the early 2200s, during the takeover of the Epsilon Eridani by its economic council. As residents of Eridani I (then known as Kamfulu) rioted and unionised against dangerous working conditions, low pay, and environmental destruction that was occurring on the planet, the Eridani Economic Council formed two loose coalitions of those willing to "restore order"; citizen militias wishing to earn a paycheck in an unstable climate, and ex-Solarian military personnel who were used to pacifying an unhappy populace. These coalitions were deployed en-masse against protestors; they broke strikes, disappeared the loudest dissenters, and restored iron-fisted order to Kamfulu. + + After the majority of social unrest was quelled, these militias and private military contractors were gradually adopted into the new Eridani Corporate Federation. The experienced ex-military personnel were established as Ringspire, marketed as highly-paid, highly-deadly mercenaries capable of being deployed in conflict zones just about everywhere. Meanwhile, those who had started out with security contracting in the riots were organised into the less-formal Eagle Corp., who were eager to hire just about anyone and became a final option for the desperate all over Solarian space. These corporations would eventually fall under the umbrella of control for the Eridani Federation's chief of system security, essentially the commander-in-chief for any of Eridani's military forces. + + During the Interstellar War, these "EPMCs" grew to great renown as they were deployed alongside Solarian soldiers in ground forces and as strike teams alongside aerospace vessels. The news of their brutality was feared and loathed by the frontiersmen and Solarian allies alike. The Interstellar War also heralded the creation of Sekhmet Intergalactic in 2294, a medical contracting group; while Ringspire and Eagle Corp. had their own medical response divisions, Sekhmet's creation involved the recruitment of medical specialists, multi-pronged responses for both the groups, and an unscrupulous yet skilled and professional trauma response team to be sent out across the galaxy. + + N4NL Incorporated was the fourth corporation to join the official umbrella of Eridani contractors in 2307, as the group branched into data security, electronic warfare, and digital asset protection. While Eridani's mass surveillance and data collection algorithms had always been vast, N4NL perfected it, creating the intricate network behind the ECF's employment records, banking, and punishing Extranet surveillance. Shortly after its official addition, the collective of Ringspire, Eagle Corp., Sekhmet, and N4NL became known as the Golden Fist for their incredible reputation for quality results across the Spur. + + The corporation that would become the "thumb" of the Golden Fist was founded in 2450 by Farhad al-Sharif, a former N4NL executive and "positronic enthusiast" who had the unusual reputation of purchasing IPCs only to allow them to operate relatively uninhibited. Index Security Solutions was al-Sharif's plan to make better use of what he viewed as the fascinating capabilities of IPCs, and so became the only EPMC that recruited self-owned IPCs in large quantity. + + The Golden Fist's reputation was such that in 2463, in the face of the growing instability brought on by the phoron scarcity and the Solarian Collapse, the executive board of the Stellar Corporate Conglomerate approached the Board of Five, Eridani's heads of government. The insurgency in the Corporate Reconstruction Zone had the Conglomerate envisioning an agency responsible for reinforcing the corporate security and medical ranks with hired contractors, in a similar fashion to how the Golden Fist was currently operated. It was proposed that Kubra Mobolaji, the chief of system security for the ECF, would be chief executive officer of this conglomerate within the conglomerate, and permit private contracting firms around the Spur to join the initiative. + + Thus, the Private Military Contracting Group was born, becoming an umbrella organization to coordinate several distinct contractor elements within the Conglomerate's structure. Its subsidiaries are tasked with providing adequate manpower, while the Private Military Contracting Group deploys them where it is necessary. While some may question the loyalty of the Group's employees, the credits fuelled into their contracts have been enough to secure their allegiance. + + The PMCG is currently tasked with supplementing the security and medical staff in SCC facilities, and was formerly tasked with supplementing the Tau Ceti Armed Forces during the Peacekeeper Mandate of Mictlan. When the megacorporation's lines become too thin due to the expansion of the conglomerate, the contractors from the Private Military Contracting Group are called to patch these holes. Despite their diverse backgrounds, all employees of the Group receive the necessary training to work in SCC facilities. + + ## Influence + The PMCG has managed to carve out a niche for itself within the greater Stellar Corporate Conglomerate framework. Previously unknown or latent PMC groups are suddenly filling the holes that exist in the intricate networks of the Stellar Corporate Conglomerate while drawing ire from some who may not wish to see the underworld of contractor work in their professional setting. It is not uncommon to see highly trained Eridani mercenaries flank loutish Frontier bounty hunters, or Unathite noble physicians among Tajaran pharmacists who have retired from biological warfare. + + Nevertheless, the Group's wide-ranging talents and Kubra Mobolaji's tight management, as well as being carried by the massively profitable Golden Fist, ensure its permanence as long as the PMCG's methods remain effective. They also hold power as an independent organization, always holding at least some influence in any war-torn region of space, including the Sparring Sea or the Solarian Wildlands, as they have grown quite popular among those who quickly need an expendable force to do their bidding. + diff --git a/Resources/ServerInfo/Guidebook/Lore/Corporations/StellarCorporateConglomerate.xml b/Resources/ServerInfo/Guidebook/Lore/Corporations/StellarCorporateConglomerate.xml new file mode 100644 index 00000000000..accd1849b9d --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Lore/Corporations/StellarCorporateConglomerate.xml @@ -0,0 +1,45 @@ + +All Information included in this document is licensed under CC BY-SA 4.0, and is taken from https://wiki.aurorastation.org/index.php?title=Stellar_Corporate_Conglomerate with some modifications. + + # Stellar Corporate Conglomerate + - [bold]Slogan:[/bold] [italic]The unbreakable chainlink, holding the Spur together[/italic] + - [bold]Headquarters:[/bold]Top of the World, Biesel, Republic of Biesel + - [bold]Official Languages:[/bold] Tau-Ceti Basic, Sol Common, Tradeband + - [bold]Official Colours:[/bold] [color=#336699]Navy blue (#336699)[/color], [color=#81d9ee]Cyan (#81d9ee)[/color], [color=#f1b61c]Gold (#f1b61c)[/color] + - [bold]Founded:[/bold] 2462 by the Standard Sol Calendar. + - [bold]Founder:[/bold] NanoTrasen, Idris Incorporated, Hephaestus Industries, Zavodskoi Interstellar, Zeng-Hu Pharmaceuticals, Eridani Private Military Contractors. + + Formed at the height of corporate power in the galaxy, the Stellar Corporate Conglomerate — colloquially known as the “Chainlink” — is a group of seven megacorporations exercising undisputed economic dominance over the Orion Spur. The Chainlink was founded to secure corporate-owned assets within Tau Ceti during the invasion of the Republic of Biesel by Grand Admiral Raymond Özdemir, who commanded the 35th Fleet of the Solarian Navy during its siege of Tau Ceti. + + The Chainlink has essentially forced the largest economic influences into a shell corporation, which the Trasen family holds an unsteady authority over. Though cooperation has been deemed “essential” at this point in time, behind the shaky peace lies unsteady alliances, corporate espionage, and cut-throat tactics as each corporation battles for dominance. Their unlikely alliance comes as a result of Einstein Engines’ threat to their economic prowess, as Einstein's warp drives and prominence within the Nralakk Federation and Sol Alliance have given them a new edge in a galaxy affected by a phoron scarcity. + + [bold]Notable Members: [/bold] + - Titanius Aeson, CEO of Hephaestus Industries + - Alex Mason, CEO of Idris Incorporated + - Liqin Hsiao-Li, CEO of Zeng-Hu Pharmaceuticals + - Lyudmila Zavodskoi, CEO of Zavodskoi Interstellar + - Kubra Mobolaji, CEO of the Private Military Contracting Group + - Chin-hae Hong, CEO of Orion Express + + ## History + Though once shrouded in secrecy, the Stellar Corporate Conglomerate has become a staple of the Orion Spur, acting as the masters of the interstellar economy. With the earliest dated supply shipments being traced to 2458, it appears that the constituent megacorporations within the Stellar Corporate Conglomerate have sought to cooperate with one another to ensure their economic dominance since the First Solarian Invasion of the Republic of Biesel, though within the shadows. Almost every element of the Stellar Corporate Conglomerate had been hidden and concealed from the public, with even the deepest scrutiny only managing to uncover the "chainlink" insignia on supply shipments. + + However, following the Second Solarian Invasion of the Republic of Biesel in 2462, the cooperative of the Stellar Corporate Conglomerate revealed themselves to the interstellar community, proclaiming their goal was to protect the financial livelihood of all their corporate clients and assets, and to ensure megacorporate facilities across the Republic of Biesel would not be diminished as a result of “rogue actors”. + + Since its reveal, the Chainlink has gone on to ensure its dominance through several masterful techniques – mostly centring around the Corporate Reconstruction Zone or the annexed Solarian territories by the Republic of Biesel. Pouring countless resources into stabilizing the region so as to further exploit it, the Chainlink has all but managed to prop the annexation as a legal undertaking of colonies abandoned by the Sol Alliance during the Collapse. Their efforts have not gone without resistance; in particular, the Republic of Mictlan proved ungrateful for the Chainlink’s efforts to uplift them. Sponsoring the Peacekeeper Mandate, a Biesellite military operation aiming to enforce the annexation, the Chainlink briefly managed to quell the uprising from various dissident groups. But the guerilla war on the planet has ended up in a less-than-ideal conclusion for the corporations, with Mictlan eventually securing both the surrender of its insurgents and the power to limit the megacorporations' influence. + + Meanwhile, one of the Chainlink's primary assets, the SCCV Horizon, has undertaken several humanitarian missions across the Spur in an attempt to bolster its reputation. Hephaestus Industries has helped provide the electronic "vaccine" for the Rampancy Crisis of early 2466, and at it and Zeng-Hu Pharmaceuticals' behest the Horizon has been assisting the Izweski Hegemony and the Nralakk Federation with humanitarian aid for the planet of Moghes. + + Elsewhere, the cold war and occasional skirmishes between the Republic of Elyra and the Empire of Dominia remain an excellent source of funding for both Zavodskoi Interstellar and the Private Military Contracting Group. The PMCG helps bankroll the Elyran military contractors of Jackal Incorporated, while Zavodskoi continues to manufacture and equip much of the Imperial Fleet. Yet both megacorporations do not directly rival each other, and both have goals of expanding into each other's home turf – it benefits both Zavodskoi and the PMCG to have as wide a client base as possible. + + Miranda Trasen maintains her dominance of the Orion Spur through her manoeuvring into the Director of the Stellar Corporate Conglomerate, using her position to push NanoTrasen interests, to the annoyance of the other constituent megacorporations. Whether or not NanoTrasen can remain on top in the face of dwindling phoron resources and the refinement of Einstein Engines' warp drives remains to be seen. + + ## Influence and Reputation + The sheer size of the co-operating corporations' influence is enough to sway many of the powers on the interstellar stage. While some of the larger political entities retain some measure of independence, they still ultimately rely on the constituent members of the Stellar Corporate Conglomerate for their respective niches within the interstellar economy. + + Because of these galaxy-spanning ties, the SCC has promoted itself as a "peacekeeper" for the Orion Spur. Through the Conglomerate, nations and peoples that would have reason to make outright war with each other have settled on an uneasy peace – or, more cynically, a cold war instead of a hot one. The Stellar Corporate Conglomerate has leveraged the Republic of Biesel's independence from the Sol Alliance, and the corporate auxiliary forces of the Tau Ceti Armed Forces are a considerable contributor to the Biesellite military's staying power. Even the absence of a member-corporation from a nation-state is more space for the rest of the Conglomerate to form trade ties; the Republic of Elyra, despite expelling NanoTrasen from its borders, continues to trade with Biesel through Orion Express, Zeng-Hu Pharmaceuticals, and Idris Incorporated most prominently. + + From banks to manufacturers, only a sliver of economic productivity in the Spur is controlled by independents. The main threat to the Stellar Corporate Conglomerate is Einstein Engines; despite the combined power of the Chainlink, Einstein has managed to compete against them through tight ties with the Sol Alliance and Nralakk Federation, both the largest economies to exploit. But even despite this alleged rivalry, most of the member-corporations of the SCC have little trouble making dealings or working alongside Einstein Engines. Zeng-Hu and Idris are the most notable trade partners of Einstein, frequently purchasing their warp drives, their Shell frames, and commissioning them for ship designs, which causes the corporate echelons of NanoTrasen no end of grief. + + As the alliance grows older, it becomes more and more evident that the constituents are operating on their own agendas, with the Conglomerate an alliance of convenience. Conducting themselves in a manner to not directly oppose NanoTrasen, the other megacorporations have begun leveraging their economic influence on nations, as seen with Hephaestus Industries’ planned expansion across Moghes, Idris Incorporated’s leveraging credit provided to NanoTrasen during its attempt to recapture control of Phoenixport, and the Private Military Contracting Group purchasing the Grupo Amapola, made up of former corporate opponents. + diff --git a/Resources/ServerInfo/Guidebook/Lore/Corporations/ZavodskoiInterstellar.xml b/Resources/ServerInfo/Guidebook/Lore/Corporations/ZavodskoiInterstellar.xml new file mode 100644 index 00000000000..4a444991627 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Lore/Corporations/ZavodskoiInterstellar.xml @@ -0,0 +1,51 @@ + +All Information included in this document is licensed under CC BY-SA 4.0, and is taken from https://wiki.aurorastation.org/index.php?title=Zavodskoi_Interstellar with some modifications. + + # Zavodskoi Interstellar + - [bold]Slogan:[/bold] [italic]Even one matters on the battlefield.[/italic] + - [bold]Headquarters:[/bold]Nova Luxembourg, Moroz, Empire of Dominia + - [bold]Official Languages:[/bold] Tau-Ceti Basic, Sol Common, Tradeband + - [bold]Official Colours:[/bold]Black (#363c43), [color=#637C65]Sage Green (#637C65)[/color], [color=#920a0a]Red (#920a0a)[/color], [color=#7a6347]Brown (#7a6347)[/color] + - [bold]Founded:[/bold] 2259 (As Necropolis Industries), 2462 (As Zavodskoi Interstellar) + - [bold]Founder:[/bold] Yefin Dementyev, Lyudmila Zavodskoi + - [bold]Notable Branches:[/bold] Kumar Arms, Confiance Technologies, Ingkom, Falerio Security Services. + + Zavodskoi Interstellar, formerly Necropolis Industries, is a weapons and aerospace manufacturing and development conglomerate founded in 2259. Zavodskoi distributes everything from light to heavy arms, space vessel weapons, ship-building, aircraft, ground vehicles, combat spacesuits, and military software. They also produce the Z.I. line of positronics, used for private security and military contracting. As Necropolis Industries, it primarily focused on genetic research and the biosciences; though Zavodskoi continues to have a genetics division, it is vastly outstripped by its competitor Zeng-Hu Pharmaceuticals. + + Since the beginning of the phoron scarcity, Zavodskoi Interstellar has seen a rise in its relevance and profits, as civil unrest grows around the Orion Spur. Its focus on the research and development of weaponry has made it vital to the continued “stability” of the Stellar Corporate Conglomerate, as well as any other clients that have either purchased or hired their arms. Notably, its continued relationship with the Empire of Dominia has provided the Empire an opportunity for cooperative and profitable business relations with the rest of humanity. + + ## History + Necropolis Industries was founded in 2259 by Yefim Dementyev, a former aerospace engineer with the Soviet Union. With the Alliance's outer territories beginning to show signs of unrest, the concerns of pan-galactic war were seen as an inevitability. With this in mind, Necropolis' making-a-splash invention was the combat-capable voidsuit. Lighter than a typical space suit and equipped with specialised atmospheric shielding that allowed a soldier to quickly slip in and out of it, the "Dracula" combat voidsuit was nevertheless heavy, cumbersome, and expensive. But the design showed promise, and the Sol Alliance's need for military expansion pushed demand for newer, sleeker versions, which skyrocketed with the outbreak of the Interstellar War. + + The years of the Interstellar War saw Dementyev oversee Necropolis branching into weapons and ship armaments, which were often purchased by the similarly-young and upcoming Eridani private military contractors. When the Treaty of Xansan was finally settled, Necropolis had secured a contract with the Solarian military, leading to it supplying the Alliance with guns and its now-iconic "Gargoyle" combat voidsuit. + + As relative peace followed the largest-scale conflict in human history, the board of directors turned their gaze to a yet-untouched (by them) field; biological experimentation. Though Zeng-Hu Pharmaceuticals was unambiguously more adept and well-established than their competitor, Necropolis' focus on gene therapy, xenobiology, and biological limb replacements led them to brief interest from the wider galactic community. While official correspondence pointed to a desire to broaden their sphere of influence and move away from solely weapons manufacturing, insiders at the company would later recount that Yefim Dementyev had begun to feel the creeping fear of his own mortality. Rumours would tell that he was obsessed with preserving himself and his legacy, and would use his own resources at any cost to achieve this preservation. + + However, Dementyev's pursuit was halted by his abrupt death from a septic infection in 2317. His son, Yevgeniy Dementyev, took hold of the company's reigns, and steered it into the twenty-fourth century. During this time, he would bear witness to the contact with the Empire of Dominia by the Alliance. Dementyev the younger quickly took advantage of the nascent Empire's newness to the galactic stage, and established relations with the Great Houses and Emperor Godwin Keeser himself. From then on, Necropolis and the Empire's intimate ties meant that Necropolis boosted the efforts of not just Dominia's conquest, but the efforts of its genetic modification. + + In 2389, Yevgeniy Dementyev passed down the mantle of chief executive officer to his son, Kasimir Boytsov. While Boytsov was not just a dabbler in genetics and had a keen mind like his father and grandfather, he was reputed for his impulsiveness and stubbornness, refusing to admit when the tides were turning against him. While Necropolis' developments in weapons manufacturing and genetics were profitable, they were being easily outstripped in the manner of shipbuilding by Hephaestus Industries, and left in the dust by Zeng-Hu Pharmaceuticals. By 2450 Necropolis had become the neglected runner-up of the megacorporations, the stocks of the other major corporate entities far outstripping them. But it was during this time that an information security operative at the company, Tikhon Zavodskoi, quietly recommended his cousin Lyudmila for a position as a weapons researcher. "The woman from Pluto", as she was known, quickly worked her way up the ranks of the company to become the assistant to the chief security officer, bringing in her own cohorts of associates from Dominia and Sol alike. + + 2462 was when change would overwhelm Necropolis. Kasimir Boytsov was accused by the Alliance government of corruption, insider trading, bribery, and supplying the black market with weapons. He denied the accusations, but before a proper case could be brought against him, he collapsed at a press conference, and fell into a coma. The company was sent into turmoil; Boytsov had never named a proper successor, despite his rapidly-advancing age. Lyudmila Zavodskoi had become a surprise contender; her new group of executives, including her cousin Tikhon and the Imperial countess Kamilla Strelitz, pushed out the old heads and helped turn Necropolis into rebranded, rebuilt Zavodskoi Interstellar. + + Rather than pursue further genetics work, Zavodskoi Interstellar opted to pursue what it knew how to do better than any other megacorporation in the Orion Spur: military equipment. Three main pillars continue to drive Zavodskoi Interstellar. The largest is its classical military-industrial complex, and a massive amount of humanity's military equipment, ranging from infantry small arms to combat hardsuits to vehicles and much more, are today produced by it or one of its subsidiaries. Confiance Technologies, a recent subsidiary of Zavodskoi Interstellar, is one part of the military-industrial pillar that has even branched out into robotics. Its second pillar, as a result of Ingkom, is its robust engineering wing - Zavodskoi engineering staff are a common sight throughout the Orion Spur, though their usage within the Solarian Alliance has faltered following the Solarian Collapse of late 2462. + + A third, less public, pillar of Zavodskoi Interstellar is its private security force. These officers go wherever Zavodskoi employees go and are known throughout the Orion Spur for their professionalism. According to company representatives, Zavodskoi's security wing is one of the most competitive in the Orion Spur and is trained longer than any other megacorporation's security force. A recent turnover in the highest ranks of the security forces following the rebranding of Necropolis to Zavodskoi has caused some suspicion among third-party observers, but no information has been released on this by Zavodskoi representatives. + + ## Influence and Reputation + As a hiring practice, Zavodski Interstellar finds itself poaching highly skilled workers from the other megacorporations. Workers with Zavodskoi usually flocked to the company to exploit its high pay - the dissolution of several underperforming departments and subsidiaries in more contested markets means that the company can focus and attract industry experts to work on weapons research. Although perfecting weapons of war is a task that will never truly be finished, the company is recognized as the uncontested leader in their development. As such, it holds a great deal of sway in almost every corner of the Spur. + + Clients ranging from small colonial militias to interstellar governments trust and rely on the megacorporation for their expertise. In this day and age, Zavodskoi pioneers where others do not by developing and manufacturing the highest-quality niche-function firearms, or just the biggest and baddest weapons they can muster. The extent of this research dominates every echelon of the corporation leading to the unified pursuit of maximizing the efficiency of its stock, rather than trying to cover the widest range possible. + + Zavodskoi Interstellar rarely works alongside Zeng-Hu contractors - intentionally so. The two corporations frequently butt heads after Zeng-Hu Pharmaceuticals left Zavodskoi genetics research in the dust, with the relation between the two sour at best. Although this attitude has lessened with the formation of the SCC, rivalry still occurs. This echoes down to the lowest ranks, as even the common worker can find themselves cheering onto outclassing the opposition. This isn’t an excuse to get fired for trashing your coworker. + + ## Positronics and Zavodskoi Interstellar + In the aftermath of Necropolis Industries' rebranding into Zavodskoi Interstellar, synthetics and positronics have become more of a common sight in company facilities outside of the Empire of Dominia. These Zavodskoi IPCs are however banned from command and leadership positions within Zavodskoi Interstellar due to the corporation's internal policy, which views positronics as a workforce rather than a management force. This ban includes Zavodskoi Interstellar corporate liaisons. + + Newly implemented and with some in the company opposed to their presence, Zavodskoi positronics face systemic fragility within the company. In an effort to employ and contract out the best representation for the company, Zavodskoi will routinely memory wipe, retool, or outright scrap and sell their IPCs for workplace accidents, failure to execute an order, or underperformance. This process has been largely seen as a lighter version of the Burzian Method. This authority does not extend to Zavodskoi Interstellar corporate liaisons although they are encouraged to check in with their positronic contractor personnel from time to time. Therefore, Zavodskoi positronic contractors are often those struggling to maintain a positive evaluation or saved from the scrapyard all together. + + In an effort to bolster company morale, organic personnel are able to lease out Zavodskoi asset IPCs, should they so choose. This allows personnel to ‘own’ a positronic for the home without the burden of maintenance fees. For the IPCs affected, this can work to their benefit or their demise. As more lax personnel may feel less inclined to report aberrancy, whereas other synthetics would find themselves under greater scrutiny. + + Z.I. units are most commonly Shell frames and baseline units. Zeng-Hu Mobility and Bishop frames are uncommon, due to the rivalry between Zeng-Hu and Zavodskoi. Meanwhile, Hephaestus Industrial and Xion frames have some prominence within Ingkom and Kumar Arms, helping to engineer ships and weapons of war. + + [bold]It is expected for Zavodskoi Interstellar IPCs to adopt the prefix Z.I. followed by their designation. An example of this formatting is Z.I. Name.[/bold] + diff --git a/Resources/ServerInfo/Guidebook/Lore/Corporations/ZengHuPharmaceuticals.xml b/Resources/ServerInfo/Guidebook/Lore/Corporations/ZengHuPharmaceuticals.xml new file mode 100644 index 00000000000..cd700a9ae22 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Lore/Corporations/ZengHuPharmaceuticals.xml @@ -0,0 +1,48 @@ + +All Information included in this document is licensed under CC BY-SA 4.0, and is taken from https://wiki.aurorastation.org/index.php?title=Zeng-Hu_Pharmaceuticals with some modifications. + + # Zeng-Hu Pharmaceuticals + - [bold]Slogan:[/bold] [italic]Building a brighter future.[/italic] + - [bold]Headquarters:[/bold] Shanghai, China, Earth, Sol Alliance + - [bold]Official Languages:[/bold] Tau-Ceti Basic, Sol Common, Tradeband, Terran Mandarin + - [bold]Official Colours:[/bold] [color=#a86bd8]Purple (#a86bd8)[/color], [color=#dfe4ed]White (#dfe4ed)[/color], [color=#b08fc8]Pink (#b08fc8)[/color] + - [bold]Founded:[/bold] 2132 + - [bold]Founder:[/bold] Xihua Zhong + - [bold]Notable Branches:[/bold] Bishop Cybernetics, Jeonshi Biotech Incorporated, Yomi Genetics Innovation and Research + + Zeng-Hu Pharmaceuticals is a trans-stellar medical research and pharmaceutical conglomerate with origins on 21st century Earth. They are responsible for the invention of modern cloning techniques, and have a hand in almost every form of medicine throughout the Orion Spur. Zeng-Hu has a unique internal structure referred to as the keiretsu by its employees: while officially known as a megacorporation Zeng-Hu is in reality made up of dozens of specialized medical corporations which build off of their mutual success, creating a structure most similar to a cartel. + + ## History + The organization that would go on to become Zeng-Hu Pharmaceuticals in 2132 was born from the merging of nearly a dozen companies on Earth in the year 2032, creating a complete stranglehold over the medical field while avoiding traditional anti-trust laws. The keiretsu pioneered the way in the field of cryonics and cryogenics, manufacturing the first truly viable "cryopod" designed to safely house a human being during long-distance space travel. This proved instrumental during the colonization efforts of Mars and Luna, and would be used during further colonization efforts in the Solar System prior to the advent of widely-available warp travel. However, the success and profits the keiretsu derived from colonization was relatively short-lived, as the economic hardships of the mid-22nd century combined with the advent of proper warp travel -- which greatly reduced the need for their cryogenic storage units -- in 2130 hit the conglomerate hard. The hardships of the 2130s would shortly result in the formal founding of Zeng-Hu Pharmaceuticals in 2132, in an effort to stay profitable and keep component companies from being bankrupted and bought out by competitors. While never completely disappearing, it was overshadowed by the rise of other corporations edging in on the field of biotechnology and pharmaceuticals. Zeng-Hu stayed in the background for years, though their continual innovations and unique internal structure allowed them to stay competitive if mostly out of the eye of the public. + + It wasn't until the year 2332, when the Skrell were first encountered, that it was well and truly thrust back into the limelight. As with many other companies jockeying for positions from which they could benefit from the advanced technology of the Skrell, Zeng-Hu sent representatives to try and convince Skrellian scientists to establish joint cooperative research teams with their own scientists. However, unlike with the other corporations, whom most of the scientific community of the Skrell perceived as simply greedy, they were truly impressed by the vision and drive shown by the CEO Vanas Peng and his board of directors. After three years of cooperative research, the first viable example of limb cloning technology was created. + + Zeng-Hu was quick to patent the techniques and equipment and continued to advance in the newly created field of organ and limb cloning. While cloning technology was highly controversial when first introduced, it has since become an accepted and even promoted part of Human and Skrellian society. Attempts to bring it beyond the borders of these two species have not yet been widely pursued, with few in the keiretsu viewing such efforts as likely to be profitable or successful. + + Due to its collaboration with the Skrell and success in the biotechnical field of limb cloning, Zeng-Hu Pharmaceuticals is now among the most powerful trans-stellar corporations present in the galaxy in the modern-day despite its unusual structure. As its main competitor in the medical field, the NanoTrasen Corporation, continues to bleed profits due to the phoron shortage, Zeng-Hu has risen to fill much of what NanoTrasen left behind in the medical field. But despite the profits -- and influence -- it has gained from filling the market holes left by NanoTrasen the keiretsu has not ceased working alongside NanoTrasen, and many of their mutually beneficial research and commerce agreements have remained intact. Thus it did not surprise many economists to see that the keiretsu had opted to join with NanoTrasen in the Stellar Corporate Conglomerate, though some believe that the keiretsu is more interested with their own bottom lines than with whatever mission the ever-mysterious "Chainlink" may be dedicated to. + + ## Influence + As the foremost medical service in the galaxy, overshadowing the former monopoly NanoTrasen once had over the speciality, Zeng-Hu's influence is immense. Their responsibility extends to the health and well-being of almost all citizens of the major galactic powers, with its constituent corporations delving into the pedantic of healthcare across the Orion Spur. + + Zeng-Hu Pharmaceuticals, and the majority of its minor subsidiaries, are professional science at its core. The public-facing sections of the megacorporation operate one of the larger public relations departments in the galaxy, a necessity for something as controversial as the primary healthcare provider. This reflects on employees as their workforce is encouraged to be plotting and outright secretive. In addition, the openly declared pursuit of Zeng-Hu has been the perfection of the sentient form and rapidly progressing what could be construed as the "expected evolution" of Humanity. The details of the future of this expectation are unfortunately classified, and guesses as to what the corporation plans are varied — from grounded to completely ridiculous conspiracies. + + Commercial contracting with Zeng-Hu is a cut-throat, careless business where decisions from completely untraceable elements within the corporation drift down to the lower ranks, usually deciding the course of lives. Workers take pride in their own capability to dodge the unknowable forces above, inadvertently, and the ideology has ended up fostering one of two things; either fear for one’s superiors or a dangerous lack of care. The latter in this environment rarely ends well. + + Zeng-Hu Pharmaceuticals rarely works alongside Zavodskoi contractors, and intentionally so. The two corporations frequently butt heads after Zeng-Hu Pharmaceuticals left Zavodskoi genetics research in the dust, with the relation between the two sours at best. This echoes down to the lowest ranks, as even the common worker can find themselves cheered on to beat the opposition. This isn’t an excuse to get fired by trashing your coworker. + + ## Culture of Augmentation + Driven by a mad desire to reach perfection, the genetic and prosthetic modification of Zeng-Hu employees is prolific. High-ranking executives often loan prosthetics, augmentation and direct tickets to genemodding down to skilled subordinates, who in turn employ similar practices to their own. All the way down to the very field medics of Zeng-Hu echo a similar sentiment ; progressing in the company further perfects one’s form. Veterans can receive higher-end, more vast augmentation that broadly encompasses the body, though there are countless who opt to avoid these options. + + Augments to enhance one’s work are the most common choices here, providing a unique edge to an extremely competitive medical scene. Genetic modification, due to its expensive nature, remains uncommon, but many find themselves allured to the opportunities Zeng-Hu Pharmaceuticals has to gamble for this. + + These cases obviously have their downside where more expensive prosthesis, modding and whatnot are concerned. In these implements there are typically forms of tracking devices, ingrained serial numbers, limited licenses or some other binding force that marks it as property of Zeng-Hu Pharmaceuticals. Exclusive prosthetics utilized by the company’s employees very commonly have these. + + The reality of these measures result in heavily regulated augments - the more grim ones capable of being remotely controlled or even disabled by company officials freely. The exclusivity of these items are amplified further by Zeng-Hu’s ability to retract their loan - and ultimately reclaim possession of them for any reason. Authentic Zeng-Hu prostheses do have their benefits, as one is able to pursue various options that disability or plain Human inefficiency would never permit. From amplifying surgical precision to enhancing one’s endurance, there is a case for anything here. + + ## Positronics and Zeng-Hu Pharmaceuticals + As the foremost company in the medical robotics and pharmaceutical industry, Zeng-hu Pharmaceuticals manufactures and employs a larger than average synthetic workforce. Aside from employing the machines in crucial and labor-saving roles, the corporation enjoys flaunting its latest models to the public, in effect using them as show dogs. IPCs which draw the eye of company managers and executives tend to be plucked from the ranks and elevated to positions of greater responsibility or authority. + + The company's treatment of IPCs is comparatively more egalitarian and less brutal. An overwhelming emphasis on perfection and unwavering quality is placed on the machines. + + Zeng-hu company projects often vary and as a result their dedicated synthetic workforce do not possess a standardized naming convention. + diff --git a/Resources/ServerInfo/Guidebook/Lore/SettingLore.xml b/Resources/ServerInfo/Guidebook/Lore/SettingLore.xml new file mode 100644 index 00000000000..1da8edc187a --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Lore/SettingLore.xml @@ -0,0 +1,3 @@ + +Temporary Document, to be filled with information + diff --git a/Resources/ServerInfo/Guidebook/Medical/OrganManipulation.xml b/Resources/ServerInfo/Guidebook/Medical/OrganManipulation.xml new file mode 100644 index 00000000000..144d474bcc4 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Medical/OrganManipulation.xml @@ -0,0 +1,51 @@ + +# Organ Manipulation +These surgeries allow you to remove or replace organs from a patient for healthy ones. Which can help treat conditions on their bodies. + +## Anatomy +Normally a body has the following organs: + + + + + + + + + + + + + +Certain species might have more or less organs, such as Diona having a combined organ that serves multiple functions, but this is the rough outline of what you'll see. +To remove an organ, you'll need to apply the respective Organ Removal surgery on it, which will then remove it without harming the patient. + +However if you want to transplant an organ, you'll need to apply the respective Organ Transplant surgery where it originally was. + +## What does each organ transplant do? + +- Transplanting a [color=#a4885c]brain[/color] will allow the patient to take over another body. An excellent alternative to cloning if you can afford to spare another body. +- Transplanting a [color=#a4885c]liver[/color] will cure severe poisoning from a patient's body. +- Transplanting [color=#a4885c]lungs[/color] will help cure patients from severe asphyxiation. +- Transplanting a [color=#a4885c]heart[/color] will cure a patient's body of rot and decay. +- Transplanting [color=#a4885c]eyes[/color] will allow the patient to see again, and heal any eye damage. + +## Where do I get more organs? + +Normally when your patients come in needing new organs, they'll need to get a new one, as their old ones will be either missing, or damaged beyond repair. +For this you can use the Medical Biofabricator with some Biomass. Which can manufacture Biosynthetic organs for all species. + + + + + + + +By default, every Chief Medical Officer has access to a Medical Biofabricator board in their locker. + +## Why didn't the organ transplant +## do anything? + +Your patient's body rejected the organ as it is in a bad shape, try using a fresh organ from a donor, or getting a new one from the Medical Biofabricator. + + diff --git a/Resources/ServerInfo/Guidebook/Medical/PartManipulation.xml b/Resources/ServerInfo/Guidebook/Medical/PartManipulation.xml new file mode 100644 index 00000000000..2de5facee63 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Medical/PartManipulation.xml @@ -0,0 +1,51 @@ + +# Part Manipulation +This is how you will turn felinids into humans, or vice versa if you're feeling particularly cruel. + +## Anatomy +Normally a body has 10 main parts. Those being: + + + + + + + + + + + + + + + + + + +Certain species might have more or less parts, such as tails, wings, or extra limbs, but this is the rough outline of what you'll see. +To detach a limb, you'll need to apply the Remove Part surgery on it, which will then remove it without harming the patient. + +However if you want to reattach the limb, you'll need to apply the Attach Part surgery where you want it attached. +Hands are attached to the arms, feet are attached to the legs. And everything else is attached to the torso. + + +## Where do I get more parts? + +Normally when your patients come in needing new limbs, they'll need to get a new one, as their old ones will be either missing, or damaged beyond repair. +For this you can use the Medical Biofabricator with some Biomass. Which can manufacture Biosynthetic limbs for all species. + + + + + + + +By default, every Chief Medical Officer has access to a Medical Biofabricator board in their locker. + +## I reattached my patient's limb, but +## it's not working? + +Your patient has taken enough damage to the point that their limb's nerves were badly damaged, and they need to be healed properly before it can work again. +For this you can try the Tend Wounds surgeries, or letting them use topicals on their wounds. + + diff --git a/Resources/ServerInfo/Guidebook/Medical/Surgery.xml b/Resources/ServerInfo/Guidebook/Medical/Surgery.xml new file mode 100644 index 00000000000..b37005e0038 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Medical/Surgery.xml @@ -0,0 +1,40 @@ + +# Surgery +Your usual weekly activity. By performing surgical operations on your patients, you can heal wounds, remove or add body parts, organs, and more. + +## The Basics +To start surgery your patient needs to be laying down, and ideally sedated. + +If they are not sedated, they will be in a lot of pain, which decreases their mood, and will make surgical wounds worse. + + + + + + +You also need to wear protective gear such as a mask and gloves to prevent harming the patient due to contamination. + + + + + + +## Getting Started + +To engage in surgery, you'll need a set of surgical tools. + + + + + + + + + + + + + +Once you've got tools in hand, interact with your patient to begin surgery. You'll be able to choose which part you want to operate on. + + diff --git a/Resources/ServerInfo/Guidebook/Medical/UtilitySurgeries.xml b/Resources/ServerInfo/Guidebook/Medical/UtilitySurgeries.xml new file mode 100644 index 00000000000..0a6841e1f34 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Medical/UtilitySurgeries.xml @@ -0,0 +1,24 @@ + +# Utility Surgeries + +## Tend Wounds + +Tend Wounds is a surgery that allows you to heal brute or burn damage from a patient without the need for topicals. +To begin you need to open an incision on the patient's body, and then apply a Hemostat to it until the part is fully healed. +At which point then you can close the incision with a Cautery. + + + + + + + +This surgery performs best the more damaged your patient is, especially if they are still alive. And allows you to bring otherwise unrecoverable +patients, such as the dumb Technical Assistant that just walked into the burn chamber. + +## Cavity Implant + +This surgery allows you to implant any Tiny or Small item into a patient's torso. To begin you need to open an incision, and then open their ribcage. +Your patient cannot access the implanted item normally, though there may be uses for this, such as hiding the Nuclear Authentication Disk. + + diff --git a/Resources/ServerInfo/Guidebook/ServerRules/BanDurations.xml b/Resources/ServerInfo/Guidebook/ServerRules/BanDurations.xml new file mode 100644 index 00000000000..2c85346b49d --- /dev/null +++ b/Resources/ServerInfo/Guidebook/ServerRules/BanDurations.xml @@ -0,0 +1,17 @@ + + # Ban Durations + + Bans can be appealed at forum.ss14.io in the ban appeals section. + + ## Temporary + Temporary bans will be lifted automatically after a certain amount of time. If they are a game ban, they will tell you how much time is remaining when you try to connect. + + ## Indefinite + These bans will only be removed on a successful appeal on the forums. Any ban which doesn't tell you when it expires and doesn't specify otherwise can be presumed to be an indefinite ban. + + ## Voucher + This is an indefinite ban which may only be appealed both with a successful appeal and which require a voucher of good behavior from the administrative team of a well-known or at least decently active SS13/SS14 server in order for the appeal to be considered. Voucher bans typically cannot be appealed for at least six months after being issued. Without a voucher, a player can only attempt to appeal a voucher ban once, and only if the ban was inappropriately placed. Voucher bans are typically only placed as a result of an unsuccessful appeal of an indefinite game ban by players with a history of bans and of causing issues. + + ## Permanent + This is a ban that is only appealable if the ban was inappropriately placed, including if the ban should not have been permanent. If the result of the appeal is that the ban was appropriately placed, the ban may not be appealed again and will not be lifted. These bans are extremely rare, but are applied to players who continually cause problems even after a voucher ban or users who have completely unacceptable behavior may be permanently removed. + diff --git a/Resources/ServerInfo/Guidebook/ServerRules/BanTypes.xml b/Resources/ServerInfo/Guidebook/ServerRules/BanTypes.xml new file mode 100644 index 00000000000..b10ea3c393b --- /dev/null +++ b/Resources/ServerInfo/Guidebook/ServerRules/BanTypes.xml @@ -0,0 +1,11 @@ + + # Ban Types + + Bans can be appealed at forum.ss14.io in the ban appeals section. + + ## Role Ban + Also called a "job ban", this ban prevents your character from joining or late-joining a round as one or more jobs or roles. These are often used in response to problematic behavior in particular departments or address gross inexperience in important roles such as heads of staff. These bans do not mechanically prevent you from switching to the role during a round or acting as that role, but doing so is considered ban evasion. + + ## Game Ban + Also called a "server ban", this ban prevents you from connecting to all Wizard's Den servers. + diff --git a/Resources/ServerInfo/Rules.txt b/Resources/ServerInfo/Guidebook/ServerRules/DefaultRuleset.xml similarity index 99% rename from Resources/ServerInfo/Rules.txt rename to Resources/ServerInfo/Guidebook/ServerRules/DefaultRuleset.xml index 9323242916e..a59e0314cfd 100644 --- a/Resources/ServerInfo/Rules.txt +++ b/Resources/ServerInfo/Guidebook/ServerRules/DefaultRuleset.xml @@ -1,3 +1,4 @@ + [color=#ff0000]DISCONNECTING FROM OR IGNORING/EVADING COMMUNICATION FROM ADMINS WILL RESULT IN AN APPEAL ONLY BAN. The job gets really hard when you refuse to talk to the Admins, just come to our Discord and talk it out, hurt feelings will not be held.[/color] [color=#bb00bb]This is the only source of server rules that apply here, which ideally has all the information any regular player should need. Please do not ever hesitate to ask either an Admin in[/color] [color=#DC143C]AHelp (F1)[/color][color=#bb00bb] or in the Discord server if you ever want clarification on the rules.[/color] @@ -58,3 +59,4 @@ We do not have a wiki, instead, we have or will have all the needed information [color=#a4885c]21.[/color] All [color=#334E6D]Command[/color] jobs should [color=#DC143C]AHelp (F1)[/color] when they need to stop playing. Do not play these roles if you do not expect to be able to finish the round. - These roles must exhibit some competency. Incompetence can result in a job ban. [color=#334E6D]Command[/color] roles are designed to lead and manage departments first. They are not intended to become do-it-all members of their departments. - Crew promoted to acting heads of staff must step down when an official head of staff arrives at the station. This is to prevent confusion with the Chain of command when the new crew mate arrives. + diff --git a/Resources/ServerInfo/Guidebook/ServerRules/README.txt b/Resources/ServerInfo/Guidebook/ServerRules/README.txt new file mode 100644 index 00000000000..d7ac858c16f --- /dev/null +++ b/Resources/ServerInfo/Guidebook/ServerRules/README.txt @@ -0,0 +1,5 @@ +These files contain Wizard's Den server rules. Since they reference Wizard's Den, they should not be used +by other servers without at least enough modification to not mislead players into thinking that they are +playing on Wizard's Den. + +The filenames used for the rules files are not themselves rules. Only the contents of the files are rules. diff --git a/Resources/ServerInfo/Guidebook/ServerRules/RoleTypes.xml b/Resources/ServerInfo/Guidebook/ServerRules/RoleTypes.xml new file mode 100644 index 00000000000..d5373a730a3 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/ServerRules/RoleTypes.xml @@ -0,0 +1,21 @@ + + # Role Types + + ## Crew Aligned/Non-antagonist + In most rounds, a majority of players will be non-antagonists, meaning that they are crew aligned. This is the "default" role, if the game doesn't tell you that you are one of the other roles defined here, then you are a non-antagonist. Overall, non-antagonists are intended to work towards a net positive effect on the round. + + ## Solo Antagonist + Certain roles are intended to cause problems for the round or for non-antagonists. You are only a solo antagonist if the game clearly and explicitly tells you that you are a solo antagonist. Antagonists are exempt from many but not all roleplay rules. + + ## Team Antagonist + Team antagonists are like solo antagonists but they have other antagonists who they are expected to not hinder, and who they may be expected to help. You are only a team antagonist if the game clearly and explicitly tells you that you are a team antagonist. + + ## Free Agent + Certain roles are free to choose if they want to behave as an antagonist or as a non-antagonist, and may change their mind whenever they'd like. You are only free agent if the game clearly and explicitly tells you that you are a free agent. + + ## Familiar + Familiars are considered non-antagonists, but have instructions to obey someone. They must obey this person even if it causes them to violate roleplay rules or die. You are only a familiar if the game clearly and explicitly tells you that you are a familiar. You are only the familiar of the person the game tells you. + + ## Silicon + Silicones have a set of laws that they must follow above all else except the core rules. You are only silicon if the game clearly and explicitly tells you that you are a silicon. + diff --git a/Resources/ServerInfo/Guidebook/ServerRules/SpaceLaw/SLControlledSubstances.xml b/Resources/ServerInfo/Guidebook/ServerRules/SpaceLaw/SLControlledSubstances.xml new file mode 100644 index 00000000000..14f0f46de1b --- /dev/null +++ b/Resources/ServerInfo/Guidebook/ServerRules/SpaceLaw/SLControlledSubstances.xml @@ -0,0 +1,14 @@ + + # Space Law: Controlled Substances + - \[Chemists/Science\] Explosive and pyrotechnic compounds excluding welding fuel contained in welders or welding fuel storage vessels + - \[Science\] Toxins + - \[Medical\] Chloral hydrate, Impedrezene, Ipecac, and Pax + - \[Medical\] Desoxyephedrine and Ephedrine + - \[None\] Mindbreaker toxin + - \[None\] Mute toxin + - \[None\] Nocturine + - \[None\] Norepinephirc acid + - \[None\] Romerol + - \[None\] Space drugs + - \[None\] Stimulants, excluding Desoxyephedrine and Ephedrine + diff --git a/Resources/ServerInfo/Guidebook/ServerRules/SpaceLaw/SLRestrictedGear.xml b/Resources/ServerInfo/Guidebook/ServerRules/SpaceLaw/SLRestrictedGear.xml new file mode 100644 index 00000000000..ce804009a18 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/ServerRules/SpaceLaw/SLRestrictedGear.xml @@ -0,0 +1,21 @@ + + # Space Law: Restricted Gear + - \[ERT/Central Command\] ERT and central command clothing + - \[Command\] Command clothing + - \[Security\] Security clothing + - \[Security\] Less than lethal and non-lethal weapons, excluding disablers and beanbag shotguns + - \[Security/Command\] Disablers + - \[Security/Bartender\] Beanbag shotguns + - \[Security\] Flash technology, excluding handheld flashes + - \[Security/Science/Command\] Handheld flashes + - \[Security\] Helmets and shields + - \[Security/Command/Bartender\] Protective vests and chest rigs + - \[Security/Command\] Restraining gear + - \[Security/Command\] Security HUDs + - \[Engineering\] Engineering goggles + - \[None\] Improvised less lethal and non-lethal weaponry + - \[None\] Unauthorized PDA software + - \[None\] Syndicate clothing + - \[None\] Syndicate equipment, excluding communication equipment + - \[Security\] Syndicate communication equipment equipment + diff --git a/Resources/ServerInfo/Guidebook/ServerRules/SpaceLaw/SLRestrictedWeapons.xml b/Resources/ServerInfo/Guidebook/ServerRules/SpaceLaw/SLRestrictedWeapons.xml new file mode 100644 index 00000000000..c1d8ff3b027 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/ServerRules/SpaceLaw/SLRestrictedWeapons.xml @@ -0,0 +1,11 @@ + +# Space Law: Restricted Weapons +- \[Security\] Lethal firearms, excluding syndicate firearms, proto kinetic accelerators, glaives, daggers, crushers and the antique laser gun +- \[Security/Salvage\] Proto kinetic accelerators, glaives, daggers, and crushers +- \[Security/Command\] Antique laser gun +- \[None\] Syndicate weapons +- \[None\] Swords +- \[None\] Improvised weaponry, including baseball bats +- \[None\] Lethal implants +- \[None\] Other lethal weapons + diff --git a/Resources/ServerInfo/Guidebook/ServerRules/SpaceLaw/SpaceLaw.xml b/Resources/ServerInfo/Guidebook/ServerRules/SpaceLaw/SpaceLaw.xml new file mode 100644 index 00000000000..f2b913a1714 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/ServerRules/SpaceLaw/SpaceLaw.xml @@ -0,0 +1,67 @@ + + # Space Law + On Space Station 14, stations operate under abbreviated space law. All crew, passengers, and visitors aboard the station are expected to follow these laws. + + Foreign invaders, such as nuclear operatives, ninjas, and pirates, are not protected under space law. Traitors are not foreign invaders so are usually protected by space law. + + Space Law is not the server rules, but some rules reference Space Law and require it to be followed by certain people or to some degree. + + ## Treatment Of Prisoners + Prisoners still have certain rights that must be upheld by law enforcement: + - Prisoners must be granted adequate medical care. + - Prisoners must be allowed access to basic communications equipment (Radios) so long as they are not abused. + - Prisoners must be granted clothing, food, water, shelter and safety. If the brig is no longer safe, confinement must be established in another location. + - Prisoners must be given access to legal counsel during an interrogation if requested and available. + - Prisoners must be given their shift mandated PDA after confinement has finished, unless there is solid proof of PDA tampering. In case of tampering, the PDA is to be secured and replaced with a new unit. + - Prisoners must be granted freedom of movement, and should not be restrained with handcuffs or other devices after incarceration unless there is an undue risk to life and limb. Similarly, any prisoners held for permanent confinement should be held in the communal brig, and should not be confined to a solitary cell unless they pose a risk to life and limb. + + ## Search and Seizure + A personnel search is a seizure of the objects in a person's backpack, hands, coat, belt, and pockets. If any contraband is found during a search, the officer may choose to further the search into a detainment or simply confiscate the restricted items. After the search is conducted, all legal items are to be returned to the person. A crewmate may legally decline any search conducted without probable cause or a warrant while the alert level is green. It should be noted that if the alert level is blue or above, all personnel searches are legal. + + A departmental search is the sweep of an entire area or department for contraband. It is recommended that the officers be extremely thorough, checking all lockers, crates, and doors. These can only be done with permission or, ideally, a warrant signed by the department head or highest-ranking command staff, which is the captain in most cases. + + ## Implantation + Any prisoner in custody can be subjected to implantation or implant removal procedures, so long as it's within reason. The process of adding an implant should not prolong the detainees sentence, meaning you can not hold them longer to administer the implant, unless stated otherwise. A former inmate can be requested to undergo implantation at a later point in time if they fit the circumstances during their confinement, they must comply. The following have been listed out with special circumstances, anything not in this list can still be applied, given proper legal context. A prisoner can still receive implantation procedures without meeting the circumstances if they give their clear permission. + + [color=#a4885c]Tracking Implants:[/color] Trackers can be applied to any suspect that has been convicted of a violent crime (the red linked crimes). + + [color=#a4885c]Mind Shields:[/color] Shields can be administered to any inmate who has been clearly mind controlled, lost control of themselves, or a suspect charged with unlawful control. Unlike standard implantation you may hold a prisoner until you finish issuing Mind Shields, so long as it's done in a timely fashion. If a suspect refuses to cooperate or the implant fails to function they can be charged with Refusal of Mental Shielding. + + ## Implant Removal + A suspect can be forced to receive implant removal if there is strong, reasonable proof that they have been implanted, such as an officer seeing them use one or their prints being on a discarded injector. Unlike the implantation procedure, a prisoner can have their sentence entirely delayed or extended until they comply with the procedure, as long as security is actively making attempts to perform it. Akin to implanting, if an inmate gives their clear permission, implant removal can proceed without proof. + + ## Sentencing + From a server rules perspective, security officers are only responsible for ensuring that they only place sentences over 15 minutes where space law would allow permanent confinement. Informing the Warden is highly recommended, even for timed sentences. As long as those requirements are met, security officers not giving inappropriate sentence lengths is considered an in-character issue, not a rule issue. + + The captain, HOS, and warden are responsible, within reason, for ensuring security officers place appropriate sentences that follow space law. If they are aware of an inappropriate sentence, including excessively long sentences, and if there is not an urgent threat or danger that they must prioritize, then they must work to correct that sentence. Unreasonable failures, as determined by game admins, of the captain, HOS, or warden to ensure space law is followed will be considered a rule issue, not an in-character issue. + + Use common sense and humanity when issuing punishments. You should not always seek out the highest punishment you can, you don't have to always give the maximum time or always look to demote someone. Prisoners cooperating and on good behavior should have their sentences reduced. Always take in account the severity and only charge for what is needed for someone to learn their lesson. + + [color=#a4885c]Stackable Crimes:[/color] Crimes are to be considered 'stackable' in the sense that if you charge someone with two or more different crimes, you should combine the times you would give them for each crime. Linked crimes, shown in matching colors on the Quick Crime Guide, can not be stacked and instead override each other, you should pick the highest crime that matches the case. + + - Example: A suspect has committed a 2-01 (possession of restricted gear) and a 3-01 (possession of restricted weapons). The maximum sentence here would be 10 minutes due to them being linked crimes, and 3-01 is the greater crime. + - Example 2: A suspect commits a 3-04 (Secure trespassing) and a 3-06 (manslaughter). Those crimes stack since they are not linked crimes. You could sentence for a maximum of 20 minutes, but context matters heavily, and maximum sentences should only be used for the worst offenders. + + [color=#a4885c]Repeater Offenders:[/color] Repeated crimes are when someone is released for a crime and then goes to commit the same crime within the same shift. Repeated crimes can be charged with tacked-on time; first repeat: 3:00, second repeat: 6:00, third repeat: permanent confinement. It should be noted each tacked-on time is directly linked to one type of crime, so for example, if someone does their first repeat of trespass and petty theft, you can charge them with an extra 6 minutes. + + [color=#a4885c]Accessory, Attempting, And Intention:[/color] If someone intentionally, knowingly and substantially assists someone in enacting a crime they can be charged with the relevant crimes, such as an engineer giving someone tools, who says they are going to break into an area. Same goes for a clear and solid attempt at a crime, or a person who shows clear intent to act out a crime, such as a syndicate nuclear operative arming a nuke but getting arrested before it goes off, they can still be charged with terrorism. Does not apply to crimes that have an attempted listing already, like attempted murder. + + ## Normal Punishments + - [color=#a4885c]Warning:[/color] For minor crimes, fix the issue, then warn the person not to attempt the crime again. If they still proceed to do it at a later date, a brig time may be better. + - [color=#a4885c]Confinement:[/color] The typical punishment, being confined in a cell for a temporary amount of time according to the crimes. + - [color=#a4885c]Demotion:[/color] Entails removing all departmental gear they have on their person and revoking the involved department access off their ID. This requires the captain's or involved department head's approval. Demotions should only be issued if the person pose a threat to their own department or are in a position where they have/can abuse their job's gear to commit further crimes. + + ## Major Punishments + [color=#a4885c]Permanent Confinement:[/color] Being held in the permanent brig for the entire duration of the shift. A person is eligible for permanent confinement if their timed sentence would exceed 15 minutes. Any persons subject to this punishment are required to be transported in cuffs to CentComm at the end of the shift. A permanent prisoner can not be deprived of anything covered by the section "Treatment Of Prisoners". + [color=#a4885c]Execution:[/color] A humane way of dealing with extremely unruly crewmates. A prisoner who has been given the death sentence may pick how they wish to be killed, common methods are firing line, lethal injection, exile, and high voltage electrocution. Another alternate method of "execution" is the process of placing a staff's mind into a borg, this is allowed so long as it is lawful. Execution can only be issued with the captain's or acting captain's approval; if the HoS is acting captain or there is no acting captain, all heads of staff are to hold a vote on the matter. + + ## Restricted Items + Items in the lists are preceded by an indication of which department or job is legally allowed to use or possess the item on most stations. The station captain may modify these lists as they see fit so long as they exercise due care and provide reasonable notification to the station. Members of command who oversee a department that is permitted to use a restricted item may issue permits to specific people outside of their department to use those items. "None" indicates that there are no departments or roles authorized to use or possess the item. + + - [textlink="List of Controlled Substances" link="SpaceLawControlledSubstances"] + - [textlink="List of Restricted Gear" link="SpaceLawRestrictedGear"] + - [textlink="List of Restricted Weapons" link="SpaceLawRestrictedWeapons"] + + ## Crime Listing + - [textlink="Crime Listing" link="SpaceLawCrimeList"] + diff --git a/Resources/Textures/Clothing/Hands/Gloves/fingerlesswhite.rsi/equipped-HAND.png b/Resources/Textures/Clothing/Hands/Gloves/fingerlesswhite.rsi/equipped-HAND.png new file mode 100644 index 00000000000..36170c46610 Binary files /dev/null and b/Resources/Textures/Clothing/Hands/Gloves/fingerlesswhite.rsi/equipped-HAND.png differ diff --git a/Resources/Textures/Clothing/Hands/Gloves/fingerlesswhite.rsi/icon.png b/Resources/Textures/Clothing/Hands/Gloves/fingerlesswhite.rsi/icon.png new file mode 100644 index 00000000000..b4bda7cfddf Binary files /dev/null and b/Resources/Textures/Clothing/Hands/Gloves/fingerlesswhite.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Hands/Gloves/fingerlesswhite.rsi/inhand-left.png b/Resources/Textures/Clothing/Hands/Gloves/fingerlesswhite.rsi/inhand-left.png new file mode 100644 index 00000000000..7fc12be332e Binary files /dev/null and b/Resources/Textures/Clothing/Hands/Gloves/fingerlesswhite.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Hands/Gloves/fingerlesswhite.rsi/inhand-right.png b/Resources/Textures/Clothing/Hands/Gloves/fingerlesswhite.rsi/inhand-right.png new file mode 100644 index 00000000000..b2046039fab Binary files /dev/null and b/Resources/Textures/Clothing/Hands/Gloves/fingerlesswhite.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Hands/Gloves/fingerlesswhite.rsi/meta.json b/Resources/Textures/Clothing/Hands/Gloves/fingerlesswhite.rsi/meta.json new file mode 100644 index 00000000000..e47f13296a6 --- /dev/null +++ b/Resources/Textures/Clothing/Hands/Gloves/fingerlesswhite.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/54ecdcc05bcaf335489938b1253a2a733ba12271", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-HAND", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Bandanas/white.rsi/equipped-HELMET-vox.png b/Resources/Textures/Clothing/Head/Bandanas/white.rsi/equipped-HELMET-vox.png new file mode 100644 index 00000000000..909b786581c Binary files /dev/null and b/Resources/Textures/Clothing/Head/Bandanas/white.rsi/equipped-HELMET-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Bandanas/white.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Bandanas/white.rsi/equipped-HELMET.png new file mode 100644 index 00000000000..62de52505ab Binary files /dev/null and b/Resources/Textures/Clothing/Head/Bandanas/white.rsi/equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Bandanas/white.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Head/Bandanas/white.rsi/equipped-MASK-vox.png new file mode 100644 index 00000000000..b47625c11d1 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Bandanas/white.rsi/equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Head/Bandanas/white.rsi/equipped-MASK.png b/Resources/Textures/Clothing/Head/Bandanas/white.rsi/equipped-MASK.png new file mode 100644 index 00000000000..8b592ff678e Binary files /dev/null and b/Resources/Textures/Clothing/Head/Bandanas/white.rsi/equipped-MASK.png differ diff --git a/Resources/Textures/Clothing/Head/Bandanas/white.rsi/icon.png b/Resources/Textures/Clothing/Head/Bandanas/white.rsi/icon.png new file mode 100644 index 00000000000..a471b2b6ec3 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Bandanas/white.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Head/Bandanas/white.rsi/icon_mask.png b/Resources/Textures/Clothing/Head/Bandanas/white.rsi/icon_mask.png new file mode 100644 index 00000000000..f7ffc9c4a36 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Bandanas/white.rsi/icon_mask.png differ diff --git a/Resources/Textures/Clothing/Head/Bandanas/white.rsi/inhand-left.png b/Resources/Textures/Clothing/Head/Bandanas/white.rsi/inhand-left.png new file mode 100644 index 00000000000..8a0b841c1c4 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Bandanas/white.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Head/Bandanas/white.rsi/inhand-right.png b/Resources/Textures/Clothing/Head/Bandanas/white.rsi/inhand-right.png new file mode 100644 index 00000000000..e959b046eca Binary files /dev/null and b/Resources/Textures/Clothing/Head/Bandanas/white.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Head/Bandanas/white.rsi/meta.json b/Resources/Textures/Clothing/Head/Bandanas/white.rsi/meta.json new file mode 100644 index 00000000000..a39a46ac810 --- /dev/null +++ b/Resources/Textures/Clothing/Head/Bandanas/white.rsi/meta.json @@ -0,0 +1,41 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e. equipped-MASK-vox & equipped-HELMET-vox states taken from Paradise at https://github.com/ParadiseSS13/Paradise/blob/bc095ad398790a2b718b2bab4f2157cdd80a51da/icons/mob/clothing/species/vox/mask.dmi", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon_mask" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "equipped-HELMET-vox", + "directions": 4 + }, + { + "name": "equipped-MASK", + "directions": 4 + }, + { + "name": "equipped-MASK-vox", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/Hats/beretwhite.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Hats/beretwhite.rsi/equipped-HELMET.png new file mode 100644 index 00000000000..7e54273cf3a Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hats/beretwhite.rsi/equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/Hats/beretwhite.rsi/icon.png b/Resources/Textures/Clothing/Head/Hats/beretwhite.rsi/icon.png new file mode 100644 index 00000000000..f4d7a07d370 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hats/beretwhite.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Head/Hats/beretwhite.rsi/inhand-left.png b/Resources/Textures/Clothing/Head/Hats/beretwhite.rsi/inhand-left.png new file mode 100644 index 00000000000..ba9c6174815 Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hats/beretwhite.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Head/Hats/beretwhite.rsi/inhand-right.png b/Resources/Textures/Clothing/Head/Hats/beretwhite.rsi/inhand-right.png new file mode 100644 index 00000000000..f816479e2cf Binary files /dev/null and b/Resources/Textures/Clothing/Head/Hats/beretwhite.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Head/Hats/beretwhite.rsi/meta.json b/Resources/Textures/Clothing/Head/Hats/beretwhite.rsi/meta.json new file mode 100644 index 00000000000..a470e009443 --- /dev/null +++ b/Resources/Textures/Clothing/Head/Hats/beretwhite.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Clothing/Head/ReligiousHeadgear/hijab.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/ReligiousHeadgear/hijab.rsi/equipped-HELMET.png new file mode 100644 index 00000000000..8f0423febf6 Binary files /dev/null and b/Resources/Textures/Clothing/Head/ReligiousHeadgear/hijab.rsi/equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/ReligiousHeadgear/hijab.rsi/icon.png b/Resources/Textures/Clothing/Head/ReligiousHeadgear/hijab.rsi/icon.png new file mode 100644 index 00000000000..49fbc38b460 Binary files /dev/null and b/Resources/Textures/Clothing/Head/ReligiousHeadgear/hijab.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Head/ReligiousHeadgear/hijab.rsi/meta.json b/Resources/Textures/Clothing/Head/ReligiousHeadgear/hijab.rsi/meta.json new file mode 100644 index 00000000000..5cdced4af0f --- /dev/null +++ b/Resources/Textures/Clothing/Head/ReligiousHeadgear/hijab.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from Aurorastation at commit https://github.com/Aurorastation/Aurora.3/commit/b807d2f481400d0ea970643a2a345a4a04279605", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "icon" + } + ] +} diff --git a/Resources/Textures/Clothing/Head/ReligiousHeadgear/kippah.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/ReligiousHeadgear/kippah.rsi/equipped-HELMET.png new file mode 100644 index 00000000000..de32760e754 Binary files /dev/null and b/Resources/Textures/Clothing/Head/ReligiousHeadgear/kippah.rsi/equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/ReligiousHeadgear/kippah.rsi/icon.png b/Resources/Textures/Clothing/Head/ReligiousHeadgear/kippah.rsi/icon.png new file mode 100644 index 00000000000..fce18d6fd96 Binary files /dev/null and b/Resources/Textures/Clothing/Head/ReligiousHeadgear/kippah.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Head/ReligiousHeadgear/kippah.rsi/meta.json b/Resources/Textures/Clothing/Head/ReligiousHeadgear/kippah.rsi/meta.json new file mode 100644 index 00000000000..74ca00f3a14 --- /dev/null +++ b/Resources/Textures/Clothing/Head/ReligiousHeadgear/kippah.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from Aurorastation at commit https://github.com/Aurorastation/Aurora.3/commit/310e688d876c027e87ea35312111bc6eb1f06660", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "icon" + } + ] +} diff --git a/Resources/Textures/Clothing/Head/ReligiousHeadgear/turban.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/ReligiousHeadgear/turban.rsi/equipped-HELMET.png new file mode 100644 index 00000000000..5d0bfc1a068 Binary files /dev/null and b/Resources/Textures/Clothing/Head/ReligiousHeadgear/turban.rsi/equipped-HELMET.png differ diff --git a/Resources/Textures/Clothing/Head/ReligiousHeadgear/turban.rsi/icon.png b/Resources/Textures/Clothing/Head/ReligiousHeadgear/turban.rsi/icon.png new file mode 100644 index 00000000000..bd8a670a881 Binary files /dev/null and b/Resources/Textures/Clothing/Head/ReligiousHeadgear/turban.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Head/ReligiousHeadgear/turban.rsi/meta.json b/Resources/Textures/Clothing/Head/ReligiousHeadgear/turban.rsi/meta.json new file mode 100644 index 00000000000..5cdced4af0f --- /dev/null +++ b/Resources/Textures/Clothing/Head/ReligiousHeadgear/turban.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from Aurorastation at commit https://github.com/Aurorastation/Aurora.3/commit/b807d2f481400d0ea970643a2a345a4a04279605", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "icon" + } + ] +} diff --git a/Resources/Textures/Clothing/Mask/neckgaiterwhite.rsi/equipped-MASK-reptilian.png b/Resources/Textures/Clothing/Mask/neckgaiterwhite.rsi/equipped-MASK-reptilian.png new file mode 100644 index 00000000000..24a8d78449d Binary files /dev/null and b/Resources/Textures/Clothing/Mask/neckgaiterwhite.rsi/equipped-MASK-reptilian.png differ diff --git a/Resources/Textures/Clothing/Mask/neckgaiterwhite.rsi/equipped-MASK-vox.png b/Resources/Textures/Clothing/Mask/neckgaiterwhite.rsi/equipped-MASK-vox.png new file mode 100644 index 00000000000..e425a136df3 Binary files /dev/null and b/Resources/Textures/Clothing/Mask/neckgaiterwhite.rsi/equipped-MASK-vox.png differ diff --git a/Resources/Textures/Clothing/Mask/neckgaiterwhite.rsi/equipped-MASK.png b/Resources/Textures/Clothing/Mask/neckgaiterwhite.rsi/equipped-MASK.png new file mode 100644 index 00000000000..3512302b5fc Binary files /dev/null and b/Resources/Textures/Clothing/Mask/neckgaiterwhite.rsi/equipped-MASK.png differ diff --git a/Resources/Textures/Clothing/Mask/neckgaiterwhite.rsi/icon.png b/Resources/Textures/Clothing/Mask/neckgaiterwhite.rsi/icon.png new file mode 100644 index 00000000000..af3948b8f42 Binary files /dev/null and b/Resources/Textures/Clothing/Mask/neckgaiterwhite.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Mask/neckgaiterwhite.rsi/inhand-left.png b/Resources/Textures/Clothing/Mask/neckgaiterwhite.rsi/inhand-left.png new file mode 100644 index 00000000000..65acefa0c34 Binary files /dev/null and b/Resources/Textures/Clothing/Mask/neckgaiterwhite.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Mask/neckgaiterwhite.rsi/inhand-right.png b/Resources/Textures/Clothing/Mask/neckgaiterwhite.rsi/inhand-right.png new file mode 100644 index 00000000000..2f39874647c Binary files /dev/null and b/Resources/Textures/Clothing/Mask/neckgaiterwhite.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Mask/neckgaiterwhite.rsi/meta.json b/Resources/Textures/Clothing/Mask/neckgaiterwhite.rsi/meta.json new file mode 100644 index 00000000000..4da74959ddc --- /dev/null +++ b/Resources/Textures/Clothing/Mask/neckgaiterwhite.rsi/meta.json @@ -0,0 +1,34 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Sprited by belay5 (Discord) | equipped-MASK-vox sprited by PuroSlavKing (Github)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-MASK", + "directions": 4 + }, + { + "name": "equipped-MASK-vox", + "directions": 4 + }, + { + "name": "equipped-MASK-reptilian", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Effects/medi_holo.rsi/medi_holo.png b/Resources/Textures/Effects/medi_holo.rsi/medi_holo.png new file mode 100644 index 00000000000..9b024faa2d7 Binary files /dev/null and b/Resources/Textures/Effects/medi_holo.rsi/medi_holo.png differ diff --git a/Resources/Textures/Effects/medi_holo.rsi/meta.json b/Resources/Textures/Effects/medi_holo.rsi/meta.json new file mode 100644 index 00000000000..1be502223e5 --- /dev/null +++ b/Resources/Textures/Effects/medi_holo.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "https://github.com/tgstation/tgstation/tree/217b39cc85e45302d407d5c1ab60809bd9e18987", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "medi_holo", + "delays": [ + [ + 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/Interface/Ashen/target_doll.png b/Resources/Textures/Interface/Ashen/target_doll.png new file mode 100644 index 00000000000..91af9d84ac1 Binary files /dev/null and b/Resources/Textures/Interface/Ashen/target_doll.png differ diff --git a/Resources/Textures/Interface/Bwoink/pinned.png b/Resources/Textures/Interface/Bwoink/pinned.png new file mode 100644 index 00000000000..80c8a202005 Binary files /dev/null and b/Resources/Textures/Interface/Bwoink/pinned.png differ diff --git a/Resources/Textures/Interface/Bwoink/pinned2.png b/Resources/Textures/Interface/Bwoink/pinned2.png new file mode 100644 index 00000000000..11c4b62f123 Binary files /dev/null and b/Resources/Textures/Interface/Bwoink/pinned2.png differ diff --git a/Resources/Textures/Interface/Bwoink/un_pinned.png b/Resources/Textures/Interface/Bwoink/un_pinned.png new file mode 100644 index 00000000000..26ef8b48185 Binary files /dev/null and b/Resources/Textures/Interface/Bwoink/un_pinned.png differ diff --git a/Resources/Textures/Interface/Clockwork/target_doll.png b/Resources/Textures/Interface/Clockwork/target_doll.png new file mode 100644 index 00000000000..8426d42299a Binary files /dev/null and b/Resources/Textures/Interface/Clockwork/target_doll.png differ diff --git a/Resources/Textures/Interface/Default/target_doll.png b/Resources/Textures/Interface/Default/target_doll.png new file mode 100644 index 00000000000..e8eb2f52717 Binary files /dev/null and b/Resources/Textures/Interface/Default/target_doll.png differ diff --git a/Resources/Textures/Interface/Minimalist/target_doll.png b/Resources/Textures/Interface/Minimalist/target_doll.png new file mode 100644 index 00000000000..e8eb2f52717 Binary files /dev/null and b/Resources/Textures/Interface/Minimalist/target_doll.png differ diff --git a/Resources/Textures/Interface/Plasmafire/target_doll.png b/Resources/Textures/Interface/Plasmafire/target_doll.png new file mode 100644 index 00000000000..57262d67028 Binary files /dev/null and b/Resources/Textures/Interface/Plasmafire/target_doll.png differ diff --git a/Resources/Textures/Interface/Retro/target_doll.png b/Resources/Textures/Interface/Retro/target_doll.png new file mode 100644 index 00000000000..a147539c3ae Binary files /dev/null and b/Resources/Textures/Interface/Retro/target_doll.png differ diff --git a/Resources/Textures/Interface/Slimecore/target_doll.png b/Resources/Textures/Interface/Slimecore/target_doll.png new file mode 100644 index 00000000000..0706eb661b5 Binary files /dev/null and b/Resources/Textures/Interface/Slimecore/target_doll.png differ diff --git a/Resources/Textures/Interface/Targeting/Doll/eyes.png b/Resources/Textures/Interface/Targeting/Doll/eyes.png new file mode 100644 index 00000000000..8cf9fa9e191 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Doll/eyes.png differ diff --git a/Resources/Textures/Interface/Targeting/Doll/eyes_hover.png b/Resources/Textures/Interface/Targeting/Doll/eyes_hover.png new file mode 100644 index 00000000000..72a30d73b84 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Doll/eyes_hover.png differ diff --git a/Resources/Textures/Interface/Targeting/Doll/groin.png b/Resources/Textures/Interface/Targeting/Doll/groin.png new file mode 100644 index 00000000000..2c1a3debdaa Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Doll/groin.png differ diff --git a/Resources/Textures/Interface/Targeting/Doll/groin_hover.png b/Resources/Textures/Interface/Targeting/Doll/groin_hover.png new file mode 100644 index 00000000000..313b6a1124c Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Doll/groin_hover.png differ diff --git a/Resources/Textures/Interface/Targeting/Doll/head.png b/Resources/Textures/Interface/Targeting/Doll/head.png new file mode 100644 index 00000000000..9c645d2353c Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Doll/head.png differ diff --git a/Resources/Textures/Interface/Targeting/Doll/head_hover.png b/Resources/Textures/Interface/Targeting/Doll/head_hover.png new file mode 100644 index 00000000000..3c03f2aebe1 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Doll/head_hover.png differ diff --git a/Resources/Textures/Interface/Targeting/Doll/leftarm.png b/Resources/Textures/Interface/Targeting/Doll/leftarm.png new file mode 100644 index 00000000000..32661f5c6a1 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Doll/leftarm.png differ diff --git a/Resources/Textures/Interface/Targeting/Doll/leftarm_hover.png b/Resources/Textures/Interface/Targeting/Doll/leftarm_hover.png new file mode 100644 index 00000000000..a9b2c960cec Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Doll/leftarm_hover.png differ diff --git a/Resources/Textures/Interface/Targeting/Doll/leftfoot.png b/Resources/Textures/Interface/Targeting/Doll/leftfoot.png new file mode 100644 index 00000000000..07da8e67b75 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Doll/leftfoot.png differ diff --git a/Resources/Textures/Interface/Targeting/Doll/leftfoot_hover.png b/Resources/Textures/Interface/Targeting/Doll/leftfoot_hover.png new file mode 100644 index 00000000000..2c9f9e38df4 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Doll/leftfoot_hover.png differ diff --git a/Resources/Textures/Interface/Targeting/Doll/lefthand.png b/Resources/Textures/Interface/Targeting/Doll/lefthand.png new file mode 100644 index 00000000000..a0251efb2c6 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Doll/lefthand.png differ diff --git a/Resources/Textures/Interface/Targeting/Doll/lefthand_hover.png b/Resources/Textures/Interface/Targeting/Doll/lefthand_hover.png new file mode 100644 index 00000000000..3ff52eae555 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Doll/lefthand_hover.png differ diff --git a/Resources/Textures/Interface/Targeting/Doll/leftleg.png b/Resources/Textures/Interface/Targeting/Doll/leftleg.png new file mode 100644 index 00000000000..99dc24ce62e Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Doll/leftleg.png differ diff --git a/Resources/Textures/Interface/Targeting/Doll/leftleg_hover.png b/Resources/Textures/Interface/Targeting/Doll/leftleg_hover.png new file mode 100644 index 00000000000..f2c2979e418 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Doll/leftleg_hover.png differ diff --git a/Resources/Textures/Interface/Targeting/Doll/mouth.png b/Resources/Textures/Interface/Targeting/Doll/mouth.png new file mode 100644 index 00000000000..202f411874e Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Doll/mouth.png differ diff --git a/Resources/Textures/Interface/Targeting/Doll/mouth_hover.png b/Resources/Textures/Interface/Targeting/Doll/mouth_hover.png new file mode 100644 index 00000000000..a5014f42ca3 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Doll/mouth_hover.png differ diff --git a/Resources/Textures/Interface/Targeting/Doll/rightarm.png b/Resources/Textures/Interface/Targeting/Doll/rightarm.png new file mode 100644 index 00000000000..223afaacad0 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Doll/rightarm.png differ diff --git a/Resources/Textures/Interface/Targeting/Doll/rightarm_hover.png b/Resources/Textures/Interface/Targeting/Doll/rightarm_hover.png new file mode 100644 index 00000000000..7121c80830d Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Doll/rightarm_hover.png differ diff --git a/Resources/Textures/Interface/Targeting/Doll/rightfoot.png b/Resources/Textures/Interface/Targeting/Doll/rightfoot.png new file mode 100644 index 00000000000..d1c687c6815 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Doll/rightfoot.png differ diff --git a/Resources/Textures/Interface/Targeting/Doll/rightfoot_hover.png b/Resources/Textures/Interface/Targeting/Doll/rightfoot_hover.png new file mode 100644 index 00000000000..60897a28805 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Doll/rightfoot_hover.png differ diff --git a/Resources/Textures/Interface/Targeting/Doll/righthand.png b/Resources/Textures/Interface/Targeting/Doll/righthand.png new file mode 100644 index 00000000000..e71f8de80ed Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Doll/righthand.png differ diff --git a/Resources/Textures/Interface/Targeting/Doll/righthand_hover.png b/Resources/Textures/Interface/Targeting/Doll/righthand_hover.png new file mode 100644 index 00000000000..d51910da173 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Doll/righthand_hover.png differ diff --git a/Resources/Textures/Interface/Targeting/Doll/rightleg.png b/Resources/Textures/Interface/Targeting/Doll/rightleg.png new file mode 100644 index 00000000000..5f7b6836105 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Doll/rightleg.png differ diff --git a/Resources/Textures/Interface/Targeting/Doll/rightleg_hover.png b/Resources/Textures/Interface/Targeting/Doll/rightleg_hover.png new file mode 100644 index 00000000000..b0936de0a09 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Doll/rightleg_hover.png differ diff --git a/Resources/Textures/Interface/Targeting/Doll/torso.png b/Resources/Textures/Interface/Targeting/Doll/torso.png new file mode 100644 index 00000000000..44297c96c32 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Doll/torso.png differ diff --git a/Resources/Textures/Interface/Targeting/Doll/torso_hover.png b/Resources/Textures/Interface/Targeting/Doll/torso_hover.png new file mode 100644 index 00000000000..70f5e5969c0 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Doll/torso_hover.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/groin.rsi/groin_0.png b/Resources/Textures/Interface/Targeting/Status/groin.rsi/groin_0.png new file mode 100644 index 00000000000..2e46e3a8cf1 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/groin.rsi/groin_0.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/groin.rsi/groin_1.png b/Resources/Textures/Interface/Targeting/Status/groin.rsi/groin_1.png new file mode 100644 index 00000000000..7df0059c12c Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/groin.rsi/groin_1.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/groin.rsi/groin_2.png b/Resources/Textures/Interface/Targeting/Status/groin.rsi/groin_2.png new file mode 100644 index 00000000000..8a6e3add67f Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/groin.rsi/groin_2.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/groin.rsi/groin_3.png b/Resources/Textures/Interface/Targeting/Status/groin.rsi/groin_3.png new file mode 100644 index 00000000000..6d7966fc141 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/groin.rsi/groin_3.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/groin.rsi/groin_4.png b/Resources/Textures/Interface/Targeting/Status/groin.rsi/groin_4.png new file mode 100644 index 00000000000..cc36cf23ca4 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/groin.rsi/groin_4.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/groin.rsi/groin_5.png b/Resources/Textures/Interface/Targeting/Status/groin.rsi/groin_5.png new file mode 100644 index 00000000000..3f260e12259 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/groin.rsi/groin_5.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/groin.rsi/groin_6.png b/Resources/Textures/Interface/Targeting/Status/groin.rsi/groin_6.png new file mode 100644 index 00000000000..0bb632ba388 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/groin.rsi/groin_6.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/groin.rsi/groin_7.png b/Resources/Textures/Interface/Targeting/Status/groin.rsi/groin_7.png new file mode 100644 index 00000000000..0bb632ba388 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/groin.rsi/groin_7.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/groin.rsi/groin_8.png b/Resources/Textures/Interface/Targeting/Status/groin.rsi/groin_8.png new file mode 100644 index 00000000000..c23961f396b Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/groin.rsi/groin_8.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/groin.rsi/meta.json b/Resources/Textures/Interface/Targeting/Status/groin.rsi/meta.json new file mode 100644 index 00000000000..6acd4a2c24b --- /dev/null +++ b/Resources/Textures/Interface/Targeting/Status/groin.rsi/meta.json @@ -0,0 +1,38 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Edited by Mocho from the original tgstation sprites taken at commit https://github.com/tgstation/tgstation/commit/c7e14784b35b1a136351c396d3a546f461ee2451", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "groin_0" + }, + { + "name": "groin_1" + }, + { + "name": "groin_2" + }, + { + "name": "groin_3" + }, + { + "name": "groin_4" + }, + { + "name": "groin_5" + }, + { + "name": "groin_6" + }, + { + "name": "groin_7" + }, + { + "name": "groin_8" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Interface/Targeting/Status/head.rsi/head_0.png b/Resources/Textures/Interface/Targeting/Status/head.rsi/head_0.png new file mode 100644 index 00000000000..f547b0bc961 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/head.rsi/head_0.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/head.rsi/head_1.png b/Resources/Textures/Interface/Targeting/Status/head.rsi/head_1.png new file mode 100644 index 00000000000..0ba1a77dfd9 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/head.rsi/head_1.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/head.rsi/head_2.png b/Resources/Textures/Interface/Targeting/Status/head.rsi/head_2.png new file mode 100644 index 00000000000..1cb55b4fe97 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/head.rsi/head_2.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/head.rsi/head_3.png b/Resources/Textures/Interface/Targeting/Status/head.rsi/head_3.png new file mode 100644 index 00000000000..d797b40a161 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/head.rsi/head_3.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/head.rsi/head_4.png b/Resources/Textures/Interface/Targeting/Status/head.rsi/head_4.png new file mode 100644 index 00000000000..fbc1678ce5d Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/head.rsi/head_4.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/head.rsi/head_5.png b/Resources/Textures/Interface/Targeting/Status/head.rsi/head_5.png new file mode 100644 index 00000000000..f6caf62d405 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/head.rsi/head_5.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/head.rsi/head_6.png b/Resources/Textures/Interface/Targeting/Status/head.rsi/head_6.png new file mode 100644 index 00000000000..74b58c642bb Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/head.rsi/head_6.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/head.rsi/head_7.png b/Resources/Textures/Interface/Targeting/Status/head.rsi/head_7.png new file mode 100644 index 00000000000..74b58c642bb Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/head.rsi/head_7.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/head.rsi/head_8.png b/Resources/Textures/Interface/Targeting/Status/head.rsi/head_8.png new file mode 100644 index 00000000000..4d024c61f7f Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/head.rsi/head_8.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/head.rsi/meta.json b/Resources/Textures/Interface/Targeting/Status/head.rsi/meta.json new file mode 100644 index 00000000000..2c34f86c28e --- /dev/null +++ b/Resources/Textures/Interface/Targeting/Status/head.rsi/meta.json @@ -0,0 +1,38 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c7e14784b35b1a136351c396d3a546f461ee2451", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head_0" + }, + { + "name": "head_1" + }, + { + "name": "head_2" + }, + { + "name": "head_3" + }, + { + "name": "head_4" + }, + { + "name": "head_5" + }, + { + "name": "head_6" + }, + { + "name": "head_7" + }, + { + "name": "head_8" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/leftarm_0.png b/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/leftarm_0.png new file mode 100644 index 00000000000..22c7982489b Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/leftarm_0.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/leftarm_1.png b/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/leftarm_1.png new file mode 100644 index 00000000000..cd3b5d4c1c8 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/leftarm_1.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/leftarm_2.png b/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/leftarm_2.png new file mode 100644 index 00000000000..e4db1961679 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/leftarm_2.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/leftarm_3.png b/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/leftarm_3.png new file mode 100644 index 00000000000..d6a204a18a9 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/leftarm_3.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/leftarm_4.png b/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/leftarm_4.png new file mode 100644 index 00000000000..2c9e81508b3 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/leftarm_4.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/leftarm_5.png b/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/leftarm_5.png new file mode 100644 index 00000000000..930a7b52ed1 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/leftarm_5.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/leftarm_6.png b/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/leftarm_6.png new file mode 100644 index 00000000000..efc7380c270 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/leftarm_6.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/leftarm_7.png b/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/leftarm_7.png new file mode 100644 index 00000000000..efc7380c270 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/leftarm_7.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/leftarm_8.png b/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/leftarm_8.png new file mode 100644 index 00000000000..a00a6b1822e Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/leftarm_8.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/meta.json b/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/meta.json new file mode 100644 index 00000000000..dab3ed611da --- /dev/null +++ b/Resources/Textures/Interface/Targeting/Status/leftarm.rsi/meta.json @@ -0,0 +1,38 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Edited by Mocho from the original tgstation sprites taken at commit https://github.com/tgstation/tgstation/commit/c7e14784b35b1a136351c396d3a546f461ee2451", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "leftarm_0" + }, + { + "name": "leftarm_1" + }, + { + "name": "leftarm_2" + }, + { + "name": "leftarm_3" + }, + { + "name": "leftarm_4" + }, + { + "name": "leftarm_5" + }, + { + "name": "leftarm_6" + }, + { + "name": "leftarm_7" + }, + { + "name": "leftarm_8" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/leftfoot_0.png b/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/leftfoot_0.png new file mode 100644 index 00000000000..af6e8eb45e5 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/leftfoot_0.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/leftfoot_1.png b/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/leftfoot_1.png new file mode 100644 index 00000000000..b8e10c8c48c Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/leftfoot_1.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/leftfoot_2.png b/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/leftfoot_2.png new file mode 100644 index 00000000000..31feb63b7bc Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/leftfoot_2.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/leftfoot_3.png b/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/leftfoot_3.png new file mode 100644 index 00000000000..274855e4194 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/leftfoot_3.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/leftfoot_4.png b/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/leftfoot_4.png new file mode 100644 index 00000000000..b3e5dfefa16 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/leftfoot_4.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/leftfoot_5.png b/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/leftfoot_5.png new file mode 100644 index 00000000000..b4af7c1c036 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/leftfoot_5.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/leftfoot_6.png b/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/leftfoot_6.png new file mode 100644 index 00000000000..9822dfba4cb Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/leftfoot_6.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/leftfoot_7.png b/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/leftfoot_7.png new file mode 100644 index 00000000000..9822dfba4cb Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/leftfoot_7.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/leftfoot_8.png b/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/leftfoot_8.png new file mode 100644 index 00000000000..bdaec2557cb Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/leftfoot_8.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/meta.json b/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/meta.json new file mode 100644 index 00000000000..9396f537f80 --- /dev/null +++ b/Resources/Textures/Interface/Targeting/Status/leftfoot.rsi/meta.json @@ -0,0 +1,38 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Edited by Mocho from the original tgstation sprites taken at commit https://github.com/tgstation/tgstation/commit/c7e14784b35b1a136351c396d3a546f461ee2451", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "leftfoot_0" + }, + { + "name": "leftfoot_1" + }, + { + "name": "leftfoot_2" + }, + { + "name": "leftfoot_3" + }, + { + "name": "leftfoot_4" + }, + { + "name": "leftfoot_5" + }, + { + "name": "leftfoot_6" + }, + { + "name": "leftfoot_7" + }, + { + "name": "leftfoot_8" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/lefthand_0.png b/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/lefthand_0.png new file mode 100644 index 00000000000..f56984a54eb Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/lefthand_0.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/lefthand_1.png b/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/lefthand_1.png new file mode 100644 index 00000000000..e5a7aea1b40 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/lefthand_1.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/lefthand_2.png b/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/lefthand_2.png new file mode 100644 index 00000000000..43c72f0b210 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/lefthand_2.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/lefthand_3.png b/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/lefthand_3.png new file mode 100644 index 00000000000..3114a1995cd Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/lefthand_3.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/lefthand_4.png b/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/lefthand_4.png new file mode 100644 index 00000000000..83c4daefabf Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/lefthand_4.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/lefthand_5.png b/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/lefthand_5.png new file mode 100644 index 00000000000..06946c97c74 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/lefthand_5.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/lefthand_6.png b/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/lefthand_6.png new file mode 100644 index 00000000000..7d2ed496616 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/lefthand_6.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/lefthand_7.png b/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/lefthand_7.png new file mode 100644 index 00000000000..7d2ed496616 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/lefthand_7.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/lefthand_8.png b/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/lefthand_8.png new file mode 100644 index 00000000000..2b33680d438 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/lefthand_8.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/meta.json b/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/meta.json new file mode 100644 index 00000000000..f7d5a595258 --- /dev/null +++ b/Resources/Textures/Interface/Targeting/Status/lefthand.rsi/meta.json @@ -0,0 +1,38 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Edited by Mocho from the original tgstation sprites taken at commit https://github.com/tgstation/tgstation/commit/c7e14784b35b1a136351c396d3a546f461ee2451", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "lefthand_0" + }, + { + "name": "lefthand_1" + }, + { + "name": "lefthand_2" + }, + { + "name": "lefthand_3" + }, + { + "name": "lefthand_4" + }, + { + "name": "lefthand_5" + }, + { + "name": "lefthand_6" + }, + { + "name": "lefthand_7" + }, + { + "name": "lefthand_8" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/leftleg_0.png b/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/leftleg_0.png new file mode 100644 index 00000000000..9f8193be960 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/leftleg_0.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/leftleg_1.png b/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/leftleg_1.png new file mode 100644 index 00000000000..ab0c3e410da Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/leftleg_1.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/leftleg_2.png b/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/leftleg_2.png new file mode 100644 index 00000000000..6390bbf7ab6 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/leftleg_2.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/leftleg_3.png b/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/leftleg_3.png new file mode 100644 index 00000000000..9159aebd456 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/leftleg_3.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/leftleg_4.png b/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/leftleg_4.png new file mode 100644 index 00000000000..9dcd84fffdf Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/leftleg_4.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/leftleg_5.png b/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/leftleg_5.png new file mode 100644 index 00000000000..4e302cda649 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/leftleg_5.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/leftleg_6.png b/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/leftleg_6.png new file mode 100644 index 00000000000..d36a43c441d Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/leftleg_6.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/leftleg_7.png b/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/leftleg_7.png new file mode 100644 index 00000000000..d36a43c441d Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/leftleg_7.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/leftleg_8.png b/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/leftleg_8.png new file mode 100644 index 00000000000..75bd581d69b Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/leftleg_8.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/meta.json b/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/meta.json new file mode 100644 index 00000000000..887c60f37cc --- /dev/null +++ b/Resources/Textures/Interface/Targeting/Status/leftleg.rsi/meta.json @@ -0,0 +1,38 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Edited by Mocho from the original tgstation sprites taken at commit https://github.com/tgstation/tgstation/commit/c7e14784b35b1a136351c396d3a546f461ee2451", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "leftleg_0" + }, + { + "name": "leftleg_1" + }, + { + "name": "leftleg_2" + }, + { + "name": "leftleg_3" + }, + { + "name": "leftleg_4" + }, + { + "name": "leftleg_5" + }, + { + "name": "leftleg_6" + }, + { + "name": "leftleg_7" + }, + { + "name": "leftleg_8" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/meta.json b/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/meta.json new file mode 100644 index 00000000000..eb19b5d4c47 --- /dev/null +++ b/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/meta.json @@ -0,0 +1,38 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Edited by Mocho from the original tgstation sprites taken at commit https://github.com/tgstation/tgstation/commit/c7e14784b35b1a136351c396d3a546f461ee2451", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "rightarm_0" + }, + { + "name": "rightarm_1" + }, + { + "name": "rightarm_2" + }, + { + "name": "rightarm_3" + }, + { + "name": "rightarm_4" + }, + { + "name": "rightarm_5" + }, + { + "name": "rightarm_6" + }, + { + "name": "rightarm_7" + }, + { + "name": "rightarm_8" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/rightarm_0.png b/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/rightarm_0.png new file mode 100644 index 00000000000..44c8aca6329 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/rightarm_0.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/rightarm_1.png b/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/rightarm_1.png new file mode 100644 index 00000000000..035e0ae12e9 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/rightarm_1.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/rightarm_2.png b/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/rightarm_2.png new file mode 100644 index 00000000000..f6db2e12a9b Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/rightarm_2.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/rightarm_3.png b/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/rightarm_3.png new file mode 100644 index 00000000000..cd974fdeea6 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/rightarm_3.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/rightarm_4.png b/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/rightarm_4.png new file mode 100644 index 00000000000..0a5977cfaf8 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/rightarm_4.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/rightarm_5.png b/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/rightarm_5.png new file mode 100644 index 00000000000..1eb5f0eadd4 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/rightarm_5.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/rightarm_6.png b/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/rightarm_6.png new file mode 100644 index 00000000000..35eec2905a5 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/rightarm_6.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/rightarm_7.png b/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/rightarm_7.png new file mode 100644 index 00000000000..35eec2905a5 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/rightarm_7.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/rightarm_8.png b/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/rightarm_8.png new file mode 100644 index 00000000000..9f894b1bfb3 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/rightarm.rsi/rightarm_8.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/meta.json b/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/meta.json new file mode 100644 index 00000000000..ce1b1f37e7b --- /dev/null +++ b/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/meta.json @@ -0,0 +1,38 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Edited by Mocho from the original tgstation sprites taken at commit https://github.com/tgstation/tgstation/commit/c7e14784b35b1a136351c396d3a546f461ee2451", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "rightfoot_0" + }, + { + "name": "rightfoot_1" + }, + { + "name": "rightfoot_2" + }, + { + "name": "rightfoot_3" + }, + { + "name": "rightfoot_4" + }, + { + "name": "rightfoot_5" + }, + { + "name": "rightfoot_6" + }, + { + "name": "rightfoot_7" + }, + { + "name": "rightfoot_8" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/rightfoot_0.png b/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/rightfoot_0.png new file mode 100644 index 00000000000..573e32ca106 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/rightfoot_0.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/rightfoot_1.png b/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/rightfoot_1.png new file mode 100644 index 00000000000..967639b3fd1 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/rightfoot_1.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/rightfoot_2.png b/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/rightfoot_2.png new file mode 100644 index 00000000000..bff7d8016d0 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/rightfoot_2.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/rightfoot_3.png b/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/rightfoot_3.png new file mode 100644 index 00000000000..d74824df983 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/rightfoot_3.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/rightfoot_4.png b/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/rightfoot_4.png new file mode 100644 index 00000000000..50f6abc2c34 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/rightfoot_4.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/rightfoot_5.png b/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/rightfoot_5.png new file mode 100644 index 00000000000..c824c98dfc2 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/rightfoot_5.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/rightfoot_6.png b/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/rightfoot_6.png new file mode 100644 index 00000000000..ebc654d70e9 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/rightfoot_6.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/rightfoot_7.png b/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/rightfoot_7.png new file mode 100644 index 00000000000..ebc654d70e9 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/rightfoot_7.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/rightfoot_8.png b/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/rightfoot_8.png new file mode 100644 index 00000000000..06ab1d2519d Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/rightfoot.rsi/rightfoot_8.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/righthand.rsi/meta.json b/Resources/Textures/Interface/Targeting/Status/righthand.rsi/meta.json new file mode 100644 index 00000000000..61c5b77862c --- /dev/null +++ b/Resources/Textures/Interface/Targeting/Status/righthand.rsi/meta.json @@ -0,0 +1,38 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Edited by Mocho from the original tgstation sprites taken at commit https://github.com/tgstation/tgstation/commit/c7e14784b35b1a136351c396d3a546f461ee2451", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "righthand_0" + }, + { + "name": "righthand_1" + }, + { + "name": "righthand_2" + }, + { + "name": "righthand_3" + }, + { + "name": "righthand_4" + }, + { + "name": "righthand_5" + }, + { + "name": "righthand_6" + }, + { + "name": "righthand_7" + }, + { + "name": "righthand_8" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Interface/Targeting/Status/righthand.rsi/righthand_0.png b/Resources/Textures/Interface/Targeting/Status/righthand.rsi/righthand_0.png new file mode 100644 index 00000000000..a69056bb651 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/righthand.rsi/righthand_0.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/righthand.rsi/righthand_1.png b/Resources/Textures/Interface/Targeting/Status/righthand.rsi/righthand_1.png new file mode 100644 index 00000000000..e14168b2e7d Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/righthand.rsi/righthand_1.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/righthand.rsi/righthand_2.png b/Resources/Textures/Interface/Targeting/Status/righthand.rsi/righthand_2.png new file mode 100644 index 00000000000..b12b15e883b Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/righthand.rsi/righthand_2.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/righthand.rsi/righthand_3.png b/Resources/Textures/Interface/Targeting/Status/righthand.rsi/righthand_3.png new file mode 100644 index 00000000000..a030aa0980c Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/righthand.rsi/righthand_3.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/righthand.rsi/righthand_4.png b/Resources/Textures/Interface/Targeting/Status/righthand.rsi/righthand_4.png new file mode 100644 index 00000000000..4afd3e7f531 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/righthand.rsi/righthand_4.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/righthand.rsi/righthand_5.png b/Resources/Textures/Interface/Targeting/Status/righthand.rsi/righthand_5.png new file mode 100644 index 00000000000..5062dafc206 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/righthand.rsi/righthand_5.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/righthand.rsi/righthand_6.png b/Resources/Textures/Interface/Targeting/Status/righthand.rsi/righthand_6.png new file mode 100644 index 00000000000..87e8f18ef82 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/righthand.rsi/righthand_6.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/righthand.rsi/righthand_7.png b/Resources/Textures/Interface/Targeting/Status/righthand.rsi/righthand_7.png new file mode 100644 index 00000000000..87e8f18ef82 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/righthand.rsi/righthand_7.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/righthand.rsi/righthand_8.png b/Resources/Textures/Interface/Targeting/Status/righthand.rsi/righthand_8.png new file mode 100644 index 00000000000..797e0683e8b Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/righthand.rsi/righthand_8.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/meta.json b/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/meta.json new file mode 100644 index 00000000000..7dded85e45f --- /dev/null +++ b/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/meta.json @@ -0,0 +1,38 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Edited by Mocho from the original tgstation sprites taken at commit https://github.com/tgstation/tgstation/commit/c7e14784b35b1a136351c396d3a546f461ee2451", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "rightleg_0" + }, + { + "name": "rightleg_1" + }, + { + "name": "rightleg_2" + }, + { + "name": "rightleg_3" + }, + { + "name": "rightleg_4" + }, + { + "name": "rightleg_5" + }, + { + "name": "rightleg_6" + }, + { + "name": "rightleg_7" + }, + { + "name": "rightleg_8" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/rightleg_0.png b/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/rightleg_0.png new file mode 100644 index 00000000000..f773330b026 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/rightleg_0.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/rightleg_1.png b/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/rightleg_1.png new file mode 100644 index 00000000000..786b0777c38 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/rightleg_1.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/rightleg_2.png b/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/rightleg_2.png new file mode 100644 index 00000000000..2ac7cbafa6d Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/rightleg_2.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/rightleg_3.png b/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/rightleg_3.png new file mode 100644 index 00000000000..2f9690690d7 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/rightleg_3.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/rightleg_4.png b/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/rightleg_4.png new file mode 100644 index 00000000000..ec62ccb0627 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/rightleg_4.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/rightleg_5.png b/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/rightleg_5.png new file mode 100644 index 00000000000..d30e124e64d Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/rightleg_5.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/rightleg_6.png b/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/rightleg_6.png new file mode 100644 index 00000000000..9c4ee1f9038 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/rightleg_6.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/rightleg_7.png b/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/rightleg_7.png new file mode 100644 index 00000000000..9c4ee1f9038 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/rightleg_7.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/rightleg_8.png b/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/rightleg_8.png new file mode 100644 index 00000000000..70ccb309add Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/rightleg.rsi/rightleg_8.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/torso.rsi/meta.json b/Resources/Textures/Interface/Targeting/Status/torso.rsi/meta.json new file mode 100644 index 00000000000..7baeebd0801 --- /dev/null +++ b/Resources/Textures/Interface/Targeting/Status/torso.rsi/meta.json @@ -0,0 +1,38 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Edited by Mocho from the original tgstation sprites taken at commit https://github.com/tgstation/tgstation/commit/c7e14784b35b1a136351c396d3a546f461ee2451", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "torso_0" + }, + { + "name": "torso_1" + }, + { + "name": "torso_2" + }, + { + "name": "torso_3" + }, + { + "name": "torso_4" + }, + { + "name": "torso_5" + }, + { + "name": "torso_6" + }, + { + "name": "torso_7" + }, + { + "name": "torso_8" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Interface/Targeting/Status/torso.rsi/torso_0.png b/Resources/Textures/Interface/Targeting/Status/torso.rsi/torso_0.png new file mode 100644 index 00000000000..b20ce001ba6 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/torso.rsi/torso_0.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/torso.rsi/torso_1.png b/Resources/Textures/Interface/Targeting/Status/torso.rsi/torso_1.png new file mode 100644 index 00000000000..591b6a5bab5 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/torso.rsi/torso_1.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/torso.rsi/torso_2.png b/Resources/Textures/Interface/Targeting/Status/torso.rsi/torso_2.png new file mode 100644 index 00000000000..71f09fc7f6b Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/torso.rsi/torso_2.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/torso.rsi/torso_3.png b/Resources/Textures/Interface/Targeting/Status/torso.rsi/torso_3.png new file mode 100644 index 00000000000..fa9f954321c Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/torso.rsi/torso_3.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/torso.rsi/torso_4.png b/Resources/Textures/Interface/Targeting/Status/torso.rsi/torso_4.png new file mode 100644 index 00000000000..ada865a05fe Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/torso.rsi/torso_4.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/torso.rsi/torso_5.png b/Resources/Textures/Interface/Targeting/Status/torso.rsi/torso_5.png new file mode 100644 index 00000000000..8f3a6ad7d0e Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/torso.rsi/torso_5.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/torso.rsi/torso_6.png b/Resources/Textures/Interface/Targeting/Status/torso.rsi/torso_6.png new file mode 100644 index 00000000000..c289a454bdb Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/torso.rsi/torso_6.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/torso.rsi/torso_7.png b/Resources/Textures/Interface/Targeting/Status/torso.rsi/torso_7.png new file mode 100644 index 00000000000..c289a454bdb Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/torso.rsi/torso_7.png differ diff --git a/Resources/Textures/Interface/Targeting/Status/torso.rsi/torso_8.png b/Resources/Textures/Interface/Targeting/Status/torso.rsi/torso_8.png new file mode 100644 index 00000000000..eefec17cf60 Binary files /dev/null and b/Resources/Textures/Interface/Targeting/Status/torso.rsi/torso_8.png differ diff --git a/Resources/Textures/Interface/VerbIcons/paint.svg b/Resources/Textures/Interface/VerbIcons/paint.svg new file mode 100644 index 00000000000..78a56e3570a --- /dev/null +++ b/Resources/Textures/Interface/VerbIcons/paint.svg @@ -0,0 +1,39 @@ + + + + + + diff --git a/Resources/Textures/Interface/VerbIcons/paint.svg.192dpi.png b/Resources/Textures/Interface/VerbIcons/paint.svg.192dpi.png new file mode 100644 index 00000000000..b7bd88245f2 Binary files /dev/null and b/Resources/Textures/Interface/VerbIcons/paint.svg.192dpi.png differ diff --git a/Resources/Textures/Interface/VerbIcons/paint.svg.192dpi.png.yml b/Resources/Textures/Interface/VerbIcons/paint.svg.192dpi.png.yml new file mode 100644 index 00000000000..5c43e233050 --- /dev/null +++ b/Resources/Textures/Interface/VerbIcons/paint.svg.192dpi.png.yml @@ -0,0 +1,2 @@ +sample: + filter: true diff --git a/Resources/Textures/Logo/logo.png b/Resources/Textures/Logo/logo.png index 60aa041cced..f06485e27f1 100644 Binary files a/Resources/Textures/Logo/logo.png and b/Resources/Textures/Logo/logo.png differ diff --git a/Resources/Textures/Logo/source/EE_logo-light.svg b/Resources/Textures/Logo/source/EE_logo-light.svg index 236919fe2f5..2a6efd96d98 100644 --- a/Resources/Textures/Logo/source/EE_logo-light.svg +++ b/Resources/Textures/Logo/source/EE_logo-light.svg @@ -1,12 +1,46 @@ - - - - diff --git a/Resources/Textures/Logo/source/EE_logo.svg b/Resources/Textures/Logo/source/EE_logo.svg new file mode 100644 index 00000000000..236919fe2f5 --- /dev/null +++ b/Resources/Textures/Logo/source/EE_logo.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Resources/Textures/Mobs/Aliens/Carps/carp_parts.rsi/meta.json b/Resources/Textures/Mobs/Aliens/Carps/carp_parts.rsi/meta.json new file mode 100644 index 00000000000..cdecf550def --- /dev/null +++ b/Resources/Textures/Mobs/Aliens/Carps/carp_parts.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from and modified by deltanedas (github) for GoobStation", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "tail" + }, + { + "name": "torso" + } + ] +} diff --git a/Resources/Textures/Mobs/Aliens/Carps/carp_parts.rsi/tail.png b/Resources/Textures/Mobs/Aliens/Carps/carp_parts.rsi/tail.png new file mode 100644 index 00000000000..bb0b9458102 Binary files /dev/null and b/Resources/Textures/Mobs/Aliens/Carps/carp_parts.rsi/tail.png differ diff --git a/Resources/Textures/Mobs/Aliens/Carps/carp_parts.rsi/torso.png b/Resources/Textures/Mobs/Aliens/Carps/carp_parts.rsi/torso.png new file mode 100644 index 00000000000..ab0f5ff82f0 Binary files /dev/null and b/Resources/Textures/Mobs/Aliens/Carps/carp_parts.rsi/torso.png differ diff --git a/Resources/Textures/Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi/l_arm-combined.png b/Resources/Textures/Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi/l_arm-combined.png new file mode 100644 index 00000000000..a6ddbf35891 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi/l_arm-combined.png differ diff --git a/Resources/Textures/Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi/l_leg-combined.png b/Resources/Textures/Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi/l_leg-combined.png new file mode 100644 index 00000000000..915b2af4d37 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi/l_leg-combined.png differ diff --git a/Resources/Textures/Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi/meta.json b/Resources/Textures/Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi/meta.json index a3e6753cc44..94020ddda5b 100644 --- a/Resources/Textures/Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi/meta.json +++ b/Resources/Textures/Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi/meta.json @@ -23,6 +23,10 @@ "name": "l_leg-secondary", "directions": 4 }, + { + "name": "l_leg-combined", + "directions": 4 + }, { "name": "r_leg-primary", "directions": 4 @@ -31,6 +35,10 @@ "name": "r_leg-secondary", "directions": 4 }, + { + "name": "r_leg-combined", + "directions": 4 + }, { "name": "torso-primary", "directions": 4 @@ -51,6 +59,10 @@ "name": "l_arm-tertiary", "directions": 4 }, + { + "name": "l_arm-combined", + "directions": 4 + }, { "name": "r_arm-primary", "directions": 4 @@ -63,6 +75,10 @@ "name": "r_arm-tertiary", "directions": 4 }, + { + "name": "r_arm-combined", + "directions": 4 + }, { "name": "l_hand", "directions": 4 @@ -76,4 +92,4 @@ "directions": 4 } ] -} \ No newline at end of file +} diff --git a/Resources/Textures/Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi/r_arm-combined.png b/Resources/Textures/Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi/r_arm-combined.png new file mode 100644 index 00000000000..eabc7e4bd88 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi/r_arm-combined.png differ diff --git a/Resources/Textures/Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi/r_leg-combined.png b/Resources/Textures/Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi/r_leg-combined.png new file mode 100644 index 00000000000..a035dd86265 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/cyberlimbs/bishop/bishop_main.rsi/r_leg-combined.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/bangle_l.png b/Resources/Textures/Mobs/Customization/earrings.rsi/bangle_l.png new file mode 100644 index 00000000000..e5fba08f2dc Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/bangle_l.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/bangle_r.png b/Resources/Textures/Mobs/Customization/earrings.rsi/bangle_r.png new file mode 100644 index 00000000000..88767499020 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/bangle_r.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/crescent_l.png b/Resources/Textures/Mobs/Customization/earrings.rsi/crescent_l.png new file mode 100644 index 00000000000..ca096c980db Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/crescent_l.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/crescent_r.png b/Resources/Textures/Mobs/Customization/earrings.rsi/crescent_r.png new file mode 100644 index 00000000000..a8f42fd563f Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/crescent_r.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/cross_l.png b/Resources/Textures/Mobs/Customization/earrings.rsi/cross_l.png new file mode 100644 index 00000000000..bac85eca4db Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/cross_l.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/cross_r.png b/Resources/Textures/Mobs/Customization/earrings.rsi/cross_r.png new file mode 100644 index 00000000000..0feb48e8d9a Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/cross_r.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/cross_saint_peter_l.png b/Resources/Textures/Mobs/Customization/earrings.rsi/cross_saint_peter_l.png new file mode 100644 index 00000000000..e18ceb6f1c1 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/cross_saint_peter_l.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/cross_saint_peter_r.png b/Resources/Textures/Mobs/Customization/earrings.rsi/cross_saint_peter_r.png new file mode 100644 index 00000000000..e34983f5905 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/cross_saint_peter_r.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/crystal_long_tone_1_l.png b/Resources/Textures/Mobs/Customization/earrings.rsi/crystal_long_tone_1_l.png new file mode 100644 index 00000000000..64eea4dc75f Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/crystal_long_tone_1_l.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/crystal_long_tone_1_r.png b/Resources/Textures/Mobs/Customization/earrings.rsi/crystal_long_tone_1_r.png new file mode 100644 index 00000000000..ad230c4e2ce Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/crystal_long_tone_1_r.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/crystal_long_tone_2_l.png b/Resources/Textures/Mobs/Customization/earrings.rsi/crystal_long_tone_2_l.png new file mode 100644 index 00000000000..653a9c77a2e Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/crystal_long_tone_2_l.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/crystal_long_tone_2_r.png b/Resources/Textures/Mobs/Customization/earrings.rsi/crystal_long_tone_2_r.png new file mode 100644 index 00000000000..575103b1a27 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/crystal_long_tone_2_r.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/crystal_tone_1_l.png b/Resources/Textures/Mobs/Customization/earrings.rsi/crystal_tone_1_l.png new file mode 100644 index 00000000000..66a73322652 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/crystal_tone_1_l.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/crystal_tone_1_r.png b/Resources/Textures/Mobs/Customization/earrings.rsi/crystal_tone_1_r.png new file mode 100644 index 00000000000..bd616334b60 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/crystal_tone_1_r.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/crystal_tone_2_l.png b/Resources/Textures/Mobs/Customization/earrings.rsi/crystal_tone_2_l.png new file mode 100644 index 00000000000..2a457adc063 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/crystal_tone_2_l.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/crystal_tone_2_r.png b/Resources/Textures/Mobs/Customization/earrings.rsi/crystal_tone_2_r.png new file mode 100644 index 00000000000..0618213346b Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/crystal_tone_2_r.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/dangle_long_tone_1_l.png b/Resources/Textures/Mobs/Customization/earrings.rsi/dangle_long_tone_1_l.png new file mode 100644 index 00000000000..2a4e5ef57ee Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/dangle_long_tone_1_l.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/dangle_long_tone_1_r.png b/Resources/Textures/Mobs/Customization/earrings.rsi/dangle_long_tone_1_r.png new file mode 100644 index 00000000000..4b7f5c6930f Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/dangle_long_tone_1_r.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/dangle_long_tone_2_l.png b/Resources/Textures/Mobs/Customization/earrings.rsi/dangle_long_tone_2_l.png new file mode 100644 index 00000000000..db98b918796 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/dangle_long_tone_2_l.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/dangle_long_tone_2_r.png b/Resources/Textures/Mobs/Customization/earrings.rsi/dangle_long_tone_2_r.png new file mode 100644 index 00000000000..090705cf858 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/dangle_long_tone_2_r.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/dangle_tone_1_l.png b/Resources/Textures/Mobs/Customization/earrings.rsi/dangle_tone_1_l.png new file mode 100644 index 00000000000..5674784c8af Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/dangle_tone_1_l.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/dangle_tone_1_r.png b/Resources/Textures/Mobs/Customization/earrings.rsi/dangle_tone_1_r.png new file mode 100644 index 00000000000..15cf6048ef4 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/dangle_tone_1_r.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/dangle_tone_2_l.png b/Resources/Textures/Mobs/Customization/earrings.rsi/dangle_tone_2_l.png new file mode 100644 index 00000000000..84966492a7a Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/dangle_tone_2_l.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/dangle_tone_2_r.png b/Resources/Textures/Mobs/Customization/earrings.rsi/dangle_tone_2_r.png new file mode 100644 index 00000000000..4ab399aef9f Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/dangle_tone_2_r.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/drop_colored_tone_1_l.png b/Resources/Textures/Mobs/Customization/earrings.rsi/drop_colored_tone_1_l.png new file mode 100644 index 00000000000..4a817f18ddf Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/drop_colored_tone_1_l.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/drop_colored_tone_1_r.png b/Resources/Textures/Mobs/Customization/earrings.rsi/drop_colored_tone_1_r.png new file mode 100644 index 00000000000..d78e40175ba Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/drop_colored_tone_1_r.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/drop_colored_tone_2_l.png b/Resources/Textures/Mobs/Customization/earrings.rsi/drop_colored_tone_2_l.png new file mode 100644 index 00000000000..b2427c6f611 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/drop_colored_tone_2_l.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/drop_colored_tone_2_r.png b/Resources/Textures/Mobs/Customization/earrings.rsi/drop_colored_tone_2_r.png new file mode 100644 index 00000000000..1ed6edddeb7 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/drop_colored_tone_2_r.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/drop_l.png b/Resources/Textures/Mobs/Customization/earrings.rsi/drop_l.png new file mode 100644 index 00000000000..753ecabf194 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/drop_l.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/drop_long_tone_1_l.png b/Resources/Textures/Mobs/Customization/earrings.rsi/drop_long_tone_1_l.png new file mode 100644 index 00000000000..4a817f18ddf Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/drop_long_tone_1_l.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/drop_long_tone_1_r.png b/Resources/Textures/Mobs/Customization/earrings.rsi/drop_long_tone_1_r.png new file mode 100644 index 00000000000..d78e40175ba Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/drop_long_tone_1_r.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/drop_long_tone_2_l.png b/Resources/Textures/Mobs/Customization/earrings.rsi/drop_long_tone_2_l.png new file mode 100644 index 00000000000..9a32f35687d Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/drop_long_tone_2_l.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/drop_long_tone_2_r.png b/Resources/Textures/Mobs/Customization/earrings.rsi/drop_long_tone_2_r.png new file mode 100644 index 00000000000..67fb3513167 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/drop_long_tone_2_r.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/drop_r.png b/Resources/Textures/Mobs/Customization/earrings.rsi/drop_r.png new file mode 100644 index 00000000000..397d9aa33ee Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/drop_r.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/eight_l.png b/Resources/Textures/Mobs/Customization/earrings.rsi/eight_l.png new file mode 100644 index 00000000000..3e8d6b27ade Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/eight_l.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/eight_r.png b/Resources/Textures/Mobs/Customization/earrings.rsi/eight_r.png new file mode 100644 index 00000000000..a2c06df7326 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/eight_r.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_double_tone_1_l.png b/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_double_tone_1_l.png new file mode 100644 index 00000000000..019fb901488 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_double_tone_1_l.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_double_tone_1_r.png b/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_double_tone_1_r.png new file mode 100644 index 00000000000..8e409a6ec99 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_double_tone_1_r.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_double_tone_2_l.png b/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_double_tone_2_l.png new file mode 100644 index 00000000000..eb374fb1194 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_double_tone_2_l.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_double_tone_2_r.png b/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_double_tone_2_r.png new file mode 100644 index 00000000000..a158eb1c1de Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_double_tone_2_r.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_double_tone_3_l.png b/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_double_tone_3_l.png new file mode 100644 index 00000000000..76ba06295a8 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_double_tone_3_l.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_double_tone_3_r.png b/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_double_tone_3_r.png new file mode 100644 index 00000000000..23eac60bf93 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_double_tone_3_r.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_long_tone_1_l.png b/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_long_tone_1_l.png new file mode 100644 index 00000000000..821d9c40de8 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_long_tone_1_l.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_long_tone_1_r.png b/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_long_tone_1_r.png new file mode 100644 index 00000000000..3aa9a34bc4c Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_long_tone_1_r.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_long_tone_2_l.png b/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_long_tone_2_l.png new file mode 100644 index 00000000000..5b40a38a8d1 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_long_tone_2_l.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_long_tone_2_r.png b/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_long_tone_2_r.png new file mode 100644 index 00000000000..cc2ca918d87 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_long_tone_2_r.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_tone_1_l.png b/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_tone_1_l.png new file mode 100644 index 00000000000..6dbdeaab4b3 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_tone_1_l.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_tone_1_r.png b/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_tone_1_r.png new file mode 100644 index 00000000000..bdd91ebcfcb Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_tone_1_r.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_tone_2_l.png b/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_tone_2_l.png new file mode 100644 index 00000000000..29448742edf Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_tone_2_l.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_tone_2_r.png b/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_tone_2_r.png new file mode 100644 index 00000000000..82ae53a1895 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/gemstone_tone_2_r.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/heavy_l.png b/Resources/Textures/Mobs/Customization/earrings.rsi/heavy_l.png new file mode 100644 index 00000000000..50a902bbafd Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/heavy_l.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/heavy_r.png b/Resources/Textures/Mobs/Customization/earrings.rsi/heavy_r.png new file mode 100644 index 00000000000..b9c5bfc0ae9 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/heavy_r.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/hoop_l.png b/Resources/Textures/Mobs/Customization/earrings.rsi/hoop_l.png new file mode 100644 index 00000000000..7f1b16874c4 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/hoop_l.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/hoop_mini_l.png b/Resources/Textures/Mobs/Customization/earrings.rsi/hoop_mini_l.png new file mode 100644 index 00000000000..c0ea4ae5784 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/hoop_mini_l.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/hoop_mini_r.png b/Resources/Textures/Mobs/Customization/earrings.rsi/hoop_mini_r.png new file mode 100644 index 00000000000..f53dd82e3b3 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/hoop_mini_r.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/hoop_r.png b/Resources/Textures/Mobs/Customization/earrings.rsi/hoop_r.png new file mode 100644 index 00000000000..b4ad90c7775 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/hoop_r.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/meta.json b/Resources/Textures/Mobs/Customization/earrings.rsi/meta.json new file mode 100644 index 00000000000..0d8b5b39a92 --- /dev/null +++ b/Resources/Textures/Mobs/Customization/earrings.rsi/meta.json @@ -0,0 +1,243 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from Aurorastation at commit https://github.com/Aurorastation/Aurora.3/commit/7bc5666e9e12ef31dcfdc9bd4b68831b34811bc6, Edited and expanded by Skubman (github: angelofallars)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "bangle_l", + "directions": 4 + }, + { + "name": "bangle_r", + "directions": 4 + }, + { + "name": "crescent_l", + "directions": 4 + }, + { + "name": "crescent_r", + "directions": 4 + }, + { + "name": "cross_l", + "directions": 4 + }, + { + "name": "cross_r", + "directions": 4 + }, + { + "name": "cross_saint_peter_l", + "directions": 4 + }, + { + "name": "cross_saint_peter_r", + "directions": 4 + }, + { + "name": "crystal_tone_1_l", + "directions": 4 + }, + { + "name": "crystal_tone_2_l", + "directions": 4 + }, + { + "name": "crystal_tone_1_r", + "directions": 4 + }, + { + "name": "crystal_tone_2_r", + "directions": 4 + }, + { + "name": "crystal_long_tone_1_l", + "directions": 4 + }, + { + "name": "crystal_long_tone_2_l", + "directions": 4 + }, + { + "name": "crystal_long_tone_1_r", + "directions": 4 + }, + { + "name": "crystal_long_tone_2_r", + "directions": 4 + }, + { + "name": "dangle_tone_1_l", + "directions": 4 + }, + { + "name": "dangle_tone_2_l", + "directions": 4 + }, + { + "name": "dangle_tone_1_r", + "directions": 4 + }, + { + "name": "dangle_tone_2_r", + "directions": 4 + }, + { + "name": "dangle_long_tone_1_l", + "directions": 4 + }, + { + "name": "dangle_long_tone_2_l", + "directions": 4 + }, + { + "name": "dangle_long_tone_1_r", + "directions": 4 + }, + { + "name": "dangle_long_tone_2_r", + "directions": 4 + }, + { + "name": "drop_l", + "directions": 4 + }, + { + "name": "drop_r", + "directions": 4 + }, + { + "name": "drop_colored_tone_1_l", + "directions": 4 + }, + { + "name": "drop_colored_tone_2_l", + "directions": 4 + }, + { + "name": "drop_colored_tone_1_r", + "directions": 4 + }, + { + "name": "drop_colored_tone_2_r", + "directions": 4 + }, + { + "name": "drop_long_tone_1_l", + "directions": 4 + }, + { + "name": "drop_long_tone_2_l", + "directions": 4 + }, + { + "name": "drop_long_tone_1_r", + "directions": 4 + }, + { + "name": "drop_long_tone_2_r", + "directions": 4 + }, + { + "name": "eight_l", + "directions": 4 + }, + { + "name": "eight_r", + "directions": 4 + }, + { + "name": "gemstone_tone_1_l", + "directions": 4 + }, + { + "name": "gemstone_tone_2_l", + "directions": 4 + }, + { + "name": "gemstone_tone_1_r", + "directions": 4 + }, + { + "name": "gemstone_tone_2_r", + "directions": 4 + }, + { + "name": "gemstone_long_tone_1_l", + "directions": 4 + }, + { + "name": "gemstone_long_tone_2_l", + "directions": 4 + }, + { + "name": "gemstone_long_tone_1_r", + "directions": 4 + }, + { + "name": "gemstone_long_tone_2_r", + "directions": 4 + }, + { + "name": "gemstone_double_tone_1_l", + "directions": 4 + }, + { + "name": "gemstone_double_tone_2_l", + "directions": 4 + }, + { + "name": "gemstone_double_tone_3_l", + "directions": 4 + }, + { + "name": "gemstone_double_tone_1_r", + "directions": 4 + }, + { + "name": "gemstone_double_tone_2_r", + "directions": 4 + }, + { + "name": "gemstone_double_tone_3_r", + "directions": 4 + }, + { + "name": "heavy_l", + "directions": 4 + }, + { + "name": "heavy_r", + "directions": 4 + }, + { + "name": "hoop_l", + "directions": 4 + }, + { + "name": "hoop_r", + "directions": 4 + }, + { + "name": "hoop_mini_l", + "directions": 4 + }, + { + "name": "hoop_mini_r", + "directions": 4 + }, + { + "name": "stud_l", + "directions": 4 + }, + { + "name": "stud_r", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/stud_l.png b/Resources/Textures/Mobs/Customization/earrings.rsi/stud_l.png new file mode 100644 index 00000000000..4a817f18ddf Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/stud_l.png differ diff --git a/Resources/Textures/Mobs/Customization/earrings.rsi/stud_r.png b/Resources/Textures/Mobs/Customization/earrings.rsi/stud_r.png new file mode 100644 index 00000000000..d78e40175ba Binary files /dev/null and b/Resources/Textures/Mobs/Customization/earrings.rsi/stud_r.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/bindi.png b/Resources/Textures/Mobs/Customization/face.rsi/bindi.png new file mode 100644 index 00000000000..417e3ac4d51 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/bindi.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/cheekspot_l.png b/Resources/Textures/Mobs/Customization/face.rsi/cheekspot_l.png new file mode 100644 index 00000000000..bacfebce82f Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/cheekspot_l.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/cheekspot_r.png b/Resources/Textures/Mobs/Customization/face.rsi/cheekspot_r.png new file mode 100644 index 00000000000..bc9359e0d14 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/cheekspot_r.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/chesire_l.png b/Resources/Textures/Mobs/Customization/face.rsi/chesire_l.png new file mode 100644 index 00000000000..5377a312250 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/chesire_l.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/chesire_r.png b/Resources/Textures/Mobs/Customization/face.rsi/chesire_r.png new file mode 100644 index 00000000000..87039242087 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/chesire_r.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/crow_l.png b/Resources/Textures/Mobs/Customization/face.rsi/crow_l.png new file mode 100644 index 00000000000..7c656b4e91c Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/crow_l.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/crow_r.png b/Resources/Textures/Mobs/Customization/face.rsi/crow_r.png new file mode 100644 index 00000000000..4ec9100c4ae Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/crow_r.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/ear_l.png b/Resources/Textures/Mobs/Customization/face.rsi/ear_l.png new file mode 100644 index 00000000000..6ea3db7053d Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/ear_l.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/ear_r.png b/Resources/Textures/Mobs/Customization/face.rsi/ear_r.png new file mode 100644 index 00000000000..0d5a0001d8b Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/ear_r.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/eyebrow_l.png b/Resources/Textures/Mobs/Customization/face.rsi/eyebrow_l.png new file mode 100644 index 00000000000..d9bfecca99b Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/eyebrow_l.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/eyebrow_r.png b/Resources/Textures/Mobs/Customization/face.rsi/eyebrow_r.png new file mode 100644 index 00000000000..05a52dc246c Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/eyebrow_r.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/eyebrows.png b/Resources/Textures/Mobs/Customization/face.rsi/eyebrows.png new file mode 100644 index 00000000000..45b7dc9510b Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/eyebrows.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/eyecorner_l.png b/Resources/Textures/Mobs/Customization/face.rsi/eyecorner_l.png new file mode 100644 index 00000000000..6108891dff8 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/eyecorner_l.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/eyecorner_r.png b/Resources/Textures/Mobs/Customization/face.rsi/eyecorner_r.png new file mode 100644 index 00000000000..f0ef4e35533 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/eyecorner_r.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/eyelash_l.png b/Resources/Textures/Mobs/Customization/face.rsi/eyelash_l.png new file mode 100644 index 00000000000..e945ec2a22a Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/eyelash_l.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/eyelash_r.png b/Resources/Textures/Mobs/Customization/face.rsi/eyelash_r.png new file mode 100644 index 00000000000..72dbd9f5795 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/eyelash_r.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/eyestripe.png b/Resources/Textures/Mobs/Customization/face.rsi/eyestripe.png new file mode 100644 index 00000000000..0bafeff98c9 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/eyestripe.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/fullblush.png b/Resources/Textures/Mobs/Customization/face.rsi/fullblush.png new file mode 100644 index 00000000000..070dda71080 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/fullblush.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/glabella.png b/Resources/Textures/Mobs/Customization/face.rsi/glabella.png new file mode 100644 index 00000000000..e118060f49f Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/glabella.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/lipcorner_l.png b/Resources/Textures/Mobs/Customization/face.rsi/lipcorner_l.png new file mode 100644 index 00000000000..1d949b40845 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/lipcorner_l.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/lipcorner_r.png b/Resources/Textures/Mobs/Customization/face.rsi/lipcorner_r.png new file mode 100644 index 00000000000..893a0fac7e6 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/lipcorner_r.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/lowercheek_l.png b/Resources/Textures/Mobs/Customization/face.rsi/lowercheek_l.png new file mode 100644 index 00000000000..83f0a40de78 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/lowercheek_l.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/lowercheek_r.png b/Resources/Textures/Mobs/Customization/face.rsi/lowercheek_r.png new file mode 100644 index 00000000000..027e5484c19 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/lowercheek_r.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/meta.json b/Resources/Textures/Mobs/Customization/face.rsi/meta.json new file mode 100644 index 00000000000..a7447b21569 --- /dev/null +++ b/Resources/Textures/Mobs/Customization/face.rsi/meta.json @@ -0,0 +1,135 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from Aurorastation at commit https://github.com/Aurorastation/Aurora.3/commit/639227c952a8012a88288257140166ca7419385d, edited & single eyebrow/nosetip/glabella created by Skubman (github: angelofallars)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "bindi", + "directions": 4 + }, + { + "name": "fullblush", + "directions": 4 + }, + { + "name": "cheekspot_r", + "directions": 4 + }, + { + "name": "cheekspot_l", + "directions": 4 + }, + { + "name": "chesire_r", + "directions": 4 + }, + { + "name": "chesire_l", + "directions": 4 + }, + { + "name": "crow_r", + "directions": 4 + }, + { + "name": "crow_l", + "directions": 4 + }, + { + "name": "ear_r", + "directions": 4 + }, + { + "name": "ear_l", + "directions": 4 + }, + { + "name": "eyebrow_r", + "directions": 4 + }, + { + "name": "eyebrow_l", + "directions": 4 + }, + { + "name": "eyebrows", + "directions": 4 + }, + { + "name": "eyecorner_r", + "directions": 4 + }, + { + "name": "eyecorner_l", + "directions": 4 + }, + { + "name": "eyelash_r", + "directions": 4 + }, + { + "name": "eyelash_l", + "directions": 4 + }, + { + "name": "eyestripe", + "directions": 4 + }, + { + "name": "lipcorner_r", + "directions": 4 + }, + { + "name": "lipcorner_l", + "directions": 4 + }, + { + "name": "glabella", + "directions": 4 + }, + { + "name": "lowercheek_r", + "directions": 4 + }, + { + "name": "lowercheek_l", + "directions": 4 + }, + { + "name": "neck_f", + "directions": 4 + }, + { + "name": "neck_m", + "directions": 4 + }, + { + "name": "neck_thick_f", + "directions": 4 + }, + { + "name": "neck_thick_m", + "directions": 4 + }, + { + "name": "nosetape", + "directions": 4 + }, + { + "name": "nosetip", + "directions": 4 + }, + { + "name": "nosestripe", + "directions": 4 + }, + { + "name": "unibrow", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Mobs/Customization/face.rsi/neck_f.png b/Resources/Textures/Mobs/Customization/face.rsi/neck_f.png new file mode 100644 index 00000000000..69d5ef44e6e Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/neck_f.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/neck_m.png b/Resources/Textures/Mobs/Customization/face.rsi/neck_m.png new file mode 100644 index 00000000000..d0fd1fee960 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/neck_m.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/neck_thick_f.png b/Resources/Textures/Mobs/Customization/face.rsi/neck_thick_f.png new file mode 100644 index 00000000000..220232d671f Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/neck_thick_f.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/neck_thick_m.png b/Resources/Textures/Mobs/Customization/face.rsi/neck_thick_m.png new file mode 100644 index 00000000000..091dba81ec1 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/neck_thick_m.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/nosestripe.png b/Resources/Textures/Mobs/Customization/face.rsi/nosestripe.png new file mode 100644 index 00000000000..d1a9a3ff814 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/nosestripe.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/nosetape.png b/Resources/Textures/Mobs/Customization/face.rsi/nosetape.png new file mode 100644 index 00000000000..606af1e35ca Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/nosetape.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/nosetip.png b/Resources/Textures/Mobs/Customization/face.rsi/nosetip.png new file mode 100644 index 00000000000..3cb681f3b45 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/nosetip.png differ diff --git a/Resources/Textures/Mobs/Customization/face.rsi/unibrow.png b/Resources/Textures/Mobs/Customization/face.rsi/unibrow.png new file mode 100644 index 00000000000..aa84ea81b2e Binary files /dev/null and b/Resources/Textures/Mobs/Customization/face.rsi/unibrow.png differ diff --git a/Resources/Textures/Mobs/Customization/tattoos.rsi/meta.json b/Resources/Textures/Mobs/Customization/tattoos.rsi/meta.json index 38dfe7ea718..8f22a5994fb 100644 --- a/Resources/Textures/Mobs/Customization/tattoos.rsi/meta.json +++ b/Resources/Textures/Mobs/Customization/tattoos.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "https://github.com/Skyrat-SS13/Skyrat-tg/tree/40e3cdbb15b8bc0d5ef2fb46133adf805bda5297/modular_skyrat/master_files/icons/mob/body_markings/tattoo_markings.dmi", + "copyright": "https://github.com/Skyrat-SS13/Skyrat-tg/tree/40e3cdbb15b8bc0d5ef2fb46133adf805bda5297/modular_skyrat/master_files/icons/mob/body_markings/tattoo_markings.dmi | Arachne eyes by Skubman (github: angelofallars)", "size": { "x": 32, "y": 32 @@ -46,6 +46,14 @@ { "name": "tattoo_eye_l", "directions": 4 + }, + { + "name": "tattoo_eye_arachne_r", + "directions": 4 + }, + { + "name": "tattoo_eye_arachne_l", + "directions": 4 } ] } diff --git a/Resources/Textures/Mobs/Customization/tattoos.rsi/tattoo_eye_arachne_l.png b/Resources/Textures/Mobs/Customization/tattoos.rsi/tattoo_eye_arachne_l.png new file mode 100644 index 00000000000..389f143143f Binary files /dev/null and b/Resources/Textures/Mobs/Customization/tattoos.rsi/tattoo_eye_arachne_l.png differ diff --git a/Resources/Textures/Mobs/Customization/tattoos.rsi/tattoo_eye_arachne_r.png b/Resources/Textures/Mobs/Customization/tattoos.rsi/tattoo_eye_arachne_r.png new file mode 100644 index 00000000000..121679883a4 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/tattoos.rsi/tattoo_eye_arachne_r.png differ diff --git a/Resources/Textures/Mobs/Customization/wrist.rsi/bracelet_arm_l.png b/Resources/Textures/Mobs/Customization/wrist.rsi/bracelet_arm_l.png new file mode 100644 index 00000000000..b3170e72b07 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/wrist.rsi/bracelet_arm_l.png differ diff --git a/Resources/Textures/Mobs/Customization/wrist.rsi/bracelet_arm_r.png b/Resources/Textures/Mobs/Customization/wrist.rsi/bracelet_arm_r.png new file mode 100644 index 00000000000..d94f7d3a7e4 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/wrist.rsi/bracelet_arm_r.png differ diff --git a/Resources/Textures/Mobs/Customization/wrist.rsi/bracelet_l.png b/Resources/Textures/Mobs/Customization/wrist.rsi/bracelet_l.png new file mode 100644 index 00000000000..aa0b006726e Binary files /dev/null and b/Resources/Textures/Mobs/Customization/wrist.rsi/bracelet_l.png differ diff --git a/Resources/Textures/Mobs/Customization/wrist.rsi/bracelet_r.png b/Resources/Textures/Mobs/Customization/wrist.rsi/bracelet_r.png new file mode 100644 index 00000000000..efdede9fa23 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/wrist.rsi/bracelet_r.png differ diff --git a/Resources/Textures/Mobs/Customization/wrist.rsi/meta.json b/Resources/Textures/Mobs/Customization/wrist.rsi/meta.json new file mode 100644 index 00000000000..9be0d6d5290 --- /dev/null +++ b/Resources/Textures/Mobs/Customization/wrist.rsi/meta.json @@ -0,0 +1,143 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from Aurorastation at commit https://github.com/Aurorastation/Aurora.3/commit/d6acf1ddd9c8b7c038bfbacea03545889c9181c8, bracelet_arm/watch_colorable originally from Aurorastation edited by Skubman (github: angelofallars)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "bracelet_r", + "directions": 4 + }, + { + "name": "bracelet_l", + "directions": 4 + }, + { + "name": "bracelet_arm_r", + "directions": 4 + }, + { + "name": "bracelet_arm_l", + "directions": 4 + }, + { + "name": "watch_r", + "directions": 4 + }, + { + "name": "watch_l", + "directions": 4 + }, + { + "name": "watch_silver_r", + "directions": 4 + }, + { + "name": "watch_silver_l", + "directions": 4 + }, + { + "name": "watch_gold_r", + "directions": 4 + }, + { + "name": "watch_gold_l", + "directions": 4 + }, + { + "name": "watch_holo_r", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 2 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 2 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 2 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 2 + ] + ] + }, + { + "name": "watch_holo_l", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 2 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 2 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 2 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 2 + ] + ] + }, + { + "name": "watch_leather_r", + "directions": 4 + }, + { + "name": "watch_leather_l", + "directions": 4 + }, + { + "name": "watch_colorable_r_tone_1", + "directions": 4 + }, + { + "name": "watch_colorable_r_tone_2", + "directions": 4 + }, + { + "name": "watch_colorable_l_tone_1", + "directions": 4 + }, + { + "name": "watch_colorable_l_tone_2", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Mobs/Customization/wrist.rsi/watch_colorable_l_tone_1.png b/Resources/Textures/Mobs/Customization/wrist.rsi/watch_colorable_l_tone_1.png new file mode 100644 index 00000000000..4d68c0fe3c6 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/wrist.rsi/watch_colorable_l_tone_1.png differ diff --git a/Resources/Textures/Mobs/Customization/wrist.rsi/watch_colorable_l_tone_2.png b/Resources/Textures/Mobs/Customization/wrist.rsi/watch_colorable_l_tone_2.png new file mode 100644 index 00000000000..eab8c109c31 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/wrist.rsi/watch_colorable_l_tone_2.png differ diff --git a/Resources/Textures/Mobs/Customization/wrist.rsi/watch_colorable_r_tone_1.png b/Resources/Textures/Mobs/Customization/wrist.rsi/watch_colorable_r_tone_1.png new file mode 100644 index 00000000000..4a4e912ebfa Binary files /dev/null and b/Resources/Textures/Mobs/Customization/wrist.rsi/watch_colorable_r_tone_1.png differ diff --git a/Resources/Textures/Mobs/Customization/wrist.rsi/watch_colorable_r_tone_2.png b/Resources/Textures/Mobs/Customization/wrist.rsi/watch_colorable_r_tone_2.png new file mode 100644 index 00000000000..ddac10fd6ec Binary files /dev/null and b/Resources/Textures/Mobs/Customization/wrist.rsi/watch_colorable_r_tone_2.png differ diff --git a/Resources/Textures/Mobs/Customization/wrist.rsi/watch_gold_l.png b/Resources/Textures/Mobs/Customization/wrist.rsi/watch_gold_l.png new file mode 100644 index 00000000000..ebc97ebf751 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/wrist.rsi/watch_gold_l.png differ diff --git a/Resources/Textures/Mobs/Customization/wrist.rsi/watch_gold_r.png b/Resources/Textures/Mobs/Customization/wrist.rsi/watch_gold_r.png new file mode 100644 index 00000000000..b18b5e023f2 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/wrist.rsi/watch_gold_r.png differ diff --git a/Resources/Textures/Mobs/Customization/wrist.rsi/watch_holo_l.png b/Resources/Textures/Mobs/Customization/wrist.rsi/watch_holo_l.png new file mode 100644 index 00000000000..38a0353f0b3 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/wrist.rsi/watch_holo_l.png differ diff --git a/Resources/Textures/Mobs/Customization/wrist.rsi/watch_holo_r.png b/Resources/Textures/Mobs/Customization/wrist.rsi/watch_holo_r.png new file mode 100644 index 00000000000..fc588ded283 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/wrist.rsi/watch_holo_r.png differ diff --git a/Resources/Textures/Mobs/Customization/wrist.rsi/watch_l.png b/Resources/Textures/Mobs/Customization/wrist.rsi/watch_l.png new file mode 100644 index 00000000000..5d68246758f Binary files /dev/null and b/Resources/Textures/Mobs/Customization/wrist.rsi/watch_l.png differ diff --git a/Resources/Textures/Mobs/Customization/wrist.rsi/watch_leather_l.png b/Resources/Textures/Mobs/Customization/wrist.rsi/watch_leather_l.png new file mode 100644 index 00000000000..27c2aa4f71c Binary files /dev/null and b/Resources/Textures/Mobs/Customization/wrist.rsi/watch_leather_l.png differ diff --git a/Resources/Textures/Mobs/Customization/wrist.rsi/watch_leather_r.png b/Resources/Textures/Mobs/Customization/wrist.rsi/watch_leather_r.png new file mode 100644 index 00000000000..b8d666b4ff9 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/wrist.rsi/watch_leather_r.png differ diff --git a/Resources/Textures/Mobs/Customization/wrist.rsi/watch_r.png b/Resources/Textures/Mobs/Customization/wrist.rsi/watch_r.png new file mode 100644 index 00000000000..dd4c8c37811 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/wrist.rsi/watch_r.png differ diff --git a/Resources/Textures/Mobs/Customization/wrist.rsi/watch_silver_l.png b/Resources/Textures/Mobs/Customization/wrist.rsi/watch_silver_l.png new file mode 100644 index 00000000000..ac1ac049688 Binary files /dev/null and b/Resources/Textures/Mobs/Customization/wrist.rsi/watch_silver_l.png differ diff --git a/Resources/Textures/Mobs/Customization/wrist.rsi/watch_silver_r.png b/Resources/Textures/Mobs/Customization/wrist.rsi/watch_silver_r.png new file mode 100644 index 00000000000..958d734a48d Binary files /dev/null and b/Resources/Textures/Mobs/Customization/wrist.rsi/watch_silver_r.png differ diff --git a/Resources/Textures/Mobs/Species/IPC/organs.rsi/eyes.png b/Resources/Textures/Mobs/Species/IPC/organs.rsi/eyes.png new file mode 100644 index 00000000000..0fb6412e1c3 Binary files /dev/null and b/Resources/Textures/Mobs/Species/IPC/organs.rsi/eyes.png differ diff --git a/Resources/Textures/Mobs/Species/IPC/organs.rsi/meta.json b/Resources/Textures/Mobs/Species/IPC/organs.rsi/meta.json index d6b1b51038e..2905c5cbd07 100644 --- a/Resources/Textures/Mobs/Species/IPC/organs.rsi/meta.json +++ b/Resources/Textures/Mobs/Species/IPC/organs.rsi/meta.json @@ -22,6 +22,9 @@ ] ] }, + { + "name": "eyes" + }, { "name": "eyeball-r" }, diff --git a/Resources/Textures/Mobs/Species/Misc/Pizza/parts.rsi/l_arm.png b/Resources/Textures/Mobs/Species/Misc/Pizza/parts.rsi/l_arm.png new file mode 100644 index 00000000000..d2838e8b7d4 Binary files /dev/null and b/Resources/Textures/Mobs/Species/Misc/Pizza/parts.rsi/l_arm.png differ diff --git a/Resources/Textures/Mobs/Species/Misc/Pizza/parts.rsi/meta.json b/Resources/Textures/Mobs/Species/Misc/Pizza/parts.rsi/meta.json new file mode 100644 index 00000000000..27215dfbca6 --- /dev/null +++ b/Resources/Textures/Mobs/Species/Misc/Pizza/parts.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by Agoichi (823598558690934824)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "l_arm", + "directions": 4 + }, + { + "name": "r_arm", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Mobs/Species/Misc/Pizza/parts.rsi/r_arm.png b/Resources/Textures/Mobs/Species/Misc/Pizza/parts.rsi/r_arm.png new file mode 100644 index 00000000000..a85b505f90e Binary files /dev/null and b/Resources/Textures/Mobs/Species/Misc/Pizza/parts.rsi/r_arm.png differ diff --git a/Resources/Textures/Objects/Fun/spraycans.rsi/clown-inhand-left.png b/Resources/Textures/Objects/Fun/spraycans.rsi/clown-inhand-left.png new file mode 100644 index 00000000000..d90d5b21b73 Binary files /dev/null and b/Resources/Textures/Objects/Fun/spraycans.rsi/clown-inhand-left.png differ diff --git a/Resources/Textures/Objects/Fun/spraycans.rsi/clown-inhand-right.png b/Resources/Textures/Objects/Fun/spraycans.rsi/clown-inhand-right.png new file mode 100644 index 00000000000..27b68e2cfe5 Binary files /dev/null and b/Resources/Textures/Objects/Fun/spraycans.rsi/clown-inhand-right.png differ diff --git a/Resources/Textures/Objects/Fun/spraycans.rsi/meta.json b/Resources/Textures/Objects/Fun/spraycans.rsi/meta.json index 0f883ee2801..f34820cec45 100644 --- a/Resources/Textures/Objects/Fun/spraycans.rsi/meta.json +++ b/Resources/Textures/Objects/Fun/spraycans.rsi/meta.json @@ -58,9 +58,6 @@ { "name": "spray" }, - { - "name": "spray_cap" - }, { "name": "spray_cap_colors" }, @@ -70,6 +67,22 @@ { "name": "equipped-BELT", "directions": 4 + }, + { + "name": "clown-inhand-right", + "directions": 4 + }, + { + "name": "clown-inhand-left", + "directions": 4 + }, + { + "name": "spray-inhand-right", + "directions": 4 + }, + { + "name": "spray-inhand-left", + "directions": 4 } ] } diff --git a/Resources/Textures/Objects/Fun/spraycans.rsi/spray-inhand-left.png b/Resources/Textures/Objects/Fun/spraycans.rsi/spray-inhand-left.png new file mode 100644 index 00000000000..ad3ad959de4 Binary files /dev/null and b/Resources/Textures/Objects/Fun/spraycans.rsi/spray-inhand-left.png differ diff --git a/Resources/Textures/Objects/Fun/spraycans.rsi/spray-inhand-right.png b/Resources/Textures/Objects/Fun/spraycans.rsi/spray-inhand-right.png new file mode 100644 index 00000000000..353e47c56fa Binary files /dev/null and b/Resources/Textures/Objects/Fun/spraycans.rsi/spray-inhand-right.png differ diff --git a/Resources/Textures/Objects/Fun/spraycans.rsi/spray_cap.png b/Resources/Textures/Objects/Fun/spraycans.rsi/spray_cap.png deleted file mode 100644 index 01d2d49bc0f..00000000000 Binary files a/Resources/Textures/Objects/Fun/spraycans.rsi/spray_cap.png and /dev/null differ diff --git a/Resources/Textures/Objects/Fun/toys.rsi/harpyplushie.png b/Resources/Textures/Objects/Fun/toys.rsi/harpyplushie.png new file mode 100644 index 00000000000..d93178d3f7b Binary files /dev/null and b/Resources/Textures/Objects/Fun/toys.rsi/harpyplushie.png differ diff --git a/Resources/Textures/Objects/Fun/toys.rsi/meta.json b/Resources/Textures/Objects/Fun/toys.rsi/meta.json index cc03557e0b4..7dafd603638 100644 --- a/Resources/Textures/Objects/Fun/toys.rsi/meta.json +++ b/Resources/Textures/Objects/Fun/toys.rsi/meta.json @@ -389,6 +389,12 @@ }, { "name": "shadowkin" + }, + { + "name": "mortplush" + }, + { + "name": "harpyplushie" } ] } \ No newline at end of file diff --git a/Resources/Textures/Objects/Fun/toys.rsi/mortplush.png b/Resources/Textures/Objects/Fun/toys.rsi/mortplush.png new file mode 100644 index 00000000000..28b3f1c6ebb Binary files /dev/null and b/Resources/Textures/Objects/Fun/toys.rsi/mortplush.png differ diff --git a/Resources/Textures/Objects/Specific/Hydroponics/poppywhite.rsi/dead.png b/Resources/Textures/Objects/Specific/Hydroponics/poppywhite.rsi/dead.png new file mode 100644 index 00000000000..849b4242b4e Binary files /dev/null and b/Resources/Textures/Objects/Specific/Hydroponics/poppywhite.rsi/dead.png differ diff --git a/Resources/Textures/Objects/Specific/Hydroponics/poppywhite.rsi/equipped-HELMET.png b/Resources/Textures/Objects/Specific/Hydroponics/poppywhite.rsi/equipped-HELMET.png new file mode 100644 index 00000000000..221e35fbc39 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Hydroponics/poppywhite.rsi/equipped-HELMET.png differ diff --git a/Resources/Textures/Objects/Specific/Hydroponics/poppywhite.rsi/harvest.png b/Resources/Textures/Objects/Specific/Hydroponics/poppywhite.rsi/harvest.png new file mode 100644 index 00000000000..99ad68a5d28 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Hydroponics/poppywhite.rsi/harvest.png differ diff --git a/Resources/Textures/Objects/Specific/Hydroponics/poppywhite.rsi/meta.json b/Resources/Textures/Objects/Specific/Hydroponics/poppywhite.rsi/meta.json new file mode 100644 index 00000000000..b49b49cc850 --- /dev/null +++ b/Resources/Textures/Objects/Specific/Hydroponics/poppywhite.rsi/meta.json @@ -0,0 +1,36 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/tgstation/tgstation/commit/40d89d11ea4a5cb81d61dc1018b46f4e7d32c62a, equipped-HELMET taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "dead" + }, + { + "name": "harvest" + }, + { + "name": "produce" + }, + { + "name": "seed" + }, + { + "name": "stage-1" + }, + { + "name": "stage-2" + }, + { + "name": "stage-3" + }, + { + "name": "equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Objects/Specific/Hydroponics/poppywhite.rsi/produce.png b/Resources/Textures/Objects/Specific/Hydroponics/poppywhite.rsi/produce.png new file mode 100644 index 00000000000..84caa94b9a1 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Hydroponics/poppywhite.rsi/produce.png differ diff --git a/Resources/Textures/Objects/Specific/Hydroponics/poppywhite.rsi/seed.png b/Resources/Textures/Objects/Specific/Hydroponics/poppywhite.rsi/seed.png new file mode 100644 index 00000000000..4197b68f37a Binary files /dev/null and b/Resources/Textures/Objects/Specific/Hydroponics/poppywhite.rsi/seed.png differ diff --git a/Resources/Textures/Objects/Specific/Hydroponics/poppywhite.rsi/stage-1.png b/Resources/Textures/Objects/Specific/Hydroponics/poppywhite.rsi/stage-1.png new file mode 100644 index 00000000000..1e582f92314 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Hydroponics/poppywhite.rsi/stage-1.png differ diff --git a/Resources/Textures/Objects/Specific/Hydroponics/poppywhite.rsi/stage-2.png b/Resources/Textures/Objects/Specific/Hydroponics/poppywhite.rsi/stage-2.png new file mode 100644 index 00000000000..090715f6a01 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Hydroponics/poppywhite.rsi/stage-2.png differ diff --git a/Resources/Textures/Objects/Specific/Hydroponics/poppywhite.rsi/stage-3.png b/Resources/Textures/Objects/Specific/Hydroponics/poppywhite.rsi/stage-3.png new file mode 100644 index 00000000000..edcd8617dc7 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Hydroponics/poppywhite.rsi/stage-3.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/adv-retractor.rsi/adv-retractor-on.png b/Resources/Textures/Objects/Specific/Medical/Surgery/adv-retractor.rsi/adv-retractor-on.png new file mode 100644 index 00000000000..32e3da4497f Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/adv-retractor.rsi/adv-retractor-on.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/adv-retractor.rsi/adv-retractor.png b/Resources/Textures/Objects/Specific/Medical/Surgery/adv-retractor.rsi/adv-retractor.png new file mode 100644 index 00000000000..7df819a183e Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/adv-retractor.rsi/adv-retractor.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-left-on.png b/Resources/Textures/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-left-on.png new file mode 100644 index 00000000000..3c2e8972821 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-left-on.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-left.png b/Resources/Textures/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-left.png new file mode 100644 index 00000000000..9a93d2bb5fc Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-right-on.png b/Resources/Textures/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-right-on.png new file mode 100644 index 00000000000..f91961a9df3 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-right-on.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-right.png b/Resources/Textures/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-right.png new file mode 100644 index 00000000000..6444d084235 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/adv-retractor.rsi/meta.json b/Resources/Textures/Objects/Specific/Medical/Surgery/adv-retractor.rsi/meta.json new file mode 100644 index 00000000000..592796b3e08 --- /dev/null +++ b/Resources/Textures/Objects/Specific/Medical/Surgery/adv-retractor.rsi/meta.json @@ -0,0 +1,33 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "adv-retractor" + }, + { + "name": "adv-retractor-on" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-left-on", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "inhand-right-on", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/bone-gel.rsi/bone-gel.png b/Resources/Textures/Objects/Specific/Medical/Surgery/bone-gel.rsi/bone-gel.png new file mode 100644 index 00000000000..ac425d8014c Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/bone-gel.rsi/bone-gel.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/bone-gel.rsi/inhand-left.png b/Resources/Textures/Objects/Specific/Medical/Surgery/bone-gel.rsi/inhand-left.png new file mode 100644 index 00000000000..2cd6321ee66 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/bone-gel.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/bone-gel.rsi/inhand-right.png b/Resources/Textures/Objects/Specific/Medical/Surgery/bone-gel.rsi/inhand-right.png new file mode 100644 index 00000000000..549de0c4134 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/bone-gel.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/bone-gel.rsi/meta.json b/Resources/Textures/Objects/Specific/Medical/Surgery/bone-gel.rsi/meta.json new file mode 100644 index 00000000000..48775ff522a --- /dev/null +++ b/Resources/Textures/Objects/Specific/Medical/Surgery/bone-gel.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "bone-gel" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/bonesetter.rsi/bonesetter.png b/Resources/Textures/Objects/Specific/Medical/Surgery/bonesetter.rsi/bonesetter.png new file mode 100644 index 00000000000..08b79677c86 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/bonesetter.rsi/bonesetter.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/bonesetter.rsi/inhand-left.png b/Resources/Textures/Objects/Specific/Medical/Surgery/bonesetter.rsi/inhand-left.png new file mode 100644 index 00000000000..5dbbacced17 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/bonesetter.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/bonesetter.rsi/inhand-right.png b/Resources/Textures/Objects/Specific/Medical/Surgery/bonesetter.rsi/inhand-right.png new file mode 100644 index 00000000000..3b9942e76d2 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/bonesetter.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/bonesetter.rsi/meta.json b/Resources/Textures/Objects/Specific/Medical/Surgery/bonesetter.rsi/meta.json new file mode 100644 index 00000000000..bffe3ee7306 --- /dev/null +++ b/Resources/Textures/Objects/Specific/Medical/Surgery/bonesetter.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "bonesetter" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/cautery.rsi/cautery.png b/Resources/Textures/Objects/Specific/Medical/Surgery/cautery.rsi/cautery.png index 6a74b13d7ed..f82e7f12a0b 100644 Binary files a/Resources/Textures/Objects/Specific/Medical/Surgery/cautery.rsi/cautery.png and b/Resources/Textures/Objects/Specific/Medical/Surgery/cautery.rsi/cautery.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/cautery.rsi/inhand-left.png b/Resources/Textures/Objects/Specific/Medical/Surgery/cautery.rsi/inhand-left.png index 1c94d4e488a..dcc6bd69467 100644 Binary files a/Resources/Textures/Objects/Specific/Medical/Surgery/cautery.rsi/inhand-left.png and b/Resources/Textures/Objects/Specific/Medical/Surgery/cautery.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/cautery.rsi/inhand-right.png b/Resources/Textures/Objects/Specific/Medical/Surgery/cautery.rsi/inhand-right.png index 35db4795ef5..1c1cc9c4d80 100644 Binary files a/Resources/Textures/Objects/Specific/Medical/Surgery/cautery.rsi/inhand-right.png and b/Resources/Textures/Objects/Specific/Medical/Surgery/cautery.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/cautery.rsi/meta.json b/Resources/Textures/Objects/Specific/Medical/Surgery/cautery.rsi/meta.json index cb2fe31f9ba..4b08c30b53e 100644 --- a/Resources/Textures/Objects/Specific/Medical/Surgery/cautery.rsi/meta.json +++ b/Resources/Textures/Objects/Specific/Medical/Surgery/cautery.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/commit/476e374cea95ff5e8b1603c48342bf700e2cd7af", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", "size": { "x": 32, "y": 32 diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/circular-saw.rsi/circular-saw.png b/Resources/Textures/Objects/Specific/Medical/Surgery/circular-saw.rsi/circular-saw.png new file mode 100644 index 00000000000..816095a7fc0 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/circular-saw.rsi/circular-saw.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/circular-saw.rsi/inhand-left.png b/Resources/Textures/Objects/Specific/Medical/Surgery/circular-saw.rsi/inhand-left.png new file mode 100644 index 00000000000..fb5a065550e Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/circular-saw.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/circular-saw.rsi/inhand-right.png b/Resources/Textures/Objects/Specific/Medical/Surgery/circular-saw.rsi/inhand-right.png new file mode 100644 index 00000000000..c0e064d10b1 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/circular-saw.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/circular-saw.rsi/meta.json b/Resources/Textures/Objects/Specific/Medical/Surgery/circular-saw.rsi/meta.json new file mode 100644 index 00000000000..42163ea24d7 --- /dev/null +++ b/Resources/Textures/Objects/Specific/Medical/Surgery/circular-saw.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "circular-saw" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/drapes.rsi/drapes.png b/Resources/Textures/Objects/Specific/Medical/Surgery/drapes.rsi/drapes.png new file mode 100644 index 00000000000..1119569bdd7 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/drapes.rsi/drapes.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/drapes.rsi/inhand-left.png b/Resources/Textures/Objects/Specific/Medical/Surgery/drapes.rsi/inhand-left.png new file mode 100644 index 00000000000..7531299f2a4 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/drapes.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/drapes.rsi/inhand-right.png b/Resources/Textures/Objects/Specific/Medical/Surgery/drapes.rsi/inhand-right.png new file mode 100644 index 00000000000..57fea9b7e25 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/drapes.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/drapes.rsi/meta.json b/Resources/Textures/Objects/Specific/Medical/Surgery/drapes.rsi/meta.json new file mode 100644 index 00000000000..9c30d1b15d5 --- /dev/null +++ b/Resources/Textures/Objects/Specific/Medical/Surgery/drapes.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "drapes" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/0.png b/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/0.png deleted file mode 100644 index 765094c4cf6..00000000000 Binary files a/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/0.png and /dev/null differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/100.png b/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/100.png deleted file mode 100644 index af4d131c02b..00000000000 Binary files a/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/100.png and /dev/null differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/25.png b/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/25.png deleted file mode 100644 index 6731fbc6064..00000000000 Binary files a/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/25.png and /dev/null differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/50.png b/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/50.png deleted file mode 100644 index 30578d4ca77..00000000000 Binary files a/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/50.png and /dev/null differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/75.png b/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/75.png deleted file mode 100644 index af4d131c02b..00000000000 Binary files a/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/75.png and /dev/null differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/drill.png b/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/drill.png index 267c3e0119a..1f141fb217b 100644 Binary files a/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/drill.png and b/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/drill.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/inhand-left.png b/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/inhand-left.png index 85164e2dc70..e2108b95a74 100644 Binary files a/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/inhand-left.png and b/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/inhand-right.png b/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/inhand-right.png index 7177e691b2f..991fbea280d 100644 Binary files a/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/inhand-right.png and b/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/meta.json b/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/meta.json index b97c800777b..a9c84b52f01 100644 --- a/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/meta.json +++ b/Resources/Textures/Objects/Specific/Medical/Surgery/drill.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/commit/476e374cea95ff5e8b1603c48342bf700e2cd7af", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", "size": { "x": 32, "y": 32 @@ -17,27 +17,6 @@ { "name": "inhand-right", "directions": 4 - }, - { - "name": "0", - "delays": [ - [ - 0.1, - 0.1 - ] - ] - }, - { - "name": "25" - }, - { - "name": "50" - }, - { - "name": "75" - }, - { - "name": "100" } ] } diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/e-cautery.rsi/e-cautery-on.png b/Resources/Textures/Objects/Specific/Medical/Surgery/e-cautery.rsi/e-cautery-on.png new file mode 100644 index 00000000000..d0a512e94e7 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/e-cautery.rsi/e-cautery-on.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/e-cautery.rsi/e-cautery.png b/Resources/Textures/Objects/Specific/Medical/Surgery/e-cautery.rsi/e-cautery.png new file mode 100644 index 00000000000..2cd5b0e97c0 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/e-cautery.rsi/e-cautery.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-left-on.png b/Resources/Textures/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-left-on.png new file mode 100644 index 00000000000..46e8c431e91 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-left-on.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-left.png b/Resources/Textures/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-left.png new file mode 100644 index 00000000000..1ffa9e522ae Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-right-on.png b/Resources/Textures/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-right-on.png new file mode 100644 index 00000000000..1bbb5332060 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-right-on.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-right.png b/Resources/Textures/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-right.png new file mode 100644 index 00000000000..fa95ce487dd Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/e-cautery.rsi/meta.json b/Resources/Textures/Objects/Specific/Medical/Surgery/e-cautery.rsi/meta.json new file mode 100644 index 00000000000..4a4c2c11d67 --- /dev/null +++ b/Resources/Textures/Objects/Specific/Medical/Surgery/e-cautery.rsi/meta.json @@ -0,0 +1,33 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "e-cautery" + }, + { + "name": "e-cautery-on" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-left-on", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "inhand-right-on", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/e-scalpel.rsi/e-scalpel-on.png b/Resources/Textures/Objects/Specific/Medical/Surgery/e-scalpel.rsi/e-scalpel-on.png new file mode 100644 index 00000000000..04a27c34bbb Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/e-scalpel.rsi/e-scalpel-on.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/e-scalpel.rsi/e-scalpel.png b/Resources/Textures/Objects/Specific/Medical/Surgery/e-scalpel.rsi/e-scalpel.png new file mode 100644 index 00000000000..1fbf799b60d Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/e-scalpel.rsi/e-scalpel.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-left-on.png b/Resources/Textures/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-left-on.png new file mode 100644 index 00000000000..72cbd3608f6 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-left-on.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-left.png b/Resources/Textures/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-left.png new file mode 100644 index 00000000000..151705c9588 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-right-on.png b/Resources/Textures/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-right-on.png new file mode 100644 index 00000000000..358f397c5e5 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-right-on.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-right.png b/Resources/Textures/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-right.png new file mode 100644 index 00000000000..70a64d2b0e6 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/e-scalpel.rsi/meta.json b/Resources/Textures/Objects/Specific/Medical/Surgery/e-scalpel.rsi/meta.json new file mode 100644 index 00000000000..701445e8ab8 --- /dev/null +++ b/Resources/Textures/Objects/Specific/Medical/Surgery/e-scalpel.rsi/meta.json @@ -0,0 +1,39 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "e-scalpel" + }, + { + "name": "e-scalpel-on", + "delays": [ + [ + 0.1, + 0.1 + ] + ] + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-left-on", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "inhand-right-on", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/hemostat.rsi/hemostat.png b/Resources/Textures/Objects/Specific/Medical/Surgery/hemostat.rsi/hemostat.png new file mode 100644 index 00000000000..951d323a52f Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/hemostat.rsi/hemostat.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/hemostat.rsi/inhand-left.png b/Resources/Textures/Objects/Specific/Medical/Surgery/hemostat.rsi/inhand-left.png new file mode 100644 index 00000000000..eb331bac35e Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/hemostat.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/hemostat.rsi/inhand-right.png b/Resources/Textures/Objects/Specific/Medical/Surgery/hemostat.rsi/inhand-right.png new file mode 100644 index 00000000000..b83b2b02c0b Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/hemostat.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/hemostat.rsi/meta.json b/Resources/Textures/Objects/Specific/Medical/Surgery/hemostat.rsi/meta.json new file mode 100644 index 00000000000..afbaa9cd516 --- /dev/null +++ b/Resources/Textures/Objects/Specific/Medical/Surgery/hemostat.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "hemostat" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/manipulation.rsi/insertion.png b/Resources/Textures/Objects/Specific/Medical/Surgery/manipulation.rsi/insertion.png new file mode 100644 index 00000000000..961c3c641a7 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/manipulation.rsi/insertion.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/manipulation.rsi/meta.json b/Resources/Textures/Objects/Specific/Medical/Surgery/manipulation.rsi/meta.json new file mode 100644 index 00000000000..af2b78c1ea8 --- /dev/null +++ b/Resources/Textures/Objects/Specific/Medical/Surgery/manipulation.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from Aurorastation at https://github.com/Aurorastation/Aurora.3/commit/ac435b98e2d0a455ad319dca3bb9bfdc0cd8b051", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "insertion" + } + ] +} diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/0.png b/Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/0.png similarity index 100% rename from Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/0.png rename to Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/0.png diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/100.png b/Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/100.png similarity index 100% rename from Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/100.png rename to Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/100.png diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/25.png b/Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/25.png similarity index 100% rename from Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/25.png rename to Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/25.png diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/50.png b/Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/50.png similarity index 100% rename from Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/50.png rename to Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/50.png diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/75.png b/Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/75.png similarity index 100% rename from Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/75.png rename to Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/75.png diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/advanced-inhand-left.png b/Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/advanced-inhand-left.png similarity index 100% rename from Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/advanced-inhand-left.png rename to Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/advanced-inhand-left.png diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/advanced-inhand-right.png b/Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/advanced-inhand-right.png similarity index 100% rename from Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/advanced-inhand-right.png rename to Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/advanced-inhand-right.png diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/advanced.png b/Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/advanced.png similarity index 100% rename from Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/advanced.png rename to Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/advanced.png diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/inhand-left.png b/Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/inhand-left.png new file mode 100644 index 00000000000..5c498d5f08c Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/inhand-right.png b/Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/inhand-right.png new file mode 100644 index 00000000000..ce54cd652eb Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/laser-inhand-left.png b/Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/laser-inhand-left.png similarity index 100% rename from Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/laser-inhand-left.png rename to Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/laser-inhand-left.png diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/laser-inhand-right.png b/Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/laser-inhand-right.png similarity index 100% rename from Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/laser-inhand-right.png rename to Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/laser-inhand-right.png diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/laser.png b/Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/laser.png similarity index 100% rename from Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/laser.png rename to Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/laser.png diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/meta.json b/Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/meta.json new file mode 100644 index 00000000000..d72a4496791 --- /dev/null +++ b/Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/meta.json @@ -0,0 +1,76 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/commit/476e374cea95ff5e8b1603c48342bf700e2cd7af", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "shiv" + }, + { + "name": "scalpel" + }, + { + "name": "advanced" + }, + { + "name": "laser" + }, + { + "name": "shiv-inhand-left", + "directions": 4 + }, + { + "name": "shiv-inhand-right", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "advanced-inhand-left", + "directions": 4 + }, + { + "name": "advanced-inhand-right", + "directions": 4 + }, + { + "name": "laser-inhand-left", + "directions": 4 + }, + { + "name": "laser-inhand-right", + "directions": 4 + }, + { + "name": "0", + "delays": [ + [ + 0.1, + 0.1 + ] + ] + }, + { + "name": "25" + }, + { + "name": "50" + }, + { + "name": "75" + }, + { + "name": "100" + } + ] +} diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/scalpel.png b/Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/scalpel.png new file mode 100644 index 00000000000..8fbab261f43 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/scalpel.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/shiv-inhand-left.png b/Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/shiv-inhand-left.png similarity index 100% rename from Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/shiv-inhand-left.png rename to Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/shiv-inhand-left.png diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/shiv-inhand-right.png b/Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/shiv-inhand-right.png similarity index 100% rename from Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/shiv-inhand-right.png rename to Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/shiv-inhand-right.png diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/shiv.png b/Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/shiv.png similarity index 100% rename from Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/shiv.png rename to Resources/Textures/Objects/Specific/Medical/Surgery/oldscalpel.rsi/shiv.png diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/omnimed.rsi/inhand-left.png b/Resources/Textures/Objects/Specific/Medical/Surgery/omnimed.rsi/inhand-left.png new file mode 100644 index 00000000000..4f9d45bdb9f Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/omnimed.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/omnimed.rsi/inhand-right.png b/Resources/Textures/Objects/Specific/Medical/Surgery/omnimed.rsi/inhand-right.png new file mode 100644 index 00000000000..70464f12119 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/omnimed.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/omnimed.rsi/meta.json b/Resources/Textures/Objects/Specific/Medical/Surgery/omnimed.rsi/meta.json new file mode 100644 index 00000000000..ff849d1338c --- /dev/null +++ b/Resources/Textures/Objects/Specific/Medical/Surgery/omnimed.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/commit/b7c3ac536391a3dfe3046f3b5197721af4564d90", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "omnimed" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/omnimed.rsi/omnimed.png b/Resources/Textures/Objects/Specific/Medical/Surgery/omnimed.rsi/omnimed.png new file mode 100644 index 00000000000..9e0031744da Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/omnimed.rsi/omnimed.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/retractor.rsi/inhand-left.png b/Resources/Textures/Objects/Specific/Medical/Surgery/retractor.rsi/inhand-left.png new file mode 100644 index 00000000000..a23bdae4c5b Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/retractor.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/retractor.rsi/inhand-right.png b/Resources/Textures/Objects/Specific/Medical/Surgery/retractor.rsi/inhand-right.png new file mode 100644 index 00000000000..cced67007f5 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/retractor.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/retractor.rsi/meta.json b/Resources/Textures/Objects/Specific/Medical/Surgery/retractor.rsi/meta.json new file mode 100644 index 00000000000..a38e04dcfd2 --- /dev/null +++ b/Resources/Textures/Objects/Specific/Medical/Surgery/retractor.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "retractor" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/retractor.rsi/retractor.png b/Resources/Textures/Objects/Specific/Medical/Surgery/retractor.rsi/retractor.png new file mode 100644 index 00000000000..24e04fe613a Binary files /dev/null and b/Resources/Textures/Objects/Specific/Medical/Surgery/retractor.rsi/retractor.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/inhand-left.png b/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/inhand-left.png index 5c498d5f08c..726e388eca1 100644 Binary files a/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/inhand-left.png and b/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/inhand-right.png b/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/inhand-right.png index ce54cd652eb..ed4b405d90c 100644 Binary files a/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/inhand-right.png and b/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/meta.json b/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/meta.json index d72a4496791..7cbc1208942 100644 --- a/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/meta.json +++ b/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/meta.json @@ -1,32 +1,15 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/commit/476e374cea95ff5e8b1603c48342bf700e2cd7af", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", "size": { "x": 32, "y": 32 }, "states": [ - { - "name": "shiv" - }, { "name": "scalpel" }, - { - "name": "advanced" - }, - { - "name": "laser" - }, - { - "name": "shiv-inhand-left", - "directions": 4 - }, - { - "name": "shiv-inhand-right", - "directions": 4 - }, { "name": "inhand-left", "directions": 4 @@ -34,43 +17,6 @@ { "name": "inhand-right", "directions": 4 - }, - { - "name": "advanced-inhand-left", - "directions": 4 - }, - { - "name": "advanced-inhand-right", - "directions": 4 - }, - { - "name": "laser-inhand-left", - "directions": 4 - }, - { - "name": "laser-inhand-right", - "directions": 4 - }, - { - "name": "0", - "delays": [ - [ - 0.1, - 0.1 - ] - ] - }, - { - "name": "25" - }, - { - "name": "50" - }, - { - "name": "75" - }, - { - "name": "100" } ] } diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/scalpel.png b/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/scalpel.png index 8fbab261f43..44ec06e4631 100644 Binary files a/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/scalpel.png and b/Resources/Textures/Objects/Specific/Medical/Surgery/scalpel.rsi/scalpel.png differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/hemostat-inhand-left.png b/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/hemostat-inhand-left.png deleted file mode 100644 index c498493780c..00000000000 Binary files a/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/hemostat-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/hemostat-inhand-right.png b/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/hemostat-inhand-right.png deleted file mode 100644 index ac71c383af2..00000000000 Binary files a/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/hemostat-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/hemostat.png b/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/hemostat.png deleted file mode 100644 index 75be4d5e9c6..00000000000 Binary files a/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/hemostat.png and /dev/null differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/inhand-left.png b/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/inhand-left.png deleted file mode 100644 index 79b85824e9d..00000000000 Binary files a/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/inhand-right.png b/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/inhand-right.png deleted file mode 100644 index 4d4f3332f64..00000000000 Binary files a/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/meta.json b/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/meta.json deleted file mode 100644 index 42737acdc7a..00000000000 --- a/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/meta.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "version": 1, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/commit/476e374cea95ff5e8b1603c48342bf700e2cd7af", - "size": { - "x": 32, - "y": 32 - }, - "states": [ - { - "name": "retractor" - }, - { - "name": "hemostat" - }, - { - "name": "setter" - }, - { - "name": "inhand-left", - "directions": 4 - }, - { - "name": "inhand-right", - "directions": 4 - }, - { - "name": "hemostat-inhand-left", - "directions": 4 - }, - { - "name": "hemostat-inhand-right", - "directions": 4 - }, - { - "name": "setter-inhand-left", - "directions": 4 - }, - { - "name": "setter-inhand-right", - "directions": 4 - } - ] -} diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/retractor.png b/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/retractor.png deleted file mode 100644 index b37b9bb1a20..00000000000 Binary files a/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/retractor.png and /dev/null differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/setter-inhand-left.png b/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/setter-inhand-left.png deleted file mode 100644 index 6fefc908b27..00000000000 Binary files a/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/setter-inhand-left.png and /dev/null differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/setter-inhand-right.png b/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/setter-inhand-right.png deleted file mode 100644 index 6edb10c942d..00000000000 Binary files a/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/setter-inhand-right.png and /dev/null differ diff --git a/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/setter.png b/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/setter.png deleted file mode 100644 index 135d8a72c4b..00000000000 Binary files a/Resources/Textures/Objects/Specific/Medical/Surgery/scissors.rsi/setter.png and /dev/null differ diff --git a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-advanced-surgery.png b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-advanced-surgery.png new file mode 100644 index 00000000000..291a889e4c1 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-advanced-surgery.png differ diff --git a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-surgery.png b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-surgery.png new file mode 100644 index 00000000000..8147a74b761 Binary files /dev/null and b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-surgery.png differ diff --git a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/meta.json b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/meta.json index 1b3eba668d1..ba161f0b71f 100644 --- a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/meta.json +++ b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/meta.json @@ -106,6 +106,12 @@ { "name": "icon-treatment" }, + { + "name": "icon-surgery" + }, + { + "name": "icon-advanced-surgery" + }, { "name": "icon-syndicate" }, diff --git a/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles2.rsi/gauntlet_echo.png b/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles2.rsi/gauntlet_echo.png new file mode 100644 index 00000000000..3b09dd4520c Binary files /dev/null and b/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles2.rsi/gauntlet_echo.png differ diff --git a/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles2.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles2.rsi/meta.json index 87ce717f445..904b746895f 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles2.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles2.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/raw/56cbafd6ad8c013ccd5472d6c4a0db790f7f872a, ball made by brainfood1183 (Github) for ss14, the uranium sprite is a modified version of the buckshot pellet by Boaz1111", + "copyright": "Taken from cev-eris at https://github.com/discordia-space/CEV-Eris/raw/56cbafd6ad8c013ccd5472d6c4a0db790f7f872a, ball made by brainfood1183 (Github) for ss14, the uranium sprite is a modified version of the buckshot pellet by Boaz1111, gauntlet_echo taken from BeeStation at https://github.com/BeeStation/BeeStation-Hornet/commit/6c4ff2d3c7e74daa8e874abbb01bddc02fbb67a8", "size": { "x": 32, "y": 32 @@ -13,7 +13,7 @@ { "name": "buckshot-flare" }, - { + { "name": "depleted-uranium" }, { @@ -91,11 +91,21 @@ ] ] }, - { + { "name": "grapeshot" }, - { + { "name": "shard" + }, + { + "name": "gauntlet_echo", + "delays": [ + [ + 0.5, + 0.05, + 0.2 + ] + ] } ] } diff --git a/Resources/Textures/Shaders/flashed_effect.swsl b/Resources/Textures/Shaders/flashed_effect.swsl index ec486ab5313..67dc67b185e 100644 --- a/Resources/Textures/Shaders/flashed_effect.swsl +++ b/Resources/Textures/Shaders/flashed_effect.swsl @@ -12,7 +12,7 @@ void fragment() { highp vec4 textureMix = mix(tex1, tex2, 0.5); // Gradually mixes between the texture mix and a full-white texture, causing the "blinding" effect - highp vec4 mixed = mix(vec4(0.0, 0.0, 0.0, 1.0), 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/Structures/Decoration/barrels.rsi/.png b/Resources/Textures/Structures/Decoration/barrels.rsi/.png new file mode 100644 index 00000000000..d035f711348 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/double_grey_1.png b/Resources/Textures/Structures/Decoration/barrels.rsi/double_grey_1.png new file mode 100644 index 00000000000..9ef80fe7193 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/double_grey_1.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/double_grey_2.png b/Resources/Textures/Structures/Decoration/barrels.rsi/double_grey_2.png new file mode 100644 index 00000000000..dbeaea2709e Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/double_grey_2.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/double_red_1.png b/Resources/Textures/Structures/Decoration/barrels.rsi/double_red_1.png new file mode 100644 index 00000000000..b9a9973b956 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/double_red_1.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/double_red_2.png b/Resources/Textures/Structures/Decoration/barrels.rsi/double_red_2.png new file mode 100644 index 00000000000..3271703d5c5 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/double_red_2.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/double_toxic_1.png b/Resources/Textures/Structures/Decoration/barrels.rsi/double_toxic_1.png new file mode 100644 index 00000000000..b8c450f4e74 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/double_toxic_1.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/double_waste_1.png b/Resources/Textures/Structures/Decoration/barrels.rsi/double_waste_1.png new file mode 100644 index 00000000000..ac2f37c5581 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/double_waste_1.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/double_waste_2.png b/Resources/Textures/Structures/Decoration/barrels.rsi/double_waste_2.png new file mode 100644 index 00000000000..5feb377a9be Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/double_waste_2.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/double_yellow_1.png b/Resources/Textures/Structures/Decoration/barrels.rsi/double_yellow_1.png new file mode 100644 index 00000000000..541ea0fe2fa Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/double_yellow_1.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/double_yellow_2.png b/Resources/Textures/Structures/Decoration/barrels.rsi/double_yellow_2.png new file mode 100644 index 00000000000..7c4cbc32af6 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/double_yellow_2.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/flammable_1.png b/Resources/Textures/Structures/Decoration/barrels.rsi/flammable_1.png new file mode 100644 index 00000000000..611825a8ea8 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/flammable_1.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/flammable_2.png b/Resources/Textures/Structures/Decoration/barrels.rsi/flammable_2.png new file mode 100644 index 00000000000..91a37aa9e32 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/flammable_2.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/flammable_3.png b/Resources/Textures/Structures/Decoration/barrels.rsi/flammable_3.png new file mode 100644 index 00000000000..fb6c2378a45 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/flammable_3.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/grey_1.png b/Resources/Textures/Structures/Decoration/barrels.rsi/grey_1.png new file mode 100644 index 00000000000..9b31672d30e Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/grey_1.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/grey_2.png b/Resources/Textures/Structures/Decoration/barrels.rsi/grey_2.png new file mode 100644 index 00000000000..d361fe16d9e Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/grey_2.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/grey_3.png b/Resources/Textures/Structures/Decoration/barrels.rsi/grey_3.png new file mode 100644 index 00000000000..3fcbd116538 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/grey_3.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/hazard_1.png b/Resources/Textures/Structures/Decoration/barrels.rsi/hazard_1.png new file mode 100644 index 00000000000..31ff5dfa903 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/hazard_1.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/hazard_2.png b/Resources/Textures/Structures/Decoration/barrels.rsi/hazard_2.png new file mode 100644 index 00000000000..292232c6ee6 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/hazard_2.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/hazard_3.png b/Resources/Textures/Structures/Decoration/barrels.rsi/hazard_3.png new file mode 100644 index 00000000000..b93a353892a Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/hazard_3.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/label_1.png b/Resources/Textures/Structures/Decoration/barrels.rsi/label_1.png new file mode 100644 index 00000000000..33a1a76025f Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/label_1.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/label_2.png b/Resources/Textures/Structures/Decoration/barrels.rsi/label_2.png new file mode 100644 index 00000000000..c81974e8f15 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/label_2.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/label_3.png b/Resources/Textures/Structures/Decoration/barrels.rsi/label_3.png new file mode 100644 index 00000000000..23559f19289 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/label_3.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/meta.json b/Resources/Textures/Structures/Decoration/barrels.rsi/meta.json new file mode 100644 index 00000000000..91a7049c538 --- /dev/null +++ b/Resources/Textures/Structures/Decoration/barrels.rsi/meta.json @@ -0,0 +1,191 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Created by INFRARED_BARON for MS13", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "" + }, + { + "name": "grey_1" + }, + { + "name": "grey_2" + }, + { + "name": "grey_3" + }, + { + "name": "red_1" + }, + { + "name": "red_2" + }, + { + "name": "red_3" + }, + { + "name": "yellow_1" + }, + { + "name": "yellow_2" + }, + { + "name": "yellow_3" + }, + { + "name": "label_1" + }, + { + "name": "label_2" + }, + { + "name": "label_3" + }, + { + "name": "hazard_1" + }, + { + "name": "hazard_2" + }, + { + "name": "hazard_3" + }, + { + "name": "red_alt_1" + }, + { + "name": "red_alt_2" + }, + { + "name": "red_alt_3" + }, + { + "name": "toxic_1" + }, + { + "name": "toxic_2" + }, + { + "name": "toxic_3" + }, + { + "name": "toxic_4" + }, + { + "name": "waste_1" + }, + { + "name": "waste_2" + }, + { + "name": "waste_3" + }, + { + "name": "flammable_1" + }, + { + "name": "flammable_2" + }, + { + "name": "flammable_3" + }, + { + "name": "warning_1" + }, + { + "name": "warning_2" + }, + { + "name": "warning_3" + }, + { + "name": "double_grey_1" + }, + { + "name": "double_grey_2" + }, + { + "name": "triple_grey_1" + }, + { + "name": "triple_grey_2" + }, + { + "name": "triple_grey_3" + }, + { + "name": "quad_grey_1" + }, + { + "name": "double_red_1" + }, + { + "name": "double_red_2" + }, + { + "name": "triple_red_1" + }, + { + "name": "triple_red_2" + }, + { + "name": "quad_red_1" + }, + { + "name": "quad_red_2" + }, + { + "name": "double_yellow_1" + }, + { + "name": "double_yellow_2" + }, + { + "name": "triple_yellow_1" + }, + { + "name": "triple_yellow_2" + }, + { + "name": "triple_yellow_3" + }, + { + "name": "quad_yellow_1" + }, + { + "name": "double_toxic_1" + }, + { + "name": "triple_toxic_1" + }, + { + "name": "triple_toxic_2" + }, + { + "name": "quad_toxic_1" + }, + { + "name": "double_waste_1" + }, + { + "name": "double_waste_2" + }, + { + "name": "triple_waste_1" + }, + { + "name": "triple_waste_2" + }, + { + "name": "triple_waste_3" + }, + { + "name": "quad_waste_1" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/quad_grey_1.png b/Resources/Textures/Structures/Decoration/barrels.rsi/quad_grey_1.png new file mode 100644 index 00000000000..c7c2a390421 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/quad_grey_1.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/quad_red_1.png b/Resources/Textures/Structures/Decoration/barrels.rsi/quad_red_1.png new file mode 100644 index 00000000000..c3719d30b1e Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/quad_red_1.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/quad_red_2.png b/Resources/Textures/Structures/Decoration/barrels.rsi/quad_red_2.png new file mode 100644 index 00000000000..d7af6fdd68e Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/quad_red_2.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/quad_toxic_1.png b/Resources/Textures/Structures/Decoration/barrels.rsi/quad_toxic_1.png new file mode 100644 index 00000000000..c9efa16cfcb Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/quad_toxic_1.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/quad_waste_1.png b/Resources/Textures/Structures/Decoration/barrels.rsi/quad_waste_1.png new file mode 100644 index 00000000000..90e3185ba32 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/quad_waste_1.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/quad_yellow_1.png b/Resources/Textures/Structures/Decoration/barrels.rsi/quad_yellow_1.png new file mode 100644 index 00000000000..56806f2f2bd Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/quad_yellow_1.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/red_1.png b/Resources/Textures/Structures/Decoration/barrels.rsi/red_1.png new file mode 100644 index 00000000000..a04fa07857b Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/red_1.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/red_2.png b/Resources/Textures/Structures/Decoration/barrels.rsi/red_2.png new file mode 100644 index 00000000000..472c50553d0 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/red_2.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/red_3.png b/Resources/Textures/Structures/Decoration/barrels.rsi/red_3.png new file mode 100644 index 00000000000..dd414145a0b Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/red_3.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/red_alt_1.png b/Resources/Textures/Structures/Decoration/barrels.rsi/red_alt_1.png new file mode 100644 index 00000000000..b4c5d20b982 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/red_alt_1.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/red_alt_2.png b/Resources/Textures/Structures/Decoration/barrels.rsi/red_alt_2.png new file mode 100644 index 00000000000..d3d145a9c1b Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/red_alt_2.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/red_alt_3.png b/Resources/Textures/Structures/Decoration/barrels.rsi/red_alt_3.png new file mode 100644 index 00000000000..f46f38a3f92 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/red_alt_3.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/toxic_1.png b/Resources/Textures/Structures/Decoration/barrels.rsi/toxic_1.png new file mode 100644 index 00000000000..05f1f433c80 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/toxic_1.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/toxic_2.png b/Resources/Textures/Structures/Decoration/barrels.rsi/toxic_2.png new file mode 100644 index 00000000000..d1fb0c25f68 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/toxic_2.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/toxic_3.png b/Resources/Textures/Structures/Decoration/barrels.rsi/toxic_3.png new file mode 100644 index 00000000000..4ec1d182233 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/toxic_3.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/toxic_4.png b/Resources/Textures/Structures/Decoration/barrels.rsi/toxic_4.png new file mode 100644 index 00000000000..b8a915a817f Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/toxic_4.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/triple_grey_1.png b/Resources/Textures/Structures/Decoration/barrels.rsi/triple_grey_1.png new file mode 100644 index 00000000000..9b562466a7d Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/triple_grey_1.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/triple_grey_2.png b/Resources/Textures/Structures/Decoration/barrels.rsi/triple_grey_2.png new file mode 100644 index 00000000000..37ea181edc6 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/triple_grey_2.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/triple_grey_3.png b/Resources/Textures/Structures/Decoration/barrels.rsi/triple_grey_3.png new file mode 100644 index 00000000000..12d10fc5334 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/triple_grey_3.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/triple_red_1.png b/Resources/Textures/Structures/Decoration/barrels.rsi/triple_red_1.png new file mode 100644 index 00000000000..b2cc0cbaafc Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/triple_red_1.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/triple_red_2.png b/Resources/Textures/Structures/Decoration/barrels.rsi/triple_red_2.png new file mode 100644 index 00000000000..4eb8bd45a6a Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/triple_red_2.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/triple_toxic_1.png b/Resources/Textures/Structures/Decoration/barrels.rsi/triple_toxic_1.png new file mode 100644 index 00000000000..a3f603bfee6 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/triple_toxic_1.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/triple_toxic_2.png b/Resources/Textures/Structures/Decoration/barrels.rsi/triple_toxic_2.png new file mode 100644 index 00000000000..3afd5eacc3a Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/triple_toxic_2.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/triple_waste_1.png b/Resources/Textures/Structures/Decoration/barrels.rsi/triple_waste_1.png new file mode 100644 index 00000000000..50c40b137ba Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/triple_waste_1.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/triple_waste_2.png b/Resources/Textures/Structures/Decoration/barrels.rsi/triple_waste_2.png new file mode 100644 index 00000000000..a8d79361c64 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/triple_waste_2.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/triple_waste_3.png b/Resources/Textures/Structures/Decoration/barrels.rsi/triple_waste_3.png new file mode 100644 index 00000000000..9e255067d24 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/triple_waste_3.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/triple_yellow_1.png b/Resources/Textures/Structures/Decoration/barrels.rsi/triple_yellow_1.png new file mode 100644 index 00000000000..8b6e6efd856 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/triple_yellow_1.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/triple_yellow_2.png b/Resources/Textures/Structures/Decoration/barrels.rsi/triple_yellow_2.png new file mode 100644 index 00000000000..1c3ffcdb6e8 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/triple_yellow_2.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/triple_yellow_3.png b/Resources/Textures/Structures/Decoration/barrels.rsi/triple_yellow_3.png new file mode 100644 index 00000000000..80b4b915fe8 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/triple_yellow_3.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/warning_1.png b/Resources/Textures/Structures/Decoration/barrels.rsi/warning_1.png new file mode 100644 index 00000000000..2b6b4bc60a5 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/warning_1.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/warning_2.png b/Resources/Textures/Structures/Decoration/barrels.rsi/warning_2.png new file mode 100644 index 00000000000..2e4814a838e Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/warning_2.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/warning_3.png b/Resources/Textures/Structures/Decoration/barrels.rsi/warning_3.png new file mode 100644 index 00000000000..1d788499313 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/warning_3.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/waste_1.png b/Resources/Textures/Structures/Decoration/barrels.rsi/waste_1.png new file mode 100644 index 00000000000..88f24bf8f6a Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/waste_1.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/waste_2.png b/Resources/Textures/Structures/Decoration/barrels.rsi/waste_2.png new file mode 100644 index 00000000000..0b59a07ca93 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/waste_2.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/waste_3.png b/Resources/Textures/Structures/Decoration/barrels.rsi/waste_3.png new file mode 100644 index 00000000000..08da97f26df Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/waste_3.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/yellow_1.png b/Resources/Textures/Structures/Decoration/barrels.rsi/yellow_1.png new file mode 100644 index 00000000000..c14dd3aaf00 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/yellow_1.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/yellow_2.png b/Resources/Textures/Structures/Decoration/barrels.rsi/yellow_2.png new file mode 100644 index 00000000000..09240c27c23 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/yellow_2.png differ diff --git a/Resources/Textures/Structures/Decoration/barrels.rsi/yellow_3.png b/Resources/Textures/Structures/Decoration/barrels.rsi/yellow_3.png new file mode 100644 index 00000000000..395922b8cb0 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/barrels.rsi/yellow_3.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_ns-1.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_ns-1.png new file mode 100644 index 00000000000..2115cd96548 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_ns-1.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_ns-2.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_ns-2.png new file mode 100644 index 00000000000..947f783128b Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_ns-2.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_ns-3.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_ns-3.png new file mode 100644 index 00000000000..1d06908207d Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_ns-3.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_ns-4.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_ns-4.png new file mode 100644 index 00000000000..04460cdeeda Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_ns-4.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_ns-5.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_ns-5.png new file mode 100644 index 00000000000..70effbf9c9e Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_ns-5.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_ns-6.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_ns-6.png new file mode 100644 index 00000000000..8eded936f9a Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_ns-6.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_we-1.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_we-1.png new file mode 100644 index 00000000000..1b937ad6381 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_we-1.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_we-2.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_we-2.png new file mode 100644 index 00000000000..8eade32e2bd Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_we-2.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_we-3.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_we-3.png new file mode 100644 index 00000000000..6d6d9277e94 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_we-3.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_we-4.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_we-4.png new file mode 100644 index 00000000000..096bd817288 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_we-4.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_we-5.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_we-5.png new file mode 100644 index 00000000000..8df1d053507 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_we-5.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_we-6.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_we-6.png new file mode 100644 index 00000000000..6926dfc3a39 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_drought_we-6.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_ns-1.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_ns-1.png new file mode 100644 index 00000000000..3f627352d5f Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_ns-1.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_ns-2.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_ns-2.png new file mode 100644 index 00000000000..319f8266278 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_ns-2.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_ns-3.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_ns-3.png new file mode 100644 index 00000000000..08f725999fc Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_ns-3.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_ns-4.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_ns-4.png new file mode 100644 index 00000000000..d13ab2e0784 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_ns-4.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_ns-5.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_ns-5.png new file mode 100644 index 00000000000..8a10f9ebd97 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_ns-5.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_ns-6.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_ns-6.png new file mode 100644 index 00000000000..b42dd106c68 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_ns-6.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_we-1.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_we-1.png new file mode 100644 index 00000000000..5ae42e48fca Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_we-1.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_we-2.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_we-2.png new file mode 100644 index 00000000000..9408c3f76b1 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_we-2.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_we-3.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_we-3.png new file mode 100644 index 00000000000..d0363b61413 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_we-3.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_we-4.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_we-4.png new file mode 100644 index 00000000000..ad6847efdf0 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_we-4.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_we-5.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_we-5.png new file mode 100644 index 00000000000..ae4b6c6bec5 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_we-5.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_we-6.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_we-6.png new file mode 100644 index 00000000000..5d25c6018e3 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/boards_mammoth_we-6.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/meta.json b/Resources/Textures/Structures/Decoration/cave_decor.rsi/meta.json new file mode 100644 index 00000000000..39934426339 --- /dev/null +++ b/Resources/Textures/Structures/Decoration/cave_decor.rsi/meta.json @@ -0,0 +1,122 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Taken from mojave-sun-13 at https://github.com/Mojave-Sun/mojave-sun-13/blob/0cbeda29e69293cd3a637fe67576b30b7693d5f6/mojave/icons/structure/cave_decor.dmi", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "stalagmite" + }, + { + "name": "stalagmite1" + }, + { + "name": "stalagmite2" + }, + { + "name": "stalagmite3" + }, + { + "name": "stalagmite4" + }, + { + "name": "stalagmite5" + }, + { + "name": "minecart_fallen" + }, + { + "name": "sign_left" + }, + { + "name": "sign_right" + }, + { + "name": "boards_drought_ns-1" + }, + { + "name": "boards_drought_ns-2" + }, + { + "name": "boards_drought_ns-3" + }, + { + "name": "boards_drought_ns-4" + }, + { + "name": "boards_drought_ns-5" + }, + { + "name": "boards_drought_ns-6" + }, + { + "name": "boards_drought_we-1" + }, + { + "name": "boards_drought_we-2" + }, + { + "name": "boards_drought_we-3" + }, + { + "name": "boards_drought_we-4" + }, + { + "name": "boards_drought_we-5" + }, + { + "name": "boards_drought_we-6" + }, + { + "name": "boards_mammoth_ns-1" + }, + { + "name": "boards_mammoth_ns-2" + }, + { + "name": "boards_mammoth_ns-3" + }, + { + "name": "boards_mammoth_ns-4" + }, + { + "name": "boards_mammoth_ns-5" + }, + { + "name": "boards_mammoth_ns-6" + }, + { + "name": "boards_mammoth_we-1" + }, + { + "name": "boards_mammoth_we-2" + }, + { + "name": "boards_mammoth_we-3" + }, + { + "name": "boards_mammoth_we-4" + }, + { + "name": "boards_mammoth_we-5" + }, + { + "name": "boards_mammoth_we-6" + }, + { + "name": "support" + }, + { + "name": "support_beams" + }, + { + "name": "support_wall" + }, + { + "name": "support_wall_broken" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/minecart_fallen.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/minecart_fallen.png new file mode 100644 index 00000000000..b452f212f58 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/minecart_fallen.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/sign_left.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/sign_left.png new file mode 100644 index 00000000000..6b188d94500 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/sign_left.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/sign_right.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/sign_right.png new file mode 100644 index 00000000000..61929ae8786 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/sign_right.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/stalagmite.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/stalagmite.png new file mode 100644 index 00000000000..c0a0fd2a259 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/stalagmite.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/stalagmite1.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/stalagmite1.png new file mode 100644 index 00000000000..ffcf3155c8d Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/stalagmite1.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/stalagmite2.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/stalagmite2.png new file mode 100644 index 00000000000..07591aefa47 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/stalagmite2.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/stalagmite3.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/stalagmite3.png new file mode 100644 index 00000000000..c54eb93cbf9 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/stalagmite3.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/stalagmite4.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/stalagmite4.png new file mode 100644 index 00000000000..7a0b84050f3 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/stalagmite4.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/stalagmite5.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/stalagmite5.png new file mode 100644 index 00000000000..1b766541908 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/stalagmite5.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/support.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/support.png new file mode 100644 index 00000000000..7670149e573 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/support.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/support_beams.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/support_beams.png new file mode 100644 index 00000000000..a3d6e3b2d29 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/support_beams.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/support_wall.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/support_wall.png new file mode 100644 index 00000000000..001c3604dba Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/support_wall.png differ diff --git a/Resources/Textures/Structures/Decoration/cave_decor.rsi/support_wall_broken.png b/Resources/Textures/Structures/Decoration/cave_decor.rsi/support_wall_broken.png new file mode 100644 index 00000000000..0ab5916b2d9 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/cave_decor.rsi/support_wall_broken.png differ diff --git a/Resources/Textures/Structures/Decoration/rails64.rsi/junction-left-bottom.png b/Resources/Textures/Structures/Decoration/rails64.rsi/junction-left-bottom.png new file mode 100644 index 00000000000..7238770a79d Binary files /dev/null and b/Resources/Textures/Structures/Decoration/rails64.rsi/junction-left-bottom.png differ diff --git a/Resources/Textures/Structures/Decoration/rails64.rsi/junction-left-top.png b/Resources/Textures/Structures/Decoration/rails64.rsi/junction-left-top.png new file mode 100644 index 00000000000..ec6e93b6273 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/rails64.rsi/junction-left-top.png differ diff --git a/Resources/Textures/Structures/Decoration/rails64.rsi/junction-right-bottom.png b/Resources/Textures/Structures/Decoration/rails64.rsi/junction-right-bottom.png new file mode 100644 index 00000000000..7dd8f8fcbb8 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/rails64.rsi/junction-right-bottom.png differ diff --git a/Resources/Textures/Structures/Decoration/rails64.rsi/junction-right-top.png b/Resources/Textures/Structures/Decoration/rails64.rsi/junction-right-top.png new file mode 100644 index 00000000000..793db233c39 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/rails64.rsi/junction-right-top.png differ diff --git a/Resources/Textures/Structures/Decoration/rails64.rsi/meta.json b/Resources/Textures/Structures/Decoration/rails64.rsi/meta.json new file mode 100644 index 00000000000..813b89a53c7 --- /dev/null +++ b/Resources/Textures/Structures/Decoration/rails64.rsi/meta.json @@ -0,0 +1,39 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Created by INFRARED_BARON for MS13", + "size": { + "x": 64, + "y": 64 + }, + "states": [ + { + "name": "junction-right-top" + }, + { + "name": "turn-WS" + }, + { + "name": "junction-right-bottom" + }, + { + "name": "turn-NW" + }, + { + "name": "junction-left-bottom" + }, + { + "name": "turn-NE" + }, + { + "name": "junction-left-top" + }, + { + "name": "turn-SE" + }, + { + "name": "rails", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Decoration/rails64.rsi/rails.png b/Resources/Textures/Structures/Decoration/rails64.rsi/rails.png new file mode 100644 index 00000000000..96028b3149c Binary files /dev/null and b/Resources/Textures/Structures/Decoration/rails64.rsi/rails.png differ diff --git a/Resources/Textures/Structures/Decoration/rails64.rsi/turn-NE.png b/Resources/Textures/Structures/Decoration/rails64.rsi/turn-NE.png new file mode 100644 index 00000000000..c90bd0e1810 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/rails64.rsi/turn-NE.png differ diff --git a/Resources/Textures/Structures/Decoration/rails64.rsi/turn-NW.png b/Resources/Textures/Structures/Decoration/rails64.rsi/turn-NW.png new file mode 100644 index 00000000000..67197f64e41 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/rails64.rsi/turn-NW.png differ diff --git a/Resources/Textures/Structures/Decoration/rails64.rsi/turn-SE.png b/Resources/Textures/Structures/Decoration/rails64.rsi/turn-SE.png new file mode 100644 index 00000000000..c9ae45f2633 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/rails64.rsi/turn-SE.png differ diff --git a/Resources/Textures/Structures/Decoration/rails64.rsi/turn-WS.png b/Resources/Textures/Structures/Decoration/rails64.rsi/turn-WS.png new file mode 100644 index 00000000000..1099423275f Binary files /dev/null and b/Resources/Textures/Structures/Decoration/rails64.rsi/turn-WS.png differ diff --git a/Resources/Textures/Structures/Decoration/signs_64x64.rsi/bazaar.png b/Resources/Textures/Structures/Decoration/signs_64x64.rsi/bazaar.png new file mode 100644 index 00000000000..9a0c08957a5 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/signs_64x64.rsi/bazaar.png differ diff --git a/Resources/Textures/Structures/Decoration/signs_64x64.rsi/meta.json b/Resources/Textures/Structures/Decoration/signs_64x64.rsi/meta.json new file mode 100644 index 00000000000..7ab03e564e8 --- /dev/null +++ b/Resources/Textures/Structures/Decoration/signs_64x64.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Taken from MS13 at commit https://github.com/Mojave-Sun/mojave-sun-13/commit/6fde5cf64e584727ce66d92d81352801670e172f", + "size": { + "x": 64, + "y": 64 + }, + "states": [ + { + "name": "we_open" + }, + { + "name": "bazaar" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Decoration/signs_64x64.rsi/we_open.png b/Resources/Textures/Structures/Decoration/signs_64x64.rsi/we_open.png new file mode 100644 index 00000000000..141a97768a0 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/signs_64x64.rsi/we_open.png differ diff --git a/Resources/Textures/Structures/Decoration/tires.rsi/junktire1.png b/Resources/Textures/Structures/Decoration/tires.rsi/junktire1.png new file mode 100644 index 00000000000..5ff478ac179 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/tires.rsi/junktire1.png differ diff --git a/Resources/Textures/Structures/Decoration/tires.rsi/junktire2.png b/Resources/Textures/Structures/Decoration/tires.rsi/junktire2.png new file mode 100644 index 00000000000..a8b346516b2 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/tires.rsi/junktire2.png differ diff --git a/Resources/Textures/Structures/Decoration/tires.rsi/junktire3.png b/Resources/Textures/Structures/Decoration/tires.rsi/junktire3.png new file mode 100644 index 00000000000..cb9e52edf37 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/tires.rsi/junktire3.png differ diff --git a/Resources/Textures/Structures/Decoration/tires.rsi/junktire4.png b/Resources/Textures/Structures/Decoration/tires.rsi/junktire4.png new file mode 100644 index 00000000000..09ad4bbcd41 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/tires.rsi/junktire4.png differ diff --git a/Resources/Textures/Structures/Decoration/tires.rsi/junktire5.png b/Resources/Textures/Structures/Decoration/tires.rsi/junktire5.png new file mode 100644 index 00000000000..1c9fd3e3324 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/tires.rsi/junktire5.png differ diff --git a/Resources/Textures/Structures/Decoration/tires.rsi/meta.json b/Resources/Textures/Structures/Decoration/tires.rsi/meta.json new file mode 100644 index 00000000000..67900194216 --- /dev/null +++ b/Resources/Textures/Structures/Decoration/tires.rsi/meta.json @@ -0,0 +1,31 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Created by ladyayla and MaxxOrion for ", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "junktire1", + "directions": 4 + }, + { + "name": "junktire2", + "directions": 4 + }, + { + "name": "junktire3", + "directions": 4 + }, + { + "name": "junktire4", + "directions": 4 + }, + { + "name": "junktire5", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Structures/Decoration/torches.rsi/meta.json b/Resources/Textures/Structures/Decoration/torches.rsi/meta.json new file mode 100644 index 00000000000..caa105acab9 --- /dev/null +++ b/Resources/Textures/Structures/Decoration/torches.rsi/meta.json @@ -0,0 +1,59 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Ported from Nukapop-13", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "torch_unlit" + }, + { + "name": "torch_lit", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "wall_torch_unlit", + "directions": 4 + }, + { + "name": "wall_torch_lit", + "directions": 4, + "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 + ] + ] + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Decoration/torches.rsi/torch_lit.png b/Resources/Textures/Structures/Decoration/torches.rsi/torch_lit.png new file mode 100644 index 00000000000..4fdd6e03232 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/torches.rsi/torch_lit.png differ diff --git a/Resources/Textures/Structures/Decoration/torches.rsi/torch_unlit.png b/Resources/Textures/Structures/Decoration/torches.rsi/torch_unlit.png new file mode 100644 index 00000000000..f946d282242 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/torches.rsi/torch_unlit.png differ diff --git a/Resources/Textures/Structures/Decoration/torches.rsi/wall_torch_lit.png b/Resources/Textures/Structures/Decoration/torches.rsi/wall_torch_lit.png new file mode 100644 index 00000000000..d629bc00eb5 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/torches.rsi/wall_torch_lit.png differ diff --git a/Resources/Textures/Structures/Decoration/torches.rsi/wall_torch_unlit.png b/Resources/Textures/Structures/Decoration/torches.rsi/wall_torch_unlit.png new file mode 100644 index 00000000000..c508a54ebd4 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/torches.rsi/wall_torch_unlit.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/barrels1.png b/Resources/Textures/Structures/Decoration/world.rsi/barrels1.png new file mode 100644 index 00000000000..323811e137e Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/barrels1.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/barrels2.png b/Resources/Textures/Structures/Decoration/world.rsi/barrels2.png new file mode 100644 index 00000000000..1bff24bd4ac Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/barrels2.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/barrels3.png b/Resources/Textures/Structures/Decoration/world.rsi/barrels3.png new file mode 100644 index 00000000000..20d914ac188 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/barrels3.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/barrels4.png b/Resources/Textures/Structures/Decoration/world.rsi/barrels4.png new file mode 100644 index 00000000000..8d8bea4b031 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/barrels4.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/barrels5.png b/Resources/Textures/Structures/Decoration/world.rsi/barrels5.png new file mode 100644 index 00000000000..da1078bd146 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/barrels5.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/barrels6.png b/Resources/Textures/Structures/Decoration/world.rsi/barrels6.png new file mode 100644 index 00000000000..513795e8961 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/barrels6.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/bookpile_1.png b/Resources/Textures/Structures/Decoration/world.rsi/bookpile_1.png new file mode 100644 index 00000000000..a2cd2612a93 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/bookpile_1.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/bookpile_2.png b/Resources/Textures/Structures/Decoration/world.rsi/bookpile_2.png new file mode 100644 index 00000000000..3afcd2e1e26 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/bookpile_2.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/bookpile_3.png b/Resources/Textures/Structures/Decoration/world.rsi/bookpile_3.png new file mode 100644 index 00000000000..33ec1b6d49d Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/bookpile_3.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/bookpile_4.png b/Resources/Textures/Structures/Decoration/world.rsi/bookpile_4.png new file mode 100644 index 00000000000..33c0400bc23 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/bookpile_4.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/bookpile_5.png b/Resources/Textures/Structures/Decoration/world.rsi/bookpile_5.png new file mode 100644 index 00000000000..fe6dd9648c6 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/bookpile_5.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/bookpile_6.png b/Resources/Textures/Structures/Decoration/world.rsi/bookpile_6.png new file mode 100644 index 00000000000..29a07811b95 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/bookpile_6.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/bookstack_1.png b/Resources/Textures/Structures/Decoration/world.rsi/bookstack_1.png new file mode 100644 index 00000000000..1ba11dea14d Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/bookstack_1.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/bookstack_2.png b/Resources/Textures/Structures/Decoration/world.rsi/bookstack_2.png new file mode 100644 index 00000000000..c2e8d731635 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/bookstack_2.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/bookstack_3.png b/Resources/Textures/Structures/Decoration/world.rsi/bookstack_3.png new file mode 100644 index 00000000000..762f4164a32 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/bookstack_3.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/brickpile.png b/Resources/Textures/Structures/Decoration/world.rsi/brickpile.png new file mode 100644 index 00000000000..5f9bff64e6c Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/brickpile.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/brickrubble.png b/Resources/Textures/Structures/Decoration/world.rsi/brickrubble.png new file mode 100644 index 00000000000..e6608f1928f Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/brickrubble.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/cardboard.png b/Resources/Textures/Structures/Decoration/world.rsi/cardboard.png new file mode 100644 index 00000000000..502c9091c87 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/cardboard.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/concrete_barrier.png b/Resources/Textures/Structures/Decoration/world.rsi/concrete_barrier.png new file mode 100644 index 00000000000..adc809dd334 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/concrete_barrier.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/concrete_barrier_1.png b/Resources/Textures/Structures/Decoration/world.rsi/concrete_barrier_1.png new file mode 100644 index 00000000000..172a253e72f Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/concrete_barrier_1.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/concrete_barrier_2.png b/Resources/Textures/Structures/Decoration/world.rsi/concrete_barrier_2.png new file mode 100644 index 00000000000..166a4d8e8d6 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/concrete_barrier_2.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/concrete_barrier_3.png b/Resources/Textures/Structures/Decoration/world.rsi/concrete_barrier_3.png new file mode 100644 index 00000000000..3dacbc7b505 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/concrete_barrier_3.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/concrete_barrier_4.png b/Resources/Textures/Structures/Decoration/world.rsi/concrete_barrier_4.png new file mode 100644 index 00000000000..152a731a34c Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/concrete_barrier_4.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/concrete_barrier_5.png b/Resources/Textures/Structures/Decoration/world.rsi/concrete_barrier_5.png new file mode 100644 index 00000000000..5c9b516dceb Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/concrete_barrier_5.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/concrete_barrier_alt.png b/Resources/Textures/Structures/Decoration/world.rsi/concrete_barrier_alt.png new file mode 100644 index 00000000000..d14490858ac Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/concrete_barrier_alt.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/concrete_barrier_alt_2.png b/Resources/Textures/Structures/Decoration/world.rsi/concrete_barrier_alt_2.png new file mode 100644 index 00000000000..6f4073d1e55 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/concrete_barrier_alt_2.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/foodstuff_1.png b/Resources/Textures/Structures/Decoration/world.rsi/foodstuff_1.png new file mode 100644 index 00000000000..35e169511a4 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/foodstuff_1.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/foodstuff_2.png b/Resources/Textures/Structures/Decoration/world.rsi/foodstuff_2.png new file mode 100644 index 00000000000..5dd4111cf39 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/foodstuff_2.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/foodstuff_3.png b/Resources/Textures/Structures/Decoration/world.rsi/foodstuff_3.png new file mode 100644 index 00000000000..07a18d4b49b Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/foodstuff_3.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/foodstuff_4.png b/Resources/Textures/Structures/Decoration/world.rsi/foodstuff_4.png new file mode 100644 index 00000000000..ea9f0dc039a Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/foodstuff_4.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/foodstuff_5.png b/Resources/Textures/Structures/Decoration/world.rsi/foodstuff_5.png new file mode 100644 index 00000000000..410d800f79a Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/foodstuff_5.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/foodstuff_6.png b/Resources/Textures/Structures/Decoration/world.rsi/foodstuff_6.png new file mode 100644 index 00000000000..5e5c41c7077 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/foodstuff_6.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/glass_1.png b/Resources/Textures/Structures/Decoration/world.rsi/glass_1.png new file mode 100644 index 00000000000..17ac65cf260 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/glass_1.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/glass_2.png b/Resources/Textures/Structures/Decoration/world.rsi/glass_2.png new file mode 100644 index 00000000000..eb3ab8acaa9 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/glass_2.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/glass_3.png b/Resources/Textures/Structures/Decoration/world.rsi/glass_3.png new file mode 100644 index 00000000000..897e09bd7e5 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/glass_3.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/glass_4.png b/Resources/Textures/Structures/Decoration/world.rsi/glass_4.png new file mode 100644 index 00000000000..be2b99641c2 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/glass_4.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/glass_5.png b/Resources/Textures/Structures/Decoration/world.rsi/glass_5.png new file mode 100644 index 00000000000..ade2587a9ac Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/glass_5.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/glass_6.png b/Resources/Textures/Structures/Decoration/world.rsi/glass_6.png new file mode 100644 index 00000000000..79c5e850d7a Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/glass_6.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/mailbox-open.png b/Resources/Textures/Structures/Decoration/world.rsi/mailbox-open.png new file mode 100644 index 00000000000..c5126efbf88 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/mailbox-open.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/mailbox.png b/Resources/Textures/Structures/Decoration/world.rsi/mailbox.png new file mode 100644 index 00000000000..52b69f7db4d Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/mailbox.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/mailbox_old-open.png b/Resources/Textures/Structures/Decoration/world.rsi/mailbox_old-open.png new file mode 100644 index 00000000000..3c712d2c3d3 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/mailbox_old-open.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/mailbox_old.png b/Resources/Textures/Structures/Decoration/world.rsi/mailbox_old.png new file mode 100644 index 00000000000..d80d352f7d1 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/mailbox_old.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/meta.json b/Resources/Textures/Structures/Decoration/world.rsi/meta.json new file mode 100644 index 00000000000..1920ab8b628 --- /dev/null +++ b/Resources/Textures/Structures/Decoration/world.rsi/meta.json @@ -0,0 +1,249 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Taken from mojave-sun-13 at https://github.com/Mojave-Sun/mojave-sun-13/blob/ffcecc82f28c796f8eff92ac46ff0f5e0d9b1ab6/mojave/icons/structure/miscellaneous.dmi", + "size": { + "x": 32, + "y": 48 + }, + "states": [ + { + "name": "mailbox_old" + }, + { + "name": "mailbox_old-open" + }, + { + "name": "mailbox" + }, + { + "name": "mailbox-open" + }, + { + "name": "barrels1" + }, + { + "name": "barrels2" + }, + { + "name": "barrels3" + }, + { + "name": "barrels4" + }, + { + "name": "barrels5" + }, + { + "name": "barrels6" + }, + { + "name": "payphone", + "directions": 4 + }, + { + "name": "payphone_alt", + "directions": 4 + }, + { + "name": "trashbin" + }, + { + "name": "trashbin-1" + }, + { + "name": "trashbin-2" + }, + { + "name": "trashbin-3" + }, + { + "name": "phone_black" + }, + { + "name": "phone_red" + }, + { + "name": "pot_1" + }, + { + "name": "pot_2" + }, + { + "name": "pot_3" + }, + { + "name": "pot_4" + }, + { + "name": "concrete_barrier", + "directions": 4 + }, + { + "name": "concrete_barrier_1", + "directions": 4 + }, + { + "name": "concrete_barrier_2", + "directions": 4 + }, + { + "name": "concrete_barrier_3", + "directions": 4 + }, + { + "name": "concrete_barrier_4", + "directions": 4 + }, + { + "name": "concrete_barrier_5", + "directions": 4 + }, + { + "name": "concrete_barrier_alt", + "directions": 4 + }, + { + "name": "concrete_barrier_alt_2", + "directions": 4 + }, + { + "name": "skeleton" + }, + { + "name": "shower", + "directions": 4 + }, + { + "name": "toilet", + "directions": 4 + }, + { + "name": "sink", + "directions": 4 + }, + { + "name": "scattered_papers", + "directions": 8 + }, + { + "name": "papers_1", + "directions": 4 + }, + { + "name": "papers_2", + "directions": 4 + }, + { + "name": "papers_3", + "directions": 4 + }, + { + "name": "woodscrap", + "directions": 8 + }, + { + "name": "brickrubble", + "directions": 8 + }, + { + "name": "cardboard", + "directions": 8 + }, + { + "name": "pallet", + "directions": 4 + }, + { + "name": "pallet_stack", + "directions": 4 + }, + { + "name": "brickpile" + }, + { + "name": "bookstack_1" + }, + { + "name": "bookstack_2" + }, + { + "name": "bookstack_3" + }, + { + "name": "bookpile_1" + }, + { + "name": "bookpile_2" + }, + { + "name": "bookpile_3" + }, + { + "name": "bookpile_4" + }, + { + "name": "bookpile_5" + }, + { + "name": "bookpile_6" + }, + { + "name": "foodstuff_1" + }, + { + "name": "foodstuff_2" + }, + { + "name": "foodstuff_3" + }, + { + "name": "foodstuff_4" + }, + { + "name": "foodstuff_5" + }, + { + "name": "foodstuff_6" + }, + { + "name": "trashbags_1" + }, + { + "name": "trashbags_2" + }, + { + "name": "trashbags_3" + }, + { + "name": "trashbags_4" + }, + { + "name": "trashbags_5" + }, + { + "name": "trashbags_6" + }, + { + "name": "glass_1" + }, + { + "name": "glass_2" + }, + { + "name": "glass_3" + }, + { + "name": "glass_4" + }, + { + "name": "glass_5" + }, + { + "name": "glass_6" + }, + { + "name": "mine_sign" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Decoration/world.rsi/mine_sign.png b/Resources/Textures/Structures/Decoration/world.rsi/mine_sign.png new file mode 100644 index 00000000000..e67ecc5e370 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/mine_sign.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/pallet.png b/Resources/Textures/Structures/Decoration/world.rsi/pallet.png new file mode 100644 index 00000000000..f1ef027d274 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/pallet.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/pallet_stack.png b/Resources/Textures/Structures/Decoration/world.rsi/pallet_stack.png new file mode 100644 index 00000000000..73d59a10f32 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/pallet_stack.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/papers_1.png b/Resources/Textures/Structures/Decoration/world.rsi/papers_1.png new file mode 100644 index 00000000000..f250f41ecba Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/papers_1.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/papers_2.png b/Resources/Textures/Structures/Decoration/world.rsi/papers_2.png new file mode 100644 index 00000000000..f9aa74fe508 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/papers_2.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/papers_3.png b/Resources/Textures/Structures/Decoration/world.rsi/papers_3.png new file mode 100644 index 00000000000..277a55e12c1 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/papers_3.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/payphone.png b/Resources/Textures/Structures/Decoration/world.rsi/payphone.png new file mode 100644 index 00000000000..928291b65ef Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/payphone.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/payphone_alt.png b/Resources/Textures/Structures/Decoration/world.rsi/payphone_alt.png new file mode 100644 index 00000000000..aa05c3fd31d Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/payphone_alt.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/phone_black.png b/Resources/Textures/Structures/Decoration/world.rsi/phone_black.png new file mode 100644 index 00000000000..87403a190f2 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/phone_black.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/phone_red.png b/Resources/Textures/Structures/Decoration/world.rsi/phone_red.png new file mode 100644 index 00000000000..e925a7f1f4c Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/phone_red.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/pot_1.png b/Resources/Textures/Structures/Decoration/world.rsi/pot_1.png new file mode 100644 index 00000000000..b9ae782f094 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/pot_1.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/pot_2.png b/Resources/Textures/Structures/Decoration/world.rsi/pot_2.png new file mode 100644 index 00000000000..a2e594848a8 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/pot_2.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/pot_3.png b/Resources/Textures/Structures/Decoration/world.rsi/pot_3.png new file mode 100644 index 00000000000..f665ca9125e Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/pot_3.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/pot_4.png b/Resources/Textures/Structures/Decoration/world.rsi/pot_4.png new file mode 100644 index 00000000000..3ae15c9ee50 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/pot_4.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/scattered_papers.png b/Resources/Textures/Structures/Decoration/world.rsi/scattered_papers.png new file mode 100644 index 00000000000..59447400c37 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/scattered_papers.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/shower.png b/Resources/Textures/Structures/Decoration/world.rsi/shower.png new file mode 100644 index 00000000000..ca3f561f9d2 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/shower.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/sink.png b/Resources/Textures/Structures/Decoration/world.rsi/sink.png new file mode 100644 index 00000000000..ab89eea0ad0 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/sink.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/skeleton.png b/Resources/Textures/Structures/Decoration/world.rsi/skeleton.png new file mode 100644 index 00000000000..9742b98dfd7 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/skeleton.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/toilet.png b/Resources/Textures/Structures/Decoration/world.rsi/toilet.png new file mode 100644 index 00000000000..912bd547b0a Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/toilet.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/trashbags_1.png b/Resources/Textures/Structures/Decoration/world.rsi/trashbags_1.png new file mode 100644 index 00000000000..32c78882f41 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/trashbags_1.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/trashbags_2.png b/Resources/Textures/Structures/Decoration/world.rsi/trashbags_2.png new file mode 100644 index 00000000000..a6ebeb9933b Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/trashbags_2.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/trashbags_3.png b/Resources/Textures/Structures/Decoration/world.rsi/trashbags_3.png new file mode 100644 index 00000000000..828a44184ee Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/trashbags_3.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/trashbags_4.png b/Resources/Textures/Structures/Decoration/world.rsi/trashbags_4.png new file mode 100644 index 00000000000..368852fc235 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/trashbags_4.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/trashbags_5.png b/Resources/Textures/Structures/Decoration/world.rsi/trashbags_5.png new file mode 100644 index 00000000000..b878b22d526 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/trashbags_5.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/trashbags_6.png b/Resources/Textures/Structures/Decoration/world.rsi/trashbags_6.png new file mode 100644 index 00000000000..236a3b0f1ec Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/trashbags_6.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/trashbin-1.png b/Resources/Textures/Structures/Decoration/world.rsi/trashbin-1.png new file mode 100644 index 00000000000..ab01db6716d Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/trashbin-1.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/trashbin-2.png b/Resources/Textures/Structures/Decoration/world.rsi/trashbin-2.png new file mode 100644 index 00000000000..01ebf1808ec Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/trashbin-2.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/trashbin-3.png b/Resources/Textures/Structures/Decoration/world.rsi/trashbin-3.png new file mode 100644 index 00000000000..0ded7ef6a45 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/trashbin-3.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/trashbin.png b/Resources/Textures/Structures/Decoration/world.rsi/trashbin.png new file mode 100644 index 00000000000..cc6bfcbaf6b Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/trashbin.png differ diff --git a/Resources/Textures/Structures/Decoration/world.rsi/woodscrap.png b/Resources/Textures/Structures/Decoration/world.rsi/woodscrap.png new file mode 100644 index 00000000000..5cdb4e82489 Binary files /dev/null and b/Resources/Textures/Structures/Decoration/world.rsi/woodscrap.png differ diff --git a/Resources/Textures/Structures/Machines/limbgrower.rsi/limbgrower_fill.png b/Resources/Textures/Structures/Machines/limbgrower.rsi/limbgrower_fill.png new file mode 100644 index 00000000000..1e45b366221 Binary files /dev/null and b/Resources/Textures/Structures/Machines/limbgrower.rsi/limbgrower_fill.png differ diff --git a/Resources/Textures/Structures/Machines/limbgrower.rsi/limbgrower_idleoff.png b/Resources/Textures/Structures/Machines/limbgrower.rsi/limbgrower_idleoff.png new file mode 100644 index 00000000000..73bab51916c Binary files /dev/null and b/Resources/Textures/Structures/Machines/limbgrower.rsi/limbgrower_idleoff.png differ diff --git a/Resources/Textures/Structures/Machines/limbgrower.rsi/limbgrower_idleon.png b/Resources/Textures/Structures/Machines/limbgrower.rsi/limbgrower_idleon.png new file mode 100644 index 00000000000..f47f93eb86a Binary files /dev/null and b/Resources/Textures/Structures/Machines/limbgrower.rsi/limbgrower_idleon.png differ diff --git a/Resources/Textures/Structures/Machines/limbgrower.rsi/limbgrower_openpanel.png b/Resources/Textures/Structures/Machines/limbgrower.rsi/limbgrower_openpanel.png new file mode 100644 index 00000000000..cc174c7d8b9 Binary files /dev/null and b/Resources/Textures/Structures/Machines/limbgrower.rsi/limbgrower_openpanel.png differ diff --git a/Resources/Textures/Structures/Machines/limbgrower.rsi/limbgrower_panelopen.png b/Resources/Textures/Structures/Machines/limbgrower.rsi/limbgrower_panelopen.png new file mode 100644 index 00000000000..d4c4de1f8c4 Binary files /dev/null and b/Resources/Textures/Structures/Machines/limbgrower.rsi/limbgrower_panelopen.png differ diff --git a/Resources/Textures/Structures/Machines/limbgrower.rsi/limbgrower_unfill.png b/Resources/Textures/Structures/Machines/limbgrower.rsi/limbgrower_unfill.png new file mode 100644 index 00000000000..6aa57f247e2 Binary files /dev/null and b/Resources/Textures/Structures/Machines/limbgrower.rsi/limbgrower_unfill.png differ diff --git a/Resources/Textures/Structures/Machines/limbgrower.rsi/meta.json b/Resources/Textures/Structures/Machines/limbgrower.rsi/meta.json new file mode 100644 index 00000000000..1b5f86463ff --- /dev/null +++ b/Resources/Textures/Structures/Machines/limbgrower.rsi/meta.json @@ -0,0 +1,85 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at commit 85c26c1", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "limbgrower_fill", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "limbgrower_unfill", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "limbgrower_openpanel", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "limbgrower_idleoff", + "delays": [ + [ + 0.3, + 0.3, + 0.3, + 0.3 + ] + ] + }, + { + "name": "limbgrower_idleon", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "limbgrower_panelopen" + } + ] +} diff --git a/Resources/Textures/Structures/Storage/Closets/cabinet.rsi/closet.png b/Resources/Textures/Structures/Storage/Closets/cabinet.rsi/closet.png new file mode 100644 index 00000000000..72f5a15231c Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/cabinet.rsi/closet.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/cabinet.rsi/closet_door.png b/Resources/Textures/Structures/Storage/Closets/cabinet.rsi/closet_door.png new file mode 100644 index 00000000000..2aea809d943 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/cabinet.rsi/closet_door.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/cabinet.rsi/closet_open.png b/Resources/Textures/Structures/Storage/Closets/cabinet.rsi/closet_open.png new file mode 100644 index 00000000000..04bfdc1aef2 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/cabinet.rsi/closet_open.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/cabinet.rsi/meta.json b/Resources/Textures/Structures/Storage/Closets/cabinet.rsi/meta.json new file mode 100644 index 00000000000..b4d08e76497 --- /dev/null +++ b/Resources/Textures/Structures/Storage/Closets/cabinet.rsi/meta.json @@ -0,0 +1,20 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "https://github.com/JustLoveBeingAnOwl/Interstate-80-owlTaken at /commit/a6f9e0a6649e89f0aa731f363e07f541654ecb3d", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "closet" + }, + { + "name": "closet_door" + }, + { + "name": "closet_open" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/Closets/closet.rsi/closet.png b/Resources/Textures/Structures/Storage/Closets/closet.rsi/closet.png new file mode 100644 index 00000000000..afd232916b6 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/closet.rsi/closet.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/closet.rsi/closet_door.png b/Resources/Textures/Structures/Storage/Closets/closet.rsi/closet_door.png new file mode 100644 index 00000000000..f35c07161b8 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/closet.rsi/closet_door.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/closet.rsi/closet_open.png b/Resources/Textures/Structures/Storage/Closets/closet.rsi/closet_open.png new file mode 100644 index 00000000000..a7551aff598 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/closet.rsi/closet_open.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/closet.rsi/meta.json b/Resources/Textures/Structures/Storage/Closets/closet.rsi/meta.json new file mode 100644 index 00000000000..3f29b07f084 --- /dev/null +++ b/Resources/Textures/Structures/Storage/Closets/closet.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "license": "CC0-1.0", + "copyright": "original sprites by Mithrandalf for ", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "closet" + }, + { + "name": "closet_door" + }, + { + "name": "closet_open" + }, + { + "name": "welded" + } + ] +} diff --git a/Resources/Textures/Structures/Storage/Closets/closet.rsi/welded.png b/Resources/Textures/Structures/Storage/Closets/closet.rsi/welded.png new file mode 100644 index 00000000000..5ba5dcc8962 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/closet.rsi/welded.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/closetgeneric.rsi/closet.png b/Resources/Textures/Structures/Storage/Closets/closetgeneric.rsi/closet.png new file mode 100644 index 00000000000..f172eb6e1a2 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/closetgeneric.rsi/closet.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/closetgeneric.rsi/closet_door.png b/Resources/Textures/Structures/Storage/Closets/closetgeneric.rsi/closet_door.png new file mode 100644 index 00000000000..cee2ab57863 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/closetgeneric.rsi/closet_door.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/closetgeneric.rsi/closet_open.png b/Resources/Textures/Structures/Storage/Closets/closetgeneric.rsi/closet_open.png new file mode 100644 index 00000000000..994cabb2715 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/closetgeneric.rsi/closet_open.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/closetgeneric.rsi/meta.json b/Resources/Textures/Structures/Storage/Closets/closetgeneric.rsi/meta.json new file mode 100644 index 00000000000..a8b78d972ba --- /dev/null +++ b/Resources/Textures/Structures/Storage/Closets/closetgeneric.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Taken from mojave-sun-13 at https://github.com/Mojave-Sun/mojave-sun-13/blob/734c2aba4549814549d0fa7a9aa2e2d03ec1a2da/mojave/icons/structure/storage.dmi", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "closet" + }, + { + "name": "closet_door" + }, + { + "name": "closet_open" + }, + { + "name": "welded" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/Closets/closetgeneric.rsi/welded.png b/Resources/Textures/Structures/Storage/Closets/closetgeneric.rsi/welded.png new file mode 100644 index 00000000000..5ba5dcc8962 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/closetgeneric.rsi/welded.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/closetgrey.rsi/closet.png b/Resources/Textures/Structures/Storage/Closets/closetgrey.rsi/closet.png new file mode 100644 index 00000000000..af64f96c3e2 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/closetgrey.rsi/closet.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/closetgrey.rsi/closet_door.png b/Resources/Textures/Structures/Storage/Closets/closetgrey.rsi/closet_door.png new file mode 100644 index 00000000000..95c3f82c11f Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/closetgrey.rsi/closet_door.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/closetgrey.rsi/closet_open.png b/Resources/Textures/Structures/Storage/Closets/closetgrey.rsi/closet_open.png new file mode 100644 index 00000000000..3d9b907af64 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/closetgrey.rsi/closet_open.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/closetgrey.rsi/meta.json b/Resources/Textures/Structures/Storage/Closets/closetgrey.rsi/meta.json new file mode 100644 index 00000000000..6c96f799da0 --- /dev/null +++ b/Resources/Textures/Structures/Storage/Closets/closetgrey.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "https://github.com/JustLoveBeingAnOwl/Interstate-80-owlTaken at /commit/a6f9e0a6649e89f0aa731f363e07f541654ecb3d", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "welded" + }, + { + "name": "closet" + }, + { + "name": "closet_door" + }, + { + "name": "closet_open" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/Closets/closetgrey.rsi/welded.png b/Resources/Textures/Structures/Storage/Closets/closetgrey.rsi/welded.png new file mode 100644 index 00000000000..3b3c1afb164 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/closetgrey.rsi/welded.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/closetgrey2.rsi/closet.png b/Resources/Textures/Structures/Storage/Closets/closetgrey2.rsi/closet.png new file mode 100644 index 00000000000..42c8042f278 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/closetgrey2.rsi/closet.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/closetgrey2.rsi/closet_door.png b/Resources/Textures/Structures/Storage/Closets/closetgrey2.rsi/closet_door.png new file mode 100644 index 00000000000..d358d38b075 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/closetgrey2.rsi/closet_door.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/closetgrey2.rsi/closet_open.png b/Resources/Textures/Structures/Storage/Closets/closetgrey2.rsi/closet_open.png new file mode 100644 index 00000000000..03fcc057c13 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/closetgrey2.rsi/closet_open.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/closetgrey2.rsi/meta.json b/Resources/Textures/Structures/Storage/Closets/closetgrey2.rsi/meta.json new file mode 100644 index 00000000000..6c96f799da0 --- /dev/null +++ b/Resources/Textures/Structures/Storage/Closets/closetgrey2.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "https://github.com/JustLoveBeingAnOwl/Interstate-80-owlTaken at /commit/a6f9e0a6649e89f0aa731f363e07f541654ecb3d", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "welded" + }, + { + "name": "closet" + }, + { + "name": "closet_door" + }, + { + "name": "closet_open" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/Closets/closetgrey2.rsi/welded.png b/Resources/Textures/Structures/Storage/Closets/closetgrey2.rsi/welded.png new file mode 100644 index 00000000000..3b3c1afb164 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/closetgrey2.rsi/welded.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/closetold.rsi/closet.png b/Resources/Textures/Structures/Storage/Closets/closetold.rsi/closet.png new file mode 100644 index 00000000000..65432daad84 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/closetold.rsi/closet.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/closetold.rsi/closet_door.png b/Resources/Textures/Structures/Storage/Closets/closetold.rsi/closet_door.png new file mode 100644 index 00000000000..6359b0bf95f Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/closetold.rsi/closet_door.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/closetold.rsi/closet_open.png b/Resources/Textures/Structures/Storage/Closets/closetold.rsi/closet_open.png new file mode 100644 index 00000000000..f9ae6430bbb Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/closetold.rsi/closet_open.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/closetold.rsi/meta.json b/Resources/Textures/Structures/Storage/Closets/closetold.rsi/meta.json new file mode 100644 index 00000000000..6c96f799da0 --- /dev/null +++ b/Resources/Textures/Structures/Storage/Closets/closetold.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "https://github.com/JustLoveBeingAnOwl/Interstate-80-owlTaken at /commit/a6f9e0a6649e89f0aa731f363e07f541654ecb3d", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "welded" + }, + { + "name": "closet" + }, + { + "name": "closet_door" + }, + { + "name": "closet_open" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/Closets/closetold.rsi/welded.png b/Resources/Textures/Structures/Storage/Closets/closetold.rsi/welded.png new file mode 100644 index 00000000000..3b3c1afb164 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/closetold.rsi/welded.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/doublecloset.rsi/closet.png b/Resources/Textures/Structures/Storage/Closets/doublecloset.rsi/closet.png new file mode 100644 index 00000000000..4384fc083d4 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/doublecloset.rsi/closet.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/doublecloset.rsi/closet_door.png b/Resources/Textures/Structures/Storage/Closets/doublecloset.rsi/closet_door.png new file mode 100644 index 00000000000..14e73e6aca0 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/doublecloset.rsi/closet_door.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/doublecloset.rsi/closet_open.png b/Resources/Textures/Structures/Storage/Closets/doublecloset.rsi/closet_open.png new file mode 100644 index 00000000000..3002352395a Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/doublecloset.rsi/closet_open.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/doublecloset.rsi/meta.json b/Resources/Textures/Structures/Storage/Closets/doublecloset.rsi/meta.json new file mode 100644 index 00000000000..42ebb30c440 --- /dev/null +++ b/Resources/Textures/Structures/Storage/Closets/doublecloset.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "https://github.com/JustLoveBeingAnOwl/Interstate-80-owlTaken at /commit/a6f9e0a6649e89f0aa731f363e07f541654ecb3d", + "size": { + "x": 36, + "y": 32 + }, + "states": [ + { + "name": "welded" + }, + { + "name": "closet_open" + }, + { + "name": "closet" + }, + { + "name": "closet_door" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/Closets/doublecloset.rsi/welded.png b/Resources/Textures/Structures/Storage/Closets/doublecloset.rsi/welded.png new file mode 100644 index 00000000000..2626c910f37 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/doublecloset.rsi/welded.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/fridgedirty.rsi/closet.png b/Resources/Textures/Structures/Storage/Closets/fridgedirty.rsi/closet.png new file mode 100644 index 00000000000..0d0446556ab Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/fridgedirty.rsi/closet.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/fridgedirty.rsi/closet_door.png b/Resources/Textures/Structures/Storage/Closets/fridgedirty.rsi/closet_door.png new file mode 100644 index 00000000000..81d17e6434f Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/fridgedirty.rsi/closet_door.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/fridgedirty.rsi/closet_open.png b/Resources/Textures/Structures/Storage/Closets/fridgedirty.rsi/closet_open.png new file mode 100644 index 00000000000..68d500a1b9a Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/fridgedirty.rsi/closet_open.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/fridgedirty.rsi/meta.json b/Resources/Textures/Structures/Storage/Closets/fridgedirty.rsi/meta.json new file mode 100644 index 00000000000..4573bdcf0ed --- /dev/null +++ b/Resources/Textures/Structures/Storage/Closets/fridgedirty.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "https://github.com/JustLoveBeingAnOwl/Interstate-80-owlTaken at /commit/a6f9e0a6649e89f0aa731f363e07f541654ecb3d", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "welded" + }, + { + "name": "closet_door" + }, + { + "name": "closet" + }, + { + "name": "closet_open" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/Closets/fridgedirty.rsi/welded.png b/Resources/Textures/Structures/Storage/Closets/fridgedirty.rsi/welded.png new file mode 100644 index 00000000000..3b3c1afb164 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/fridgedirty.rsi/welded.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/fridgewidedirty.rsi/closet.png b/Resources/Textures/Structures/Storage/Closets/fridgewidedirty.rsi/closet.png new file mode 100644 index 00000000000..7f97f962458 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/fridgewidedirty.rsi/closet.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/fridgewidedirty.rsi/closet_door.png b/Resources/Textures/Structures/Storage/Closets/fridgewidedirty.rsi/closet_door.png new file mode 100644 index 00000000000..3b405c38888 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/fridgewidedirty.rsi/closet_door.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/fridgewidedirty.rsi/closet_open.png b/Resources/Textures/Structures/Storage/Closets/fridgewidedirty.rsi/closet_open.png new file mode 100644 index 00000000000..24eae0e5887 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/fridgewidedirty.rsi/closet_open.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/fridgewidedirty.rsi/meta.json b/Resources/Textures/Structures/Storage/Closets/fridgewidedirty.rsi/meta.json new file mode 100644 index 00000000000..4573bdcf0ed --- /dev/null +++ b/Resources/Textures/Structures/Storage/Closets/fridgewidedirty.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "https://github.com/JustLoveBeingAnOwl/Interstate-80-owlTaken at /commit/a6f9e0a6649e89f0aa731f363e07f541654ecb3d", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "welded" + }, + { + "name": "closet_door" + }, + { + "name": "closet" + }, + { + "name": "closet_open" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/Closets/fridgewidedirty.rsi/welded.png b/Resources/Textures/Structures/Storage/Closets/fridgewidedirty.rsi/welded.png new file mode 100644 index 00000000000..9854ad9b7cb Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/fridgewidedirty.rsi/welded.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/guncabinet.rsi/closet.png b/Resources/Textures/Structures/Storage/Closets/guncabinet.rsi/closet.png new file mode 100644 index 00000000000..51f6568bb80 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/guncabinet.rsi/closet.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/guncabinet.rsi/closet_door.png b/Resources/Textures/Structures/Storage/Closets/guncabinet.rsi/closet_door.png new file mode 100644 index 00000000000..4fb2a2fe68b Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/guncabinet.rsi/closet_door.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/guncabinet.rsi/closet_open.png b/Resources/Textures/Structures/Storage/Closets/guncabinet.rsi/closet_open.png new file mode 100644 index 00000000000..b5fdb260ff6 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/guncabinet.rsi/closet_open.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/guncabinet.rsi/meta.json b/Resources/Textures/Structures/Storage/Closets/guncabinet.rsi/meta.json new file mode 100644 index 00000000000..df09196536f --- /dev/null +++ b/Resources/Textures/Structures/Storage/Closets/guncabinet.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "https://github.com/JustLoveBeingAnOwl/Interstate-80-owlTaken at /commit/a6f9e0a6649e89f0aa731f363e07f541654ecb3d", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "welded" + }, + { + "name": "closet" + }, + { + "name": "closet_door" + }, + { + "name": "closet_open" + }, + { + "name": "shotgun" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/Closets/guncabinet.rsi/shotgun.png b/Resources/Textures/Structures/Storage/Closets/guncabinet.rsi/shotgun.png new file mode 100644 index 00000000000..2118cdf5f5d Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/guncabinet.rsi/shotgun.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/guncabinet.rsi/welded.png b/Resources/Textures/Structures/Storage/Closets/guncabinet.rsi/welded.png new file mode 100644 index 00000000000..ae50afa7819 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/guncabinet.rsi/welded.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/medicabinet.rsi/closet.png b/Resources/Textures/Structures/Storage/Closets/medicabinet.rsi/closet.png new file mode 100644 index 00000000000..973d3220dfe Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/medicabinet.rsi/closet.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/medicabinet.rsi/closet_door.png b/Resources/Textures/Structures/Storage/Closets/medicabinet.rsi/closet_door.png new file mode 100644 index 00000000000..43e0e5b04f6 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/medicabinet.rsi/closet_door.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/medicabinet.rsi/closet_open.png b/Resources/Textures/Structures/Storage/Closets/medicabinet.rsi/closet_open.png new file mode 100644 index 00000000000..ee7343e2836 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/medicabinet.rsi/closet_open.png differ diff --git a/Resources/Textures/Structures/Storage/Closets/medicabinet.rsi/meta.json b/Resources/Textures/Structures/Storage/Closets/medicabinet.rsi/meta.json new file mode 100644 index 00000000000..6c96f799da0 --- /dev/null +++ b/Resources/Textures/Structures/Storage/Closets/medicabinet.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "https://github.com/JustLoveBeingAnOwl/Interstate-80-owlTaken at /commit/a6f9e0a6649e89f0aa731f363e07f541654ecb3d", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "welded" + }, + { + "name": "closet" + }, + { + "name": "closet_door" + }, + { + "name": "closet_open" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/Closets/medicabinet.rsi/welded.png b/Resources/Textures/Structures/Storage/Closets/medicabinet.rsi/welded.png new file mode 100644 index 00000000000..b0b016fa33d Binary files /dev/null and b/Resources/Textures/Structures/Storage/Closets/medicabinet.rsi/welded.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/aluminiumcrate.rsi/base.png b/Resources/Textures/Structures/Storage/Crates/aluminiumcrate.rsi/base.png new file mode 100644 index 00000000000..fd318d112d8 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/aluminiumcrate.rsi/base.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/aluminiumcrate.rsi/closed.png b/Resources/Textures/Structures/Storage/Crates/aluminiumcrate.rsi/closed.png new file mode 100644 index 00000000000..2c0ff15bc08 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/aluminiumcrate.rsi/closed.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/aluminiumcrate.rsi/icon.png b/Resources/Textures/Structures/Storage/Crates/aluminiumcrate.rsi/icon.png new file mode 100644 index 00000000000..6af597137d0 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/aluminiumcrate.rsi/icon.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/aluminiumcrate.rsi/lock.png b/Resources/Textures/Structures/Storage/Crates/aluminiumcrate.rsi/lock.png new file mode 100644 index 00000000000..cb3c8e710cc Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/aluminiumcrate.rsi/lock.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/aluminiumcrate.rsi/meta.json b/Resources/Textures/Structures/Storage/Crates/aluminiumcrate.rsi/meta.json new file mode 100644 index 00000000000..4a70ffccd86 --- /dev/null +++ b/Resources/Textures/Structures/Storage/Crates/aluminiumcrate.rsi/meta.json @@ -0,0 +1,29 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Taken from mojave-sun-13 at https://github.com/Mojave-Sun/mojave-sun-13/blob/b35ff6e7f1b94108e0b934a1caf84d60066840be/mojave/icons/structure/crates.dmi, converted & additional states modified by Peptide90", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "base" + }, + { + "name": "icon" + }, + { + "name": "closed" + }, + { + "name": "open" + }, + { + "name": "welded" + }, + { + "name": "lock" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/Crates/aluminiumcrate.rsi/open.png b/Resources/Textures/Structures/Storage/Crates/aluminiumcrate.rsi/open.png new file mode 100644 index 00000000000..b6a45eab7ae Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/aluminiumcrate.rsi/open.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/aluminiumcrate.rsi/welded.png b/Resources/Textures/Structures/Storage/Crates/aluminiumcrate.rsi/welded.png new file mode 100644 index 00000000000..2af808afb3e Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/aluminiumcrate.rsi/welded.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/armycrate.rsi/base.png b/Resources/Textures/Structures/Storage/Crates/armycrate.rsi/base.png new file mode 100644 index 00000000000..b7d43e1ee13 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/armycrate.rsi/base.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/armycrate.rsi/closed.png b/Resources/Textures/Structures/Storage/Crates/armycrate.rsi/closed.png new file mode 100644 index 00000000000..280feef20ed Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/armycrate.rsi/closed.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/armycrate.rsi/icon.png b/Resources/Textures/Structures/Storage/Crates/armycrate.rsi/icon.png new file mode 100644 index 00000000000..b4d1e832551 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/armycrate.rsi/icon.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/armycrate.rsi/lock.png b/Resources/Textures/Structures/Storage/Crates/armycrate.rsi/lock.png new file mode 100644 index 00000000000..cb3c8e710cc Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/armycrate.rsi/lock.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/armycrate.rsi/meta.json b/Resources/Textures/Structures/Storage/Crates/armycrate.rsi/meta.json new file mode 100644 index 00000000000..4a70ffccd86 --- /dev/null +++ b/Resources/Textures/Structures/Storage/Crates/armycrate.rsi/meta.json @@ -0,0 +1,29 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Taken from mojave-sun-13 at https://github.com/Mojave-Sun/mojave-sun-13/blob/b35ff6e7f1b94108e0b934a1caf84d60066840be/mojave/icons/structure/crates.dmi, converted & additional states modified by Peptide90", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "base" + }, + { + "name": "icon" + }, + { + "name": "closed" + }, + { + "name": "open" + }, + { + "name": "welded" + }, + { + "name": "lock" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/Crates/armycrate.rsi/open.png b/Resources/Textures/Structures/Storage/Crates/armycrate.rsi/open.png new file mode 100644 index 00000000000..d7f5122c4ef Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/armycrate.rsi/open.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/armycrate.rsi/welded.png b/Resources/Textures/Structures/Storage/Crates/armycrate.rsi/welded.png new file mode 100644 index 00000000000..2af808afb3e Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/armycrate.rsi/welded.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/cashregister.rsi/meta.json b/Resources/Textures/Structures/Storage/Crates/cashregister.rsi/meta.json new file mode 100644 index 00000000000..2f6f3effc31 --- /dev/null +++ b/Resources/Textures/Structures/Storage/Crates/cashregister.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Taken from mojave-sun-13 at https://github.com/Mojave-Sun/mojave-sun-13/blob/b35ff6e7f1b94108e0b934a1caf84d60066840be/mojave/icons/structure/crates.dmi, converted & additional states modified by Peptide90", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "register_cleanopen", + "directions": 4 + }, + { + "name": "register_clean", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/Crates/cashregister.rsi/register_clean.png b/Resources/Textures/Structures/Storage/Crates/cashregister.rsi/register_clean.png new file mode 100644 index 00000000000..7e03d84874e Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/cashregister.rsi/register_clean.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/cashregister.rsi/register_cleanopen.png b/Resources/Textures/Structures/Storage/Crates/cashregister.rsi/register_cleanopen.png new file mode 100644 index 00000000000..684ce62f9ff Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/cashregister.rsi/register_cleanopen.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/cashregisterbloody.rsi/meta.json b/Resources/Textures/Structures/Storage/Crates/cashregisterbloody.rsi/meta.json new file mode 100644 index 00000000000..7b97a7e7b07 --- /dev/null +++ b/Resources/Textures/Structures/Storage/Crates/cashregisterbloody.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Taken from mojave-sun-13 at https://github.com/Mojave-Sun/mojave-sun-13/blob/b35ff6e7f1b94108e0b934a1caf84d60066840be/mojave/icons/structure/crates.dmi, converted & additional states modified by Peptide90", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "register", + "directions": 4 + }, + { + "name": "registeropen", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/Crates/cashregisterbloody.rsi/register.png b/Resources/Textures/Structures/Storage/Crates/cashregisterbloody.rsi/register.png new file mode 100644 index 00000000000..ae713d3dbad Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/cashregisterbloody.rsi/register.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/cashregisterbloody.rsi/registeropen.png b/Resources/Textures/Structures/Storage/Crates/cashregisterbloody.rsi/registeropen.png new file mode 100644 index 00000000000..b1f58e204a1 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/cashregisterbloody.rsi/registeropen.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/cratemilitary.rsi/base.png b/Resources/Textures/Structures/Storage/Crates/cratemilitary.rsi/base.png new file mode 100644 index 00000000000..dbe959cdde5 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/cratemilitary.rsi/base.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/cratemilitary.rsi/closed.png b/Resources/Textures/Structures/Storage/Crates/cratemilitary.rsi/closed.png new file mode 100644 index 00000000000..cde0879b2f1 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/cratemilitary.rsi/closed.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/cratemilitary.rsi/icon.png b/Resources/Textures/Structures/Storage/Crates/cratemilitary.rsi/icon.png new file mode 100644 index 00000000000..f3a5facaf85 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/cratemilitary.rsi/icon.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/cratemilitary.rsi/meta.json b/Resources/Textures/Structures/Storage/Crates/cratemilitary.rsi/meta.json new file mode 100644 index 00000000000..30ddccec79c --- /dev/null +++ b/Resources/Textures/Structures/Storage/Crates/cratemilitary.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "By patogrone for nuclear14.", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "base" + }, + { + "name": "closed" + }, + { + "name": "icon" + }, + { + "name": "open" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/Crates/cratemilitary.rsi/open.png b/Resources/Textures/Structures/Storage/Crates/cratemilitary.rsi/open.png new file mode 100644 index 00000000000..79e4ca0fc68 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/cratemilitary.rsi/open.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/cratewooden.rsi/base.png b/Resources/Textures/Structures/Storage/Crates/cratewooden.rsi/base.png new file mode 100644 index 00000000000..5391f84ca77 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/cratewooden.rsi/base.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/cratewooden.rsi/closed.png b/Resources/Textures/Structures/Storage/Crates/cratewooden.rsi/closed.png new file mode 100644 index 00000000000..c4598c55061 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/cratewooden.rsi/closed.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/cratewooden.rsi/icon.png b/Resources/Textures/Structures/Storage/Crates/cratewooden.rsi/icon.png new file mode 100644 index 00000000000..e5611ffbc77 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/cratewooden.rsi/icon.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/cratewooden.rsi/meta.json b/Resources/Textures/Structures/Storage/Crates/cratewooden.rsi/meta.json new file mode 100644 index 00000000000..30ddccec79c --- /dev/null +++ b/Resources/Textures/Structures/Storage/Crates/cratewooden.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "By patogrone for nuclear14.", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "base" + }, + { + "name": "closed" + }, + { + "name": "icon" + }, + { + "name": "open" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/Crates/cratewooden.rsi/open.png b/Resources/Textures/Structures/Storage/Crates/cratewooden.rsi/open.png new file mode 100644 index 00000000000..588072ac79a Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/cratewooden.rsi/open.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/footlocker.rsi/base.png b/Resources/Textures/Structures/Storage/Crates/footlocker.rsi/base.png new file mode 100644 index 00000000000..24a824f6582 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/footlocker.rsi/base.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/footlocker.rsi/closed.png b/Resources/Textures/Structures/Storage/Crates/footlocker.rsi/closed.png new file mode 100644 index 00000000000..d81f5214556 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/footlocker.rsi/closed.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/footlocker.rsi/icon.png b/Resources/Textures/Structures/Storage/Crates/footlocker.rsi/icon.png new file mode 100644 index 00000000000..6d3c39fa352 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/footlocker.rsi/icon.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/footlocker.rsi/meta.json b/Resources/Textures/Structures/Storage/Crates/footlocker.rsi/meta.json new file mode 100644 index 00000000000..ba4bf0a813e --- /dev/null +++ b/Resources/Textures/Structures/Storage/Crates/footlocker.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Base and icon by patogrone. Others modified by Peptide.", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "welded" + }, + { + "name": "base" + }, + { + "name": "closed" + }, + { + "name": "icon" + }, + { + "name": "open" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/Crates/footlocker.rsi/open.png b/Resources/Textures/Structures/Storage/Crates/footlocker.rsi/open.png new file mode 100644 index 00000000000..73a2329c8ee Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/footlocker.rsi/open.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/footlocker.rsi/welded.png b/Resources/Textures/Structures/Storage/Crates/footlocker.rsi/welded.png new file mode 100644 index 00000000000..a2bc24c5286 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/footlocker.rsi/welded.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/freezer.rsi/base.png b/Resources/Textures/Structures/Storage/Crates/freezer.rsi/base.png index 386dd0845da..c0538c846bf 100644 Binary files a/Resources/Textures/Structures/Storage/Crates/freezer.rsi/base.png and b/Resources/Textures/Structures/Storage/Crates/freezer.rsi/base.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/freezer.rsi/closed.png b/Resources/Textures/Structures/Storage/Crates/freezer.rsi/closed.png index e7d29a34793..a94bb6a968a 100644 Binary files a/Resources/Textures/Structures/Storage/Crates/freezer.rsi/closed.png and b/Resources/Textures/Structures/Storage/Crates/freezer.rsi/closed.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/freezer.rsi/icon.png b/Resources/Textures/Structures/Storage/Crates/freezer.rsi/icon.png index 039099b3378..6e5483209e0 100644 Binary files a/Resources/Textures/Structures/Storage/Crates/freezer.rsi/icon.png and b/Resources/Textures/Structures/Storage/Crates/freezer.rsi/icon.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/freezer.rsi/open.png b/Resources/Textures/Structures/Storage/Crates/freezer.rsi/open.png index 10129791a7c..e189e1addb6 100644 Binary files a/Resources/Textures/Structures/Storage/Crates/freezer.rsi/open.png and b/Resources/Textures/Structures/Storage/Crates/freezer.rsi/open.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/medicalcrate.rsi/base.png b/Resources/Textures/Structures/Storage/Crates/medicalcrate.rsi/base.png new file mode 100644 index 00000000000..9917e659f2c Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/medicalcrate.rsi/base.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/medicalcrate.rsi/closed.png b/Resources/Textures/Structures/Storage/Crates/medicalcrate.rsi/closed.png new file mode 100644 index 00000000000..67e54227dd1 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/medicalcrate.rsi/closed.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/medicalcrate.rsi/icon.png b/Resources/Textures/Structures/Storage/Crates/medicalcrate.rsi/icon.png new file mode 100644 index 00000000000..9a9555b7b10 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/medicalcrate.rsi/icon.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/medicalcrate.rsi/lock.png b/Resources/Textures/Structures/Storage/Crates/medicalcrate.rsi/lock.png new file mode 100644 index 00000000000..cb3c8e710cc Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/medicalcrate.rsi/lock.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/medicalcrate.rsi/meta.json b/Resources/Textures/Structures/Storage/Crates/medicalcrate.rsi/meta.json new file mode 100644 index 00000000000..4a70ffccd86 --- /dev/null +++ b/Resources/Textures/Structures/Storage/Crates/medicalcrate.rsi/meta.json @@ -0,0 +1,29 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Taken from mojave-sun-13 at https://github.com/Mojave-Sun/mojave-sun-13/blob/b35ff6e7f1b94108e0b934a1caf84d60066840be/mojave/icons/structure/crates.dmi, converted & additional states modified by Peptide90", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "base" + }, + { + "name": "icon" + }, + { + "name": "closed" + }, + { + "name": "open" + }, + { + "name": "welded" + }, + { + "name": "lock" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/Crates/medicalcrate.rsi/open.png b/Resources/Textures/Structures/Storage/Crates/medicalcrate.rsi/open.png new file mode 100644 index 00000000000..5eaada83948 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/medicalcrate.rsi/open.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/medicalcrate.rsi/welded.png b/Resources/Textures/Structures/Storage/Crates/medicalcrate.rsi/welded.png new file mode 100644 index 00000000000..2af808afb3e Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/medicalcrate.rsi/welded.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/redcrate.rsi/base.png b/Resources/Textures/Structures/Storage/Crates/redcrate.rsi/base.png new file mode 100644 index 00000000000..1ede687689c Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/redcrate.rsi/base.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/redcrate.rsi/closed.png b/Resources/Textures/Structures/Storage/Crates/redcrate.rsi/closed.png new file mode 100644 index 00000000000..226128bed7e Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/redcrate.rsi/closed.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/redcrate.rsi/icon.png b/Resources/Textures/Structures/Storage/Crates/redcrate.rsi/icon.png new file mode 100644 index 00000000000..c59bb7ae208 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/redcrate.rsi/icon.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/redcrate.rsi/lock.png b/Resources/Textures/Structures/Storage/Crates/redcrate.rsi/lock.png new file mode 100644 index 00000000000..cb3c8e710cc Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/redcrate.rsi/lock.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/redcrate.rsi/meta.json b/Resources/Textures/Structures/Storage/Crates/redcrate.rsi/meta.json new file mode 100644 index 00000000000..4a70ffccd86 --- /dev/null +++ b/Resources/Textures/Structures/Storage/Crates/redcrate.rsi/meta.json @@ -0,0 +1,29 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Taken from mojave-sun-13 at https://github.com/Mojave-Sun/mojave-sun-13/blob/b35ff6e7f1b94108e0b934a1caf84d60066840be/mojave/icons/structure/crates.dmi, converted & additional states modified by Peptide90", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "base" + }, + { + "name": "icon" + }, + { + "name": "closed" + }, + { + "name": "open" + }, + { + "name": "welded" + }, + { + "name": "lock" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/Crates/redcrate.rsi/open.png b/Resources/Textures/Structures/Storage/Crates/redcrate.rsi/open.png new file mode 100644 index 00000000000..5c44ebd1f3d Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/redcrate.rsi/open.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/redcrate.rsi/welded.png b/Resources/Textures/Structures/Storage/Crates/redcrate.rsi/welded.png new file mode 100644 index 00000000000..2af808afb3e Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/redcrate.rsi/welded.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/trashbin.rsi/base.png b/Resources/Textures/Structures/Storage/Crates/trashbin.rsi/base.png new file mode 100644 index 00000000000..ade5f8427e3 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/trashbin.rsi/base.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/trashbin.rsi/closed.png b/Resources/Textures/Structures/Storage/Crates/trashbin.rsi/closed.png new file mode 100644 index 00000000000..f23806fbd0e Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/trashbin.rsi/closed.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/trashbin.rsi/icon.png b/Resources/Textures/Structures/Storage/Crates/trashbin.rsi/icon.png new file mode 100644 index 00000000000..c197616dee9 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/trashbin.rsi/icon.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/trashbin.rsi/meta.json b/Resources/Textures/Structures/Storage/Crates/trashbin.rsi/meta.json new file mode 100644 index 00000000000..3e766f497f3 --- /dev/null +++ b/Resources/Textures/Structures/Storage/Crates/trashbin.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Taken from Nukapop13, states created / modified by Peptide90 for ss14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "open" + }, + { + "name": "base" + }, + { + "name": "closed" + }, + { + "name": "icon" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/Crates/trashbin.rsi/open.png b/Resources/Textures/Structures/Storage/Crates/trashbin.rsi/open.png new file mode 100644 index 00000000000..a99a2cc6b08 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/trashbin.rsi/open.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/trashcart.rsi/base.png b/Resources/Textures/Structures/Storage/Crates/trashcart.rsi/base.png index 85d7c299925..e993cd2c57a 100644 Binary files a/Resources/Textures/Structures/Storage/Crates/trashcart.rsi/base.png and b/Resources/Textures/Structures/Storage/Crates/trashcart.rsi/base.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/trashcart.rsi/closed.png b/Resources/Textures/Structures/Storage/Crates/trashcart.rsi/closed.png index 1c11bc8942e..4e3de205d81 100644 Binary files a/Resources/Textures/Structures/Storage/Crates/trashcart.rsi/closed.png and b/Resources/Textures/Structures/Storage/Crates/trashcart.rsi/closed.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/trashcart.rsi/icon.png b/Resources/Textures/Structures/Storage/Crates/trashcart.rsi/icon.png index 6c212de3288..e3af2c40f52 100644 Binary files a/Resources/Textures/Structures/Storage/Crates/trashcart.rsi/icon.png and b/Resources/Textures/Structures/Storage/Crates/trashcart.rsi/icon.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/trashcart.rsi/open.png b/Resources/Textures/Structures/Storage/Crates/trashcart.rsi/open.png index 58f97286f2c..ef403abeb83 100644 Binary files a/Resources/Textures/Structures/Storage/Crates/trashcart.rsi/open.png and b/Resources/Textures/Structures/Storage/Crates/trashcart.rsi/open.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/trashcart.rsi/welded.png b/Resources/Textures/Structures/Storage/Crates/trashcart.rsi/welded.png index cad0a0f18a1..06b25dfb7e6 100644 Binary files a/Resources/Textures/Structures/Storage/Crates/trashcart.rsi/welded.png and b/Resources/Textures/Structures/Storage/Crates/trashcart.rsi/welded.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/woodencrates.rsi/army_crate-1.png b/Resources/Textures/Structures/Storage/Crates/woodencrates.rsi/army_crate-1.png new file mode 100644 index 00000000000..41652078229 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/woodencrates.rsi/army_crate-1.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/woodencrates.rsi/army_crate-2.png b/Resources/Textures/Structures/Storage/Crates/woodencrates.rsi/army_crate-2.png new file mode 100644 index 00000000000..c2fd123bcf2 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/woodencrates.rsi/army_crate-2.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/woodencrates.rsi/army_crate.png b/Resources/Textures/Structures/Storage/Crates/woodencrates.rsi/army_crate.png new file mode 100644 index 00000000000..a4d20f49920 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/woodencrates.rsi/army_crate.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/woodencrates.rsi/meta.json b/Resources/Textures/Structures/Storage/Crates/woodencrates.rsi/meta.json new file mode 100644 index 00000000000..cecaa5ed225 --- /dev/null +++ b/Resources/Textures/Structures/Storage/Crates/woodencrates.rsi/meta.json @@ -0,0 +1,35 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Taken from mojave-sun-13 at https://github.com/Mojave-Sun/mojave-sun-13/blob/b35ff6e7f1b94108e0b934a1caf84d60066840be/mojave/icons/structure/crates.dmi", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "wood_crate" + }, + { + "name": "plain_crate" + }, + { + "name": "plain_crate-1" + }, + { + "name": "plain_crate-2" + }, + { + "name": "plain_crate-3" + }, + { + "name": "army_crate" + }, + { + "name": "army_crate-1" + }, + { + "name": "army_crate-2" + } + ] +} diff --git a/Resources/Textures/Structures/Storage/Crates/woodencrates.rsi/plain_crate-1.png b/Resources/Textures/Structures/Storage/Crates/woodencrates.rsi/plain_crate-1.png new file mode 100644 index 00000000000..19aeff684c2 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/woodencrates.rsi/plain_crate-1.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/woodencrates.rsi/plain_crate-2.png b/Resources/Textures/Structures/Storage/Crates/woodencrates.rsi/plain_crate-2.png new file mode 100644 index 00000000000..f394aa4f413 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/woodencrates.rsi/plain_crate-2.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/woodencrates.rsi/plain_crate-3.png b/Resources/Textures/Structures/Storage/Crates/woodencrates.rsi/plain_crate-3.png new file mode 100644 index 00000000000..40e261ef695 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/woodencrates.rsi/plain_crate-3.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/woodencrates.rsi/plain_crate.png b/Resources/Textures/Structures/Storage/Crates/woodencrates.rsi/plain_crate.png new file mode 100644 index 00000000000..5f45c1ec8b4 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/woodencrates.rsi/plain_crate.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/woodencrates.rsi/wood_crate.png b/Resources/Textures/Structures/Storage/Crates/woodencrates.rsi/wood_crate.png new file mode 100644 index 00000000000..01ddb55466f Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/woodencrates.rsi/wood_crate.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/woodenfootlocker.rsi/footlocker_wood.png b/Resources/Textures/Structures/Storage/Crates/woodenfootlocker.rsi/footlocker_wood.png new file mode 100644 index 00000000000..2128d861de4 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/woodenfootlocker.rsi/footlocker_wood.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/woodenfootlocker.rsi/footlocker_woodopen.png b/Resources/Textures/Structures/Storage/Crates/woodenfootlocker.rsi/footlocker_woodopen.png new file mode 100644 index 00000000000..d074186536a Binary files /dev/null and b/Resources/Textures/Structures/Storage/Crates/woodenfootlocker.rsi/footlocker_woodopen.png differ diff --git a/Resources/Textures/Structures/Storage/Crates/woodenfootlocker.rsi/meta.json b/Resources/Textures/Structures/Storage/Crates/woodenfootlocker.rsi/meta.json new file mode 100644 index 00000000000..7084feb0b6c --- /dev/null +++ b/Resources/Textures/Structures/Storage/Crates/woodenfootlocker.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Taken from mojave-sun-13 at https://github.com/Mojave-Sun/mojave-sun-13/blob/b35ff6e7f1b94108e0b934a1caf84d60066840be/mojave/icons/structure/crates.dmi, converted & additional states modified by Peptide90", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "footlocker_wood", + "directions": 4 + }, + { + "name": "footlocker_woodopen", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/Furniture/safe.rsi/closet.png b/Resources/Textures/Structures/Storage/Furniture/safe.rsi/closet.png new file mode 100644 index 00000000000..918d4196224 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Furniture/safe.rsi/closet.png differ diff --git a/Resources/Textures/Structures/Storage/Furniture/safe.rsi/closet_door.png b/Resources/Textures/Structures/Storage/Furniture/safe.rsi/closet_door.png new file mode 100644 index 00000000000..5fe03e1df3e Binary files /dev/null and b/Resources/Textures/Structures/Storage/Furniture/safe.rsi/closet_door.png differ diff --git a/Resources/Textures/Structures/Storage/Furniture/safe.rsi/closet_open.png b/Resources/Textures/Structures/Storage/Furniture/safe.rsi/closet_open.png new file mode 100644 index 00000000000..a141d00a720 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Furniture/safe.rsi/closet_open.png differ diff --git a/Resources/Textures/Structures/Storage/Furniture/safe.rsi/meta.json b/Resources/Textures/Structures/Storage/Furniture/safe.rsi/meta.json new file mode 100644 index 00000000000..a8b78d972ba --- /dev/null +++ b/Resources/Textures/Structures/Storage/Furniture/safe.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Taken from mojave-sun-13 at https://github.com/Mojave-Sun/mojave-sun-13/blob/734c2aba4549814549d0fa7a9aa2e2d03ec1a2da/mojave/icons/structure/storage.dmi", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "closet" + }, + { + "name": "closet_door" + }, + { + "name": "closet_open" + }, + { + "name": "welded" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/Furniture/safe.rsi/welded.png b/Resources/Textures/Structures/Storage/Furniture/safe.rsi/welded.png new file mode 100644 index 00000000000..be8c7964677 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Furniture/safe.rsi/welded.png differ diff --git a/Resources/Textures/Structures/Storage/Furniture/safespinner.rsi/closet.png b/Resources/Textures/Structures/Storage/Furniture/safespinner.rsi/closet.png new file mode 100644 index 00000000000..dc80405ac96 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Furniture/safespinner.rsi/closet.png differ diff --git a/Resources/Textures/Structures/Storage/Furniture/safespinner.rsi/closet_door.png b/Resources/Textures/Structures/Storage/Furniture/safespinner.rsi/closet_door.png new file mode 100644 index 00000000000..3d7d3e0a263 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Furniture/safespinner.rsi/closet_door.png differ diff --git a/Resources/Textures/Structures/Storage/Furniture/safespinner.rsi/closet_open.png b/Resources/Textures/Structures/Storage/Furniture/safespinner.rsi/closet_open.png new file mode 100644 index 00000000000..a5e6a362cba Binary files /dev/null and b/Resources/Textures/Structures/Storage/Furniture/safespinner.rsi/closet_open.png differ diff --git a/Resources/Textures/Structures/Storage/Furniture/safespinner.rsi/meta.json b/Resources/Textures/Structures/Storage/Furniture/safespinner.rsi/meta.json new file mode 100644 index 00000000000..a8b78d972ba --- /dev/null +++ b/Resources/Textures/Structures/Storage/Furniture/safespinner.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Taken from mojave-sun-13 at https://github.com/Mojave-Sun/mojave-sun-13/blob/734c2aba4549814549d0fa7a9aa2e2d03ec1a2da/mojave/icons/structure/storage.dmi", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "closet" + }, + { + "name": "closet_door" + }, + { + "name": "closet_open" + }, + { + "name": "welded" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/Furniture/safespinner.rsi/welded.png b/Resources/Textures/Structures/Storage/Furniture/safespinner.rsi/welded.png new file mode 100644 index 00000000000..be8c7964677 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Furniture/safespinner.rsi/welded.png differ diff --git a/Resources/Textures/Structures/Storage/Furniture/washingmachine.rsi/generic.png b/Resources/Textures/Structures/Storage/Furniture/washingmachine.rsi/generic.png new file mode 100644 index 00000000000..92ab8b725a9 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Furniture/washingmachine.rsi/generic.png differ diff --git a/Resources/Textures/Structures/Storage/Furniture/washingmachine.rsi/generic_door.png b/Resources/Textures/Structures/Storage/Furniture/washingmachine.rsi/generic_door.png new file mode 100644 index 00000000000..c293a5e76ea Binary files /dev/null and b/Resources/Textures/Structures/Storage/Furniture/washingmachine.rsi/generic_door.png differ diff --git a/Resources/Textures/Structures/Storage/Furniture/washingmachine.rsi/generic_on.png b/Resources/Textures/Structures/Storage/Furniture/washingmachine.rsi/generic_on.png new file mode 100644 index 00000000000..07cd92ff696 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Furniture/washingmachine.rsi/generic_on.png differ diff --git a/Resources/Textures/Structures/Storage/Furniture/washingmachine.rsi/generic_open.png b/Resources/Textures/Structures/Storage/Furniture/washingmachine.rsi/generic_open.png new file mode 100644 index 00000000000..b2aacd3c567 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Furniture/washingmachine.rsi/generic_open.png differ diff --git a/Resources/Textures/Structures/Storage/Furniture/washingmachine.rsi/meta.json b/Resources/Textures/Structures/Storage/Furniture/washingmachine.rsi/meta.json new file mode 100644 index 00000000000..f3e52394406 --- /dev/null +++ b/Resources/Textures/Structures/Storage/Furniture/washingmachine.rsi/meta.json @@ -0,0 +1,43 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Taken from mojave-sun-13 at https://github.com/Mojave-Sun/mojave-sun-13/blob/734c2aba4549814549d0fa7a9aa2e2d03ec1a2da/mojave/icons/structure/storage.dmi, additional states modified by Peptide", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "generic", + "directions": 4 + }, + { + "name": "generic_door", + "directions": 4 + }, + { + "name": "generic_open", + "directions": 4 + }, + { + "name": "generic_on", + "delays": [ + [ + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08 + ] + ] + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/Furniture/washingmachine_industrial.rsi/generic.png b/Resources/Textures/Structures/Storage/Furniture/washingmachine_industrial.rsi/generic.png new file mode 100644 index 00000000000..c53f7e21a50 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Furniture/washingmachine_industrial.rsi/generic.png differ diff --git a/Resources/Textures/Structures/Storage/Furniture/washingmachine_industrial.rsi/generic_door.png b/Resources/Textures/Structures/Storage/Furniture/washingmachine_industrial.rsi/generic_door.png new file mode 100644 index 00000000000..f8b9e0c20d0 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Furniture/washingmachine_industrial.rsi/generic_door.png differ diff --git a/Resources/Textures/Structures/Storage/Furniture/washingmachine_industrial.rsi/generic_on.png b/Resources/Textures/Structures/Storage/Furniture/washingmachine_industrial.rsi/generic_on.png new file mode 100644 index 00000000000..6ae719968cf Binary files /dev/null and b/Resources/Textures/Structures/Storage/Furniture/washingmachine_industrial.rsi/generic_on.png differ diff --git a/Resources/Textures/Structures/Storage/Furniture/washingmachine_industrial.rsi/generic_open.png b/Resources/Textures/Structures/Storage/Furniture/washingmachine_industrial.rsi/generic_open.png new file mode 100644 index 00000000000..4f33cbf1eb4 Binary files /dev/null and b/Resources/Textures/Structures/Storage/Furniture/washingmachine_industrial.rsi/generic_open.png differ diff --git a/Resources/Textures/Structures/Storage/Furniture/washingmachine_industrial.rsi/meta.json b/Resources/Textures/Structures/Storage/Furniture/washingmachine_industrial.rsi/meta.json new file mode 100644 index 00000000000..f3e52394406 --- /dev/null +++ b/Resources/Textures/Structures/Storage/Furniture/washingmachine_industrial.rsi/meta.json @@ -0,0 +1,43 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Taken from mojave-sun-13 at https://github.com/Mojave-Sun/mojave-sun-13/blob/734c2aba4549814549d0fa7a9aa2e2d03ec1a2da/mojave/icons/structure/storage.dmi, additional states modified by Peptide", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "generic", + "directions": 4 + }, + { + "name": "generic_door", + "directions": 4 + }, + { + "name": "generic_open", + "directions": 4 + }, + { + "name": "generic_on", + "delays": [ + [ + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08, + 0.08 + ] + ] + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/barrels.rsi/black-closed.png b/Resources/Textures/Structures/Storage/barrels.rsi/black-closed.png new file mode 100644 index 00000000000..f5588e0a179 Binary files /dev/null and b/Resources/Textures/Structures/Storage/barrels.rsi/black-closed.png differ diff --git a/Resources/Textures/Structures/Storage/barrels.rsi/black-full.png b/Resources/Textures/Structures/Storage/barrels.rsi/black-full.png new file mode 100644 index 00000000000..23f843bf154 Binary files /dev/null and b/Resources/Textures/Structures/Storage/barrels.rsi/black-full.png differ diff --git a/Resources/Textures/Structures/Storage/barrels.rsi/black-open.png b/Resources/Textures/Structures/Storage/barrels.rsi/black-open.png new file mode 100644 index 00000000000..375e98aacb6 Binary files /dev/null and b/Resources/Textures/Structures/Storage/barrels.rsi/black-open.png differ diff --git a/Resources/Textures/Structures/Storage/barrels.rsi/blue-closed.png b/Resources/Textures/Structures/Storage/barrels.rsi/blue-closed.png new file mode 100644 index 00000000000..f3d79b683f9 Binary files /dev/null and b/Resources/Textures/Structures/Storage/barrels.rsi/blue-closed.png differ diff --git a/Resources/Textures/Structures/Storage/barrels.rsi/blue-open.png b/Resources/Textures/Structures/Storage/barrels.rsi/blue-open.png new file mode 100644 index 00000000000..e1398fe96ba Binary files /dev/null and b/Resources/Textures/Structures/Storage/barrels.rsi/blue-open.png differ diff --git a/Resources/Textures/Structures/Storage/barrels.rsi/meta.json b/Resources/Textures/Structures/Storage/barrels.rsi/meta.json new file mode 100644 index 00000000000..595e2ed350b --- /dev/null +++ b/Resources/Textures/Structures/Storage/barrels.rsi/meta.json @@ -0,0 +1,44 @@ +{ + "version": 1, + "license": "CC0-1.0", + "copyright": "Mithrandalf Discord 93652604520767488", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "black-closed" + }, + { + "name": "black-full" + }, + { + "name": "black-open" + }, + { + "name": "blue-closed" + }, + { + "name": "blue-open" + }, + { + "name": "red-closed" + }, + { + "name": "red-full" + }, + { + "name": "red-open" + }, + { + "name": "yellow-closed" + }, + { + "name": "yellow-full" + }, + { + "name": "yellow-open" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/barrels.rsi/red-closed.png b/Resources/Textures/Structures/Storage/barrels.rsi/red-closed.png new file mode 100644 index 00000000000..d2e93a9076a Binary files /dev/null and b/Resources/Textures/Structures/Storage/barrels.rsi/red-closed.png differ diff --git a/Resources/Textures/Structures/Storage/barrels.rsi/red-full.png b/Resources/Textures/Structures/Storage/barrels.rsi/red-full.png new file mode 100644 index 00000000000..d464a1094c5 Binary files /dev/null and b/Resources/Textures/Structures/Storage/barrels.rsi/red-full.png differ diff --git a/Resources/Textures/Structures/Storage/barrels.rsi/red-open.png b/Resources/Textures/Structures/Storage/barrels.rsi/red-open.png new file mode 100644 index 00000000000..fe6acfebacb Binary files /dev/null and b/Resources/Textures/Structures/Storage/barrels.rsi/red-open.png differ diff --git a/Resources/Textures/Structures/Storage/barrels.rsi/yellow-closed.png b/Resources/Textures/Structures/Storage/barrels.rsi/yellow-closed.png new file mode 100644 index 00000000000..3f8f967c9dd Binary files /dev/null and b/Resources/Textures/Structures/Storage/barrels.rsi/yellow-closed.png differ diff --git a/Resources/Textures/Structures/Storage/barrels.rsi/yellow-full.png b/Resources/Textures/Structures/Storage/barrels.rsi/yellow-full.png new file mode 100644 index 00000000000..430139d3382 Binary files /dev/null and b/Resources/Textures/Structures/Storage/barrels.rsi/yellow-full.png differ diff --git a/Resources/Textures/Structures/Storage/barrels.rsi/yellow-open.png b/Resources/Textures/Structures/Storage/barrels.rsi/yellow-open.png new file mode 100644 index 00000000000..34f2c4373f2 Binary files /dev/null and b/Resources/Textures/Structures/Storage/barrels.rsi/yellow-open.png differ diff --git a/Resources/Textures/Structures/Storage/burningbarrel.rsi/burnbarrel.png b/Resources/Textures/Structures/Storage/burningbarrel.rsi/burnbarrel.png new file mode 100644 index 00000000000..769a962390d Binary files /dev/null and b/Resources/Textures/Structures/Storage/burningbarrel.rsi/burnbarrel.png differ diff --git a/Resources/Textures/Structures/Storage/burningbarrel.rsi/burnbarrel_lit.png b/Resources/Textures/Structures/Storage/burningbarrel.rsi/burnbarrel_lit.png new file mode 100644 index 00000000000..f9f7c42808f Binary files /dev/null and b/Resources/Textures/Structures/Storage/burningbarrel.rsi/burnbarrel_lit.png differ diff --git a/Resources/Textures/Structures/Storage/burningbarrel.rsi/meta.json b/Resources/Textures/Structures/Storage/burningbarrel.rsi/meta.json new file mode 100644 index 00000000000..e9ea220d55a --- /dev/null +++ b/Resources/Textures/Structures/Storage/burningbarrel.rsi/meta.json @@ -0,0 +1,51 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "https://github.com/BadDeathclaw/Drymouth-Gulch/commit/63d5cc6913885fd4b481b5ffcc980726c2dedca9", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "burnbarrel" + }, + { + "name": "burnbarrel_lit", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 1, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/storage.rsi/firstaid.png b/Resources/Textures/Structures/Storage/storage.rsi/firstaid.png new file mode 100644 index 00000000000..ddb1dd3887c Binary files /dev/null and b/Resources/Textures/Structures/Storage/storage.rsi/firstaid.png differ diff --git a/Resources/Textures/Structures/Storage/storage.rsi/firstaid_door.png b/Resources/Textures/Structures/Storage/storage.rsi/firstaid_door.png new file mode 100644 index 00000000000..7abcc07275b Binary files /dev/null and b/Resources/Textures/Structures/Storage/storage.rsi/firstaid_door.png differ diff --git a/Resources/Textures/Structures/Storage/storage.rsi/firstaid_open.png b/Resources/Textures/Structures/Storage/storage.rsi/firstaid_open.png new file mode 100644 index 00000000000..e1df54b1528 Binary files /dev/null and b/Resources/Textures/Structures/Storage/storage.rsi/firstaid_open.png differ diff --git a/Resources/Textures/Structures/Storage/storage.rsi/fridge.png b/Resources/Textures/Structures/Storage/storage.rsi/fridge.png new file mode 100644 index 00000000000..56b742cb6d7 Binary files /dev/null and b/Resources/Textures/Structures/Storage/storage.rsi/fridge.png differ diff --git a/Resources/Textures/Structures/Storage/storage.rsi/fridge_door.png b/Resources/Textures/Structures/Storage/storage.rsi/fridge_door.png new file mode 100644 index 00000000000..1df343df516 Binary files /dev/null and b/Resources/Textures/Structures/Storage/storage.rsi/fridge_door.png differ diff --git a/Resources/Textures/Structures/Storage/storage.rsi/fridge_open.png b/Resources/Textures/Structures/Storage/storage.rsi/fridge_open.png new file mode 100644 index 00000000000..6e9d2d3cc88 Binary files /dev/null and b/Resources/Textures/Structures/Storage/storage.rsi/fridge_open.png differ diff --git a/Resources/Textures/Structures/Storage/storage.rsi/locker.png b/Resources/Textures/Structures/Storage/storage.rsi/locker.png new file mode 100644 index 00000000000..7459220d3ce Binary files /dev/null and b/Resources/Textures/Structures/Storage/storage.rsi/locker.png differ diff --git a/Resources/Textures/Structures/Storage/storage.rsi/locker_door.png b/Resources/Textures/Structures/Storage/storage.rsi/locker_door.png new file mode 100644 index 00000000000..d4dbc54117c Binary files /dev/null and b/Resources/Textures/Structures/Storage/storage.rsi/locker_door.png differ diff --git a/Resources/Textures/Structures/Storage/storage.rsi/locker_loot.png b/Resources/Textures/Structures/Storage/storage.rsi/locker_loot.png new file mode 100644 index 00000000000..4715931aa19 Binary files /dev/null and b/Resources/Textures/Structures/Storage/storage.rsi/locker_loot.png differ diff --git a/Resources/Textures/Structures/Storage/storage.rsi/locker_open.png b/Resources/Textures/Structures/Storage/storage.rsi/locker_open.png new file mode 100644 index 00000000000..8298cea36ef Binary files /dev/null and b/Resources/Textures/Structures/Storage/storage.rsi/locker_open.png differ diff --git a/Resources/Textures/Structures/Storage/storage.rsi/meta.json b/Resources/Textures/Structures/Storage/storage.rsi/meta.json new file mode 100644 index 00000000000..0c633b526f2 --- /dev/null +++ b/Resources/Textures/Structures/Storage/storage.rsi/meta.json @@ -0,0 +1,65 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Taken from mojave-sun-13 at https://github.com/Mojave-Sun/mojave-sun-13/blob/734c2aba4549814549d0fa7a9aa2e2d03ec1a2da/mojave/icons/structure/storage.dmi", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "fridge" + }, + { + "name": "fridge_door" + }, + { + "name": "fridge_open" + }, + { + "name": "safe_wall" + }, + { + "name": "safe_wall-open" + }, + { + "name": "firstaid" + }, + { + "name": "firstaid_door" + }, + { + "name": "firstaid_open" + }, + { + "name": "vent" + }, + { + "name": "vent-damaged" + }, + { + "name": "vent-open" + }, + { + "name": "locker" + }, + { + "name": "locker_door" + }, + { + "name": "locker_open" + }, + { + "name": "toolbox" + }, + { + "name": "toolbox_open" + }, + { + "name": "locker_loot" + }, + { + "name": "toolbox_loot" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/storage.rsi/safe_wall-open.png b/Resources/Textures/Structures/Storage/storage.rsi/safe_wall-open.png new file mode 100644 index 00000000000..78af50ad816 Binary files /dev/null and b/Resources/Textures/Structures/Storage/storage.rsi/safe_wall-open.png differ diff --git a/Resources/Textures/Structures/Storage/storage.rsi/safe_wall.png b/Resources/Textures/Structures/Storage/storage.rsi/safe_wall.png new file mode 100644 index 00000000000..aa13aedfb83 Binary files /dev/null and b/Resources/Textures/Structures/Storage/storage.rsi/safe_wall.png differ diff --git a/Resources/Textures/Structures/Storage/storage.rsi/toolbox.png b/Resources/Textures/Structures/Storage/storage.rsi/toolbox.png new file mode 100644 index 00000000000..ad66f69275c Binary files /dev/null and b/Resources/Textures/Structures/Storage/storage.rsi/toolbox.png differ diff --git a/Resources/Textures/Structures/Storage/storage.rsi/toolbox_loot.png b/Resources/Textures/Structures/Storage/storage.rsi/toolbox_loot.png new file mode 100644 index 00000000000..a6c8df90bc6 Binary files /dev/null and b/Resources/Textures/Structures/Storage/storage.rsi/toolbox_loot.png differ diff --git a/Resources/Textures/Structures/Storage/storage.rsi/toolbox_open.png b/Resources/Textures/Structures/Storage/storage.rsi/toolbox_open.png new file mode 100644 index 00000000000..fcec1e456a7 Binary files /dev/null and b/Resources/Textures/Structures/Storage/storage.rsi/toolbox_open.png differ diff --git a/Resources/Textures/Structures/Storage/storage.rsi/vent-damaged.png b/Resources/Textures/Structures/Storage/storage.rsi/vent-damaged.png new file mode 100644 index 00000000000..72a77a24a4c Binary files /dev/null and b/Resources/Textures/Structures/Storage/storage.rsi/vent-damaged.png differ diff --git a/Resources/Textures/Structures/Storage/storage.rsi/vent-open.png b/Resources/Textures/Structures/Storage/storage.rsi/vent-open.png new file mode 100644 index 00000000000..285ef2a2b04 Binary files /dev/null and b/Resources/Textures/Structures/Storage/storage.rsi/vent-open.png differ diff --git a/Resources/Textures/Structures/Storage/storage.rsi/vent.png b/Resources/Textures/Structures/Storage/storage.rsi/vent.png new file mode 100644 index 00000000000..9d0f46b8121 Binary files /dev/null and b/Resources/Textures/Structures/Storage/storage.rsi/vent.png differ diff --git a/Resources/Textures/Structures/Storage/tanksx64.rsi/chemical_container.png b/Resources/Textures/Structures/Storage/tanksx64.rsi/chemical_container.png new file mode 100644 index 00000000000..c7365021975 Binary files /dev/null and b/Resources/Textures/Structures/Storage/tanksx64.rsi/chemical_container.png differ diff --git a/Resources/Textures/Structures/Storage/tanksx64.rsi/chemical_container_broken.png b/Resources/Textures/Structures/Storage/tanksx64.rsi/chemical_container_broken.png new file mode 100644 index 00000000000..41b8d120b75 Binary files /dev/null and b/Resources/Textures/Structures/Storage/tanksx64.rsi/chemical_container_broken.png differ diff --git a/Resources/Textures/Structures/Storage/tanksx64.rsi/largetank.png b/Resources/Textures/Structures/Storage/tanksx64.rsi/largetank.png new file mode 100644 index 00000000000..93813f60145 Binary files /dev/null and b/Resources/Textures/Structures/Storage/tanksx64.rsi/largetank.png differ diff --git a/Resources/Textures/Structures/Storage/tanksx64.rsi/largetank_chemical.png b/Resources/Textures/Structures/Storage/tanksx64.rsi/largetank_chemical.png new file mode 100644 index 00000000000..58329e55380 Binary files /dev/null and b/Resources/Textures/Structures/Storage/tanksx64.rsi/largetank_chemical.png differ diff --git a/Resources/Textures/Structures/Storage/tanksx64.rsi/largetank_chemical_huge.png b/Resources/Textures/Structures/Storage/tanksx64.rsi/largetank_chemical_huge.png new file mode 100644 index 00000000000..91b49aff422 Binary files /dev/null and b/Resources/Textures/Structures/Storage/tanksx64.rsi/largetank_chemical_huge.png differ diff --git a/Resources/Textures/Structures/Storage/tanksx64.rsi/largetank_pipe.png b/Resources/Textures/Structures/Storage/tanksx64.rsi/largetank_pipe.png new file mode 100644 index 00000000000..22bb887022e Binary files /dev/null and b/Resources/Textures/Structures/Storage/tanksx64.rsi/largetank_pipe.png differ diff --git a/Resources/Textures/Structures/Storage/tanksx64.rsi/meta.json b/Resources/Textures/Structures/Storage/tanksx64.rsi/meta.json new file mode 100644 index 00000000000..77176b72431 --- /dev/null +++ b/Resources/Textures/Structures/Storage/tanksx64.rsi/meta.json @@ -0,0 +1,29 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Taken from mojave-sun-13 at https://github.com/Mojave-Sun/mojave-sun-13/blob/aa171b6d7dda4a58168013a60e44f10165f2678d/mojave/icons/structure/tank.dmi", + "size": { + "x": 64, + "y": 64 + }, + "states": [ + { + "name": "largetank" + }, + { + "name": "largetank_chemical" + }, + { + "name": "largetank_pipe" + }, + { + "name": "largetank_chemical_huge" + }, + { + "name": "chemical_container" + }, + { + "name": "chemical_container_broken" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Wallmounts/hydrant.rsi/closed.png b/Resources/Textures/Structures/Wallmounts/hydrant.rsi/closed.png new file mode 100644 index 00000000000..149353076dd Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/hydrant.rsi/closed.png differ diff --git a/Resources/Textures/Structures/Wallmounts/hydrant.rsi/frame.png b/Resources/Textures/Structures/Wallmounts/hydrant.rsi/frame.png new file mode 100644 index 00000000000..504c12ecac9 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/hydrant.rsi/frame.png differ diff --git a/Resources/Textures/Structures/Wallmounts/hydrant.rsi/meta.json b/Resources/Textures/Structures/Wallmounts/hydrant.rsi/meta.json new file mode 100644 index 00000000000..b03441e364e --- /dev/null +++ b/Resources/Textures/Structures/Wallmounts/hydrant.rsi/meta.json @@ -0,0 +1,20 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "By Peptide90 for Nuclear14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "closed" + }, + { + "name": "frame" + }, + { + "name": "open" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Wallmounts/hydrant.rsi/open.png b/Resources/Textures/Structures/Wallmounts/hydrant.rsi/open.png new file mode 100644 index 00000000000..dcb8f484ab9 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/hydrant.rsi/open.png differ diff --git a/Resources/Textures/Structures/Wallmounts/hydrantold.rsi/closed.png b/Resources/Textures/Structures/Wallmounts/hydrantold.rsi/closed.png new file mode 100644 index 00000000000..8e44b2457ae Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/hydrantold.rsi/closed.png differ diff --git a/Resources/Textures/Structures/Wallmounts/hydrantold.rsi/frame.png b/Resources/Textures/Structures/Wallmounts/hydrantold.rsi/frame.png new file mode 100644 index 00000000000..c345cb331c0 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/hydrantold.rsi/frame.png differ diff --git a/Resources/Textures/Structures/Wallmounts/hydrantold.rsi/meta.json b/Resources/Textures/Structures/Wallmounts/hydrantold.rsi/meta.json new file mode 100644 index 00000000000..b03441e364e --- /dev/null +++ b/Resources/Textures/Structures/Wallmounts/hydrantold.rsi/meta.json @@ -0,0 +1,20 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "By Peptide90 for Nuclear14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "closed" + }, + { + "name": "frame" + }, + { + "name": "open" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Wallmounts/hydrantold.rsi/open.png b/Resources/Textures/Structures/Wallmounts/hydrantold.rsi/open.png new file mode 100644 index 00000000000..eef4e7e0900 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/hydrantold.rsi/open.png differ diff --git a/Resources/Textures/Structures/Wallmounts/lightbulbcaged.rsi/base.png b/Resources/Textures/Structures/Wallmounts/lightbulbcaged.rsi/base.png new file mode 100644 index 00000000000..d4424fe40d1 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/lightbulbcaged.rsi/base.png differ diff --git a/Resources/Textures/Structures/Wallmounts/lightbulbcaged.rsi/broken.png b/Resources/Textures/Structures/Wallmounts/lightbulbcaged.rsi/broken.png new file mode 100644 index 00000000000..cd939620239 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/lightbulbcaged.rsi/broken.png differ diff --git a/Resources/Textures/Structures/Wallmounts/lightbulbcaged.rsi/burned.png b/Resources/Textures/Structures/Wallmounts/lightbulbcaged.rsi/burned.png new file mode 100644 index 00000000000..7bf5ea45553 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/lightbulbcaged.rsi/burned.png differ diff --git a/Resources/Textures/Structures/Wallmounts/lightbulbcaged.rsi/empty.png b/Resources/Textures/Structures/Wallmounts/lightbulbcaged.rsi/empty.png new file mode 100644 index 00000000000..91070999ae9 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/lightbulbcaged.rsi/empty.png differ diff --git a/Resources/Textures/Structures/Wallmounts/lightbulbcaged.rsi/glow.png b/Resources/Textures/Structures/Wallmounts/lightbulbcaged.rsi/glow.png new file mode 100644 index 00000000000..da0b0a35ae3 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/lightbulbcaged.rsi/glow.png differ diff --git a/Resources/Textures/Structures/Wallmounts/lightbulbcaged.rsi/meta.json b/Resources/Textures/Structures/Wallmounts/lightbulbcaged.rsi/meta.json new file mode 100644 index 00000000000..c0849a2dc30 --- /dev/null +++ b/Resources/Textures/Structures/Wallmounts/lightbulbcaged.rsi/meta.json @@ -0,0 +1,31 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Taken from Nukapop13, glow by Peptide90", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "base", + "directions": 4 + }, + { + "name": "glow", + "directions": 4 + }, + { + "name": "broken", + "directions": 4 + }, + { + "name": "empty", + "directions": 4 + }, + { + "name": "burned", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Wallmounts/noticeboard.rsi/meta.json b/Resources/Textures/Structures/Wallmounts/noticeboard.rsi/meta.json index f5d234d91bc..0e9dc64e4bf 100644 --- a/Resources/Textures/Structures/Wallmounts/noticeboard.rsi/meta.json +++ b/Resources/Textures/Structures/Wallmounts/noticeboard.rsi/meta.json @@ -1,32 +1,32 @@ { - "version": 1, - "size": { - "x": 32, - "y": 32 - }, - "copyright": "Taken from Paradise Station from commit https://github.com/ParadiseSS13/Paradise/commit/137338f4dd3cb33124ab3fbd55a4865dd2bdab81", - "license": "CC-BY-SA-3.0", - "states": [ - { - "name": "noticeboard" + "version": 1, + "size": { + "x": 32, + "y": 32 }, - { - "name": "notice-0" - }, - { - "name": "notice-1" - }, - { - "name": "notice-2" - }, - { - "name": "notice-3" - }, - { - "name": "notice-4" - }, - { - "name": "notice-5" - } - ] -} + "copyright": "created by maxxorion", + "license": "CC-BY-SA-3.0", + "states": [ + { + "name": "noticeboard" + }, + { + "name": "notice-0" + }, + { + "name": "notice-1" + }, + { + "name": "notice-2" + }, + { + "name": "notice-3" + }, + { + "name": "notice-4" + }, + { + "name": "notice-5" + } + ] + } \ No newline at end of file diff --git a/Resources/Textures/Structures/Wallmounts/noticeboard.rsi/noticeboard.png b/Resources/Textures/Structures/Wallmounts/noticeboard.rsi/noticeboard.png index 378577afdcc..72e885c223c 100644 Binary files a/Resources/Textures/Structures/Wallmounts/noticeboard.rsi/noticeboard.png and b/Resources/Textures/Structures/Wallmounts/noticeboard.rsi/noticeboard.png differ diff --git a/Resources/Textures/Structures/Wallmounts/signs_32x32.rsi/bar.png b/Resources/Textures/Structures/Wallmounts/signs_32x32.rsi/bar.png new file mode 100644 index 00000000000..dd58e640056 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/signs_32x32.rsi/bar.png differ diff --git a/Resources/Textures/Structures/Wallmounts/signs_32x32.rsi/clinic.png b/Resources/Textures/Structures/Wallmounts/signs_32x32.rsi/clinic.png new file mode 100644 index 00000000000..02b39be4e5b Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/signs_32x32.rsi/clinic.png differ diff --git a/Resources/Textures/Structures/Wallmounts/signs_32x32.rsi/meta.json b/Resources/Textures/Structures/Wallmounts/signs_32x32.rsi/meta.json new file mode 100644 index 00000000000..0fea77ce0a4 --- /dev/null +++ b/Resources/Textures/Structures/Wallmounts/signs_32x32.rsi/meta.json @@ -0,0 +1,48 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Taken from MS13 at commit https://github.com/Mojave-Sun/mojave-sun-13/commit/6fde5cf64e584727ce66d92d81352801670e172f", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "open_on", + "delays": [ + [ + 1, + 1, + 1, + 1 + ] + ] + }, + { + "name": "rent" + }, + { + "name": "bar" + }, + { + "name": "clinic" + }, + { + "name": "open" + }, + { + "name": "open_bar" + }, + { + "name": "open_bar_on", + "delays": [ + [ + 1, + 1, + 1, + 1 + ] + ] + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Wallmounts/signs_32x32.rsi/open.png b/Resources/Textures/Structures/Wallmounts/signs_32x32.rsi/open.png new file mode 100644 index 00000000000..c0253e54007 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/signs_32x32.rsi/open.png differ diff --git a/Resources/Textures/Structures/Wallmounts/signs_32x32.rsi/open_bar.png b/Resources/Textures/Structures/Wallmounts/signs_32x32.rsi/open_bar.png new file mode 100644 index 00000000000..a3db90816fc Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/signs_32x32.rsi/open_bar.png differ diff --git a/Resources/Textures/Structures/Wallmounts/signs_32x32.rsi/open_bar_on.png b/Resources/Textures/Structures/Wallmounts/signs_32x32.rsi/open_bar_on.png new file mode 100644 index 00000000000..56beba50d3a Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/signs_32x32.rsi/open_bar_on.png differ diff --git a/Resources/Textures/Structures/Wallmounts/signs_32x32.rsi/open_on.png b/Resources/Textures/Structures/Wallmounts/signs_32x32.rsi/open_on.png new file mode 100644 index 00000000000..47ca73a0f61 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/signs_32x32.rsi/open_on.png differ diff --git a/Resources/Textures/Structures/Wallmounts/signs_32x32.rsi/rent.png b/Resources/Textures/Structures/Wallmounts/signs_32x32.rsi/rent.png new file mode 100644 index 00000000000..640ed4326d2 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/signs_32x32.rsi/rent.png differ diff --git a/Resources/Textures/Structures/Wallmounts/signs_64x32.rsi/bazaar_on.png b/Resources/Textures/Structures/Wallmounts/signs_64x32.rsi/bazaar_on.png new file mode 100644 index 00000000000..d7907e3a419 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/signs_64x32.rsi/bazaar_on.png differ diff --git a/Resources/Textures/Structures/Wallmounts/signs_64x32.rsi/hotel.png b/Resources/Textures/Structures/Wallmounts/signs_64x32.rsi/hotel.png new file mode 100644 index 00000000000..a1a6d5a5188 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/signs_64x32.rsi/hotel.png differ diff --git a/Resources/Textures/Structures/Wallmounts/signs_64x32.rsi/meta.json b/Resources/Textures/Structures/Wallmounts/signs_64x32.rsi/meta.json new file mode 100644 index 00000000000..bedad018567 --- /dev/null +++ b/Resources/Textures/Structures/Wallmounts/signs_64x32.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Taken from MS13 at commit https://github.com/Mojave-Sun/mojave-sun-13/commit/6fde5cf64e584727ce66d92d81352801670e172f", + "size": { + "x": 64, + "y": 32 + }, + "states": [ + { + "name": "workers" + }, + { + "name": "bazaar_on" + }, + { + "name": "hotel" + }, + { + "name": "private" + }, + { + "name": "we_open_open" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Structures/Wallmounts/signs_64x32.rsi/private.png b/Resources/Textures/Structures/Wallmounts/signs_64x32.rsi/private.png new file mode 100644 index 00000000000..2e18cb26129 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/signs_64x32.rsi/private.png differ diff --git a/Resources/Textures/Structures/Wallmounts/signs_64x32.rsi/we_open_open.png b/Resources/Textures/Structures/Wallmounts/signs_64x32.rsi/we_open_open.png new file mode 100644 index 00000000000..adf35156db8 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/signs_64x32.rsi/we_open_open.png differ diff --git a/Resources/Textures/Structures/Wallmounts/signs_64x32.rsi/workers.png b/Resources/Textures/Structures/Wallmounts/signs_64x32.rsi/workers.png new file mode 100644 index 00000000000..d55d828b608 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/signs_64x32.rsi/workers.png differ diff --git a/Resources/Textures/Structures/Wallmounts/vdu.rsi/VDU.png b/Resources/Textures/Structures/Wallmounts/vdu.rsi/VDU.png new file mode 100644 index 00000000000..8cbddf529a4 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/vdu.rsi/VDU.png differ diff --git a/Resources/Textures/Structures/Wallmounts/vdu.rsi/keyboard.png b/Resources/Textures/Structures/Wallmounts/vdu.rsi/keyboard.png new file mode 100644 index 00000000000..8f27951d9c3 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/vdu.rsi/keyboard.png differ diff --git a/Resources/Textures/Structures/Wallmounts/vdu.rsi/meta.json b/Resources/Textures/Structures/Wallmounts/vdu.rsi/meta.json new file mode 100644 index 00000000000..5dc376d26e3 --- /dev/null +++ b/Resources/Textures/Structures/Wallmounts/vdu.rsi/meta.json @@ -0,0 +1,57 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "By PatoGrone for . Screen by Peptide90", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "keyboard", + "directions": 4 + }, + { + "name": "screen", + "directions": 4, + "delays": [ + [ + 1, + 1, + 1, + 1, + 1, + 1 + ], + [ + 1, + 1, + 1, + 1, + 1, + 1 + ], + [ + 1, + 1, + 1, + 1, + 1, + 1 + ], + [ + 1, + 1, + 1, + 1, + 1, + 1 + ] + ] + }, + { + "name": "VDU", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Structures/Wallmounts/vdu.rsi/screen.png b/Resources/Textures/Structures/Wallmounts/vdu.rsi/screen.png new file mode 100644 index 00000000000..889dc80bab3 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/vdu.rsi/screen.png differ diff --git a/Resources/Textures/Structures/Wallmounts/walldecor.rsi/calendar.png b/Resources/Textures/Structures/Wallmounts/walldecor.rsi/calendar.png new file mode 100644 index 00000000000..a95bb7036f3 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/walldecor.rsi/calendar.png differ diff --git a/Resources/Textures/Structures/Wallmounts/walldecor.rsi/calendar_blank.png b/Resources/Textures/Structures/Wallmounts/walldecor.rsi/calendar_blank.png new file mode 100644 index 00000000000..107156f2872 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/walldecor.rsi/calendar_blank.png differ diff --git a/Resources/Textures/Structures/Wallmounts/walldecor.rsi/clock.png b/Resources/Textures/Structures/Wallmounts/walldecor.rsi/clock.png new file mode 100644 index 00000000000..70928a39f04 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/walldecor.rsi/clock.png differ diff --git a/Resources/Textures/Structures/Wallmounts/walldecor.rsi/cross.png b/Resources/Textures/Structures/Wallmounts/walldecor.rsi/cross.png new file mode 100644 index 00000000000..3ad7875071d Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/walldecor.rsi/cross.png differ diff --git a/Resources/Textures/Structures/Wallmounts/walldecor.rsi/danger_sign.png b/Resources/Textures/Structures/Wallmounts/walldecor.rsi/danger_sign.png new file mode 100644 index 00000000000..f9d715025ff Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/walldecor.rsi/danger_sign.png differ diff --git a/Resources/Textures/Structures/Wallmounts/walldecor.rsi/exit.png b/Resources/Textures/Structures/Wallmounts/walldecor.rsi/exit.png new file mode 100644 index 00000000000..75f3b5a5d07 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/walldecor.rsi/exit.png differ diff --git a/Resources/Textures/Structures/Wallmounts/walldecor.rsi/meta.json b/Resources/Textures/Structures/Wallmounts/walldecor.rsi/meta.json new file mode 100644 index 00000000000..64c4a8da70f --- /dev/null +++ b/Resources/Textures/Structures/Wallmounts/walldecor.rsi/meta.json @@ -0,0 +1,44 @@ +{ + "version": 1, + "license": "CC-BY-NC-SA-3.0", + "copyright": "Taken from mojave-sun-13 at https://github.com/Mojave-Sun/mojave-sun-13/blob/be7a9f24f2bca68f07e4b0b086dc03a3eb9f971f/mojave/icons/structure/wall_decor.dmi. Wanted goose poster by maxxorion", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "clock", + "directions": 4 + }, + { + "name": "calendar" + }, + { + "name": "calendar_blank" + }, + { + "name": "notice_sign" + }, + { + "name": "danger_sign" + }, + { + "name": "wanted_poster" + }, + { + "name": "cross" + }, + { + "name": "exit", + "directions": 4 + }, + { + "name": "wallscreen", + "directions": 4 + }, + { + "name": "wanted_poster_goose" + } + ] +} diff --git a/Resources/Textures/Structures/Wallmounts/walldecor.rsi/notice_sign.png b/Resources/Textures/Structures/Wallmounts/walldecor.rsi/notice_sign.png new file mode 100644 index 00000000000..2fca121f942 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/walldecor.rsi/notice_sign.png differ diff --git a/Resources/Textures/Structures/Wallmounts/walldecor.rsi/wallscreen.png b/Resources/Textures/Structures/Wallmounts/walldecor.rsi/wallscreen.png new file mode 100644 index 00000000000..e18cc520dc2 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/walldecor.rsi/wallscreen.png differ diff --git a/Resources/Textures/Structures/Wallmounts/walldecor.rsi/wanted_poster.png b/Resources/Textures/Structures/Wallmounts/walldecor.rsi/wanted_poster.png new file mode 100644 index 00000000000..9a5d3cb8486 Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/walldecor.rsi/wanted_poster.png differ diff --git a/Resources/Textures/Structures/Wallmounts/walldecor.rsi/wanted_poster_goose.png b/Resources/Textures/Structures/Wallmounts/walldecor.rsi/wanted_poster_goose.png new file mode 100644 index 00000000000..afde4b545fa Binary files /dev/null and b/Resources/Textures/Structures/Wallmounts/walldecor.rsi/wanted_poster_goose.png differ diff --git a/Resources/Textures/Tiles/Planet/Desert/desert1.png b/Resources/Textures/Tiles/Planet/Desert/desert1.png new file mode 100644 index 00000000000..bf3243ec637 Binary files /dev/null and b/Resources/Textures/Tiles/Planet/Desert/desert1.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Alerts/empowered.png b/Resources/Textures/WhiteDream/BloodCult/Alerts/empowered.png new file mode 100644 index 00000000000..26ddf7fb0a6 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Alerts/empowered.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Effects/airlock_glow.rsi/doorglow.png b/Resources/Textures/WhiteDream/BloodCult/Effects/airlock_glow.rsi/doorglow.png new file mode 100644 index 00000000000..1b255cc2cb3 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Effects/airlock_glow.rsi/doorglow.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Effects/airlock_glow.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Effects/airlock_glow.rsi/meta.json new file mode 100644 index 00000000000..c8899120552 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Effects/airlock_glow.rsi/meta.json @@ -0,0 +1,28 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station 13", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "doorglow", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Effects/blood_boil.rsi/bullet.png b/Resources/Textures/WhiteDream/BloodCult/Effects/blood_boil.rsi/bullet.png new file mode 100644 index 00000000000..5ef822c73cf Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Effects/blood_boil.rsi/bullet.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Effects/blood_boil.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Effects/blood_boil.rsi/meta.json new file mode 100644 index 00000000000..183dbc10d17 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Effects/blood_boil.rsi/meta.json @@ -0,0 +1,21 @@ +{ + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station 13", + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "bullet", + "delays": [ + [ + 0.07, + 0.07, + 0.07 + ] + ] + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Effects/cult_in_out.rsi/cult_in.png b/Resources/Textures/WhiteDream/BloodCult/Effects/cult_in_out.rsi/cult_in.png new file mode 100644 index 00000000000..5d937d4dbd3 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Effects/cult_in_out.rsi/cult_in.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Effects/cult_in_out.rsi/cult_out.png b/Resources/Textures/WhiteDream/BloodCult/Effects/cult_in_out.rsi/cult_out.png new file mode 100644 index 00000000000..cba5e50ddbe Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Effects/cult_in_out.rsi/cult_out.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Effects/cult_in_out.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Effects/cult_in_out.rsi/meta.json new file mode 100644 index 00000000000..33c2fe8fc12 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Effects/cult_in_out.rsi/meta.json @@ -0,0 +1,103 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station 13", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "cult_out", + "directions": 4, + "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 + ] + ] + }, + { + "name": "cult_in", + "directions": 4, + "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 + ] + ] + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Effects/pentagram.rsi/halo1.png b/Resources/Textures/WhiteDream/BloodCult/Effects/pentagram.rsi/halo1.png new file mode 100644 index 00000000000..5d73c095cbb Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Effects/pentagram.rsi/halo1.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Effects/pentagram.rsi/halo2.png b/Resources/Textures/WhiteDream/BloodCult/Effects/pentagram.rsi/halo2.png new file mode 100644 index 00000000000..3b2860a7265 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Effects/pentagram.rsi/halo2.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Effects/pentagram.rsi/halo3.png b/Resources/Textures/WhiteDream/BloodCult/Effects/pentagram.rsi/halo3.png new file mode 100644 index 00000000000..439ef1005ce Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Effects/pentagram.rsi/halo3.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Effects/pentagram.rsi/halo4.png b/Resources/Textures/WhiteDream/BloodCult/Effects/pentagram.rsi/halo4.png new file mode 100644 index 00000000000..9221a45b7a6 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Effects/pentagram.rsi/halo4.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Effects/pentagram.rsi/halo5.png b/Resources/Textures/WhiteDream/BloodCult/Effects/pentagram.rsi/halo5.png new file mode 100644 index 00000000000..8ce43423217 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Effects/pentagram.rsi/halo5.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Effects/pentagram.rsi/halo6.png b/Resources/Textures/WhiteDream/BloodCult/Effects/pentagram.rsi/halo6.png new file mode 100644 index 00000000000..1457a6e3c6e Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Effects/pentagram.rsi/halo6.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Effects/pentagram.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Effects/pentagram.rsi/meta.json new file mode 100644 index 00000000000..65b4bf886d8 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Effects/pentagram.rsi/meta.json @@ -0,0 +1,419 @@ +{ + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station 13", + "version": 1, + "size": { + "x": 32, + "y": 64 + }, + "states": [ + { + "name": "halo1", + "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, + 0.1 + ] + ] + }, + { + "name": "halo2", + "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, + 0.1 + ] + ] + }, + { + "name": "halo3", + "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, + 0.1 + ] + ] + }, + { + "name": "halo4", + "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, + 0.1 + ] + ] + }, + { + "name": "halo5", + "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, + 0.1 + ] + ] + }, + { + "name": "halo6", + "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, + 0.1 + ] + ] + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Effects/tiles_spawn.rsi/floorglow.png b/Resources/Textures/WhiteDream/BloodCult/Effects/tiles_spawn.rsi/floorglow.png new file mode 100644 index 00000000000..82e1c67ded6 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Effects/tiles_spawn.rsi/floorglow.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Effects/tiles_spawn.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Effects/tiles_spawn.rsi/meta.json new file mode 100644 index 00000000000..070d383593d --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Effects/tiles_spawn.rsi/meta.json @@ -0,0 +1,28 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station 13", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "floorglow", + "delays": [ + [ + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05, + 0.05 + ] + ] + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Effects/wall_glow.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Effects/wall_glow.rsi/meta.json new file mode 100644 index 00000000000..430ae0f7444 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Effects/wall_glow.rsi/meta.json @@ -0,0 +1,28 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station 13", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "wallglow", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Effects/wall_glow.rsi/wallglow.png b/Resources/Textures/WhiteDream/BloodCult/Effects/wall_glow.rsi/wallglow.png new file mode 100644 index 00000000000..120ab642d6a Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Effects/wall_glow.rsi/wallglow.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Helmet/cult_helmet.rsi/equipped-HELMET.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Helmet/cult_helmet.rsi/equipped-HELMET.png new file mode 100644 index 00000000000..ef53285d7dd Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Helmet/cult_helmet.rsi/equipped-HELMET.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Helmet/cult_helmet.rsi/icon.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Helmet/cult_helmet.rsi/icon.png new file mode 100644 index 00000000000..70f0fb7c84c Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Helmet/cult_helmet.rsi/icon.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Helmet/cult_helmet.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Helmet/cult_helmet.rsi/meta.json new file mode 100644 index 00000000000..71a3cf96dbf --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Helmet/cult_helmet.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from Bee Station at commit https://github.com/BeeStation/BeeStation-Hornet/commit/3050f5915f4aef410643be227510b9350350f7b2", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Helmet/cult_hood.rsi/equipped-HELMET.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Helmet/cult_hood.rsi/equipped-HELMET.png new file mode 100644 index 00000000000..a2f0c42d0db Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Helmet/cult_hood.rsi/equipped-HELMET.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Helmet/cult_hood.rsi/icon.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Helmet/cult_hood.rsi/icon.png new file mode 100644 index 00000000000..fd548943746 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Helmet/cult_hood.rsi/icon.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Helmet/cult_hood.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Helmet/cult_hood.rsi/meta.json new file mode 100644 index 00000000000..71a3cf96dbf --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Helmet/cult_hood.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from Bee Station at commit https://github.com/BeeStation/BeeStation-Hornet/commit/3050f5915f4aef410643be227510b9350350f7b2", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-HELMET", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Outer/cult_armor.rsi/equipped-OUTERCLOTHING.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Outer/cult_armor.rsi/equipped-OUTERCLOTHING.png new file mode 100644 index 00000000000..11d4097fbab Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Outer/cult_armor.rsi/equipped-OUTERCLOTHING.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Outer/cult_armor.rsi/icon.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Outer/cult_armor.rsi/icon.png new file mode 100644 index 00000000000..e2b2886b82e Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Outer/cult_armor.rsi/icon.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Outer/cult_armor.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Outer/cult_armor.rsi/meta.json new file mode 100644 index 00000000000..2b040938ec5 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Outer/cult_armor.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from Bee Station at commit https://github.com/BeeStation/BeeStation-Hornet/commit/3050f5915f4aef410643be227510b9350350f7b2", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Outer/cult_robe.rsi/equipped-OUTERCLOTHING.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Outer/cult_robe.rsi/equipped-OUTERCLOTHING.png new file mode 100644 index 00000000000..115565d3ec5 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Outer/cult_robe.rsi/equipped-OUTERCLOTHING.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Outer/cult_robe.rsi/icon.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Outer/cult_robe.rsi/icon.png new file mode 100644 index 00000000000..8fe50a3572c Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Outer/cult_robe.rsi/icon.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Outer/cult_robe.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Outer/cult_robe.rsi/meta.json new file mode 100644 index 00000000000..2b040938ec5 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Clothes/Outer/cult_robe.rsi/meta.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from Bee Station at commit https://github.com/BeeStation/BeeStation-Hornet/commit/3050f5915f4aef410643be227510b9350350f7b2", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-OUTERCLOTHING", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_blade.rsi/icon.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_blade.rsi/icon.png new file mode 100644 index 00000000000..38408cb9987 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_blade.rsi/icon.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_blade.rsi/inhand-left.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_blade.rsi/inhand-left.png new file mode 100644 index 00000000000..2716516dcec Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_blade.rsi/inhand-left.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_blade.rsi/inhand-right.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_blade.rsi/inhand-right.png new file mode 100644 index 00000000000..48435b8fa13 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_blade.rsi/inhand-right.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_blade.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_blade.rsi/meta.json new file mode 100644 index 00000000000..9b604947e2f --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_blade.rsi/meta.json @@ -0,0 +1,72 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from BeeStation at https://github.com/BeeStation/BeeStation-Hornet/commit/e5b645f1622f5b9186ad4c11feccbc75b3cf7e84", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "inhand-left", + "directions": 4, + "delays": [ + [ + 0.3, + 0.3 + ], + [ + 0.3, + 0.3 + ], + [ + 0.3, + 0.3 + ], + [ + 0.3, + 0.3 + ] + ] + }, + { + "name": "inhand-right", + "directions": 4, + "delays": [ + [ + 0.3, + 0.3 + ], + [ + 0.3, + 0.3 + ], + [ + 0.3, + 0.3 + ], + [ + 0.3, + 0.3 + ] + ] + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_spear.rsi/icon.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_spear.rsi/icon.png new file mode 100644 index 00000000000..53ac6575fef Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_spear.rsi/icon.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_spear.rsi/inhand-left.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_spear.rsi/inhand-left.png new file mode 100644 index 00000000000..f4372ccb856 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_spear.rsi/inhand-left.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_spear.rsi/inhand-right.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_spear.rsi/inhand-right.png new file mode 100644 index 00000000000..b44bebbb3c4 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_spear.rsi/inhand-right.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_spear.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_spear.rsi/meta.json new file mode 100644 index 00000000000..468770e3d56 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_spear.rsi/meta.json @@ -0,0 +1,30 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from BeeStation at https://github.com/BeeStation/BeeStation-Hornet/commit/e5b645f1622f5b9186ad4c11feccbc75b3cf7e84", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "wielded-inhand-left", + "directions": 4 + }, + { + "name": "wielded-inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_spear.rsi/wielded-inhand-left.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_spear.rsi/wielded-inhand-left.png new file mode 100644 index 00000000000..4532c1e661e Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_spear.rsi/wielded-inhand-left.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_spear.rsi/wielded-inhand-right.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_spear.rsi/wielded-inhand-right.png new file mode 100644 index 00000000000..4532c1e661e Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/Weapons/cult_spear.rsi/wielded-inhand-right.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/arcane_barrage.rsi/bullet.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/arcane_barrage.rsi/bullet.png new file mode 100644 index 00000000000..f1184e4e7b9 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/arcane_barrage.rsi/bullet.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/arcane_barrage.rsi/icon.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/arcane_barrage.rsi/icon.png new file mode 100644 index 00000000000..678418769a2 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/arcane_barrage.rsi/icon.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/arcane_barrage.rsi/inhand-left.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/arcane_barrage.rsi/inhand-left.png new file mode 100644 index 00000000000..5aa69c6f0ce Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/arcane_barrage.rsi/inhand-left.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/arcane_barrage.rsi/inhand-right.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/arcane_barrage.rsi/inhand-right.png new file mode 100644 index 00000000000..72d7a44ff77 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/arcane_barrage.rsi/inhand-right.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/arcane_barrage.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/arcane_barrage.rsi/meta.json new file mode 100644 index 00000000000..39fae95edd9 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/arcane_barrage.rsi/meta.json @@ -0,0 +1,77 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "inhand-left", + "directions": 4, + "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 + ] + ] + }, + { + "name": "inhand-right", + "directions": 4, + "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 + ] + ] + }, + { + "name": "bullet", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/bola.rsi/icon.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/bola.rsi/icon.png new file mode 100644 index 00000000000..a0a1a792215 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/bola.rsi/icon.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/bola.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/bola.rsi/meta.json new file mode 100644 index 00000000000..9efc29f5850 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/bola.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from Citadel Station at https://github.com/Citadel-Station-13/Citadel-Station-13/commit/3cfea7eb92246d311de8b531347795bc76d6dab6", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/construct_shell.rsi/icon.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/construct_shell.rsi/icon.png new file mode 100644 index 00000000000..e215e9b9977 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/construct_shell.rsi/icon.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/construct_shell.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/construct_shell.rsi/meta.json new file mode 100644 index 00000000000..97fb7e5f348 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/construct_shell.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station 13", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon", + "delays": [ + [ + 0.5, + 0.5, + 0.5, + 0.5 + ] + ] + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/mirror_shield.rsi/icon.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/mirror_shield.rsi/icon.png new file mode 100644 index 00000000000..22ff0de0716 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/mirror_shield.rsi/icon.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/mirror_shield.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/mirror_shield.rsi/meta.json new file mode 100644 index 00000000000..244e0b78906 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/mirror_shield.rsi/meta.json @@ -0,0 +1,82 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station 13", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon", + "delays": [ + [ + 0.5, + 0.05, + 0.1, + 0.1 + ] + ] + }, + { + "name": "mirror-inhand-left", + "directions": 4, + "delays": [ + [ + 0.5, + 0.05, + 0.1, + 0.1 + ], + [ + 0.5, + 0.05, + 0.1, + 0.1 + ], + [ + 0.5, + 0.05, + 0.1, + 0.1 + ], + [ + 0.5, + 0.05, + 0.1, + 0.1 + ] + ] + }, + { + "name": "mirror-inhand-right", + "directions": 4, + "delays": [ + [ + 0.5, + 0.05, + 0.1, + 0.1 + ], + [ + 0.5, + 0.05, + 0.1, + 0.1 + ], + [ + 0.5, + 0.05, + 0.1, + 0.1 + ], + [ + 0.5, + 0.05, + 0.1, + 0.1 + ] + ] + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/mirror_shield.rsi/mirror-inhand-left.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/mirror_shield.rsi/mirror-inhand-left.png new file mode 100644 index 00000000000..23e00c0734c Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/mirror_shield.rsi/mirror-inhand-left.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/mirror_shield.rsi/mirror-inhand-right.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/mirror_shield.rsi/mirror-inhand-right.png new file mode 100644 index 00000000000..0ce6509226b Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/mirror_shield.rsi/mirror-inhand-right.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/rites.rsi/icon.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/rites.rsi/icon.png new file mode 100644 index 00000000000..e7df415ac85 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/rites.rsi/icon.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/rites.rsi/inhand-left.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/rites.rsi/inhand-left.png new file mode 100644 index 00000000000..516c310227c Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/rites.rsi/inhand-left.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/rites.rsi/inhand-right.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/rites.rsi/inhand-right.png new file mode 100644 index 00000000000..a159a468a0a Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/rites.rsi/inhand-right.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/rites.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/rites.rsi/meta.json new file mode 100644 index 00000000000..489466f74a8 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/rites.rsi/meta.json @@ -0,0 +1,66 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/pull/49264/commits/d0dffe7ca643db2624424fdcebf45863f85c0448", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "inhand-left", + "directions": 4, + "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 + ] + ] + }, + { + "name": "inhand-right", + "directions": 4, + "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 + ] + ] + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/shuttle_curse.rsi/icon.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/shuttle_curse.rsi/icon.png new file mode 100644 index 00000000000..526af8f2add Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/shuttle_curse.rsi/icon.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/shuttle_curse.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/shuttle_curse.rsi/meta.json new file mode 100644 index 00000000000..1568be4e9f5 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/shuttle_curse.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from BeeStation at https://github.com/BeeStation/BeeStation-Hornet/commit/e5b645f1622f5b9186ad4c11feccbc75b3cf7e84", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/soul_stone.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/soul_stone.rsi/meta.json new file mode 100644 index 00000000000..82b84570c31 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/soul_stone.rsi/meta.json @@ -0,0 +1,27 @@ +{ + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station 13", + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "soul_stone" + }, + { + "name": "soul_stone_blessed" + }, + { + "name": "soul_stone_glow", + "delays": [ + [ + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/soul_stone.rsi/soul_stone.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/soul_stone.rsi/soul_stone.png new file mode 100644 index 00000000000..a765aa699c7 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/soul_stone.rsi/soul_stone.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/soul_stone.rsi/soul_stone_blessed.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/soul_stone.rsi/soul_stone_blessed.png new file mode 100644 index 00000000000..1dee5e3fdca Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/soul_stone.rsi/soul_stone_blessed.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/soul_stone.rsi/soul_stone_glow.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/soul_stone.rsi/soul_stone_glow.png new file mode 100644 index 00000000000..54c53e88f42 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/soul_stone.rsi/soul_stone_glow.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/veil_shifter.rsi/icon.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/veil_shifter.rsi/icon.png new file mode 100644 index 00000000000..71b703ba7e6 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/veil_shifter.rsi/icon.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/veil_shifter.rsi/icon_off.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/veil_shifter.rsi/icon_off.png new file mode 100644 index 00000000000..371f6205a62 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/veil_shifter.rsi/icon_off.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/veil_shifter.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/veil_shifter.rsi/meta.json new file mode 100644 index 00000000000..b446b7060c7 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/veil_shifter.rsi/meta.json @@ -0,0 +1,29 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from BeeStation at https://github.com/BeeStation/BeeStation-Hornet/commit/e5b645f1622f5b9186ad4c11feccbc75b3cf7e84", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "icon_off" + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/void_torch.rsi/icon.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/void_torch.rsi/icon.png new file mode 100644 index 00000000000..3040ae6a832 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/void_torch.rsi/icon.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/void_torch.rsi/icon_off.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/void_torch.rsi/icon_off.png new file mode 100644 index 00000000000..6cfbbb737e4 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/void_torch.rsi/icon_off.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/void_torch.rsi/lit-inhand-left.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/void_torch.rsi/lit-inhand-left.png new file mode 100644 index 00000000000..882a7668e57 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/void_torch.rsi/lit-inhand-left.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/void_torch.rsi/lit-inhand-right.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/void_torch.rsi/lit-inhand-right.png new file mode 100644 index 00000000000..c53f54968fc Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/void_torch.rsi/lit-inhand-right.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/void_torch.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/void_torch.rsi/meta.json new file mode 100644 index 00000000000..72c4fd00be7 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/void_torch.rsi/meta.json @@ -0,0 +1,95 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station 13", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "icon_off" + }, + { + "name": "lit-inhand-left", + "directions": 4, + "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": "lit-inhand-right", + "directions": 4, + "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": "unlit-inhand-left", + "directions": 4 + }, + { + "name": "unlit-inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/void_torch.rsi/unlit-inhand-left.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/void_torch.rsi/unlit-inhand-left.png new file mode 100644 index 00000000000..81048fc33f0 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/void_torch.rsi/unlit-inhand-left.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/void_torch.rsi/unlit-inhand-right.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/void_torch.rsi/unlit-inhand-right.png new file mode 100644 index 00000000000..d8a3016072f Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/void_torch.rsi/unlit-inhand-right.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/whetstone_cult.rsi/icon.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/whetstone_cult.rsi/icon.png new file mode 100644 index 00000000000..d7ef2e3af4d Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/whetstone_cult.rsi/icon.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/whetstone_cult.rsi/icon_off.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/whetstone_cult.rsi/icon_off.png new file mode 100644 index 00000000000..9e5ff36441a Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/whetstone_cult.rsi/icon_off.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Items/whetstone_cult.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/whetstone_cult.rsi/meta.json new file mode 100644 index 00000000000..6753c5926f8 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Items/whetstone_cult.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken by TG station at commit https://github.com/tgstation/tgstation/commit/4eaa299c0b20ae8629910a6a25be4be9d58a559e", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon_off" + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/apocalypse.rsi/icon.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/apocalypse.rsi/icon.png new file mode 100644 index 00000000000..af7ac8970ca Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/apocalypse.rsi/icon.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/apocalypse.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/apocalypse.rsi/meta.json new file mode 100644 index 00000000000..129ae13cafc --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/apocalypse.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station 13, edited by @kilath (discord 493110710377906196)", + "version": 1, + "size": { + "x": 96, + "y": 96 + }, + "states": [ + { + "name": "icon" + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/dimensional_rending.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/dimensional_rending.rsi/meta.json new file mode 100644 index 00000000000..18c2bb1ce40 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/dimensional_rending.rsi/meta.json @@ -0,0 +1,29 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from Paradise Station 13, edited by @kilath (discord 493110710377906196)", + "size": { + "x": 96, + "y": 96 + }, + "states": [ + { + "name": "rune" + }, + { + "name": "rune_animated", + "delays": [ + [ + 0.50, + 0.07, + 0.07, + 0.07, + 0.07, + 0.07, + 0.07, + 0.07 + ] + ] + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/dimensional_rending.rsi/rune.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/dimensional_rending.rsi/rune.png new file mode 100644 index 00000000000..db04c0731b2 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/dimensional_rending.rsi/rune.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/dimensional_rending.rsi/rune_animated.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/dimensional_rending.rsi/rune_animated.png new file mode 100644 index 00000000000..f87055f639e Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/dimensional_rending.rsi/rune_animated.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/barrier.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/barrier.png new file mode 100644 index 00000000000..64d657bba05 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/barrier.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/blood_boil.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/blood_boil.png new file mode 100644 index 00000000000..0449c5d2f28 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/blood_boil.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/empower.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/empower.png new file mode 100644 index 00000000000..e0e0de69d3e Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/empower.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/meta.json new file mode 100644 index 00000000000..95ec518eb0b --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/meta.json @@ -0,0 +1,38 @@ +{ + "license": "CC-BY-SA-3.0", + "copyright": "Taken from Paradise Station 13, edited by @kilath (discord 493110710377906196)", + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "barrier" + }, + { + "name": "blood_boil" + }, + { + "name": "empower" + }, + { + "name": "offering" + }, + { + "name": "revive" + }, + { + "name": "spirit_realm" + }, + { + "name": "strength" + }, + { + "name": "summon" + }, + { + "name": "teleport" + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/offering.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/offering.png new file mode 100644 index 00000000000..505738e31e3 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/offering.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/revive.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/revive.png new file mode 100644 index 00000000000..16be77759ef Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/revive.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/spirit_realm.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/spirit_realm.png new file mode 100644 index 00000000000..e28bf1ad97d Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/spirit_realm.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/strength.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/strength.png new file mode 100644 index 00000000000..973aa352fff Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/strength.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/summon.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/summon.png new file mode 100644 index 00000000000..dd8a82e6f9f Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/summon.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/teleport.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/teleport.png new file mode 100644 index 00000000000..96a9970e876 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Runes/regular.rsi/teleport.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/cult0.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/cult0.png new file mode 100644 index 00000000000..3849504b6ff Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/cult0.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/cult1.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/cult1.png new file mode 100644 index 00000000000..9ac2271692b Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/cult1.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/cult2.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/cult2.png new file mode 100644 index 00000000000..3849504b6ff Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/cult2.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/cult3.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/cult3.png new file mode 100644 index 00000000000..9ac2271692b Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/cult3.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/cult4.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/cult4.png new file mode 100644 index 00000000000..a5a6dd28566 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/cult4.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/cult5.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/cult5.png new file mode 100644 index 00000000000..3c0b42ddbf7 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/cult5.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/cult6.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/cult6.png new file mode 100644 index 00000000000..a5a6dd28566 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/cult6.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/cult7.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/cult7.png new file mode 100644 index 00000000000..b4bc95f4f0d Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/cult7.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/full.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/full.png new file mode 100644 index 00000000000..b4e991e3457 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/full.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/meta.json new file mode 100644 index 00000000000..e4789013908 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult.rsi/meta.json @@ -0,0 +1,46 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/ParadiseSS13/Paradise/ and modified by FoxxoTrystan", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "cult0", + "directions": 4 + }, + { + "name": "cult1", + "directions": 4 + }, + { + "name": "cult2", + "directions": 4 + }, + { + "name": "cult3", + "directions": 4 + }, + { + "name": "cult4", + "directions": 4 + }, + { + "name": "cult5", + "directions": 4 + }, + { + "name": "cult6", + "directions": 4 + }, + { + "name": "cult7", + "directions": 4 + }, + { + "name": "full" + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult_airlock.rsi/assembly.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult_airlock.rsi/assembly.png new file mode 100644 index 00000000000..1a84e526a4a Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult_airlock.rsi/assembly.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult_airlock.rsi/closed.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult_airlock.rsi/closed.png new file mode 100644 index 00000000000..0f60f5243cc Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult_airlock.rsi/closed.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult_airlock.rsi/closing.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult_airlock.rsi/closing.png new file mode 100644 index 00000000000..9dd42badabf Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult_airlock.rsi/closing.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult_airlock.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult_airlock.rsi/meta.json new file mode 100644 index 00000000000..7e8135f2168 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult_airlock.rsi/meta.json @@ -0,0 +1,60 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by Nimfar11 (GitHub) for Space Station 14", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "assembly" + }, + { + "name": "closed", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "closing", + "directions": 1, + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "open", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "opening", + "directions": 1, + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult_airlock.rsi/open.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult_airlock.rsi/open.png new file mode 100644 index 00000000000..5f78166d8cf Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult_airlock.rsi/open.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult_airlock.rsi/opening.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult_airlock.rsi/opening.png new file mode 100644 index 00000000000..127a10b53db Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult_airlock.rsi/opening.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult_girder.rsi/cultgirder.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult_girder.rsi/cultgirder.png new file mode 100644 index 00000000000..2453b42338a Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult_girder.rsi/cultgirder.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult_girder.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult_girder.rsi/meta.json new file mode 100644 index 00000000000..4ce89d754ee --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/Concealed/cult_girder.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/ParadiseSS13/Paradise/ and modified by FoxxoTrystan", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "cultgirder" + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/altar.rsi/icon.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/altar.rsi/icon.png new file mode 100644 index 00000000000..beb1a5e1f0e Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/altar.rsi/icon.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/altar.rsi/icon_off.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/altar.rsi/icon_off.png new file mode 100644 index 00000000000..86b84aac67d Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/altar.rsi/icon_off.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/altar.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/altar.rsi/meta.json new file mode 100644 index 00000000000..b446b7060c7 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/altar.rsi/meta.json @@ -0,0 +1,29 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from BeeStation at https://github.com/BeeStation/BeeStation-Hornet/commit/e5b645f1622f5b9186ad4c11feccbc75b3cf7e84", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "icon_off" + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/archives.rsi/icon.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/archives.rsi/icon.png new file mode 100644 index 00000000000..5929d631218 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/archives.rsi/icon.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/archives.rsi/icon_off.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/archives.rsi/icon_off.png new file mode 100644 index 00000000000..3e13421e962 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/archives.rsi/icon_off.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/archives.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/archives.rsi/meta.json new file mode 100644 index 00000000000..b446b7060c7 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/archives.rsi/meta.json @@ -0,0 +1,29 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from BeeStation at https://github.com/BeeStation/BeeStation-Hornet/commit/e5b645f1622f5b9186ad4c11feccbc75b3cf7e84", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "icon_off" + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/barrier.rsi/barrier.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/barrier.rsi/barrier.png new file mode 100644 index 00000000000..a4f75f45b75 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/barrier.rsi/barrier.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/barrier.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/barrier.rsi/meta.json new file mode 100644 index 00000000000..7a35e61e3d8 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/barrier.rsi/meta.json @@ -0,0 +1,25 @@ +{ + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station 13", + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "barrier", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_airlock.rsi/assembly.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_airlock.rsi/assembly.png new file mode 100644 index 00000000000..78560839457 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_airlock.rsi/assembly.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_airlock.rsi/closed.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_airlock.rsi/closed.png new file mode 100644 index 00000000000..bbd196ff149 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_airlock.rsi/closed.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_airlock.rsi/closing.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_airlock.rsi/closing.png new file mode 100644 index 00000000000..263a6b01de0 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_airlock.rsi/closing.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_airlock.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_airlock.rsi/meta.json new file mode 100644 index 00000000000..bec4aa2e8aa --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_airlock.rsi/meta.json @@ -0,0 +1,46 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station 13", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "open" + }, + { + "name": "closed" + }, + { + "name": "closing", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "opening", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "assembly" + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_airlock.rsi/open.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_airlock.rsi/open.png new file mode 100644 index 00000000000..92c2f27a09a Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_airlock.rsi/open.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_airlock.rsi/opening.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_airlock.rsi/opening.png new file mode 100644 index 00000000000..997689cdd5b Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_airlock.rsi/opening.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_girder.rsi/icon.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_girder.rsi/icon.png new file mode 100644 index 00000000000..70ec581c811 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_girder.rsi/icon.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_girder.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_girder.rsi/meta.json new file mode 100644 index 00000000000..3619047ef13 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_girder.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station 13", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_shield.rsi/icon.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_shield.rsi/icon.png new file mode 100644 index 00000000000..a2087a18d07 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_shield.rsi/icon.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_shield.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_shield.rsi/meta.json new file mode 100644 index 00000000000..04e6b1c0986 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/cult_shield.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station 13", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 1 + ] + ] + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/forge.rsi/icon.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/forge.rsi/icon.png new file mode 100644 index 00000000000..8a63affbc3c Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/forge.rsi/icon.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/forge.rsi/icon_off.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/forge.rsi/icon_off.png new file mode 100644 index 00000000000..b1f6682ac60 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/forge.rsi/icon_off.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/forge.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/forge.rsi/meta.json new file mode 100644 index 00000000000..8798cd813e8 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/forge.rsi/meta.json @@ -0,0 +1,24 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from BeeStation at https://github.com/BeeStation/BeeStation-Hornet/commit/e5b645f1622f5b9186ad4c11feccbc75b3cf7e84", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon", + "delays": [ + [ + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "icon_off" + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/pylon.rsi/icon.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/pylon.rsi/icon.png new file mode 100644 index 00000000000..e4c3559bbbd Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/pylon.rsi/icon.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/pylon.rsi/icon_off.png b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/pylon.rsi/icon_off.png new file mode 100644 index 00000000000..60e9747297a Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/pylon.rsi/icon_off.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/pylon.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/pylon.rsi/meta.json new file mode 100644 index 00000000000..9077e010f87 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/Structures/pylon.rsi/meta.json @@ -0,0 +1,53 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from BeeStation at https://github.com/BeeStation/BeeStation-Hornet/commit/e5b645f1622f5b9186ad4c11feccbc75b3cf7e84", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "icon_off", + "delays": [ + [ + 0.2, + 0.2, + 0.2, + 0.2, + 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/WhiteDream/BloodCult/Entities/runic_metal.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/Entities/runic_metal.rsi/meta.json new file mode 100644 index 00000000000..491af7e6e3e --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Entities/runic_metal.rsi/meta.json @@ -0,0 +1,65 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station 13", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "runic", + "delays": [ + [ + 5, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "runic_2", + "delays": [ + [ + 5, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "runic_3", + "delays": [ + [ + 5, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/runic_metal.rsi/runic.png b/Resources/Textures/WhiteDream/BloodCult/Entities/runic_metal.rsi/runic.png new file mode 100644 index 00000000000..90e837d4b92 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/runic_metal.rsi/runic.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/runic_metal.rsi/runic_2.png b/Resources/Textures/WhiteDream/BloodCult/Entities/runic_metal.rsi/runic_2.png new file mode 100644 index 00000000000..90e837d4b92 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/runic_metal.rsi/runic_2.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Entities/runic_metal.rsi/runic_3.png b/Resources/Textures/WhiteDream/BloodCult/Entities/runic_metal.rsi/runic_3.png new file mode 100644 index 00000000000..90e837d4b92 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Entities/runic_metal.rsi/runic_3.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Tiles/cult_tile/attributions.yml b/Resources/Textures/WhiteDream/BloodCult/Tiles/cult_tile/attributions.yml new file mode 100644 index 00000000000..ef9673d338f --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/Tiles/cult_tile/attributions.yml @@ -0,0 +1,9 @@ +- files: [ "cult.png" ] + license: "CC-BY-SA-3.0" + copyright: "TG station" + source: "https://github.com/tgstation/tgstation/" + +- files: [ "concealed.png" ] + license: "CC-BY-SA-3.0" + copyright: "TG station" + source: "https://github.com/tgstation/tgstation/" diff --git a/Resources/Textures/WhiteDream/BloodCult/Tiles/cult_tile/concealed.png b/Resources/Textures/WhiteDream/BloodCult/Tiles/cult_tile/concealed.png new file mode 100644 index 00000000000..1c9c4588d1e Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Tiles/cult_tile/concealed.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/Tiles/cult_tile/cult.png b/Resources/Textures/WhiteDream/BloodCult/Tiles/cult_tile/cult.png new file mode 100644 index 00000000000..da8f7982428 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/Tiles/cult_tile/cult.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/actions.rsi/back.png b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/back.png new file mode 100644 index 00000000000..ad552cd873e Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/back.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/actions.rsi/barrier.png b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/barrier.png new file mode 100644 index 00000000000..5371583bc98 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/barrier.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/actions.rsi/blood_barrage.png b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/blood_barrage.png new file mode 100644 index 00000000000..50800e74905 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/blood_barrage.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/actions.rsi/blood_rites.png b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/blood_rites.png new file mode 100644 index 00000000000..ef8df7780a7 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/blood_rites.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/actions.rsi/blood_spells.png b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/blood_spells.png new file mode 100644 index 00000000000..35135782563 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/blood_spells.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/actions.rsi/create_cult_floor.png b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/create_cult_floor.png new file mode 100644 index 00000000000..68d59ee95f3 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/create_cult_floor.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/actions.rsi/create_emp.png b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/create_emp.png new file mode 100644 index 00000000000..4c3baaddfc6 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/create_emp.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/actions.rsi/create_soul_stone.png b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/create_soul_stone.png new file mode 100644 index 00000000000..647e1928d4c Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/create_soul_stone.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/actions.rsi/cuff.png b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/cuff.png new file mode 100644 index 00000000000..149b197549d Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/cuff.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/actions.rsi/cult_mark.png b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/cult_mark.png new file mode 100644 index 00000000000..0d8d1493263 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/cult_mark.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/actions.rsi/final_reckoning.png b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/final_reckoning.png new file mode 100644 index 00000000000..4011cefe991 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/final_reckoning.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/actions.rsi/gauntlet_echo.png b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/gauntlet_echo.png new file mode 100644 index 00000000000..4987c8a2ad3 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/gauntlet_echo.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/actions.rsi/gone.png b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/gone.png new file mode 100644 index 00000000000..869eba7ffd0 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/gone.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/actions.rsi/lesser_construct.png b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/lesser_construct.png new file mode 100644 index 00000000000..465b992605c Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/lesser_construct.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/actions.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/meta.json new file mode 100644 index 00000000000..5c9211cca39 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/meta.json @@ -0,0 +1,86 @@ +{ + "license": "CC-BY-SA-3.0", + "copyright": "Taken from Bee Station 13", + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "back" + }, + { + "name": "barrier" + }, + { + "name": "blood_barrage" + }, + { + "name": "blood_rites" + }, + { + "name": "blood_spells" + }, + { + "name": "create_cult_floor" + }, + { + "name": "create_emp" + }, + { + "name": "create_soul_stone" + }, + { + "name": "cuff" + }, + { + "name": "cult_mark" + }, + { + "name": "final_reckoning" + }, + { + "name": "gauntlet_echo" + }, + { + "name": "gone" + }, + { + "name": "lesser_construct" + }, + { + "name": "phase_shift" + }, + { + "name": "revealing" + }, + { + "name": "shackles" + }, + { + "name": "stun" + }, + { + "name": "summon_blood_spear" + }, + { + "name": "summon_combat_equipment" + }, + { + "name": "summon_dagger" + }, + { + "name": "summon_force_wall" + }, + { + "name": "teleport" + }, + { + "name": "transmute" + }, + { + "name": "veiling" + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/actions.rsi/phase_shift.png b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/phase_shift.png new file mode 100644 index 00000000000..b50beeb5cc3 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/phase_shift.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/actions.rsi/revealing.png b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/revealing.png new file mode 100644 index 00000000000..c6b68d8f470 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/revealing.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/actions.rsi/shackles.png b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/shackles.png new file mode 100644 index 00000000000..279836bd3a1 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/shackles.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/actions.rsi/stun.png b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/stun.png new file mode 100644 index 00000000000..d19d7ff7974 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/stun.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/actions.rsi/summon_blood_spear.png b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/summon_blood_spear.png new file mode 100644 index 00000000000..2cc9f62555e Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/summon_blood_spear.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/actions.rsi/summon_combat_equipment.png b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/summon_combat_equipment.png new file mode 100644 index 00000000000..1d2f7bfc2b0 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/summon_combat_equipment.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/actions.rsi/summon_dagger.png b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/summon_dagger.png new file mode 100644 index 00000000000..9159067b566 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/summon_dagger.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/actions.rsi/summon_force_wall.png b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/summon_force_wall.png new file mode 100644 index 00000000000..7a15af1b30e Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/summon_force_wall.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/actions.rsi/teleport.png b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/teleport.png new file mode 100644 index 00000000000..387eb288009 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/teleport.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/actions.rsi/transmute.png b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/transmute.png new file mode 100644 index 00000000000..b40eb9e8f91 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/transmute.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/actions.rsi/veiling.png b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/veiling.png new file mode 100644 index 00000000000..e551d65cb96 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/actions.rsi/veiling.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/cult_hud.rsi/cult_leader.png b/Resources/Textures/WhiteDream/BloodCult/cult_hud.rsi/cult_leader.png new file mode 100644 index 00000000000..b31b12ad508 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/cult_hud.rsi/cult_leader.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/cult_hud.rsi/cult_member.png b/Resources/Textures/WhiteDream/BloodCult/cult_hud.rsi/cult_member.png new file mode 100644 index 00000000000..d069a3a6528 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/cult_hud.rsi/cult_member.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/cult_hud.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/cult_hud.rsi/meta.json new file mode 100644 index 00000000000..b7a1a585963 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/cult_hud.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station 13", + "version": 1, + "size": { + "x": 16, + "y": 16 + }, + "states": [ + { + "name": "cult_member" + }, + { + "name": "cult_leader", + "delays": [ + [ + 1, + 1 + ] + ] + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/artificer.png b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/artificer.png new file mode 100644 index 00000000000..b09a19ccc38 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/artificer.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/glow_artificer_cult.png b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/glow_artificer_cult.png new file mode 100644 index 00000000000..48ba4a127f4 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/glow_artificer_cult.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/glow_artificer_holy.png b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/glow_artificer_holy.png new file mode 100644 index 00000000000..d37abeddc4c Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/glow_artificer_holy.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/glow_harvester_cult.png b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/glow_harvester_cult.png new file mode 100644 index 00000000000..8701b9f2fc0 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/glow_harvester_cult.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/glow_harvester_holy.png b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/glow_harvester_holy.png new file mode 100644 index 00000000000..cb2c5487ebf Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/glow_harvester_holy.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/glow_juggernaut_cult.png b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/glow_juggernaut_cult.png new file mode 100644 index 00000000000..15718566306 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/glow_juggernaut_cult.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/glow_juggernaut_holy.png b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/glow_juggernaut_holy.png new file mode 100644 index 00000000000..15d7433c1d4 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/glow_juggernaut_holy.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/glow_wraith_cult.png b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/glow_wraith_cult.png new file mode 100644 index 00000000000..1f782ca4e09 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/glow_wraith_cult.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/glow_wraith_holy.png b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/glow_wraith_holy.png new file mode 100644 index 00000000000..1a3046c5561 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/glow_wraith_holy.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/harvester.png b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/harvester.png new file mode 100644 index 00000000000..ce11dba2ce1 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/harvester.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/juggernaut.png b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/juggernaut.png new file mode 100644 index 00000000000..e470857bafb Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/juggernaut.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/make_artificer_cult.png b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/make_artificer_cult.png new file mode 100644 index 00000000000..bce0f145b59 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/make_artificer_cult.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/make_artificer_holy.png b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/make_artificer_holy.png new file mode 100644 index 00000000000..a3f5f7d4360 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/make_artificer_holy.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/make_juggernaut_cult.png b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/make_juggernaut_cult.png new file mode 100644 index 00000000000..d4f4eb1c357 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/make_juggernaut_cult.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/make_juggernaut_holy.png b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/make_juggernaut_holy.png new file mode 100644 index 00000000000..163f878f639 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/make_juggernaut_holy.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/make_wraith_cult.png b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/make_wraith_cult.png new file mode 100644 index 00000000000..e954c966278 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/make_wraith_cult.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/make_wraith_holy.png b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/make_wraith_holy.png new file mode 100644 index 00000000000..c6c37fa335b Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/make_wraith_holy.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/meta.json new file mode 100644 index 00000000000..39650685b14 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/meta.json @@ -0,0 +1,401 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station 13, commit https://github.com/tgstation/tgstation/commit/4eaa299c0b20ae8629910a6a25be4be9d58a559e", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "shade_cult", + "directions": 4 + }, + { + "name": "shade_holy", + "directions": 4 + }, + { + "name": "artificer", + "directions": 4 + }, + { + "name": "wraith", + "directions": 4 + }, + { + "name": "juggernaut", + "directions": 4 + }, + { + "name": "harvester", + "directions": 4 + }, + { + "name": "glow_artificer_cult", + "directions": 4 + }, + { + "name": "glow_wraith_cult", + "directions": 4 + }, + { + "name": "glow_juggernaut_cult", + "directions": 4 + }, + { + "name": "glow_harvester_cult", + "directions": 4 + }, + { + "name": "make_artificer_cult", + "delays": [ + [ + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.35 + ] + ] + }, + { + "name": "make_wraith_cult", + "delays": [ + [ + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.35 + ] + ] + }, + { + "name": "make_juggernaut_cult", + "delays": [ + [ + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.35 + ] + ] + }, + { + "name": "phase_shift_cult", + "directions": 4, + "delays": [ + [ + 0.01, + 0.05, + 0.030000001, + 0.07, + 0.1, + 0.08, + 0.060000002, + 0.060000002, + 0.04, + 0.04, + 0.1 + ], + [ + 0.01, + 0.05, + 0.030000001, + 0.07, + 0.1, + 0.08, + 0.060000002, + 0.060000002, + 0.04, + 0.04, + 0.1 + ], + [ + 0.01, + 0.05, + 0.030000001, + 0.07, + 0.1, + 0.08, + 0.060000002, + 0.060000002, + 0.04, + 0.04, + 0.1 + ], + [ + 0.01, + 0.05, + 0.030000001, + 0.07, + 0.1, + 0.08, + 0.060000002, + 0.060000002, + 0.04, + 0.04, + 0.1 + ] + ] + }, + { + "name": "phase_shift2_cult", + "directions": 4, + "delays": [ + [ + 0.01, + 0.05, + 0.030000001, + 0.07, + 0.1, + 0.08, + 0.060000002, + 0.060000002, + 0.04, + 0.04, + 0.1 + ], + [ + 0.01, + 0.05, + 0.030000001, + 0.07, + 0.1, + 0.08, + 0.060000002, + 0.060000002, + 0.04, + 0.04, + 0.1 + ], + [ + 0.01, + 0.05, + 0.030000001, + 0.07, + 0.1, + 0.08, + 0.060000002, + 0.060000002, + 0.04, + 0.04, + 0.1 + ], + [ + 0.01, + 0.05, + 0.030000001, + 0.07, + 0.1, + 0.08, + 0.060000002, + 0.060000002, + 0.04, + 0.04, + 0.1 + ] + ] + }, + { + "name": "glow_artificer_holy", + "directions": 4 + }, + { + "name": "glow_wraith_holy", + "directions": 4 + }, + { + "name": "glow_juggernaut_holy", + "directions": 4 + }, + { + "name": "glow_harvester_holy", + "directions": 4 + }, + { + "name": "make_artificer_holy", + "delays": [ + [ + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.35 + ] + ] + }, + { + "name": "make_wraith_holy", + "delays": [ + [ + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.35 + ] + ] + }, + { + "name": "make_juggernaut_holy", + "delays": [ + [ + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.075, + 0.35 + ] + ] + }, + { + "name": "phase_shift_holy", + "directions": 4, + "delays": [ + [ + 0.01, + 0.05, + 0.030000001, + 0.07, + 0.1, + 0.08, + 0.060000002, + 0.060000002, + 0.04, + 0.04, + 0.1 + ], + [ + 0.01, + 0.05, + 0.030000001, + 0.07, + 0.1, + 0.08, + 0.060000002, + 0.060000002, + 0.04, + 0.04, + 0.1 + ], + [ + 0.01, + 0.05, + 0.030000001, + 0.07, + 0.1, + 0.08, + 0.060000002, + 0.060000002, + 0.04, + 0.04, + 0.1 + ], + [ + 0.01, + 0.05, + 0.030000001, + 0.07, + 0.1, + 0.08, + 0.060000002, + 0.060000002, + 0.04, + 0.04, + 0.1 + ] + ] + }, + { + "name": "phase_shift2_holy", + "directions": 4, + "delays": [ + [ + 0.01, + 0.05, + 0.030000001, + 0.07, + 0.1, + 0.08, + 0.060000002, + 0.060000002, + 0.04, + 0.04, + 0.1 + ], + [ + 0.01, + 0.05, + 0.030000001, + 0.07, + 0.1, + 0.08, + 0.060000002, + 0.060000002, + 0.04, + 0.04, + 0.1 + ], + [ + 0.01, + 0.05, + 0.030000001, + 0.07, + 0.1, + 0.08, + 0.060000002, + 0.060000002, + 0.04, + 0.04, + 0.1 + ], + [ + 0.01, + 0.05, + 0.030000001, + 0.07, + 0.1, + 0.08, + 0.060000002, + 0.060000002, + 0.04, + 0.04, + 0.1 + ] + ] + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/phase_shift2_cult.png b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/phase_shift2_cult.png new file mode 100644 index 00000000000..df2e97e72e1 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/phase_shift2_cult.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/phase_shift2_holy.png b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/phase_shift2_holy.png new file mode 100644 index 00000000000..80b04eec97e Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/phase_shift2_holy.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/phase_shift_cult.png b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/phase_shift_cult.png new file mode 100644 index 00000000000..25e5af357be Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/phase_shift_cult.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/phase_shift_holy.png b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/phase_shift_holy.png new file mode 100644 index 00000000000..bc1ed67559b Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/phase_shift_holy.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/shade_cult.png b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/shade_cult.png new file mode 100644 index 00000000000..e7ffd23f240 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/shade_cult.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/shade_holy.png b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/shade_holy.png new file mode 100644 index 00000000000..448324cbd63 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/shade_holy.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/wraith.png b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/wraith.png new file mode 100644 index 00000000000..0ce519ec78f Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/mobs.rsi/wraith.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/narsie.rsi/meta.json b/Resources/Textures/WhiteDream/BloodCult/narsie.rsi/meta.json new file mode 100644 index 00000000000..380599c7fa7 --- /dev/null +++ b/Resources/Textures/WhiteDream/BloodCult/narsie.rsi/meta.json @@ -0,0 +1,57 @@ +{ + "license": "CC-BY-SA-3.0", + "copyright": "Taken from TG station 13", + "version": 1, + "size": { + "x": 504, + "y": 532 + }, + "states": [ + { + "name": "narsie", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "narsie_spawn_anim", + "delays": [ + [ + 0.3, + 0.1, + 0.1, + 0.1, + 0.1, + 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.2 + ] + ] + } + ] +} diff --git a/Resources/Textures/WhiteDream/BloodCult/narsie.rsi/narsie.png b/Resources/Textures/WhiteDream/BloodCult/narsie.rsi/narsie.png new file mode 100644 index 00000000000..e5643681cc2 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/narsie.rsi/narsie.png differ diff --git a/Resources/Textures/WhiteDream/BloodCult/narsie.rsi/narsie_spawn_anim.png b/Resources/Textures/WhiteDream/BloodCult/narsie.rsi/narsie_spawn_anim.png new file mode 100644 index 00000000000..6bec5773103 Binary files /dev/null and b/Resources/Textures/WhiteDream/BloodCult/narsie.rsi/narsie_spawn_anim.png differ diff --git a/Resources/keybinds.yml b/Resources/keybinds.yml index 87df8c1eec8..68b84c7fe2e 100644 --- a/Resources/keybinds.yml +++ b/Resources/keybinds.yml @@ -468,9 +468,6 @@ binds: - function: OpenDecalSpawnWindow type: State key: F8 -- function: OpenScoreboardWindow - type: State - key: F9 - function: OpenSandboxWindow type: State key: B diff --git a/RobustToolbox b/RobustToolbox index a9aea7027f1..9c30fdf5fd7 160000 --- a/RobustToolbox +++ b/RobustToolbox @@ -1 +1 @@ -Subproject commit a9aea7027f1840c83bcaf1c973caf099745f9eed +Subproject commit 9c30fdf5fd7261ea424f80478c2746e2001326e8 diff --git a/SpaceStation14.sln b/SpaceStation14.sln index e0cb455a6db..352ec111277 100644 --- a/SpaceStation14.sln +++ b/SpaceStation14.sln @@ -134,6 +134,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Roslyn", "Roslyn", "{7844DA RobustToolbox\Robust.Roslyn.Shared\Robust.Roslyn.Shared.props = RobustToolbox\Robust.Roslyn.Shared\Robust.Roslyn.Shared.props EndProjectSection EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robust.Xaml", "RobustToolbox\Robust.Xaml\Robust.Xaml.csproj", "{8B35C796-2DCD-4B48-B159-689C0796B6A8}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -445,6 +447,14 @@ Global {83F510FE-9B50-4D96-AFAB-CC13998D6AFE}.Release|Any CPU.Build.0 = Release|Any CPU {83F510FE-9B50-4D96-AFAB-CC13998D6AFE}.Tools|Any CPU.ActiveCfg = Tools|Any CPU {83F510FE-9B50-4D96-AFAB-CC13998D6AFE}.Tools|Any CPU.Build.0 = Tools|Any CPU + {8B35C796-2DCD-4B48-B159-689C0796B6A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8B35C796-2DCD-4B48-B159-689C0796B6A8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8B35C796-2DCD-4B48-B159-689C0796B6A8}.DebugOpt|Any CPU.ActiveCfg = Debug|Any CPU + {8B35C796-2DCD-4B48-B159-689C0796B6A8}.DebugOpt|Any CPU.Build.0 = Debug|Any CPU + {8B35C796-2DCD-4B48-B159-689C0796B6A8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8B35C796-2DCD-4B48-B159-689C0796B6A8}.Release|Any CPU.Build.0 = Release|Any CPU + {8B35C796-2DCD-4B48-B159-689C0796B6A8}.Tools|Any CPU.ActiveCfg = Debug|Any CPU + {8B35C796-2DCD-4B48-B159-689C0796B6A8}.Tools|Any CPU.Build.0 = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -477,6 +487,7 @@ Global {07CA34A1-1D37-4771-A2E3-495A1044AE0B} = {7844DA69-B0F0-49FB-A05E-ECA37372277A} {88B0FC0F-7209-40E2-AF16-EB90AF727C5B} = {7844DA69-B0F0-49FB-A05E-ECA37372277A} {83F510FE-9B50-4D96-AFAB-CC13998D6AFE} = {7844DA69-B0F0-49FB-A05E-ECA37372277A} + {8B35C796-2DCD-4B48-B159-689C0796B6A8} = {83B4CBBA-547A-42F0-A7CD-8A67D93196CE} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {AA37ED9F-F8D6-468E-A101-658AD605B09A} diff --git a/SpaceStation14.sln.DotSettings b/SpaceStation14.sln.DotSettings index 156e5d27014..cc2301558aa 100644 --- a/SpaceStation14.sln.DotSettings +++ b/SpaceStation14.sln.DotSettings @@ -1,6 +1,14 @@  False False + HINT + SUGGESTION + SUGGESTION + SUGGESTION + SUGGESTION + SUGGESTION + WARNING + WARNING WARNING WARNING WARNING @@ -34,24 +42,58 @@ WARNING WARNING WARNING - SUGGESTION - Required - Required - Required - Required - RequiredForMultiline - Required - Required - Required + WARNING + NotRequired + NotRequired + NotRequired + NotRequired + NotRequiredForBoth + NotRequired + NotRequired + NotRequired + ExpressionBody + Join + ExpressionBody + TargetTyped + True + False NEXT_LINE NEXT_LINE + False + False NEXT_LINE + 2 + 2 + 2 + 1 NEXT_LINE + TOGETHER_SAME_LINE + True + True + True + True + True + True + USUAL_INDENT + USUAL_INDENT INDENT NEXT_LINE NEXT_LINE + False + False + True + False + True NEXT_LINE + IF_OWNER_IS_SINGLE_LINE + NEVER + False NEXT_LINE + True + True + True + True + False AABB AL BB diff --git a/flake.lock b/flake.lock index 40a98aa9f96..c4c230f008d 100644 --- a/flake.lock +++ b/flake.lock @@ -5,11 +5,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "owner": "numtide", "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "github" }, "original": { @@ -20,16 +20,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1723382296, - "narHash": "sha256-55jPcSyBPG77QysozW12H0VA0E56PJYS+duYndDUNLg=", + "lastModified": 1733808091, + "narHash": "sha256-KWwINTQelKOoQgrXftxoqxmKFZb9pLVfnRvK270nkVk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a5d81094146e6b042c4e5f4c5e179c5c35c3ae28", + "rev": "a0f3e10d94359665dba45b71b4227b0aeb851f8e", "type": "github" }, "original": { "owner": "NixOS", - "ref": "release-24.05", + "ref": "release-24.11", "repo": "nixpkgs", "type": "github" } diff --git a/flake.nix b/flake.nix index 095e6b017c7..9f481746ca8 100644 --- a/flake.nix +++ b/flake.nix @@ -1,13 +1,22 @@ { description = "Development environment for Space Station 14"; - inputs.nixpkgs.url = "github:NixOS/nixpkgs/release-24.05"; + inputs.nixpkgs.url = "github:NixOS/nixpkgs/release-24.11"; inputs.flake-utils.url = "github:numtide/flake-utils"; - outputs = { self, nixpkgs, flake-utils }: - flake-utils.lib.eachDefaultSystem (system: let - pkgs = nixpkgs.legacyPackages.${system}; - in { - devShells.default = import ./shell.nix { inherit pkgs; }; - }); + outputs = + { + self, + nixpkgs, + flake-utils, + }: + flake-utils.lib.eachDefaultSystem ( + system: + let + pkgs = nixpkgs.legacyPackages.${system}; + in + { + devShells.default = import ./shell.nix { inherit pkgs; }; + } + ); } diff --git a/shell.nix b/shell.nix index ce17c6acea9..40f08e784df 100644 --- a/shell.nix +++ b/shell.nix @@ -1,9 +1,14 @@ -{ pkgs ? (let lock = builtins.fromJSON (builtins.readFile ./flake.lock); -in import (builtins.fetchTarball { - url = - "https://github.com/NixOS/nixpkgs/archive/${lock.nodes.nixpkgs.locked.rev}.tar.gz"; - sha256 = lock.nodes.nixpkgs.locked.narHash; -}) { }) }: +{ + pkgs ? ( + let + lock = builtins.fromJSON (builtins.readFile ./flake.lock); + in + import (builtins.fetchTarball { + url = "https://github.com/NixOS/nixpkgs/archive/${lock.nodes.nixpkgs.locked.rev}.tar.gz"; + sha256 = lock.nodes.nixpkgs.locked.narHash; + }) { } + ), +}: let dependencies = with pkgs; [ @@ -40,9 +45,9 @@ let alsa-lib dbus at-spi2-core - cups ]; -in pkgs.mkShell { +in +pkgs.mkShell { name = "space-station-14-devshell"; buildInputs = [ pkgs.gtk3 ]; packages = dependencies;